Manual: Don't depend on the JSON options

+22 -28
+21 -27
nixos/doc/manual/default.nix
··· 30 30 else 31 31 fn; 32 32 33 - # Convert the list of options into an XML file and a JSON file. The builtin 34 - # unsafeDiscardStringContext is used to prevent the realisation of the store 35 - # paths which are used in options definitions. 33 + # Convert the list of options into an XML file. The builtin 34 + # unsafeDiscardStringContext is used to prevent the realisation of 35 + # the store paths which are used in options definitions. 36 36 optionsXML = builtins.toFile "options.xml" (builtins.unsafeDiscardStringContext (builtins.toXML optionsList')); 37 - optionsJSON = builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON optionsList')); 38 - 39 - # Tools-friendly version of the list of NixOS options. 40 - options' = stdenv.mkDerivation { 41 - name = "options"; 42 - 43 - buildCommand = '' 44 - # Export list of options in different format. 45 - dst=$out/share/doc/nixos 46 - mkdir -p $dst 47 - 48 - cp ${optionsJSON} $dst/options.json 49 - cp ${optionsXML} $dst/options.xml 50 - 51 - mkdir -p $out/nix-support 52 - echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products 53 - echo "file xml $dst/options.xml" >> $out/nix-support/hydra-build-products 54 - ''; # */ 55 - 56 - meta.description = "List of NixOS options in various formats."; 57 - }; 58 37 59 38 optionsDocBook = runCommand "options-db.xml" {} '' 60 - optionsXML=${options'}/share/doc/nixos/options.xml 39 + optionsXML=${optionsXML} 61 40 if grep /nixpkgs/nixos/modules $optionsXML; then 62 41 echo "The manual appears to depend on the location of Nixpkgs, which is bad" 63 42 echo "since this prevents sharing via the NixOS channel. This is typically" ··· 83 62 84 63 in rec { 85 64 86 - # Tools-friendly version of the list of NixOS options. 87 - options = options'; 65 + # The NixOS options in JSON format. 66 + optionsJSON = stdenv.mkDerivation { 67 + name = "options-json"; 68 + 69 + buildCommand = '' 70 + # Export list of options in different format. 71 + dst=$out/share/doc/nixos 72 + mkdir -p $dst 73 + 74 + cp ${builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON optionsList'))} $dst/options.json 75 + 76 + mkdir -p $out/nix-support 77 + echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products 78 + ''; # */ 79 + 80 + meta.description = "List of NixOS options in JSON format"; 81 + }; 88 82 89 83 # Generate the NixOS manual. 90 84 manual = stdenv.mkDerivation {
+1 -1
nixos/release.nix
··· 130 130 manual = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manual); 131 131 manualPDF = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manualPDF)).x86_64-linux; 132 132 manpages = buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.manpages); 133 - options = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.options)).x86_64-linux; 133 + options = (buildFromConfig ({ pkgs, ... }: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux; 134 134 135 135 136 136 # Build the initial ramdisk so Hydra can keep track of its size over time.