# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=rizin
pkgver=0.6.3
pkgrel=2
pkgdesc="UNIX-like reverse engineering framework and command-line toolset"
url="https://rizin.re/"
# 32bit - 15/78 big	FAIL 0.26s (exit status 1)
# Could be integer overflow
# s390x:
# 49/75 pdb FAIL 0.97s (exit status 1)
# 55/75 serialize_analysis FAIL 0.03s (exit status 1)
options="!check" # tests are unstable
arch="all"
license="GPL-3.0-or-later AND LGPL-3.0-or-later"
makedepends="
	cmake
	meson
	py3-yaml
	capstone-dev
	file-dev
	libuv-dev
	linux-headers
	libzip-dev
	lz4-dev
	openssl-dev>3
	tree-sitter-dev
	xxhash-dev
	zlib-dev
	"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="$pkgname-$pkgver.tar.xz::https://github.com/rizinorg/rizin/releases/download/v$pkgver/rizin-src-v$pkgver.tar.xz
	0000-fix-build-with-newest-tree-sitter.patch
	0001-add-loongarch64-support-for-rizin.patch
	"
builddir="$srcdir/rizin-v$pkgver"

# secfixes:
#   0.6.1-r0:
#     - CVE-2023-40022
#   0.4.1-r0:
#     - CVE-2022-36043
#     - CVE-2022-36040
#     - CVE-2022-36041
#     - CVE-2022-36039
#     - CVE-2022-36044
#     - CVE-2022-36042

build() {
	CFLAGS="$CFLAGS -O2" \
	CXXFLAGS="$CXXFLAGS -O2" \
	CPPFLAGS="$CPPFLAGS -O2" \
	abuild-meson \
		-Db_lto=true \
		-Dpackager="alpinelinux" \
		-Dpackager_version="$pkgver-r$pkgrel" \
		-Duse_sys_capstone=enabled \
		-Duse_capstone_version="v4" \
		-Duse_sys_magic=enabled \
		-Duse_sys_libzip=enabled \
		-Duse_sys_zlib=enabled \
		-Duse_sys_lz4=enabled \
		-Duse_sys_xxhash=enabled \
		-Duse_sys_openssl=enabled \
		-Duse_sys_tree_sitter=enabled \
		. output
	meson compile -C output
}

check() {
	# Include the build rizin otherwise
	# unit/test_rzpipe.c will fail
	export PATH="$PATH:$builddir/output/binrz/rizin/"
	meson test --print-errorlogs -C output
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output
}

sha512sums="
031ae1c5b43237d55b3e48d825d4bd9cda16a4a84a47464eb1745a02265a1412e2864345595c0dca7f8ea0cb348fe9760ea424556ff6b915ac8014a7f410b03c  rizin-0.6.3.tar.xz
a46d0b9318de9a56df5b67d5610fc7fb26473e2e7ed7aa10245488bf566134151b1cf9cdf7e4229744190d4ab249e3ab8762e45235fe17798b53d27de30f0e73  0000-fix-build-with-newest-tree-sitter.patch
7501c706e124ea309e9cf568406fd7a7e4c5e1e0caa4dc3902141708897eb23894837be868ab12ee6d45d7ba0e919128e9d218c06baa355619a8f0f547df55ca  0001-add-loongarch64-support-for-rizin.patch
"
