summary refs log tree commit diff
path: root/pkgs
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
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')
-rw-r--r--pkgs/top-level/make-tarball.nix75
-rw-r--r--pkgs/top-level/release.nix132
2 files changed, 114 insertions, 93 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
+  '';
+}
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 9436457a09b..7254ea97584 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -2,102 +2,48 @@ let
 
   allPackages = import ./all-packages.nix;
 
-  test = f: {system}: f (allPackages {inherit system;});
-  
-
-  jobs = {
-
-  
-    tarball =
-      { nixpkgs ? {path = (allPackages {}).lib.cleanSource ../..; 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
-        '';
+  pkgs = allPackages {};
 
-        dontBuild = false;
-                
-        buildPhase = ''
-          echo "building docs..."
-          (cd doc && make docbookxsl=${docbook5_xsl}/xml/xsl/docbook) || false
-          ln -s doc/NEWS.txt NEWS
-        '';
- 
-        doCheck = true;
+  testOn = systems: f: {system}:
+    if pkgs.lib.elem system systems then f (allPackages {inherit system;}) else {};
+        
+  testOnLinux = testOn ["i686-linux" "x86_64-linux"];
 
-        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
+  test = testOn ["i686-linux" "x86_64-linux" "i686-darwin" "i686-cygwin"];
 
-          # 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
-        '';
+in {
 
-        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
+  tarball = import ./make-tarball.nix;
 
-          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
-        '';
-      };
-
-
-      # All the top-level packages that want to build in the build farm.
-      # !!! notation is kinda clumsy
-
-      MPlayer = test (pkgs: pkgs.MPlayer);
-      autoconf = test (pkgs: pkgs.autoconf);
-      bash = test (pkgs: pkgs.bash);
-      firefox3 = test (pkgs: pkgs.firefox3);
-      gcc = test (pkgs: pkgs.gcc);
-      hello = test (pkgs: pkgs.hello);
-      libtool = test (pkgs: pkgs.libtool);
-      pan = test (pkgs: pkgs.pan);
-      perl = test (pkgs: pkgs.perl);
-      python = test (pkgs: pkgs.python);
-      thunderbird = test (pkgs: pkgs.thunderbird);
-      wine = test (pkgs: pkgs.wine);
-              
+  /* All the top-level packages that we want to build in the build
+     farm.  The notation is still kinda clumsy.  We could use some
+     meta-programming.  E.g. we would want to write
+  
+       wine = ["i686-linux"];
+
+     which would be translated to
+
+       wine = testOn ["i686-linux"] (pkgs: pkgs.wine);
+
+     Shouldn't be too hard to make a function that recurses over the
+     attrset and does this for every attribute. */
+
+  MPlayer = testOnLinux (pkgs: pkgs.MPlayer);
+  autoconf = test (pkgs: pkgs.autoconf);
+  bash = test (pkgs: pkgs.bash);
+  firefox3 = testOnLinux (pkgs: pkgs.firefox3);
+  gcc = test (pkgs: pkgs.gcc);
+  hello = test (pkgs: pkgs.hello);
+  libsmbios = testOnLinux (pkgs: pkgs.libsmbios);
+  libtool = test (pkgs: pkgs.libtool);
+  pan = testOnLinux (pkgs: pkgs.pan);
+  perl = test (pkgs: pkgs.perl);
+  python = test (pkgs: pkgs.python);
+  thunderbird = testOnLinux (pkgs: pkgs.thunderbird);
+  wine = testOn ["i686-linux"] (pkgs: pkgs.wine);
+
+  xorg = {
+    libX11 = testOnLinux (pkgs: pkgs.xorg.libX11);    
   };
-
-in jobs
+  
+}