about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/documentation/gtk-doc
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/documentation/gtk-doc')
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix49
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch13
2 files changed, 62 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
new file mode 100644
index 000000000000..0213eca30d22
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, perl, python, libxml2Python, libxslt, which
+, docbook_xml_dtd_43, docbook_xsl, gnome-doc-utils, gettext, itstool
+, withDblatex ? false, dblatex
+}:
+
+stdenv.mkDerivation rec {
+  name = "gtk-doc-${version}";
+  version = "1.28";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtk-doc/${version}/${name}.tar.xz";
+    sha256 = "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li";
+  };
+
+  patches = [
+    passthru.respect_xml_catalog_files_var_patch
+  ];
+
+  outputDevdoc = "out";
+
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs =
+    [ pkgconfig perl python libxml2Python libxslt docbook_xml_dtd_43 docbook_xsl
+      gnome-doc-utils gettext which itstool
+    ] ++ stdenv.lib.optional withDblatex dblatex;
+
+  configureFlags = [ "--disable-scrollkeeper" ];
+
+  # Make six available for binaries, python.withPackages creates a wrapper
+  # but scripts are not allowed in shebangs so we link it into sys.path.
+  postInstall = ''
+    ln -s ${python.pkgs.six}/${python.sitePackages}/* $out/share/gtk-doc/python/
+  '';
+
+  doCheck = false; # requires a lot of stuff
+  doInstallCheck = false; # fails
+
+  passthru = {
+    # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch
+    respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch;
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://www.gtk.org/gtk-doc;
+    description = "Tools to extract documentation embedded in GTK+ and GNOME source code";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..95f6879a0069
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch
@@ -0,0 +1,13 @@
+--- a/m4/gtkdoc_jh_check_xml_catalog.m4
++++ b/m4/gtkdoc_jh_check_xml_catalog.m4
+@@ -5,8 +5,8 @@
+ [
+ 	AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+ 	AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+-	if $jh_found_xmlcatalog && \
+-		AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
++	# empty argument forces libxml to use XML_CATALOG_FILES variable
++	if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
+ 		AC_MSG_RESULT([found])
+ 		ifelse([$3],,,[$3])
+ 	else