From 2e4980827157b425c4a356a4880656913fd203ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Sj=C3=B6lund?= Date: Fri, 18 Sep 2026 12:32:10 +0200 Subject: [PATCH] deb+rpm: build OMEdit against qt6 with Quick3D OMEdit renders the animation windows with Qt Quick 3D since OpenModelica#16699, so every qt6 target needs the module or qmake stops with "Unknown module(s) in QT: quick3d". The deb side moves off qt5 entirely: configure gets --with-qt6 and the Build-Depends carry the qt6 stack, so bookworm, jammy and noble no longer depend on the codename list in common/m4/qmake.m4 to pick a Qt. jammy is Qt 6.2.4 and still uses the pre-6.4 binary names, hence the alternatives; QtHttpServer does not exist there at all, and OMEdit already guards it with qtHaveModule(httpserver). omedit also gains the QML plugins. The scene QML is handed to QQmlComponent as a string, so the plugins are dlopened and ${shlibs:Depends} never sees them. Debian only split qml6-module-qtquick3d out of libqt6quick3d6 in 6.6, so the older suites need the alternative there too. flex and bison come over from the trixie and resolute images in apt-build, which installed them outside the .dsc. OpenSceneGraph is unused now that the animation windows no longer render with it. Assisted-by: Claude Opus 5 --- debian/control | 29 +++++++++++++++++++++-------- debian/rules | 1 + rpm/SPECS/openmodelica.spec.tpl | 5 +---- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/debian/control b/debian/control index 5d834ed..673af39 100644 --- a/debian/control +++ b/debian/control @@ -16,13 +16,24 @@ Build-Depends: debhelper-compat (= 13), cmake (>= 2.8.6), # libssl-dev (>= 0.9.8g), # Do we really depend on libssl directly? Debian stretch conflicts with it... libreadline-dev, - qtbase5-dev, - libqt5svg5-dev, - qttools5-dev-tools, - qttools5-dev, - libqt5opengl5-dev, - qtwebengine5-dev, - libqt5xmlpatterns5-dev, + qt6-base-dev, + qt6-base-dev-tools, + qt6-tools-dev, + qt6-tools-dev-tools, + qt6-l10n-tools, + qt6-translations-l10n, + qt6-declarative-dev, + qt6-quick3d-dev, + qt6-webengine-dev, + qt6-webengine-dev-tools, +# jammy still carries the pre-6.4 binary names for these three + qt6-svg-dev | libqt6svg6-dev, + qt6-5compat-dev | libqt6core5compat6-dev, + qt6-websockets-dev | libqt6websockets6-dev, +# QtHttpServer needs Qt 6.4; OMEdit builds without the MCP server on jammy + qt6-httpserver-dev | qt6-base-dev, + flex, + bison, liblpsolve55-dev (>= 5.5.0.10), libhdf5-serial-dev | libhdf5-dev, liblapack-dev, @@ -33,7 +44,6 @@ Build-Depends: debhelper-compat (= 13), # Should be needed but seems to mess up sbuild # libexpat1-dev:native, libboost-all-dev, - libopenscenegraph-dev, pkg-config, libffi-dev, lsb-release, @@ -183,6 +193,9 @@ Architecture: any Depends: omc (<< 20000), libomsimulator, libomsensplugin, + qml6-module-qtquick, +# split out of libqt6quick3d6 in Qt 6.6 + qml6-module-qtquick3d | libqt6quick3d6, ${shlibs:Depends}, ${misc:Depends} Suggests: omlibrary diff --git a/debian/rules b/debian/rules index 808352b..a3e2254 100755 --- a/debian/rules +++ b/debian/rules @@ -118,6 +118,7 @@ endif --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr \ + --with-qt6 \ --with-lapack="-llapack -lblas -lm" \ --without-paradiseo \ --without-omlibrary \ diff --git a/rpm/SPECS/openmodelica.spec.tpl b/rpm/SPECS/openmodelica.spec.tpl index ebb1161..039a0d4 100644 --- a/rpm/SPECS/openmodelica.spec.tpl +++ b/rpm/SPECS/openmodelica.spec.tpl @@ -93,6 +93,7 @@ BuildRequires: qt6-qt3d-devel BuildRequires: qt6-qt5compat-devel BuildRequires: qt6-qthttpserver-devel BuildRequires: qt6-qtwebsockets-devel +BuildRequires: qt6-qtquick3d-devel %endif @@ -131,10 +132,6 @@ BuildRequires: devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-gcc-gfortra %define devtoolsconfigureflags CC=/opt/rh/devtoolset-11/root/usr/bin/gcc CXX=/opt/rh/devtoolset-11/root/usr/bin/g++ FC=/opt/rh/devtoolset-11/root/usr/bin/gfortran %endif -%if 0%{?fedora} >= 25 -BuildRequires: OpenSceneGraph-devel -%endif - %if 0%{?omqt5} %define withqt6 '' %define omqtversion qt5