gnu: freecad: Update to 0.18.4.
[jackhill/guix/guix.git] / gnu / packages / enlightenment.scm
index d749ada..262a39d 100644 (file)
@@ -1,9 +1,10 @@
 ;;; 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)
@@ -44,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)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (ice-9 match))
 
 (define-public efl
   (package
     (name "efl")
-    (version "1.20.7")
+    (version "1.23.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     version ".tar.xz"))
               (sha256
                (base32
-                "1zkn5ix81xck3n84dxvkjh4alwc6zj8x989d0zqi5c6ppijvgadh"))))
-    (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"
-                           "--enable-liblz4"
-                           "--enable-xinput22"
-                           "--enable-image-loader-webp"
-                           "--enable-multisense"
-                           "--with-opengl=es"
-                           "--enable-egl"
-                           "--enable-harfbuzz"
+     `(#: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"
+                                '("-opengl=es-egl"))
+                               (_
+                                '("-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)))))
@@ -177,7 +194,7 @@ removable devices or support for multimedia.")
 (define-public terminology
   (package
     (name "terminology")
-    (version "1.2.0")
+    (version "1.5.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -185,10 +202,9 @@ removable devices or support for multimedia.")
                               "terminology/terminology-" version ".tar.xz"))
               (sha256
                (base32
-                "0kw34l5lahn1qaks3ah6x8k41d6hfywpqfak2p7qq1z87zj506mx"))
+                "0v4amfg8ji0mb6j7kcxh3wz1xw5zyxg4rw6ylx17rfw2nc1yamfy"))
               (modules '((guix build utils)))
               ;; Remove the bundled fonts.
-              ;; TODO: Remove bundled lz4.
               (snippet
                '(begin
                   (delete-file-recursively "data/fonts")
@@ -197,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)
@@ -220,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
@@ -229,7 +261,7 @@ contents and more.")
                 version ".tar.xz"))
               (sha256
                (base32
-                "0gfzdd4jg78bkmj61yg49w7bzspl5m1nh6agqgs8k7qrq9q26xqy"))))
+                "04fdk23bbgvni212zrfy4ndg7vmshbsjgicrhckdvhay87pk9i75"))))
     (build-system meson-build-system)
     (arguments
      '(#:phases
@@ -251,38 +283,66 @@ Libraries with some extra bells and whistles.")
 (define-public enlightenment
   (package
     (name "enlightenment")
-    (version "0.22.3")
+    (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
-                "16zydv7z94aw3rywmb9gr8ya85k7b75h22wng95lfx1x0y1yb0ad"))
+                "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"))
-                   (utils     (assoc-ref inputs "util-linux")))
+                   (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.
-               (substitute* "src/modules/xkbswitch/e_mod_parse.c"
+               (substitute* (list "src/modules/xkbswitch/e_mod_parse.c"
+                                  "src/modules/wizard/page_011.c")
                  (("/usr/share/X11/xkb/rules/xorg.lst")
                   (string-append xkeyboard
                                  "/share/X11/xkb/rules/base.lst")))
+               (substitute* "src/bin/e_xkb.c"
+                 (("\"setxkbmap \"")
+                  (string-append "\"" setxkbmap "/bin/setxkbmap \"")))
+               (substitute* (list "src/bin/e_intl.c"
+                                  "src/modules/conf_intl/e_int_config_intl.c"
+                                  "src/modules/wizard/page_010.c")
+                 (("locale -a") (string-append libc "/bin/locale -a")))
+               (substitute* "src/bin/e_import_config_dialog.c"
+                 (("%s/edje_cc -v %s %s %s\", e_prefix_bin_get\\(\\)")
+                  (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))))))
@@ -292,12 +352,16 @@ 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)))
     (home-page "https://www.enlightenment.org/about-enlightenment")
@@ -309,38 +373,62 @@ 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.20.0")
+    (version "1.23.0")
     (source
       (origin
         (method url-fetch)
-        (uri (list
-               (pypi-uri "python-efl" version)
-               (string-append "http://download.enlightenment.org/rel/bindings/"
-                              "python/python-efl-" version ".tar.gz")))
+        (uri (string-append "https://download.enlightenment.org/rel/bindings/"
+                            "python/python-efl-" version ".tar.xz"))
         (sha256
          (base32
-          "1680pgpf501nhbc9arm0nfj6rpcw17aryh0pgmmmszxlgpifpdzy"))))
+          "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
        (modify-phases %standard-phases
-        (replace 'build
-          (lambda _
-            (zero?
-              (system* "env" "ENABLE_CYTHON=1" "python" "setup.py" "build"))))
+         (replace 'build
+           (lambda _
+             (setenv "ENABLE_CYTHON" "1")
+             (invoke "python" "setup.py" "build")))
         (add-before 'build 'set-flags
-         (lambda _
-           (setenv "CFLAGS"
-                   (string-append "-I" (assoc-ref %build-inputs "python-dbus")
-                                  "/include/dbus-1.0"))
-           #t))
+          (lambda _
+            (setenv "CFLAGS"
+                    (string-append "-I" (assoc-ref %build-inputs "python-dbus")
+                                   "/include/dbus-1.0"))
+            #t))
         (add-before 'check 'set-environment
           (lambda _
             ;; Some tests require write access to HOME.
             (setenv "HOME" "/tmp")
+            ;; These tests try to connect to the internet.
+            (delete-file "tests/ecore/test_09_file_download.py")
+            (delete-file "tests/ecore/test_11_con.py")
             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -421,3 +509,87 @@ and in creating applications based on the Enlightenment Foundation Library suite
      "Simple PDF viewer based on the Enlightenment Foundation Libraries.")
     (home-page "https://github.com/kaihu/lekha")
     (license license:gpl3+)))
+
+(define-public ephoto
+  (package
+    (name "ephoto")
+    (version "1.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (list (string-append "http://www.smhouston.us/stuff/ephoto-"
+                                  version ".tar.xz")
+                   (string-append "https://download.enlightenment.org/rel/"
+                                  "apps/ephoto/ephoto-" version ".tar.xz")))
+        (sha256
+         (base32
+          "1q7v9abjp9jrs08xc7pqaac64yzax24dk1snjb9rciarzzh3mlzy"))))
+    (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
+     `(("check" ,check)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("efl" ,efl)))
+    (home-page "http://smhouston.us/ephoto/")
+    (synopsis "EFL image viewer/editor/manipulator/slideshow creator")
+    (description "Ephoto is an image viewer and editor written using the
+@dfn{Enlightenment Foundation Libraries} (EFL).  It focuses on simplicity and
+ease of use, while taking advantage of the speed and small footprint the EFL
+provide.
+
+Ephoto’s features include:
+@enumerate
+@item Browsing the file system and displaying images in an easy-to-use grid view.
+@item Browsing images in a single image view format.
+@item Viewing images in a slideshow.
+@item Editing your image with features such as cropping, auto enhance,
+blurring, sharpening, brightness/contrast/gamma adjustments, hue/saturation/value
+adjustments, and color level adjustment.
+@item Applying artistic filters to your image such as black and white and old
+photo.
+@item Drag And Drop along with file operations to easily maintain your photo
+directories.
+@end enumerate\n")
+    (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)))