summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/libxml2/default.nix8
-rw-r--r--pkgs/development/libraries/libxml2/setup-hook.sh25
-rw-r--r--pkgs/development/libraries/libxslt/default.nix7
3 files changed, 34 insertions, 6 deletions
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 89f0a443f560..7f1e120e7750 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -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";
 }
diff --git a/pkgs/development/libraries/libxml2/setup-hook.sh b/pkgs/development/libraries/libxml2/setup-hook.sh
new file mode 100644
index 000000000000..df1155d18099
--- /dev/null
+++ b/pkgs/development/libraries/libxml2/setup-hook.sh
@@ -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
diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index 69efd18753e8..896d0fc563bb 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -3,10 +3,11 @@
 assert libxml2 != null;
 
 stdenv.mkDerivation {
-  name = "libxslt-1.1.21";
+  name = "libxslt-1.1.22";
   src = fetchurl {
-    url = ftp://xmlsoft.org/libxml2/libxslt-1.1.21.tar.gz;
-    sha256 = "1q2lzdp75lx9w4mxgg99znnk94aacn34m7csmbf2kdwvnb7d9vyc";
+    url = ftp://xmlsoft.org/libxml2/libxslt-1.1.22.tar.gz;
+    sha256 = "1nj9pvn4ibhwxpl3ry9n6d7jahppcnqc7mi87nld4vsr2vp3j7sf";
   };
   buildInputs = [libxml2];
+  postInstall = "ensureDir $out/nix-support; ln -s ${libxml2}/nix-support/setup-hook $out/nix-support/";
 }