summary refs log tree commit diff
path: root/pkgs/top-level/make-tarball.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-03-09 17:49:13 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-03-09 17:49:13 +0000
commitc94f5f7862833b7882aaca956e967d4a9df5365a (patch)
tree7f53642d9fc8d97bcf5f21c181615dc9064a9c4b /pkgs/top-level/make-tarball.nix
parent3979b5359b53a9f36d332dcc50fb21989e2639ec (diff)
downloadnixpkgs-c94f5f7862833b7882aaca956e967d4a9df5365a.tar
nixpkgs-c94f5f7862833b7882aaca956e967d4a9df5365a.tar.gz
nixpkgs-c94f5f7862833b7882aaca956e967d4a9df5365a.tar.bz2
nixpkgs-c94f5f7862833b7882aaca956e967d4a9df5365a.tar.lz
nixpkgs-c94f5f7862833b7882aaca956e967d4a9df5365a.tar.xz
nixpkgs-c94f5f7862833b7882aaca956e967d4a9df5365a.tar.zst
nixpkgs-c94f5f7862833b7882aaca956e967d4a9df5365a.zip
* Put the tarball job in a separate file.
svn path=/nixpkgs/trunk/; revision=14476
Diffstat (limited to 'pkgs/top-level/make-tarball.nix')
-rw-r--r--pkgs/top-level/make-tarball.nix75
1 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
new file mode 100644
index 00000000000..d6e3a118d44
--- /dev/null
+++ b/pkgs/top-level/make-tarball.nix
@@ -0,0 +1,75 @@
+/* Hydra job to build a tarball for Nixpkgs from a SVN checkout.  It
+   also builds the documentation and tests whether the Nix expressions
+   evaluate correctly. */
+
+{ nixpkgs ? {outPath = (import ./all-packages.nix {}).lib.cleanSource ../..; rev = 1234;}
+, officialRelease ? false
+}:
+
+with import nixpkgs.outPath {};
+
+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
+  '';
+}