# Contributor: Jakub Jirutka # Maintainer: Jakub Jirutka 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 "