* 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:
parent
f6073d7f34
commit
eaa4db148d
7 changed files with 42 additions and 48 deletions
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
{ stdenv, fetchurl, pkgconfig, audiofile
|
{ stdenv, fetchurl, pkgconfig, audiofile
|
||||||
, flex, bison, popt, perl, zlib, libxml2, libxslt
|
, flex, bison, popt, perl, zlib, libxml2, libxslt
|
||||||
, perlXMLParser, docbook_xml_dtd_42, gettext, x11, libtiff, libjpeg
|
, perlXMLParser, docbook_xml_dtd_42, docbook_xml_dtd_412
|
||||||
|
, gettext, x11, libtiff, libjpeg
|
||||||
, libpng, gtkLibs, xlibs, bzip2, libcm, python, dbus_glib, ncurses
|
, libpng, gtkLibs, xlibs, bzip2, libcm, python, dbus_glib, ncurses
|
||||||
, which, libxml2Python, iconnamingutils
|
, which, libxml2Python, iconnamingutils
|
||||||
}:
|
}:
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
inherit (input) name src;
|
inherit (input) name src;
|
||||||
patches = [./xmlcatalog.patch];
|
preConfigure = "
|
||||||
|
substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
|
||||||
|
";
|
||||||
buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
|
buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
|
||||||
configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
|
configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
diff -rrc scrollkeeper-orig/extract/dtds/Makefile.in scrollkeeper-0.3.14/extract/dtds/Makefile.in
|
|
||||||
*** scrollkeeper-orig/extract/dtds/Makefile.in 2003-12-06 09:18:01.000000000 +0100
|
|
||||||
--- scrollkeeper-0.3.14/extract/dtds/Makefile.in 2005-03-08 19:22:27.000000000 +0100
|
|
||||||
***************
|
|
||||||
*** 408,414 ****
|
|
||||||
|
|
||||||
# ScrollKeeper OMF Variation DTD V1.0
|
|
||||||
install-data-hook:
|
|
||||||
! -/usr/bin/xmlcatalog --noout --add "public" \
|
|
||||||
"-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" \
|
|
||||||
"$(dtdsdir)/scrollkeeper-omf.dtd" $(CATALOG)
|
|
||||||
|
|
||||||
--- 408,414 ----
|
|
||||||
|
|
||||||
# ScrollKeeper OMF Variation DTD V1.0
|
|
||||||
install-data-hook:
|
|
||||||
! -xmlcatalog --noout --add "public" \
|
|
||||||
"-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" \
|
|
||||||
"$(dtdsdir)/scrollkeeper-omf.dtd" $(CATALOG)
|
|
||||||
|
|
||||||
***************
|
|
||||||
*** 418,424 ****
|
|
||||||
|
|
||||||
# ScrollKeeper OMF Variation DTD V1.0
|
|
||||||
uninstall-local:
|
|
||||||
! -/usr/bin/xmlcatalog --noout --del \
|
|
||||||
"$(dtdsdir)/scrollkeeper-omf.dtd" $(CATALOG)
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
||||||
--- 418,424 ----
|
|
||||||
|
|
||||||
# ScrollKeeper OMF Variation DTD V1.0
|
|
||||||
uninstall-local:
|
|
||||||
! -xmlcatalog --noout --del \
|
|
||||||
"$(dtdsdir)/scrollkeeper-omf.dtd" $(CATALOG)
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
|
@ -4,12 +4,12 @@ assert zlib != null;
|
||||||
assert pythonSupport -> python != null;
|
assert pythonSupport -> python != null;
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "libxml2-2.6.29";
|
name = "libxml2-2.6.30";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = ftp://xmlsoft.org/libxml2/libxml2-2.6.29.tar.gz;
|
url = ftp://xmlsoft.org/libxml2/libxml2-2.6.30.tar.gz;
|
||||||
sha256 = "14jrjvdbvlbc3m0q9p3np67sk18w317n5zfg9a3h7b6pp7h1jjp3";
|
sha256 = "0pkk6cw0qd56kz2fkn768dcygbb4ncyvvmvyfiyli1a7yjh64xw7";
|
||||||
};
|
};
|
||||||
|
|
||||||
python = if pythonSupport then python else null;
|
python = if pythonSupport then python else null;
|
||||||
|
@ -17,4 +17,6 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
buildInputs = if pythonSupport then [python] else [];
|
buildInputs = if pythonSupport then [python] else [];
|
||||||
propagatedBuildInputs = [zlib];
|
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
|
|
@ -3,10 +3,11 @@
|
||||||
assert libxml2 != null;
|
assert libxml2 != null;
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "libxslt-1.1.21";
|
name = "libxslt-1.1.22";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = ftp://xmlsoft.org/libxml2/libxslt-1.1.21.tar.gz;
|
url = ftp://xmlsoft.org/libxml2/libxslt-1.1.22.tar.gz;
|
||||||
sha256 = "1q2lzdp75lx9w4mxgg99znnk94aacn34m7csmbf2kdwvnb7d9vyc";
|
sha256 = "1nj9pvn4ibhwxpl3ry9n6d7jahppcnqc7mi87nld4vsr2vp3j7sf";
|
||||||
};
|
};
|
||||||
buildInputs = [libxml2];
|
buildInputs = [libxml2];
|
||||||
|
postInstall = "ensureDir $out/nix-support; ln -s ${libxml2}/nix-support/setup-hook $out/nix-support/";
|
||||||
}
|
}
|
||||||
|
|
|
@ -4067,9 +4067,9 @@ rec {
|
||||||
gnome = recurseIntoAttrs (import ../desktops/gnome {
|
gnome = recurseIntoAttrs (import ../desktops/gnome {
|
||||||
inherit fetchurl stdenv pkgconfig audiofile
|
inherit fetchurl stdenv pkgconfig audiofile
|
||||||
flex bison popt zlib libxml2 libxslt
|
flex bison popt zlib libxml2 libxslt
|
||||||
perl perlXMLParser docbook_xml_dtd_42 gettext x11
|
perl perlXMLParser docbook_xml_dtd_42 docbook_xml_dtd_412
|
||||||
libtiff libjpeg libpng gtkLibs xlibs bzip2 libcm
|
gettext x11 libtiff libjpeg libpng gtkLibs xlibs bzip2
|
||||||
python dbus_glib ncurses which libxml2Python
|
libcm python dbus_glib ncurses which libxml2Python
|
||||||
iconnamingutils;
|
iconnamingutils;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue