Message ID | BY5PR07MB70293260AAFFF2041C5EB0E499EE9@BY5PR07MB7029.namprd07.prod.outlook.com |
---|---|
State | New |
Headers | show |
Series | [bug#60294] gnu: Add libxapp. | expand |
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
On Saturday, December 24, 2022 at 04:36:02 AM CST, Liliana Marie Prikler <liliana.prikler@gmail.com> wrote: Am Samstag, dem 24.12.2022 um 01:30 -0600 schrieb Wamm K. D: > > + (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. Would you possibly know any more details on it? Just looking through the module, I don't see any functions regarding version number, I'm afraid, and it's not intuitive to me how I might use it in this context if I'm using a different build system for the package. > > + (("'/usr/bin/pastebin'") (string-append "'" > > + (assoc-ref > > outputs "out") > > + > > "/bin/pastebin'")) > Oof, fine, but note that you can also write #$output Fair; I'd thought about it but the example I was working off of was using G-expressions and did it this way so I just went with it. Something I've wondered: is there a point to having the lambda arguments be "#:key outputs", if you can just use "#$output"? I've seen a few setup their lambda that way only to use "#$output" and not ever use "outputs". I may just be missing something regarding G-expressions, though. > > + (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. True but is there any easy way to specify what they're related to without making it much longer than just a synopsis? "Cross-desktop libraries and common resources" can apply to many things and is generic to the point of being unhelpful, I'd think. I could always do "developed by Linux Mint" instead of "for X-apps" which might be more familiar but, again, it borders to being unhelpfully unspecific, again (even if less so), to me; there are probably a lot of "Cross-desktop libraries and common resources" developed by Linux Mint. This particular library was developed for use with the X-apps they're developing, specifically. I'm just not sure what other description would work while still being a synopsis. > > + (license license:lgpl3))) > No +? Mmm; I didn't think so but you raise a good point. Lemme double check myself; I'll adjust it, if otherwise.
Am Samstag, dem 24.12.2022 um 11:23 +0000 schrieb Jaft: > On Saturday, December 24, 2022 at 04:36:02 AM CST, Liliana Marie > Prikler <liliana.prikler@gmail.com> wrote: > > Am Samstag, dem 24.12.2022 um 01:30 -0600 schrieb Wamm K. D: > > > + (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. > > Would you possibly know any more details on it? Just looking through > the module, I don't see any functions regarding version number, I'm > afraid, and it's not intuitive to me how I might use it in this > context if I'm using a different build system for the package. You're looking for the (site-packages) function. As for how to use it, you need to "mix in" the python build system as is done for instance in python-gst. > > > + (("'/usr/bin/pastebin'") (string-append "'" > > > + (assoc- > > > ref > > > outputs "out") > > > + > > > "/bin/pastebin'")) > > Oof, fine, but note that you can also write #$output > > Fair; I'd thought about it but the example I was working off of was > using G-expressions and did it this way so I just went with it. > > Something I've wondered: is there a point to having the lambda > arguments be "#:key outputs", if you can just use "#$output"? I've > seen a few setup their lambda that way only to use "#$output" and not > ever use "outputs". > > I may just be missing something regarding G-expressions, though. The outputs key comes from a time in which #$output could not yet be used in phases. There is currently no definitely preferred flavour. > > > + (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. > > True but is there any easy way to specify what they're related to > without making it much longer than just a synopsis? > > "Cross-desktop libraries and common resources" can apply to many > things and is generic to the point of being unhelpful, I'd think. > > I could always do "developed by Linux Mint" instead of "for X-apps" > which might be more familiar but, again, it borders to being > unhelpfully unspecific, again (even if less so), to me; there are > probably a lot of "Cross-desktop libraries and common resources" > developed by Linux Mint. This particular library was developed for > use with the X-apps they're developing, specifically. > > I'm just not sure what other description would work while still being > a synopsis. I think "Library for traditional GTK applications" would work fine, looking at [1]. > > Cheers [1] https://linuxmint-developer-guide.readthedocs.io/en/latest/xapps.html
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'"))) + + (substitute* "scripts/pastebin" + (("'nc'") (string-append "'" + (assoc-ref inputs "netcat") + "/bin/nc'"))) + + (substitute* "scripts/upload-system-info" + (("'inxi'") (string-append "'" + (assoc-ref inputs "inxi-minimal") + "/bin/inxi'")) + (("'/usr/bin/pastebin'") (string-append "'" + (assoc-ref outputs "out") + "/bin/pastebin'")) + (("'xdg-open'") (string-append "'" + (assoc-ref inputs "xdg-utils") + "/bin/xdg-open'")))))))) + (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.") + (license license:lgpl3))) + (define-public cinnamon-desktop (package (name "cinnamon-desktop")