Skip to content

Comments

Use older version of Qt#964

Merged
ann0see merged 1 commit intojamulussoftware:masterfrom
ann0see:UseOldQt
Feb 18, 2021
Merged

Use older version of Qt#964
ann0see merged 1 commit intojamulussoftware:masterfrom
ann0see:UseOldQt

Conversation

@ann0see
Copy link
Member

@ann0see ann0see commented Feb 7, 2021

This will support macOS < 10.13.

Fixes #959

Although I didn't receive an answer yet, I think this doesn't break anything.

This will support macOS < 10.13.

Fixes jamulussoftware#959
@ann0see ann0see marked this pull request as ready for review February 7, 2021 09:50
@ann0see
Copy link
Member Author

ann0see commented Feb 7, 2021

Seems that it doesn’t break the app on Big Sur. I think that’s enough.

@ann0see ann0see requested a review from a team February 7, 2021 14:59
Copy link
Member

@softins softins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Builds and installs fine on Mojave, 10.14. I can't test it with an earlier macOS.

@pljones
Copy link
Collaborator

pljones commented Feb 8, 2021

Has anyone checked to see if Github offer an earlier MacOS builder?

It's probably worth always running the minimum and latest versions of a platform we intend to say we support. MacOS, of course, being the right pain in terms of constant change.

@softins
Copy link
Member

softins commented Feb 8, 2021

Does this also need changes to codeql-analysis.yml? That is still referring to Qt 5.15.2 for Mac.

@ann0see
Copy link
Member Author

ann0see commented Feb 8, 2021

Just got a positive feedback from the tester. Seems to work. Not sure if we can use an even earlier version of Qt, but that should be possible.

@ann0see
Copy link
Member Author

ann0see commented Feb 8, 2021

Should we try qt 5.9 (but for me it seems to be quite old). It might even support macOS 10.10

@ann0see
Copy link
Member Author

ann0see commented Feb 9, 2021

Does this also need changes to codeql-analysis.yml

Not necessarily.

Should we try qt 5.9

Do we know which version of Qt corrados used to compile the binaries?

@softins
Copy link
Member

softins commented Feb 9, 2021

Do we know which version of Qt corrados used to compile the binaries?

On my PC, the Qt DLLs bundled with Jamulus 3.6.2 are version 5.15.1. That works for me on Win7.

On my Mac, looking in /Applications/Jamulus.app/Contents/Frameworks/QtCore.framework/Versions/5/Resources/Info.plist I can see that it bundled version 5.9.4

@ann0see
Copy link
Member Author

ann0see commented Feb 9, 2021

Ok. So we could probly also use qt 5.9. What about 5.9.9 does it work?

@softins
Copy link
Member

softins commented Feb 9, 2021

Ok. So we could probly also use qt 5.9. What about 5.9.9 does it work?

Probably, as it's just a minor version number change. I could try it tomorrow.

@ann0see
Copy link
Member Author

ann0see commented Feb 9, 2021

Ok. Great!

@pljones
Copy link
Collaborator

pljones commented Feb 9, 2021

OK, I tried 5.9.9 here pljones#7 and it failed.... but for the wrong reason. The MacOS build ended with:

ld: warning: directory not found for option '-F/Users/qt/work/install/lib'

and still claimed to have worked. I'm trying a re-run now...

@softins
Copy link
Member

softins commented Feb 9, 2021

OK, I tried 5.9.9 here pljones#7 and it failed.... but for the wrong reason. The MacOS build ended with:

ld: warning: directory not found for option '-F/Users/qt/work/install/lib'

and still claimed to have worked. I'm trying a re-run now...

Just been watching it, and that was just a warning, that an additional directory it was told to look for libs when linking wasn't found. So long as it still found all the libs it wanted to link, it shouldn't matter. If it couldn't, it would have been a hard error.

It looks like the warning is because it said /Users/qt/... when everything else is under /Users/runner/.... Not sure whether that's a bug in our build script or the Github environment.

@softins
Copy link
Member

softins commented Feb 9, 2021

I've just changed 5.12.9 to 5.9.9 and tried the build from scratch on my Mac.

Worked fine, and installed and ran successfully too. The Info.plist files correctly identified the bundled Qt as 5.9.9

@softins
Copy link
Member

softins commented Feb 10, 2021

Just as an interesting data point, MuseScore, which uses Qt, advertises itself as compatible with macOS 10.10 (Yosemite) onwards and Windows 7 onwards. The Mac build uses Qt 5.9.8 (although I'm sure 5.9.9 would be equally compatible, as a minor version change only), and the PC build uses Qt 5.9.9

@softins
Copy link
Member

softins commented Feb 10, 2021

I've just closely examined the build log on my Mac, and it shows exactly the same error message, so it's not a problem with Github or the action. This is the link step:

/Library/Developer/CommandLineTools/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Develop
er/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.10 -Wl,-rpath,@executable_path/Frameworks -Wl,-rpath,/usr/local/opt/qt/5.9.9/clang_64/lib -o Jamulus.app/Contents/MacOS/Jamulus sound.o buffer.o channel.o
 client.o main.o protocol.o jamcontroller.o server.o serverlist.o serverlogging.o settings.o signalhandler.o socket.o soundbase.o util.o jamrecorder.o creaperproject.o cwavestream.o audiomixerboard.o ch
atdlg.o clientsettingsdlg.o connectdlg.o clientdlg.o serverdlg.o multicolorled.o levelmeter.o analyzerconsole.o bands.o celt.o celt_decoder.o celt_encoder.o celt_lpc.o cwrs.o entcode.o entdec.o entenc.o
 kiss_fft.o laplace.o mathops.o mdct.o modes.o pitch.o quant_bands.o rate.o vq.o A2NLSF.o ana_filt_bank_1.o biquad_alt.o bwexpander.o bwexpander_32.o check_control_input.o CNG.o code_signs.o control_aud
io_bandwidth.o control_codec.o control_SNR.o debug.o decoder_set_fs.o decode_core.o decode_frame.o decode_indices.o decode_parameters.o decode_pitch.o decode_pulses.o dec_API.o encode_indices.o encode_p
ulses.o enc_API.o apply_sine_window_FLP.o autocorrelation_FLP.o burg_modified_FLP.o bwexpander_FLP.o corrMatrix_FLP.o encode_frame_FLP.o energy_FLP.o find_LPC_FLP.o find_LTP_FLP.o find_pitch_lags_FLP.o
find_pred_coefs_FLP.o inner_product_FLP.o k2a_FLP.o LPC_analysis_filter_FLP.o LTP_analysis_filter_FLP.o LTP_scale_ctrl_FLP.o noise_shape_analysis_FLP.o pitch_analysis_core_FLP.o process_gains_FLP.o resi
dual_energy_FLP.o scale_copy_vector_FLP.o scale_vector_FLP.o schur_FLP.o sort_FLP.o warped_autocorrelation_FLP.o wrappers_FLP.o gain_quant.o HP_variable_cutoff.o init_decoder.o init_encoder.o inner_prod
_aligned.o interpolate.o lin2log.o log2lin.o LPC_analysis_filter.o LPC_fit.o LPC_inv_pred_gain.o LP_variable_cutoff.o NLSF2A.o NLSF_decode.o NLSF_del_dec_quant.o NLSF_encode.o NLSF_stabilize.o NLSF_unpa
ck.o NLSF_VQ.o NLSF_VQ_weights_laroia.o NSQ.o NSQ_del_dec.o pitch_est_tables.o PLC.o process_NLSFs.o quant_LTP_gains.o resampler.o resampler_down2.o resampler_down2_3.o resampler_private_AR2.o resampler
_private_down_FIR.o resampler_private_IIR_FIR.o resampler_private_up2_HQ.o resampler_rom.o shell_coder.o sigm_Q15.o sort.o stereo_decode_pred.o stereo_encode_pred.o stereo_find_predictor.o stereo_LR_to_
MS.o stereo_MS_to_LR.o stereo_quant_pred.o sum_sqr_shift.o tables_gain.o tables_LTP.o tables_NLSF_CB_NB_MB.o tables_NLSF_CB_WB.o tables_other.o tables_pitch_lag.o tables_pulses_per_block.o table_LSF_cos
.o VAD.o VQ_WMat_EC.o analysis.o mlp.o mlp_data.o opus.o opus_decoder.o opus_encoder.o repacketizer.o activity.o qrc_resources.o moc_channel.o moc_client.o moc_protocol.o moc_jamcontroller.o moc_server.
o moc_serverlist.o moc_settings.o moc_socket.o moc_soundbase.o moc_testbench.o moc_util.o moc_jamrecorder.o moc_creaperproject.o moc_signalhandler.o moc_audiomixerboard.o moc_chatdlg.o moc_clientsetting
sdlg.o moc_connectdlg.o moc_clientdlg.o moc_serverdlg.o moc_levelmeter.o moc_analyzerconsole.o   -F/usr/local/opt/qt/5.9.9/clang_64/lib -framework CoreFoundation -framework CoreServices -framework CoreA
udio -framework CoreMIDI -framework AudioToolbox -framework AudioUnit -framework Foundation -framework QtWidgets -framework QtGui -framework QtCore -framework DiskArbitration -framework IOKit -framework
 QtMacExtras -F/Users/qt/work/install/lib -framework QtNetwork -framework QtXml -framework QtConcurrent -framework OpenGL -framework AGL

ld: warning: directory not found for option '-F/Users/qt/work/install/lib'

Just investigating...

@softins
Copy link
Member

softins commented Feb 10, 2021

It appears to be something hard-coded within the homebrew installation of Qt. I would just ignore it, it's benign.

@ann0see
Copy link
Member Author

ann0see commented Feb 10, 2021

hard-coded within the homebrew installation of Qt

Are you really using homebrew here? I thought (at least the GH Action) used aqt to install Qt?

@softins
Copy link
Member

softins commented Feb 10, 2021

hard-coded within the homebrew installation of Qt

Are you really using homebrew here? I thought (at least the GH Action) used aqt to install Qt?

I think aqt must be using it behind the scenes, as I found the references in /usr/local/var/homebrew/linked/qt/5.9.9/clang_64/... and the build script is the only way I have ever fetched 5.9.9 on this Mac.

@ann0see
Copy link
Member Author

ann0see commented Feb 10, 2021

That's really strange. At least in this PR I moved away from homebrew. The path should also be /usr/local/opt/qt.

@softins
Copy link
Member

softins commented Feb 10, 2021

I don't fully understand it yet, but I also have a 5.12.9 under /usr/local/var/homebrew too, from the original build I did with this PR

@ann0see
Copy link
Member Author

ann0see commented Feb 10, 2021

Strange. Maybe you have two versions of Qt installed?

Have a look at this gh actions run: https://github.com/ann0see/jamulus/actions/runs/555358355

I just pushed the 5.9.9 version. Let's wait and see if it works.

@ann0see
Copy link
Member Author

ann0see commented Feb 10, 2021

Yes. It seems to work (although I haven't tested the binary yet.)

@softins
Copy link
Member

softins commented Feb 10, 2021

Strange. Maybe you have two versions of Qt installed?

The only way I have installed those two versions of Qt is by running the autorelease_mac.sh script, firstly the version in the PR with 5.12.9, and secondly after editing it to refer to 5.9.9, so I have to infer that either aqt is using homebrew behond the scenes, or the build process is.

@ann0see
Copy link
Member Author

ann0see commented Feb 10, 2021

That's really strange. I'm quite sure that no other script (at least from which I know) installs it via brew.
Did you use another version of Qt on your mac before running autorelease_mac.sh? Maybe this causes the problem?

@pljones
Copy link
Collaborator

pljones commented Feb 10, 2021

OK - @ann0see do you want to change the CodeQL to use 5.9.9 in this same PR? That should be kept in line (I really wish it was just all part of the same work flow).

@ann0see
Copy link
Member Author

ann0see commented Feb 10, 2021

Hmm. I think @nefarius2001 is working on something (at least I saw some activity on his repo). Yes, CodeQl and this should both use the same version of Qt, I think. Can somebody please check if the produced binary on my repo works on older macOS versions?

@nefarius2001
Copy link
Contributor

true, I create #978 to give a preview

@softins
Copy link
Member

softins commented Feb 10, 2021

OK, I've tracked down where the homebrew stuff comes from on my Mac. I installed Qt 5.15.1 in October using brew, when I was testing out my work on audio packet ordering. That installed Qt into /usr/local/Cellar/qt/5.15.1 and it also set up the following symbolic links:

Tonys-MBP:jamulus tony$ ls -l /usr/local/var/homebrew/linked/qt /usr/local/opt/qt*
lrwxr-xr-x  1 tony  admin  19 13 Oct 15:04 /usr/local/opt/qt -> ../Cellar/qt/5.15.1
lrwxr-xr-x  1 tony  admin  19 13 Oct 15:04 /usr/local/opt/qt5 -> ../Cellar/qt/5.15.1
lrwxr-xr-x  1 tony  admin  25 13 Oct 15:04 /usr/local/var/homebrew/linked/qt -> ../../../Cellar/qt/5.15.1

Consequently, when aqt installed the older versions under /usr/local/opt/qt, it followed the existing symbolic link and installed them there. Since the homebrew link pointed to the same place, they appeared to be under there too, when doing a grep -r.

So the homebrew stuff is a red herring, but the installed versions of Qt under /usr/local/opt/qt do still have hard-coded references to /Users/qt/.... But as I said, that appears to be benign.

@pljones
Copy link
Collaborator

pljones commented Feb 11, 2021

true, I create #978 to give a preview

Are we going to close this and proceed there?

@ann0see
Copy link
Member Author

ann0see commented Feb 11, 2021

Yes. I'll close this now.

@ann0see ann0see closed this Feb 11, 2021
@ann0see ann0see reopened this Feb 17, 2021
@ann0see
Copy link
Member Author

ann0see commented Feb 17, 2021

@pljones if #978 takes too long for you (for the next release), we can also merge this one.

Copy link
Collaborator

@pljones pljones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the commented out brew lines but that's non-blocking.

@ann0see
Copy link
Member Author

ann0see commented Feb 18, 2021

I'm not sure: since nefarius's PR is almost finished, we could just close this or do you want this to be merged?

@pljones
Copy link
Collaborator

pljones commented Feb 18, 2021

Wait for now.

@ann0see ann0see merged commit b22fc95 into jamulussoftware:master Feb 18, 2021
@ann0see ann0see deleted the UseOldQt branch February 18, 2021 21:17
@pljones pljones added this to the Release 3.7.0 milestone Nov 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

Qt 5.15 breaks macOS < 10.13 support

4 participants