;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Ryan Prior ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages pantheon) #:use-module (gnu packages cmake) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages package-management) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages xml) #:use-module (gnu packages) #:use-module (guix build-system meson) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils)) (define-public granite (package (name "granite") (version "6.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/elementary/granite") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0ilslmg63hh2x7h5rvs3mhzw1y9ixhhkqnn1j1lzwm12v2iidkaq")))) (build-system meson-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'disable-icon-cache (lambda _ (setenv "DESTDIR" "/")))))) (inputs (list glib gtk+ libgee)) (native-inputs (list gettext-minimal gobject-introspection pkg-config python vala)) (home-page "https://github.com/elementary/granite") (synopsis "Library that extends GTK with common widgets and utilities") (description "Granite is a companion library for GTK+ and GLib. Among other things, it provides complex widgets and convenience functions designed for use in apps built for the Pantheon desktop.") (license license:lgpl3+))) (define-public pantheon-calculator (package (name "pantheon-calculator") (version "1.7.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/elementary/calculator") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "11rwwi6nlhwpcm29dn2mbz0239nfjdwlqlqbchm0j9sr1ypifk2k")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-schema-cache-generation (lambda _ (setenv "DESTDIR" "/")))))) (inputs (list granite glib gtk+ libgee libhandy)) (native-inputs `(("cmake" ,cmake) ("glib:bin" ,glib "bin") ; for glib-compile-schemas ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config) ("vala" ,vala))) (home-page "https://github.com/elementary/calculator") (synopsis "Desktop calculator") (description "Calculator is an application for performing simple arithmetic. It is the default calculator application in the Pantheon desktop.") (license license:gpl3))) (define-public sideload (package (name "sideload") (version "6.0.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/elementary/sideload") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0abpcawmmv5mgzk2i5n9rlairmjr2v9rg9b8c9g7xa085s496bi9")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t #:phases (modify-phases %standard-phases (add-before 'install 'set-environment-variables (lambda _ ;; Disable compiling schemas and updating desktop databases (setenv "DESTDIR" "/"))) (add-after 'install 'install-symlinks (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin/io.elementary.sideload")) (link (string-append out "/bin/sideload"))) (symlink bin link))))))) (inputs `(("flatpak" ,flatpak) ("glib" ,glib) ("granite" ,granite) ("gtk" ,gtk+) ("hicolor-icon-theme" ,hicolor-icon-theme) ("libgee" ,libgee) ("libhandy" ,libhandy) ("libostree" ,libostree) ("libxml2" ,libxml2))) (propagated-inputs ;; Sideload needs these in the environment to fetch data securely from ;; Flatpak remotes. (list gnupg gpgme)) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) ("vala" ,vala))) (home-page "https://github.com/elementary/sideload") (synopsis "Graphical application to side-load Flatpaks") (description "Sideload handles flatpakref files, like those you might find on Flathub or another third-party website providing a Flatpak app for download.") (license license:gpl3+))) lass='msg-tooltip'>Fixes <https://bugs.gnu.org/41791>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. This change mirrors changes made in the Shepherd 0.8.1, where signals are blocked in the shepherd process in support of 'signalfd'. The regression was introduced with the switch to 0.8.1 in 3f9c62d1a8b345909adaeb22f454ad22554c55a1: child processes would not receive SIGTERM upon 'herd stop SERVICE'. * gnu/build/shepherd.scm <top level>: Autoload (shepherd system). (make-forkexec-constructor/container): Call call to 'sigaction' and 'unblock-signals'. Ludovic Courtès 2019-09-26shepherd: Ensure the log file has correct ownership....* gnu/build/shepherd.scm (make-forkexec-constructor/container): Ensure LOG-FILE has correct ownership. Ludovic Courtès 2019-09-26shepherd: 'make-forkexec-constructor/container' keeps the log file....* gnu/build/shepherd.scm (make-forkexec-constructor/container): Don't call 'clean-up' on LOG-FILE. This mirrors Shepherd commit 6892f638c78a14fedd075f664432757bc015c140. Ludovic Courtès