Topic: Update QET macOS aarch64 packaging to Qt Tool Kit 5.15.15 -> 5.15.17

FYI, I just recompiled the whole digiKam macports install (9 hours of build) need for QET packaging. new public stable release of Qt5 cross-platform framework Qt 5.15.17. Before it's was commercial LTS release.

At this point in time, Linux distributions are starting to track which packages are blocking a future Qt5 cleanup. Real Qt Company OSS support stopped back in 2020, when public availability of LTS releases started to be delayed for 1 year, stable branch repository access got closed down (with 5.15 branch repository receiving any new LTS tag one year after commercial release) and only Qt6-relevant bugs are being fixed (then backported) since then. The final release happened on 2025-05-19, which means a) we will not get it until 2026-06-19, b) any bugs discovered since last May will not be fixed and c) no bugs since 2020-12-08 that haven't also been affecting Qt6 were fixed at all.

https://www.qt.io/blog/commercial-lts-q … 7-released
https://ports.macports.org/port/qt5/

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."Questions regarding QET belong in this forum and will NOT be answered via PM! – Les questions concernant QET doivent être posées sur ce forum et ne seront pas traitées par MP !

Re: Update QET macOS aarch64 packaging to Qt Tool Kit 5.15.15 -> 5.15.17

FYI, I just recompiled the whole digiKam macports install (9 hours of build) need for QET packaging. new public stable release of Qt5 cross-platform framework Qt 5.15.18. Before it's was commercial LTS release.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."Questions regarding QET belong in this forum and will NOT be answered via PM! – Les questions concernant QET doivent être posées sur ce forum et ne seront pas traitées par MP !

Re: Update QET macOS aarch64 packaging to Qt Tool Kit 5.15.15 -> 5.15.17

https://www.qt.io/blog/commercial-lts-q … 9-released

Wait one year...

https://www.qt.io/blog/extended-securit … s-may-2025

Houston, we have a problem!!!!!

Standard support for Qt 5.15 will end after 26th of May 2025, as communicated earlier. After the support period, the release will be in EoS (End of Support) state and will only be supported through additional services, including Extended Security Maintenance for Qt 5.15, Extended Support, and Professional Services. Customers distributing applications and embedded devices using Qt 5.15 software should evaluate how to access technical support and maintenance patches which may include security fixes. Standard commercials terms still apply after End of Support.

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."Questions regarding QET belong in this forum and will NOT be answered via PM! – Les questions concernant QET doivent être posées sur ce forum et ne seront pas traitées par MP !

Re: Update QET macOS aarch64 packaging to Qt Tool Kit 5.15.15 -> 5.15.17

scorpio810 wrote:

Updated my KVM/Qemu macOS VM to last DigiKam scripts to build QET Intel X86_64 with last Qt version aka 5.15.15 and last Kf5 version. .

BTW, for Intel macOS 's users  I updated my KVM/Qemu macOS VM to last DigiKam Macports scripts to build last QET Intel X86_64 with last Qt version aka 5.15.18 with no changes for Kf5 version.(4 hours of build)!

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."Questions regarding QET belong in this forum and will NOT be answered via PM! – Les questions concernant QET doivent être posées sur ce forum et ne seront pas traitées par MP !

Re: Update QET macOS aarch64 packaging to Qt Tool Kit 5.15.15 -> 5.15.17

macOS ARM64 DMG Build & Notarization — Fixed Workflow
After a lot of trial and error, here is the working process to build, sign, notarize and distribute QElectroTech as a proper macOS DMG for Apple Silicon (arm64).

  • Problems encountered
    1. Gatekeeper blocking the app when downloaded via Chrome
    The original script used ditto --sequesterRsrc to create the final ZIP. This flag places resource forks in a hidden __MACOSX/ folder which breaks extended attribute extraction in Chrome / Archive Utility, causing Gatekeeper to block the app with "Apple could not verify that this app is free of malware". Safari worked fine because it handles ZIP extraction differently.
    2. All MacPorts dylibs were unsigned
    macdeployqt copies third-party libraries (libsqlite3, libpng, libssl, libharfbuzz, etc.) from MacPorts into Contents/Frameworks/ without signing them. Using codesign --deep (now deprecated) missed these flat .dylib files. Apple's notarization service rejected the submission with "The binary is not signed with a valid Developer ID certificate" for every single one of them.
    Fix: sign every binary explicitly in the correct order — all .dylib files in Frameworks/ first, then .framework bundles, then plugins, then the main executable, and finally the bundle itself.
    3. hdiutil invalidating the bundle signature during DMG creation
    After the .app was correctly signed and notarized, creating a DMG with hdiutil create copies the bundle and recalculates checksums, which invalidates the Sealed Resources signature. Submitting this DMG to notarytool resulted in "The signature of the binary is invalid".
    Fix: create a writable DMG (UDRW format), mount it, re-sign all binaries inside the mounted volume, detach it, then convert to the final compressed read-only DMG (UDZO). This ensures the signature is valid after the conversion.

  • Final workflow
    1. Build with qmake + macdeployqt
    2. Copy elements, titleblocks, translations, fonts, lang, examples into the bundle
    3. Sign all binaries (dylibs → frameworks → plugins → executable → bundle)
    4. Submit a temporary ZIP to notarytool → wait for Apple approval
    5. Staple the notarization ticket onto the .app
    6. Create a staging folder with the .app + a symlink to /Applications
    7. Create a writable UDRW DMG from the staging folder
    8. Mount the UDRW DMG and re-sign all binaries inside
    9. Detach and convert UDRW → UDZO (final compressed DMG)
    10. Sign the DMG with codesign
    11. Submit the DMG to notarytool → staple the ticket onto the DMG
    12. Verify: spctl -a -vv → "accepted / Notarized Developer ID"

Result
The DMG now passes Gatekeeper correctly whether downloaded via Chrome or Safari. It includes a drag-and-drop Applications shortcut and is fully notarized and stapled.

Enjoy! nomicons/wink

"Le jour où tu découvres le Libre, tu sais que tu ne pourras jamais plus revenir en arrière..."Questions regarding QET belong in this forum and will NOT be answered via PM! – Les questions concernant QET doivent être posées sur ce forum et ne seront pas traitées par MP !