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 65ac1da5030..70b124a7b2e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -852,7 +852,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 {};