diff options
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/kitty-fix-wayland-protocols.patch | 37 | ||||
-rw-r--r-- | gnu/packages/terminals.scm | 127 |
3 files changed, 101 insertions, 64 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 680876e2ff..6dcacd3d6e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1454,6 +1454,7 @@ dist_patch_DATA = \ %D%/packages/patches/kinit-kdeinit-extra_libs.patch \ %D%/packages/patches/kio-search-smbd-on-PATH.patch \ %D%/packages/patches/kismet-unbundle-boost.patch \ + %D%/packages/patches/kitty-fix-wayland-protocols.patch \ %D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kmscon-runtime-keymap-switch.patch \ %D%/packages/patches/kobodeluxe-paths.patch \ diff --git a/gnu/packages/patches/kitty-fix-wayland-protocols.patch b/gnu/packages/patches/kitty-fix-wayland-protocols.patch new file mode 100644 index 0000000000..6fcb38a360 --- /dev/null +++ b/gnu/packages/patches/kitty-fix-wayland-protocols.patch @@ -0,0 +1,37 @@ +See <https://github.com/kovidgoyal/kitty/issues/6422> for details. + +Modified with further fixes from <https://github.com/kovidgoyal/kitty/issues/6422#issuecomment-1622071032>. + +From 95d15648fa375bb131ff897f0db03b764dabaf65 Mon Sep 17 00:00:00 2001 +From: Kovid Goyal <kovid@kovidgoyal.net> +Date: Wed, 5 Jul 2023 10:29:33 +0530 +Subject: [PATCH] Fix not building with wayland-protocols 1.32 + +Fix #6422 + +diff --git a/glfw/wl_platform.h b/glfw/wl_platform.h +index f35b55e94..42c90b1fa 100644 +--- a/glfw/wl_platform.h ++++ b/glfw/wl_platform.h +@@ -122,6 +122,7 @@ typedef enum WaylandWindowState { + TOPLEVEL_STATE_TILED_RIGHT = 32, + TOPLEVEL_STATE_TILED_TOP = 64, + TOPLEVEL_STATE_TILED_BOTTOM = 128, ++ TOPLEVEL_STATE_SUSPENDED = 256, + } WaylandWindowState; + + +diff --git a/glfw/wl_window.c b/glfw/wl_window.c +index f7e329609..23868154f 100644 +--- a/glfw/wl_window.c ++++ b/glfw/wl_window.c +@@ -420,6 +420,9 @@ static void xdgToplevelHandleConfigure(void* data, + C(TOPLEVEL_STATE_TILED_RIGHT); + C(TOPLEVEL_STATE_TILED_TOP); + C(TOPLEVEL_STATE_TILED_BOTTOM); ++#ifdef XDG_TOPLEVEL_STATE_SUSPENDED_SINCE_VERSION ++ C(TOPLEVEL_STATE_SUSPENDED); ++ #endif + #undef C + } + } diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 9b705c874f..1bfec73477 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -1205,7 +1205,7 @@ tmux.") (define-public kitty (package (name "kitty") - (version "0.20.3") + (version "0.21.2") (home-page "https://sw.kovidgoyal.net/kitty/") (source (origin @@ -1215,7 +1215,8 @@ tmux.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "13qv4469q9q2xdrb77lbyw4dz491zf1qvqx4adp0dd9annnlir5c")) + (base32 "0y0mg8rr18mn0wzym7v48x6kl0ixd5q387kr5jhbdln55ph2jk9d")) + (patches (search-patches "kitty-fix-wayland-protocols.patch")) (modules '((guix build utils))) (snippet '(begin @@ -1231,70 +1232,68 @@ tmux.") #t)))) (build-system gnu-build-system) (native-inputs - `(("libdbus" ,dbus) - ("libgl1-mesa" ,mesa) - ("libxcursor" ,libxcursor) - ("libxi" ,libxi) - ("libxinerama" ,libxinerama) - ("libxkbcommon" ,libxkbcommon) - ("libxrandr" ,libxrandr) - ("ncurses" ,ncurses) ;; for tic command - ("pkg-config" ,pkg-config) - ("sphinx" ,python-sphinx) - ("wayland-protocols" ,wayland-protocols))) + (list dbus + mesa + libxcursor + libxi + libxinerama + libxkbcommon + libxrandr + ncurses ;; for tic command + pkg-config + python-sphinx + 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))) + (list fontconfig + freetype + harfbuzz + lcms + libcanberra + libpng + python-pygments + python-wrapper + wayland + zlib)) (arguments - '(#:phases (modify-phases %standard-phases - (delete 'configure) ;no configure script - (replace 'build - (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 _ - ;; 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 _ - (let ((pycaches (find-files "linux-package/" - "__pycache__" - #:directories? #t))) - (for-each delete-file-recursively pycaches) - #t))) - (replace 'install - (lambda _ - (let* ((out (assoc-ref %outputs "out")) - (obin (string-append out "/bin")) - (olib (string-append out "/lib")) - (oshare (string-append out "/share"))) - (copy-recursively "linux-package/bin" obin) - (copy-recursively "linux-package/share" oshare) - (copy-recursively "linux-package/lib" olib) - #t)))))) + (list + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ;no configure script + (replace 'build + (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=" + (search-input-file inputs "/lib/libEGL.so.1"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; 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 _ + (let ((pycaches (find-files "linux-package/" + "__pycache__" + #:directories? #t))) + (for-each delete-file-recursively pycaches)))) + (replace 'install + (lambda _ + (let* ((obin (string-append #$output "/bin")) + (olib (string-append #$output "/lib")) + (oshare (string-append #$output "/share"))) + (copy-recursively "linux-package/bin" obin) + (copy-recursively "linux-package/share" oshare) + (copy-recursively "linux-package/lib" olib))))))) (synopsis "Fast, featureful, GPU based terminal emulator") (description "Kitty is a fast and featureful GPU-based terminal emulator: @itemize |