* libxml2 / libxslt: provide a setup hook that prevents xmllint and
xsltproc from downloading DTDs from the network, which is impure. This caused a lot of problems with Gnome builds in the build farm, because those downloads are slow and would sometimes fail. The setup hook also sets up $XML_CATALOG_FILES. svn path=/nixpkgs/trunk/; revision=9471
This commit is contained in:
@@ -4,12 +4,12 @@ assert zlib != null;
|
||||
assert pythonSupport -> python != null;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "libxml2-2.6.29";
|
||||
name = "libxml2-2.6.30";
|
||||
builder = ./builder.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = ftp://xmlsoft.org/libxml2/libxml2-2.6.29.tar.gz;
|
||||
sha256 = "14jrjvdbvlbc3m0q9p3np67sk18w317n5zfg9a3h7b6pp7h1jjp3";
|
||||
url = ftp://xmlsoft.org/libxml2/libxml2-2.6.30.tar.gz;
|
||||
sha256 = "0pkk6cw0qd56kz2fkn768dcygbb4ncyvvmvyfiyli1a7yjh64xw7";
|
||||
};
|
||||
|
||||
python = if pythonSupport then python else null;
|
||||
@@ -17,4 +17,6 @@ stdenv.mkDerivation {
|
||||
|
||||
buildInputs = if pythonSupport then [python] else [];
|
||||
propagatedBuildInputs = [zlib];
|
||||
|
||||
postInstall = "ensureDir $out/nix-support; cp ${./setup-hook.sh} $out/nix-support/setup-hook";
|
||||
}
|
||||
|
||||
25
pkgs/development/libraries/libxml2/setup-hook.sh
Normal file
25
pkgs/development/libraries/libxml2/setup-hook.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
addXMLCatalogs () {
|
||||
if test -d $1/xml/dtd; then
|
||||
for i in $(find $1/xml/dtd -name catalog.xml); do
|
||||
export XML_CATALOG_FILES="$XML_CATALOG_FILES $i"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
if test -z "$libxmlHookDone"; then
|
||||
libxmlHookDone=1
|
||||
|
||||
# Set http_proxy and ftp_proxy to a invalid host to prevent
|
||||
# xmllint and xsltproc from trying to download DTDs from the
|
||||
# network even when --nonet is not given. That would be impure.
|
||||
# (Note that .invalid is a reserved domain guaranteed not to
|
||||
# work.)
|
||||
export http_proxy=http://nodtd.invalid/
|
||||
export ftp_proxy=http://nodtd.invalid/
|
||||
|
||||
# Set up XML_CATALOG_FILES. An empty initial value prevents
|
||||
# xmllint and xsltproc from looking in /etc/xml/catalog.
|
||||
export XML_CATALOG_FILES
|
||||
if test -z "$XML_CATALOG_FILES"; then XML_CATALOG_FILES=" "; fi
|
||||
envHooks=(${envHooks[@]} addXMLCatalogs)
|
||||
fi
|
||||
Reference in New Issue
Block a user