Files
LFS-PKGBUILDs/x11-terms/kitty-0.44.0.PKGBUILD

105 lines
3.4 KiB
Bash

pkgname=kitty
pkgbase=kitty
pkgver=0.44.0
pkgdesc="A modern, hackable, featureful, OpenGL-based terminal emulator"
arch=('x86_64')
homepage="https://github.com/kovidgoyal/kitty"
license=('GPL-3.0-only')
depends=(
'cairo'
'dbus'
'freetype'
'fontconfig'
'harfbuzz'
'lcms'
'libpng'
'libxkbcommon'
'openssl'
'python3'
'wayland'
'xxhash'
'zlib'
)
makedepends=(
'go'
'simde'
'symbols-nerd-font'
'wayland-protocols'
)
sources=("${pkgbase}-${pkgver}.tar.xz")
urls=("https://github.com/kovidgoyal/${pkgbase}/releases/download/v${pkgver}/${sources[0]}")
md5sums=("c3c31e13371c08166cc2bc4ea34cdc74")
src_prepare() {
tar -xf ${distdir}/${sources[0]} --strip-components=1
# sed unfortunately feels easier on maintenance than patches here
local sedargs=(
-e "/num_workers =/s/=.*/= ${PARALLEL_JOBS}/"
-e "s/cflags.append.*-O3.*/pass/" -e 's/-O3//'
-e "s/cflags.append(fortify_source)/pass/" # use toolchain's _
-e "s/ld_flags.append('-[sw]')/pass/"
)
# kitty is often popular on wayland-only setups, try to allow this
sedargs+=( -e '/gl_libs =/s/=.*/= []/' ) #857918
sedargs+=( -e "s/'x11 wayland'/'wayland'/" )
sed -i setup.py "${sedargs[@]}"
local skiptests=(
# broken with nspawn defaults, skip for convenience (bug #954176)
kitty_tests/crypto.py
# relies on 'who' command which doesn't detect users with pid-sandbox
kitty_tests/utmp.py
# may fail/hang depending on environment and shell initialization
kitty_tests/{shell_integration,ssh}.py
# relies on /proc/self/fd and gets confused when ran from here
tools/utils/tpmfile_test.go
)
rm "${skiptests[@]}"
}
src_build() {
export CGO_CPPFLAGS="${CPPFLAGS}"
export CGO_CFLAGS="${CFLAGS}"
export CGO_CXXFLAGS="${CXXFLAGS}"
export CGO_LDFLAGS="${LDFLAGS}"
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw -p=${PARALLEL_JOBS} -v -x -buildvcs=false"
local conf=(
--disable-link-time-optimization
--ignore-compiler-warnings
--shell-integration="enabled no-sudo"
--update-check-interval=0
--verbose
)
python3 setup.py linux-package "${conf[@]}"
rm -r linux-package/share/terminfo
mv -v linux-package/share/doc/{${pkgname},${pkgname}-${pkgver}}
linux-package/bin/kitty +runpy \
'from kitty.config import *; print(commented_out_default_config())' \
> linux-package/share/doc/${pkgname}-${pkgver}/kitty.conf
# generate shell completions, shell-integration/ has some "old " pre-gen
# ones that currently miss things (no bash, no kitten for zsh, etc...)
linux-package/bin/kitten __complete__ setup bash > "${TEMPDIR}"/kitty
linux-package/bin/kitten __complete__ setup fish > "${TEMPDIR}"/kitty.fish
linux-package/bin/kitten __complete__ setup zsh > "${TEMPDIR}"/_kitty
}
src_install() {
mv -v linux-package "${pkgdir}/usr"
ln -svrf "${pkgdir}/usr/share/fonts/symbols-nerd-font/SymbolsNerdFontMono-Regular.ttf" \
"${pkgdir}/usr/lib/kitty/fonts/SymbolsNerdFontMono-Regular.ttf"
install -vDm644 "${TEMPDIR}/kitty" "${pkgdir}"/usr/share/bash-completion/completions/kitty
install -vDm644 "${TEMPDIR}/kitty.fish" "${pkgdir}"/usr/share/fish/vendor_completions.d/kitty.fish
install -vDm644 "${TEMPDIR}/_kitty" "${pkgdir}"/usr/share/zsh/site-functions/_kitty
for _f in edit-in-kitty clone-in-kitty kitten; do
ln -sv kitty "${pkgdir}"/usr/share/bash-completion/completions/${_f}
done
}
# vim:ft=sh syn=sh et sw=2: