diff --git a/pkgs/build-support/appimage/appimage-exec.sh b/pkgs/build-support/appimage/appimage-exec.sh index 7986c589667b..4ff6802e6453 100755 --- a/pkgs/build-support/appimage/appimage-exec.sh +++ b/pkgs/build-support/appimage/appimage-exec.sh @@ -75,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/tools/package-management/appimage-run/default.nix b/pkgs/tools/package-management/appimage-run/default.nix index 3bc59f2ad148..98a04dff8f89 100644 --- a/pkgs/tools/package-management/appimage-run/default.nix +++ b/pkgs/tools/package-management/appimage-run/default.nix @@ -1,4 +1,4 @@ -{ appimageTools, buildFHSUserEnv, extraPkgs ? pkgs: [] }: +{ appimageTools, buildFHSUserEnv, extraPkgs ? pkgs: [], appimage-run-tests ? null }: let fhsArgs = appimageTools.defaultFhsEnvArgs; @@ -8,4 +8,6 @@ in buildFHSUserEnv (fhsArgs // { targetPkgs = pkgs: [ appimageTools.appimage-exec ] ++ fhsArgs.targetPkgs pkgs ++ extraPkgs pkgs; runScript = "appimage-exec.sh"; + + passthru.tests.appimage-run = appimage-run-tests; }) diff --git a/pkgs/tools/package-management/appimage-run/test.nix b/pkgs/tools/package-management/appimage-run/test.nix new file mode 100644 index 000000000000..c9bc63c08a8e --- /dev/null +++ b/pkgs/tools/package-management/appimage-run/test.nix @@ -0,0 +1,24 @@ +{ runCommand, fetchurl, appimage-run, glibcLocales, file }: +let + # any AppImage usable on cli, really + sample-appImage = fetchurl { + url = "https://github.com/AppImage/AppImageKit/releases/download/12/appimagetool-x86_64.AppImage"; + sha256 = "04ws94q71bwskmhizhwmaf41ma4wabvfgjgkagr8wf3vakgv866r"; + }; +in + runCommand "appimage-run-tests" { + buildInputs = [ appimage-run glibcLocales file ]; + meta.platforms = [ "x86_64-linux" ]; + } + '' + export HOME=$(mktemp -d) + set -x + # regression test for #101137, must come first + LANG=fr_FR appimage-run ${sample-appImage} --list ${sample-appImage} + # regression test for #108426 + cp ${sample-appImage} foo.appImage + LANG=fr_FR appimage-run ${sample-appImage} --list foo.appImage + set +x + touch $out + '' + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8b86a0631a06..4ce78cd298a0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -884,7 +884,12 @@ in inherit (androidenv.androidPkgs_9_0) build-tools; }; - appimage-run = callPackage ../tools/package-management/appimage-run {}; + appimage-run = callPackage ../tools/package-management/appimage-run { }; + appimage-run-tests = callPackage ../tools/package-management/appimage-run/test.nix { + appimage-run = appimage-run.override { + appimage-run-tests = null; /* break boostrap cycle for passthru.tests */ + }; + }; appimagekit = callPackage ../tools/package-management/appimagekit {};