# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=exiv2
pkgver=0.28.5
pkgrel=1
pkgdesc="Exif and Iptc metadata manipulation library and tools."
url="https://exiv2.org/"
arch="all"
license="GPL-2.0-or-later"
makedepends="
	brotli-dev
	cmake
	expat-dev
	inih-inireader-dev
	samurai
	zlib-dev
	"
checkdepends="gtest-dev python3"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="https://github.com/Exiv2/exiv2/archive/refs/tags/v$pkgver/exiv2-v$pkgver.tar.gz"

# secfixes:
#   0.28.5-r0:
#     - CVE-2025-26623
#   0.28.3-r0:
#     - CVE-2024-39695
#   0.28.2-r0:
#     - CVE-2024-24826
#     - CVE-2024-25112
#   0.28.1-r0:
#     - CVE-2023-44398
#   0.27.5-r0:
#     - CVE-2021-32815
#     - CVE-2021-34334
#     - CVE-2021-34335
#     - CVE-2021-37615
#     - CVE-2021-37616
#     - CVE-2021-37618
#     - CVE-2021-37619
#     - CVE-2021-37620
#     - CVE-2021-37621
#     - CVE-2021-37622
#     - CVE-2021-37623
#   0.27.4-r0:
#     - CVE-2021-29464
#   0.27.3-r2:
#     - CVE-2021-29463
#     - CVE-2021-29470
#     - CVE-2021-29473
#     - CVE-2021-29623
#     - CVE-2021-32617
#   0.27.3-r1:
#     - CVE-2021-3482
#     - CVE-2021-29457
#     - CVE-2021-29458
#     - CVE-2021-31291
#   0.27.2-r6:
#     - CVE-2019-20421
#   0.27.2-r2:
#     - CVE-2019-17402
#   0.27.2-r0:
#     - CVE-2019-13108
#     - CVE-2019-13109
#     - CVE-2019-13110
#     - CVE-2019-13111
#     - CVE-2019-13112
#     - CVE-2019-13113
#     - CVE-2019-13114

prepare() {
	default_prepare

	# -fcf-protection=full is only usable on x86_64 and x86 since those
	# are the arches where Intel's CET Control-Flow Enforcement Technology
	# is available
	# musl doesn't support it at all though, so there is no point to add it
	sed -i 's| -fcf-protection||g' cmake/compilerFlags.cmake
}

build() {
	CFLAGS="$CFLAGS -flto=auto" \
	CXXFLAGS="$CXXFLAGS -flto=auto" \
	cmake -B build -G Ninja \
		-DCMAKE_BUILD_TYPE=None \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DEXIV2_BUILD_SAMPLES=OFF \
		-DEXIV2_ENABLE_BMFF=ON \
		-DEXIV2_ENABLE_WEBREADY=ON \
		-DEXIV2_ENABLE_BROTLI=ON \
		-DEXIV2_ENABLE_INIH=ON \
		-DEXIV2_BUILD_UNIT_TESTS="$(want_check && echo ON || echo OFF)"
	ninja -C build
}

check() {
	# FIXME parellel tests are broken: https://github.com/Exiv2/exiv2/pull/3205
	case "$CARCH" in
		# FIXME Uncaught exception: Overflow in addition
		arm*) ctest -j1 --test-dir build -E bugfixTests ;;
		*) ctest -j1 --test-dir build ;;
	esac
}

package() {
	DESTDIR="$pkgdir" ninja -C build install
}

sha512sums="
43c1d68255ee8df124b3093e1f4101d2f55fd8d6105bb6f20b148fe7d59472b895f0cba914e59f6d1581e84eee9d7033572821b80c16507e92abcb9a738daadc  exiv2-v0.28.5.tar.gz
"
