gnu: ghc-tls: Move to (gnu packages tls).
[jackhill/guix/guix.git] / gnu / packages / enlightenment.scm
index 8a3d88e..b4ff4c3 100644 (file)
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
 ;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
 ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages python)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg))
 
 (define-public efl
   (package
     (name "efl")
-    (version "1.18.5")
+    (version "1.20.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -65,7 +67,7 @@
                     version ".tar.xz"))
               (sha256
                (base32
-                "0wxz00cijynamm0sx4ss4hp89zyz5y6zliv5zd905jn4nak2mw2n"))))
+                "07624c71l9d1jx1zvdhwkr1bgb1n7i0i5hyg6579zdwl3jw6jpns"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
        ("libtiff" ,libtiff)
        ("libwebp" ,libwebp)
        ("libx11" ,libx11)
+       ("libxau" ,libxau)
        ("libxcomposite" ,libxcomposite)
        ("libxcursor" ,libxcursor)
+       ("libxdamage" ,libxdamage)
        ("libxdmcp" ,libxdmcp)
        ("libxext" ,libxext)
        ("libxi" ,libxi)
-       ("libxkbfile" ,libxkbfile)
+       ("libxfixes" ,libxfixes)
        ("libxinerama" ,libxinerama)
        ("libxp" ,libxp)
        ("libxrandr" ,libxrandr)
+       ("libxrender" ,libxrender)
        ("libxscrnsaver" ,libxscrnsaver)
        ("libxtst" ,libxtst)
        ("lz4" ,lz4)
-       ("mesa" ,mesa)
        ("openjpeg" ,openjpeg-1)
        ("poppler" ,poppler)
        ("printproto" ,printproto)
        ("scrnsaverproto" ,scrnsaverproto)
+       ("wayland-protocols" ,wayland-protocols)
        ("xextproto" ,xextproto)
        ("xinput" ,xinput)
        ("xpr" ,xpr)
        ("xproto" ,xproto)))
     (propagated-inputs
      ;; All these inputs are in package config files in section
-     ;; Require.private.
+     ;; Requires.private.
      `(("bullet" ,bullet) ; ephysics.pc
        ("dbus" ,dbus) ; eldbus.pc, elementary.pc, elocation.pc, ethumb_client.pc
        ("eudev" ,eudev) ; eeze.pc
        ("glib" ,glib) ; ecore.pc, ecore-cxx.pc
        ("harfbuzz" ,harfbuzz) ; evas.pc, evas-cxx.pc
        ("luajit" ,luajit) ; elua.pc, evas.pc, evas-cxx.pc
+       ("libinput" ,libinput-minimal) ; elput.pc
        ("libpng" ,libpng) ; evas.pc, evas-cxx.pc
        ("libsndfile" ,libsndfile) ; ecore-audio.pc, ecore-audio-cxx.pc
+       ("libxkbcommon" ,libxkbcommon) ; ecore-wl2.pc, elementary.pc, elput.pc
+       ("mesa" ,mesa) ; ecore-drm2.pc
        ("openssl" ,openssl) ; ecore-con.pc, eet.pc, eet-cxx.pc, emile.pc
        ("pulseaudio" ,pulseaudio) ; ecore-audio.pc, ecore-audio-cxx.pc
-       ("util-linux" ,util-linux) ; eeze.pc
+       ("util-linux" ,util-linux) ; mount: eeze.pc
+       ("wayland" ,wayland) ; ecore-wl2.pc, elementary.pc
        ("zlib" ,zlib))) ; eet.pc, eet-cxx.pc, emile.pc
     (arguments
      `(#:configure-flags '("--disable-silent-rules"
+                           "--disable-systemd"
                            "--enable-liblz4"
                            "--enable-xinput22"
                            "--enable-image-loader-webp"
                            "--enable-multisense"
                            "--with-opengl=es"
                            "--enable-egl"
-                           "--enable-harfbuzz")))
+                           "--enable-harfbuzz"
+                           ;; for wayland
+                           "--enable-wayland"
+                           "--enable-elput"
+                           "--enable-drm")
+       #:phases
+       (modify-phases %standard-phases
+         ;; If we don't hardcode the location of libcurl.so then we
+         ;; have to wrap the outputs of efl's dependencies in curl.
+         (add-after 'unpack 'hardcode-libcurl-location
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((curl (assoc-ref inputs "curl"))
+                    (lib  (string-append curl "/lib/")))
+               (substitute* "src/lib/ecore_con/ecore_con_url_curl.c"
+                 (("libcurl.so.?" libcurl) ; libcurl.so.[45]
+                  (string-append lib libcurl)))
+               #t)))
+         (add-after 'unpack 'set-home-directory
+           ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
+           (lambda _ (setenv "HOME" "/tmp") #t)))))
     (home-page "https://www.enlightenment.org/about-efl")
     (synopsis "Enlightenment Foundation Libraries")
     (description
@@ -146,7 +175,7 @@ removable devices or support for multimedia.")
 (define-public terminology
   (package
     (name "terminology")
-    (version "1.0.0")
+    (version "1.1.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -154,10 +183,33 @@ removable devices or support for multimedia.")
                               "terminology/terminology-" version ".tar.xz"))
               (sha256
                (base32
-                "1x4j2q4qqj10ckbka0zaq2r2zm66ff1x791kp8slv1ff7fw45vdz"))))
+                "05ncxvzb9rzkyjvd95hzn8lswqdwr8cix6rd54nqn9559jibh4ns"))
+              (modules '((guix build utils)))
+              ;; Remove the bundled fonts.
+              ;; TODO: Remove bundled lz4.
+              (snippet
+               '(begin
+                  (delete-file-recursively "data/fonts")
+                  (substitute* '("data/Makefile.in" "data/Makefile.am")
+                    (("fonts") ""))
+                  (substitute* "configure"
+                    (("data/fonts/Makefile") "")
+                    (("\\\"data/fonts/Makefile") "# \"data/fonts/Makefile"))
+                  (substitute* '("data/themes/Makefile.in"
+                                 "data/themes/Makefile.am"
+                                 "data/themes/nyanology/Makefile.in"
+                                 "data/themes/nyanology/Makefile.am")
+                    (("-fd \\$\\(top_srcdir\\)/data/fonts") ""))))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-home-directory
+           ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
+           (lambda _ (setenv "HOME" "/tmp") #t)))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("efl" ,efl)))
     (home-page "https://www.enlightenment.org/about-terminology")
@@ -183,6 +235,12 @@ contents and more.")
                (base32
                 "06kbgcnbhl9clhdl7k983m4d0n6ggsl4qvizzi1nrp8c7np87fix"))))
     (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-home-directory
+           ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
+           (lambda _ (setenv "HOME" "/tmp") #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -197,7 +255,7 @@ Libraries with some extra bells and whistles.")
 (define-public enlightenment
   (package
     (name "enlightenment")
-    (version "0.21.6")
+    (version "0.22.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -205,13 +263,34 @@ Libraries with some extra bells and whistles.")
                               name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0gan3c8jbvhcmvb2fpbprr3m6db0afg1dnrb87nbqb399nsi81zd"))))
+                "0xmrvryr35idd7fyqgshfhvy2053bs3vwrxbx681pi6rgpdvjghv"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--enable-mount-eeze")))
+     `(#:configure-flags '("--enable-mount-eeze")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'set-system-actions
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
+                   (utils     (assoc-ref inputs "util-linux")))
+               ;; We need to patch the path to 'base.lst' to be able
+               ;; to switch the keyboard layout in E.
+               (substitute* "src/modules/xkbswitch/e_mod_parse.c"
+                 (("/usr/share/X11/xkb/rules/xorg.lst")
+                  (string-append xkeyboard
+                                 "/share/X11/xkb/rules/base.lst")))
+               (substitute* "configure"
+                 (("/bin/mount") (string-append utils "/bin/mount"))
+                 (("/bin/umount") (string-append utils "/bin/umount"))
+                 (("/usr/bin/eject") (string-append utils "/bin/eject"))
+                 ; TODO: Replace suspend and hibernate also.
+                 (("/sbin/shutdown -h now") "/run/current-system/profile/sbin/halt")
+                 (("/sbin/shutdown -r now") "/run/current-system/profile/sbin/reboot"))
+               #t))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("util-linux" ,util-linux)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("dbus" ,dbus)
@@ -220,8 +299,9 @@ Libraries with some extra bells and whistles.")
        ("libxcb" ,libxcb)
        ("libxext" ,libxext)
        ("linux-pam" ,linux-pam)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)))
-    (home-page "https://www.enlightenment.org")
+       ("xcb-util-keysyms" ,xcb-util-keysyms)
+       ("xkeyboard-config" ,xkeyboard-config)))
+    (home-page "https://www.enlightenment.org/about-enlightenment")
     (synopsis "Lightweight desktop environment")
     (description
      "Enlightenment is resource friendly desktop environment with integrated
@@ -233,14 +313,17 @@ embedded systems.")
 (define-public python-efl
   (package
     (name "python-efl")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
       (origin
         (method url-fetch)
-        (uri (pypi-uri "python-efl" version))
+        (uri (list
+               (pypi-uri "python-efl" version)
+               (string-append "http://download.enlightenment.org/rel/bindings/"
+                              "python/python-efl-" version ".tar.gz")))
         (sha256
          (base32
-          "0x49rb7mx7ysjp23m919r2rx8qnl4xackhl9s9x2697m7cs77n1r"))))
+          "1680pgpf501nhbc9arm0nfj6rpcw17aryh0pgmmmszxlgpifpdzy"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -259,11 +342,7 @@ embedded systems.")
           (lambda _
             ;; Some tests require write access to HOME.
             (setenv "HOME" "/tmp")
-            #t)))
-       ;; FIXME: Some tests require a running D-Bus server or a network
-       ;; connection and should be disabled. Other test failures looks
-       ;; legitimate. Disabled for now, needs work!
-       #:tests? #f))
+            #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python-cython" ,python-cython)))
@@ -283,7 +362,7 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
 (define-public edi
   (package
     (name "edi")
-    (version "0.4.0")
+    (version "0.5.1")
     (source
       (origin
         (method url-fetch)
@@ -291,9 +370,15 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
                             "download/v" version "/edi-" version ".tar.bz2"))
         (sha256
          (base32
-          "0qczz5psryxasphg5km95845h510237rf0k1dy8f0dad52ii90j1"))))
+          "0k0ymi9ilhkypqb9pniv365kh3jgbl2g2k0ylvsmisn2jhbqk49a"))))
     (build-system gnu-build-system)
-    (arguments '(#:configure-flags '("--with-tests=coverage")))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-home-directory
+           ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
+           (lambda _ (setenv "HOME" "/tmp") #t)))
+       #:configure-flags '("--with-tests=coverage")))
     (native-inputs
      `(("check" ,check)
        ("lcov" ,lcov)