这是indexloc提供的服务,不要输入任何密码
Skip to content

Consider switching from linuxdeployqt to linuxdeploy #1574

@scribblemaniac

Description

@scribblemaniac

In making the linux legacy release for the latest version of Pencil2D, I was reminded of some changes I made for the build process of the 0.6.5 linux legacy build. Most importantly, I stopped using linuxdeployqt because it was becoming increasingly difficult to get it working with 32-bit architectures. After looking at a couple alternatives I settled on linuxdeploy for that release, and I have used it again for the 0.6.6 release. Based on my experiences with it, I believe that we should consider migrating all of our linux deployments (64-bit releases, and nightlies) to linuxdeploy.

The main reason to migrate is that it it is very easy to call, and handles gstreamer plugins properly without the workarounds we currently have to employ for linuxdeployqt (although I have not tested this with the 64-bit version). The usage for linuxdeploy would look like this (after make install + ffmpeg install + dependency install):

linuxdeploy --appdir Pencil2D --plugin qt
appimagetool Pencil2D pencil2d-linux-arch-version.AppImage

For context, that would replace all of this in after-build.sh:

install -Dm755 "/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner" \
    "Pencil2D/usr/lib/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner"
  local gst_executables="-executable=Pencil2D/usr/lib/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner"
  for plugin in adpcmdec alsa app audioconvert audioparsers audioresample \
      autodetect coreelements gsm id3demux jack mpg123 mulaw playback \
      pulse typefindfunctions wavparse apetag; do
    install -Dm755 "/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgst${plugin}.so" \
      "Pencil2D/usr/lib/gstreamer-1.0/libgst${plugin}.so"
    gst_executables="${gst_executables} -executable=Pencil2D/usr/lib/gstreamer-1.0/libgst${plugin}.so"
  done
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/lib/x86_64-linux-gnu/pulseaudio" \
    ./linuxdeployqt-continuous-x86_64.AppImage \
    Pencil2D/usr/share/applications/org.pencil2d.Pencil2D.desktop \
    -executable=Pencil2D/usr/plugins/ffmpeg \
    ${gst_executables} \
    -appimage

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    Low priority

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions