Merge pull request #279844 from doronbehar/tests/buildFHSEnv
tests.buildFHSEnv.libtinfo: init
This commit is contained in:
commit
52418a5183
2 changed files with 86 additions and 0 deletions
84
pkgs/test/buildFHSEnv/default.nix
Normal file
84
pkgs/test/buildFHSEnv/default.nix
Normal file
|
@ -0,0 +1,84 @@
|
|||
{ lib
|
||||
, buildFHSEnv
|
||||
, runCommand
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, dpkg
|
||||
, glibc
|
||||
, callPackage
|
||||
}:
|
||||
|
||||
let
|
||||
getSharedObjectFromDebian = sharedObjectName: src: stdenv.mkDerivation {
|
||||
name = "${sharedObjectName}-fetcher";
|
||||
inherit src;
|
||||
nativeBuildInputs = [
|
||||
dpkg
|
||||
];
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
dontFixup = true;
|
||||
installPhase = ''
|
||||
echo shared objects found are:
|
||||
ls -l usr/lib/*/
|
||||
cp usr/lib/*/${sharedObjectName} $out
|
||||
'';
|
||||
};
|
||||
|
||||
makeSharedObjectTest = sharedObject: targetPkgs: let
|
||||
lddFHSEnv = buildFHSEnv {
|
||||
name = "ldd-with-ncurses-FHS-env";
|
||||
inherit targetPkgs;
|
||||
runScript = "ldd";
|
||||
};
|
||||
ldd-in-FHS = "${lddFHSEnv}/bin/${lddFHSEnv.name}";
|
||||
ldd = "${lib.getBin glibc}/bin/ldd";
|
||||
find_libFHSEnv = buildFHSEnv {
|
||||
name = "ls-with-ncurses-FHS-env";
|
||||
targetPkgs = p: [
|
||||
p.ncurses5
|
||||
];
|
||||
runScript = "find /lib/ -executable";
|
||||
};
|
||||
find_lib-in-FHS = "${find_libFHSEnv}/bin/${find_libFHSEnv.name}";
|
||||
in runCommand "FHS-lib-test" {} ''
|
||||
echo original ldd output is:
|
||||
${ldd} ${sharedObject}
|
||||
lddOutput="$(${ldd-in-FHS} ${sharedObject})"
|
||||
echo ldd output inside FHS is:
|
||||
echo "$lddOutput"
|
||||
if echo $lddOutput | grep -q "not found"; then
|
||||
echo "shared object could not find all dependencies in the FHS!"
|
||||
echo The libraries below where found in the FHS:
|
||||
${find_lib-in-FHS}
|
||||
exit 1
|
||||
else
|
||||
echo $lddOutput > $out
|
||||
fi
|
||||
'';
|
||||
|
||||
in {
|
||||
# This test proves an issue with buildFHSEnv - don't expect it to succeed,
|
||||
# this is discussed in https://github.com/NixOS/nixpkgs/pull/279844 .
|
||||
libtinfo = makeSharedObjectTest (getSharedObjectFromDebian "libedit.so.2.0.70" (fetchurl {
|
||||
url = "mirror://debian/pool/main/libe/libedit/libedit2_3.1-20221030-2_amd64.deb";
|
||||
hash = "sha256-HPFKvycW0yedsS0GV6VzfPcAdKHnHTvfcyBmJePInOY=";
|
||||
})) (p: let
|
||||
ncurses' = p.ncurses.overrideAttrs (old: {
|
||||
configureFlags = old.configureFlags ++ [ "--with-termlib" ];
|
||||
postFixup = "";
|
||||
});
|
||||
in [
|
||||
(ncurses'.override { unicodeSupport = false; })
|
||||
p.libbsd
|
||||
]);
|
||||
|
||||
liblzma = makeSharedObjectTest (getSharedObjectFromDebian "libxml2.so.2.9.14" (fetchurl {
|
||||
url = "mirror://debian/pool/main/libx/libxml2/libxml2_2.9.14+dfsg-1.3~deb12u1_amd64.deb";
|
||||
hash = "sha256-NbdstwOPwclAIEpPBfM/+3nQJzU85Gk5fZrc+Pmz4ac=";
|
||||
})) (p: [
|
||||
p.xz
|
||||
p.zlib
|
||||
p.icu72
|
||||
]);
|
||||
}
|
|
@ -169,6 +169,8 @@ with pkgs;
|
|||
|
||||
pkgs-lib = recurseIntoAttrs (import ../pkgs-lib/tests { inherit pkgs; });
|
||||
|
||||
buildFHSEnv = recurseIntoAttrs (callPackages ./buildFHSEnv { });
|
||||
|
||||
nixpkgs-check-by-name = callPackage ./nixpkgs-check-by-name { };
|
||||
|
||||
auto-patchelf-hook = callPackage ./auto-patchelf-hook { };
|
||||
|
|
Loading…
Reference in a new issue