diff options
-rw-r--r-- | pkgs/development/tools/documentation/gtk-doc/default.nix | 25 | ||||
-rw-r--r-- | pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch | 28 |
2 files changed, 36 insertions, 17 deletions
diff --git a/pkgs/development/tools/documentation/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix index 506684088343..5f31a2dfb7c6 100644 --- a/pkgs/development/tools/documentation/gtk-doc/default.nix +++ b/pkgs/development/tools/documentation/gtk-doc/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, perl, python, libxml2Python, libxslt, which +{ stdenv, fetchurl, autoreconfHook, pkgconfig, perl, python, libxml2Python, libxslt, which , docbook_xml_dtd_43, docbook_xsl, gnome_doc_utils, dblatex, gettext, itstool }: stdenv.mkDerivation rec { @@ -10,29 +10,20 @@ stdenv.mkDerivation rec { sha256 = "0hpxcij9xx9ny3gs9p0iz4r8zslw8wqymbyababiyl7603a6x90y"; }; - outputDevdoc = "out"; - - # maybe there is a better way to pass the needed dtd and xsl files - # "-//OASIS//DTD DocBook XML V4.1.2//EN" and "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl" - preConfigure = '' - mkdir -p $out/nix-support - cat > $out/nix-support/catalog.xml << EOF - <?xml version="1.0"?> - <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"> - <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> - <nextCatalog catalog="${docbook_xsl}/xml/xsl/docbook/catalog.xml" /> - <nextCatalog catalog="${docbook_xml_dtd_43}/xml/dtd/docbook/catalog.xml" /> - </catalog> - EOF + patches = [ + ./respect-xml-catalog-files-var.patch + ]; - configureFlags="--with-xml-catalog=$out/nix-support/catalog.xml --disable-scrollkeeper"; - ''; + outputDevdoc = "out"; + nativeBuildInputs = [ autoreconfHook ]; buildInputs = [ pkgconfig perl python libxml2Python libxslt docbook_xml_dtd_43 docbook_xsl gnome_doc_utils dblatex gettext which itstool ]; + configureFlags = "--disable-scrollkeeper"; + meta = with stdenv.lib; { homepage = https://www.gtk.org/gtk-doc; description = "Tools to extract documentation embedded in GTK+ and GNOME source code"; diff --git a/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch b/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch new file mode 100644 index 000000000000..78c57306b797 --- /dev/null +++ b/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch @@ -0,0 +1,28 @@ +diff --git a/m4/gtkdoc_jh_check_xml_catalog.m4 b/m4/gtkdoc_jh_check_xml_catalog.m4 +index 618c1c9..1842a0d 100644 +--- a/m4/gtkdoc_jh_check_xml_catalog.m4 ++++ b/m4/gtkdoc_jh_check_xml_catalog.m4 +@@ -10,7 +10,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG], + AC_MSG_RESULT([found]) + ifelse([$3],,,[$3]) + else +- AC_MSG_RESULT([not found]) +- ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4]) ++ jh_check_xml_catalog_saved_ifs="$IFS" ++ IFS=' ' ++ for f in $XML_CATALOG_FILES; do ++ if [[ -f "$f" ]] && \ ++ AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then ++ jh_found_xmlcatalog=true ++ AC_MSG_RESULT([found]) ++ ifelse([$3],,,[$3]) ++ break ++ fi ++ done ++ IFS="$jh_check_xml_catalog_saved_ifs" ++ if ! $jh_found_xmlcatalog; then ++ AC_MSG_RESULT([not found]) ++ ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4]) ++ fi + fi + ]) |