Subject: [bug#31999] [PATCH 7/7] gnu: Update udisk to 2.7.6.

From: Marius Bakke <[email-masked]>
Date: Thu, 12 Jul 2018 23:34:40 +0200

Pierre Neidhardt <[email-masked]> writes:

> * gnu/package/freedesktop.scm (udisks): Update to 2.7.6.

[...]

>  (define-public udisks
>    (package
>      (name "udisks")
> -    (version "2.1.8")
> +    (version "2.7.6")
>      (source (origin
> -              (method url-fetch)
> -              (uri (string-append "https://udisks.freedesktop.org/releases/"
> -                                  name "-" version ".tar.bz2"))
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/storaged-project/udisks")
> +                    (commit (string-append name "-" version))))
> +              (file-name (string-append name "-" version "-checkout"))
>                (sha256
>                 (base32
> -                "1nkxhnqh39c9pzvm4zfj50rgv6apqawdx09bv3sfaxrah4a6jhfs"))))
> +                "16kf104vv2xbk8cdgaqygszcl69d7lz9gf3vmi7ggywn7nfbp2ks"))))
>      (build-system gnu-build-system)
>      (native-inputs
>       `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages
>         ("docbook-xsl" ,docbook-xsl)
>         ("glib:bin" ,glib "bin") ; for glib-mkenums
>         ("gobject-introspection" ,gobject-introspection)
> +       ("gnome-common" ,gnome-common)

Do you know what gnome-common is used for?

> +       ("which" ,which)                 ; for autogen.sh
> +       ("automake" ,automake)
> +       ("autocont" ,autoconf)
> +       ("libtool" ,libtool)
> +       ("glib" ,glib "bin")             ; for glib-gettextize
> +       ("gtk-doc" ,gtk-doc)
>         ("intltool" ,intltool)
>         ("pkg-config" ,pkg-config)
>         ("xsltproc" ,libxslt)))
> @@ -647,13 +660,15 @@ Analysis and Reporting Technology) functionality.")
>         ("libgudev" ,libgudev)
>         ("polkit" ,polkit)
>         ("util-linux" ,util-linux)
> -       ("cryptsetup" ,cryptsetup)
> -       ("parted" ,parted)))
> +       ("cryptsetup" ,cryptsetup)       ; TODO: Not needed on https://www.archlinux.org/packages/extra/x86_64/udisks2/.

How does it fail without it?  Perhaps it should be propagated from
somewhere else?

> +       ("parted" ,parted) ;  TODO: Use as native-input?  Arch Linux does it.

If the software does not use parted at runtime (check with `guix gc
--references`) it should be a native-input.

> +       ))

`guix lint` won't be happy about these ;-)

>      (outputs '("out"
>                 "doc"))                            ;5 MiB of gtk-doc HTML
>      (arguments
>       `(#:tests? #f ; requiring system message dbus
>         #:disallowed-references ("doc")            ;enforce separation of "doc"
> +       ;; TODO: No need for configure?

Why is that?  I see it can run configure as part of autogen, but IMO
it's better to keep it this way to keep a consistent interface.

>         #:configure-flags
>         (list "--enable-man"
>               "--localstatedir=/var"
> @@ -679,6 +694,13 @@ Analysis and Reporting Technology) functionality.")
>                                docbook-xml-catalog-file)))
>         #:phases
>         (modify-phases %standard-phases
> +         (add-after 'unpack 'autogen
> +           (lambda _
> +             ;; The autogen.sh script in gnome-common will run ./configure
> +             ;; by default, which is problematic because source shebangs
> +             ;; have not yet been patched.
> +             (setenv "NOCONFIGURE" "t")
> +             (invoke "sh" "autogen.sh")))

LGTM.  Thanks a lot for taking this on, hopefully we can get this in
master soon!