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"; }; + patches = [ + ./respect-xml-catalog-files-var.patch + ]; + 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 - - - - - - - EOF - - configureFlags="--with-xml-catalog=$out/nix-support/catalog.xml --disable-scrollkeeper"; - ''; - + 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 + ])