Package: guix-patches;
Reported by: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Date: Thu, 25 Jan 2024 16:14:02 UTC
Severity: normal
Tags: patch
Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Liliana Marie Prikler <liliana.prikler <at> gmail.com> Cc: rg <at> raghavgururajan.name, vivien <at> planete-kraus.eu, 68716 <at> debbugs.gnu.org Subject: [bug#68716] [PATCH gnome-team v4 1/7] gnu: Split gnome into more meta-packages. Date: Fri, 16 Feb 2024 14:44:27 -0500
Hi, Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes: > * gnu/packages/gnome.scm (gnome-meta-package): New syntax rule. > (gnome-meta-core-services, gnome-meta-core-shell, gnome-meta-core-utilities) > (gnome-essential-extras): New variables. > (gnome): Implement in terms of the former. > --- > gnu/packages/gnome.scm | 179 ++++++++++++++++++++++++----------------- > 1 file changed, 105 insertions(+), 74 deletions(-) > > diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm > index 7397148c2b..4fde75f612 100644 > --- a/gnu/packages/gnome.scm > +++ b/gnu/packages/gnome.scm > @@ -10154,52 +10154,76 @@ (define-public gnome-weather > (home-page "https://wiki.gnome.org/Apps/Weather") > (license license:gpl2+))) > > -(define-public gnome > +(define-syntax-rule (gnome-meta-package %name propagate) It'd be nice to allow any kind of extra fields to be appended to the package definition, as done e.g. for the make-openjdk syntax. > (package > - (name "gnome") > + (name %name) Nitpick: I'd use name*, as %name is often associated with globals in Guix. > (version (package-version gnome-shell)) > (source #f) > (build-system trivial-build-system) > - (arguments '(#:builder (begin (mkdir %output) #t))) > - (propagated-inputs > - `(,@(if (string-prefix? "x86_64" (%current-system)) > - ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently > - ;; only works on x86_64, so exclude it on other architectures. > - (list eog) > - '()) > - ,@(list > - ;; GNOME-Core-OS-Services. > - accountsservice > - network-manager > - packagekit > - upower > - ;; GNOME-Core-Shell. > - adwaita-icon-theme > - gdm > - glib-networking > - gnome-backgrounds > - gnome-bluetooth > - gnome-color-manager > - gnome-control-center > - gnome-desktop > - gnome-initial-setup > - gnome-keyring > - gnome-menus > - gnome-session > - gnome-settings-daemon > - gnome-shell > - gnome-shell-extensions > - gnome-themes-extra > - gnome-user-docs > - gnome-user-share > - gsettings-desktop-schemas > - gvfs > - mutter > - orca > - rygel > - sushi > - ;; GNOME-Core-Utilities. > - baobab > + (arguments > + (list #:builder > + #~(begin > + (format (current-warning-port) > + "Building ~a is useless. \ > +Refer to its propagated inputs instead.\n" > + #$name) > + (mkdir #$output)))) > + (propagated-inputs propagate) > + (home-page "https://www.gnome.org") > + (synopsis "The GNU desktop environment") > + (description > + "GNOME is the graphical desktop for GNU. It includes a wide variety of I think it's misleading to associate GNOME with GNU at this point in time. They aren't even a GNU project anymore. > +applications for browsing the web, editing text and images, creating > +documents and diagrams, playing media, scanning, and much more.") > + (license license:gpl2+) > + (properties `((hidden? . #t))))) > + > +(define-public gnome-meta-core-services > + (gnome-meta-package > + "gnome-meta-core-services" > + (list accountsservice > + network-manager > + packagekit > + upower))) > + > +(define-public gnome-meta-core-shell > + (gnome-meta-package > + "gnome-meta-core-shell" > + (list adwaita-icon-theme > + gdm > + glib-networking > + gnome-backgrounds > + gnome-bluetooth > + gnome-color-manager > + gnome-control-center > + gnome-desktop > + gnome-initial-setup > + gnome-keyring > + gnome-menus > + gnome-session > + gnome-settings-daemon > + gnome-shell > + gnome-shell-extensions > + gnome-themes-extra > + gnome-user-docs > + gnome-user-share > + gsettings-desktop-schemas > + gvfs > + mutter > + orca > + rygel > + sushi))) > + > +(define-public gnome-meta-core-utilities > + (gnome-meta-package > + "gnome-meta-core-utilities" > + (append > + ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently > + ;; only works on x86_64, so exclude it on other architectures. > + (if (string-prefix? "x86_64" (%current-system)) > + (list eog) > + '()) > + (list baobab > cheese > epiphany > evince > @@ -10224,38 +10248,45 @@ (define-public gnome > totem > tracker-miners > xdg-desktop-portal-gnome > - yelp > - ;; Others. > - gnome-online-accounts > - hicolor-icon-theme > - > - ;; Packages not part of GNOME proper but that are needed for a good > - ;; experience. See <https://bugs.gnu.org/39646>. > - ;; XXX: Find out exactly which ones are needed and why. > - at-spi2-core > - dbus > - dconf > - desktop-file-utils > - font-abattis-cantarell > - font-dejavu > - gnome-default-applications > - gst-plugins-base > - gst-plugins-good > - gucharmap > - pinentry-gnome3 > - pulseaudio > - shared-mime-info > - system-config-printer > - xdg-user-dirs > - yelp > - zenity))) > - (synopsis "The GNU desktop environment") > - (home-page "https://www.gnome.org/") > - (description > - "GNOME is the graphical desktop for GNU. It includes a wide variety of > -applications for browsing the web, editing text and images, creating > -documents and diagrams, playing media, scanning, and much more.") > - (license license:gpl2+))) > + yelp)))) > + > +(define-public gnome-essential-extras > + (package > + (inherit > + (gnome-meta-package > + "gnome-essential-extras" > + (list at-spi2-core > + dbus > + dconf > + desktop-file-utils > + font-abattis-cantarell > + font-dejavu > + gnome-default-applications > + gnome-online-accounts > + gst-plugins-base > + gst-plugins-good > + gucharmap > + hicolor-icon-theme > + pinentry-gnome3 > + pulseaudio > + shared-mime-info > + system-config-printer > + xdg-user-dirs > + yelp > + zenity))) > + (description "This package provides a list of packages required for > +a good GNOME experience, mixed from core dependencies and other implicitly > +relied-on packages."))) > + > +(define-public gnome > + (package > + (inherit (gnome-meta-package "gnome" > + (append-map package-propagated-inputs > + (list gnome-meta-core-services > + gnome-meta-core-shell > + gnome-meta-core-utilities > + gnome-essential-extras)))) > + (properties (list)))) With the make-openjdk like change I suggested above, this could be expressed without using inherit as: --8<---------------cut here---------------start------------->8--- (define-public gnome (gnome-meta-package "gnome" (append-map package-propagated-inputs (list gnome-meta-core-services gnome-meta-core-shell gnome-meta-core-utilities gnome-essential-extras)) (properties '()))) --8<---------------cut here---------------end--------------->8--- which I find more pleasing to read. Otherwise, Reviewed-by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> -- Thanks, Maxim
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.