From 32f75a0f2af55b50061629fd4e51221f15ada457 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 12 Aug 2023 13:13:14 +0300 Subject: [PATCH] nixos/install-tools: Add manpages to packages instead of seperating them Since each such `nixos-*` tool has it's own derivation, exposed in pkgs, There is no point in separating the manuals from the packages. If someone wishes to have the tools without the manuals, they can use meta.outputsToInstall to disable the installation of the manpages of these packages. This Fixes #244450. --- nixos/doc/manual/default.nix | 6 ++---- .../installer/tools}/manpages/README.md | 0 .../installer/tools}/manpages/nixos-build-vms.8 | 0 .../installer/tools}/manpages/nixos-enter.8 | 0 .../installer/tools}/manpages/nixos-generate-config.8 | 0 .../installer/tools}/manpages/nixos-install.8 | 0 .../installer/tools}/manpages/nixos-version.8 | 0 nixos/modules/installer/tools/tools.nix | 11 +++++++++++ nixos/modules/misc/documentation.nix | 2 +- nixos/release.nix | 2 +- pkgs/tools/nix/nixos-install-tools/default.nix | 3 +-- 11 files changed, 16 insertions(+), 8 deletions(-) rename nixos/{doc/manual => modules/installer/tools}/manpages/README.md (100%) rename nixos/{doc/manual => modules/installer/tools}/manpages/nixos-build-vms.8 (100%) rename nixos/{doc/manual => modules/installer/tools}/manpages/nixos-enter.8 (100%) rename nixos/{doc/manual => modules/installer/tools}/manpages/nixos-generate-config.8 (100%) rename nixos/{doc/manual => modules/installer/tools}/manpages/nixos-install.8 (100%) rename nixos/{doc/manual => modules/installer/tools}/manpages/nixos-version.8 (100%) diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix index 902dee701801..962c74edee89 100644 --- a/nixos/doc/manual/default.nix +++ b/nixos/doc/manual/default.nix @@ -184,8 +184,8 @@ in rec { ''; - # Generate the NixOS manpages. - manpages = runCommand "nixos-manpages" + # Generate the configuration.nix manual package + configuration-manual = runCommand "nixos-manpages" { nativeBuildInputs = [ buildPackages.installShellFiles buildPackages.nixos-render-docs @@ -194,8 +194,6 @@ in rec { } '' # Generate manpages. - mkdir -p $out/share/man/man8 - installManPage ${./manpages}/* mkdir -p $out/share/man/man5 nixos-render-docs -j $NIX_BUILD_CORES options manpage \ --revision ${lib.escapeShellArg revision} \ diff --git a/nixos/doc/manual/manpages/README.md b/nixos/modules/installer/tools/manpages/README.md similarity index 100% rename from nixos/doc/manual/manpages/README.md rename to nixos/modules/installer/tools/manpages/README.md diff --git a/nixos/doc/manual/manpages/nixos-build-vms.8 b/nixos/modules/installer/tools/manpages/nixos-build-vms.8 similarity index 100% rename from nixos/doc/manual/manpages/nixos-build-vms.8 rename to nixos/modules/installer/tools/manpages/nixos-build-vms.8 diff --git a/nixos/doc/manual/manpages/nixos-enter.8 b/nixos/modules/installer/tools/manpages/nixos-enter.8 similarity index 100% rename from nixos/doc/manual/manpages/nixos-enter.8 rename to nixos/modules/installer/tools/manpages/nixos-enter.8 diff --git a/nixos/doc/manual/manpages/nixos-generate-config.8 b/nixos/modules/installer/tools/manpages/nixos-generate-config.8 similarity index 100% rename from nixos/doc/manual/manpages/nixos-generate-config.8 rename to nixos/modules/installer/tools/manpages/nixos-generate-config.8 diff --git a/nixos/doc/manual/manpages/nixos-install.8 b/nixos/modules/installer/tools/manpages/nixos-install.8 similarity index 100% rename from nixos/doc/manual/manpages/nixos-install.8 rename to nixos/modules/installer/tools/manpages/nixos-install.8 diff --git a/nixos/doc/manual/manpages/nixos-version.8 b/nixos/modules/installer/tools/manpages/nixos-version.8 similarity index 100% rename from nixos/doc/manual/manpages/nixos-version.8 rename to nixos/modules/installer/tools/manpages/nixos-version.8 diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 4dce4f998052..6564b583464a 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -9,12 +9,19 @@ let makeProg = args: pkgs.substituteAll (args // { dir = "bin"; isExecutable = true; + nativeBuildInputs = [ + pkgs.installShellFiles + ]; + postInstall = '' + installManPage ${args.manPage} + ''; }); nixos-build-vms = makeProg { name = "nixos-build-vms"; src = ./nixos-build-vms/nixos-build-vms.sh; inherit (pkgs) runtimeShell; + manPage = ./manpages/nixos-build-vms.8; }; nixos-install = makeProg { @@ -27,6 +34,7 @@ let nixos-enter pkgs.util-linuxMinimal ]; + manPage = ./manpages/nixos-install.8; }; nixos-rebuild = pkgs.nixos-rebuild.override { nix = config.nix.package.out; }; @@ -40,6 +48,7 @@ let btrfs = "${pkgs.btrfs-progs}/bin/btrfs"; inherit (config.system.nixos-generate-config) configuration desktopConfiguration; xserverEnabled = config.services.xserver.enable; + manPage = ./manpages/nixos-generate-config.8; }; inherit (pkgs) nixos-option; @@ -57,6 +66,7 @@ let } // optionalAttrs (config.system.configurationRevision != null) { configurationRevision = config.system.configurationRevision; }); + manPage = ./manpages/nixos-version.8; }; nixos-enter = makeProg { @@ -66,6 +76,7 @@ let path = makeBinPath [ pkgs.util-linuxMinimal ]; + manPage = ./manpages/nixos-enter.8; }; in diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix index 820450e3ce2a..c94f5c53d9c5 100644 --- a/nixos/modules/misc/documentation.nix +++ b/nixos/modules/misc/documentation.nix @@ -346,7 +346,7 @@ in system.build.manual = manual; environment.systemPackages = [] - ++ optional cfg.man.enable manual.manpages + ++ optional cfg.man.enable manual.configuration-manual ++ optionals cfg.doc.enable [ manual.manualHTML nixos-help ]; }) diff --git a/nixos/release.nix b/nixos/release.nix index 93ebe000fc00..2d7661e935f6 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -143,7 +143,7 @@ in rec { manualHTML = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualHTML); manual = manualHTML; # TODO(@oxij): remove eventually manualEpub = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualEpub)); - manpages = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manpages); + manpages = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.configuration-manual); options = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux; diff --git a/pkgs/tools/nix/nixos-install-tools/default.nix b/pkgs/tools/nix/nixos-install-tools/default.nix index 63f2da0df21c..37a3f880536e 100644 --- a/pkgs/tools/nix/nixos-install-tools/default.nix +++ b/pkgs/tools/nix/nixos-install-tools/default.nix @@ -20,8 +20,7 @@ in inherit (config.system.build) nixos-install nixos-generate-config nixos-enter; - # Required for --help. - inherit (config.system.build.manual) manpages; + inherit (config.system.build.manual) configuration-manual; }; extraOutputsToInstall = ["man"];