summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-11-04 20:32:49 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-11-04 21:11:00 +0100
commit754704ea1884563beda72ddff2ab328e690278d0 (patch)
tree79a82650866e2efa46b1b1b5e8b83eb3c259f7cb /pkgs
parent01087750bacd329543c69876c0a7faac395098d3 (diff)
downloadnixlib-754704ea1884563beda72ddff2ab328e690278d0.tar
nixlib-754704ea1884563beda72ddff2ab328e690278d0.tar.gz
nixlib-754704ea1884563beda72ddff2ab328e690278d0.tar.bz2
nixlib-754704ea1884563beda72ddff2ab328e690278d0.tar.lz
nixlib-754704ea1884563beda72ddff2ab328e690278d0.tar.xz
nixlib-754704ea1884563beda72ddff2ab328e690278d0.tar.zst
nixlib-754704ea1884563beda72ddff2ab328e690278d0.zip
Allow packages to be marked as "broken" by setting meta.broken
The effect is that they won't show up in "nix-env -qa" anymore.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/virtualization/nova/client.nix1
-rw-r--r--pkgs/applications/virtualization/nova/default.nix15
-rw-r--r--pkgs/applications/virtualization/xen/default.nix1
-rw-r--r--pkgs/stdenv/generic/default.nix4
4 files changed, 14 insertions, 7 deletions
diff --git a/pkgs/applications/virtualization/nova/client.nix b/pkgs/applications/virtualization/nova/client.nix
index bb65f80d2066..bcc72d19bb39 100644
--- a/pkgs/applications/virtualization/nova/client.nix
+++ b/pkgs/applications/virtualization/nova/client.nix
@@ -16,5 +16,6 @@ pythonPackages.buildPythonPackage rec {
   meta = {
     homepage = https://github.com/rackspace/python-novaclient;
     description = "Client library and command line tool for the OpenStack Nova API";
+    broken = true;
   };
 }
diff --git a/pkgs/applications/virtualization/nova/default.nix b/pkgs/applications/virtualization/nova/default.nix
index a9a36ffca4fe..c1ef20b7aa08 100644
--- a/pkgs/applications/virtualization/nova/default.nix
+++ b/pkgs/applications/virtualization/nova/default.nix
@@ -20,13 +20,13 @@ stdenv.mkDerivation rec {
       paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
       distutils_extra simplejson readline glance cheetah lockfile httplib2
       # !!! should libvirt be a build-time dependency?  Note that
-      # libxml2Python is a dependency of libvirt.py. 
+      # libxml2Python is a dependency of libvirt.py.
       libvirt libxml2Python
       novaclient
     ];
 
   buildInputs =
-    [ pythonPackages.python 
+    [ pythonPackages.python
       pythonPackages.wrapPython
       pythonPackages.mox
       intltool
@@ -45,11 +45,11 @@ stdenv.mkDerivation rec {
       substituteInPlace nova/api/ec2/cloud.py \
         --replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh
     '';
-  
+
   buildPhase = "python setup.py build";
 
   installPhase =
-    ''    
+    ''
       p=$(toPythonPath $out)
       export PYTHONPATH=$p:$PYTHONPATH
       mkdir -p $p
@@ -59,14 +59,14 @@ stdenv.mkDerivation rec {
       # computes some stuff from its own argv[0].  So put the wrapped
       # programs in $out/libexec under their original names.
       mkdir -p $out/libexec/nova
-      
+
       wrapProgram() {
           local prog="$1"
           local hidden=$out/libexec/nova/$(basename "$prog")
           mv $prog $hidden
           makeWrapper $hidden $prog "$@"
       }
-      
+
       wrapPythonPrograms
 
       cp -prvd etc $out/etc
@@ -86,9 +86,10 @@ stdenv.mkDerivation rec {
   doCheck = false; # !!! fix
 
   checkPhase = "python setup.py test";
-    
+
   meta = {
     homepage = http://nova.openstack.org/;
     description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller";
+    broken = true;
   };
 }
diff --git a/pkgs/applications/virtualization/xen/default.nix b/pkgs/applications/virtualization/xen/default.nix
index 3cb16a6b4425..5f149b059787 100644
--- a/pkgs/applications/virtualization/xen/default.nix
+++ b/pkgs/applications/virtualization/xen/default.nix
@@ -136,5 +136,6 @@ stdenv.mkDerivation {
     description = "Xen hypervisor and management tools for Dom0";
     platforms = [ "i686-linux" "x86_64-linux" ];
     maintainers = [ stdenv.lib.maintainers.eelco ];
+    broken = true;
   };
 }
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index f8aff33a327f..083a71548b91 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -18,6 +18,8 @@ let
 
   allowUnfree = config.allowUnfree or true && builtins.getEnv "HYDRA_DISALLOW_UNFREE" != "1";
 
+  allowBroken = builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
+
   stdenvGenerator = setupScript: rec {
 
     # The stdenv that we are producing.
@@ -51,6 +53,8 @@ let
         mkDerivation = attrs:
           if !allowUnfree && (let l = lib.lists.toList attrs.meta.license or []; in lib.lists.elem "unfree" l || lib.lists.elem "unfree-redistributable" l) then
             throw "package ‘${attrs.name}’ has an unfree license, refusing to evaluate"
+          else if !allowBroken && attrs.meta.broken or false then
+            throw "you can't use package ‘${attrs.name}’ because it has been marked as broken"
           else
             lib.addPassthru (derivation (
               (removeAttrs attrs ["meta" "passthru" "crossAttrs"])