summary refs log tree commit diff
path: root/pkgs/top-level/release.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2008-11-30 18:36:23 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2008-11-30 18:36:23 +0000
commitc058ff0e40b7613963e95e3e5332afa86094929b (patch)
treefa0cf0346629f4c01e63e2d1d5f17a60b27058fb /pkgs/top-level/release.nix
parent1cd17e814084947d446a2fae8eaa037fe2c8fcb0 (diff)
downloadnixpkgs-c058ff0e40b7613963e95e3e5332afa86094929b.tar
nixpkgs-c058ff0e40b7613963e95e3e5332afa86094929b.tar.gz
nixpkgs-c058ff0e40b7613963e95e3e5332afa86094929b.tar.bz2
nixpkgs-c058ff0e40b7613963e95e3e5332afa86094929b.tar.lz
nixpkgs-c058ff0e40b7613963e95e3e5332afa86094929b.tar.xz
nixpkgs-c058ff0e40b7613963e95e3e5332afa86094929b.tar.zst
nixpkgs-c058ff0e40b7613963e95e3e5332afa86094929b.zip
* Moved the expression for building a Nixpkgs tarball from the release
  tree.

svn path=/nixpkgs/trunk/; revision=13522
Diffstat (limited to 'pkgs/top-level/release.nix')
-rw-r--r--pkgs/top-level/release.nix93
1 files changed, 85 insertions, 8 deletions
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index fe8e276149b..fcde4a16a91 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