nixpkgs-suyu/lib/release-helpers.nix
Peter Simons bd9b32620c split release.nix into helpers and the jobs themselves
this allows for external use of the helpers, for example to build custom cds without editing release.nix

svn path=/nixos/trunk/; revision=32480
2012-02-22 20:28:57 +00:00

72 lines
2 KiB
Nix

{ nixpkgs ? ../../nixpkgs }:
{
makeIso =
{ module, type, description ? type, maintainers ? ["eelco"] }:
{ nixosSrc ? {outPath = ./.; rev = 1234;}
, officialRelease ? false
, system ? "i686-linux"
}:
with import nixpkgs {inherit system;};
let
version = builtins.readFile ../VERSION + (if officialRelease then "" else "pre${toString nixosSrc.rev}");
versionModule =
{ system.nixosVersion = version;
isoImage.isoBaseName = "nixos-${type}";
};
config = (import ./eval-config.nix {
inherit system nixpkgs;
modules = [ module versionModule ];
}).config;
iso = config.system.build.isoImage;
in
# Declare the ISO as a build product so that it shows up in Hydra.
runCommand "nixos-iso-${version}"
{ meta = {
description = "NixOS installation CD (${description}) - ISO image for ${system}";
maintainers = map (x: lib.getAttr x lib.maintainers) maintainers;
};
inherit iso;
passthru = { inherit config; };
}
''
ensureDir $out/nix-support
echo "file iso" $iso/iso/*.iso* >> $out/nix-support/hydra-build-products
''; # */
makeSystemTarball =
{ module, maintainers ? ["viric"]}:
{ nixosSrc ? {outPath = ./.; rev = 1234;}
, officialRelease ? false
, system ? "i686-linux"
}:
with import nixpkgs {inherit system;};
let
version = builtins.readFile ../VERSION + (if officialRelease then "" else "pre${toString nixosSrc.rev}");
versionModule = { system.nixosVersion = version; };
config = (import ./eval-config.nix {
inherit system nixpkgs;
modules = [ module versionModule ];
}).config;
tarball = config.system.build.tarball;
in
tarball //
{ meta = {
description = "NixOS system tarball for ${system} - ${stdenv.platform.name}";
maintainers = map (x: lib.getAttr x lib.maintainers) maintainers;
};
inherit config;
};
}