From 7749af3770099a0d93ad95ee126255d4e87df076 Mon Sep 17 00:00:00 2001 From: Stefan Wolfsheimer Date: Fri, 8 Aug 2025 08:48:09 +0200 Subject: [PATCH 1/2] adding easyconfigs: Qt6-6.9.1-GCCcore-14.2.0.eb --- .../q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 easybuild/easyconfigs/q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb diff --git a/easybuild/easyconfigs/q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb b/easybuild/easyconfigs/q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb new file mode 100644 index 000000000000..05ac770550fd --- /dev/null +++ b/easybuild/easyconfigs/q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb @@ -0,0 +1,89 @@ +easyblock = 'CMakeNinja' + +name = 'Qt6' +version = '6.9.1' + +homepage = 'https://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} +# disabling use of -ftree-vectorize is required to avoid compilation failures on some systems (e.g. Intel Skylake X) +toolchainopts = {'vectorize': False} + +source_urls = [ + 'https://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/single/', + 'https://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/single/', + 'https://download.qt.io/new_archive/qt/%(version_major_minor)s/%(version)s/single/', +] +sources = ['qt-everywhere-src-%(version)s.tar.xz'] +patches = [ + '%(name)s-6.6.3_fix_OF-Gentoo.patch', + '%(name)s-6.7.2_fix_cpu_features.patch', + '%(name)s-6.5.2_fix_too_long_filenames.patch', +] +checksums = [ + {'qt-everywhere-src-6.9.1.tar.xz': '364fde2d7fa42dd7c9b2ea6db3d462dd54f3869e9fd0ca0a0ca62f750cd8329b'}, + {'Qt6-6.6.3_fix_OF-Gentoo.patch': 'd4d4878ac76cb985e45eb3b6e90ba2233f65807d6bd9bbe2b71365b181347b7b'}, + {'Qt6-6.7.2_fix_cpu_features.patch': '3f37e7a4e4ed38cc82037be9504bc644e48bf258555ffff848183142725c9dc8'}, + {'Qt6-6.5.2_fix_too_long_filenames.patch': 'b4a2aa3c72fe01d8b9cbab6da43cdbd968bd139f5dd9daba83181eb5d6125dac'}, +] + +builddependencies = [ + ('binutils', '2.42'), + ('pkgconf', '2.3.0'), + ('CMake', '3.31.3'), + ('Ninja', '1.12.1'), + # deps for QtWebEngine + ('Bison', '3.8.2'), + ('flex', '2.6.4'), + ('gperf', '3.3'), + ('re2c', '4.2'), +] +dependencies = [ + ('double-conversion', '3.3.1'), + ('GLib', '2.85.1'), + ('PCRE2', '10.45'), + ('libpng', '1.6.48'), + ('LibTIFF', '4.7.0'), + ('libwebp', '1.5.0'), + ('JasPer', '4.2.5'), + ('HarfBuzz', '11.2.1'), + ('SQLite', '3.47.2'), + ('graphite2', '1.3.14'), + ('assimp', '6.0.2'), + ('FFmpeg', '7.1.1'), + ('X11', '20250521'), + ('fontconfig', '2.16.2'), + ('zlib', '1.3.1'), + ('Python', '3.13.1'), + ('Python-bundle-PyPI', '2025.04'), + ('freetype', '2.13.3'), + ('DBus', '1.16.2'), + ('libevent', '2.1.12'), # WebEngine + ('libGLU', '9.0.3'), + ('libjpeg-turbo', '3.1.0'), + ('NSS', '3.113'), + ('snappy', '1.2.2'), + ('OpenSSL', '3', '', SYSTEM), + ('ICU', '76.1'), + ('nodejs', '22.16.0'), + # ('gRPC', '1.52.2'), # WebEngine needs older Abseil/gRPC/protobuf +] + +preconfigopts = 'sed -i "s/MultiMedia/Multimedia/g" ../qt-everywhere-src-%(version)s/qtcharts/CMakeLists.txt && sed -i "23i set(Python3_ROOT_DIR \\$ENV{EBROOTPYTHON})" ../qt-everywhere-src-%(version)s/qtwebengine/src/gn/CMakeLists.txt && export NINJAFLAGS="-j%(parallel)s" && ' +configopts = "-Wno-dev -DFEATURE_qtpdf_build=OFF -DQT_AVOID_CMAKE_ARCHIVING_API=ON -DPython3_ROOT_DIR=$EBROOTPYTHON -DBUILD_qtwayland=OFF " + +prebuildopts = ' export NINJAFLAGS="-j%(parallel)s" && ' + + +# Removed from Qt6.0.0 but may be added back in the future +# configopts += '-DBUILD_qtgamepad=OFF ' # Does not work on CentOS 7 + +sanity_check_paths = { + 'files': ['bin/qmake6', 'lib/libQt6Core.so', 'lib/libQt6WebEngineCore.so'], + 'dirs': ['include/QtCore', 'include/QtWebEngineCore'], +} + +sanity_check_commands = ['qmake6 --help'] + +moduleclass = 'devel' From ace3362af40a9e916cc1b0380f846d8950fd8f87 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Thu, 9 Oct 2025 08:24:15 +0200 Subject: [PATCH 2/2] bump Qt6 version to 6.9.3 --- ...-14.2.0.eb => Qt6-6.9.3-GCCcore-14.2.0.eb} | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) rename easybuild/easyconfigs/q/Qt6/{Qt6-6.9.1-GCCcore-14.2.0.eb => Qt6-6.9.3-GCCcore-14.2.0.eb} (72%) diff --git a/easybuild/easyconfigs/q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb b/easybuild/easyconfigs/q/Qt6/Qt6-6.9.3-GCCcore-14.2.0.eb similarity index 72% rename from easybuild/easyconfigs/q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb rename to easybuild/easyconfigs/q/Qt6/Qt6-6.9.3-GCCcore-14.2.0.eb index 05ac770550fd..a48e80980b43 100644 --- a/easybuild/easyconfigs/q/Qt6/Qt6-6.9.1-GCCcore-14.2.0.eb +++ b/easybuild/easyconfigs/q/Qt6/Qt6-6.9.3-GCCcore-14.2.0.eb @@ -1,7 +1,7 @@ easyblock = 'CMakeNinja' name = 'Qt6' -version = '6.9.1' +version = '6.9.3' homepage = 'https://qt.io/' description = "Qt is a comprehensive cross-platform C++ application framework." @@ -17,12 +17,12 @@ source_urls = [ ] sources = ['qt-everywhere-src-%(version)s.tar.xz'] patches = [ - '%(name)s-6.6.3_fix_OF-Gentoo.patch', - '%(name)s-6.7.2_fix_cpu_features.patch', - '%(name)s-6.5.2_fix_too_long_filenames.patch', + 'Qt6-6.6.3_fix_OF-Gentoo.patch', + 'Qt6-6.7.2_fix_cpu_features.patch', + 'Qt6-6.5.2_fix_too_long_filenames.patch', ] checksums = [ - {'qt-everywhere-src-6.9.1.tar.xz': '364fde2d7fa42dd7c9b2ea6db3d462dd54f3869e9fd0ca0a0ca62f750cd8329b'}, + {'qt-everywhere-src-6.9.3.tar.xz': '59d4fbf50d2524a9082f85d565f0197316cde89c26e97cfc6c157cb255b7ea18'}, {'Qt6-6.6.3_fix_OF-Gentoo.patch': 'd4d4878ac76cb985e45eb3b6e90ba2233f65807d6bd9bbe2b71365b181347b7b'}, {'Qt6-6.7.2_fix_cpu_features.patch': '3f37e7a4e4ed38cc82037be9504bc644e48bf258555ffff848183142725c9dc8'}, {'Qt6-6.5.2_fix_too_long_filenames.patch': 'b4a2aa3c72fe01d8b9cbab6da43cdbd968bd139f5dd9daba83181eb5d6125dac'}, @@ -70,17 +70,23 @@ dependencies = [ # ('gRPC', '1.52.2'), # WebEngine needs older Abseil/gRPC/protobuf ] -preconfigopts = 'sed -i "s/MultiMedia/Multimedia/g" ../qt-everywhere-src-%(version)s/qtcharts/CMakeLists.txt && sed -i "23i set(Python3_ROOT_DIR \\$ENV{EBROOTPYTHON})" ../qt-everywhere-src-%(version)s/qtwebengine/src/gn/CMakeLists.txt && export NINJAFLAGS="-j%(parallel)s" && ' -configopts = "-Wno-dev -DFEATURE_qtpdf_build=OFF -DQT_AVOID_CMAKE_ARCHIVING_API=ON -DPython3_ROOT_DIR=$EBROOTPYTHON -DBUILD_qtwayland=OFF " +preconfigopts = 'sed -i "23i set(Python3_ROOT_DIR \\$ENV{EBROOTPYTHON})" ' +preconfigopts += '../qt-everywhere-src-%(version)s/qtwebengine/src/gn/CMakeLists.txt && ' # Typo +# Ninja uses all visible cores by default, which can lead to lack of sufficient memory; +# so $NINJAFLAGS is set to control number of parallel processes used by Ninja; +# note that $NINJAFLAGS is not a generic thing for Ninja, it's very specific to the Qt6 build procedure +preconfigopts += ' export NINJAFLAGS="-j%(parallel)s" && ' prebuildopts = ' export NINJAFLAGS="-j%(parallel)s" && ' +configopts = "-Wno-dev -DFEATURE_qtpdf_build=OFF -DQT_AVOID_CMAKE_ARCHIVING_API=ON " +configopts += "-DPython3_ROOT_DIR=$EBROOTPYTHON -DBUILD_qtwayland=OFF " # Removed from Qt6.0.0 but may be added back in the future # configopts += '-DBUILD_qtgamepad=OFF ' # Does not work on CentOS 7 sanity_check_paths = { - 'files': ['bin/qmake6', 'lib/libQt6Core.so', 'lib/libQt6WebEngineCore.so'], + 'files': ['bin/qmake6', 'lib/libQt6Core.%s' % SHLIB_EXT, 'lib/libQt6WebEngineCore.%s' % SHLIB_EXT], 'dirs': ['include/QtCore', 'include/QtWebEngineCore'], }