File PKGBUILD of Package numbat
# Maintainer: Sebastian Wiesner <sebastian@swsnr.de>
pkgname=numbat
pkgver=1.16.0
pkgrel=2
pkgdesc='A statically typed programming language for scientific computations'
arch=('x86_64')
url="https://numbat.dev"
license=('MIT OR Apache-2.0')
depends=()
makedepends=('rust' 'cargo' 'git')
source=(
"git+https://github.com/sharkdp/${pkgname}.git#tag=v${pkgver}"
"vendor.tar.zst"
)
# Disable LTO due to link failures with ring, see https://gitlab.archlinux.org/archlinux/packaging/packages/pacman/-/issues/20#note_172172
options=("!lto")
sha256sums=('ee8fca5185fe06481f6f7095d9a4bf62899bc1b90485bc1e71a90b278fb3e2c6'
'ce961461077d83535a5fca0b05b40b928e964dd32c503cc58d6b452cdb17a1e5')
prepare() {
cd "${pkgname}" || return 1
mkdir -p .cargo
cat > .cargo/config.toml <<EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "../vendor"
EOF
}
build() {
cd "${pkgname}" || return 1
cargo build --release --frozen
}
package() {
install -Dm755 -t "${pkgdir}/usr/bin" "${srcdir}/${pkgname}/target/release/${pkgname}"
# Numbat recommends to install modules explicitly, for source lookup in error messages
mkdir -pm755 "${pkgdir}/usr/share/${pkgname}"
cp -Tr "${srcdir}/${pkgname}/numbat/modules" "${pkgdir}/usr/share/${pkgname}/modules"
# Desktop files and icons
install -Dm644 -t "${pkgdir}/usr/share/applications" "${srcdir}/${pkgname}/assets/numbat.desktop"
install -Dm644 -t "${pkgdir}/usr/share/icons/hicolor/scalable/apps/" "${srcdir}/${pkgname}/assets/numbat.svg"
for size in 16 22 24 32 48 64 128 256 512; do
install -Dm644 "${srcdir}/${pkgname}/assets/numbat-${size}x${size}.png" \
"${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/numbat.png"
done
}