aports/community/mercurial/APKBUILD

135 lines
2.7 KiB
Text

# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mercurial
pkgver=7.0.2
pkgrel=0
pkgdesc="Scalable distributed SCM tool"
url="https://www.mercurial-scm.org/"
arch="all"
license="GPL-2.0-or-later"
depends="python3"
makedepends="
cargo-auditable
gettext-dev
py3-gpep517
py3-setuptools
py3-setuptools_scm
py3-wheel
python3-dev
zlib-dev
"
checkdepends="
bash
diffutils
py3-docutils
sqlite
unzip
xz
"
subpackages="
$pkgname-pyc
$pkgname-doc
$pkgname-lang
$pkgname-vim::noarch
$pkgname-zsh-completion
$pkgname-bash-completion
"
source="https://www.mercurial-scm.org/release/mercurial-$pkgver.tar.gz
blacklist.txt
"
options="net !check"
case "$CARCH" in
aarch64|armhf)
# around 400 of 919 tests time out
options="$options !check"
;;
esac
case "$CARCH" in
x86_64|armv7|armhf|aarch64|x86|ppc64le)
# Oxidation, limited by Rust
export HGWITHRUSTEXT=cpython
makedepends="$makedepends cargo"
subpackages="$subpackages $pkgname-chg"
;;
esac
# secfixes:
# 6.9.4-r0:
# - CVE-2025-2361
# 4.9-r0:
# - CVE-2019-3902
prepare() {
default_prepare
if [ "$HGWITHRUSTEXT" = "cpython" ]; then
cd rust
cargo fetch --target=$CTARGET --locked
cd chg
cargo fetch --target=$CTARGET --locked
fi
}
build() {
gpep517 build-wheel \
--wheel-dir .dist \
--output-fd 3 3>&1 >&2
if [ "$HGWITHRUSTEXT" = "cpython" ]; then
cd rust
cargo auditable build --release --frozen --manifest-path chg/Cargo.toml
fi
}
check() {
cd tests
python3 run-tests.py --blacklist="$srcdir"/blacklist.txt
}
package() {
python3 -m installer -d "$pkgdir" \
.dist/*.whl
install -Dm755 contrib/hgk contrib/hg-ssh hgeditor -t "$pkgdir"/usr/bin
local man
for man in doc/*.?; do
install -Dm644 "$man" \
"$pkgdir"/usr/share/man/man${man##*.}/${man##*/}
done
install -Dm644 contrib/vim/HGAnnotate.vim contrib/vim/hgtest.vim \
-t "$pkgdir"/usr/share/vim/vimfiles/syntax/
if [ "$HGWITHRUSTEXT" = "cpython" ]; then
install -Dm755 rust/chg/target/release/chg -t "$pkgdir"/usr/bin/
fi
}
chg() {
pkgdesc="Client for Mercurial command server with cHg extension"
depends="$pkgname=$pkgver-r$pkgrel"
amove usr/bin/chg
}
vim() {
depends=""
pkgdesc="Vim syntax for $pkgname"
install_if="vim $pkgname=$pkgver-r$pkgrel"
amove usr/share/vim
}
lang() {
pkgdesc="translations for $pkgname"
install_if="$pkgname=$pkgver-r$pkgrel lang"
amove usr/lib/python3*/site-packages/mercurial/locale
}
sha512sums="
73013a05c857108dcbf0a32bae2f9a60ce89aa4bc8a6eff74d3e1da2829c3491c76e01b49d41f6ef43261cda8b2e0cb4858695d00228f832147dbe37c5f57a6e mercurial-7.0.2.tar.gz
b24e1b79ca36ac1d78a5af4e35eb87581f209255838327a7d9315c17175d41bfa4b7f98c66be078cfa1e7d27a41c1a12bba265fa6d3d30edb4e2ba599fe0ed18 blacklist.txt
"