File PKGBUILD of Package numbat
# Maintainer: Sebastian Wiesner <sebastian@swsnr.de>
pkgname=numbat
pkgver=1.20.0
pkgrel=1
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=('517d4e5ecafe24fd53f44396bca4d94b62db513cd7c3c6c1101aa0f71cd30b85'
'1809411b71334e016f30b53f03b7461a7887556626612594d86db6f3c71a6080')
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
}