mixxx icon indicating copy to clipboard operation
mixxx copied to clipboard

Upgrade to libdjinterop 0.21.0

Open mr-smidge opened this issue 9 months ago • 2 comments

mr-smidge avatar May 13 '24 20:05 mr-smidge

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?

mr-smidge avatar May 13 '24 21:05 mr-smidge

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.

daschuer avatar May 13 '24 22:05 daschuer

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?

mr-smidge avatar May 14 '24 22:05 mr-smidge

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

daschuer avatar May 14 '24 22:05 daschuer

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

mr-smidge avatar May 22 '24 23:05 mr-smidge

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

daschuer avatar May 23 '24 12:05 daschuer

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

  • 2.4 branch - https://github.com/mixxxdj/vcpkg/pull/144
  • 2.5 branch - https://github.com/mixxxdj/vcpkg/pull/145

mr-smidge avatar May 23 '24 22:05 mr-smidge

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?

acolombier avatar May 24 '24 12:05 acolombier

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

daschuer avatar May 24 '24 13:05 daschuer

@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!

mr-smidge avatar May 26 '24 10:05 mr-smidge

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

JoergAtGithub avatar May 26 '24 10:05 JoergAtGithub

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?

mr-smidge avatar May 26 '24 11:05 mr-smidge

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

JoergAtGithub avatar May 26 '24 11:05 JoergAtGithub

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

daschuer avatar May 26 '24 20:05 daschuer

Thank you for your help.

daschuer avatar May 26 '24 20:05 daschuer