summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorGuillaume Girol <symphorien@users.noreply.github.com>2021-01-25 18:18:42 +0000
committerGitHub <noreply@github.com>2021-01-25 18:18:42 +0000
commit7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d (patch)
treed5603c62b808ceffd1cd9985478ed70acfd700c4 /pkgs
parent7a5e4b7df8f843084ddef7b73438c54875d68177 (diff)
parentf54f718871ed34cc8e6a71905349d34f00d6fd6d (diff)
downloadnixpkgs-7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d.tar
nixpkgs-7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d.tar.gz
nixpkgs-7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d.tar.bz2
nixpkgs-7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d.tar.lz
nixpkgs-7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d.tar.xz
nixpkgs-7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d.tar.zst
nixpkgs-7f355dcc4ee4beb9f3ba6a4bd9a3f353069fe58d.zip
Merge pull request #108427 from symphorien/chdir-appimage
appimage-run: fix #108426
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 {};