summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rwxr-xr-xpkgs/build-support/appimage/appimage-exec.sh4
-rw-r--r--pkgs/tools/package-management/appimage-run/default.nix4
-rw-r--r--pkgs/tools/package-management/appimage-run/test.nix24
-rw-r--r--pkgs/top-level/all-packages.nix7
4 files changed, 35 insertions, 4 deletions
diff --git a/pkgs/build-support/appimage/appimage-exec.sh b/pkgs/build-support/appimage/appimage-exec.sh
index 7986c589667..4ff6802e645 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 3bc59f2ad14..98a04dff8f8 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 00000000000..c9bc63c08a8
--- /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 8b86a0631a0..4ce78cd298a 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 {};