aboutsummaryrefslogtreecommitdiffstats
path: root/community/wezterm/APKBUILD
blob: 9d19e6593fb799dce4e55c5dbacfa4e31db6be6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# Maintainer: Jakub Panek <me@panekj.dev>
pkgname=wezterm
pkgver=20220408.101518
_pkgver="20220408-101518-b908e2dd"
pkgrel=0
pkgdesc="GPU-accelerated cross-platform terminal emulator and multiplexer written in Rust"
url="https://wezfurlong.org/wezterm/"
# s390x, riscv64 limited by rust
# ppc64le limited by ring https://github.com/briansmith/ring/issues/389
# armv7 armhf x86 limited by 32-bit incompatibility
arch="x86_64 aarch64"
license="MIT"
options="net"
makedepends="
	cargo
	fontconfig-dev
	freetype-dev
	harfbuzz-dev
	libpng-dev
	libssh2-dev
	libx11-dev
	libxkbcommon-dev
	ncurses
	openssl-dev
	python3
	wayland-dev
	xcb-util-dev
	xcb-util-image-dev
	xcb-util-keysyms-dev
	xcb-util-wm-dev
	zlib-dev
	zstd-dev
	"
checkdepends="openssh"
subpackages="$pkgname-extra-terminfo:_extra_terminfo:noarch"
source="
	https://github.com/wez/wezterm/releases/download/$_pkgver/wezterm-$_pkgver-src.tar.gz
	link-against-system-libs.patch
	remove-update-checker.patch
	"
builddir="$srcdir/wezterm-$_pkgver"

export CARGO_PROFILE_RELEASE_LTO="true"
export CARGO_PROFILE_RELEASE_PANIC="abort"
export CARGO_PROFILE_RELEASE_OPT_LEVEL="s"
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1

prepare() {
	default_prepare

	# dont print malformed sshd config, this can possibly fail on builders but not on CI
	sed 's|std::fs::write|//std::fs::write|g' -i "$builddir"/wezterm-ssh/tests/sshd.rs
	cargo fetch --locked
}

build() {
	cargo build --release --frozen --manifest-path wezterm/Cargo.toml
	cargo build --release --frozen --manifest-path wezterm-gui/Cargo.toml
	cargo build --release --frozen --manifest-path wezterm-mux-server/Cargo.toml
	cargo build --release --frozen --manifest-path strip-ansi-escapes/Cargo.toml

	tic -x -o "$builddir"/terminfo "$builddir"/termwiz/data/wezterm.terminfo
}

check() {
	cargo test --frozen

	# required to unstuck CI
	killall -q sshd || true
}

package() {
	depends="$pkgname-extra-terminfo=$pkgver=r$pkgrel"

	cargo install --frozen --offline --root="$pkgdir"/usr --path "$builddir"/wezterm
	cargo install --frozen --offline --root="$pkgdir"/usr --path "$builddir"/wezterm-gui
	cargo install --frozen --offline --root="$pkgdir"/usr --path "$builddir"/wezterm-mux-server
	cargo install --frozen --offline --root="$pkgdir"/usr --path "$builddir"/strip-ansi-escapes

	install -Dm644 -t "$pkgdir"/usr/share/applications "$builddir"/assets/wezterm.desktop
	install -Dm644 -t "$pkgdir"/usr/share/metainfo "$builddir"/assets/wezterm.appdata.xml
	install -Dm644 -t "$pkgdir"/usr/share/licences/wezterm "$builddir"/LICENSE.md
	install -Dm644 -t "$pkgdir"/etc/profile.d "$builddir"/assets/shell-integration/wezterm.sh
	install -Dm644 "$builddir"/assets/icon/terminal.png "$pkgdir"/usr/share/pixmaps/wezterm.png
	install -Dm644 "$builddir"/assets/icon/wezterm-icon.svg "$pkgdir"/usr/share/pixmaps/wezterm.svg
	install -Dm644 "$builddir"/assets/icon/terminal.png "$pkgdir"/usr/share/icons/hicolor/128x128/apps/wezterm.png
	install -Dm644 "$builddir"/assets/icon/wezterm-icon.svg "$pkgdir"/usr/share/icons/hicolor/scalable/apps/wezterm.svg
	install -Dm644 "$builddir"/terminfo/w/wezterm "$pkgdir"/usr/share/terminfo/w/wezterm

	rm "$pkgdir"/usr/.crates*
}

_extra_terminfo() {
	pkgdesc="$pkgdesc (extra terminfo data)"
	depends="ncurses-terminfo-base"

	amove usr/share/terminfo/w/wezterm
}

sha512sums="
259cb19ffa94e07831aa158c4ded20c000f17f0a793a7414cb9e3ea8683c9d86af17d8ab9045e21216ba00aa421abbb2c1dfb357ae5faeb613cc65e399d0c356  wezterm-20220408-101518-b908e2dd-src.tar.gz
7a019035379fa315eba51836d46dc6cfd1c297183629ab24b4927a7380622f6c6c9650c0489776710f9f23ca7d6c63893f56480e1ae2a92a717cc8d2b09721cf  link-against-system-libs.patch
d44e7aa9c0e6848428be6d419a65d581018ece6cefd483c8657b1e4b167cf56f8aea6850112c6b97c302f39c04f22fe9d46526a92663b84bb6b86be3fa4e4bd2  remove-update-checker.patch
"