summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/development/libraries/aterm/2.5.nix5
-rw-r--r--pkgs/top-level/release-lib.nix69
-rw-r--r--pkgs/top-level/release.nix20
3 files changed, 51 insertions, 43 deletions
diff --git a/pkgs/development/libraries/aterm/2.5.nix b/pkgs/development/libraries/aterm/2.5.nix
index daaf6fdd584..f116da12643 100644
--- a/pkgs/development/libraries/aterm/2.5.nix
+++ b/pkgs/development/libraries/aterm/2.5.nix
@@ -16,14 +16,15 @@ stdenv.mkDerivation {
     # SIZEOF_LONG, SIZEOF_INT and SIZEOF_VOID_P being set.
     ./sizeof.patch
   ];
-  
+
   doCheck = true;
 
-  dontDisableStatic = true; 
+  dontDisableStatic = true;
 
   meta = {
     homepage = http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/ATerm;
     license = "LGPL";
     description = "Library for manipulation of term data structures in C";
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index fed9a1d673b..ed523d235b8 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -7,7 +7,8 @@ rec {
 
   pkgs = allPackages { };
 
-  /* !!! Hack: poor man's memoisation function.  Necessary for prevent
+
+  /* !!! Hack: poor man's memoisation function.  Necessary to prevent
      Nixpkgs from being evaluated again and again for every
      job/platform pair. */
   pkgsFor = system:
@@ -26,33 +27,39 @@ rec {
   pkgs_i686_freebsd = allPackages { system = "i686-freebsd"; };
   pkgs_i686_cygwin = allPackages { system = "i686-cygwin"; };
 
+
   /* The working or failing mails for cross builds will be sent only to
      the following maintainers, as most package maintainers will not be
      interested in the result of cross building a package. */
   crossMaintainers = with pkgs.lib.maintainers; [ viric ];
 
+
   /* Set the Hydra scheduling priority for a job.  The default
-     priority (10) should be used for most jobs.  A different
-     priority should only be used for a few particularly interesting
-     jobs (in terms of giving feedback to developers), such as stdenv.
-  */
+     priority (10) should be used for most jobs.  A different priority
+     should only be used for a few particularly interesting jobs (in
+     terms of giving feedback to developers), such as stdenv. */
   prio = level: job: toJob job // { schedulingPriority = level; };
 
+
   toJob = x: if builtins.isAttrs x then x else
     { type = "job"; systems = x; schedulingPriority = 10; };
 
+
   /* Perform a job on the given set of platforms.  The function `f' is
      called by Hydra for each platform, and should return some job
      to build on that platform.  `f' is passed the Nixpkgs collection
      for the platform in question. */
-  testOn = systems: f: {system ? builtins.currentSystem}:
-    if pkgs.lib.elem system systems then f (pkgsFor system) else {};
+  testOn = systems: f: pkgs.lib.genAttrs systems (system: f (pkgsFor system));
 
-  /* Similar to the testOn function, but with an additional 'crossSystem'
-   * parameter for allPackages, defining the target platform for cross builds */
+
+  /* Similar to the testOn function, but with an additional
+     'crossSystem' parameter for allPackages, defining the target
+     platform for cross builds. */
   testOnCross = crossSystem: systems: f: {system ? builtins.currentSystem}:
-    if pkgs.lib.elem system systems then f (allPackages {inherit system
-                crossSystem;}) else {};
+    if pkgs.lib.elem system systems
+    then f (allPackages { inherit system crossSystem; })
+    else {};
+
 
   /* Map an attribute of the form `foo = [platforms...]'  to `testOn
      [platforms...] (pkgs: pkgs.foo)'. */
@@ -82,29 +89,28 @@ rec {
           (pkgs.lib.getAttrFromPath path pkgs));
       in testOnCross crossSystem job.systems getPkg);
 
+
   /* Find all packages that have a meta.platforms field listing the
      supported platforms. */
   packagesWithMetaPlatform = attrSet:
-    if builtins ? tryEval then
-      let pairs = pkgs.lib.concatMap
-        (x:
-          let pair = builtins.tryEval
-                (let
-                   attrVal = (builtins.getAttr x attrSet);
-                 in
-                   {val=(processPackage attrVal);
-                    attrVal = attrVal;
-                    attrValIsAttrs = builtins.isAttrs attrVal;
-                    });
-              success = (builtins.tryEval pair.value.attrVal).success;
-          in
-          if success && pair.value.attrValIsAttrs &&
-              pair.value.val != [] then
-            [{name= x; value=pair.value.val;}] else [])
-        (builtins.attrNames attrSet);
-      in
-        builtins.listToAttrs pairs
-    else {};
+    let pairs = pkgs.lib.concatMap
+      (x:
+        let pair = builtins.tryEval
+              (let
+                 attrVal = (builtins.getAttr x attrSet);
+               in
+                 { val = processPackage attrVal;
+                   attrVal = attrVal;
+                   attrValIsAttrs = builtins.isAttrs attrVal;
+                 });
+            success = (builtins.tryEval pair.value.attrVal).success;
+        in
+        pkgs.lib.optional (success && pair.value.attrValIsAttrs && pair.value.val != [])
+          { name = x; value = pair.value.val; })
+      (builtins.attrNames attrSet);
+    in
+      builtins.listToAttrs pairs;
+
 
   # May fail as much as it wishes, we will catch the error.
   processPackage = attrSet:
@@ -117,6 +123,7 @@ rec {
         then attrSet.meta.platforms
         else [];
 
+
   /* Common platform groups on which to test packages. */
   inherit (pkgs.lib.platforms) linux darwin cygwin allBut all mesaPlatforms;
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 595c6b427a2..d1b5d8254c4 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -1,13 +1,15 @@
-/*
-  This file will be evaluated by hydra with a call like this:
-  hydra_eval_jobs --gc-roots-dir \
-    /nix/var/nix/gcroots/per-user/hydra/hydra-roots --argstr \
-    system i686-linux --argstr system x86_64-linux --arg \
-    nixpkgs "{outPath = ./}" .... release.nix
+/* This file defines the builds that constitute the Nixpkgs.
+   Everything defined here ends up in the Nixpkgs channel.  Individual
+   jobs can be tested by running:
 
-  Hydra can be installed with "nix-env -i hydra".
+   $ nix-build pkgs/top-level/release.nix -A <jobname>.<system>
+
+   e.g.
+
+   $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
 */
-with (import ./release-lib.nix);
+
+with import ./release-lib.nix;
 
 {
 
@@ -20,8 +22,6 @@ with (import ./release-lib.nix);
   apacheHttpd = linux;
   aspell = all;
   at = linux;
-  aterm25 = all;
-  aterm28 = all;
   audacious = linux;
   autoconf = all;
   automake110x = all;