AppImageCommunity / libappimage

Implements functionality for dealing with AppImage files
https://appimage.org
Other
46 stars 29 forks source link

Client builds fail at linking due to missing targets when USE_SYSTEM_LIBRARY is true. #152

Closed ScarlettGatelyMoore closed 3 years ago

ScarlettGatelyMoore commented 3 years ago

For targets not using pkg-config... and USESYSTEM{DEPENDENCY} is true eg. xdgutils \

find_dependency needs to be used as when clients (aka appimagelauncher) try to use this library we get linking failure

because the dependencies of the dependency(libappimnage) targets are not imported. Hope this makes sence.

Builds fine in debian and appimagelauncher no longer has linking failures.

ScarlettGatelyMoore commented 3 years ago

Hmm, guess I need an if statement in there...

TheAssassin commented 3 years ago

I am not sure what you're trying to achieve. How do you plan to include xdg-utils in your build?

ScarlettGatelyMoore commented 3 years ago

I am not sure what you're trying to achieve. How do you plan to include xdg-utils in your build?

It is available as a package in debian. So I set USE_SYSTEM_XDGUTILS=ON which works fine compiling libappimage. The trouble begins while trying to compile appimagelauncher ( xdgutils doesn't seem to get registered as a dependency and as such not found by libappimage library while compiling appimagelauncher. The add_dependency works locally because I have the package installed, but as you see with all of the failures above, it fails when that package is not available, so I need to dig deeper into cmake to get this working.

TheAssassin commented 3 years ago

I see, the transitive dependency stuff isn't working correctly.

@azubieta, as the author of the libappimage install stuff, could you please have a look what's going wrong here?

TheAssassin commented 3 years ago

I had no issues building libappimage against the Debian xdg-utils-cxx package, no patches required. However, shlibs apparently causes issues as the libraries of xdg-utils-cxx are installed into some subdirectory of the system-wide library dir for no apparent reason. This is something that has to be fixed in that repository. I think we can close here.

Edit: for the record, this is my commandline for CMake:


cmake .. -DUSE_SYSTEM_XDGUTILS=ON -DUSE_SYSTEM_XZ=ON -DUSE_SYSTEM_SQUASHFUSE=ON -DUSE_SYSTEM_LIBARCHIVE=ON -DUSE_SYSTEM_GOOGLETEST=ON -DUSE_SYSTEM_BOOST=ON -DBUILD_TESTING=OFF
TheAssassin commented 3 years ago

Oh... I just saw you're patching the config file that is installed later on. However, I think the current setup should work, all that's needed is fix the install path of xdg-utils-cxx, if it's just about shlibs breaking, shouldn't it?

ScarlettGatelyMoore commented 3 years ago

On Tuesday, February 9, 2021 1:47:37 PM MST TheAssassin wrote:

Oh... I just saw you're patching the config file that is installed later on. However, I think the current setup should work, all that's needed is fix the install path of xdg-utils-cxx, if it's just about shlibs breaking, shouldn't it?

We also now have runtime errors of xdgutils not being found. Scarlett

-- Scarlett Moore gpg: 7C35 920F 1CE2 899E 8EA9 AAD0 2E7C 0367 B9BF A089 Software Engineer @ Blue Systems Debian Maintainer developer in training. Netrunner PM KDE Developer

TheAssassin commented 3 years ago

Can you perhaps post some logs or something that helps me understand what the issue is? I'm not entirely sure where in the process xdg-utils should be needed. It's most likely just a missing runtime dependency.

ScarlettGatelyMoore commented 3 years ago

On Wednesday, February 10, 2021 2:24:11 AM MST TheAssassin wrote:

Can you perhaps post some logs or something that helps me understand what the issue is? I'm not entirely sure where in the process xdg-utils should be needed. It's most likely just a missing runtime dependency. Adding xdg-utils-cxx as runtime dep for libappimage made everything good in the world again. Thanks again for all your help!!! Scarlett

-- Scarlett Moore gpg: 7C35 920F 1CE2 899E 8EA9 AAD0 2E7C 0367 B9BF A089 Software Engineer @ Blue Systems Debian Maintainer developer in training. Netrunner PM KDE Developer

azubieta commented 3 years ago

Sorry for being absent, I had to attend a high priority request. Is something else required to be changed in the xdg-utils-cxx side?

TheAssassin commented 3 years ago

I guess the main issue is its name, which implies some relation to the normal xdg-utils package.

ScarlettGatelyMoore commented 3 years ago

As mentioned above, SO version, install path for library needs to not be inside a {project_name} directory, and finally the name/namespace is rather confusing for consumers of xdg-utils. I will create a PR for the first two if you wish. THanks, Scarlett