diff --git a/.SRCINFO b/.SRCINFO index 8870c41..2ffb9c8 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = ida-pro-patched pkgdesc = Hex-Rays IDA Pro pkgver = 9.1.250226 - pkgrel = 1 + pkgrel = 2 url = https://hex-rays.com/ida-pro/ arch = x86_64 license = custom @@ -13,19 +13,25 @@ pkgbase = ida-pro-patched depends = glib2 depends = qt5-base depends = python-rpyc + provides = ida-pro + conflicts = ida-pro options = !strip source = ida-pro-9.1.250226.run::https://vaclive.party/software/ida-pro/releases/download/9.1.250226/ida-pro_91_x64linux.run source = ida-pro-9.1.250226.run.sig::https://vaclive.party/software/ida-pro/releases/download/9.1.250226/ida-pro_91_x64linux.run.sig source = patch.py::https://vaclive.party/software/ida-pro/releases/download/9.1.250226/keygen.py source = patch.py.sig::https://vaclive.party/software/ida-pro/releases/download/9.1.250226/keygen.py.sig - source = ida-pro.desktop - source = ida-pro-teams.desktop + source = com.hex-rays.ida.desktop + source = com.hex-rays.hvui.desktop + source = qwingraph.desktop + source = ida-pro.xml validpgpkeys = 09BE40243217978201A0440E101BA3F4C612AA41 sha256sums = 8ff08022be3a0ef693a9e3ea01010d1356b26cfdcbbe7fdd68d01b3c9700f9e2 sha256sums = SKIP sha256sums = f1459fd512ac44d589f020ba71e0de20ebf8798df26f167db6fe4c087c7cd0d6 sha256sums = SKIP - sha256sums = 445e0498d24676cc81c1f9b81a30241eabd480852561f398e520e6e23d4b97bd - sha256sums = b8a7ca4f69428c0191733167905f89c34d73d14778f62aea9b3e2c758792308f + sha256sums = 9490296e773cda6b03d4bbfbd1e9a398756e074f3574cffdfb31e5d40b2f956d + sha256sums = 3010186d85f0ffc12da572be8688e3cfb5fb9b86ac7c4ec7284c4c9a17c17c14 + sha256sums = 1e4b2ec71111b102ecbfa78ec8d7f03506d5726a19d087b59c643572f4e50af6 + sha256sums = 58bb9f10b90bc6a7368629a5577852b4f21f8f44e9b2101b24b7f4fc87dff529 pkgname = ida-pro-patched diff --git a/.gitignore b/.gitignore index 39467d7..b3cd2aa 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ !PKGBUILD !.SRCINFO !*.desktop +!*.xml diff --git a/PKGBUILD b/PKGBUILD index c14e660..022e1ce 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,11 +2,12 @@ pkgname=ida-pro-patched _pkgname=ida-pro pkgver=9.1.250226 -pkgrel=1 +pkgrel=2 pkgdesc="Hex-Rays IDA Pro" arch=('x86_64') url="https://hex-rays.com/ida-pro/" license=('custom') + makedepends=('fakechroot') depends=( 'libgl' @@ -17,48 +18,72 @@ depends=( 'qt5-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_91_x64linux.run" - "$_name.run.sig::$_release_url/ida-pro_91_x64linux.run.sig" - "patch.py::$_release_url/keygen.py" - "patch.py.sig::$_release_url/keygen.py.sig" - "$_pkgname.desktop" - "$_pkgname-teams.desktop" + "$_name.run::$_release_url/ida-pro_91_x64linux.run" + "$_name.run.sig::$_release_url/ida-pro_91_x64linux.run.sig" + "patch.py::$_release_url/keygen.py" + "patch.py.sig::$_release_url/keygen.py.sig" + "com.hex-rays.ida.desktop" + "com.hex-rays.hvui.desktop" + "qwingraph.desktop" + "ida-pro.xml" ) + sha256sums=('8ff08022be3a0ef693a9e3ea01010d1356b26cfdcbbe7fdd68d01b3c9700f9e2' 'SKIP' 'f1459fd512ac44d589f020ba71e0de20ebf8798df26f167db6fe4c087c7cd0d6' 'SKIP' - '445e0498d24676cc81c1f9b81a30241eabd480852561f398e520e6e23d4b97bd' - 'b8a7ca4f69428c0191733167905f89c34d73d14778f62aea9b3e2c758792308f') + '9490296e773cda6b03d4bbfbd1e9a398756e074f3574cffdfb31e5d40b2f956d' + '3010186d85f0ffc12da572be8688e3cfb5fb9b86ac7c4ec7284c4c9a17c17c14' + '1e4b2ec71111b102ecbfa78ec8d7f03506d5726a19d087b59c643572f4e50af6' + '58bb9f10b90bc6a7368629a5577852b4f21f8f44e9b2101b24b7f4fc87dff529') validpgpkeys=('09BE40243217978201A0440E101BA3F4C612AA41') # nezu prepare() { - mkdir -p "$_name/tmp" - cp "$srcdir/$_name.run" "$_name" - chmod +x "$_name/$_name.run" - mkdir -p "$srcdir/$_name/$HOME/.local/share/applications" - fakechroot chroot "$srcdir/$_name" "/$_name.run" --mode unattended --prefix /opt/$_name - cd "$_name/opt/$_name" - python3 "$srcdir/patch.py" - mv -v libida32.so.patched libida32.so - mv -v libida.so.patched libida.so - rm uninstall* Uninstall* + 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" + python3 "$srcdir"/patch.py + mv -v libida32.so.patched libida32.so + mv -v libida.so.patched libida.so + rm uninstall* Uninstall* } package() { - install -dm755 "$pkgdir/opt/$_pkgname" - cp --preserve=mode,timestamps -r "$srcdir/$_name/opt/$_name/"* "$pkgdir/opt/$_pkgname" + install -dm755 "$pkgdir"/opt/$_pkgname + install -dm755 "$pkgdir"/usr/bin + install -dm755 "$pkgdir"/usr/share/{icons,applications,licenses/$pkgname} - install -dm755 "$pkgdir/usr/bin" - ln -s "/opt/$_pkgname/ida" "$pkgdir/usr/bin/ida" - ln -s "/opt/$_pkgname/hvui" "$pkgdir/usr/bin/hvui" + cp --preserve=mode,timestamps -r "$srcdir"/$_name/opt/$_name/* "$pkgdir"/opt/$_pkgname/ - install -Dm644 "$srcdir/$_name/opt/$_name/appico.png" "$pkgdir/usr/share/pixmaps/$_pkgname.png" - install -Dm644 "$srcdir/$_name/opt/$_name/hvui.png" "$pkgdir/usr/share/pixmaps/$_pkgname-teams.png" - install -Dm644 "$srcdir/$_pkgname.desktop" "$pkgdir/usr/share/applications/$_pkgname.desktop" - install -Dm644 "$srcdir/$_pkgname-teams.desktop" "$pkgdir/usr/share/applications/$_pkgname-teams.desktop" + 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 } diff --git a/ida-pro-teams.desktop b/com.hex-rays.hvui.desktop similarity index 84% rename from ida-pro-teams.desktop rename to com.hex-rays.hvui.desktop index 8dc6e56..3985ac5 100644 --- a/ida-pro-teams.desktop +++ b/com.hex-rays.hvui.desktop @@ -2,6 +2,7 @@ Name=IDA Teams Comment=Teams for The Interactive Disassembler Exec=/usr/bin/hvui %f +StartupWMClass=com.hex-rays.hvui Icon=ida-pro-teams Terminal=false Type=Application diff --git a/ida-pro.desktop b/com.hex-rays.ida.desktop similarity index 56% rename from ida-pro.desktop rename to com.hex-rays.ida.desktop index 29b77de..709b6b5 100644 --- a/ida-pro.desktop +++ b/com.hex-rays.ida.desktop @@ -2,7 +2,9 @@ Name=IDA Pro Comment=The Interactive Disassembler Exec=/usr/bin/ida %f +StartupWMClass=com.hex-rays.ida Icon=ida-pro +MimeType=application/vnd.hex-rays.ida.database64;application/vnd.hex-rays.ida.database32 Terminal=false Type=Application Categories=Development diff --git a/ida-pro.xml b/ida-pro.xml new file mode 100644 index 0000000..8101a3e --- /dev/null +++ b/ida-pro.xml @@ -0,0 +1,17 @@ + + + + IDA (64-bit) Database + + + + + IDA Database + + + + + WinGraph File + + + diff --git a/qwingraph.desktop b/qwingraph.desktop new file mode 100644 index 0000000..8f800c5 --- /dev/null +++ b/qwingraph.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=WinGraph32 (IDA) +Comment=External program to display IDA graphs +Exec=/usr/bin/qwingraph %f +StartupWMClass=qwingraph +MimeType=application/vnd.hex-rays.ida.wingraph +NoDisplay=true +Terminal=false +Type=Application +Categories=Development