gnu: emacs-helm: Update to 3.8.7.
[jackhill/guix/guix.git] / gnu / packages / pantheon.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (gnu packages pantheon)
20 #:use-module (gnu packages cmake)
21 #:use-module (gnu packages freedesktop)
22 #:use-module (gnu packages gettext)
23 #:use-module (gnu packages glib)
24 #:use-module (gnu packages gnome)
25 #:use-module (gnu packages gnupg)
26 #:use-module (gnu packages gtk)
27 #:use-module (gnu packages package-management)
28 #:use-module (gnu packages pkg-config)
29 #:use-module (gnu packages python)
30 #:use-module (gnu packages xml)
31 #:use-module (gnu packages)
32 #:use-module (guix build-system meson)
33 #:use-module (guix git-download)
34 #:use-module ((guix licenses) #:prefix license:)
35 #:use-module (guix packages)
36 #:use-module (guix utils))
37
38 (define-public granite
39 (package
40 (name "granite")
41 (version "6.2.0")
42 (source (origin
43 (method git-fetch)
44 (uri (git-reference
45 (url "https://github.com/elementary/granite")
46 (commit version)))
47 (file-name (git-file-name name version))
48 (sha256
49 (base32
50 "0ilslmg63hh2x7h5rvs3mhzw1y9ixhhkqnn1j1lzwm12v2iidkaq"))))
51 (build-system meson-build-system)
52 (arguments
53 `(#:phases (modify-phases %standard-phases
54 (add-after 'unpack 'disable-icon-cache
55 (lambda _
56 (setenv "DESTDIR" "/"))))))
57 (inputs (list glib gtk+ libgee))
58 (native-inputs (list gettext-minimal gobject-introspection pkg-config
59 python vala))
60 (home-page "https://github.com/elementary/granite")
61 (synopsis "Library that extends GTK with common widgets and utilities")
62 (description "Granite is a companion library for GTK+ and GLib. Among other
63 things, it provides complex widgets and convenience functions designed for use
64 in apps built for the Pantheon desktop.")
65 (license license:lgpl3+)))
66
67 (define-public pantheon-calculator
68 (package
69 (name "pantheon-calculator")
70 (version "1.7.2")
71 (source
72 (origin
73 (method git-fetch)
74 (uri (git-reference
75 (url "https://github.com/elementary/calculator")
76 (commit version)))
77 (file-name (git-file-name name version))
78 (sha256
79 (base32
80 "11rwwi6nlhwpcm29dn2mbz0239nfjdwlqlqbchm0j9sr1ypifk2k"))))
81 (build-system meson-build-system)
82 (arguments
83 `(#:glib-or-gtk? #t
84 #:phases
85 (modify-phases %standard-phases
86 (add-after 'unpack 'disable-schema-cache-generation
87 (lambda _
88 (setenv "DESTDIR" "/"))))))
89 (inputs
90 (list granite
91 glib
92 gtk+
93 libgee
94 libhandy))
95 (native-inputs
96 `(("cmake" ,cmake)
97 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
98 ("gettext" ,gettext-minimal)
99 ("pkg-config" ,pkg-config)
100 ("vala" ,vala)))
101 (home-page "https://github.com/elementary/calculator")
102 (synopsis "Desktop calculator")
103 (description "Calculator is an application for performing simple
104 arithmetic. It is the default calculator application in the Pantheon
105 desktop.")
106 (license license:gpl3)))
107
108 (define-public sideload
109 (package
110 (name "sideload")
111 (version "6.0.2")
112 (source
113 (origin
114 (method git-fetch)
115 (uri (git-reference
116 (url "https://github.com/elementary/sideload")
117 (commit version)))
118 (file-name (git-file-name name version))
119 (sha256
120 (base32
121 "0abpcawmmv5mgzk2i5n9rlairmjr2v9rg9b8c9g7xa085s496bi9"))))
122 (build-system meson-build-system)
123 (arguments
124 `(#:glib-or-gtk? #t
125 #:phases
126 (modify-phases %standard-phases
127 (add-before 'install 'set-environment-variables
128 (lambda _
129 ;; Disable compiling schemas and updating desktop databases
130 (setenv "DESTDIR" "/")))
131 (add-after 'install 'install-symlinks
132 (lambda* (#:key outputs #:allow-other-keys)
133 (let* ((out (assoc-ref outputs "out"))
134 (bin (string-append out "/bin/io.elementary.sideload"))
135 (link (string-append out "/bin/sideload")))
136 (symlink bin link)))))))
137 (inputs
138 `(("flatpak" ,flatpak)
139 ("glib" ,glib)
140 ("granite" ,granite)
141 ("gtk" ,gtk+)
142 ("hicolor-icon-theme" ,hicolor-icon-theme)
143 ("libgee" ,libgee)
144 ("libhandy" ,libhandy)
145 ("libostree" ,libostree)
146 ("libxml2" ,libxml2)))
147 (propagated-inputs
148 ;; Sideload needs these in the environment to fetch data securely from
149 ;; Flatpak remotes.
150 (list gnupg gpgme))
151 (native-inputs
152 `(("gettext" ,gettext-minimal)
153 ("glib:bin" ,glib "bin")
154 ("gobject-introspection" ,gobject-introspection)
155 ("pkg-config" ,pkg-config)
156 ("vala" ,vala)))
157 (home-page "https://github.com/elementary/sideload")
158 (synopsis "Graphical application to side-load Flatpaks")
159 (description "Sideload handles flatpakref files, like those you might find
160 on Flathub or another third-party website providing a Flatpak app for
161 download.")
162 (license license:gpl3+)))