gnu: freecad: Update to 0.18.4.
[jackhill/guix/guix.git] / gnu / packages / enlightenment.scm
index 2bf89b2..262a39d 100644 (file)
@@ -1,9 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
 ;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
 ;;;
 ;;; This file is part of GNU Guix.
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages avahi)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
@@ -45,6 +48,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages ibus)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
@@ -65,7 +69,7 @@
 (define-public efl
   (package
     (name "efl")
-    (version "1.21.1")
+    (version "1.23.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     version ".tar.xz"))
               (sha256
                (base32
-                "0a5907h896pvpix7a6idc2fspzy6d78xrzf84k8y9fyvnd14nxs4"))))
-    (outputs '("out"       ; 49 MB
-               "include")) ; 17 MB
-    (build-system gnu-build-system)
+                "14yljnnmb89s8j6ip08ip5d01zkgzbzr1h4fr4bwk9lh8r59x3ds"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("check" ,check)
+       ("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("curl" ,curl)
-       ("ghostscript" ,ghostscript)
+     `(("curl" ,curl)
        ("giflib" ,giflib)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
-       ("libexif" ,libexif)
-       ("libjpeg" ,libjpeg)
+       ("ibus" ,ibus)
+       ("mesa" ,mesa)
        ("libraw" ,libraw)
        ("librsvg" ,librsvg)
        ("libspectre" ,libspectre)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("libx11" ,libx11)
        ("libxau" ,libxau)
        ("libxcomposite" ,libxcomposite)
        ("libxcursor" ,libxcursor)
        ("libxp" ,libxp)
        ("libxrandr" ,libxrandr)
        ("libxrender" ,libxrender)
-       ("libxscrnsaver" ,libxscrnsaver)
+       ("libxss" ,libxscrnsaver)
        ("libxtst" ,libxtst)
-       ("lz4" ,lz4)
-       ("openjpeg" ,openjpeg-1)
        ("poppler" ,poppler)
-       ("printproto" ,printproto)
-       ("wayland-protocols" ,wayland-protocols)
-       ("xinput" ,xinput)
-       ("xpr" ,xpr)
-       ("xorgproto" ,xorgproto)))
+       ("wayland-protocols" ,wayland-protocols)))
     (propagated-inputs
      ;; All these inputs are in package config files in section
      ;; Requires.private.
-     `(("bullet" ,bullet) ; ephysics.pc
-       ("dbus" ,dbus) ; eldbus.pc, elementary.pc, elocation.pc, ethumb_client.pc
-       ("eudev" ,eudev) ; eeze.pc
-       ("fontconfig" ,fontconfig) ; evas.pc, evas-cxx.pc
-       ("freetype" ,freetype) ; evas.pc, evas-cxx.pc
-       ("fribidi" ,fribidi) ; evas.pc, evas-cxx.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) ; mount: eeze.pc
-       ("wayland" ,wayland) ; ecore-wl2.pc, elementary.pc
-       ("zlib" ,zlib))) ; eet.pc, eet-cxx.pc, emile.pc
+     `(("avahi" ,avahi)
+       ("bullet" ,bullet)
+       ("dbus" ,dbus)
+       ("elogind" ,elogind)
+       ("eudev" ,eudev)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
+       ("glib" ,glib)
+       ("harfbuzz" ,harfbuzz)
+       ("luajit" ,luajit)
+       ("libinput" ,libinput-minimal)
+       ("libjpeg" ,libjpeg)
+       ("libpng" ,libpng)
+       ("libsndfile" ,libsndfile)
+       ("libtiff" ,libtiff)
+       ("libwebp" ,libwebp)
+       ("libx11" ,libx11)
+       ("libxkbcommon" ,libxkbcommon)
+       ("lz4" ,lz4)
+       ("openssl" ,openssl)
+       ("pulseaudio" ,pulseaudio)
+       ("util-linux" ,util-linux)
+       ("wayland" ,wayland)
+       ("zlib" ,zlib)))
     (arguments
-     `(#:configure-flags '("--disable-silent-rules"
-                           "--disable-systemd"
-                           "--with-profile=release"
-                           "--enable-liblz4"
-                           "--enable-xinput22"
-                           "--enable-image-loader-webp"
-                           "--enable-multisense"
+     `(#:configure-flags '("-Dsystemd=false"
+                           "-Dembedded-lz4=false"
+                           "-Devas-loaders-disabler=json"
+                           "-Dbuild-examples=false"
+                           ;(string-append "-Ddictionaries-hyphen-dir="
+                           ;               (assoc-ref %build-inputs "hyphen")
+                           ;               "/share/hyphen")
+                           "-Delogind=true"
+                           "-Dnetwork-backend=connman"
                            ,@(match (%current-system)
                                ("armhf-linux"
-                                '("--with-opengl=es" "--with-egl"))
+                                '("-opengl=es-egl"))
                                (_
-                                '("--with-opengl=full")))
-                           "--enable-harfbuzz"
+                                '("-Dopengl=full")))
                            ;; for wayland
-                           "--enable-wayland"
-                           "--enable-elput"
-                           "--enable-drm")
+                           "-Dwl-deprecated=true" ; ecore_wayland
+                           "-Ddrm-deprecated=true" ; ecore_drm
+                           "-Dwl=true"
+                           "-Ddrm=true")
+       #:tests? #f ; Many tests fail due to timeouts and network requests.
        #:phases
        (modify-phases %standard-phases
          ;; If we don't hardcode the location of libcurl.so then we
                  (("libcurl.so.?" libcurl) ; libcurl.so.[45]
                   (string-append lib libcurl)))
                #t)))
+         (add-after 'unpack 'fix-install-paths
+           (lambda _
+             (substitute* "dbus-services/meson.build"
+               (("install_dir.*")
+                "install_dir: join_paths(dir_data, 'dbus-1', 'services'))\n"))
+             (substitute* "src/tests/elementary/meson.build"
+               (("dir_data") "meson.source_root(), 'test-output'"))
+             #t))
          (add-after 'unpack 'set-home-directory
            ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
            (lambda _ (setenv "HOME" "/tmp") #t)))))
@@ -184,7 +194,7 @@ removable devices or support for multimedia.")
 (define-public terminology
   (package
     (name "terminology")
-    (version "1.3.2")
+    (version "1.5.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -192,7 +202,7 @@ removable devices or support for multimedia.")
                               "terminology/terminology-" version ".tar.xz"))
               (sha256
                (base32
-                "1kclxzadmk272s9spa7n704pcb1c611ixxrq88w5zk22va0i25xm"))
+                "0v4amfg8ji0mb6j7kcxh3wz1xw5zyxg4rw6ylx17rfw2nc1yamfy"))
               (modules '((guix build utils)))
               ;; Remove the bundled fonts.
               (snippet
@@ -203,11 +213,27 @@ removable devices or support for multimedia.")
                   #t))))
     (build-system meson-build-system)
     (arguments
-     '(#:phases
+     `(#:configure-flags (list "-Dtests=true"
+                               (string-append "-Dedje-cc="
+                                              (assoc-ref %build-inputs "efl")
+                                              "/bin/edje_cc"))
+       #: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)))))
+           (lambda _ (setenv "HOME" "/tmp") #t))
+         (replace 'check
+           (lambda _
+             (with-directory-excursion
+               (string-append "../" ,name "-" ,version "/tests")
+               (invoke "sh" "run_tests.sh" "--verbose"
+                       "-t" "../../build/src/bin/tytest"))))
+         (add-after 'install 'remove-test-binary
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; This file is not meant to be installed.
+             (delete-file (string-append (assoc-ref outputs "out")
+                                         "/bin/tytest"))
+             #t)))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("perl" ,perl)
@@ -226,7 +252,7 @@ contents and more.")
 (define-public rage
   (package
     (name "rage")
-    (version "0.3.0")
+    (version "0.3.1")
     (source (origin
               (method url-fetch)
               (uri
@@ -235,7 +261,7 @@ contents and more.")
                 version ".tar.xz"))
               (sha256
                (base32
-                "0gfzdd4jg78bkmj61yg49w7bzspl5m1nh6agqgs8k7qrq9q26xqy"))))
+                "04fdk23bbgvni212zrfy4ndg7vmshbsjgicrhckdvhay87pk9i75"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases
@@ -257,26 +283,36 @@ Libraries with some extra bells and whistles.")
 (define-public enlightenment
   (package
     (name "enlightenment")
-    (version "0.22.4")
+    (version "0.23.1")
     (source (origin
               (method url-fetch)
               (uri
                (string-append "https://download.enlightenment.org/rel/apps/"
-                              name "/" name "-" version ".tar.xz"))
+                              "enlightenment/enlightenment-" version ".tar.xz"))
               (sha256
                (base32
-                "0ygy891rrw5c7lhk539nhif77j88phvz2h0fhx172iaridy9kx2r"))
+                "0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75"))
               (patches (search-patches "enlightenment-fix-setuid-path.patch"))))
-    (build-system gnu-build-system)
+    (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:configure-flags '("-Dsystemd=false")
+       #:phases
        (modify-phases %standard-phases
+         (delete 'bootstrap) ; We don't want to run the autogen script.
+         (add-after 'unpack 'fix-dot-desktop-creation
+           (lambda _
+             (substitute* "data/session/meson.build"
+               (("HAVE_WAYLAND'.*") "HAVE_WAYLAND') == true\n"))
+             #t))
          (add-before 'configure 'set-system-actions
            (lambda* (#:key inputs #:allow-other-keys)
+            (setenv "HOME" "/tmp")
              (let ((xkeyboard (assoc-ref inputs "xkeyboard-config"))
                    (setxkbmap (assoc-ref inputs "setxkbmap"))
                    (utils     (assoc-ref inputs "util-linux"))
                    (libc      (assoc-ref inputs "libc"))
+                   (bluez     (assoc-ref inputs "bluez"))
+                   (bc        (assoc-ref inputs "bc"))
                    (efl       (assoc-ref inputs "efl")))
                ;; We need to patch the path to 'base.lst' to be able
                ;; to switch the keyboard layout in E.
@@ -297,12 +333,16 @@ Libraries with some extra bells and whistles.")
                   (string-append efl "/bin/edje_cc -v %s %s %s\"")))
                (substitute* "src/modules/everything/evry_plug_apps.c"
                  (("/usr/bin/") ""))
-               (substitute* "configure"
+               (substitute* "src/modules/everything/evry_plug_calc.c"
+                 (("bc -l") (string-append bc "/bin/bc -l")))
+               (substitute* "data/etc/meson.build"
                  (("/bin/mount") (string-append utils "/bin/mount"))
                  (("/bin/umount") (string-append utils "/bin/umount"))
                  (("/usr/bin/eject") (string-append utils "/bin/eject"))
-                 (("/etc/acpi/sleep.sh force") "/run/current-system/profile/bin/loginctl suspend")
-                 (("/etc/acpi/hibernate.sh force") "/run/current-system/profile/bin/loginctl hibernate")
+                 (("/usr/bin/l2ping") (string-append bluez "/bin/l2ling"))
+                 (("/bin/rfkill") (string-append utils "/sbin/rfkill"))
+                 (("SUSPEND   = ''") "SUSPEND   = '/run/current-system/profile/bin/loginctl suspend'")
+                 (("HIBERNATE = ''") "HIBERNATE = '/run/current-system/profile/bin/loginctl hibernate'")
                  (("/sbin/shutdown -h now") "/run/current-system/profile/bin/loginctl poweroff now")
                  (("/sbin/shutdown -r now") "/run/current-system/profile/bin/loginctl reboot now"))
                #t))))))
@@ -312,12 +352,15 @@ Libraries with some extra bells and whistles.")
        ("util-linux" ,util-linux)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
+       ("bc" ,bc)
+       ("bluez" ,bluez)
        ("dbus" ,dbus)
        ("efl" ,efl)
        ("freetype" ,freetype)
        ("libxcb" ,libxcb)
        ("libxext" ,libxext)
        ("linux-pam" ,linux-pam)
+       ("puleseaudio" ,pulseaudio)
        ("setxkbmap" ,setxkbmap)
        ("xcb-util-keysyms" ,xcb-util-keysyms)
        ("xkeyboard-config" ,xkeyboard-config)))
@@ -330,18 +373,41 @@ unload unused functionality, with support for touchscreen and suitable for
 embedded systems.")
     (license license:bsd-2)))
 
+(define-public enlightenment-wayland
+  (package
+    (inherit enlightenment)
+    (name "enlightenment-wayland")
+    (arguments
+     (substitute-keyword-arguments (package-arguments enlightenment)
+       ((#:configure-flags flags)
+        `(cons* "-Dwl=true" ,flags))))
+    (inputs
+     `(("wayland-protocols" ,wayland-protocols)
+       ("xorg-server-xwayland" ,xorg-server-xwayland)
+       ,@(package-inputs enlightenment)))))
+
 (define-public python-efl
   (package
     (name "python-efl")
-    (version "1.21.0")
+    (version "1.23.0")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append "http://download.enlightenment.org/rel/bindings/"
+        (uri (string-append "https://download.enlightenment.org/rel/bindings/"
                             "python/python-efl-" version ".tar.xz"))
         (sha256
          (base32
-          "08x2cv8hnf004c3711250wrax21ffj5y8951pvk77h98als4pq47"))))
+          "16yn6a1b9167nfmryyi44ma40m20ansfpwgrvqzfvwix7qaz9pib"))
+        (modules '((guix build utils)))
+        ;; Remove files generated by Cython
+        (snippet
+          '(begin
+             (copy-file "efl/dbus_mainloop/e_dbus.c" "efl/dbus_mainloop/e_dbus.q")
+             (for-each delete-file (find-files "efl" ".*\\.c$"))
+             (delete-file "efl/eo/efl.eo_api.h")
+             (copy-file "efl/dbus_mainloop/e_dbus.q" "efl/dbus_mainloop/e_dbus.c")
+             (delete-file "efl/dbus_mainloop/e_dbus.q")
+             #t))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -457,7 +523,7 @@ and in creating applications based on the Enlightenment Foundation Library suite
                                   "apps/ephoto/ephoto-" version ".tar.xz")))
         (sha256
          (base32
-          "04kli43sfsy6s660g13pjc0kjmgdcmq8m4qh02vvpcwv60mf9mgz"))))
+          "1q7v9abjp9jrs08xc7pqaac64yzax24dk1snjb9rciarzzh3mlzy"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -493,3 +559,37 @@ directories.
     (license (list
                license:bsd-2 ; Ephoto's thumbnailing code
                license:bsd-3))))
+
+(define-public evisum
+  (package
+    (name "evisum")
+    (version "0.2.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://download.enlightenment.org/rel/apps/"
+                            "evisum/evisum-" version ".tar.xz"))
+        (sha256
+         (base32
+          "1rg3kri6j8nmab0kdljnmcc096c8ibgwzvbhqr0b25xpmrq8bcac"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f   ; no tests
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; no configure phase
+         (add-after 'unpack 'set-environmental-variables
+           (lambda _ (setenv "CC" (which "gcc")) #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("efl" ,efl)
+       ("perl" ,perl)))
+    (home-page "https://www.enlightenment.org")
+    (synopsis "EFL process viewer")
+    (description
+     "This is a process monitor and system monitor using the
+@dfn{Enlightenment Foundation Libraries} (EFL).")
+    (license license:bsd-2)))