* 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:
Eelco Dolstra
2007-10-18 21:08:47 +00:00
parent f6073d7f34
commit eaa4db148d
7 changed files with 42 additions and 48 deletions

View File

@@ -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";
}

View 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