# Maintainer: nezu@nezu.cc
pkgname=ida-pro-patched
_pkgname=ida-pro
pkgver=9.4.260714
pkgrel=2
pkgdesc="Hex-Rays IDA Pro"
arch=('x86_64')
url="https://hex-rays.com/ida-pro/"
license=('custom')

makedepends=('fakechroot' 'nodejs')
depends=(
	'libgl'
	'libx11'
	'libxext'
	'libxrender'
	'glib2'
	'qt6-base'
	'python-rpyc'
)
provides=("$_pkgname")
conflicts=("$_pkgname")

options=('!strip')
_name="$_pkgname-$pkgver"
_release_url="https://vaclive.party/software/$_pkgname/releases/download/$pkgver"
source=(
	"$_name.run::$_release_url/ida-pro_94_x64linux.run"
	"$_name.run.sig::$_release_url/ida-pro_94_x64linux.run.sig"
	"$_release_url/keygen.js"
	"$_release_url/keygen.js.sig"
	"com.hex-rays.ida.desktop"
	"com.hex-rays.hvui.desktop"
	"qwingraph.desktop"
	"ida-pro.xml"
)

sha256sums=('eabb64c3c849d3858759558359e9cebcf17e2a91bcc60523533df8b84462aa54'
            'SKIP'
            'cc570f24effc008a4ebd514cc3c4fbb5db05bbdeb7f420b79fdf4ed08a4611e2'
            'SKIP'
            '92fc3dc9cd05c4d3e2180714816702e35f14d13f2fe94a115c5a43d83066eec5'
            '3010186d85f0ffc12da572be8688e3cfb5fb9b86ac7c4ec7284c4c9a17c17c14'
            '1e4b2ec71111b102ecbfa78ec8d7f03506d5726a19d087b59c643572f4e50af6'
            '58bb9f10b90bc6a7368629a5577852b4f21f8f44e9b2101b24b7f4fc87dff529')
validpgpkeys=('09BE40243217978201A0440E101BA3F4C612AA41') # nezu <nezu@nezu.cc>

prepare() {
	mkdir -p "$_name/tmp"

	# chroot is needed to prevent the installer from creating a single file outside of prefix
	# have to copy the installer due to chroot
	cp "$srcdir"/$_name.run "$_name/"
	chmod +x "$_name/$_name.run"
	# IDA Pro 9.0 SP1 (and newer) installer now tries to copy the .desktop files to $HOME even if you specify a prefix. Very annoying.
	mkdir -p "$srcdir"/$_name/"$HOME"/.local/share/applications
	fakechroot chroot "$srcdir"/$_name "/$_name.run" --mode unattended --prefix "/opt/$_name"
	rm "$_name/$_name.run"

	cd "$_name/opt/$_name"
	node "$srcdir"/keygen.js
	rm uninstall* Uninstall*
}

package() {
	install -dm755 "$pkgdir"/opt/$_pkgname
	install -dm755 "$pkgdir"/usr/bin
	install -dm755 "$pkgdir"/usr/share/{icons,applications,licenses/$pkgname}

	cp --preserve=mode,timestamps -r "$srcdir"/$_name/opt/$_name/* "$pkgdir"/opt/$_pkgname/

	ln -s "/opt/$_pkgname/ida" "$pkgdir"/usr/bin/ida
	ln -s "/opt/$_pkgname/hvui" "$pkgdir"/usr/bin/hvui
	ln -s "/opt/$_pkgname/qwingraph" "$pkgdir"/usr/bin/qwingraph
	ln -s "/opt/$_pkgname/idapyswitch" "$pkgdir"/usr/bin/idapyswitch

	ln -s "/opt/$_pkgname/appico.png" "$pkgdir"/usr/share/icons/$_pkgname.png
	ln -s "/opt/$_pkgname/hvui.png" "$pkgdir"/usr/share/icons/$_pkgname-teams.png

	ln -s /opt/$_pkgname/license.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE

	install -Dm644 "$_pkgname.xml" "$pkgdir"/usr/share/mime/packages/$_pkgname.xml

	install -Dm644 "$srcdir"/com.hex-rays.ida.desktop "$pkgdir"/usr/share/applications/com.hex-rays.ida.desktop
	install -Dm644 "$srcdir"/com.hex-rays.hvui.desktop "$pkgdir"/usr/share/applications/com.hex-rays.hvui.desktop
	install -Dm644 "$srcdir"/qwingraph.desktop "$pkgdir"/usr/share/applications/qwingraph.desktop
}
