mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.25k stars 1.24k forks source link

Upgrade to libdjinterop 0.21.0 #13233

Closed mr-smidge closed 1 month ago

mr-smidge commented 1 month ago

The build errors confuse me. From the macOS build:

Undefined symbols for architecture x86_64:
  "djinterop::crate::create_sub_crate(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
      mixxx::EnginePrimeExportJob::run() in libmixxx-lib.a(engineprimeexportjob.cpp.o)
  "djinterop::database::create_root_crate(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) const", referenced from:
      mixxx::EnginePrimeExportJob::run() in libmixxx-lib.a(engineprimeexportjob.cpp.o)

These two functions changed their signature from accepting std::string by value to const ref instead. The header and source files are internally consistent within libdjinterop in the 0.21.0 tag.

Is there something cached in these builds that would somehow pick up the old signature?

daschuer commented 1 month ago

Is there something cached in these builds that would somehow pick up the old signature?

Yes, the vcpkg build environment has probably the headers of the old version. We need to update this anyway, because the windows build fails with the downloaded source for some reasons.

mr-smidge commented 1 month ago

Yes, the vcpkg build environment has probably the headers of the old version. We need to update this anyway, because the windows build fails with the downloaded source for some reasons.

Ok, I'm not sure how to resolve this - @daschuer are you ok to make (or show me how to make) the necessary changes to get this through?

daschuer commented 1 month ago

It is best to create a vcpkg upstream PR and then cherry-pick it from our https://github.com/mixxxdj/vcpkg branches. The previous version update was merged by this PR: https://github.com/microsoft/vcpkg/pull/38298

mr-smidge commented 1 month ago

PR to for libdjinterop 0.21.0 in vcpkg: https://github.com/microsoft/vcpkg/pull/38888

daschuer commented 1 month ago

Great, thank you. Now we need to cherry pick it to our own vcpkg repro. To the 2.4 and 2.5 branch.

mr-smidge commented 1 month ago

Here we go - hopefully I've done this right:

acolombier commented 1 month ago

I think you will have to rebase your branch against main since the attributed milestone for that PR is 2.5. This means you shouldn't need a VPKG update for 2.4- @daschuer do you confirm?

daschuer commented 1 month ago

The 2.4 target is correct, because 2.4 and main builds are broken.

mr-smidge commented 1 month ago

@daschuer Now that the vcpkg PRs are merged, please can you re-run the failed actions? I don't appear to have permission to do this. Thanks!

JoergAtGithub commented 1 month ago

I doubt that the rerun will be enough, because we need to adjust the buildenv hashes before.

mr-smidge commented 1 month ago

I doubt that the rerun will be enough, because we need to adjust the buildenv hashes before.

@JoergAtGithub I'm not familiar with what this means, but the Windows build is already failing with a similar error to before, so I suspect you're right. What steps need to be taken now?

JoergAtGithub commented 1 month ago

You need to do similar changes as in #12067 , otherwise the Mixxx build will not download the new buildenv zip files.

daschuer commented 1 month ago

I have cherry-picked this to https://github.com/mixxxdj/mixxx/pull/13288 https://github.com/mixxxdj/mixxx/pull/13289

daschuer commented 1 month ago

Thank you for your help.