Thank you, but I had to create a patch so as not to compile the
documentation, since it depends on several Python bookstores.
Attached the file with the final definition and the patch
(define-module (pantheon packages terminals)
#:use-module ((guix licenses) #:prefix license:)
#:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages assembly)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages dlang)
#:use-module (gnu packages digest)
#:use-module (gnu packages docbook)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi)
#: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)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-build)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages golang-xyz)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux)
#:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages ssh)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (ice-9 match)
#:use-module (srfi srfi-26))
;; via gnu/packages/terminals.scm
;; https://github.com/zzkt/guix/blob/endless/channel/zzkt/packages/kitty.scm
(define-public go-1.22
(package
(inherit go-1.21)
(name "go")
(version "1.22.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/golang/go")
(commit (string-append "go" version))))
(file-name (git-file-name name version))
(sha256
(base32 "00j6sn2zysk5pdzxw1wfdi31wggzw1h1026ah3x3mi85dwsijhjs"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.21)
((#:phases phases)
#~(modify-phases #$phases
( delete 'check)
(replace 'unpatch-perl-shebangs
(lambda _
;; Avoid inclusion of perl in closure by rewriting references
;; to perl input in sourcecode generators and test scripts
(substitute* (find-files "src" "\\.pl$")
(("^#!.*")
"#!/usr/bin/env perl\n"))))))))
(native-inputs
;; Go 1.22 and later requires Go 1.20 (min. 1.20.6, which we don't have)
;; as the bootstrap toolchain.
(alist-replace "go"
(list go-1.21)
(package-native-inputs go-1.21)))))
(define-public go-github-com-altree-bigfloat
(package
(name "go-github-com-altree-bigfloat")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ALTree/bigfloat")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1jvqg5w4azwqv0ranir6vhlh6403pn6043jqbwsldan4vj6n5xmh"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/ALTree/bigfloat"))
(native-inputs
(list go-1.22))
(home-page "https://github.com/ALTree/bigfloat")
(synopsis "Example")
(description
"Package bigfloat provides arbitrary-precision natural logarithm and
exponentiation for the standard library's @@code{big.Float} type.")
(license license:expat)))
(define-public go-github-com-bmatcuk-doublestar-v4
(package
(name "go-github-com-bmatcuk-doublestar-v4")
(version "4.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bmatcuk/doublestar")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "12rf4a9isgg2nh927gikgbmyaynaqp4kjahgscb4qnr04m3vpr41"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/bmatcuk/doublestar/v4"))
(home-page "https://github.com/bmatcuk/doublestar")
(synopsis "doublestar")
(description
"Path pattern matching and globbing supporting @@code{doublestar}
(@@code{**})
patterns.")
(license license:expat)))
(define-public go-github-com-seancfoley-bintree
(package
(name "go-github-com-seancfoley-bintree")
(version "1.2.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/seancfoley/bintree")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "17faiyfbf8x688ij40d3g80s2z2m5h5w23j92mf2k0ws5g6fi9vx"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.18
#:import-path "github.com/seancfoley/bintree/tree"
#:unpack-path "github.com/seancfoley/bintree"))
(home-page "https://github.com/seancfoley/bintree")
(synopsis "bintree")
(description "Binary trees and tries")
(license license:asl2.0)))
(define-public go-github-com-seancfoley-ipaddress-go-ipaddr
(package
(name "go-github-com-seancfoley-ipaddress-go-ipaddr")
(version "1.5.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/seancfoley/ipaddress-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "03yz5pb1mgj25i4n90sfqnmwr88872s096pna178g8zh90r55628"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.18
#:import-path "github.com/seancfoley/ipaddress-go/ipaddr"
#:unpack-path "github.com/seancfoley/ipaddress-go"))
(propagated-inputs `(("go-github-com-seancfoley-bintree"
,go-github-com-seancfoley-bintree)))
(home-page "https://github.com/seancfoley/ipaddress-go")
(synopsis #f)
(description
"IPAddress is a library for handling IP addresses and subnets, both IPv4
and
IPv6.")
(license (list license:asl2.0 license:asl2.0))))
(define-public go-github-com-rwcarlsen-goexif-exif
(package
(name "go-github-com-rwcarlsen-goexif-exif")
(version "0.0.0-20190401172101-9e8deecbddbd")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rwcarlsen/goexif")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "1drqhzplg72lvrf3qmb9awbggnjqp23hwn2pgvksi3spv17kc9h2"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/rwcarlsen/goexif/exif"
#:unpack-path "github.com/rwcarlsen/goexif"))
(home-page "https://github.com/rwcarlsen/goexif")
(synopsis "goexif")
(description
"This package provides decoding of basic exif and tiff encoded data.
Still in
alpha - no guarantees. Suggestions and pull requests are welcome.
Functionality is split into two packages - \"exif\" and \"tiff\" The exif
package
depends on the tiff package.")
(license license:bsd-2)))
(define-public go-github-com-rwcarlsen-goexif-tiff
(package
(name "go-github-com-rwcarlsen-goexif-tiff")
(version "0.0.0-20190401172101-9e8deecbddbd")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rwcarlsen/goexif")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "1drqhzplg72lvrf3qmb9awbggnjqp23hwn2pgvksi3spv17kc9h2"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/rwcarlsen/goexif/tiff"
#:unpack-path "github.com/rwcarlsen/goexif"))
(home-page "https://github.com/rwcarlsen/goexif")
(synopsis "goexif")
(description
"This package provides decoding of basic exif and tiff encoded data.
Still in
alpha - no guarantees. Suggestions and pull requests are welcome.
Functionality is split into two packages - \"exif\" and \"tiff\" The exif
package
depends on the tiff package.")
(license license:bsd-2)))
(define-public go-github-com-edwvee-exiffix
(package
(name "go-github-com-edwvee-exiffix")
(version "0.0.0-20240229113213-0dbb146775be")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/edwvee/exiffix")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32 "1i4p1xnbm04ih2735h58n1p1j6cjmr6d3bfx41862ki0qc12lfn4"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/edwvee/exiffix"))
(propagated-inputs
(list go-golang-org-x-image
go-github-com-disintegration-imaging
go-github-com-rwcarlsen-goexif-exif
go-github-com-rwcarlsen-goexif-tiff))
(home-page "https://github.com/edwvee/exiffix")
(synopsis "Exiffix")
(description
"Exiffix is a one function golang library made to be a replacement for
image.Decode to handle orientation stored in EXIF data.")
(license license:expat)))
(define-public go-github-com-kovidgoyal-imaging
(package
(name "go-github-com-kovidgoyal-imaging")
(version "1.6.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kovidgoyal/imaging")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "123hfgjzp2401l8rfb3h2agyijj03w2a2sdxcziybmplw4r8pbi3"))))
(build-system go-build-system)
(arguments
(list
#:go go-1.21
#:import-path "github.com/kovidgoyal/imaging"))
(propagated-inputs `(("go-golang-org-x-image" ,go-golang-org-x-image)))
(home-page "https://github.com/kovidgoyal/imaging")
(synopsis "Imaging")
(description
"Package imaging provides basic image processing functions (resize,
rotate, crop,
brightness/contrast adjustments, etc.).")
(license license:expat)))
(define-public go-github-com-klauspost-cpuid-v2
(package
(name "go-github-com-klauspost-cpuid-v2")
(version "2.2.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/klauspost/cpuid")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0i1y5zgcj350l3idqfxjkcs18ii5w315xjmmabqbqrx27sn8fqh1"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/klauspost/cpuid/v2"))
(propagated-inputs `(("go-golang-org-x-sys" ,go-golang-org-x-sys)))
(home-page "https://github.com/klauspost/cpuid")
(synopsis "cpuid")
(description
"Package cpuid provides information about the CPU running the current
program.")
(license license:expat)))
(define-public go-github-com-zeebo-assert
(package
(name "go-github-com-zeebo-assert")
(version "1.3.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zeebo/assert")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0xfklg04ic4xl5q7xy913jzvn2v9bxmrsnm4lyjqznninysgs9xb"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/zeebo/assert"))
(home-page "https://github.com/zeebo/assert")
(synopsis "package assert")
(description
"See the api docs. There's not a lot of surface area, and that's the
goal.")
(license license:cc0)))
(define-public go-github-com-zeebo-xxh3
(package
(name "go-github-com-zeebo-xxh3")
(version "1.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zeebo/xxh3")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1gy666r5v1d1n2cfig9plhyp7z09f06k6mr5lrf0mk6psk6bnwgi"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/zeebo/xxh3"))
(propagated-inputs `(("go-github-com-zeebo-assert"
,go-github-com-zeebo-assert)
("go-github-com-klauspost-cpuid-v2"
,go-github-com-klauspost-cpuid-v2)))
(home-page "https://github.com/zeebo/xxh3")
(synopsis "XXH3")
(description
"This package is a port of the
@@url{https://github.com/Cyan4973/@code{xxHash,xxh3}} library to Go.")
(license license:bsd-2)))
(define-public kitty-next
(let ((commit "b3cc5aed30c8e83715fa955e9d3183a0e433a9c3")
(revision "0"))
(package
(name "kitty-next")
(version (git-version "0.34.1" revision commit))
(home-page "https://sw.kovidgoyal.net/kitty/")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kovidgoyal/kitty")
(commit commit)
(recursive? #t)))
(file-name (git-file-name name version))
(patches
(parameterize
((%patch-path
(map (lambda (directory)
(string-append directory "/pantheon/packages/patches"))
%load-path)))
(search-patches "kitty-0001-no-build-man-pages.patch")))
(sha256
(base32 "0n841kyhbm7icbby575blx75ykac9zj0a3jjy35ymkhqnz5dayq1"))
(modules '((guix build utils)))
(snippet
'(begin
;; patch needed as sphinx-build is used as a python script
;; whereas the guix package uses a bash script launching the
;; python script
(substitute* "docs/conf.py"
(("(from kitty.constants import str_version)" kitty-imp)
(string-append "sys.path.append(\"..\")\n" kitty-imp)))
(substitute* "docs/Makefile"
(("^SPHINXBUILD[[:space:]]+= (python3.*)$")
"SPHINXBUILD = sphinx-build\n"))
#t))))
(build-system go-build-system)
(propagated-inputs
(list go-golang-org-x-sys
go-golang-org-x-exp-2023
go-github-com-altree-bigfloat
go-github-com-bmatcuk-doublestar-v4
go-github-com-seancfoley-ipaddress-go-ipaddr
go-github-com-dhowett-go-plist
go-github-com-shirou-gopsutil-v3
go-github-com-google-uuid
go-github-com-edwvee-exiffix
go-github-com-kovidgoyal-imaging
go-golang-org-x-image
go-github-com-alecthomas-chroma-v2
;; go-github-com-alecthomas-chroma-v2-13
go-github-com-dlclark-regexp2
go-github-com-zeebo-xxh3))
(native-inputs
(list dbus
mesa
libxcursor
libxi
libxinerama
libxkbcommon
libxrandr
ncurses ;; for tic command
pkg-config
python-sphinx
wayland-protocols
go-1.22
simde
strace
coreutils
git))
(inputs
(list fontconfig
freetype
harfbuzz
lcms
libcanberra
libpng
python-pygments
python-wrapper
wayland
openssl
xxhash
zlib))
(arguments
(list
#:go go-1.22
#:import-path "kitty"
#:phases
#~(begin
(use-modules (oop goops)
(ice-9 ftw)
(guix build utils))
(modify-phases %standard-phases
(delete 'configure) ;no configure script
(add-after 'setup-go-environment 'realise-links
(lambda _
(define (read-base-link file)
(if (equal? (stat:type (lstat file)) 'symlink)
(read-base-link (let ((link-result (readlink file)))
(if (and (not (eqv? (string-length
link-result) 0))
(equal? (string-ref
link-result 0) #\/))
link-result
(string-append (dirname file) "/"
link-result))))
file))
(define (realise dir)
(for-each
(lambda (file-name)
(let* ((path (string-append dir "/" file-name))
(path-type (stat:type (lstat path))))
(if (equal? path-type 'symlink)
(let* ((base (read-base-link path))
(base-type (stat:type (stat base))))
(display "SYMLINK ")(display path)(display " ->
")(display base)(display base-type)(newline)
(if (equal? base-type 'regular)
(begin
(delete-file path)
(copy-file base path))
(when (equal? base-type 'directory)
(begin
(delete-file path)
(copy-recursively base path)
(realise path)))))
(when (equal? path-type 'directory)
(realise path)))))
(filter (lambda (name)
(not (member name '("." ".."))))
(scandir dir))))
(realise (string-append (getcwd)
"/src/github.com/alecthomas/chroma/v2"))
; (invoke "ls" "-la" (string-append (getcwd)
"/src/github.com/alecthomas/chroma/v2/styles"))
; (error "")
))
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
;; The "kitty" sub-directory must be writable prior to
;; configuration (e.g., un-setting updates).
(newline)
; (display inputs)
(let ((chroma (assoc-ref inputs
"go-github-com-alecthomas-chroma-v2")))
(display (scandir (string-append chroma ; "/src/styles"
"/src/github.com/alecthomas/chroma/v2"))))
(newline)
(chdir "src/kitty")
(for-each make-file-writable (find-files "kitty"))
(invoke "python3" "setup.py" "linux-package"
;; Do not phone home.
"--update-check-interval=0"
;; "--skip-building-kitten"
;; 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")))))
(delete 'check)
;; (replace 'check
;; (lambda* (#:key tests? #:allow-other-keys)
;; (when tests?
;; ;; Fix "cannot find kitty executable" error when running
;; ;; tests.
;; (invoke "ls" "-l")
;; (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))))
(delete 'install-license-files)
(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
@item Offloads rendering to the GPU for lower system load and buttery smooth
scrolling. Uses threaded rendering to minimize input latency.
@item Supports all modern terminal features: graphics (images), unicode,
true-color, OpenType ligatures, mouse protocol, focus tracking, bracketed
paste and several new terminal protocol extensions.
@item Supports tiling multiple terminal windows side by side in different
layouts without needing to use an extra program like tmux.
@item Can be controlled from scripts or the shell prompt, even over SSH.
@item Has a framework for Kittens, small terminal programs that can be used to
extend kitty's functionality. For example, they are used for Unicode input,
hints, and side-by-side diff.
@item Supports startup sessions which allow you to specify the window/tab
layout, working directories and programs to run on startup.
@item Allows you to open the scrollback buffer in a separate window using
arbitrary programs of your choice. This is useful for browsing the history
comfortably in a pager or editor.
@end itemize")
(license license:gpl3+))))
From 6c314ab4acfe208dc3303debdb6ab1ed6a73436c Mon Sep 17 00:00:00 2001
From: arkhan <ark...@riseup.net>
Date: Wed, 22 May 2024 20:28:16 -0500
Subject: [PATCH] no build man pages
---
setup.py | 19 +------------------
1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/setup.py b/setup.py
index 61352c2..560596e 100755
--- a/setup.py
+++ b/setup.py
@@ -1316,24 +1316,7 @@ def create_linux_bundle_gunk(ddir: str, args: Options) -> None:
base = Path(ddir)
in_src_launcher = base / (f'{libdir_name}/kitty/kitty/launcher/kitty')
launcher = base / 'bin/kitty'
- skip_docs = False
- if not os.path.exists('docs/_build/html'):
- kitten_exe = os.path.join(os.path.dirname(str(launcher)), 'kitten')
- if os.path.exists(kitten_exe):
- os.environ['KITTEN_EXE_FOR_DOCS'] = kitten_exe
- make = 'gmake' if is_freebsd else 'make'
- run_tool([make, 'docs'])
- else:
- if args.skip_building_kitten:
- skip_docs = True
- print('WARNING: You have chosen to skip building kitten.'
- ' This means docs could not be generated and will not be included in the linux package.'
- ' You should build kitten and then re-run this build.', file=sys.stderr)
- else:
- raise SystemExit(f'kitten binary not found at: {kitten_exe}')
- if not skip_docs:
- copy_man_pages(ddir)
- copy_html_docs(ddir)
+
for (icdir, ext) in {'256x256': 'png', 'scalable': 'svg'}.items():
icdir = os.path.join(ddir, 'share', 'icons', 'hicolor', icdir, 'apps')
safe_makedirs(icdir)
--
2.41.0