gnu: retroarch: Use shared zlib.
[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>
40a7997e 4;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
4a78fd46 5;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
0f751458 6;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
538fb23e
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
ea28d935 23(define-module (gnu packages enlightenment)
538fb23e
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix packages)
26 #:use-module (guix download)
27 #:use-module (guix build-system gnu)
e2f37d6a 28 #:use-module (guix build-system meson)
8581f4c1 29 #:use-module (guix build-system python)
538fb23e
30 #:use-module (gnu packages)
31 #:use-module (gnu packages bash)
0e790a7c
EF
32 #:use-module (gnu packages check)
33 #:use-module (gnu packages code)
538fb23e
34 #:use-module (gnu packages compression)
35 #:use-module (gnu packages curl)
36 #:use-module (gnu packages fontutils)
22fda787 37 #:use-module (gnu packages freedesktop)
538fb23e
38 #:use-module (gnu packages fribidi)
39 #:use-module (gnu packages game-development)
c58ed773 40 #:use-module (gnu packages gettext)
87a37fdf 41 #:use-module (gnu packages ghostscript)
538fb23e
42 #:use-module (gnu packages gl)
43 #:use-module (gnu packages glib)
44 #:use-module (gnu packages gnome)
27ce97c6 45 #:use-module (gnu packages gstreamer)
ea28d935 46 #:use-module (gnu packages gtk)
538fb23e
47 #:use-module (gnu packages image)
48 #:use-module (gnu packages linux)
0e790a7c 49 #:use-module (gnu packages llvm)
538fb23e 50 #:use-module (gnu packages lua)
87a37fdf 51 #:use-module (gnu packages pdf)
5e94ce97 52 #:use-module (gnu packages perl)
538fb23e
53 #:use-module (gnu packages photo)
54 #:use-module (gnu packages pkg-config)
8581f4c1
EF
55 #:use-module (gnu packages pulseaudio)
56 #:use-module (gnu packages python)
cc2b77df 57 #:use-module (gnu packages tls)
cfa04683 58 #:use-module (gnu packages video)
6ce8fe4c 59 #:use-module (gnu packages xdisorg)
538fb23e
60 #:use-module (gnu packages xorg))
61
62(define-public efl
63 (package
64 (name "efl")
290bef39 65 (version "1.21.0")
538fb23e
66 (source (origin
67 (method url-fetch)
68 (uri (string-append
e4fef9df 69 "https://download.enlightenment.org/rel/libs/efl/efl-"
7e22d6fe 70 version ".tar.xz"))
538fb23e 71 (sha256
f4db4858 72 (base32
290bef39 73 "0jxfrcz2aq1synxzd6sh9nhxz7fg9qgz0idr8zj6gaiplmwbwrby"))))
360ea2bb
EF
74 (outputs '("out" ; 49 MB
75 "include")) ; 17 MB
538fb23e
76 (build-system gnu-build-system)
77 (native-inputs
78 `(("pkg-config" ,pkg-config)))
79 (inputs
80 `(("alsa-lib" ,alsa-lib)
538fb23e 81 ("curl" ,curl)
2a32ec27 82 ("ghostscript" ,ghostscript)
538fb23e
83 ("giflib" ,giflib)
84 ("gstreamer" ,gstreamer)
85 ("gst-plugins-base" ,gst-plugins-base)
538fb23e
86 ("libexif" ,libexif)
87 ("libjpeg" ,libjpeg)
2a32ec27 88 ("libraw" ,libraw)
538fb23e 89 ("librsvg" ,librsvg)
2a32ec27 90 ("libspectre" ,libspectre)
538fb23e 91 ("libtiff" ,libtiff)
bf307a7a 92 ("libwebp" ,libwebp)
538fb23e 93 ("libx11" ,libx11)
1804d210 94 ("libxau" ,libxau)
538fb23e
95 ("libxcomposite" ,libxcomposite)
96 ("libxcursor" ,libxcursor)
1804d210 97 ("libxdamage" ,libxdamage)
538fb23e
98 ("libxdmcp" ,libxdmcp)
99 ("libxext" ,libxext)
100 ("libxi" ,libxi)
1804d210 101 ("libxfixes" ,libxfixes)
538fb23e
102 ("libxinerama" ,libxinerama)
103 ("libxp" ,libxp)
104 ("libxrandr" ,libxrandr)
1804d210 105 ("libxrender" ,libxrender)
538fb23e
106 ("libxscrnsaver" ,libxscrnsaver)
107 ("libxtst" ,libxtst)
bbfc37e1 108 ("lz4" ,lz4)
2a32ec27
EF
109 ("openjpeg" ,openjpeg-1)
110 ("poppler" ,poppler)
538fb23e 111 ("printproto" ,printproto)
6ce8fe4c 112 ("wayland-protocols" ,wayland-protocols)
538fb23e
113 ("xinput" ,xinput)
114 ("xpr" ,xpr)
6a6db57f 115 ("xorgproto" ,xorgproto)))
538fb23e
116 (propagated-inputs
117 ;; All these inputs are in package config files in section
8f1f2784 118 ;; Requires.private.
538fb23e 119 `(("bullet" ,bullet) ; ephysics.pc
2a32ec27 120 ("dbus" ,dbus) ; eldbus.pc, elementary.pc, elocation.pc, ethumb_client.pc
538fb23e 121 ("eudev" ,eudev) ; eeze.pc
a0d0ff35
EF
122 ("fontconfig" ,fontconfig) ; evas.pc, evas-cxx.pc
123 ("freetype" ,freetype) ; evas.pc, evas-cxx.pc
124 ("fribidi" ,fribidi) ; evas.pc, evas-cxx.pc
125 ("glib" ,glib) ; ecore.pc, ecore-cxx.pc
84898ca2 126 ("harfbuzz" ,harfbuzz) ; evas.pc, evas-cxx.pc
2a32ec27 127 ("luajit" ,luajit) ; elua.pc, evas.pc, evas-cxx.pc
861fd04b 128 ("libinput" ,libinput-minimal) ; elput.pc
538fb23e
129 ("libpng" ,libpng) ; evas.pc, evas-cxx.pc
130 ("libsndfile" ,libsndfile) ; ecore-audio.pc, ecore-audio-cxx.pc
6ce8fe4c
EF
131 ("libxkbcommon" ,libxkbcommon) ; ecore-wl2.pc, elementary.pc, elput.pc
132 ("mesa" ,mesa) ; ecore-drm2.pc
a0d0ff35 133 ("openssl" ,openssl) ; ecore-con.pc, eet.pc, eet-cxx.pc, emile.pc
538fb23e 134 ("pulseaudio" ,pulseaudio) ; ecore-audio.pc, ecore-audio-cxx.pc
8f1f2784 135 ("util-linux" ,util-linux) ; mount: eeze.pc
6ce8fe4c 136 ("wayland" ,wayland) ; ecore-wl2.pc, elementary.pc
2a32ec27 137 ("zlib" ,zlib))) ; eet.pc, eet-cxx.pc, emile.pc
538fb23e 138 (arguments
bbfc37e1 139 `(#:configure-flags '("--disable-silent-rules"
8f1f2784 140 "--disable-systemd"
84898ca2 141 "--enable-liblz4"
bf307a7a
EF
142 "--enable-xinput22"
143 "--enable-image-loader-webp"
144 "--enable-multisense"
145 "--with-opengl=es"
146 "--enable-egl"
6ce8fe4c
EF
147 "--enable-harfbuzz"
148 ;; for wayland
149 "--enable-wayland"
150 "--enable-elput"
151 "--enable-drm")
8f1f2784
EF
152 #:phases
153 (modify-phases %standard-phases
0329f6f7
EF
154 ;; If we don't hardcode the location of libcurl.so then we
155 ;; have to wrap the outputs of efl's dependencies in curl.
156 (add-after 'unpack 'hardcode-libcurl-location
157 (lambda* (#:key inputs #:allow-other-keys)
158 (let* ((curl (assoc-ref inputs "curl"))
159 (lib (string-append curl "/lib/")))
160 (substitute* "src/lib/ecore_con/ecore_con_url_curl.c"
161 (("libcurl.so.?" libcurl) ; libcurl.so.[45]
162 (string-append lib libcurl)))
163 #t)))
8f1f2784
EF
164 (add-after 'unpack 'set-home-directory
165 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
166 (lambda _ (setenv "HOME" "/tmp") #t)))))
39a01619 167 (home-page "https://www.enlightenment.org/about-efl")
538fb23e
168 (synopsis "Enlightenment Foundation Libraries")
169 (description
170 "Enlightenment Foundation Libraries is a set of libraries developed
171for Enlightenment. Libraries covers data serialization, wide support for
172graphics rendering, UI layout and themes, interaction with OS, access to
173removable devices or support for multimedia.")
f4db4858
EF
174 ;; Different parts are under different licenses.
175 (license (list license:bsd-2 license:lgpl2.1 license:zlib))))
146ee5cd 176
df2b053a
177(define-public terminology
178 (package
179 (name "terminology")
8fc55f36 180 (version "1.2.1")
df2b053a
181 (source (origin
182 (method url-fetch)
183 (uri
dab148b6
EF
184 (string-append "https://download.enlightenment.org/rel/apps/"
185 "terminology/terminology-" version ".tar.xz"))
df2b053a 186 (sha256
dab148b6 187 (base32
8fc55f36 188 "1ii8332bl88l8md3gvz5dhi9bjpm6shyf14ck9kfyy7d56hp71mc"))
285e18e9
EF
189 (modules '((guix build utils)))
190 ;; Remove the bundled fonts.
191 ;; TODO: Remove bundled lz4.
192 (snippet
193 '(begin
194 (delete-file-recursively "data/fonts")
5e94ce97
EF
195 (substitute* "data/meson.build"
196 (("subdir\\('fonts'\\)") ""))
6cbee49d 197 #t))))
5e94ce97 198 (build-system meson-build-system)
8f1f2784
EF
199 (arguments
200 '(#:phases
201 (modify-phases %standard-phases
202 (add-after 'unpack 'set-home-directory
203 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
204 (lambda _ (setenv "HOME" "/tmp") #t)))))
df2b053a 205 (native-inputs
285e18e9 206 `(("gettext" ,gettext-minimal)
5e94ce97 207 ("perl" ,perl)
285e18e9 208 ("pkg-config" ,pkg-config)))
df2b053a 209 (inputs
2a32ec27 210 `(("efl" ,efl)))
ef7a6714 211 (home-page "https://www.enlightenment.org/about-terminology")
df2b053a
212 (synopsis "Powerful terminal emulator based on EFL")
213 (description
214 "Terminology is fast and feature rich terminal emulator. It is solely
215based on Enlightenment Foundation Libraries. It supports multiple tabs, UTF-8,
216URL and local path detection, themes, popup based content viewer for non-text
217contents and more.")
218 (license license:bsd-2)))
c58ed773 219
9523f637
DP
220(define-public rage
221 (package
222 (name "rage")
e2f37d6a 223 (version "0.3.0")
9523f637
DP
224 (source (origin
225 (method url-fetch)
226 (uri
227 (string-append
228 "https://download.enlightenment.org/rel/apps/rage/rage-"
83e9f472 229 version ".tar.xz"))
9523f637 230 (sha256
83e9f472 231 (base32
e2f37d6a
EF
232 "0gfzdd4jg78bkmj61yg49w7bzspl5m1nh6agqgs8k7qrq9q26xqy"))))
233 (build-system meson-build-system)
8f1f2784
EF
234 (arguments
235 '(#:phases
236 (modify-phases %standard-phases
237 (add-after 'unpack 'set-home-directory
238 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
239 (lambda _ (setenv "HOME" "/tmp") #t)))))
9523f637
DP
240 (native-inputs
241 `(("pkg-config" ,pkg-config)))
242 (inputs
2a32ec27 243 `(("efl" ,efl)))
9523f637
DP
244 (home-page "https://www.enlightenment.org/about-rage")
245 (synopsis "Video and audio player based on EFL")
246 (description
247 "Rage is a video and audio player written with Enlightenment Foundation
248Libraries with some extra bells and whistles.")
249 (license license:bsd-2)))
250
c58ed773
251(define-public enlightenment
252 (package
253 (name "enlightenment")
dcf3ab6a 254 (version "0.22.3")
c58ed773
255 (source (origin
256 (method url-fetch)
257 (uri
e693db42
EF
258 (string-append "https://download.enlightenment.org/rel/apps/"
259 name "/" name "-" version ".tar.xz"))
c58ed773 260 (sha256
a124bbd2 261 (base32
122f91bd
EF
262 "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad"))
263 (patches (search-patches "enlightenment-fix-setuid-path.patch"))))
c58ed773 264 (build-system gnu-build-system)
df372f96 265 (arguments
0b759222 266 `(#:phases
5c46c858 267 (modify-phases %standard-phases
7e60206d
EF
268 (add-before 'configure 'set-system-actions
269 (lambda* (#:key inputs #:allow-other-keys)
270 (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
271 (utils (assoc-ref inputs "util-linux")))
5c46c858 272 ;; We need to patch the path to 'base.lst' to be able
273 ;; to switch the keyboard layout in E.
274 (substitute* "src/modules/xkbswitch/e_mod_parse.c"
275 (("/usr/share/X11/xkb/rules/xorg.lst")
276 (string-append xkeyboard
277 "/share/X11/xkb/rules/base.lst")))
6e339db0
EF
278 (substitute* "src/modules/everything/evry_plug_apps.c"
279 (("/usr/bin/") ""))
7e60206d
EF
280 (substitute* "configure"
281 (("/bin/mount") (string-append utils "/bin/mount"))
282 (("/bin/umount") (string-append utils "/bin/umount"))
283 (("/usr/bin/eject") (string-append utils "/bin/eject"))
440b1629
EF
284 (("/etc/acpi/sleep.sh force") "/run/current-system/profile/bin/loginctl suspend")
285 (("/etc/acpi/hibernate.sh force") "/run/current-system/profile/bin/loginctl hibernate")
286 (("/sbin/shutdown -h now") "/run/current-system/profile/bin/loginctl poweroff now")
287 (("/sbin/shutdown -r now") "/run/current-system/profile/bin/loginctl reboot now"))
5c46c858 288 #t))))))
c58ed773 289 (native-inputs
b94a6ca0 290 `(("gettext" ,gettext-minimal)
7e60206d
EF
291 ("pkg-config" ,pkg-config)
292 ("util-linux" ,util-linux)))
c58ed773
293 (inputs
294 `(("alsa-lib" ,alsa-lib)
295 ("dbus" ,dbus)
8c3bb471 296 ("efl" ,efl)
c58ed773 297 ("freetype" ,freetype)
c58ed773
298 ("libxcb" ,libxcb)
299 ("libxext" ,libxext)
300 ("linux-pam" ,linux-pam)
5c46c858 301 ("xcb-util-keysyms" ,xcb-util-keysyms)
302 ("xkeyboard-config" ,xkeyboard-config)))
5e569afb 303 (home-page "https://www.enlightenment.org/about-enlightenment")
c58ed773
304 (synopsis "Lightweight desktop environment")
305 (description
306 "Enlightenment is resource friendly desktop environment with integrated
307file manager, wide range of configuration options, plugin system allowing to
308unload unused functionality, with support for touchscreen and suitable for
309embedded systems.")
310 (license license:bsd-2)))
8581f4c1
EF
311
312(define-public python-efl
313 (package
314 (name "python-efl")
0cc64476 315 (version "1.21.0")
8581f4c1
EF
316 (source
317 (origin
318 (method url-fetch)
0cc64476
EF
319 (uri (string-append "http://download.enlightenment.org/rel/bindings/"
320 "python/python-efl-" version ".tar.xz"))
8581f4c1
EF
321 (sha256
322 (base32
0cc64476 323 "08x2cv8hnf004c3711250wrax21ffj5y8951pvk77h98als4pq47"))))
8581f4c1
EF
324 (build-system python-build-system)
325 (arguments
326 '(#:phases
327 (modify-phases %standard-phases
0cc64476
EF
328 (replace 'build
329 (lambda _
330 (setenv "ENABLE_CYTHON" "1")
331 (invoke "python" "setup.py" "build")))
8581f4c1 332 (add-before 'build 'set-flags
0cc64476
EF
333 (lambda _
334 (setenv "CFLAGS"
335 (string-append "-I" (assoc-ref %build-inputs "python-dbus")
336 "/include/dbus-1.0"))
337 #t))
a25b6880
MB
338 (add-before 'check 'set-environment
339 (lambda _
340 ;; Some tests require write access to HOME.
341 (setenv "HOME" "/tmp")
0cc64476
EF
342 ;; These tests try to connect to the internet.
343 (delete-file "tests/ecore/test_09_file_download.py")
344 (delete-file "tests/ecore/test_11_con.py")
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")
f1431d23 365 (version "0.6.0")
0e790a7c
EF
366 (source
367 (origin
368 (method url-fetch)
f1431d23
EF
369 (uri (string-append "https://download.enlightenment.org/rel/apps/edi/"
370 name "-" version ".tar.xz"))
0e790a7c
EF
371 (sha256
372 (base32
f1431d23 373 "0iqkah327ms5m7k054hcik2l9v68i4mg9yy52brprfqpd5jk7pw8"))))
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)))
f1431d23 381 #:tests? #f)) ; tests require running dbus service
0e790a7c 382 (native-inputs
f1431d23 383 `(("pkg-config" ,pkg-config)))
0e790a7c
EF
384 (inputs
385 `(("clang" ,clang)
386 ("efl" ,efl)))
387 (home-page "https://www.enlightenment.org/about-edi")
388 (synopsis "Development environment for Enlightenment")
389 (description "EDI is a development environment designed for and built using
390the EFL. It's aim is to create a new, native development environment for Linux
391that tries to lower the barrier to getting involved in Enlightenment development
392and in creating applications based on the Enlightenment Foundation Library suite.")
393 (license (list license:public-domain ; data/extra/skeleton
394 license:gpl2)))) ; edi
22fda787
EF
395
396(define-public lekha
397 (package
398 (name "lekha")
399 (version "0.2.1")
400 (source (origin
401 (method url-fetch)
402 (uri (pypi-uri "Lekha" version))
403 (sha256
404 (base32
405 "0zr6i74ik58pbzrd7r9l7sawqbdv0r2c1a9927qkqzwga27x8j15"))))
406 (build-system python-build-system)
407 (arguments
408 `(#:tests? #f ; no test target
409 #:python ,python-2
410 #:phases
411 (modify-phases %standard-phases
412 (add-after 'unpack 'fix-data-location
413 (lambda _ (substitute* "setup.py"
414 (("'/usr/")"'"))
415 #t)))))
416 (propagated-inputs
417 `(("python2-efl" ,python2-efl)
418 ("python2-pypdf2" ,python2-pypdf2)
419 ("python2-pyxdg" ,python2-pyxdg)))
420 (synopsis "Simple PDF viewer")
421 (description
422 "Simple PDF viewer based on the Enlightenment Foundation Libraries.")
423 (home-page "https://github.com/kaihu/lekha")
424 (license license:gpl3+)))
967de7c5
EF
425
426(define-public ephoto
427 (package
428 (name "ephoto")
429 (version "1.5")
430 (source
431 (origin
432 (method url-fetch)
433 (uri (list (string-append "http://www.smhouston.us/stuff/ephoto-"
434 version ".tar.xz")
435 (string-append "https://download.enlightenment.org/rel/"
436 "apps/ephoto/ephoto-" version ".tar.xz")))
437 (sha256
438 (base32
439 "04kli43sfsy6s660g13pjc0kjmgdcmq8m4qh02vvpcwv60mf9mgz"))))
440 (build-system gnu-build-system)
441 (arguments
442 '(#:phases
443 (modify-phases %standard-phases
444 (add-after 'unpack 'set-home-directory
445 ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
446 (lambda _ (setenv "HOME" "/tmp") #t)))))
447 (native-inputs
448 `(("check" ,check)
449 ("pkg-config" ,pkg-config)))
450 (inputs
451 `(("efl" ,efl)))
452 (home-page "http://smhouston.us/ephoto/")
453 (synopsis "EFL image viewer/editor/manipulator/slideshow creator")
454 (description "Ephoto is an image viewer and editor written using the
455@dfn{Enlightenment Foundation Libraries} (EFL). It focuses on simplicity and ease
456of use, while taking advantage of the speed and small footprint the EFL provide.
457
458Ephoto’s features include:
459@enumerate
460@item Browsing the filesystem and displaying images in an easy to use grid view.
461@item Browsing images in a single image view format.
462@item Viewing images in a slideshow.
463@item Editing your image with features such as cropping, auto enhance,
464blurring, sharpening, brightness/contrast/gamma adjustments, hue/saturation/value
465adjustments, and color level adjustment.
466@item Applying artistic filters to your image such as black and white and old photo.
467@item Drag And Drop along with file operations to easy maintain your photo directories.
468@end enumerate\n")
469 (license (list
470 license:bsd-2 ; Ephoto's thumbnailing code
471 license:bsd-3))))