blob: 10204388a243a1c8187704453458a04e9f8d11bc (
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=atuin
pkgver=12.0.0
pkgrel=0
# Keep in sync with sqlx version in Cargo.lock.
_sqlx_ver=0.6.2
pkgdesc="Magical shell history"
url="https://github.com/ellie/atuin"
# armhf: build getting stuck on CI
# riscv64, s390x: blocked by rust/cargo
arch="all !armhf !riscv64 !s390x"
license="MIT"
makedepends="
cargo
clang-dev
jq
libsodium-dev
openssl-dev
sqlite-dev
"
pkgusers="atuin"
install="
$pkgname-server.pre-install
$pkgname.post-install"
subpackages="
$pkgname-sync
$pkgname-server
$pkgname-server-openrc
$pkgname-zsh-plugin:_zsh_plugin:noarch
$pkgname-bash-completion
$pkgname-fish-completion
$pkgname-zsh-completion
"
source="https://github.com/ellie/atuin/archive/v$pkgver/atuin-$pkgver.tar.gz
https://github.com/launchbadge/sqlx/archive/v$_sqlx_ver/sqlx-$_sqlx_ver.tar.gz
zsh-dont-bind-up-arrow.patch
use-system-tls.patch
sqlx-use-system-libsqlite.patch
server-log-without-ansi-style.patch
cargo-lock.patch
$pkgname.initd
$pkgname.confd
$pkgname.logrotate
"
options="!check" # FIXME: some tests are broken
export SODIUM_USE_PKG_CONFIG=1
prepare() {
local sqlx_ver
sqlx_ver=$(cargo metadata --format-version 1 \
| jq -er '.packages[] | select(.name=="sqlx") | .version') \
|| { error 'Unable to find sqlx version in Cargo.lock'; return 1; }
if [ "$_sqlx_ver" != "$sqlx_ver" ]; then
error "Bump _sqlx_ver in APKBUILD to: $sqlx_ver"
return 1
fi
mkdir -p vendor
mv "$srcdir"/sqlx-$_sqlx_ver vendor/sqlx
# Build with sqlx which we patched to remove bundled libsqlite3.
# See https://github.com/launchbadge/sqlx/issues/191.
cat >> Cargo.toml <<-EOF
[patch.crates-io]
sqlx = { path = "./vendor/sqlx" }
sqlx-core = { path = "./vendor/sqlx/sqlx-core" }
EOF
default_prepare
cargo fetch --locked
}
build() {
msg2 'Building server'
cargo build --frozen --release --no-default-features --features server
mv target/release/atuin target/release/atuin-server
msg2 'Building client with sync'
cargo build --frozen --release --no-default-features --features client,sync
mv target/release/atuin target/release/atuin-sync
msg2 'Building client without sync'
cargo build --frozen --release --no-default-features --features client
mkdir -p comp
local shell; for shell in bash fish zsh; do
./target/release/atuin gen-completions -s $shell > comp/atuin.$shell
done
}
check() {
cargo test --workspace --frozen --features client,sync,server
}
package() {
pkgdesc="$pkgdesc - offline only client"
provider_priority=100 # highest
install -D -m755 target/release/atuin -t "$pkgdir"/usr/bin/
install -D -m755 target/release/atuin-server -t "$pkgdir"/usr/bin/
install -D -m644 comp/atuin.bash "$pkgdir"/usr/share/bash-completion/completions/atuin
install -D -m644 comp/atuin.fish "$pkgdir"/usr/share/fish/completions/atuin.fish
install -D -m644 comp/atuin.zsh "$pkgdir"/usr/share/zsh/site-functions/_atuin
install -d -m755 -o atuin "$pkgdir"/etc/$pkgname
install -D -m640 -o atuin atuin-server/server.toml -t "$pkgdir"/etc/$pkgname/
install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
install -D -m644 "$srcdir"/$pkgname.logrotate "$pkgdir"/etc/logrotate.d/$pkgname
}
sync() {
pkgdesc="$pkgdesc - client with history sync"
provides="$pkgname=$pkgver-r$pkgrel"
provider_priority=10 # lowest
install -D -m755 "$builddir"/target/release/atuin-sync "$subpkgdir"/usr/bin/atuin
}
server() {
pkgdesc="$pkgdesc - sync server"
amove etc/atuin/server.toml
amove usr/bin/atuin-server
}
openrc() {
default_openrc
install_if="openrc $pkgname-server=$pkgver-r$pkgrel"
}
_zsh_plugin() {
pkgdesc="$pkgdesc (Zsh plugin)"
depends="atuin=$pkgver-r$pkgrel"
install -D -m644 "$builddir"/src/shell/atuin.zsh \
"$subpkgdir"/usr/share/zsh/plugins/$pkgname/$pkgname.plugin.zsh
}
sha512sums="
dabc7ed45426af218d8bdb439e9a7a608f8f8dc7d442195fba323c5c77aa4ca1f95f8325874c2d9988ee083b03b2a6fc31aa1825819ebb3e5525564371f32c6c atuin-12.0.0.tar.gz
d5bab0f4ab6843bd8ab3884d0bb4d4166aa0c82b97edcc6134c94fad076d50bf43d24182aa37c23e0e82ea5e78a7db4ef7b6f878e3112b7224865e0ff98d2716 sqlx-0.6.2.tar.gz
3f34e79c81d3f29df7bd0bcb06fee8c3cf325a7e96bdfb0b5080cc1078972ce2092795a6918b277483221c7d29dd99221bd32012172f87ee3bde5404315ade64 zsh-dont-bind-up-arrow.patch
cc7a04c705576c0ee8b53667c4d758752803b13cd55b6a4832351fd447923d0f8b3758eb0f6941eeda7c6bc9994cfa46ee0048a869f671f36da512e5c1eaaf95 use-system-tls.patch
56dad4a6f97a495fa85c2f9ad3bd6a1b684f9a5950079dd57d32e8bde85f7ac14d5efff736ac959c72494d3562d5249c6ef57540f902815bb822eccffc276e93 sqlx-use-system-libsqlite.patch
32ba0e7b89b9634ccb430f6fcfeb9a51d2af8c9427ec99e3d5d5abe193efa005c4456588915749cbb516a3a9925fb8f671ae197e23eb4e870c76cfc8097cb8f6 server-log-without-ansi-style.patch
3ed9b77154771450f67b87e3350fb846244e08ce5ad453af83aaf6faf465b7fffdefc9d3a3cb4c2ded7305d9069da4cfa5e71a92a43b0bf7f39b7060685cb5af cargo-lock.patch
c3f4e82c7485030bc558821940a46899be6ba1eb0859fa6eb32e4d928f6b455ddeddcc5778a84e0eb9efc1d518f933e4a0d68df195e6a9889ec7bb99da5245c2 atuin.initd
5f1631f0b06f19733025ad3efec6b44ef13937cd8f2f9b7e3cc8c0ba53495850c06fb8c5377d1d003dda00e2d11835056d3fc1b3ba8ecefb575e61a83159f33e atuin.confd
30946fe22ede072d76331762c862382f03a35735e5741c46367320a116ac285615ae757e20a9cf7adceb8ba24b827581992fa5b7f84e595cd862a3c2ae69dbe0 atuin.logrotate
"
|