gnu: fish: Update to 2.7.1.
[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>
c1463145 5;;; Copyright © 2017 ng0 <ng0@infotropique.org>
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")
33b02e07 62 (version "1.20.6")
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
33b02e07 70 "1h9jkb1pkp2g6ld7ra9mxgblx3x5id4162ja697klx9mfjkpxijn"))))
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
0329f6f7
EF
152 ;; If we don't hardcode the location of libcurl.so then we
153 ;; have to wrap the outputs of efl's dependencies in curl.
154 (add-after 'unpack 'hardcode-libcurl-location
155 (lambda* (#:key inputs #:allow-other-keys)
156 (let* ((curl (assoc-ref inputs "curl"))
157 (lib (string-append curl "/lib/")))
158 (substitute* "src/lib/ecore_con/ecore_con_url_curl.c"
159 (("libcurl.so.?" libcurl) ; libcurl.so.[45]
160 (string-append lib libcurl)))
161 #t)))
8f1f2784
EF
162 (add-after 'unpack 'set-home-directory
163 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
164 (lambda _ (setenv "HOME" "/tmp") #t)))))
39a01619 165 (home-page "https://www.enlightenment.org/about-efl")
538fb23e
166 (synopsis "Enlightenment Foundation Libraries")
167 (description
168 "Enlightenment Foundation Libraries is a set of libraries developed
169for Enlightenment. Libraries covers data serialization, wide support for
170graphics rendering, UI layout and themes, interaction with OS, access to
171removable devices or support for multimedia.")
f4db4858
EF
172 ;; Different parts are under different licenses.
173 (license (list license:bsd-2 license:lgpl2.1 license:zlib))))
146ee5cd 174
df2b053a
175(define-public terminology
176 (package
177 (name "terminology")
18e565bf 178 (version "1.1.1")
df2b053a
179 (source (origin
180 (method url-fetch)
181 (uri
dab148b6
EF
182 (string-append "https://download.enlightenment.org/rel/apps/"
183 "terminology/terminology-" version ".tar.xz"))
df2b053a 184 (sha256
dab148b6 185 (base32
18e565bf 186 "05ncxvzb9rzkyjvd95hzn8lswqdwr8cix6rd54nqn9559jibh4ns"))
285e18e9
EF
187 (modules '((guix build utils)))
188 ;; Remove the bundled fonts.
189 ;; TODO: Remove bundled lz4.
190 (snippet
191 '(begin
192 (delete-file-recursively "data/fonts")
193 (substitute* '("data/Makefile.in" "data/Makefile.am")
194 (("fonts") ""))
195 (substitute* "configure"
196 (("data/fonts/Makefile") "")
197 (("\\\"data/fonts/Makefile") "# \"data/fonts/Makefile"))
198 (substitute* '("data/themes/Makefile.in"
199 "data/themes/Makefile.am"
200 "data/themes/nyanology/Makefile.in"
201 "data/themes/nyanology/Makefile.am")
202 (("-fd \\$\\(top_srcdir\\)/data/fonts") ""))))))
df2b053a 203 (build-system gnu-build-system)
8f1f2784
EF
204 (arguments
205 '(#:phases
206 (modify-phases %standard-phases
207 (add-after 'unpack 'set-home-directory
208 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
209 (lambda _ (setenv "HOME" "/tmp") #t)))))
df2b053a 210 (native-inputs
285e18e9
EF
211 `(("gettext" ,gettext-minimal)
212 ("pkg-config" ,pkg-config)))
df2b053a 213 (inputs
2a32ec27 214 `(("efl" ,efl)))
ef7a6714 215 (home-page "https://www.enlightenment.org/about-terminology")
df2b053a
216 (synopsis "Powerful terminal emulator based on EFL")
217 (description
218 "Terminology is fast and feature rich terminal emulator. It is solely
219based on Enlightenment Foundation Libraries. It supports multiple tabs, UTF-8,
220URL and local path detection, themes, popup based content viewer for non-text
221contents and more.")
222 (license license:bsd-2)))
c58ed773 223
9523f637
DP
224(define-public rage
225 (package
226 (name "rage")
b11cf99f 227 (version "0.2.1")
9523f637
DP
228 (source (origin
229 (method url-fetch)
230 (uri
231 (string-append
232 "https://download.enlightenment.org/rel/apps/rage/rage-"
83e9f472 233 version ".tar.xz"))
9523f637 234 (sha256
83e9f472 235 (base32
b11cf99f 236 "06kbgcnbhl9clhdl7k983m4d0n6ggsl4qvizzi1nrp8c7np87fix"))))
9523f637 237 (build-system gnu-build-system)
8f1f2784
EF
238 (arguments
239 '(#:phases
240 (modify-phases %standard-phases
241 (add-after 'unpack 'set-home-directory
242 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
243 (lambda _ (setenv "HOME" "/tmp") #t)))))
9523f637
DP
244 (native-inputs
245 `(("pkg-config" ,pkg-config)))
246 (inputs
2a32ec27 247 `(("efl" ,efl)))
9523f637
DP
248 (home-page "https://www.enlightenment.org/about-rage")
249 (synopsis "Video and audio player based on EFL")
250 (description
251 "Rage is a video and audio player written with Enlightenment Foundation
252Libraries with some extra bells and whistles.")
253 (license license:bsd-2)))
254
c58ed773
255(define-public enlightenment
256 (package
257 (name "enlightenment")
7989ba2a 258 (version "0.22.1")
c58ed773
259 (source (origin
260 (method url-fetch)
261 (uri
e693db42
EF
262 (string-append "https://download.enlightenment.org/rel/apps/"
263 name "/" name "-" version ".tar.xz"))
c58ed773 264 (sha256
a124bbd2 265 (base32
7989ba2a 266 "1q57fz57d0b26z06m1wiq7c1sniwh885b0vs02mk4jgwva46nyr0"))))
c58ed773 267 (build-system gnu-build-system)
df372f96 268 (arguments
5c46c858 269 `(#:configure-flags '("--enable-mount-eeze")
270 #:phases
271 (modify-phases %standard-phases
7e60206d
EF
272 (add-before 'configure 'set-system-actions
273 (lambda* (#:key inputs #:allow-other-keys)
274 (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
275 (utils (assoc-ref inputs "util-linux")))
5c46c858 276 ;; We need to patch the path to 'base.lst' to be able
277 ;; to switch the keyboard layout in E.
278 (substitute* "src/modules/xkbswitch/e_mod_parse.c"
279 (("/usr/share/X11/xkb/rules/xorg.lst")
280 (string-append xkeyboard
281 "/share/X11/xkb/rules/base.lst")))
7e60206d
EF
282 (substitute* "configure"
283 (("/bin/mount") (string-append utils "/bin/mount"))
284 (("/bin/umount") (string-append utils "/bin/umount"))
285 (("/usr/bin/eject") (string-append utils "/bin/eject"))
286 ; TODO: Replace suspend and hibernate also.
287 (("/sbin/shutdown -h now") "/run/current-system/profile/sbin/halt")
288 (("/sbin/shutdown -r now") "/run/current-system/profile/sbin/reboot"))
5c46c858 289 #t))))))
c58ed773 290 (native-inputs
b94a6ca0 291 `(("gettext" ,gettext-minimal)
7e60206d
EF
292 ("pkg-config" ,pkg-config)
293 ("util-linux" ,util-linux)))
c58ed773
294 (inputs
295 `(("alsa-lib" ,alsa-lib)
296 ("dbus" ,dbus)
8c3bb471 297 ("efl" ,efl)
c58ed773 298 ("freetype" ,freetype)
c58ed773
299 ("libxcb" ,libxcb)
300 ("libxext" ,libxext)
301 ("linux-pam" ,linux-pam)
5c46c858 302 ("xcb-util-keysyms" ,xcb-util-keysyms)
303 ("xkeyboard-config" ,xkeyboard-config)))
5e569afb 304 (home-page "https://www.enlightenment.org/about-enlightenment")
c58ed773
305 (synopsis "Lightweight desktop environment")
306 (description
307 "Enlightenment is resource friendly desktop environment with integrated
308file manager, wide range of configuration options, plugin system allowing to
309unload unused functionality, with support for touchscreen and suitable for
310embedded systems.")
311 (license license:bsd-2)))
8581f4c1
EF
312
313(define-public python-efl
314 (package
315 (name "python-efl")
3ea2eaa8 316 (version "1.20.0")
8581f4c1
EF
317 (source
318 (origin
319 (method url-fetch)
3ea2eaa8
EF
320 (uri (list
321 (pypi-uri "python-efl" version)
322 (string-append "http://download.enlightenment.org/rel/bindings/"
323 "python/python-efl-" version ".tar.gz")))
8581f4c1
EF
324 (sha256
325 (base32
3ea2eaa8 326 "1680pgpf501nhbc9arm0nfj6rpcw17aryh0pgmmmszxlgpifpdzy"))))
8581f4c1
EF
327 (build-system python-build-system)
328 (arguments
329 '(#:phases
330 (modify-phases %standard-phases
feabb770
EF
331 (replace 'build
332 (lambda _
333 (zero?
334 (system* "env" "ENABLE_CYTHON=1" "python" "setup.py" "build"))))
8581f4c1
EF
335 (add-before 'build 'set-flags
336 (lambda _
337 (setenv "CFLAGS"
338 (string-append "-I" (assoc-ref %build-inputs "python-dbus")
a25b6880
MB
339 "/include/dbus-1.0"))
340 #t))
341 (add-before 'check 'set-environment
342 (lambda _
343 ;; Some tests require write access to HOME.
344 (setenv "HOME" "/tmp")
3ea2eaa8 345 #t)))))
8581f4c1 346 (native-inputs
feabb770
EF
347 `(("pkg-config" ,pkg-config)
348 ("python-cython" ,python-cython)))
8581f4c1
EF
349 (inputs
350 `(("efl" ,efl)
8581f4c1
EF
351 ("python-dbus" ,python-dbus)))
352 (home-page "https://www.enlightenment.org/")
353 (synopsis "Python bindings for EFL")
354 (description
355 "PYTHON-EFL are the python bindings for the whole Enlightenment Foundation
356Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
357 (license license:lgpl3)))
358
359(define-public python2-efl
360 (package-with-python2 python-efl))
0e790a7c
EF
361
362(define-public edi
363 (package
364 (name "edi")
29ddf4b6 365 (version "0.5.1")
0e790a7c
EF
366 (source
367 (origin
368 (method url-fetch)
369 (uri (string-append "https://github.com/ajwillia-ms/edi/releases/"
370 "download/v" version "/edi-" version ".tar.bz2"))
371 (sha256
372 (base32
29ddf4b6 373 "0k0ymi9ilhkypqb9pniv365kh3jgbl2g2k0ylvsmisn2jhbqk49a"))))
0e790a7c 374 (build-system gnu-build-system)
0b6114da
EF
375 (arguments
376 '(#:phases
377 (modify-phases %standard-phases
378 (add-after 'unpack 'set-home-directory
379 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
380 (lambda _ (setenv "HOME" "/tmp") #t)))
381 #:configure-flags '("--with-tests=coverage")))
0e790a7c
EF
382 (native-inputs
383 `(("check" ,check)
384 ("lcov" ,lcov)
385 ("pkg-config" ,pkg-config)))
386 (inputs
387 `(("clang" ,clang)
388 ("efl" ,efl)))
389 (home-page "https://www.enlightenment.org/about-edi")
390 (synopsis "Development environment for Enlightenment")
391 (description "EDI is a development environment designed for and built using
392the EFL. It's aim is to create a new, native development environment for Linux
393that tries to lower the barrier to getting involved in Enlightenment development
394and in creating applications based on the Enlightenment Foundation Library suite.")
395 (license (list license:public-domain ; data/extra/skeleton
396 license:gpl2)))) ; edi
22fda787
EF
397
398(define-public lekha
399 (package
400 (name "lekha")
401 (version "0.2.1")
402 (source (origin
403 (method url-fetch)
404 (uri (pypi-uri "Lekha" version))
405 (sha256
406 (base32
407 "0zr6i74ik58pbzrd7r9l7sawqbdv0r2c1a9927qkqzwga27x8j15"))))
408 (build-system python-build-system)
409 (arguments
410 `(#:tests? #f ; no test target
411 #:python ,python-2
412 #:phases
413 (modify-phases %standard-phases
414 (add-after 'unpack 'fix-data-location
415 (lambda _ (substitute* "setup.py"
416 (("'/usr/")"'"))
417 #t)))))
418 (propagated-inputs
419 `(("python2-efl" ,python2-efl)
420 ("python2-pypdf2" ,python2-pypdf2)
421 ("python2-pyxdg" ,python2-pyxdg)))
422 (synopsis "Simple PDF viewer")
423 (description
424 "Simple PDF viewer based on the Enlightenment Foundation Libraries.")
425 (home-page "https://github.com/kaihu/lekha")
426 (license license:gpl3+)))