Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.6: merge upstream master #150

Open
wants to merge 3,695 commits into
base: 2.6
Choose a base branch
from
Open

2.6: merge upstream master #150

wants to merge 3,695 commits into from

Conversation

daschuer
Copy link
Member

@daschuer daschuer commented Jan 19, 2025

This is a VCPKG update for our upcoming Mixxx 2.6-beta

I consider these changes significant:

  • Qt 6.5.3 -> 6.8.1
  • libusb 1.0.26 -> 1.0.27 (new API)
  • rubberband 3.3.0 -> 4.0.0 (new API)

I have pinned taglib to 1.13.1 until mixxxdj/mixxx#12790 is fixed

Here is the full list of Updates (* = indirect dependencies)

    ableton-link 3.0.6#1 -> 3.1.2 
  * asio 1.28.1 -> 1.32.0
    benchmark  1.8.3 -> 1.9.1
    egl-registry 2022-09-20 -> 2024-01-25
    ffmpeg[...] 6.0#2 -> 7.1#2
    freetype[brotli,bzip2,core,png,zlib]  2.12.1#4 -> 2.13.3	 
  * harfbuzz[core,freetype] 8.3.0#1 -> 10.2.0
    icu[core,tools] 73.1#2 -> 74.2#4
    liblo 0.31#4 -> 0.32
  * libpng 1.6.45 -> 0.16.4#3
  * libpq[...] 16.0 -> 16.4
    libusb 1.0.26.11791#1 -> 1.0.27#2
    lilv 0.24.10#2 -> 0.24.24#1																   
  * lv2  1.18.2#1-> 1.18.10#1
  * lz4 1.9.4#1 -> 1.10.0
  * mpg123 1.31.3#3 -> 1.32.9#1
    ms-gsl 4.0.0 -> 4.1.0
  * opengl-registry 2022-09-29 -> 2024-02-10#1
  * openssl 3.1.3 -> 3.4.0#1
    opus 1.4 -> 1.5.2
  * pcre2[...] 10.42#2 -> 10.43
  * pkgconf 1.8.0#5-> 2.3.0
    protobuf 3.21.12#1 -> 5.29.2 
    qt5compat[...] 6.5.3 -> 6.8.1
    qtbase[...] 6.5.3#2 -> 6.8.1#1
    qtdeclarative 6.5.3 -> 6.8.1
    qtkeychain-qt6 0.14.1#1 -> 0.14.3
  * qtshadertools  6.5.3 -> 6.8.1
  * qttools[core,designer,linguist] 6.5.3 -> 6.8.1
    qttranslations[core,default-features] 6.5.3 -> 6.8.1
    rubberband 3.3.0 -> 4.0.0
  * serd 0.30.4#2 -> 0.32.2
  * sleef 3.5.1#4 -> 3.7
  * sord 0.16.4#2 -> 0.16.16
    soundtouch  2.3.2#3 -> 2.3.3
  * sqlite3[core,json1] 3.43.1 -> 3.47.2
  * sratom 0.6.4#2 -> 0.6.16#1
    wavpack 5.6.0 -> 5.7.0
  * zlib 1.3 -> 1.3.1
  * zstd 1.5.5#1 -> 1.5.6

AenBleidd and others added 30 commits December 19, 2024 13:03
dg0yt and others added 22 commits January 15, 2025 08:35
* Limit CI

* Update msys2

* Declare msys packages for pkgconfig and fortran...

... with explicit DEPS and PROVIDES, instead of using DIRECT_PACKAGES.
This change makes it possible to notice changed dependencies
in `vcpkg-ci-msys2` update checks. (Current case: zstd.)
It also enables reuse of general declarations from `vcpkg_acquire_msys`
in specialized cases (`vpckg_find_fortran`).

Last not least, using the the Z_DECLARE_EXTRA_PACKAGES_COMMAND
simplifies the implementation of `vcpkg-ci-msys2`, in particular for
checks across platform boundaries.

* Revert "Limit CI"
msys2-runtime no longer supports Windows 7 since version 3.5.
msys2-runtime-3.4 is the replacement for user who cannot upgrade. YMMV.

autoconf-wrapper is not updated, cf. microsoft#36774.

pkgconf is not updated, waiting for 2.2.
Thre macos-12 runner is no longer available
@JoergAtGithub
Copy link
Member

I tried to use it in a local build, but got the following Qt asserts during CMake configuration:

1> [CMake] -- Found Protobuf: D:/mixxx/buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/tools/protobuf/protoc.exe (found version "29.2.0") 
1> [CMake] rgbsignal_qml.frag -> rgbsignal_qml.frag.qsb exposed as :/shaders/rgbsignal_qml.frag.qsb
1> [CMake] CMake Warning (dev) at buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Core/Qt6CoreMacros.cmake:3355 (message):
1> [CMake]   Qt policy QTP0004 is not set: You need qmldir files for each extra
1> [CMake]   directory that contains .qml files for your module.  Check
1> [CMake]   https://doc.qt.io/qt-6/qt-cmake-policy-qtp0004.html for policy details.
1> [CMake]   Use the qt_policy command to set the policy and suppress this warning.
1> [CMake] 
1> [CMake] Call Stack (most recent call first):
1> [CMake]   buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Qml/Qt6QmlMacros.cmake:3299 (__qt_internal_setup_policy)
1> [CMake]   buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Qml/Qt6QmlMacros.cmake:896 (qt6_target_qml_sources)
1> [CMake]   buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Qml/Qt6QmlMacros.cmake:1232 (qt6_add_qml_module)
1> [CMake]   CMakeLists.txt:3205 (qt_add_qml_module)
1> [CMake] This warning is for project developers.  Use -Wno-dev to suppress it.
1> [CMake] 
1> [CMake] CMake Warning (dev) at buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Core/Qt6CoreMacros.cmake:3355 (message):
1> [CMake]   Qt policy QTP0004 is not set: You need qmldir files for each extra
1> [CMake]   directory that contains .qml files for your module.  Check
1> [CMake]   https://doc.qt.io/qt-6/qt-cmake-policy-qtp0004.html for policy details.
1> [CMake]   Use the qt_policy command to set the policy and suppress this warning.
1> [CMake] 
1> [CMake] Call Stack (most recent call first):
1> [CMake]   buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Qml/Qt6QmlMacros.cmake:3299 (__qt_internal_setup_policy)
1> [CMake]   buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Qml/Qt6QmlMacros.cmake:896 (qt6_target_qml_sources)
1> [CMake]   buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/share/Qt6Qml/Qt6QmlMacros.cmake:1232 (qt6_add_qml_module)
1> [CMake]   CMakeLists.txt:3239 (qt_add_qml_module)
1> [CMake] This warning is for project developers.  Use -Wno-dev to suppress it.
1> [CMake] 
1> [CMake] -- DEBUG_ASSERT statements have been enabled because DEBUG_ASSERTIONS_FATAL is ON.
1> [CMake] CMake Error at buildenv/mixxx-deps-2.6-x64-windows-d99ec98/scripts/buildsystems/vcpkg.cmake:720 (_install):
1> [CMake]   _install IMPORTED_RUNTIME_ARTIFACTS given target
1> [CMake]   "Qt6::QWindowsVistaStylePlugin" which does not exist.
1> [CMake] Call Stack (most recent call first):
1> [CMake]   CMakeLists.txt:3590 (install)
1> [CMake] -- Found rubberband: D:/mixxx/buildenv/mixxx-deps-2.6-x64-windows-d99ec98/installed/x64-windows/lib/rubberband.lib (found version "4.0.0") 

@JoergAtGithub
Copy link
Member

After setting QTP0004 policy and commenting out QWindowsVistaStylePlugin I got a fully working Mixxx build with this buildenv.
There is a new QWindows11Style, but I did not find out how to use it instead of the Vista style. Without styling, the UI looks really outdated - like Win95, but technically everything seems to be displayed correct.

@daschuer
Copy link
Member Author

Please Try: mixxxdj/mixxx#14200

@JoergAtGithub
Copy link
Member

I had to add

    if(QT_KNOWN_POLICY_QTP0004)
        qt6_policy(SET QTP0004 NEW)
    endif()

at line:
https://github.com/mixxxdj/mixxx/blob/0b888895ee4327a13ec48912a66c991d9aeff283/CMakeLists.txt#L3175
to build with Qt6.8

But I guess the correct fix would be changing the QML directory structure instead - but I'm not familar with this.

@daschuer
Copy link
Member Author

It sounds like that it is mandatory to decide how the build system should behave:
https://doc.qt.io/qt-6/qt-cmake-policy-qtp0004.htmlhttps://doc.qt.io/qt-6/qt-cmake-policy-qtp0004.html

For my understanding, we need to mimic the NEW behaviour for older QT builds manually if we want to have it consistently.

@daschuer
Copy link
Member Author

For NEW, we need to either change our directory structure or back-port:
qt/qtdeclarative@6314d30
into our build system since our implicit minimum is Qt 6.4 determined by Ubuntu 24.04 Noble and Qt 6.8 will land into a LTS 26.04.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.