68 lines
1.4 KiB
Nix
68 lines
1.4 KiB
Nix
{
|
||
lib,
|
||
stdenv,
|
||
linuxPackages_latest,
|
||
perl,
|
||
python3,
|
||
man,
|
||
}:
|
||
|
||
stdenv.mkDerivation {
|
||
pname = "linux-manual";
|
||
inherit (linuxPackages_latest.kernel) version src;
|
||
|
||
nativeBuildInputs = [
|
||
perl
|
||
python3
|
||
];
|
||
nativeInstallCheckInputs = [ man ];
|
||
|
||
dontConfigure = true;
|
||
dontBuild = true;
|
||
doInstallCheck = true;
|
||
|
||
postPatch = ''
|
||
# Use scripts/kernel-doc.py here, not scripts/kernel-doc because
|
||
# patchShebangs skips symlinks
|
||
|
||
patchShebangs --build \
|
||
scripts/kernel-doc.py \
|
||
scripts/split-man.pl
|
||
'';
|
||
|
||
installPhase = ''
|
||
runHook preInstall
|
||
|
||
export mandir="$out/share/man/man9"
|
||
mkdir -p "$mandir"
|
||
|
||
KBUILD_BUILD_TIMESTAMP="$(date -u -d "@$SOURCE_DATE_EPOCH")" \
|
||
grep -F -l -Z \
|
||
--exclude-dir Documentation \
|
||
--exclude-dir tools \
|
||
-R '/**' \
|
||
| xargs -0 -n 256 -P "$NIX_BUILD_CORES" \
|
||
"$SHELL" -c '{ scripts/kernel-doc -man "$@" || :; } \
|
||
| scripts/split-man.pl "$mandir"' kernel-doc
|
||
|
||
runHook postInstall
|
||
'';
|
||
|
||
installCheckPhase = ''
|
||
runHook preInstallCheck
|
||
|
||
# Check for well‐known man page
|
||
man -M "$out/share/man" -P cat 9 kmalloc >/dev/null
|
||
|
||
runHook postInstallCheck
|
||
'';
|
||
|
||
meta = {
|
||
homepage = "https://kernel.org/";
|
||
description = "Linux kernel API manual pages";
|
||
license = lib.licenses.gpl2Only;
|
||
maintainers = with lib.maintainers; [ mvs ];
|
||
platforms = lib.platforms.linux;
|
||
};
|
||
}
|