Subject: [bug#42958] [PATCH core-updates 04/29] gnu: glib-with-documentation: Update, package definition.

From: Efraim Flashner <[email-masked]>
Date: Thu, 24 Sep 2020 15:50:47 +0300

On Thu, Sep 24, 2020 at 08:41:50AM -0400, Raghav Gururajan wrote:
> @Danny
> 
> Please find the attached split patches.
> 
> Regards,
> RG.

> From 0ce2e68413bf0e43081552f52692eb0fc4facf24 Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <[email-masked]>
> Date: Thu, 24 Sep 2020 08:35:29 -0400
> Subject: [PATCH 12/13] gnu: glib-with-documentation: Make some cosmetic
>  changes.
> 
> * gnu/packages/glib.scm (glib-with-documentation): Make some cosmetic changes.
> ---
>  gnu/packages/glib.scm | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
> index 2cda6cd000..9aebfb7e63 100644
> --- a/gnu/packages/glib.scm
> +++ b/gnu/packages/glib.scm
> @@ -292,12 +292,7 @@ threads, dynamic loading, and an object system.")
>    (package
>      (inherit glib)
>      (properties (alist-delete 'hidden? (package-properties glib)))
> -    (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
> -    (native-inputs
> -     `(("gtk-doc" ,gtk-doc)             ; for the doc
> -       ("docbook-xml" ,docbook-xml)
> -       ("libxml2" ,libxml2)
> -       ,@(package-native-inputs glib)))
> +    (outputs (cons "doc" (package-outputs glib)))
>      (arguments
>       (substitute-keyword-arguments (package-arguments glib)
>         ((#:configure-flags flags ''())
> @@ -312,7 +307,12 @@ threads, dynamic loading, and an object system.")
>                   (copy-recursively (string-append out html)
>                                     (string-append doc html))
>                   (delete-file-recursively (string-append out html))
> -                 #t)))))))))
> +                 #t)))))))
> +    (native-inputs
> +     `(("docbook-xml" ,docbook-xml)
> +       ("gtk-doc" ,gtk-doc)
> +       ("libxml2" ,libxml2)
> +       ,@(package-native-inputs glib)))))
>  
>  (define gobject-introspection
>    (package
> -- 
> 2.28.0
> 

> From 160c6a756386e0464938e6784f579c156d6e2c2e Mon Sep 17 00:00:00 2001
> From: Raghav Gururajan <[email-masked]>
> Date: Thu, 24 Sep 2020 08:39:00 -0400
> Subject: [PATCH 13/13] gnu: glib-with-documentation: Fix documentation.
> 
> * gnu/packages/glib.scm (glib-with-documentation) [arguments]<#:phases>['patch-docbook-xml]: New phase.
> ['move-doc]: Modify phase.
> ---
>  gnu/packages/glib.scm | 26 ++++++++++++++++++++------
>  1 file changed, 20 insertions(+), 6 deletions(-)
> 
> diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
> index 9aebfb7e63..b15c75a740 100644
> --- a/gnu/packages/glib.scm
> +++ b/gnu/packages/glib.scm
> @@ -299,14 +299,28 @@ threads, dynamic loading, and an object system.")
>          `(cons "-Dgtk_doc=true" ,flags))
>         ((#:phases phases)
>          `(modify-phases ,phases
> +           (add-after 'unpack 'patch-docbook-xml
> +             (lambda* (#:key inputs #:allow-other-keys)
> +               (with-directory-excursion "docs/reference"
> +                 (substitute* '("gio/gdbus-object-manager-example/.*\\.xml"
> +                                "gio/.*\\.xml" "glib/.*\\.xml" "gobject/.*\\.xml")

Does that regex actually work? Yes or no, the following is much cleaner:
                    (substitute* (find-files "." "\\.xml$")
If it does have to be those directories specifically then I'd go with:
(append (find-files "gio/gdbus-object-manager-example" "\\.xml")
        (find-files "(gio|glib|gobject)" "\\.xml$"))

> +                   (("http://www.oasis-open.org/docbook/xml/4.5/")
> +                    (string-append (assoc-ref inputs "docbook-xml-4.5")
> +                                   "/xml/dtd/docbook/")))
> +                 (substitute* "gio/gio.xml"
> +                   (("http://www.oasis-open.org/docbook/xml/4.2/")
> +                    (string-append (assoc-ref inputs "docbook-xml-4.2")
> +                                   "/xml/dtd/docbook/"))))
> +               #t))
>             (add-after 'install 'move-doc
>               (lambda* (#:key outputs #:allow-other-keys)
> -               (let ((out (assoc-ref outputs "out"))
> -                     (doc (assoc-ref outputs "doc"))
> -                     (html (string-append "/share/gtk-doc")))
> -                 (copy-recursively (string-append out html)
> -                                   (string-append doc html))
> -                 (delete-file-recursively (string-append out html))
> +               (let* ((out (assoc-ref outputs "out"))
> +                      (doc (assoc-ref outputs "doc"))
> +                      (html (string-append "/share/gtk-doc")))

This doesn't need to be let*, let should do it. Also, html doesn't need
string-append, it's not being joined to anything :)

> +                 (mkdir-p (string-append doc "/share"))
> +                 (rename-file
> +                  (string-append out html)
> +                  (string-append doc html))
>                   #t)))))))
>      (native-inputs
>       `(("docbook-xml" ,docbook-xml)
> -- 
> 2.28.0
> 

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted