Message ID | 5e0b95c296a3abfe2da6c1828dfbbc1a47886083.1708087345.git.liliana.prikler@gmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#68716,gnome-team,v4,1/7] gnu: Split gnome into more meta-packages. | expand |
Hi, Liliana Marie Prikler <liliana.prikler@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@gmail.com>
Am Freitag, dem 16.02.2024 um 14:44 -0500 schrieb Maxim Cournoyer: > Hi, > > Liliana Marie Prikler <liliana.prikler@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. Thanks for the hint. > > (package > > - (name "gnome") > > + (name %name) > > Nitpick: I'd use name*, as %name is often associated with globals in > Guix. I think I'll be using a dummy name instead so that we can use regular field syntax. > > (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. I took the synopsis and description of the existing GNOME package. Feel free to suggest an alternative. Cheers >
Hello, Le vendredi 16 février 2024 à 21:08 +0100, Liliana Marie Prikler a écrit : > > > + "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. > I took the synopsis and description of the existing GNOME package. > Feel free to suggest an alternative. Here is my suggestion: GNOME is a graphical desktop environment. It includes a wide variety of applications with a common interface for browsing the web, editing text and images, creating documents and diagrams, playing media, scanning, and much more. It also provides libraries and tools to help write such applications. What do you think? Best regards, Vivien
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) (package - (name "gnome") + (name %name) (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 +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)))) (define-public byzanz ;; The last stable release of Byzanz was in 2011, but there have been many