···118 package).</para></listitem>
119 </varlistentry>
120121+ <varlistentry>
122+ <term><varname>broken</varname></term>
123+ <listitem><para>If set to <literal>true</literal>, the package is
124+ marked as “broken”, meaning that it won’t show up in
125+ <literal>nix-env -qa</literal>, and cannot be built or installed.
126+ Sush packages should be removed from Nixpkgs eventually unless
127+ they are fixed.</para></listitem>
128+ </varlistentry>
129+130</variablelist>
131132
···16 meta = {
17 homepage = https://github.com/rackspace/python-novaclient;
18 description = "Client library and command line tool for the OpenStack Nova API";
019 };
20}
···16 meta = {
17 homepage = https://github.com/rackspace/python-novaclient;
18 description = "Client library and command line tool for the OpenStack Nova API";
19+ broken = true;
20 };
21}
+8-7
pkgs/applications/virtualization/nova/default.nix
···20 paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
21 distutils_extra simplejson readline glance cheetah lockfile httplib2
22 # !!! should libvirt be a build-time dependency? Note that
23- # libxml2Python is a dependency of libvirt.py.
24 libvirt libxml2Python
25 novaclient
26 ];
2728 buildInputs =
29- [ pythonPackages.python
30 pythonPackages.wrapPython
31 pythonPackages.mox
32 intltool
···45 substituteInPlace nova/api/ec2/cloud.py \
46 --replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh
47 '';
48-49 buildPhase = "python setup.py build";
5051 installPhase =
52- ''
53 p=$(toPythonPath $out)
54 export PYTHONPATH=$p:$PYTHONPATH
55 mkdir -p $p
···59 # computes some stuff from its own argv[0]. So put the wrapped
60 # programs in $out/libexec under their original names.
61 mkdir -p $out/libexec/nova
62-63 wrapProgram() {
64 local prog="$1"
65 local hidden=$out/libexec/nova/$(basename "$prog")
66 mv $prog $hidden
67 makeWrapper $hidden $prog "$@"
68 }
69-70 wrapPythonPrograms
7172 cp -prvd etc $out/etc
···86 doCheck = false; # !!! fix
8788 checkPhase = "python setup.py test";
89-90 meta = {
91 homepage = http://nova.openstack.org/;
92 description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller";
093 };
94}
···20 paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
21 distutils_extra simplejson readline glance cheetah lockfile httplib2
22 # !!! should libvirt be a build-time dependency? Note that
23+ # libxml2Python is a dependency of libvirt.py.
24 libvirt libxml2Python
25 novaclient
26 ];
2728 buildInputs =
29+ [ pythonPackages.python
30 pythonPackages.wrapPython
31 pythonPackages.mox
32 intltool
···45 substituteInPlace nova/api/ec2/cloud.py \
46 --replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh
47 '';
48+49 buildPhase = "python setup.py build";
5051 installPhase =
52+ ''
53 p=$(toPythonPath $out)
54 export PYTHONPATH=$p:$PYTHONPATH
55 mkdir -p $p
···59 # computes some stuff from its own argv[0]. So put the wrapped
60 # programs in $out/libexec under their original names.
61 mkdir -p $out/libexec/nova
62+63 wrapProgram() {
64 local prog="$1"
65 local hidden=$out/libexec/nova/$(basename "$prog")
66 mv $prog $hidden
67 makeWrapper $hidden $prog "$@"
68 }
69+70 wrapPythonPrograms
7172 cp -prvd etc $out/etc
···86 doCheck = false; # !!! fix
8788 checkPhase = "python setup.py test";
89+90 meta = {
91 homepage = http://nova.openstack.org/;
92 description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller";
93+ broken = true;
94 };
95}
···1819 allowUnfree = config.allowUnfree or true && builtins.getEnv "HYDRA_DISALLOW_UNFREE" != "1";
200021 stdenvGenerator = setupScript: rec {
2223 # The stdenv that we are producing.
···51 mkDerivation = attrs:
52 if !allowUnfree && (let l = lib.lists.toList attrs.meta.license or []; in lib.lists.elem "unfree" l || lib.lists.elem "unfree-redistributable" l) then
53 throw "package ‘${attrs.name}’ has an unfree license, refusing to evaluate"
0054 else
55 lib.addPassthru (derivation (
56 (removeAttrs attrs ["meta" "passthru" "crossAttrs"])
···1819 allowUnfree = config.allowUnfree or true && builtins.getEnv "HYDRA_DISALLOW_UNFREE" != "1";
2021+ allowBroken = builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
22+23 stdenvGenerator = setupScript: rec {
2425 # The stdenv that we are producing.
···53 mkDerivation = attrs:
54 if !allowUnfree && (let l = lib.lists.toList attrs.meta.license or []; in lib.lists.elem "unfree" l || lib.lists.elem "unfree-redistributable" l) then
55 throw "package ‘${attrs.name}’ has an unfree license, refusing to evaluate"
56+ else if !allowBroken && attrs.meta.broken or false then
57+ throw "you can't use package ‘${attrs.name}’ because it has been marked as broken"
58 else
59 lib.addPassthru (derivation (
60 (removeAttrs attrs ["meta" "passthru" "crossAttrs"])