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.
This commit is contained in:
parent
01087750ba
commit
754704ea18
@ -118,6 +118,15 @@ interpretation:</para>
|
|||||||
package).</para></listitem>
|
package).</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><varname>broken</varname></term>
|
||||||
|
<listitem><para>If set to <literal>true</literal>, the package is
|
||||||
|
marked as “broken”, meaning that it won’t show up in
|
||||||
|
<literal>nix-env -qa</literal>, and cannot be built or installed.
|
||||||
|
Sush packages should be removed from Nixpkgs eventually unless
|
||||||
|
they are fixed.</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
|
|
||||||
|
@ -279,5 +279,5 @@
|
|||||||
./virtualisation/libvirtd.nix
|
./virtualisation/libvirtd.nix
|
||||||
#./virtualisation/nova.nix
|
#./virtualisation/nova.nix
|
||||||
./virtualisation/virtualbox-guest.nix
|
./virtualisation/virtualbox-guest.nix
|
||||||
./virtualisation/xen-dom0.nix
|
#./virtualisation/xen-dom0.nix
|
||||||
]
|
]
|
||||||
|
@ -16,5 +16,6 @@ pythonPackages.buildPythonPackage rec {
|
|||||||
meta = {
|
meta = {
|
||||||
homepage = https://github.com/rackspace/python-novaclient;
|
homepage = https://github.com/rackspace/python-novaclient;
|
||||||
description = "Client library and command line tool for the OpenStack Nova API";
|
description = "Client library and command line tool for the OpenStack Nova API";
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -20,13 +20,13 @@ stdenv.mkDerivation rec {
|
|||||||
paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
|
paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
|
||||||
distutils_extra simplejson readline glance cheetah lockfile httplib2
|
distutils_extra simplejson readline glance cheetah lockfile httplib2
|
||||||
# !!! should libvirt be a build-time dependency? Note that
|
# !!! 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
|
libvirt libxml2Python
|
||||||
novaclient
|
novaclient
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ pythonPackages.python
|
[ pythonPackages.python
|
||||||
pythonPackages.wrapPython
|
pythonPackages.wrapPython
|
||||||
pythonPackages.mox
|
pythonPackages.mox
|
||||||
intltool
|
intltool
|
||||||
@ -45,11 +45,11 @@ stdenv.mkDerivation rec {
|
|||||||
substituteInPlace nova/api/ec2/cloud.py \
|
substituteInPlace nova/api/ec2/cloud.py \
|
||||||
--replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh
|
--replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = "python setup.py build";
|
buildPhase = "python setup.py build";
|
||||||
|
|
||||||
installPhase =
|
installPhase =
|
||||||
''
|
''
|
||||||
p=$(toPythonPath $out)
|
p=$(toPythonPath $out)
|
||||||
export PYTHONPATH=$p:$PYTHONPATH
|
export PYTHONPATH=$p:$PYTHONPATH
|
||||||
mkdir -p $p
|
mkdir -p $p
|
||||||
@ -59,14 +59,14 @@ stdenv.mkDerivation rec {
|
|||||||
# computes some stuff from its own argv[0]. So put the wrapped
|
# computes some stuff from its own argv[0]. So put the wrapped
|
||||||
# programs in $out/libexec under their original names.
|
# programs in $out/libexec under their original names.
|
||||||
mkdir -p $out/libexec/nova
|
mkdir -p $out/libexec/nova
|
||||||
|
|
||||||
wrapProgram() {
|
wrapProgram() {
|
||||||
local prog="$1"
|
local prog="$1"
|
||||||
local hidden=$out/libexec/nova/$(basename "$prog")
|
local hidden=$out/libexec/nova/$(basename "$prog")
|
||||||
mv $prog $hidden
|
mv $prog $hidden
|
||||||
makeWrapper $hidden $prog "$@"
|
makeWrapper $hidden $prog "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
wrapPythonPrograms
|
wrapPythonPrograms
|
||||||
|
|
||||||
cp -prvd etc $out/etc
|
cp -prvd etc $out/etc
|
||||||
@ -86,9 +86,10 @@ stdenv.mkDerivation rec {
|
|||||||
doCheck = false; # !!! fix
|
doCheck = false; # !!! fix
|
||||||
|
|
||||||
checkPhase = "python setup.py test";
|
checkPhase = "python setup.py test";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://nova.openstack.org/;
|
homepage = http://nova.openstack.org/;
|
||||||
description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller";
|
description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller";
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -136,5 +136,6 @@ stdenv.mkDerivation {
|
|||||||
description = "Xen hypervisor and management tools for Dom0";
|
description = "Xen hypervisor and management tools for Dom0";
|
||||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
maintainers = [ stdenv.lib.maintainers.eelco ];
|
maintainers = [ stdenv.lib.maintainers.eelco ];
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,8 @@ let
|
|||||||
|
|
||||||
allowUnfree = config.allowUnfree or true && builtins.getEnv "HYDRA_DISALLOW_UNFREE" != "1";
|
allowUnfree = config.allowUnfree or true && builtins.getEnv "HYDRA_DISALLOW_UNFREE" != "1";
|
||||||
|
|
||||||
|
allowBroken = builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
|
||||||
|
|
||||||
stdenvGenerator = setupScript: rec {
|
stdenvGenerator = setupScript: rec {
|
||||||
|
|
||||||
# The stdenv that we are producing.
|
# The stdenv that we are producing.
|
||||||
@ -51,6 +53,8 @@ let
|
|||||||
mkDerivation = attrs:
|
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
|
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"
|
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
|
else
|
||||||
lib.addPassthru (derivation (
|
lib.addPassthru (derivation (
|
||||||
(removeAttrs attrs ["meta" "passthru" "crossAttrs"])
|
(removeAttrs attrs ["meta" "passthru" "crossAttrs"])
|
||||||
|
Loading…
Reference in New Issue
Block a user