trojita-qt5-git
- Path: arch/maintained/trojita-qt5-git
- Build failure during the 2026-07-07 “build all packages for x86_64”
private-repo release pass. Needs
qt5-webkit, not in thisarch/tree (external-dependency class, seememory/dbmodel-qt4.md). Not fixed as part of this pass. - 2026-08-02: deliberately deferred, not attempted – see
memory/trojita.md(sameqt5-webkitblocker, deferred due to tight disk space for a multi-hour WebKit build).
2026-08-20: qtkeychain-qt5/gpgmepp fixes for x86_64; deep i686/pentium4 dependency chain, ultimately blocked
Separate package from trojita-git (Qt6, WITH_WEBKIT=OFF) – this
one is the genuine Qt5+WebKit variant (pkgdesc says so explicitly).
See memory/trojita-git.md for the mixup where an earlier session
accidentally swapped these two directories’ content.
x86_64 fixes (real gaps in upstream’s own depends=()):
qtkeychain->qtkeychain-qt5(Arch renamed the plain package).gpgmeppadded explicitly (a real hard dependencycmake/TrojitaOption.cmakeneeds forWITH_GPGMEPP, missing from upstream’sdepends=()).
i686/pentium4 attempt – extended arch=(), then had to resolve a
deep chain of real dependency gaps one level at a time, each
confirmed by an actual build failure (not guessed upfront):
qgpgme-qt5needsgpgmepp >= 2.1.0; archlinux32 had none for 32-bit at all. Builtgpgmeppourselves (seememory/gpgmepp.md).gpgmeppneedsgpgme >= 2.1.0; archlinux32 only had2.0.1. Builtgpgmeourselves too (seememory/gpgme.md).- With gpgme/gpgmepp available,
qgpgme-qt5itself needed extending to 32-bit (seememory/qgpgme-qt5.md) – hit its ownicu76linking gap (legacy ICU soname needed by systemQt5Core.so, available via archlinux32’s official repo, just not declared). - Back at
trojita-qt5-gititself:lconvert(qt5-tools, builds.qmtranslations) needed the sameicu76. - The real
trojitaexecutable (linksqt5-webkitdirectly) neededicu72too (a different, older legacy ICU version than #3/#4 – archlinux32’sqt5-webkitbuild apparently predates even theicu76-era rebuild). - Same executable also needed
libxml2-legacy(oldLIBXML2_2.4.30/2.6.0/2.6.6versioned symbols) – available on archlinux32 for i686 only, not pentium4 at all (confirmed via direct mirror listing checks across all repo sections). - Final, unresolved blocker (i686):
libQt5Quick.so.5requires a private Qt5 API symbol (QDistanceField::QDistanceField(...) @Qt_5_PRIVATE_API) not present in the installedQt5Quick– an internal ABI inconsistency between archlinux32’s own Qt5 component builds (private symbols have no stable ABI guarantee across even patch releases, so this isn’t something amakedepends_i686=(some-legacy-pkg)fix can address the way icu76/icu72/libxml2-legacy did). User confirmed: stop here, don’t chase further. pentium4 was already blocked earlier bylibxml2-legacy’s absence there regardless.
- Reverted
arch=()to(x86_64)only; removed the now-deadmakedepends_i686/makedepends_pentium4entries and the arch-conditionalmake trojita(vsmake) build() logic added mid-investigation (tried skipping trojita’s own test binaries, which hit the same ABI issues first – didn’t help once the real executable hit the identical problem, so reverted once i686/pentium4 were dropped entirely). pkgrelhistory:2(upstream,qtkeychain-qt5fix pre-existing) ->3(kitemmodels-equivalent chain start) … ->9(final, x86_64-only). x86_64 publishes cleanly throughout.- Lesson: archlinux32’s official Qt5/WebKit-era package stack is
showing real internal ABI drift (multiple different legacy
library versions needed by different components of the same
dependency graph) – worth remembering before attempting 32-bit
extension of other qt5-webkit-dependent packages (e.g.
wkhtmltopdf, already x86_64-only from earlier this session for a related reason).