From 99ab228827cc704a6154af5e7f08f4d44b6c54a1 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Tue, 11 Feb 2025 10:57:24 +0100 Subject: [PATCH 1/7] linux-manual: remove use of rec --- pkgs/by-name/li/linux-manual/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/linux-manual/package.nix b/pkgs/by-name/li/linux-manual/package.nix index 4240654d6b34..66d2f25c35f3 100644 --- a/pkgs/by-name/li/linux-manual/package.nix +++ b/pkgs/by-name/li/linux-manual/package.nix @@ -5,7 +5,7 @@ linuxPackages_latest, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "linux-manual"; inherit (linuxPackages_latest.kernel) version src; From 0b0485e729fffd8421dc1c95d5dc71335fb73f03 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Tue, 11 Feb 2025 10:58:21 +0100 Subject: [PATCH 2/7] linux-manual: remove use of with lib; --- pkgs/by-name/li/linux-manual/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/li/linux-manual/package.nix b/pkgs/by-name/li/linux-manual/package.nix index 66d2f25c35f3..bd3b56122682 100644 --- a/pkgs/by-name/li/linux-manual/package.nix +++ b/pkgs/by-name/li/linux-manual/package.nix @@ -36,10 +36,10 @@ stdenv.mkDerivation { test -f $mandir/kmalloc.9 ''; - meta = with lib; { + meta = { homepage = "https://kernel.org/"; description = "Linux kernel API manual pages"; - license = licenses.gpl2Only; - maintainers = with maintainers; [ mvs ]; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ mvs ]; }; } From 9b19af176f07cec7089937a3419889fbae8eb4ac Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Tue, 11 Feb 2025 10:58:42 +0100 Subject: [PATCH 3/7] linux-manual: define meta.platforms --- pkgs/by-name/li/linux-manual/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/li/linux-manual/package.nix b/pkgs/by-name/li/linux-manual/package.nix index bd3b56122682..d6e112693eb4 100644 --- a/pkgs/by-name/li/linux-manual/package.nix +++ b/pkgs/by-name/li/linux-manual/package.nix @@ -41,5 +41,6 @@ stdenv.mkDerivation { description = "Linux kernel API manual pages"; license = lib.licenses.gpl2Only; maintainers = with lib.maintainers; [ mvs ]; + platforms = lib.platforms.linux; }; } From 192ae83bd19b3a8fa70da2b41d955d3b87d025c8 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Tue, 11 Feb 2025 10:59:19 +0100 Subject: [PATCH 4/7] linux-manual: rely on SOURCE_DATE_EPOCH instead of stat --- pkgs/by-name/li/linux-manual/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/li/linux-manual/package.nix b/pkgs/by-name/li/linux-manual/package.nix index d6e112693eb4..86e77a03144d 100644 --- a/pkgs/by-name/li/linux-manual/package.nix +++ b/pkgs/by-name/li/linux-manual/package.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation { mandir=$out/share/man/man9 mkdir -p $mandir - KBUILD_BUILD_TIMESTAMP=$(stat -c %Y Makefile) \ + KBUILD_BUILD_TIMESTAMP="$(date -u -d "@$SOURCE_DATE_EPOCH")" \ grep -F -l -Z \ --exclude-dir Documentation \ --exclude-dir tools \ From 0f8ba00a48480b171756be86a412b13a3d552800 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Tue, 11 Feb 2025 11:10:55 +0100 Subject: [PATCH 5/7] linux-manual: properly quote all shell expansions --- pkgs/by-name/li/linux-manual/package.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/li/linux-manual/package.nix b/pkgs/by-name/li/linux-manual/package.nix index 86e77a03144d..7e822bbf893e 100644 --- a/pkgs/by-name/li/linux-manual/package.nix +++ b/pkgs/by-name/li/linux-manual/package.nix @@ -21,19 +21,19 @@ stdenv.mkDerivation { ''; installPhase = '' - mandir=$out/share/man/man9 - mkdir -p $mandir + 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 + | xargs -0 -n 256 -P "$NIX_BUILD_CORES" \ + "$SHELL" -c '{ scripts/kernel-doc -man "$@" || :; } \ + | scripts/split-man.pl "$mandir"' kernel-doc - test -f $mandir/kmalloc.9 + test -f "$mandir/kmalloc.9" ''; meta = { From b26abf80023b96d4aaf8dbbabee23b915a5538e5 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Tue, 11 Feb 2025 11:03:49 +0100 Subject: [PATCH 6/7] =?UTF-8?q?linux-manual:=20call=20pre=E2=80=AF/?= =?UTF-8?q?=E2=80=AFpost=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/by-name/li/linux-manual/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/li/linux-manual/package.nix b/pkgs/by-name/li/linux-manual/package.nix index 7e822bbf893e..9e7fcb37f90e 100644 --- a/pkgs/by-name/li/linux-manual/package.nix +++ b/pkgs/by-name/li/linux-manual/package.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation { ''; installPhase = '' + runHook preInstall + export mandir="$out/share/man/man9" mkdir -p "$mandir" @@ -34,6 +36,8 @@ stdenv.mkDerivation { | scripts/split-man.pl "$mandir"' kernel-doc test -f "$mandir/kmalloc.9" + + runHook postInstall ''; meta = { From 884b4116d26aadd24ff0616bdee847eb21d69b23 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Tue, 11 Feb 2025 11:13:25 +0100 Subject: [PATCH 7/7] linux-manual: provide simple installation check --- pkgs/by-name/li/linux-manual/package.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/li/linux-manual/package.nix b/pkgs/by-name/li/linux-manual/package.nix index 9e7fcb37f90e..62111043d782 100644 --- a/pkgs/by-name/li/linux-manual/package.nix +++ b/pkgs/by-name/li/linux-manual/package.nix @@ -1,8 +1,9 @@ { lib, stdenv, - perl, linuxPackages_latest, + perl, + man, }: stdenv.mkDerivation { @@ -10,9 +11,11 @@ stdenv.mkDerivation { inherit (linuxPackages_latest.kernel) version src; nativeBuildInputs = [ perl ]; + nativeInstallCheckInputs = [ man ]; dontConfigure = true; dontBuild = true; + doInstallCheck = true; postPatch = '' patchShebangs --build \ @@ -35,11 +38,18 @@ stdenv.mkDerivation { "$SHELL" -c '{ scripts/kernel-doc -man "$@" || :; } \ | scripts/split-man.pl "$mandir"' kernel-doc - test -f "$mandir/kmalloc.9" - 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";