aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/gnome.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r--gnu/packages/gnome.scm114
1 files changed, 94 insertions, 20 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 8f7d0a3dad..4d12ab4d59 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -59,6 +59,7 @@
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages calendar)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
@@ -99,6 +100,7 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages music)
#:use-module (gnu packages networking)
+ #:use-module (gnu packages ninja)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@@ -5152,10 +5154,20 @@ libxml2.")
(sha256
(base32
"1s2xzrwcjhfb4ra8jrxqfycs1jpv97id0f6idb2h6vjkspxbjy23"))))
- (build-system gnu-build-system)
+ (build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags
- '("--without-plymouth")
+ `("--without-plymouth"
+ "--disable-systemd-journal"
+ "--localstatedir=/var"
+ ,(string-append "--with-default-path="
+ (string-join '("/run/setuid-programs"
+ "/run/current-system/profile/bin"
+ "/run/current-system/profile/sbin")
+ ":"))
+ ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
+ ;; XDG_DATA_DIRS so that it finds its schemas.
+ "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
#:phases
(modify-phases %standard-phases
(add-before
@@ -5173,9 +5185,54 @@ libxml2.")
"libgdm/gdm-user-switching.c")
(("#include <systemd/sd-login\\.h>")
"#include <elogind/sd-login.h>"))
- ;; Avoid checking SYSTEMD using pkg-config.
- (setenv "SYSTEMD_CFLAGS" " ")
- (setenv "SYSTEMD_LIBS" "-lelogind")
+ ;; Check for elogind.
+ (substitute* '("configure")
+ (("libsystemd")
+ "libelogind"))
+ ;; Look for system-installed sessions in
+ ;; /run/current-system/profile/share.
+ (substitute* '("libgdm/gdm-sessions.c"
+ "daemon/gdm-session.c"
+ "daemon/gdm-display.c"
+ "daemon/gdm-launch-environment.c")
+ (("DATADIR \"/x")
+ "\"/run/current-system/profile/share/x")
+ (("DATADIR \"/wayland")
+ "\"/run/current-system/profile/share/wayland")
+ (("DATADIR \"/gnome")
+ "\"/run/current-system/profile/share/gnome"))
+ (substitute* '("daemon/gdm-session.c")
+ (("set_up_session_environment \\(self\\);")
+ (string-append
+ "set_up_session_environment (self);\n"
+ ;; Propagate GDM_X_SERVER environment variable (which is set
+ ;; by the GDM service, as it's a function of what X modules
+ ;; the user decides to have available) down to worker
+ ;; processes.
+ "gdm_session_set_environment_variable (self, \"GDM_X_SERVER\",\n"
+ " g_getenv (\"GDM_X_SERVER\"));\n"
+ ;; FIXME: Really glib should be declaring XDG_CONFIG_DIRS as a
+ ;; variable, but it doesn't do that right now. Anyway
+ ;; /run/current-system/profile/share/gnome-session/sessions/gnome.desktop
+ ;; requires that a number of .desktop files be present, and
+ ;; these special .desktop files are in $XDG_CONFIG_DIRS (which
+ ;; defaults to /etc/xdg if it's not set). Here we need to
+ ;; provide a value such that the GNOME session's requirements
+ ;; are met (provided GNOME is installed of course).
+ "gdm_session_set_environment_variable (self, \"XDG_CONFIG_DIRS\",\n"
+ " \"/run/current-system/profile/etc/xdg\");\n"
+ )))
+ ;; Look for custom GDM conf in /run/current-system.
+ (substitute* '("common/gdm-settings-backend.c")
+ (("GDM_CUSTOM_CONF")
+ "/run/current-system/etc/gdm/custom.conf"))
+ ;; Use service-supplied path to X.
+ (substitute* '("daemon/gdm-server.c")
+ (("\\(X_SERVER X_SERVER_ARG_FORMAT")
+ "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
+ (substitute* '("daemon/gdm-x-session.c")
+ (("X_SERVER")
+ "g_getenv (\"GDM_X_SERVER\")"))
#t)))))
(native-inputs
`(("dconf" ,dconf)
@@ -5799,6 +5856,7 @@ associations for GNOME.")
("pulseaudio" ,pulseaudio)
("shared-mime-info" ,shared-mime-info)
("totem" ,totem)
+ ("xdg-user-dirs" ,xdg-user-dirs)
("yelp" ,yelp)
("zenity" ,zenity)))
(synopsis "The GNU desktop environment")
@@ -6517,7 +6575,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
(define-public gspell
(package
(name "gspell")
- (version "1.4.1")
+ (version "1.4.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6525,7 +6583,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
name "-" version ".tar.xz"))
(sha256
(base32
- "1ghh1xdzf04mfgb13zqpj88krpa44xv2vbyhm6k017kzrpz8hbs4"))
+ "1683vyyfq3q0ph665jj6id8hnlyid4qxzmqiwpv97gmz8zksg6x5"))
(patches (search-patches "gspell-dash-test.patch"))))
(build-system glib-or-gtk-build-system)
(arguments
@@ -6620,7 +6678,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
(define-public lollypop
(package
(name "lollypop")
- (version "0.9.240")
+ (version "0.9.244")
(source
(origin
(method url-fetch)
@@ -6629,31 +6687,48 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0n1ycmg6dgz1pajs80fwlcbxw3rx1hff1xw6ja67zngm85ydbjvq"))))
+ "0y9nmwrplz4mlvc2badfbyjj97ksn6qqis3rgm8lvp5llsk1583w"))))
+ ;; TODO: Use meson-build-system
(build-system glib-or-gtk-build-system)
(arguments
`(#:imported-modules ((guix build python-build-system)
,@%glib-or-gtk-build-system-modules)
- #:phases (modify-phases %standard-phases
- (add-after 'install 'wrap-program
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
- (wrap-program (string-append out "/bin/lollypop")
- `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
- #t))
- (add-after 'install 'wrap
- (@@ (guix build python-build-system) wrap)))))
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; remove post-install script, we update the caches later
+ (substitute* "meson.build"
+ (("meson.add_install_script\\('meson_post_install.py'\\)") ""))
+ (zero?
+ (system* "meson" "builddir" (string-append "--prefix=" out))))))
+ (replace 'install
+ (lambda _ (zero? (system* "ninja" "-C" "builddir" "install"))))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (wrap-program (string-append out "/bin/lollypop")
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+ #t))
+ (add-after 'install 'wrap
+ (@@ (guix build python-build-system) wrap)))))
(native-inputs
`(("intltool" ,intltool)
("itstool" ,itstool)
+ ("ninja" ,ninja)
("pkg-config" ,pkg-config)))
(inputs
`(("gobject-introspection" ,gobject-introspection)
+ ("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+)
("libnotify" ,libnotify)
("libsecret" ,libsecret)
("libsoup" ,libsoup)
+ ("meson" ,meson)
("python" ,python)
("python-beautifulsoup4" ,python-beautifulsoup4)
("python-gst" ,python-gst)
@@ -6665,7 +6740,6 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
(propagated-inputs
`(;; gst-plugins-base is required to start Lollypop,
;; the others are required to play streaming.
- ("gst-plugins-base" ,gst-plugins-base)
("gst-plugins-good" ,gst-plugins-good)
("gst-plugins-ugly" ,gst-plugins-ugly)))
(home-page "https://gnumdk.github.io/lollypop-web")