From efffe2ad3172a1336c5a629b9e83dbbf1d7f14b7 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Sat, 15 Feb 2025 19:36:24 +0100 Subject: [PATCH 1/5] man-pages: use finalAttrs pattern --- pkgs/by-name/ma/man-pages/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ma/man-pages/package.nix b/pkgs/by-name/ma/man-pages/package.nix index 9154a4759420..66634bbc9f31 100644 --- a/pkgs/by-name/ma/man-pages/package.nix +++ b/pkgs/by-name/ma/man-pages/package.nix @@ -4,12 +4,12 @@ fetchurl, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "man-pages"; version = "6.9.1"; src = fetchurl { - url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz"; + url = "mirror://kernel/linux/docs/man-pages/${finalAttrs.pname}-${finalAttrs.version}.tar.xz"; hash = "sha256-4jy6wp8RC6Vx8NqFI+edNzaRRm7X8qMTAXIYF9NFML0="; }; @@ -38,4 +38,4 @@ stdenv.mkDerivation rec { platforms = with platforms; unix; priority = 30; # if a package comes with its own man page, prefer it }; -} +}) From 569d2da01d963edd64f9a21fcd5c789b25a03463 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Sat, 15 Feb 2025 19:38:37 +0100 Subject: [PATCH 2/5] man-pages: remove use of with lib; --- pkgs/by-name/ma/man-pages/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ma/man-pages/package.nix b/pkgs/by-name/ma/man-pages/package.nix index 66634bbc9f31..f7910b6e0c04 100644 --- a/pkgs/by-name/ma/man-pages/package.nix +++ b/pkgs/by-name/ma/man-pages/package.nix @@ -31,11 +31,11 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p $out/bin ''; - meta = with lib; { + meta = { description = "Linux development manual pages"; homepage = "https://www.kernel.org/doc/man-pages/"; - license = licenses.gpl2Plus; - platforms = with platforms; unix; + license = lib.licenses.gpl2Plus; + platforms = lib.platforms.unix; priority = 30; # if a package comes with its own man page, prefer it }; }) From 5aad5c6d28ce9133159c249c86a50433255daff7 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Sat, 15 Feb 2025 19:44:08 +0100 Subject: [PATCH 3/5] man-pages: provide update script --- pkgs/by-name/ma/man-pages/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/ma/man-pages/package.nix b/pkgs/by-name/ma/man-pages/package.nix index f7910b6e0c04..e200c071b97f 100644 --- a/pkgs/by-name/ma/man-pages/package.nix +++ b/pkgs/by-name/ma/man-pages/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + directoryListingUpdater, }: stdenv.mkDerivation (finalAttrs: { @@ -31,6 +32,10 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p $out/bin ''; + passthru.updateScript = directoryListingUpdater { + url = "https://www.kernel.org/pub/linux/docs/man-pages/"; + }; + meta = { description = "Linux development manual pages"; homepage = "https://www.kernel.org/doc/man-pages/"; From be2a5c11b6b4ff4c7d77b2476ee0a5cd18bae248 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Sat, 15 Feb 2025 19:44:47 +0100 Subject: [PATCH 4/5] man-pages: 6.9.1 -> 6.11 --- pkgs/by-name/ma/man-pages/package.nix | 31 ++++++++++++++------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/pkgs/by-name/ma/man-pages/package.nix b/pkgs/by-name/ma/man-pages/package.nix index e200c071b97f..294db9387354 100644 --- a/pkgs/by-name/ma/man-pages/package.nix +++ b/pkgs/by-name/ma/man-pages/package.nix @@ -7,29 +7,30 @@ stdenv.mkDerivation (finalAttrs: { pname = "man-pages"; - version = "6.9.1"; + version = "6.11"; src = fetchurl { - url = "mirror://kernel/linux/docs/man-pages/${finalAttrs.pname}-${finalAttrs.version}.tar.xz"; - hash = "sha256-4jy6wp8RC6Vx8NqFI+edNzaRRm7X8qMTAXIYF9NFML0="; + url = "mirror://kernel/linux/docs/man-pages/man-pages-${finalAttrs.version}.tar.xz"; + hash = "sha256-3aou2i6NKG++wiHRFfEtP/9dNsxQZs3+zI0koljVixk="; }; + dontBuild = true; + enableParallelInstalling = true; + makeFlags = [ + "-R" + "VERSION=${finalAttrs.version}" "prefix=${placeholder "out"}" ]; - dontBuild = true; - - outputDocdev = "out"; - - enableParallelInstalling = true; - - postInstall = '' - # The manpath executable looks up manpages from PATH. And this package won't - # appear in PATH unless it has a /bin folder. Without the change - # 'nix-shell -p man-pages' does not pull in the search paths. - # See 'man 5 manpath' for the lookup order. - mkdir -p $out/bin + preConfigure = '' + # If not provided externally, the makefile will attempt to determine the + # date and time of the release from the Git repository log, which is not + # available in the distributed tarball. We therefore supply it from + # $SOURCE_DATE_EPOCH, which is based on the most recent modification time + # of all source files. Cf. + # nixpkgs/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh + export DISTDATE="$(date --utc --date="@$SOURCE_DATE_EPOCH")" ''; passthru.updateScript = directoryListingUpdater { From 0bf298395140d9696ba7d46d8871f16020c8a656 Mon Sep 17 00:00:00 2001 From: Mikael Voss Date: Sat, 15 Feb 2025 20:27:56 +0100 Subject: [PATCH 5/5] man-pages: provide simple install check --- pkgs/by-name/ma/man-pages/package.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/by-name/ma/man-pages/package.nix b/pkgs/by-name/ma/man-pages/package.nix index 294db9387354..f95b65867e4d 100644 --- a/pkgs/by-name/ma/man-pages/package.nix +++ b/pkgs/by-name/ma/man-pages/package.nix @@ -3,6 +3,7 @@ stdenv, fetchurl, directoryListingUpdater, + man, }: stdenv.mkDerivation (finalAttrs: { @@ -14,8 +15,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-3aou2i6NKG++wiHRFfEtP/9dNsxQZs3+zI0koljVixk="; }; + nativeInstallCheckInputs = [ man ]; + dontBuild = true; enableParallelInstalling = true; + doInstallCheck = true; makeFlags = [ "-R" @@ -33,6 +37,17 @@ stdenv.mkDerivation (finalAttrs: { export DISTDATE="$(date --utc --date="@$SOURCE_DATE_EPOCH")" ''; + installCheckPhase = '' + runHook preInstallCheck + + # Check for a few well‐known man pages + for page in ldd write printf null hosts random ld.so; do + man -M "$out/share/man" -P cat "$page" >/dev/null + done + + runHook postInstallCheck + ''; + passthru.updateScript = directoryListingUpdater { url = "https://www.kernel.org/pub/linux/docs/man-pages/"; };