summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnome.scm104
-rw-r--r--gnu/packages/patches/gnome-control-center-libexecdir.patch58
3 files changed, 115 insertions, 48 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index eac8652056..f4efe8e8f4 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1185,6 +1185,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gmp-faulty-test.patch			\
   %D%/packages/patches/gnash-fix-giflib-version.patch	        \
   %D%/packages/patches/gnome-boxes-add-guix-logo.patch		\
+  %D%/packages/patches/gnome-control-center-libexecdir.patch	\
   %D%/packages/patches/gnome-online-miners-tracker-3.patch	\
   %D%/packages/patches/gnome-screenshot-meson-0.60.patch	\
   %D%/packages/patches/gnome-settings-daemon-gc.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index acad7abcea..a8677ef112 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -39,7 +39,7 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
-;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
@@ -8528,7 +8528,7 @@ devices using the GNOME desktop.")
 (define-public gnome-control-center
   (package
     (name "gnome-control-center")
-    (version "40.1")
+    (version "41.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -8536,7 +8536,9 @@ devices using the GNOME desktop.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0rr4d5m2a72vrb31jgyx49dp0s2pwgyxsrk4hyw5ym66wq63c3v1"))))
+                "0j72ixhli621psbrma86qxy0spv6gpjx6k9hg2jih97c6dmzqwc2"))
+              (patches (search-patches
+                        "gnome-control-center-libexecdir.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -8581,53 +8583,59 @@ devices using the GNOME desktop.")
            ;; Don't create 'icon-theme.cache'.
            (lambda _
              (substitute* "build-aux/meson/meson_post_install.py"
-               (("gtk-update-icon-cache") (which "true"))))))))
+               (("gtk-update-icon-cache") (which "true")))))
+         (add-before 'install 'no-polkit-magic
+           ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
+           (lambda _
+             (setenv "PKEXEC_UID" "something"))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("xsltproc" ,libxslt)
-       ;; For tests
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("python-dbusmock" ,python-dbusmock)
-       ("xorg-server" ,xorg-server-for-tests)))
+     (list `(,glib "bin")               ;for glib-mkenums, etc.
+           intltool
+           pkg-config
+           python
+           libxslt
+           ;; For tests
+           hicolor-icon-theme
+           python-dbusmock
+           xorg-server-for-tests))
     (inputs
-     `(("accountsservice" ,accountsservice)
-       ("clutter-gtk" ,clutter-gtk)
-       ("colord-gtk" ,colord-gtk)
-       ("cups" ,cups)
-       ("dconf" ,dconf)
-       ("docbook-xsl" ,docbook-xsl)
-       ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
-       ("gnome-bluetooth" ,gnome-bluetooth)
-       ("gnome-desktop" ,gnome-desktop)
-       ("gnome-online-accounts" ,gnome-online-accounts)
-       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
-       ("gnome-session" ,gnome-session)
-       ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("grilo" ,grilo)
-       ("gsound" ,gsound)
-       ("ibus" ,ibus)
-       ("libcanberra" ,libcanberra)
-       ("libgnomekbd" ,libgnomekbd)
-       ("libgudev" ,libgudev)
-       ("libgtop" ,libgtop)
-       ("libnma" ,libnma)
-       ("libpwquality" ,libpwquality)
-       ("libsecret" ,libsecret)
-       ("libsoup" ,libsoup-minimal-2)
-       ("libxml2" ,libxml2)
-       ("libwacom" ,libwacom)
-       ("mesa" ,mesa)
-       ("mit-krb5" ,mit-krb5)
-       ("modem-manager" ,modem-manager)
-       ("network-manager-applet" ,network-manager-applet)
-       ("polkit" ,polkit)
-       ("pulseaudio" ,pulseaudio)
-       ("smbclient" ,samba)
-       ("tzdata" ,tzdata)
-       ("udisks" ,udisks)
-       ("upower" ,upower)))
+     (list accountsservice
+           clutter-gtk
+           colord-gtk
+           cups
+           dconf
+           docbook-xsl
+           gcr
+           gnome-bluetooth
+           gnome-desktop
+           gnome-online-accounts
+           `(,gnome-online-accounts "lib")
+           gnome-session
+           gnome-settings-daemon
+           grilo
+           gsound
+           ibus
+           libcanberra
+           libgnomekbd
+           libgudev
+           libgtop
+           libnma
+           libpwquality
+           librsvg                      ;for loading SVG files
+           libsecret
+           libsoup-minimal-2
+           libxml2
+           libwacom
+           mesa
+           mit-krb5
+           modem-manager
+           network-manager-applet
+           polkit
+           pulseaudio
+           samba
+           tzdata
+           udisks
+           upower))
     (synopsis "Utilities to configure the GNOME desktop")
     (home-page "https://www.gnome.org/")
     (description
diff --git a/gnu/packages/patches/gnome-control-center-libexecdir.patch b/gnu/packages/patches/gnome-control-center-libexecdir.patch
new file mode 100644
index 0000000000..a5f4988e34
--- /dev/null
+++ b/gnu/packages/patches/gnome-control-center-libexecdir.patch
@@ -0,0 +1,58 @@
+This reverts commit 2007a5b2, which broke installation of the package.
+See: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1579.
+
+diff --git a/meson.build b/meson.build
+index 734810d01..b4a45c60d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -259,6 +259,13 @@ config_h.set('HAVE_WACOM', host_is_linux_not_s390,
+ config_h.set('BUILD_THUNDERBOLT', host_is_linux_not_s390,
+              description: 'Define to 1 to build the Thunderbolt panel')
+ 
++# Check for info panel
++gnome_session_libexecdir = get_option('gnome_session_libexecdir')
++if gnome_session_libexecdir == ''
++  gnome_session_libexecdir = control_center_libexecdir
++endif
++
++
+ gnome = import('gnome')
+ i18n = import('i18n')
+ pkg = import('pkgconfig')
+diff --git a/meson_options.txt b/meson_options.txt
+index 1b7b54810..910226c56 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,5 +1,6 @@
+ option('cheese', type: 'boolean', value: true, description: 'build with cheese webcam support')
+ option('documentation', type: 'boolean', value: false, description: 'build documentation')
++option('gnome_session_libexecdir', type: 'string', value: '', description: 'Directory for gnome-session\'s libexecdir')
+ option('ibus', type: 'boolean', value: true, description: 'build with IBus support')
+ option('privileged_group', type: 'string', value: 'wheel', description: 'name of group that has elevated permissions')
+ option('snap', type: 'boolean', value: false, description: 'build with Snap support')
+diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
+index 6e832eb35..b34030c8c 100644
+--- a/panels/info-overview/cc-info-overview-panel.c
++++ b/panels/info-overview/cc-info-overview-panel.c
+@@ -236,7 +236,7 @@ static char *
+ get_renderer_from_helper (const char **env)
+ {
+   int status;
+-  char *argv[] = { LIBEXECDIR "/gnome-control-center-print-renderer", NULL };
++  char *argv[] = { GNOME_SESSION_DIR "/gnome-session-check-accelerated", NULL };
+   g_auto(GStrv) envp = NULL;
+   g_autofree char *renderer = NULL;
+   g_autoptr(GError) error = NULL;
+diff --git a/panels/info-overview/meson.build b/panels/info-overview/meson.build
+index 2fe10b32c..506b7274e 100644
+--- a/panels/info-overview/meson.build
++++ b/panels/info-overview/meson.build
+@@ -19,7 +19,7 @@ i18n.merge_file(
+ 
+ cflags += [
+   '-DDATADIR="@0@"'.format(control_center_datadir),
+-  '-DLIBEXECDIR="@0@"'.format(control_center_libexecdir),
++  '-DGNOME_SESSION_DIR="@0@"'.format(gnome_session_libexecdir)
+ ]
+ 
+ sources = files(