Subject: [bug#42958] [PATCH core-updates 16/29] gnu: libgsf: Update package definition.

From: Danny Milosavljevic <[email-masked]>
Date: Thu, 20 Aug 2020 17:10:37 +0200

From: Raghav Gururajan <[email-masked]>

* gnu/packages/gnome.scm (libgsf): Update package definition.
[build-system]: Change from gnu to glib-or-gtk.
[outputs]: New outputs "bin" and "doc".
[arguments]<#:configure-flags>[--enable-introspection]: New flag.
[--with-gir-dir=]: New flag.
[--with-typelib-dir=]: New flag.
[--with-html-dir]: New flag.
[--with-zlib]: New flag.
[--with-bz2]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml, gobject-introspection and
python-wrapper.
[inputs]: Add gdk-pixbuf.
[propagated-inputs]: Remove gdk-pixbuf.
[synopsis]: Modify.
[home-page]: Modify.
[license]: Modify.

Signed-off-by: Danny Milosavljevic <[email-masked]>
---
 gnu/packages/gnome.scm | 87 +++++++++++++++++++++++++++++-------------
 1 file changed, 61 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7e3032022f..2bc70ec9c3 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2247,39 +2247,74 @@ XML/CSS rendering engine.")
   (package
     (name "libgsf")
     (version "1.14.47")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version)  "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
-    (build-system gnu-build-system)
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "bin" "doc"))
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-introspection"
+        (string-append "--with-gir-dir="
+                       (assoc-ref %outputs "out")
+                       "/share/gir-"
+                       ,(version-major
+                         (package-version gobject-introspection))
+                       ".0")
+        (string-append "--with-typelib-dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/girepository-"
+                       ,(version-major
+                         (package-version gobject-introspection))
+                       ".0")
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
+        "--with-zlib"
+        "--with-bz2")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "gsf-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml)
        ("gettext" ,gettext-minimal)
-
-       ;; For tests.
+       ("gobject-introspection" ,gobject-introspection)
        ("perl" ,perl)
-       ("perl-xml-parser" ,perl-xml-parser)))
+       ("perl-xml-parser" ,perl-xml-parser)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
-     `(("zlib" ,zlib)
-       ("bzip2" ,bzip2)))
+     `(("bzip2" ,bzip2)
+       ("gdk-pixbuf" ,gdk-pixbuf)
+       ("zlib" ,zlib)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
+     `(("glib" ,glib)
        ("libxml2" ,libxml2)))
-    (home-page "https://www.gnome.org/projects/libgsf")
-    (synopsis "GNOME's Structured File Library")
-    (description
-     "Libgsf aims to provide an efficient extensible I/O abstraction for
-dealing with different structured file formats.")
-
-    ;; LGPLv2.1-only.
-    (license license:lgpl2.1)))
+    (synopsis "G Structured File Library")
+    (description "Libgsf aims to provide an efficient extensible I/O abstraction
+for dealing with different structured file formats.")
+    (home-page "https://gitlab.gnome.org/GNOME/libgsf")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:lgpl2.0+))))
 
 (define-public librsvg
   (package