From 94d2636681c0297c5af0fdd899ddebfdf72f4106 Mon Sep 17 00:00:00 2001 From: Jan Winkler Date: Thu, 7 May 2020 11:48:15 +0200 Subject: [PATCH 1/2] Fixed: Missing symlink python3 -> python3.8 in AppImages Fixes the problem that due to missing python3 symlink Python extensions do not work in Inkscape Linux AppImages. Fixes #1306 See also #2422, #1050, #2656 --- packaging/appimage/generate.sh | 1 + 1 file changed, 1 insertion(+) mode change 100644 => 100755 packaging/appimage/generate.sh diff --git a/packaging/appimage/generate.sh b/packaging/appimage/generate.sh old mode 100644 new mode 100755 index 46b2bb76bd..9e42ee7f90 --- a/packaging/appimage/generate.sh +++ b/packaging/appimage/generate.sh @@ -55,6 +55,7 @@ cp /etc/fonts/fonts.conf etc/fonts/ apt-get download libpython3.8-stdlib python3.8 python3.8-minimal libpython3.8-minimal python3-lxml python3-numpy python3-scour python3-gi find *.deb -exec dpkg-deb -x {} . \; rm *deb +(cd usr/bin/ ; ln -s python3.8 python3) # Inkscape searches for python3 cd - ######################################################################## -- GitLab From 2b1f2c182442ab1c40691a607f3ff98675576d55 Mon Sep 17 00:00:00 2001 From: Jan Winkler Date: Tue, 12 May 2020 22:20:43 +0200 Subject: [PATCH 2/2] AppImage: Fixed Python dependencies --- packaging/appimage/generate.sh | 77 +++++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 20 deletions(-) diff --git a/packaging/appimage/generate.sh b/packaging/appimage/generate.sh index 9e42ee7f90..fa70de6ca8 100755 --- a/packaging/appimage/generate.sh +++ b/packaging/appimage/generate.sh @@ -52,7 +52,7 @@ mkdir -p etc/fonts/ cp /etc/fonts/fonts.conf etc/fonts/ # Bundle Python -apt-get download libpython3.8-stdlib python3.8 python3.8-minimal libpython3.8-minimal python3-lxml python3-numpy python3-scour python3-gi +apt-get download libpython3.8-stdlib python3.8 python3.8-minimal libpython3.8-minimal python3-lxml python3-numpy python3-scour python3-gi libxml2 libxslt1.1 find *.deb -exec dpkg-deb -x {} . \; rm *deb (cd usr/bin/ ; ln -s python3.8 python3) # Inkscape searches for python3 @@ -65,6 +65,7 @@ cd - wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" chmod a+x linuxdeployqt-continuous-x86_64.AppImage + ./linuxdeployqt-continuous-x86_64.AppImage --appimage-extract-and-run appdir/usr/share/applications/org.inkscape.Inkscape.desktop \ -appimage -unsupported-bundle-everything -executable=appdir/usr/bin/inkview \ -executable=appdir/usr/lib/inkscape/libinkscape_base.so \ @@ -89,33 +90,72 @@ chmod a+x linuxdeployqt-continuous-x86_64.AppImage -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/lxml/html/clean.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/lxml/html/diff.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/lxml/objectify.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/lxml/sax.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/_dummy.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/multiarray.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/multiarray_tests.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/operand_flag_tests.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/struct_ufunc_test.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/test_rational.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/umath.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/umath_tests.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/fft/fftpack_lite.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/_multiarray_tests.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/_multiarray_umath.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/_operand_flag_tests.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/_rational_tests.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/_struct_ufunc_tests.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/core/_umath_tests.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/fft/_pocketfft_internal.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/linalg/_umath_linalg.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/linalg/lapack_lite.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/bit_generator.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/bounded_integers.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/common.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/generator.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/mt19937.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/mtrand.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_bsddb.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/pcg64.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/philox.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/numpy/random/sfc64.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3/dist-packages/gi/_gi.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_asyncio.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_bz2.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_codecs_cn.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_codecs_hk.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_codecs_iso2022.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_codecs_jp.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_codecs_kr.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_codecs_tw.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_csv.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_contextvars.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_crypt.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_ctypes.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_ctypes_test.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_curses.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_curses_panel.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_elementtree.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_dbm.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_decimal.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_json.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_lsprof.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_lzma.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_multibytecodec.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_multiprocessing.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_posixshmem.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_queue.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_sqlite3.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_testbuffer.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_testcapi.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_testimportmultiple.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_testinternalcapi.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_testmultiphase.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_uuid.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_xxsubinterpreters.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_xxtestfuzz.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/audioop.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/mmap.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/nis.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/ossaudiodev.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/parser.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/readline.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/resource.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/termios.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/xxlimited.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_hashlib.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_hotshot.*.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_hashlib.cpython-38-x86_64-linux-gnu.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so) \ + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_ssl.cpython-38-x86_64-linux-gnu.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_json.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_lsprof.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_multibytecodec.*.so) \ @@ -124,18 +164,15 @@ chmod a+x linuxdeployqt-continuous-x86_64.AppImage -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_ssl.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/_testcapi.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/audioop.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/bz2.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/crypt.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/dbm.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/future_builtins.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/linuxaudiodev.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/mmap.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/nis.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/ossaudiodev.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/parser.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/pyexpat.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/readline.*.so) \ -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/resource.*.so) \ - -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/termios.*.so) + -executable=$(readlink -f appdir/usr/lib/python3.8/lib-dynload/termios.*.so) \ + -executable=$(readlink -f appdir/usr/lib/x86_64-linux-gnu/libxml2.so.2) \ + -executable=$(readlink -f appdir/usr/lib/x86_64-linux-gnu/libexslt.so.0) \ + -executable=$(readlink -f appdir/usr/lib/x86_64-linux-gnu/libxslt.so.1) mv Inkscape*.AppImage* ../ -- GitLab