# Forked from Alpine to add systemd-service support
# HACK: pma#3452: this is now in temp/abuild AND extra-repos/systemd/abuild for
# initial systemd bringup. Until this is resolved, make changes to both
# APKBUILDs at once.

pkgname=abuild
pkgver=99993.12.0
_pkgver=3.12.0
pkgrel=4
pkgdesc="Script to build Alpine Packages"
url="https://git.alpinelinux.org/cgit/abuild/"
arch="all"
license="GPL-2.0-only"
depends="fakeroot scanelf openssl>3 apk-tools>=2.0.7-r1 libc-utils
	attr tar pkgconf patch lzip curl libcap-getcap"
makedepends="openssl-dev>3 zlib-dev pkgconfig scdoc"
checkdepends="kyua git"
install="$pkgname.pre-install $pkgname.pre-upgrade"
subpackages="
	apkbuild-cpan:cpan:noarch
	apkbuild-gem-resolver:gems:noarch
	apkbuild-pypi:pypi:noarch
	abuild-rootbld:_rootbld:noarch
	$pkgname-doc
	"
options="suid !check" # tests are SLOW in qemu
pkggroups="abuild"
source="
	https://gitlab.alpinelinux.org/alpine/abuild/-/archive/$_pkgver/abuild-$_pkgver.tar.gz
	0001-abuild-add-systemd-splitfunc.patch
	0002-abuild-add-warning-in-systemd-split-func-about-non-u.patch
	"
builddir="$srcdir/$pkgname-$_pkgver"

build() {
	make VERSION="$_pkgver-r$pkgrel"
}

check() {
	make check
}

package() {
	make install VERSION="$_pkgver-r$pkgrel" DESTDIR="$pkgdir"

	install -m 644 abuild.conf "$pkgdir"/etc/abuild.conf

	case "$CARCH" in
	x86*|ppc64le)
		# binutils only supports it here
		cat >>"$pkgdir"/usr/share/abuild/default.conf <<-EOF

		# binutils ld.bfd supports this on this architecture; default to it
		export RUSTFLAGS="\$RUSTFLAGS -Clink-arg=-Wl,-z,pack-relative-relocs"
		export LDFLAGS="\$LDFLAGS -Wl,-z,pack-relative-relocs"
		EOF
	esac

	case "$CARCH" in
	x86_64)
		# https://lists.alpinelinux.org/~alpine/devel/%3C1628515011.zujvcn248v.none%40localhost%3E
		# note that this is x86-exclusive. on other architectures, this is pretty much always bad
		# https://github.com/rust-lang/rust/pull/106380
		cat >>"$pkgdir"/usr/share/abuild/default.conf <<-EOF

		# -fno-plt has very slight improvements to general code size and speed on x86-only,
		# for the common system dynamic linking case
		export CFLAGS="\$CFLAGS -fno-plt"
		export CXXFLAGS="\$CXXFLAGS -fno-plt"
		EOF
		;;
	esac

	install -d -m 775 -g abuild "$pkgdir"/var/cache/distfiles
}

cpan() {
	pkgdesc="Script to generate perl APKBUILD from CPAN"
	depends="perl perl-libwww perl-json perl-module-build perl-module-build-tiny
		perl-lwp-protocol-https"

	amove usr/bin/apkbuild-cpan
}

gems() {
	pkgdesc="APKBUILD dependency resolver for RubyGems"
	depends="ruby ruby-augeas"

	amove usr/bin/apkbuild-gem-resolver
}

pypi() {
	pkgdesc="Script to generate python3 APKBUILD from PYPI"
	depends="perl perl-libwww perl-json perl-module-build-tiny perl-lwp-protocol-https
	perl-ipc-system-simple"

	amove usr/bin/apkbuild-pypi
}

_rootbld() {
	pkgdesc="Build packages in chroot"
	depends="abuild bubblewrap cmd:envsubst git"
	mkdir -p "$subpkgdir"
}

sha512sums="
00fac67aa96a83f33406dde60bd9526bfa5fdff690b84dbe867b6ed197f147b2afafcdfbda900c005e00a64a42bcb98ca425ffc8bf2158b9540cbb67d935577d  abuild-3.12.0.tar.gz
52cc5857b3c93bd4595de1d06c3c600b88871c68f7a1ea51e10d720ddd9c8fb7f0f63cd2f4fe280c0d9adaf607de8b858f4add3e46b1a5a28cc6c711359f6c60  0001-abuild-add-systemd-splitfunc.patch
3782341dac814ecbcb7d2b4242d85f03ca2e4bf9eeb3b1e9524b2c434b05c864f5a4b5b8abc4031085e7e943e90780fe07b1e99d4cfadf0695340ad321647cac  0002-abuild-add-warning-in-systemd-split-func-about-non-u.patch
"
