RJVB / macstrop

RJVB's repository of alternative macports, with ports missing from or overriding those in the standard collection, including a set of KF5 ports.
20 stars 9 forks source link

kf5-dolphin on Big Sur #82

Closed 21stcaveman closed 3 years ago

21stcaveman commented 3 years ago

When trying to install kf5-dolphin on macos big sur (MacPorts 2.7.1), it fails with :

Error: Unable to execute port: can't read "destroot.pre_args": can't read "destroot.cmd": can't read "python.bin": can't read "python.prefix": can't read "python.branch": can't read "python.version": can't read "name": no such variable

Am I missing something? or is this a new requirement? same Portfile used to work fine on Catalina.

RJVB commented 3 years ago

On Monday June 28 2021 12:51:59 Hamid wrote:

Am I missing something? or is this a new requirement? same Portfile used to work fine on Catalina.

Are you sure it was the same Portfile (which doesn't invoke anything python-related directly so it must come from a PortGroup)?

21stcaveman commented 3 years ago

Positive on the Portfile. Looking at my notes however, seems like kf5-dolphin-devel worked on Catalina, not kf5-dolphin itself.

Just tried sudo port install kf5-dolphin-devel, which failed with the same error. Trying kf5-dolphin-devel step by step seems to work though (fetch, extract, configure, ... instead of install). I'll let you know if I can build it that way.

RJVB commented 3 years ago

On Monday June 28 2021 14:54:49 Hamid wrote:

Positive on the Portfile. Looking at my notes however, seems like kf5-dolphin-devel worked on Catalina, not kf5-dolphin itself.

Ah, that's possible. I think I haven't build kf5-dolphin in a while.

And you're right, it must be something the port does differently than its (large) number of KF5 dependents. Still, it doesn't set any of the destroot. variables that you get errors about... In fact, there isn't a single Portfile in my KF5 tree that uses destroot.pre_args. Keep me posted please!

21stcaveman commented 3 years ago

Ok, so, got all dependencies installed (new system, took a while. Had a small issue with qgpgme, and had to add breeze and osx-integration as dependencies). All stages work, up to destroot. When running sudo port destroot kf5-dolphin-devel, I get :

Error: Unable to execute port: can't read "destroot.pre_args": can't read "destroot.cmd": can't read "python.bin": can't read "python.prefix": can't read "python.branch": can't read "python.version": can't read "name": no such variable.

I did notice that as well. When looking at your kf5 portfiles, none has any destroot variables set. yet, all others installed successfully, and kf5-dolphin-devel fails! I have set the new system up, with Portgroups, according to your instructions. Not sure where to look to find the culprit at this point. Any suggestions?

RJVB commented 3 years ago

I have set the new system up, with Portgroups, according to your instructions. Not sure where to look to find the culprit at this point. Any suggestions?

This is going to be tricky to debug for me too. Did you keep the logfile? If you actually executed port destroot last you can upload the entire logfile here, otherwise please extract just the lines that start with :debug:destroot . I'll see if I can trace back the origin of the issue in there.

Also, where and why did you add the breeze and osx-integration dependencies?

21stcaveman commented 3 years ago

I appreciate your time, Rene.

I have removed the log file, and ran just the destroot command. Log file attached is for that command only, however, it only shows :debug:main and no :debug:destroot. main.log

I am not building with +universal, correct. I have installed kf5-kate, kf5-konsole and kf5-okular successfully, without running into this issue. This issue only happens if I try kf5-dolphin-devel , or kf5-krdc. Not sure what the two have in common, that is different from others.

I have added breeze and osx-integration in Portfile for kf5-dolphin-devel as dependencies, because according to my notes, icons won't show up in dolphin if these two are not installed.

RJVB commented 3 years ago

Wow, looking at the backtrace it would seem the issue is not with my port, but with a dependency of avahi which is itself a runtime dependency of kf5-kdnssd (a dependency of kf5-kio-extras). The dependency in question if py39-gobject3 ... and indeed, I get the same error if I even try port info on that port.

The weird thing is that you must have gotten those dependencies installed when you installed kf5-kio-extras ... but then again maybe you didn't install that port yet?

The real culprit is in the python PG. I'm going have to ask around!

RJVB commented 3 years ago

I pushed a workaround. Can you try the destroot step again please?

21stcaveman commented 3 years ago

Seems to have worked, in terms of going past the destroot warnings. However, now kf5-kio-extras is throwing a linker error.

[ 76%] Linking CXX shared module ../bin/audiothumbnail.so ... Undefined symbols for architecture x86_64: "TagLib::ByteVector::ByteVector(char const*)", referenced from: AudioCreator::create(QString const&, int, int, QImage&) in audiocreator.cpp.o "TagLib::ByteVector::ByteVector(TagLib::ByteVector const&)", referenced from: ...

RJVB commented 3 years ago

On Tuesday June 29 2021 17:06:29 Hamid wrote:

Seems to have worked, in terms of going past the destroot warnings.

Great, thanks for confirming!

However, now kf5-kio-extras is throwing a linker error. ... Undefined symbols for architecture x86_64: ^^^ Didn't you say you were building on an M1 CPU?!

"TagLib::ByteVector::ByteVector(char const*)", referenced from:

I just rebuilt kf5-kio-extras against the latest taglib on my end (an actual x86_64 system) and didn't get any errors. I'll admit that I have no idea what MacPorts does when a port has supported_archs x86_64 and you build it on arm64 and AFAICT none of the ports in my tree that should be relevant here set it, but you may want to check if you're not dealing with a cross-architecture mix. You can run x84_64 code on an M1 but I'd be really impressed if a single process can run code of both architectures.

21stcaveman commented 3 years ago

^^^ Didn't you say you were building on an M1 CPU?!

I am not. My system is running on an Intel i7 chip, not M1. Interesting that you could build kio-extras. I have taglib 1.12.0 installed. Can you please confirm that's the version you have?

P.S. I manually included libtag in the ld command, and it worked. I used '/opt/local/lib/libtag.1.18.0.dylib', which is interesting, since the version installed is 1.12.0!! weird. Same goes for libssh : I have 0.9.5 installed and had to link with /opt/local/lib/libssh.4.8.6.dylib in order for ld to work.

After this, both dolphin and dolphin-devel got installed, no issues. This issue can be considered as closed. Thank you for the support Rene, much appreciated.

Last point to mention, qt5 v5.9.8 has been moved to archive. So I had to change 'official_releases' in master_sites, to 'archive' for qt5-kde to work.

RJVB commented 3 years ago

Interesting that you could build kio-extras. I have taglib 1.12.0 installed. Can you please confirm that's the version you have?

Yep. Now I must admit that was on Linux (haven't yet had access to my Mac system) but that shouldn't make a difference here.

I have

> nm /opt/local/lib/libtag.so | grep -i '_ZN6TagLib10ByteVectorC.EPKc'
00000000000b1170 T _ZN6TagLib10ByteVectorC1EPKc
00000000000b1010 T _ZN6TagLib10ByteVectorC1EPKcj
00000000000b1170 T _ZN6TagLib10ByteVectorC2EPKc
00000000000b1010 T _ZN6TagLib10ByteVectorC2EPKcj

> demangle _ZN6TagLib10ByteVectorC1EPKc _ZN6TagLib10ByteVectorC2EPKc
_ZN6TagLib10ByteVectorC1EPKc -> "TagLib::ByteVector::ByteVector(char const*)"
_ZN6TagLib10ByteVectorC2EPKc -> "TagLib::ByteVector::ByteVector(char const*)"

name mangling is the same on Linux and Darwin, so a priori you should be able to run the nm command on your /opt/local/lib/libtag.dylib and get the same results (except for the addresses in the 1st column of course).

RJVB commented 3 years ago

OK, I spoke too soon. I don't know what happened, but I can reproduce your issue on my lowly 10.9.5 Mac. Looks simple though: the link to libtag isn't even attempted. I'll see how to fix this, maybe just upgrade the port...

21stcaveman commented 3 years ago

Not sure if github sends email notifications for comment updates, but I have updated my last comment with how I fixed the issue on my system. Maybe that'd help with fixing the port.

RJVB commented 3 years ago

Thanks!

I'm working on a small upgrade, to 19.11.90 . Later kio-extras version require kdsoap (whatever that is) and I am not really in the mood to make new ports ATM. This version has the same issue, but it seems to be a problem with the FindTaglib cmake module that is in the kde-extra-cmake-modules port instead of the one that comes with kio-extras. I'll figure something out and let you know when there's an update.

21stcaveman commented 3 years ago

Absolutely, sounds good.

RJVB commented 3 years ago

Hi,

I just pushed a kio-extras update to 20.04.3 . This one already required quite a bit of backporting so I'm going to leave it at this for the time being!

21stcaveman commented 3 years ago

Confirmed, I could upgrade kio-extras using port upgrade outdated with no issues.

Appreciate all the great work Rene.

RJVB commented 3 years ago

Hey,

A thumbs-up that you may want to up the revbump for kio-extras; I fixed a crasher in the text file thumbnail creator.

21stcaveman commented 3 years ago

Acknowledged. Upgraded kio-extras, and all works fine. No issues during upgrade.