packaging/aur/PKGBUILD (1702B)
1 # Maintainer: sqzer <110329244+sqzer-x@users.noreply.github.com>
2 pkgname=sqzass
3 pkgver=0.1.0
4 pkgrel=1
5 pkgdesc='A static site generator written in Rust'
6 arch=('x86_64' 'aarch64')
7 url='https://github.com/sqzer-x/sqzass'
8 license=('MIT')
9 # `ldd`가 말하는 그대로다: libc/libm(glibc)와 libgcc_s(libgcc). gcc-libs는
10 # 이제 그 둘을 포함한 열둘을 끌어오는 상위 패키지라, 그걸 적으면 이 바이너리가
11 # 열지도 않는 libasan·libgfortran 따위가 따라온다. 공식 Rust 패키지(ripgrep,
12 # fd, bat)도 전부 glibc + libgcc를 적는다.
13 depends=('glibc' 'libgcc')
14 makedepends=('cargo')
15 # makepkg의 lto 옵션은 CFLAGS에 -flto를 넣어 onig_sys의 C 오브젝트를 GCC LTO
16 # 비트코드로 만드는데, rustc의 링커(lld)는 그걸 못 읽어 onig_* 심볼이 전부
17 # undefined가 된다. C 의존이 있는 Rust 패키지의 표준 처방이다.
18 options=(!lto)
19 source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
20 sha256sums=('a68262010c3e4b8ada884edaa174025d1b605376be26673ea6d44c926cee3dc9')
21
22 prepare() {
23 cd "$pkgname-$pkgver"
24 export RUSTUP_TOOLCHAIN=stable
25 cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
26 }
27
28 build() {
29 cd "$pkgname-$pkgver"
30 export RUSTUP_TOOLCHAIN=stable
31 export CARGO_TARGET_DIR=target
32 cargo build --frozen --release --all-features
33 }
34
35 check() {
36 cd "$pkgname-$pkgver"
37 export RUSTUP_TOOLCHAIN=stable
38 cargo test --frozen --all-features
39 }
40
41 package() {
42 cd "$pkgname-$pkgver"
43 install -Dm0755 -t "$pkgdir/usr/bin/" "target/release/$pkgname"
44 install -Dm0644 -t "$pkgdir/usr/share/licenses/$pkgname/" LICENSE
45 install -Dm0644 -t "$pkgdir/usr/share/doc/$pkgname/" README.md
46 }