# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Pierre-Gilas MILLON <pgmillon@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libgit2
pkgver=1.9.0
pkgrel=2
pkgdesc="linkable library for Git"
url="https://libgit2.org/"
arch="all"
license="GPL-2.0-only WITH GCC-exception-2.0"
depends_dev="curl-dev libssh2-dev llhttp-dev"
makedepends_host="$depends_dev zlib-dev openssl-dev>3 pcre2-dev"
makedepends_build="python3 cmake samurai"
subpackages="$pkgname-dbg $pkgname-static $pkgname-dev $pkgname-tools $pkgname-tests::noarch"
options="net"
source="$pkgname-$pkgver.tar.gz::https://github.com/libgit2/libgit2/archive/v$pkgver.tar.gz
	fix-stdint-h.patch
	fix-util-tests.patch
	fix-version-h.patch
	no-online-test.patch
	"

# secfixes:
#   1.7.2-r0:
#     - CVE-2024-24577
#     - CVE-2024-24575
#   1.4.4-r0:
#     - CVE-2022-29187
#     - CVE-2022-24765
#   0.28.4-r0:
#     - CVE-2019-1348
#     - CVE-2019-1349
#     - CVE-2019-1350
#     - CVE-2019-1351
#     - CVE-2019-1352
#     - CVE-2019-1353
#     - CVE-2019-1354
#     - CVE-2019-1387
#   0.27.4-r0:
#     - CVE-2018-15501
#   0.27.3-r0:
#     - CVE-2018-10887
#     - CVE-2018-10888
#   0.25.1-r0:
#     - CVE-2016-10128
#     - CVE-2016-10129
#     - CVE-2016-10130
#   0.24.3-r0:
#     - CVE-2016-8568
#     - CVE-2016-8569

build() {
	CFLAGS="$CFLAGS -flto=auto" \
	cmake -B build-shared -G Ninja \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DUSE_HTTP_PARSER=llhttp \
		-DUSE_HTTPS=OpenSSL \
		-DREGEX_BACKEND=pcre2 \
		-DUSE_BUNDLED_ZLIB=OFF \
		-DUSE_SSH=ON
	cmake --build build-shared

	cmake -B build-static -G Ninja \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DUSE_HTTP_PARSER=llhttp \
		-DUSE_HTTPS=OpenSSL \
		-DREGEX_BACKEND=pcre2 \
		-DUSE_BUNDLED_ZLIB=OFF \
		-DBUILD_TESTS=OFF \
		-DBUILD_SHARED_LIBS=OFF
	cmake --build build-static
}

check() {
	cd "$builddir"/build-shared
	# Test 'offline' fails on s390x, aarch64 and ppc64le
	ctest -E 'offline|online'
}

package() {
	DESTDIR="$pkgdir" cmake --install build-static
	DESTDIR="$pkgdir" cmake --install build-shared

	mkdir -p "$pkgdir"/usr/src/$pkgname/
	cp -a tests "$pkgdir"/usr/src/$pkgname/tests
}

tools() {
	pkgdesc="$pkgdesc (tools)"

	amove usr/bin
}

tests() {
	pkgdesc="$pkgdesc (tests)"

	amove usr/src/$pkgname
}

sha512sums="
38547ace676b933a3146c2a00405fc6815063a7af923b9f2c09c536ec717be77d19c513b383939054913ce617d7917c100a5cbd3378d101fcdb5eacd1d14f687  libgit2-1.9.0.tar.gz
948f225d728c60f8f14c660f1389c9824eb028d070d6bce917d2e1687e153a74dcf422373dece70fbbf650b405b6ff4eea2c11f83d6347cf6bd55fe8f47bc991  fix-util-tests.patch
3fa89f4f1c9bd62e62a701744a921ab5fd874bbf90406caf994d665a77d2a3e93b3d6c5d36ede18c2f748e795045e0d98f9be264c2836dcf2991898d6fda10d7  fix-stdint-h.patch
8ece3137dfae126caa90964020b057659c7f3cd3a071b14422e40f0de55f91ae095cfccd2c5749097e2b4f93901aa02d63730362a9f15d016b368fd3d995a24f  fix-version-h.patch
584dba40340533a9dec103a0bb766c8b96e1f255edf3cd56ddcf86edd711fa9666dcff8bfbc077648d6a2246f9edf8948951f77250610fe8f1b8b459e9598956  no-online-test.patch
"
