From c78229b4e66acb48d28ce83bc4355a44508f3b9a Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 2 Apr 2022 13:59:01 -0400 Subject: [PATCH] Fix AppImage build: need LD_LIBRARY_PATH I'm not sure why this is needed now and wasn't needed before since the cmake changes have been in main for a while and there don't appear to be recent changes to the appimage build tools. This change adds to lib directory to LD_LIBRARY_PATH so the appimage tools' ldd check will pass. This is an appropriate change since the directory that is added will be in the standard load path when installed. --- README-maintainer | 10 ++++++++++ appimage/build-appimage | 9 +++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/README-maintainer b/README-maintainer index a9a39ea2..c8d90215 100644 --- a/README-maintainer +++ b/README-maintainer @@ -443,6 +443,16 @@ build-appimage, which passes them along to to docker. Use -e SKIP_TESTS=1 to skip the test suite. Use -ti -e RUN_SHELL=1 to run a shell instead of the build script. +To iterate on the scripts directly in the source tree, you can run + +docker build -t qpdfbuild appimage +docker run --privileged --rm -ti -e SKIP_TESTS=1 -e RUN_SHELL=1 \ + -v $PWD/..:/tmp/build ${1+"$@"} qpdfbuild + +This will put you at a shell prompt inside the container with your +current directory set to the top of the source tree and your uid equal +to the owner of the parent directory source tree. + LOCAL WINDOWS TESTING PROCEDURE diff --git a/appimage/build-appimage b/appimage/build-appimage index 82c82812..54fc2511 100755 --- a/appimage/build-appimage +++ b/appimage/build-appimage @@ -21,7 +21,7 @@ # into the 'CUSTOM_CONFIGURE' environment variable and exporting it # before running this script. For example: # -# export CUSTOM_CONFIGURE=" --enable-test-compare-images [--more-other-options]" +# export CUSTOM_CONFIGURE=" -DSOME_OTHER_OPTION=1 [...]" # # ATTENTION: # @@ -151,7 +151,12 @@ wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous chmod a+x linuxdeployqt*.AppImage # Set up a clean environment: -unset QTDIR; unset QT_PLUGIN_PATH; unset LD_LIBRARY_PATH +unset QTDIR; unset QT_PLUGIN_PATH + +# Since cmake strips runpath information for executables and we are +# installing with DESTDIR, we need to set LD_LIBRARY_PATH or else ldd +# will fail on the resulting executables +export LD_LIBRARY_PATH=$(dirname $(find $appdir -type l -name libqpdf.so.28)) # Let 'linuxdeployqt' do its first stage of work: ./linuxdeployqt*.AppImage appdir/usr/share/applications/*.desktop -bundle-non-qt-libs