gnu: gdm: Add missing input.
[jackhill/guix/guix.git] / gnu / packages / enlightenment.scm
CommitLineData
538fb23e
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
9523f637 3;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
ef7a6714 4;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
5c46c858 5;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz>
538fb23e
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
ea28d935 22(define-module (gnu packages enlightenment)
538fb23e
23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix build-system gnu)
8581f4c1 27 #:use-module (guix build-system python)
538fb23e
28 #:use-module (gnu packages)
29 #:use-module (gnu packages bash)
0e790a7c
EF
30 #:use-module (gnu packages check)
31 #:use-module (gnu packages code)
538fb23e
32 #:use-module (gnu packages compression)
33 #:use-module (gnu packages curl)
34 #:use-module (gnu packages fontutils)
22fda787 35 #:use-module (gnu packages freedesktop)
538fb23e
36 #:use-module (gnu packages fribidi)
37 #:use-module (gnu packages game-development)
c58ed773 38 #:use-module (gnu packages gettext)
87a37fdf 39 #:use-module (gnu packages ghostscript)
538fb23e
40 #:use-module (gnu packages gl)
41 #:use-module (gnu packages glib)
42 #:use-module (gnu packages gnome)
27ce97c6 43 #:use-module (gnu packages gstreamer)
ea28d935 44 #:use-module (gnu packages gtk)
538fb23e
45 #:use-module (gnu packages image)
46 #:use-module (gnu packages linux)
0e790a7c 47 #:use-module (gnu packages llvm)
538fb23e 48 #:use-module (gnu packages lua)
87a37fdf 49 #:use-module (gnu packages pdf)
538fb23e
50 #:use-module (gnu packages photo)
51 #:use-module (gnu packages pkg-config)
8581f4c1
EF
52 #:use-module (gnu packages pulseaudio)
53 #:use-module (gnu packages python)
cc2b77df 54 #:use-module (gnu packages tls)
cfa04683 55 #:use-module (gnu packages video)
6ce8fe4c 56 #:use-module (gnu packages xdisorg)
538fb23e
57 #:use-module (gnu packages xorg))
58
59(define-public efl
60 (package
61 (name "efl")
d36212e9 62 (version "1.20.3")
538fb23e
63 (source (origin
64 (method url-fetch)
65 (uri (string-append
e4fef9df 66 "https://download.enlightenment.org/rel/libs/efl/efl-"
7e22d6fe 67 version ".tar.xz"))
538fb23e 68 (sha256
f4db4858 69 (base32
d36212e9 70 "148i8awjdrqzd0xqfc6q4qvhhs46jl15nx7n2nii7lrwzx502wqj"))))
538fb23e
71 (build-system gnu-build-system)
72 (native-inputs
73 `(("pkg-config" ,pkg-config)))
74 (inputs
75 `(("alsa-lib" ,alsa-lib)
76 ("compositeproto" ,compositeproto)
77 ("curl" ,curl)
2a32ec27 78 ("ghostscript" ,ghostscript)
538fb23e
79 ("giflib" ,giflib)
80 ("gstreamer" ,gstreamer)
81 ("gst-plugins-base" ,gst-plugins-base)
538fb23e
82 ("libexif" ,libexif)
83 ("libjpeg" ,libjpeg)
2a32ec27 84 ("libraw" ,libraw)
538fb23e 85 ("librsvg" ,librsvg)
2a32ec27 86 ("libspectre" ,libspectre)
538fb23e 87 ("libtiff" ,libtiff)
bf307a7a 88 ("libwebp" ,libwebp)
538fb23e 89 ("libx11" ,libx11)
1804d210 90 ("libxau" ,libxau)
538fb23e
91 ("libxcomposite" ,libxcomposite)
92 ("libxcursor" ,libxcursor)
1804d210 93 ("libxdamage" ,libxdamage)
538fb23e
94 ("libxdmcp" ,libxdmcp)
95 ("libxext" ,libxext)
96 ("libxi" ,libxi)
1804d210 97 ("libxfixes" ,libxfixes)
538fb23e
98 ("libxinerama" ,libxinerama)
99 ("libxp" ,libxp)
100 ("libxrandr" ,libxrandr)
1804d210 101 ("libxrender" ,libxrender)
538fb23e
102 ("libxscrnsaver" ,libxscrnsaver)
103 ("libxtst" ,libxtst)
bbfc37e1 104 ("lz4" ,lz4)
2a32ec27
EF
105 ("openjpeg" ,openjpeg-1)
106 ("poppler" ,poppler)
538fb23e
107 ("printproto" ,printproto)
108 ("scrnsaverproto" ,scrnsaverproto)
6ce8fe4c 109 ("wayland-protocols" ,wayland-protocols)
538fb23e
110 ("xextproto" ,xextproto)
111 ("xinput" ,xinput)
112 ("xpr" ,xpr)
113 ("xproto" ,xproto)))
114 (propagated-inputs
115 ;; All these inputs are in package config files in section
8f1f2784 116 ;; Requires.private.
538fb23e 117 `(("bullet" ,bullet) ; ephysics.pc
2a32ec27 118 ("dbus" ,dbus) ; eldbus.pc, elementary.pc, elocation.pc, ethumb_client.pc
538fb23e 119 ("eudev" ,eudev) ; eeze.pc
a0d0ff35
EF
120 ("fontconfig" ,fontconfig) ; evas.pc, evas-cxx.pc
121 ("freetype" ,freetype) ; evas.pc, evas-cxx.pc
122 ("fribidi" ,fribidi) ; evas.pc, evas-cxx.pc
123 ("glib" ,glib) ; ecore.pc, ecore-cxx.pc
84898ca2 124 ("harfbuzz" ,harfbuzz) ; evas.pc, evas-cxx.pc
2a32ec27 125 ("luajit" ,luajit) ; elua.pc, evas.pc, evas-cxx.pc
861fd04b 126 ("libinput" ,libinput-minimal) ; elput.pc
538fb23e
127 ("libpng" ,libpng) ; evas.pc, evas-cxx.pc
128 ("libsndfile" ,libsndfile) ; ecore-audio.pc, ecore-audio-cxx.pc
6ce8fe4c
EF
129 ("libxkbcommon" ,libxkbcommon) ; ecore-wl2.pc, elementary.pc, elput.pc
130 ("mesa" ,mesa) ; ecore-drm2.pc
a0d0ff35 131 ("openssl" ,openssl) ; ecore-con.pc, eet.pc, eet-cxx.pc, emile.pc
538fb23e 132 ("pulseaudio" ,pulseaudio) ; ecore-audio.pc, ecore-audio-cxx.pc
8f1f2784 133 ("util-linux" ,util-linux) ; mount: eeze.pc
6ce8fe4c 134 ("wayland" ,wayland) ; ecore-wl2.pc, elementary.pc
2a32ec27 135 ("zlib" ,zlib))) ; eet.pc, eet-cxx.pc, emile.pc
538fb23e 136 (arguments
bbfc37e1 137 `(#:configure-flags '("--disable-silent-rules"
8f1f2784 138 "--disable-systemd"
84898ca2 139 "--enable-liblz4"
bf307a7a
EF
140 "--enable-xinput22"
141 "--enable-image-loader-webp"
142 "--enable-multisense"
143 "--with-opengl=es"
144 "--enable-egl"
6ce8fe4c
EF
145 "--enable-harfbuzz"
146 ;; for wayland
147 "--enable-wayland"
148 "--enable-elput"
149 "--enable-drm")
8f1f2784
EF
150 #:phases
151 (modify-phases %standard-phases
152 (add-after 'unpack 'set-home-directory
153 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
154 (lambda _ (setenv "HOME" "/tmp") #t)))))
39a01619 155 (home-page "https://www.enlightenment.org/about-efl")
538fb23e
156 (synopsis "Enlightenment Foundation Libraries")
157 (description
158 "Enlightenment Foundation Libraries is a set of libraries developed
159for Enlightenment. Libraries covers data serialization, wide support for
160graphics rendering, UI layout and themes, interaction with OS, access to
161removable devices or support for multimedia.")
f4db4858
EF
162 ;; Different parts are under different licenses.
163 (license (list license:bsd-2 license:lgpl2.1 license:zlib))))
146ee5cd 164
df2b053a
165(define-public terminology
166 (package
167 (name "terminology")
285e18e9 168 (version "1.1.0")
df2b053a
169 (source (origin
170 (method url-fetch)
171 (uri
dab148b6
EF
172 (string-append "https://download.enlightenment.org/rel/apps/"
173 "terminology/terminology-" version ".tar.xz"))
df2b053a 174 (sha256
dab148b6 175 (base32
285e18e9
EF
176 "13rl1k22yf8qrpzdm5nh6ij641fibadr2ww1r7rnz7mbhzj3d4gb"))
177 (modules '((guix build utils)))
178 ;; Remove the bundled fonts.
179 ;; TODO: Remove bundled lz4.
180 (snippet
181 '(begin
182 (delete-file-recursively "data/fonts")
183 (substitute* '("data/Makefile.in" "data/Makefile.am")
184 (("fonts") ""))
185 (substitute* "configure"
186 (("data/fonts/Makefile") "")
187 (("\\\"data/fonts/Makefile") "# \"data/fonts/Makefile"))
188 (substitute* '("data/themes/Makefile.in"
189 "data/themes/Makefile.am"
190 "data/themes/nyanology/Makefile.in"
191 "data/themes/nyanology/Makefile.am")
192 (("-fd \\$\\(top_srcdir\\)/data/fonts") ""))))))
df2b053a 193 (build-system gnu-build-system)
8f1f2784
EF
194 (arguments
195 '(#:phases
196 (modify-phases %standard-phases
197 (add-after 'unpack 'set-home-directory
198 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
199 (lambda _ (setenv "HOME" "/tmp") #t)))))
df2b053a 200 (native-inputs
285e18e9
EF
201 `(("gettext" ,gettext-minimal)
202 ("pkg-config" ,pkg-config)))
df2b053a 203 (inputs
2a32ec27 204 `(("efl" ,efl)))
ef7a6714 205 (home-page "https://www.enlightenment.org/about-terminology")
df2b053a
206 (synopsis "Powerful terminal emulator based on EFL")
207 (description
208 "Terminology is fast and feature rich terminal emulator. It is solely
209based on Enlightenment Foundation Libraries. It supports multiple tabs, UTF-8,
210URL and local path detection, themes, popup based content viewer for non-text
211contents and more.")
212 (license license:bsd-2)))
c58ed773 213
9523f637
DP
214(define-public rage
215 (package
216 (name "rage")
b11cf99f 217 (version "0.2.1")
9523f637
DP
218 (source (origin
219 (method url-fetch)
220 (uri
221 (string-append
222 "https://download.enlightenment.org/rel/apps/rage/rage-"
83e9f472 223 version ".tar.xz"))
9523f637 224 (sha256
83e9f472 225 (base32
b11cf99f 226 "06kbgcnbhl9clhdl7k983m4d0n6ggsl4qvizzi1nrp8c7np87fix"))))
9523f637 227 (build-system gnu-build-system)
8f1f2784
EF
228 (arguments
229 '(#:phases
230 (modify-phases %standard-phases
231 (add-after 'unpack 'set-home-directory
232 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
233 (lambda _ (setenv "HOME" "/tmp") #t)))))
9523f637
DP
234 (native-inputs
235 `(("pkg-config" ,pkg-config)))
236 (inputs
2a32ec27 237 `(("efl" ,efl)))
9523f637
DP
238 (home-page "https://www.enlightenment.org/about-rage")
239 (synopsis "Video and audio player based on EFL")
240 (description
241 "Rage is a video and audio player written with Enlightenment Foundation
242Libraries with some extra bells and whistles.")
243 (license license:bsd-2)))
244
c58ed773
245(define-public enlightenment
246 (package
247 (name "enlightenment")
6909c240 248 (version "0.21.9")
c58ed773
249 (source (origin
250 (method url-fetch)
251 (uri
e693db42
EF
252 (string-append "https://download.enlightenment.org/rel/apps/"
253 name "/" name "-" version ".tar.xz"))
c58ed773 254 (sha256
a124bbd2 255 (base32
6909c240 256 "0w5f3707hyfc20i6xqh4jlr5p2yhy1z794061mjsz2rp4w00qmpb"))))
c58ed773 257 (build-system gnu-build-system)
df372f96 258 (arguments
5c46c858 259 `(#:configure-flags '("--enable-mount-eeze")
260 #:phases
261 (modify-phases %standard-phases
7e60206d
EF
262 (add-before 'configure 'set-system-actions
263 (lambda* (#:key inputs #:allow-other-keys)
264 (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
265 (utils (assoc-ref inputs "util-linux")))
5c46c858 266 ;; We need to patch the path to 'base.lst' to be able
267 ;; to switch the keyboard layout in E.
268 (substitute* "src/modules/xkbswitch/e_mod_parse.c"
269 (("/usr/share/X11/xkb/rules/xorg.lst")
270 (string-append xkeyboard
271 "/share/X11/xkb/rules/base.lst")))
7e60206d
EF
272 (substitute* "configure"
273 (("/bin/mount") (string-append utils "/bin/mount"))
274 (("/bin/umount") (string-append utils "/bin/umount"))
275 (("/usr/bin/eject") (string-append utils "/bin/eject"))
276 ; TODO: Replace suspend and hibernate also.
277 (("/sbin/shutdown -h now") "/run/current-system/profile/sbin/halt")
278 (("/sbin/shutdown -r now") "/run/current-system/profile/sbin/reboot"))
5c46c858 279 #t))))))
c58ed773 280 (native-inputs
b94a6ca0 281 `(("gettext" ,gettext-minimal)
7e60206d
EF
282 ("pkg-config" ,pkg-config)
283 ("util-linux" ,util-linux)))
c58ed773
284 (inputs
285 `(("alsa-lib" ,alsa-lib)
286 ("dbus" ,dbus)
8c3bb471 287 ("efl" ,efl)
c58ed773 288 ("freetype" ,freetype)
c58ed773
289 ("libxcb" ,libxcb)
290 ("libxext" ,libxext)
291 ("linux-pam" ,linux-pam)
5c46c858 292 ("xcb-util-keysyms" ,xcb-util-keysyms)
293 ("xkeyboard-config" ,xkeyboard-config)))
5e569afb 294 (home-page "https://www.enlightenment.org/about-enlightenment")
c58ed773
295 (synopsis "Lightweight desktop environment")
296 (description
297 "Enlightenment is resource friendly desktop environment with integrated
298file manager, wide range of configuration options, plugin system allowing to
299unload unused functionality, with support for touchscreen and suitable for
300embedded systems.")
301 (license license:bsd-2)))
8581f4c1
EF
302
303(define-public python-efl
304 (package
305 (name "python-efl")
3ea2eaa8 306 (version "1.20.0")
8581f4c1
EF
307 (source
308 (origin
309 (method url-fetch)
3ea2eaa8
EF
310 (uri (list
311 (pypi-uri "python-efl" version)
312 (string-append "http://download.enlightenment.org/rel/bindings/"
313 "python/python-efl-" version ".tar.gz")))
8581f4c1
EF
314 (sha256
315 (base32
3ea2eaa8 316 "1680pgpf501nhbc9arm0nfj6rpcw17aryh0pgmmmszxlgpifpdzy"))))
8581f4c1
EF
317 (build-system python-build-system)
318 (arguments
319 '(#:phases
320 (modify-phases %standard-phases
feabb770
EF
321 (replace 'build
322 (lambda _
323 (zero?
324 (system* "env" "ENABLE_CYTHON=1" "python" "setup.py" "build"))))
8581f4c1
EF
325 (add-before 'build 'set-flags
326 (lambda _
327 (setenv "CFLAGS"
328 (string-append "-I" (assoc-ref %build-inputs "python-dbus")
a25b6880
MB
329 "/include/dbus-1.0"))
330 #t))
331 (add-before 'check 'set-environment
332 (lambda _
333 ;; Some tests require write access to HOME.
334 (setenv "HOME" "/tmp")
3ea2eaa8 335 #t)))))
8581f4c1 336 (native-inputs
feabb770
EF
337 `(("pkg-config" ,pkg-config)
338 ("python-cython" ,python-cython)))
8581f4c1
EF
339 (inputs
340 `(("efl" ,efl)
8581f4c1
EF
341 ("python-dbus" ,python-dbus)))
342 (home-page "https://www.enlightenment.org/")
343 (synopsis "Python bindings for EFL")
344 (description
345 "PYTHON-EFL are the python bindings for the whole Enlightenment Foundation
346Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
347 (license license:lgpl3)))
348
349(define-public python2-efl
350 (package-with-python2 python-efl))
0e790a7c
EF
351
352(define-public edi
353 (package
354 (name "edi")
29ddf4b6 355 (version "0.5.1")
0e790a7c
EF
356 (source
357 (origin
358 (method url-fetch)
359 (uri (string-append "https://github.com/ajwillia-ms/edi/releases/"
360 "download/v" version "/edi-" version ".tar.bz2"))
361 (sha256
362 (base32
29ddf4b6 363 "0k0ymi9ilhkypqb9pniv365kh3jgbl2g2k0ylvsmisn2jhbqk49a"))))
0e790a7c 364 (build-system gnu-build-system)
0b6114da
EF
365 (arguments
366 '(#:phases
367 (modify-phases %standard-phases
368 (add-after 'unpack 'set-home-directory
369 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
370 (lambda _ (setenv "HOME" "/tmp") #t)))
371 #:configure-flags '("--with-tests=coverage")))
0e790a7c
EF
372 (native-inputs
373 `(("check" ,check)
374 ("lcov" ,lcov)
375 ("pkg-config" ,pkg-config)))
376 (inputs
377 `(("clang" ,clang)
378 ("efl" ,efl)))
379 (home-page "https://www.enlightenment.org/about-edi")
380 (synopsis "Development environment for Enlightenment")
381 (description "EDI is a development environment designed for and built using
382the EFL. It's aim is to create a new, native development environment for Linux
383that tries to lower the barrier to getting involved in Enlightenment development
384and in creating applications based on the Enlightenment Foundation Library suite.")
385 (license (list license:public-domain ; data/extra/skeleton
386 license:gpl2)))) ; edi
22fda787
EF
387
388(define-public lekha
389 (package
390 (name "lekha")
391 (version "0.2.1")
392 (source (origin
393 (method url-fetch)
394 (uri (pypi-uri "Lekha" version))
395 (sha256
396 (base32
397 "0zr6i74ik58pbzrd7r9l7sawqbdv0r2c1a9927qkqzwga27x8j15"))))
398 (build-system python-build-system)
399 (arguments
400 `(#:tests? #f ; no test target
401 #:python ,python-2
402 #:phases
403 (modify-phases %standard-phases
404 (add-after 'unpack 'fix-data-location
405 (lambda _ (substitute* "setup.py"
406 (("'/usr/")"'"))
407 #t)))))
408 (propagated-inputs
409 `(("python2-efl" ,python2-efl)
410 ("python2-pypdf2" ,python2-pypdf2)
411 ("python2-pyxdg" ,python2-pyxdg)))
412 (synopsis "Simple PDF viewer")
413 (description
414 "Simple PDF viewer based on the Enlightenment Foundation Libraries.")
415 (home-page "https://github.com/kaihu/lekha")
416 (license license:gpl3+)))