gnu: xfce, mate: Propagate 'font-dejavu'.
[jackhill/guix/guix.git] / gnu / packages / enlightenment.scm
index c487b1b..079d60e 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, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017 ng0 <ng0@n0.is>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Nikita <nikita@n0.is>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Timo Eisenmann <eisenmann@fn.de>
 ;;;
 ;;; This file is part of GNU Guix.
   #: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 bittorrent)
   #:use-module (gnu packages check)
   #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages fribidi)
@@ -69,7 +69,7 @@
 (define-public efl
   (package
     (name "efl")
-    (version "1.23.3")
+    (version "1.25.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     version ".tar.xz"))
               (sha256
                (base32
-                "00b9lp3h65254kdb1ys15fv7p3ln7qsvf15jkw4kli5ymagadkjk"))))
+                "0svybbrvpf6q955y6fclxh3md64z0dgmh0x54x2j60503hhs071m"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
@@ -93,6 +93,7 @@
        ("libraw" ,libraw)
        ("librsvg" ,librsvg)
        ("libspectre" ,libspectre)
+       ("libtiff" ,libtiff)
        ("libxau" ,libxau)
        ("libxcomposite" ,libxcomposite)
        ("libxcursor" ,libxcursor)
        ("libxi" ,libxi)
        ("libxfixes" ,libxfixes)
        ("libxinerama" ,libxinerama)
-       ("libxp" ,libxp)
        ("libxrandr" ,libxrandr)
        ("libxrender" ,libxrender)
        ("libxss" ,libxscrnsaver)
        ("libxtst" ,libxtst)
+       ("libwebp" ,libwebp)
+       ("openjpeg" ,openjpeg)
        ("poppler" ,poppler)
+       ("util-linux" ,util-linux "lib")
        ("wayland-protocols" ,wayland-protocols)))
     (propagated-inputs
      ;; All these inputs are in package config files in section
      ;; Requires.private.
-     `(("avahi" ,avahi)
-       ("bullet" ,bullet)
-       ("dbus" ,dbus)
+     `(("dbus" ,dbus)
        ("elogind" ,elogind)
        ("eudev" ,eudev)
        ("fontconfig" ,fontconfig)
        ("fribidi" ,fribidi)
        ("glib" ,glib)
        ("harfbuzz" ,harfbuzz)
-       ("luajit" ,luajit)
        ("libinput" ,libinput-minimal)
        ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
        ("libsndfile" ,libsndfile)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
+       ("libpng" ,libpng)
        ("libx11" ,libx11)
        ("libxkbcommon" ,libxkbcommon)
+       ("luajit" ,luajit)
        ("lz4" ,lz4)
        ("openssl" ,openssl)
        ("pulseaudio" ,pulseaudio)
-       ("util-linux" ,util-linux "lib")
        ("wayland" ,wayland)
        ("zlib" ,zlib)))
     (arguments
-     `(#:configure-flags '("-Dsystemd=false"
-                           "-Dembedded-lz4=false"
-                           "-Devas-loaders-disabler=json"
+     `(#:configure-flags '("-Dembedded-lz4=false"
                            "-Dbuild-examples=false"
+                           "-Decore-imf-loaders-disabler=scim"
+                           "-Dglib=true"
+                           "-Dmount-path=/run/setuid-programs/mount"
+                           "-Dunmount-path=/run/setuid-programs/umount"
                            ;(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
-                           "-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
-         ;; have to wrap the outputs of efl's dependencies in curl.
-         (add-after 'unpack 'hardcode-libcurl-location
+         ;; If we don't hardcode the location of libcurl.so and others then we
+         ;; have to wrap the outputs of efl's dependencies in those libraries.
+         (add-after 'unpack 'hardcode-dynamic-libraries
            (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((curl (assoc-ref inputs "curl"))
-                    (lib  (string-append curl "/lib/")))
+             (let ((curl    (assoc-ref inputs "curl"))
+                   (pulse   (assoc-ref inputs "pulseaudio"))
+                   (sndfile (assoc-ref inputs "libsndfile"))
+                   (elogind (assoc-ref inputs "elogind"))
+                   (lib     "/lib/"))
                (substitute* "src/lib/ecore_con/ecore_con_url_curl.c"
                  (("libcurl.so.?" libcurl) ; libcurl.so.[45]
-                  (string-append lib libcurl)))
+                  (string-append curl lib libcurl)))
+               (substitute* "src/lib/ecore_audio/ecore_audio.c"
+                 (("libpulse.so.0" libpulse)
+                  (string-append pulse lib libpulse))
+                 (("libsndfile.so.1" libsnd)
+                  (string-append sndfile lib libsnd)))
+               (substitute* "src/lib/elput/elput_logind.c"
+                 (("libelogind.so.0" libelogind)
+                  (string-append elogind "/lib/" libelogind)))
                #t)))
          (add-after 'unpack 'fix-install-paths
            (lambda _
                 "install_dir: join_paths(dir_data, 'dbus-1', 'services'))\n"))
              (substitute* "src/tests/elementary/meson.build"
                (("dir_data") "meson.source_root(), 'test-output'"))
+             (substitute* "data/eo/meson.build"
+               (("'usr', 'lib'") "'./' + dir_lib"))
              #t))
          (add-after 'unpack 'set-home-directory
            ;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
@@ -194,7 +199,7 @@ removable devices or support for multimedia.")
 (define-public terminology
   (package
     (name "terminology")
-    (version "1.7.0")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri
@@ -202,7 +207,7 @@ removable devices or support for multimedia.")
                               "terminology/terminology-" version ".tar.xz"))
               (sha256
                (base32
-                "11qan2k6w94cglysh95yxkbv6hw9x15ri927hkiy3k0hbmpbrxc8"))
+                "0v74858yvrrfy0l2pq7yn6izvqhpkb9gw2jpd3a3khjwv8kw6frz"))
               (modules '((guix build utils)))
               ;; Remove the bundled fonts.
               (snippet
@@ -213,10 +218,11 @@ removable devices or support for multimedia.")
                   #t))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags (list "-Dtests=true"
-                               (string-append "-Dedje-cc="
-                                              (assoc-ref %build-inputs "efl")
-                                              "/bin/edje_cc"))
+     `(#:configure-flags
+       (let ((efl (assoc-ref %build-inputs "efl")))
+         (list "-Dtests=true"
+               (string-append "-Dedje-cc=" efl "/bin/edje_cc")
+               (string-append "-Deet=" efl "/bin/eet")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-home-directory
@@ -283,7 +289,7 @@ Libraries with some extra bells and whistles.")
 (define-public enlightenment
   (package
     (name "enlightenment")
-    (version "0.23.1")
+    (version "0.24.2")
     (source (origin
               (method url-fetch)
               (uri
@@ -291,27 +297,27 @@ Libraries with some extra bells and whistles.")
                               "enlightenment/enlightenment-" version ".tar.xz"))
               (sha256
                (base32
-                "0d1cyl07w9pvi2pf029kablazks2q9aislzl46b6fq5m1465jc75"))
+                "1wfz0rwwsx7c1mkswn4hc9xw1i6bsdirhxiycf7ha2vcipqy465y"))
               (patches (search-patches "enlightenment-fix-setuid-path.patch"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dsystemd=false")
+     `(#:configure-flags
+       (let ((efl (assoc-ref %build-inputs "efl")))
+         (list "-Dsystemd=false"
+               "-Dpackagekit=false"
+               "-Dwl=true"
+               (string-append "-Dedje-cc=" efl "/bin/edje_cc")
+               (string-append "-Deldbus-codegen=" efl "/bin/eldbus-codegen")
+               (string-append "-Deet=" efl "/bin/eet")))
        #: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")
+             (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
@@ -328,34 +334,31 @@ Libraries with some extra bells and whistles.")
                                   "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* '("src/bin/e_sys_main.c"
+                              "src/bin/e_util_suid.h")
+                 (("PATH=/bin:/usr/bin:/sbin:/usr/sbin")
+                  (string-append "PATH=/run/setuid-programs:"
+                                 "/run/current-system/profile/bin:"
+                                 "/run/current-system/profile/sbin")))
                (substitute* "src/modules/everything/evry_plug_calc.c"
                  (("bc -l") (string-append bc "/bin/bc -l")))
                (substitute* "data/etc/meson.build"
                  (("/bin/mount") "/run/setuid-programs/mount")
                  (("/bin/umount") "/run/setuid-programs/umount")
-                 (("/usr/bin/eject") (string-append utils "/bin/eject"))
-                 (("/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"))
+                 (("/usr/bin/eject") "/run/current-system/profile/bin/eject"))
+               (substitute* "src/bin/system/e_system_power.c"
+                 (("systemctl") "loginctl"))
                #t))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("util-linux" ,util-linux)))
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("bc" ,bc)
        ("bluez" ,bluez)
        ("dbus" ,dbus)
-       ("efl" ,efl)
        ("freetype" ,freetype)
        ("libxcb" ,libxcb)
        ("libxext" ,libxext)
@@ -363,7 +366,15 @@ Libraries with some extra bells and whistles.")
        ("puleseaudio" ,pulseaudio)
        ("setxkbmap" ,setxkbmap)
        ("xcb-util-keysyms" ,xcb-util-keysyms)
-       ("xkeyboard-config" ,xkeyboard-config)))
+       ("xkeyboard-config" ,xkeyboard-config)
+       ("xorg-server-xwayland" ,xorg-server-xwayland)))
+    (propagated-inputs
+     `(("efl" ,efl)
+       ("libxkbcommon" ,libxkbcommon)
+       ("wayland-protocols" ,wayland-protocols)
+
+       ;; Default font that applications such as IceCat require.
+       ("font-dejavu" ,font-dejavu)))
     (home-page "https://www.enlightenment.org/about-enlightenment")
     (synopsis "Lightweight desktop environment")
     (description
@@ -374,22 +385,12 @@ 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)))))
+  (deprecated-package "enlightenment-wayland" enlightenment))
 
 (define-public python-efl
   (package
     (name "python-efl")
-    (version "1.23.0")
+    (version "1.25.0")
     (source
       (origin
         (method url-fetch)
@@ -397,17 +398,19 @@ embedded systems.")
                             "python/python-efl-" version ".tar.xz"))
         (sha256
          (base32
-          "16yn6a1b9167nfmryyi44ma40m20ansfpwgrvqzfvwix7qaz9pib"))
+          "0bk161xwlz4dlv56r68xwkm8snzfifaxd1j7w2wcyyk4fgvnvq4r"))
         (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))))
+         '(begin
+            (for-each (lambda (file)
+                        (let ((generated-file
+                                (string-append (string-drop-right file 3) "c")))
+                          (when (file-exists? generated-file)
+                            (delete-file generated-file))))
+                      (find-files "efl" "\\.pyx$"))
+            (delete-file "efl/eo/efl.eo_api.h")
+            #t))))
     (build-system python-build-system)
     (arguments
      '(#:phases
@@ -472,7 +475,7 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
            (lambda _ (setenv "HOME" "/tmp") #t)))
        #:tests? #f)) ; tests require running dbus service
     (native-inputs
-     `(("check" ,check)
+     `(("check" ,check-0.14)
        ("gettext" ,gettext-minimal)
        ("pkg-config" ,pkg-config)))
     (inputs
@@ -568,20 +571,20 @@ directories.
 (define-public evisum
   (package
     (name "evisum")
-    (version "0.4.1")
+    (version "0.5.11")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "https://download.enlightenment.org/rel/apps/"
                             "evisum/evisum-" version ".tar.xz"))
         (sha256
-         (base32
-          "0c3sgz6g8agig1i6fwn1jv318zsm556l9f3f0dm1jll146dlk2iv"))))
+         (base32 "0cbfg393nlf0k91a2hdlyakns3dpzvs3isd95dm3zizydyf9h8wc"))))
     (build-system meson-build-system)
     (arguments
-     '(#:tests? #f))    ; no tests
+     '(#:tests? #f))                    ; no tests
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("efl" ,efl)))
     (home-page "https://www.enlightenment.org")
@@ -590,3 +593,42 @@ directories.
      "This is a process monitor and system monitor using the
 @dfn{Enlightenment Foundation Libraries} (EFL).")
     (license license:bsd-2)))
+
+(define-public epour
+  (package
+    (name "epour")
+    (version "0.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://download.enlightenment.org/rel/apps/epour"
+                            "/epour-" version ".tar.xz"))
+        (sha256
+         (base32
+          "0g9f9p01hsq6dcf4cs1pwq95g6fpkyjgwqlvdjk1km1i5gj5ygqw"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f      ; no test target
+       #:use-setuptools? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'find-theme-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "epour/gui/__init__.py"
+                 (("join\\(data_path")
+                  (string-append "join(\"" out "/share/epour\"")))
+               #t))))))
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("python-distutils-extra" ,python-distutils-extra)))
+    (inputs
+     `(("libtorrent-rasterbar" ,libtorrent-rasterbar)
+       ("python-dbus" ,python-dbus)
+       ("python-efl" ,python-efl)
+       ("python-pyxdg" ,python-pyxdg)))
+    (home-page "https://www.enlightenment.org")
+    (synopsis "EFL Bittorrent client")
+    (description "Epour is a BitTorrent client based on the @dfn{Enlightenment
+Foundation Libraries} (EFL) and rb-libtorrent.")
+    (license license:gpl3+)))