Subject: [bug#60294] [PATCH] gnu: Add libxapp.

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 24 Dec 2022 11:35:58 +0100

Am Samstag, dem 24.12.2022 um 01:30 -0600 schrieb Wamm K. D:
> * gnu/packages/cinnamon.scm (libxapp): New variable.
> ---
> I wasn't sure where to put this as, while definitely used by
> Cinnamon,
> I think this is used by Mate, as well (and possibly XFCE?). I don't
> know if a mint.scm file might make any sense as it's quite literally
> under the Linux Mint repo. account? If it would be better to place
> this elsewhere, just let me know and I'll adjust.
I think it's in the right location.
> 
>  gnu/packages/cinnamon.scm | 72
> +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 72 insertions(+)
> 
> diff --git a/gnu/packages/cinnamon.scm b/gnu/packages/cinnamon.scm
> index fe33e797e4..c1f258c18d 100644
> --- a/gnu/packages/cinnamon.scm
> +++ b/gnu/packages/cinnamon.scm
> @@ -26,6 +26,7 @@ (define-module (gnu packages cinnamon)
>    #:use-module (guix utils)
>    #:use-module (guix build-system gnu)
>    #:use-module (gnu packages)
> +  #:use-module (gnu packages admin)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages freedesktop)
>    #:use-module (gnu packages gettext)
> @@ -37,6 +38,77 @@ (define-module (gnu packages cinnamon)
>    #:use-module (gnu packages python)
>    #:use-module (gnu packages xorg))
>  
> +(define-public libxapp
> +  (package
> +    (name "libxapp")
> +    (version "2.4.2")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/linuxmint/xapp/")
> +                    (commit version)))
> +              (sha256
> +               (base32
> +               
> "0cy9g0zqcbx9zscc9qavqmghfyfb8244cg299llv1ha8n6mpxl3s"))))
> +    (build-system meson-build-system)
> +    (arguments
> +     (list
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-before 'configure 'set-gtk-module-path
> +            (lambda* (#:key inputs outputs #:allow-other-keys)
> +              (substitute* "libxapp/meson.build"
> +                (("gtk3_dep\\.get_pkgconfig_variable[(]'libdir'[)]")
> +                 (string-append "'" (assoc-ref outputs "out")
> "/lib'")))
> +
> +              (substitute* "pygobject/meson.build"
> +                (("get_option[(]'py-overrides-dir'[)]")
> +                 (string-append "'"
> +                                (assoc-ref outputs "out")
> +                                "/lib/python"
> +                                #$(version-major+minor (package-
> version python))
> +                                "/site-packages/gi/overrides'")))
I think python-build-system has a function to get this version in a
more reliable way.

> +              (substitute* "scripts/pastebin"
> +                (("'nc'") (string-append "'"
> +                                         (assoc-ref inputs "netcat")
> +                                         "/bin/nc'")))
Use search-input-file.
> +              (substitute* "scripts/upload-system-info"
> +                (("'inxi'") (string-append "'"
> +                                           (assoc-ref inputs "inxi-
> minimal")
> +                                           "/bin/inxi'"))
Use search-input-file.
> +                (("'/usr/bin/pastebin'") (string-append "'"
> +                                                        (assoc-ref
> outputs "out")
> +                                                       
> "/bin/pastebin'"))
Oof, fine, but note that you can also write #$output
> +                (("'xdg-open'") (string-append "'"
> +                                               (assoc-ref inputs
> "xdg-utils")
> +                                               "/bin/xdg-
> open'"))))))))
Use search-input-file.
> +    (inputs
> +     (list dbus
> +           glib ; for gio
> +           gtk+
> +           inxi-minimal ; used by upload-system-info
> +           libdbusmenu
> +           libgnomekbd
> +           netcat ; used by pastebin
> +           xdg-utils ; used by upload-system-info
> +           ))
> +    (native-inputs
> +     (list gettext-minimal
> +           `(,glib "bin") ; for glib-mkenums
> +           gobject-introspection
> +           pkg-config
> +           python
> +           python-pygobject
> +           vala))
> +    (home-page "https://github.com/linuxmint/xapp")
> +    (synopsis "Cross-desktop libraries and common resources for X-
> apps")
> +    (description
> +     "The components which are common to multiple GTK desktop
> environments
> +(Cinnamon, MATE and Xfce) and required to implement cross-DE
> solutions.")
The description should consist of full sentences.
Also, since X-Apps are quite specific to Linux Mint, you should
probably not take folks knowing what they are for granted.
> +    (license license:lgpl3)))
No +?

Cheers