summaryrefslogtreecommitdiff
path: root/gnu/packages/gnome.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gnome.scm')
-rw-r--r--gnu/packages/gnome.scm334
1 files changed, 228 insertions, 106 deletions
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3a34356beb..366051a3e0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -21,7 +21,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
@@ -32,7 +32,8 @@
;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2018 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -127,6 +128,7 @@
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages rust)
#:use-module (gnu packages samba)
#:use-module (gnu packages scanner)
#:use-module (gnu packages selinux)
@@ -277,7 +279,7 @@ features to enable users to create their discs easily and quickly.")
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gobject-introspection" ,gobject-introspection)
("duplicity" ,duplicity)
- ("python" ,python2-minimal)
+ ("python" ,python-2)
("python-pygobject" ,python2-pygobject)
("gtk+" ,gtk+)
("libnotify" ,libnotify)
@@ -975,6 +977,88 @@ for translations, though this is only a dependency for the maintainers. This
database is translated at Transifex.")
(license license:gpl2+)))
+(define-public system-config-printer
+ (package
+ (name "system-config-printer")
+ (version "1.5.11")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/zdohnal/system-config-printer/releases/"
+ "download/" version
+ "/system-config-printer-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q"))))
+ (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 'unpack 'patch-Makefile.am
+ (lambda _
+ ;; The Makefile generates some scripts, so set a valid shebang
+ (substitute* "Makefile.am"
+ (("/bin/bash") (which "bash")))
+ (delete-file "configure")
+ #t))
+ (add-after 'unpack 'patch-docbook-xml
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Modify the man XML otherwise xmlto tries to access the network
+ (substitute* "man/system-config-printer.xml"
+ (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+ (string-append (assoc-ref inputs "docbook-xml")
+ "/xml/dtd/docbook/")))
+ #t))
+ (add-after 'install 'wrap-for-python
+ (@@ (guix build python-build-system) wrap))
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (for-each
+ (lambda (program)
+ (wrap-program program
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
+ (map (lambda (name)
+ (string-append out "/bin/" name))
+ '("system-config-printer"
+ "system-config-printer-applet"
+ "install-printerdriver"
+ "scp-dbus-service"))))
+ #t)))))
+ (inputs
+ `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gobject-introspection" ,gobject-introspection)
+ ("python" ,python)
+ ("cups" ,cups)
+ ("python-dbus" ,python-dbus)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pycups" ,python-pycups)
+ ("python-requests" ,python-requests)
+ ("python-pycairo" ,python-pycairo)
+ ("libnotify" ,libnotify)
+ ("packagekit" ,packagekit)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("desktop-file-utils" ,desktop-file-utils)
+ ("glib" ,glib)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("intltool" ,intltool)
+ ("xmlto" ,xmlto)
+ ("docbook-xml" ,docbook-xml-4.1.2)
+ ("docbook-xsl" ,docbook-xsl)
+ ("libxml2" ,libxml2)))
+ (home-page "https://github.com/zdohnal/system-config-printer")
+ (synopsis "CUPS administration tool")
+ (description
+ "system-config-printer is a CUPS administration tool. It's written in
+Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
+configuring CUPS.")
+ (license license:gpl2+)))
+
(define-public hicolor-icon-theme
(package
(name "hicolor-icon-theme")
@@ -1218,7 +1302,7 @@ dealing with different structured file formats.")
(define-public librsvg
(package
(name "librsvg")
- (version "2.40.20")
+ (version "2.44.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -1226,11 +1310,22 @@ dealing with different structured file formats.")
name "-" version ".tar.xz"))
(sha256
(base32
- "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
+ "1h3qnqhr0l7pd2bxg69ki6ckl4srdwgr471dpp4jq9i4784hp0v6"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(#:make-flags '("CC=gcc")
+ #:phases
(modify-phases %standard-phases
+ ;; Don't patch anything in vendor/ to avoid having to recompute
+ ;; checksums for the bundled Cargo "crates". TODO: Unbundle those.
+ (delete 'patch-source-shebangs)
+ (delete 'patch-generated-file-shebangs)
+ (delete 'patch-usr-bin-file)
+ (add-before 'configure 'patch-all-the-things
+ (lambda _
+ (for-each patch-shebang '("tap-driver.sh" "tap-test"))
+ (patch-/usr/bin/file "configure")
+ #t))
(add-before 'configure 'pre-configure
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "gdk-pixbuf-loader/Makefile.in"
@@ -1244,22 +1339,32 @@ dealing with different structured file formats.")
(("gdk_pixbuf_cache_file = .*$")
"gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
#t))
- (add-after 'unpack 'remove-failing-tests
+ (add-before 'check 'remove-failing-tests
(lambda _
(with-directory-excursion "tests/fixtures/reftests"
(for-each delete-file
- '(;; This test fails on i686:
+ '(;; The images produced by these tests differ slightly
+ ;; from their reference counterparts due to differences
+ ;; in the build environment (missing fonts, etc). See
+ ;; <tests/README.md> for details.
+ ;; These fail on x86_64.
+ "svg1.1/coords-viewattr-02-b.svg"
+ "svg1.1/filters-composite-04-f.svg"
+ "svg1.1/filters-image-01-b.svg"
+ "svg1.1/filters-conv-02-f.svg"
+ "svg1.1/filters-conv-04-f.svg"
+ ;; This test fails on i686:
"svg1.1/masking-path-04-b.svg"
- "svg1.1/masking-path-04-b-ref.png"
;; This test fails on armhf:
"svg1.1/masking-mask-01-b.svg"
- "svg1.1/masking-mask-01-b-ref.png"
;; This test fails on aarch64:
- "bugs/777834-empty-text-children.svg"
- "bugs/777834-empty-text-children-ref.png")))
+ "bugs/777834-empty-text-children.svg")))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
+ ;; This is the minimum supported Rust version in Librsvg 2.44.
+ ("rust" ,rust-1.27)
+ ("cargo" ,rust-1.27 "cargo")
("glib" ,glib "bin") ; glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
(inputs
@@ -4572,6 +4677,14 @@ such as gzip tarballs.")
(out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/gnome-session")
`("PATH" ":" prefix (,(string-append glib "/bin"))))
+ #t)))
+ (add-after 'install 'add-absolute-paths-to-desktop-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (substitute* (map (lambda (x)
+ (string-append out "/share/xsessions/" x))
+ '("gnome.desktop" "gnome-xorg.desktop"))
+ (("gnome-session") (string-append out "/bin/gnome-session")))
#t))))
#:configure-flags
@@ -5317,10 +5430,6 @@ libxml2.")
;; service for TTY 1 before starting GDM).
"--with-initial-vt=7"
- ;; By default, GDM expects distributions to install a custom Xsession
- ;; script. It provides a generic one if --enable-gdm-xsession is set.
- "--enable-gdm-xsession"
-
;; Use '/etc/environment' for locale settings instead of the
;; systemd-specific '/etc/locale.conf'.
"--with-lang-file=/etc/environment"
@@ -5338,7 +5447,7 @@ libxml2.")
(modify-phases %standard-phases
(add-before
'configure 'pre-configure
- (lambda _
+ (lambda* (#:key inputs #:allow-other-keys)
;; We don't have <systemd/sd-daemon.h>.
(substitute* '("common/gdm-log.c"
"daemon/gdm-server.c"
@@ -5367,44 +5476,64 @@ libxml2.")
"\"/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"
- ;; The session bus (which GDM will initialize from the this
- ;; session environment) needs to know where to find the system
- ;; service files.
- "gdm_session_set_environment_variable (self, \"XDG_DATA_DIRS\",\n"
- " \"/run/current-system/profile/share\");\n"
- )))
+ (let ((propagate '("GDM_CUSTOM_CONF"
+ "GDM_DBUS_DAEMON"
+ "GDM_X_SERVER"
+ "GDM_X_SESSION"
+ ;; XXX: Remove this once GNOME Shell is
+ ;; a dependency of GDM.
+ "XDG_DATA_DIRS")))
+ (substitute* "daemon/gdm-session.c"
+ (("set_up_session_environment \\(self\\);")
+ (apply string-append
+ "set_up_session_environment (self);\n"
+ (map (lambda (name)
+ (string-append
+ "gdm_session_set_environment_variable "
+ "(self, \"" name "\","
+ "g_getenv (\"" name "\"));\n"))
+ propagate)))))
;; Look for custom GDM conf in /run/current-system.
(substitute* '("common/gdm-settings-desktop-backend.c")
(("GDM_CUSTOM_CONF")
- "\"/run/current-system/etc/gdm/custom.conf\""))
+ (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
+ " ? g_getenv(\"GDM_CUSTOM_CONF\")"
+ " : 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")
+ (("\"dbus-daemon\"")
+ "g_getenv (\"GDM_DBUS_DAEMON\")")
(("X_SERVER")
- "g_getenv (\"GDM_X_SERVER\")"))
- #t)))))
+ "g_getenv (\"GDM_X_SERVER\")")
+ (("GDMCONFDIR \"/Xsession\"")
+ "g_getenv (\"GDM_X_SESSION\")"))
+ ;; Use an absolute path for GNOME Session.
+ (substitute* "daemon/gdm-launch-environment.c"
+ (("\"gnome-session\"")
+ (string-append "\"" (assoc-ref inputs "gnome-session")
+ "/bin/gnome-session\"")))
+ #t))
+ ;; GDM needs GNOME Session to run these applications. We link
+ ;; their autostart files in `share/gdm/greeter/autostart'
+ ;; because GDM explicitly tells GNOME Session to look there.
+ ;;
+ ;; XXX: GNOME Shell should be linked here too, but currently
+ ;; GNOME Shell depends on GDM.
+ (add-after 'install 'link-autostart-files
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (autostart (string-append out "/share/gdm/"
+ "greeter/autostart"))
+ (settings (assoc-ref inputs "gnome-settings-daemon")))
+ (mkdir-p autostart)
+ (with-directory-excursion autostart
+ (for-each (lambda (desktop)
+ (symlink desktop (basename desktop)))
+ (find-files (string-append settings "/etc/xdg"))))
+ #t))))))
(native-inputs
`(("dconf" ,dconf)
("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@@ -5417,6 +5546,8 @@ libxml2.")
`(("accountsservice" ,accountsservice)
("check" ,check) ; for testing
("elogind" ,elogind)
+ ("gnome-session" ,gnome-session)
+ ("gnome-settings-daemon" ,gnome-settings-daemon)
("gtk+" ,gtk+)
("iso-codes" ,iso-codes)
("libcanberra" ,libcanberra)
@@ -6065,6 +6196,7 @@ associations for GNOME.")
("pinentry-gnome3" ,pinentry-gnome3)
("pulseaudio" ,pulseaudio)
("shared-mime-info" ,shared-mime-info)
+ ("system-config-printer" ,system-config-printer)
("totem" ,totem)
("xdg-user-dirs" ,xdg-user-dirs)
("yelp" ,yelp)
@@ -7259,7 +7391,7 @@ mp3, Ogg Vorbis and FLAC")
(define-public soundconverter
(package
(name "soundconverter")
- (version "3.0.0")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
@@ -7268,8 +7400,7 @@ mp3, Ogg Vorbis and FLAC")
"soundconverter-" version ".tar.xz"))
(sha256
- (base32
- "1wrxf5py54xplrf97qp24pzbis0cvax5c6k0c7vr3z3ry8r7gd7c"))
+ (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
(patches
(search-patches
"soundconverter-remove-gconf-dependency.patch"))))
@@ -7286,12 +7417,6 @@ mp3, Ogg Vorbis and FLAC")
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-POTFILES.in
- (lambda _
- (substitute* "po/POTFILES.in"
- ;; This file doesn't exist, so without removing it, the 'check
- ;; phase fails for the po directory
- (("soundconverter/gconfstore\\.py") ""))))
(add-after 'install 'wrap-soundconverter-for-python
(assoc-ref python:%standard-phases 'wrap))
(add-after 'install 'wrap-soundconverter
@@ -7322,52 +7447,49 @@ configurable file renaming. ")
(license license:gpl3)))
(define-public workrave
- (let ((commit "v1_10_21"))
- (package
- (name "workrave")
- (version (string-map (match-lambda
- (#\_ #\.)
- (chr chr))
- (string-drop commit 1)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/rcaelers/workrave.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "150qca8c552fakjlzkgarsxgp87l1xcwn19svqsa9d0cygqxjgia"))))
- (build-system glib-or-gtk-build-system)
- (propagated-inputs `(("glib" ,glib)
- ("gtk+" ,gtk+)
- ("gdk-pixbuf" ,gdk-pixbuf)
- ("gtkmm" ,gtkmm)
- ("glibmm" ,glibmm)
- ("libx11" ,libx11)
- ("libxtst" ,libxtst)
- ("dconf" ,dconf)
- ("libice" ,libice)))
- (inputs `(("libsm" ,libsm)
- ("python-cheetah" ,python2-cheetah)))
- (native-inputs `(("glib" ,glib "bin")
- ("pkg-config" ,pkg-config)
- ("gettext" ,gnu-gettext)
- ("autoconf" ,autoconf)
- ("autoconf-archive" , autoconf-archive)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("intltool" ,intltool)
- ("libxscrnsaver" ,libxscrnsaver)
- ("gobject-introspection" ,gobject-introspection)
- ("python2" ,python-2)))
- (synopsis "Tool to help prevent repetitive strain injury (RSI)")
- (description
- "Workrave is a program that assists in the recovery and prevention of
+ (package
+ (name "workrave")
+ (version "1.10.21")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rcaelers/workrave.git")
+ (commit (string-map (match-lambda (#\_ #\.) (chr chr)) version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "150qca8c552fakjlzkgarsxgp87l1xcwn19svqsa9d0cygqxjgia"))))
+ (build-system glib-or-gtk-build-system)
+ (propagated-inputs `(("glib" ,glib)
+ ("gtk+" ,gtk+)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("gtkmm" ,gtkmm)
+ ("glibmm" ,glibmm)
+ ("libx11" ,libx11)
+ ("libxtst" ,libxtst)
+ ("dconf" ,dconf)
+ ("libice" ,libice)))
+ (inputs `(("libsm" ,libsm)
+ ("python-cheetah" ,python2-cheetah)))
+ (native-inputs `(("glib" ,glib "bin")
+ ("pkg-config" ,pkg-config)
+ ("gettext" ,gnu-gettext)
+ ("autoconf" ,autoconf)
+ ("autoconf-archive" , autoconf-archive)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("intltool" ,intltool)
+ ("libxscrnsaver" ,libxscrnsaver)
+ ("gobject-introspection" ,gobject-introspection)
+ ("python2" ,python-2)))
+ (synopsis "Tool to help prevent repetitive strain injury (RSI)")
+ (description
+ "Workrave is a program that assists in the recovery and prevention of
repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
micro-pauses and rest breaks, and restricts you to your daily limit.")
- (home-page "http://www.workrave.org")
- (license license:gpl3+))))
+ (home-page "http://www.workrave.org")
+ (license license:gpl3+)))
(define-public ghex
(package
@@ -7375,9 +7497,9 @@ micro-pauses and rest breaks, and restricts you to your daily limit.")
(version "3.18.3")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
+ (uri (string-append "mirror://gnome/sources/ghex/"
(version-major+minor version) "/"
- name "-" version ".tar.xz"))
+ "ghex-" version ".tar.xz"))
(sha256
(base32
"1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66"))))
@@ -7388,7 +7510,7 @@ micro-pauses and rest breaks, and restricts you to your daily limit.")
("which" ,which)
("intltool" ,intltool)
("yelp-tools" ,yelp-tools)
- ("desktop-file-utils" ,desktop-file-utils))) ;for 'desktop-file-validate'
+ ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
(inputs
`(("atk" ,atk)
("gtk" ,gtk+)))
@@ -7404,9 +7526,9 @@ hexadecimal or ASCII. It is useful for editing binary files in general.")
(version "3.28.5")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
+ (uri (string-append "mirror://gnome/sources/libdazzle/"
(version-major+minor version) "/"
- name "-" version ".tar.xz"))
+ "libdazzle-" version ".tar.xz"))
(sha256
(base32
"08qdwv2flywnh6kibkyv0pnm67pk8xlmjh4yqx6hf13hyhkxkqgg"))))
@@ -7427,9 +7549,9 @@ hexadecimal or ASCII. It is useful for editing binary files in general.")
(setenv "DISPLAY" ":1")
#t)))))
(native-inputs
- `(("glib" ,glib "bin") ; glib-compile-resources
+ `(("glib" ,glib "bin") ; glib-compile-resources
("pkg-config" ,pkg-config)
- ;; For tests
+ ;; For tests.
("xorg-server" ,xorg-server)))
(inputs
`(("glib" ,glib)