From c058ff0e40b7613963e95e3e5332afa86094929b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 30 Nov 2008 18:36:23 +0000 Subject: [PATCH] * Moved the expression for building a Nixpkgs tarball from the release tree. svn path=/nixpkgs/trunk/; revision=13522 --- pkgs/top-level/release.nix | 93 ++++++++++++++++++++++++++++++++++---- 1 file changed, 85 insertions(+), 8 deletions(-) diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index fe8e276149b7..fcde4a16a913 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -2,13 +2,90 @@ let allPackages = import ./all-packages.nix; - pkgs = { - inherit (allPackages {system = "i686-linux";}) - bash - gcc - ; - hello = {system}: (allPackages {inherit system;}).hello; - pan = {system}: (allPackages {inherit system;}).pan; + jobs = { + + + tarball = + { nixpkgs ? {path = ../../../nixpkgs-wc; rev = 1234;} + , officialRelease ? false + }: + + with import nixpkgs.path {}; + + releaseTools.makeSourceTarball { + name = "nixpkgs-tarball"; + src = nixpkgs; + inherit officialRelease; + + buildInputs = [ + lzma + libxml2 # Needed for the release notes. + libxslt + w3m + nixUnstable # Needed to check whether the expressions are valid. + ]; + + configurePhase = '' + eval "$preConfigure" + releaseName=nixpkgs-$(cat $src/VERSION)$VERSION_SUFFIX + echo "release name is $releaseName" + echo $releaseName > relname + ''; + + dontBuild = false; + + buildPhase = '' + echo "building docs..." + (cd doc && make docbookxsl=${docbook5_xsl}/xml/xsl/docbook) || false + ln -s doc/NEWS.txt NEWS + ''; + + doCheck = true; + + checkPhase = '' + # Check that we can fully evaluate build-for-release.nix. + header "checking pkgs/top-level/build-for-release.nix" + nix-env --readonly-mode -f pkgs/top-level/build-for-release.nix \ + -qa \* --drv-path --system-filter \* --system + stopNest + + # Check that all-packages.nix evaluates on a number of platforms. + for platform in i686-linux x86_64-linux powerpc-linux i686-freebsd powerpc-darwin i686-darwin; do + header "checking pkgs/top-level/all-packages.nix on $platform" + nix-env --readonly-mode -f pkgs/top-level/all-packages.nix \ + --argstr system "$platform" \ + -qa \* --drv-path --system-filter \* --system + stopNest + done + ''; + + distPhase = '' + ensureDir $out/tarballs + mkdir ../$releaseName + cp -prd . ../$releaseName + (cd .. && tar cfa $out/tarballs/$releaseName.tar.bz2 $releaseName) || false + (cd .. && tar cfa $out/tarballs/$releaseName.tar.lzma $releaseName) || false + + ensureDir $out/release-notes + cp doc/NEWS.html $out/release-notes/index.html + cp doc/style.css $out/release-notes/ + echo "doc release-notes $out/release-notes" >> $out/nix-support/hydra-build-products + + ensureDir $out/manual + cp doc/manual.html $out/manual/index.html + cp doc/style.css $out/manual/ + echo "doc manual $out/manual" >> $out/nix-support/hydra-build-products + ''; + }; + + + inherit (allPackages {system = "i686-linux";}) + bash + gcc + ; + hello = {system}: (allPackages {inherit system;}).hello; + pan = {system}: (allPackages {inherit system;}).pan; + }; -in pkgs +in jobs