1 Repository layout
clem edited this page 2026-08-27 15:12:07 +00:00

Repository layout

Path Purpose
PKGBUILD Arch package definition. Holds pkgver, pkgrel, sha256sums, dependencies, and the package() logic.
patches/keygen.js Node script run during package(): generates idapro.hexlic and patches libida*.so. Version-specific.
ida-pro.desktop Desktop entry, installed to /usr/share/applications.
.forgejo/workflows/build.yml On push to main: build + clean-root install test. No publish.
.forgejo/workflows/release.yml On tag push: build, test, changelog, Forgejo release, push to Arch registry.
cliff.toml git-cliff config — conventional commits, grouped changelog.
README.md Short version of this wiki.
.gitignore Ignores *.run, build output (pkg/, src/, *.pkg.tar.*), *.log, .env.

Not in git

  • ida-pro_94_x64linux.run — the installer. Lives in the generic registry; CI downloads it per build. A local copy may be present for manual builds.
  • idapro.hexlic — generated at build time by keygen.js.
  • .env — local only, not read by CI.

package() steps (PKGBUILD)

  1. Copy the .run into $pkgdir, run it unattended via fakechroot chroot with --prefix /opt/ida-pro, then delete it.
  2. Run patches/keygen.js from inside $pkgdir/opt/ida-pro (it resolves all paths relative to its CWD).
  3. Fail the build if idapro.hexlic is missing/empty, if the keygen logs Pattern not found, or if no libida* was patched.
  4. Strip execute bits from data files, restore them on the real binaries (ida, idat, hv, lc, …), fix docs/ permissions.
  5. Remove the bundled uninstaller.
  6. Install the .desktop file, symlink /usr/bin/ida, the icon, and the license.