Commit graph

20 commits

Author SHA1 Message Date
Vencislav Atanasov
cbaf66f372 rbutilqt/themeeditor: Introduce a new KEYCHAIN_PROFILE variable for Apple notarization
If the variable is provided, the resulting .dmg will be uploaded to Apple's servers for notarization. If successful, Apple's notarization ticket is attached to the image.

Notarization of ~30MiB .dmg takes 40-50 seconds including upload time, ~30 seconds sans the upload time.

Tested building and notarizing of Rockbox Utility, Rockbox Theme Editor, and both as a single target, i.e. deploy.

Co-authored-by: ChatGPT-5.6 Luna
Change-Id: Ib31b1f825893111d23248fb8511fe5b6c73d5525
2026-09-22 07:27:16 -04:00
Vencislav Atanasov
7f01029439 rbutilqt/themeeditor: Move the CODESIGN_IDENTITY variable definition before the targets which depend on it.
Change-Id: I786be5b7dfaee94cf31ef9e72f43dce9700056c0
2026-09-20 22:09:09 +03:00
Vencislav Atanasov
6719578e29 rbutilqt/themeeditor: Fix Apple code signing issues
- The main binary in *.app/Contents/MacOS/ was not signed using the "hardened runtime" option.
- The ipodpatcher and sansapatcher binaries in RockboxUtility.app/Contents/bin/ were not signed at all.

The produced .dmg images are now suitable for notarization so the app inside can be installed and started with no security warnings.
They are not notarized yet, as this takes a significant amount of time, but it can be done manually using:
xcrun notarytool submit build-qt/RockboxUtility.dmg --keychain-profile <your-profile> --wait
xcrun stapler staple build-qt/RockboxUtility.dmg
Only ARM macOS is supported at the moment.

Co-authored-by: ChatGPT-5.6 Luna
Change-Id: Id88d7da18f541f9f503172f5dcb5b17d64e0602e
2026-09-20 09:00:42 -04:00
Vencislav Atanasov
d42dcdcba2 rbutilqt/themeeditor: Allow specifying the Apple code signing ID using an environment variable
Co-authored-by: ChatGPT-5.5
Change-Id: Idd4624c7851f7fa37afac4de59f319e0087d0bc6
2026-07-29 22:55:40 +03:00
Vencislav Atanasov
92d62cf6ac cmake: Make sure pip is upgraded before using it to install dmgbuild
Co-authored-by: ChatGPT (GPT-5.3 Mini) <chatgpt@openai.com>
Change-Id: I4221aab7dd031bd79548a94b30ce5978d81e282b
2026-06-29 20:13:50 -04:00
Vencislav Atanasov
115b2ae800 rbutilqt: Add a CODESIGN_IDENTITY CMake variable for macOS builds
It can be used to choose which Apple Developer ID to use when signing the build of the Qt apps. By default, it uses ad-hoc signing, i.e. no Apple Developer ID is needed.

Change-Id: I5634e318f4949107eb954b729b2f8f1d60fad115
2026-06-27 02:31:11 +03:00
Solomon Peachy
949a99a24d rbutil: Support linux non-x86_64 appimage deployments
Change-Id: I6d95e45b3a013941e131ee89b50c7225b21931bf
2026-06-23 20:16:56 -04:00
Vencislav Atanasov
2dc466229e rbutilqt: change the macdeployqt command line
- Remove libpath as the dirs are already in the search path. It doesn't help with QtPdf, QtVirtualKeyboardQml or QtVirtualKeyboard not being found (at least on my system). The native libraries are properly found and copied to the app bundle.
- Remove "|| true" at the end, as even though macdeployqt shows a bunch of "ERROR: " messages, it still exits with code 0

Note: This is a partial revert of bf273149. codesign is still required, the binary is killed with SIGKILL by the OS if the libraries are modified but the signature is not updated.
Change-Id: I2d7d4e32ed8043f302c163db4f89fc90cc921f88
2026-06-20 14:00:59 -04:00
Vencislav Atanasov
bf273149b7 Fix CMake build of RockboxUtility and RockboxThemeEditor on macOS (part 2)
Add search path for the Qt libraries, ignore the signature verification error and then re-sign again.

Co-authored-by: Qwen3.7-Plus
Change-Id: Ifa6232cd56e78e593b3395384dd2a98fa9cc67e5
2026-06-19 21:03:17 -04:00
Vencislav Atanasov
2e126ee3ba Fix CMake build of RockboxUtility and RockboxThemeEditor on macOS (part 1)
Create a new target dmgbuild_venv which is added as a dependency of both RockboxUtility and RockboxThemeEditor so CMake understands that it's a shared dependency.

Co-authored-by: Qwen3.7-Plus
Change-Id: I417de25356885574546a7ae2a53ddbd44f6be557
2026-06-19 21:02:52 -04:00
Dominik Riebeling
430999e399 utils: Work around windeployqt bug.
For Qt versions less than 5.14 MinGW windeployqt requires passing
--release or --debug to pick the correct libs to deploy. For newer
version this must not be passed, or otherwise windeployqt errors out.

Use a conditional expression to only add the parameter for older Qt
versions.

Change-Id: I7afe2b77e9829e989adaeeb7c7499d5955926da2
2022-03-13 16:20:10 +01:00
Dominik Riebeling
22a6ae97a6 utils: Fix windeployqt step once more.
The path was actually correct before, the filename wasn't.

Change-Id: Ia7f1e5c171fbca22733bdbbcfd8844ade597f650
2022-03-12 23:32:19 +01:00
Dominik Riebeling
96f5b07d39 utils: Fix windeployqt call in cmake deploy step.
Change-Id: I295704796cf4dab32010844369b3a5492bf20e2a
2022-03-12 23:08:47 +01:00
Dominik Riebeling
0de2d3a0b6 utils: rework cmake deploy function.
Use named arguments for function and allow passing additional executable
targets to be copied to the deploy tree.

Update current uses and add ipodpatcher and sansapatcher to Rockbox
Utility deployment.

This is in preparation for moving ipodpatcher / sansapatcher
functionality out of Rockbox Utility so we eventually can avoid
elevation / sudo of the whole installer. Currently this only results in
Rockbox Utility releases shipping ipodpatcher / sansapatcher
executables.

Change-Id: Ibb6601b7e437648135059c580e2ce2532574835a
2022-03-12 20:40:08 +01:00
Dominik Riebeling
bbd1056afb themeeditor: Fix dmg deploy steps.
- Fix binary name in Info.plist.
- Run dmgbuild as Python module, in some cases it isn't available directly.
- Add missing dmgbuild configuration for themeeditor.

Change-Id: I2db50959b88283f43e2203cf71b130cdb33103dd
2021-12-28 19:53:54 +01:00
Dominik Riebeling
2ecbc18535 rbutil: cmake: Make linuxdeploy download a global target.
That way we won't get duplicated targets when the deploy function is
used for multiple targets.

Change-Id: Ie14fdd74fcc496647c3c041ae2fcf902a3cb15fa
2021-12-27 16:14:46 +01:00
Dominik Riebeling
67942629cf rbutil: Explicitly enable AppImage qt deploy plugin.
Change-Id: Id2cb21882b06f60541ecfe22b101d13c4f631131
2021-12-27 12:29:52 +01:00
Dominik Riebeling
88a50ab104 rbutil: Change MacOS dmgbuild to use plistlib.
We're not dealing with binary plist files, to biplist is not the one we
want. Also, plistlib is part of Python.

Change-Id: I529516da0d6b04809a7c0d38b20c6f40900560f8
2021-12-26 21:59:19 +01:00
Dominik Riebeling
5999b4f791 rbutil: Fix cmake deploy function paths.
Update scripts paths with the split-up setup.

Change-Id: I62cd66b7440faa27daead92d04f3cdae67748d60
2021-12-26 21:31:49 +01:00
Dominik Riebeling
774b35cccf rbutil: Deploy support in cmake.
Add a "deploy" target that will create a distributable file.

- Linux: AppImage.
- Windows: zip file.
- MacOS: dmg.

Change-Id: Id8ae9c021bc5bbb1abf066205b57d943c3f3b327
2021-12-25 17:47:14 +01:00