;;; 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)
#: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)))))
(define-public terminology
(package
(name "terminology")
- (version "1.2.0")
+ (version "1.5.0")
(source (origin
(method url-fetch)
(uri
"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")
#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)
(define-public rage
(package
(name "rage")
- (version "0.3.0")
+ (version "0.3.1")
(source (origin
(method url-fetch)
(uri
version ".tar.xz"))
(sha256
(base32
- "0gfzdd4jg78bkmj61yg49w7bzspl5m1nh6agqgs8k7qrq9q26xqy"))))
+ "04fdk23bbgvni212zrfy4ndg7vmshbsjgicrhckdvhay87pk9i75"))))
(build-system meson-build-system)
(arguments
'(#:phases
(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))))))
("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")
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)
"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)))