diff options
Diffstat (limited to 'gnu/packages/terminals.scm')
-rw-r--r-- | gnu/packages/terminals.scm | 106 |
1 files changed, 76 insertions, 30 deletions
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index c0618b85cf..9dbdb7708f 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -21,6 +21,8 @@ ;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2020 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -64,6 +66,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -989,7 +992,7 @@ tmux.") (define-public kitty (package (name "kitty") - (version "0.16.0") + (version "0.19.3") (home-page "https://sw.kovidgoyal.net/kitty/") (source (origin @@ -999,7 +1002,7 @@ tmux.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1bszyddar0g1gdz67h8rd3gbrdhi6ahjg7j14cjiqxm1938z9ajf")) + (base32 "0r49bybqy6c0n1lz6yc85py80wb40w757m60f5rszjf200wnyl6s")) (modules '((guix build utils))) (snippet '(begin @@ -1014,46 +1017,53 @@ tmux.") "SPHINXBUILD = sphinx-build\n")) #t)))) (build-system gnu-build-system) - (inputs - `(("python" ,python) - ("harfbuzz" ,harfbuzz) - ("zlib" ,zlib) - ("libcanberra" ,libcanberra) - ("libpng" ,libpng) - ("freetype" ,freetype) - ("fontconfig" ,fontconfig) - ("pygments" ,python-pygments) - ("wayland" ,wayland))) (native-inputs - `(("pkg-config" ,pkg-config) - ("libxrandr" ,libxrandr) - ("libdbus" ,dbus) + `(("libdbus" ,dbus) + ("libgl1-mesa" ,mesa) ("libxcursor" ,libxcursor) ("libxi" ,libxi) ("libxinerama" ,libxinerama) - ("libgl1-mesa" ,mesa) ("libxkbcommon" ,libxkbcommon) - ("sphinx" ,python-sphinx) + ("libxrandr" ,libxrandr) ("ncurses" ,ncurses) ;; for tic command + ("pkg-config" ,pkg-config) + ("sphinx" ,python-sphinx) ("wayland-protocols" ,wayland-protocols))) + (inputs + `(("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("harfbuzz" ,harfbuzz) + ("lcms" ,lcms) + ("libcanberra" ,libcanberra) + ("libpng" ,libpng) + ("pygments" ,python-pygments) + ("python" ,python-wrapper) + ("wayland" ,wayland) + ("zlib" ,zlib))) (arguments '(#:phases (modify-phases %standard-phases - (delete 'configure) - ;; Wayland backend requires EGL, which isn't found - ;; out-of-the-box for some reason. Hard-code it instead. - (add-after 'unpack 'hard-code-libegl - (lambda _ - (let* ((mesa (assoc-ref %build-inputs "libgl1-mesa")) - (libegl (string-append mesa "/lib/libEGL.so.1"))) - (substitute* "glfw/egl_context.c" - (("libEGL.so.1") libegl))) - #t)) + (delete 'configure) ;no configure script (replace 'build - (lambda _ - (invoke "python3" "setup.py" "linux-package"))) + (lambda* (#:key inputs #:allow-other-keys) + ;; The "kitty" sub-directory must be writable prior to + ;; configuration (e.g., un-setting updates). + (for-each make-file-writable (find-files "kitty")) + + (invoke "python3" "setup.py" "linux-package" + ;; Do not phone home. + "--update-check-interval=0" + ;; Wayland backend requires EGL, which isn't + ;; found out-of-the-box for some reason. + (string-append "--egl-library=" + (assoc-ref inputs "libgl1-mesa") + "/lib/libEGL.so.1")))) (replace 'check (lambda _ - (invoke "python3" "setup.py" "test"))) + ;; Fix "cannot find kitty executable" error when running + ;; tests. + (setenv "PATH" (string-append "linux-package/bin:" + (getenv "PATH"))) + (invoke "python3" "test.py"))) (add-before 'install 'rm-pycache ;; created python cache __pycache__ are non deterministic (lambda _ @@ -1411,3 +1421,39 @@ blazingly fast. By making sane choices for defaults, Alacritty requires no additional setup. However, it does allow configuration of many aspects of the terminal. Note that you need support for OpenGL 3.2 or higher.") (license license:asl2.0))) + +(define-public bootterm + (package + (name "bootterm") + (version "0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wtarreau/bootterm") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mh2i47ppcrw027nmkpjgbmx55ml21bmqihvwkhlvj1jr0vv8pva")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no test suite + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + ;; No ./configure script + (delete 'configure) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (install-file "README.md" doc) + #t)))))) + (home-page "https://github.com/wtarreau/bootterm") + (synopsis "Serial terminal") + (description "Bootterm is a terminal designed to ease connection to +ephemeral serial ports. It features automatic port detection, port enumeration, +support for non-standard baud rates, the ability to wait for ports to appear, +and the ability to read and write via stdin and stdout.") + (license license:expat))) |