Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
104 lines
3.3 KiB
Nix
104 lines
3.3 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
fetchpatch,
|
|
autoreconfHook,
|
|
bash,
|
|
buildPackages,
|
|
coreutils,
|
|
nixosTests,
|
|
perl,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "fakechroot";
|
|
version = "2.20.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "dex4er";
|
|
repo = "fakechroot";
|
|
rev = version;
|
|
sha256 = "0xgnwazrmrg4gm30xjxdn6sx3lhqvxahrh6gmy3yfswxc30pmg86";
|
|
};
|
|
|
|
# Use patch from https://github.com/dex4er/fakechroot/pull/46 , remove once merged!
|
|
# Courtesy of one of our own, @copumpkin!
|
|
patches = [
|
|
(fetchpatch {
|
|
url = "https://github.com/dex4er/fakechroot/pull/46/commits/dcc0cfe3941e328538f9e62b2c0b15430d393ec1.patch";
|
|
sha256 = "1mk8j2njd94s7vf2wggi08xxxzx8dxrvdricl9cbspvkyp715w2m";
|
|
# Don't bother trying to reconcile conflicts for NEWS entries, as they will continue to occur
|
|
# and are uninteresting as well as unimportant for our purposes (since NEWS never leaves the build env).
|
|
excludes = [ "NEWS.md" ];
|
|
})
|
|
|
|
# glibc 2.33 compat (https://github.com/dex4er/fakechroot/pull/85/)
|
|
(fetchpatch {
|
|
url = "https://github.com/dex4er/fakechroot/commit/534e6d555736b97211523970d378dfb0db2608e9.patch";
|
|
sha256 = "sha256-bUlGJZvOSrATPt8bxGqU1UETTUD9V/HhJyA5ZxsOLQU=";
|
|
})
|
|
(fetchpatch {
|
|
url = "https://github.com/dex4er/fakechroot/commit/75d7e6fa191c11a791faff06a0de86eaa7801d05.patch";
|
|
sha256 = "sha256-vWN7zFkKlBd/F+h/66z21RiZqkSCn3UIzy9NHV7TYDg=";
|
|
})
|
|
(fetchpatch {
|
|
url = "https://github.com/dex4er/fakechroot/commit/693a3597ea7fccfb62f357503ff177bd3e3d5a89.patch";
|
|
sha256 = "sha256-bFXsT0hWocJFbtS1cpzo7oIy/x66iUw6QE1/cEoZ+3k=";
|
|
})
|
|
(fetchpatch {
|
|
url = "https://github.com/dex4er/fakechroot/commit/e7c1f3a446e594a4d0cce5f5d499c9439ce1d5c5.patch";
|
|
sha256 = "sha256-eX6kB4U1ZlXoRtkSVEIBTRjO/cTS/7z5a9S366DiRMg=";
|
|
})
|
|
# pass __readlinkat_chk buffer length
|
|
(fetchpatch {
|
|
url = "https://github.com/dex4er/fakechroot/pull/115/commits/15479d9436b534cee0115064bd8deb8d4ece9b8c.patch";
|
|
hash = "sha256-wMIZ3hW5XkRXQYBMADlN6kxhDSiEr84PGWBW+f4b4Ko=";
|
|
})
|
|
];
|
|
|
|
postPatch = ''
|
|
for f in scripts/*; do
|
|
substituteInPlace $f \
|
|
--replace-quiet "@SHELL@" "${lib.getExe bash}" \
|
|
--replace-quiet "@CHROOT@" "${lib.getExe' coreutils "chroot"}" \
|
|
--replace-quiet "@ECHO@" "${lib.getExe' coreutils "echo"}" \
|
|
--replace-quiet "@ENV@" "${lib.getExe' coreutils "env"}" \
|
|
--replace-quiet "@MKFIFO@" "${lib.getExe' coreutils "mkfifo"}" \
|
|
--replace-quiet "@SEQ@" "${lib.getExe' coreutils "seq"}"
|
|
done
|
|
'';
|
|
|
|
nativeBuildInputs = [ autoreconfHook ];
|
|
|
|
buildInputs = [
|
|
bash
|
|
perl
|
|
];
|
|
|
|
configureFlags = [
|
|
# pass in correct pod2man when cross-compiling
|
|
"ac_cv_path_POD2MAN=${lib.getExe' buildPackages.perl "pod2man"}"
|
|
];
|
|
|
|
passthru = {
|
|
tests = {
|
|
# A lightweight *unit* test that exercises fakeroot and fakechroot together:
|
|
nixos-etc = nixosTests.etc.test-etc-fakeroot;
|
|
};
|
|
};
|
|
|
|
preFixup = ''
|
|
patchShebangs --host $out/bin
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/dex4er/fakechroot";
|
|
description = "Give a fake chroot environment through LD_PRELOAD";
|
|
license = licenses.lgpl21;
|
|
maintainers = with maintainers; [ offline ];
|
|
platforms = platforms.linux;
|
|
};
|
|
|
|
}
|