Build DFTFringe on macOS and publish DMGs from CI - #348
Conversation
|
Hi,
On the choices made, the biggest are that it isn’t an universal intel + arm build but two builds, and that it only produces executables for Mac OS > 15. I’m willing to put as much time on this as needed. Best, |
atsju
left a comment
There was a problem hiding this comment.
Thank you very much for this work ! It's really valuable for Mac users.
I see no problem having a different installer between windows and Mac.
|
@atsju I'll wait for your CI-related PRs to land before rebasing and finishing |
32376dd to
9b8ffad
Compare
|
It looks like the lipo'd DMG will be 169MB. As of today's standards it's okay for me. I'll continue cleaning up and check if I manage to handle the missing color maps. |
|
The software won't open unless the user adds a security exception, this is normal unless signed with a valid Apple Developer ID (99$/year). I don't have one as of today. If noone in the team has one, it will have to stay that way. I added shorter instructions in the Readme. |
|
I'm not a MAC person, so no. Possibly @Interferometry has one? He did some work to get DFTF to build on the Mac a few years ago. |
|
I re-downloaded their 6.2 build and it looks like it was indeed signed, I don't get a security exemption request. |
|
Is it possible/easy to explain how to do this in the installer for mac people who don't know how? Or am I being silly? As a minimum please explain how to do it here so that I can mention this on the interferometry group when we release this. Or maybe a link to a youtube video on how to do it. |
|
Another issue to fix before considering the build correct, I did not try to launch it graphically (by double-clicking) before today, and it crashes due to a non-writable root directory issue : #354 |
cfde6da to
8446dfe
Compare
|
Hi @Lucassifoni As this doesn't touch code itself, it's relatively safe to merge. Then George could do a release after Stellafane convention. Would be first official release for MacOS :) |
|
Hi @atsju, I'd like to clean up a bit the CI before merging. Can this wait until eow ? |
|
it can wait for even longer than that. I just wanted to clarify current status. |
|
@Lucassifoni - are you still making progress on this? I don't want to rush you but I'm hoping you don't drop this project before it's done. Or is it done? |
|
@gr5 sorry, my availability is a bit randomly distributed while on holiday (which is what allowed me to work on that in the first place !). I'll wrap it with the appimage builds as soon as I have a few contiguous hours. |
|
Hi, I took the time to do the various README and comment changes I wanted. A next step would be proper attestation, there is a chance I will need to get an Apple Developer ID in the next months, if that happens I'll come back to discuss potentially signing the build, which enables 1-click opening instead of adding an OS-level security exception (which Mac users who use "advanced" software are quite used to, but still, it's an annoyance). |
|
I will look at both your PRs later today. Thank you for the update ! |
atsju
left a comment
There was a problem hiding this comment.
Look good. Thank you.
note: whichever of the linux or mac branch will merge first will create some small conflicts for the other branch. It will need some fixes.
|
Yes, make_release will conflict, I will handle it in whichever comes second.Envoyé de mon iPhoneLe 19 août 2026 à 19:00, Julien Staub ***@***.***> a écrit :
@atsju approved this pull request.
Look good. Thank you.
note: whichever of the linux or mac branch will merge first will create some small conflicts for the other branch. It will need some fixes.
—Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications, keep track of coding agent tasks and review pull requests on the go with GitHub Mobile for iOS and Android. Download it today!
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
|
I assume @Lucassifoni can go ahead and merge these 2 PRs? Since these are approved I assume @Lucassifoni or @atsju can proceed with these. |
|
Lucas I let you fix conflicts before we merge |
|
Sorry for this bad transient state, I am trying a new IDE and the way it operates on open files modified by pulling tripped me. Fixing this. |
|
The git history is quite inflated now. The changeset is still the 5 same files. I'd prefer rewriting this branch to a single clean commit over master if that's fine by you ? |
96d7e79 to
1399562
Compare
|
I prefer the squash and rebase version you just applied. That's fine. I will review and merge tomorrow. Thank you ! |
Note : this was done by Opus 5, picking up Dan's work in 75d9cc6. I'm happy to work and help as long as needed on it but will be AI-assisted since QT isn't my cup of tea.
---- BEGIN AI-assisted summary ----
Problems since the 2023 Mac build :
opencv(OpenCV 3) andQt5Qwt6(qwt built against Qt5), butDFTFringe.prois now the Qt6 project file.-lzwas missing, whichcnpy.cpphas needed since npz support landed. The linkcould not have succeeded.
QMAKE_MKDIRandQMAKE_PKG_CONFIGhard coded two different Homebrew prefixes, oneIntel and one Apple silicon, so the block could not work on either machine.
QMAKE_FULL_VERSIONwas set to the literal stringAPP_VERSION.INCLUDEPATHhad a stray-Iprefix and pointed at the plugins directory.Everything now comes from pkg-config, so no Homebrew prefix is hard coded and the same project file works on both architectures.
CI
build-macos.ymlbuilds onmacos-15andmacos-15-inteland uploads one disk imageper architecture.
make-release.ymlattaches both to the draft release alongside theWindows installer.
Not an universal binary. Homebrew ships single-architecture libraries, so a universal
build would mean rebuilding opencv, armadillo and qwt for both architectures and merging
them with
lipo.opencv@4, notopencv. Homebrew'sopencvformula is now OpenCV 5.opencv@4keeps all three platforms on the same major version.
Potential problems
Minimum macOS is 15.
macos-13andmacos-14github runners are retired or deprecated, so the binaryinherits that floor. The 6.2 release required Ventura. Going lower means building the
dependencies from source with an explicit deployment target.
The disk images are not notarised. That needs a paid Apple Developer ID. macOS
refuses to open the app from the Finder, users have to clear the quarantine flag once.
This is documented in the README. The workflow has no signing machinery, so adding notarisation later is purely additive.
The bundle is ad-hoc signed, which is a separate matter: arm64 code must carry at least an ad-hoc signature to execute at all, and
macdeployqtinvalidates the linker's signature when it rewrites install names.Single source change
colormapviewerdlglooked forColorMapsinapplicationDirPath(), which inside abundle is
Contents/MacOS. That directory may hold nothing but code:codesignreportsthe
.cmpfiles as unsigned code objects and the whole bundle signature is rejected. Themaps ship in
Contents/Resourcesand the lookup falls back there underQ_OS_MAC. The6.2 bundle has them in neither location, so the colour map viewer has never worked on
macOS.
Correctness
This branch makes DFTFringe build, it does not produce correct results on its
own without the bool mask PR.