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.

Changed files
+16 -8
nixos
pkgs
tools
nix
nixos-install-tools
+2 -4
nixos/doc/manual/default.nix
···
'';
-
# 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
···
}
''
# 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} \
nixos/doc/manual/manpages/README.md nixos/modules/installer/tools/manpages/README.md
nixos/doc/manual/manpages/nixos-build-vms.8 nixos/modules/installer/tools/manpages/nixos-build-vms.8
nixos/doc/manual/manpages/nixos-enter.8 nixos/modules/installer/tools/manpages/nixos-enter.8
nixos/doc/manual/manpages/nixos-generate-config.8 nixos/modules/installer/tools/manpages/nixos-generate-config.8
nixos/doc/manual/manpages/nixos-install.8 nixos/modules/installer/tools/manpages/nixos-install.8
nixos/doc/manual/manpages/nixos-version.8 nixos/modules/installer/tools/manpages/nixos-version.8
+11
nixos/modules/installer/tools/tools.nix
···
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 {
···
nixos-enter
pkgs.util-linuxMinimal
];
+
manPage = ./manpages/nixos-install.8;
};
nixos-rebuild = pkgs.nixos-rebuild.override { nix = config.nix.package.out; };
···
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;
···
} // optionalAttrs (config.system.configurationRevision != null) {
configurationRevision = config.system.configurationRevision;
});
+
manPage = ./manpages/nixos-version.8;
};
nixos-enter = makeProg {
···
path = makeBinPath [
pkgs.util-linuxMinimal
];
+
manPage = ./manpages/nixos-enter.8;
};
in
+1 -1
nixos/modules/misc/documentation.nix
···
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 ];
})
+1 -1
nixos/release.nix
···
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;
+1 -2
pkgs/tools/nix/nixos-install-tools/default.nix
···
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"];