diff options
Diffstat (limited to 'pkgs/build-support/appimage')
-rwxr-xr-x | pkgs/build-support/appimage/appimage-exec.sh | 14 | ||||
-rw-r--r-- | pkgs/build-support/appimage/default.nix | 16 |
2 files changed, 17 insertions, 13 deletions
diff --git a/pkgs/build-support/appimage/appimage-exec.sh b/pkgs/build-support/appimage/appimage-exec.sh index 82ebdd0bbe4..4ff6802e645 100755 --- a/pkgs/build-support/appimage/appimage-exec.sh +++ b/pkgs/build-support/appimage/appimage-exec.sh @@ -1,4 +1,6 @@ #!@shell@ +# shellcheck shell=bash + if [ -n "$DEBUG" ] ; then set -x fi @@ -13,8 +15,10 @@ unpack() { local out="$2" # https://github.com/AppImage/libappimage/blob/ca8d4b53bed5cbc0f3d0398e30806e0d3adeaaab/src/libappimage/utils/MagicBytesChecker.cpp#L45-L63 - local appimageSignature=$(readelf -h "$src" | awk 'NR==2{print $10$11;}') - local appimageType=$(readelf -h "$src" | awk 'NR==2{print $12;}') + local appimageSignature; + appimageSignature="$(LC_ALL=C readelf -h "$src" | awk 'NR==2{print $10$11;}')" + local appimageType; + appimageType="$(LC_ALL=C readelf -h "$src" | awk 'NR==2{print $12;}')" # check AppImage signature if [ "$appimageSignature" != "4149" ]; then @@ -35,7 +39,7 @@ unpack() { # multiarch offset one-liner using same method as AppImage # see https://gist.github.com/probonopd/a490ba3401b5ef7b881d5e603fa20c93 - offset=$(readelf -h "$src" | awk 'NR==13{e_shoff=$5} NR==18{e_shentsize=$5} NR==19{e_shnum=$5} END{print e_shoff+e_shentsize*e_shnum}') + offset=$(LC_ALL=C readelf -h "$src" | awk 'NR==13{e_shoff=$5} NR==18{e_shentsize=$5} NR==19{e_shnum=$5} END{print e_shoff+e_shentsize*e_shnum}') echo "Uncompress $(basename "$src") of type $appimageType @ offset $offset" unsquashfs -q -d "$out" -o "$offset" "$src" chmod go-w "$out" @@ -71,15 +75,15 @@ apprun() { wrap() { - cd "$APPDIR" || exit # quite same in appimageTools export APPIMAGE_SILENT_INSTALL=1 if [ -n "$APPIMAGE_DEBUG_EXEC" ]; then + cd "$APPDIR" || true exec "$APPIMAGE_DEBUG_EXEC" fi - exec ./AppRun "$@" + exec "$APPDIR/AppRun" "$@" } usage() { diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix index f15ce80d6d9..a759726eb10 100644 --- a/pkgs/build-support/appimage/default.nix +++ b/pkgs/build-support/appimage/default.nix @@ -1,4 +1,5 @@ -{ stdenv +{ lib + , bash , binutils-unwrapped , coreutils @@ -15,7 +16,7 @@ rec { src = ./appimage-exec.sh; isExecutable = true; dir = "bin"; - path = with pkgs; stdenv.lib.makeBinPath [ + path = lib.makeBinPath [ bash binutils-unwrapped coreutils @@ -44,7 +45,7 @@ rec { targetPkgs = pkgs: [ appimage-exec ] ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs; - runScript = "appimage-exec.sh -w ${src}"; + runScript = "appimage-exec.sh -w ${src} --"; } // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage)))); wrapType2 = args@{ name, src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage @@ -60,12 +61,12 @@ rec { targetPkgs = pkgs: with pkgs; [ gtk3 bashInteractive - gnome3.zenity + gnome.zenity python2 xorg.xrandr which perl - xdg_utils + xdg-utils iana-etc krb5 ]; @@ -120,7 +121,6 @@ rec { libusb1 udev dbus-glib - libav atk at-spi2-atk libudev0-shim @@ -163,7 +163,6 @@ rec { SDL_mixer SDL2_ttf SDL2_mixer - gstreamer libappindicator-gtk2 libcaca libcanberra @@ -172,7 +171,7 @@ rec { librsvg xorg.libXft libvdpau - alsaLib + alsa-lib harfbuzz e2fsprogs @@ -185,6 +184,7 @@ rec { # libraries not on the upstream include list, but nevertheless expected # by at least one appimage libtool.lib # for Synfigstudio + xorg.libxshmfence # for apple-music-electron at-spi2-core ]; }; |