From 7a2d6171de7a480b121bffa0929d684d042c7366 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 28 Jun 2026 11:45:55 -0300 Subject: [PATCH] ports: qtbase6 --- host-recipes/host-qtbase6 | 33 +++ patches/qtbase6/jinx-working-patch.patch | 268 +++++++++++++++++++++++ recipes/qtbase6 | 79 +++++++ source-recipes/qtbase6 | 5 + 4 files changed, 385 insertions(+) create mode 100644 host-recipes/host-qtbase6 create mode 100644 patches/qtbase6/jinx-working-patch.patch create mode 100644 recipes/qtbase6 create mode 100644 source-recipes/qtbase6 diff --git a/host-recipes/host-qtbase6 b/host-recipes/host-qtbase6 new file mode 100644 index 00000000..41e6d85f --- /dev/null +++ b/host-recipes/host-qtbase6 @@ -0,0 +1,33 @@ +name=host-qtbase6 +revision=1 +from_source=qtbase6 +imagedeps="build-essential" +hostdeps="cmake pkgconfig" +clean_workdirs=no + +configure() { + cmake \ + -GNinja \ + -DCMAKE_INSTALL_PREFIX=${prefix} \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=ON \ + -DQT_BUILD_EXAMPLES=OFF \ + -DQT_BUILD_TESTS=OFF \ + -DFEATURE_dbus=OFF \ + -DFEATURE_gui=OFF \ + -DFEATURE_network=OFF \ + -DFEATURE_printsupport=OFF \ + -DFEATURE_sql=OFF \ + -DFEATURE_testlib=OFF \ + -DFEATURE_widgets=OFF \ + -DFEATURE_xml=ON \ + ${source_dir} +} + +build() { + ninja -j${parallelism} +} + +package() { + DESTDIR=${dest_dir} ninja install +} diff --git a/patches/qtbase6/jinx-working-patch.patch b/patches/qtbase6/jinx-working-patch.patch new file mode 100644 index 00000000..b189ab72 --- /dev/null +++ b/patches/qtbase6/jinx-working-patch.patch @@ -0,0 +1,268 @@ +diff --git qtbase6-clean/cmake/QtMkspecHelpers.cmake qtbase6-workdir/cmake/QtMkspecHelpers.cmake +index 8b133d185b1a..bba52a0992f 100644 +--- qtbase6-clean/cmake/QtMkspecHelpers.cmake ++++ qtbase6-workdir/cmake/QtMkspecHelpers.cmake +@@ -50,6 +50,12 @@ macro(qt_internal_setup_platform_definitions_and_mkspec) + elseif(CLANG) + set(QT_DEFAULT_MKSPEC linux-clang) + endif() ++ elseif(ASTRAL) ++ if(GCC) ++ set(QT_DEFAULT_MKSPEC astral-g++) ++ else() ++ message(FATAL_ERROR "Unknown compiler in use!") ++ endif() + elseif(ANDROID) + if(GCC) + set(QT_DEFAULT_MKSPEC android-g++) +diff --git qtbase6-clean/cmake/FindXKB_COMMON_X11.cmake qtbase6-workdir/cmake/FindXKB_COMMON_X11.cmake +index 550e7aef554..384c9ac107d 100644 +--- qtbase6-clean/cmake/FindXKB_COMMON_X11.cmake ++++ qtbase6-workdir/cmake/FindXKB_COMMON_X11.cmake +@@ -5,6 +5,16 @@ find_package(PkgConfig QUIET) + + pkg_check_modules(XKB_COMMON_X11 IMPORTED_TARGET "xkbcommon-x11>=0.4.1") + +-if (NOT TARGET PkgConfig::XKB_COMMON_X11) +- set(XKB_COMMON_X11_FOUND 0) ++if(NOT TARGET PkgConfig::XKB_COMMON_X11) ++ find_path(XKB_COMMON_X11_INCLUDE_DIR xkbcommon/xkbcommon-x11.h) ++ find_library(XKB_COMMON_X11_LIBRARY xkbcommon-x11) ++ ++ if(XKB_COMMON_X11_INCLUDE_DIR AND XKB_COMMON_X11_LIBRARY) ++ add_library(PkgConfig::XKB_COMMON_X11 INTERFACE IMPORTED) ++ target_include_directories(PkgConfig::XKB_COMMON_X11 INTERFACE "${XKB_COMMON_X11_INCLUDE_DIR}") ++ target_link_libraries(PkgConfig::XKB_COMMON_X11 INTERFACE "${XKB_COMMON_X11_LIBRARY}") ++ set(XKB_COMMON_X11_FOUND 1) ++ else() ++ set(XKB_COMMON_X11_FOUND 0) ++ endif() + endif() +diff --git qtbase6-clean/cmake/QtPlatformSupport.cmake qtbase6-workdir/cmake/QtPlatformSupport.cmake +index 071711a5bd57..19492801c5f 100644 +--- qtbase6-clean/cmake/QtPlatformSupport.cmake ++++ qtbase6-workdir/cmake/QtPlatformSupport.cmake +@@ -7,6 +7,12 @@ else() + set(LINUX 0) + endif() + ++if(CMAKE_SYSTEM_NAME STREQUAL "Astral") ++ set(ASTRAL 1) ++else() ++ set(ASTRAL 0) ++endif() ++ + if(CMAKE_SYSTEM_NAME STREQUAL "HPUX") + set(HPUX 1) + else() +diff --git qtbase6-clean/mkspecs/common/astral.conf qtbase6-workdir/mkspecs/common/astral.conf +new file mode 100644 +index 00000000000..c5c66a644fe +--- /dev/null ++++ qtbase6-workdir/mkspecs/common/astral.conf +@@ -0,0 +1,40 @@ ++# ++# qmake configuration for common Astral targets ++# ++ ++QMAKE_PLATFORM += astral ++ ++include(unix.conf) ++ ++QMAKE_CFLAGS_THREAD += -D_REENTRANT ++QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD ++QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections ++ ++QMAKE_LFLAGS_REL_RPATH = -Wl,-z,origin ++QMAKE_REL_RPATH_BASE = $ORIGIN ++ ++QMAKE_INCDIR = ++QMAKE_LIBDIR = ++QMAKE_INCDIR_X11 = ++QMAKE_LIBDIR_X11 = ++QMAKE_INCDIR_OPENGL = ++QMAKE_LIBDIR_OPENGL = ++QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL ++QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL ++QMAKE_INCDIR_EGL = ++QMAKE_LIBDIR_EGL = ++ ++QMAKE_LIBS = ++QMAKE_LIBS_DYNLOAD = -ldl ++QMAKE_LIBS_X11 = -lXext -lX11 -lm ++QMAKE_LIBS_EGL = -lEGL ++QMAKE_LIBS_OPENGL = -lGL ++QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 ++QMAKE_LIBS_THREAD = -lpthread ++QMAKE_LIBS_VULKAN = ++ ++QMAKE_AR = ar cqs ++QMAKE_OBJCOPY = objcopy ++QMAKE_NM = nm -P ++QMAKE_RANLIB = ++ ++QMAKE_STRIP = strip ++QMAKE_STRIPFLAGS_LIB += --strip-unneeded +diff --git qtbase6-clean/mkspecs/common/posix/qplatformdefs.h qtbase6-workdir/mkspecs/common/posix/qplatformdefs.h +index e7ce7a568db..6905c72ff2a 100644 +--- qtbase6-clean/mkspecs/common/posix/qplatformdefs.h ++++ qtbase6-workdir/mkspecs/common/posix/qplatformdefs.h +@@ -12,7 +12,7 @@ + #endif + #include + +-#if defined(QT_USE_XOPEN_LFS_EXTENSIONS) && defined(QT_LARGEFILE_SUPPORT) ++#if defined(QT_USE_XOPEN_LFS_EXTENSIONS) && defined(QT_LARGEFILE_SUPPORT) && !defined(__astral__) + + #define QT_STATBUF struct stat64 + #define QT_FPOS_T fpos64_t +@@ -105,7 +105,7 @@ + + #if defined(QT_LARGEFILE_SUPPORT) \ + && defined(QT_USE_XOPEN_LFS_EXTENSIONS) \ +- && !defined(QT_NO_READDIR64) ++ && !defined(QT_NO_READDIR64) && !defined(__astral__) + #define QT_DIRENT struct dirent64 + #define QT_READDIR ::readdir64 + #else +diff --git qtbase6-clean/mkspecs/astral-g++/qmake.conf qtbase6-workdir/mkspecs/astral-g++/qmake.conf +new file mode 100644 +index 00000000000..b795ca5e83e +--- /dev/null ++++ qtbase6-workdir/mkspecs/astral-g++/qmake.conf +@@ -0,0 +1,12 @@ ++# ++# qmake configuration for astral-g++ ++# ++ ++MAKEFILE_GENERATOR = UNIX ++CONFIG += incremental ++QMAKE_INCREMENTAL_STYLE = sublib ++ ++include(../common/astral.conf) ++include(../common/gcc-base-unix.conf) ++include(../common/g++-unix.conf) ++load(qt_config) +diff --git qtbase6-clean/mkspecs/astral-g++/qplatformdefs.h qtbase6-workdir/mkspecs/astral-g++/qplatformdefs.h +new file mode 100644 +index 00000000000..dfe7b5517af +--- /dev/null ++++ qtbase6-workdir/mkspecs/astral-g++/qplatformdefs.h +@@ -0,0 +1,36 @@ ++#ifndef QPLATFORMDEFS_H ++#define QPLATFORMDEFS_H ++ ++#include "qglobal.h" ++ ++#ifndef _GNU_SOURCE ++# define _GNU_SOURCE ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define QT_USE_XOPEN_LFS_EXTENSIONS ++#include "../common/posix/qplatformdefs.h" ++ ++#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) ++#define QT_SNPRINTF ::snprintf ++#define QT_VSNPRINTF ::vsnprintf ++#endif ++ ++#endif +diff --git qtbase6-clean/src/corelib/global/qsystemdetection.h qtbase6-workdir/src/corelib/global/qsystemdetection.h +index bd1ef8dd747..c3e44603381 100644 +--- qtbase6-clean/src/corelib/global/qsystemdetection.h ++++ qtbase6-workdir/src/corelib/global/qsystemdetection.h +@@ -129,6 +129,8 @@ + # define Q_OS_VXWORKS + #elif defined(__HAIKU__) + # define Q_OS_HAIKU ++#elif defined(__astral__) ++# define Q_OS_ASTRAL + #elif defined(__MAKEDEPEND__) + #else + # error "Qt has not been ported to this OS - see http://www.qt-project.org/" +diff --git qtbase6-clean/src/corelib/io/qfilesystemwatcher.cpp qtbase6-workdir/src/corelib/io/qfilesystemwatcher.cpp +index cd72f21acdf..1750ab94584 100644 +--- qtbase6-clean/src/corelib/io/qfilesystemwatcher.cpp ++++ qtbase6-workdir/src/corelib/io/qfilesystemwatcher.cpp +@@ -11,7 +11,7 @@ + #include + #include + +-#if (defined(Q_OS_LINUX) || defined(Q_OS_QNX)) && QT_CONFIG(inotify) ++#if (defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_ASTRAL)) && QT_CONFIG(inotify) + #define USE_INOTIFY + #endif + +diff --git qtbase6-clean/src/corelib/io/qstorageinfo_unix.cpp qtbase6-workdir/src/corelib/io/qstorageinfo_unix.cpp +index 34ba7b9682b..744bf1bf710 100644 +--- qtbase6-clean/src/corelib/io/qstorageinfo_unix.cpp ++++ qtbase6-workdir/src/corelib/io/qstorageinfo_unix.cpp +@@ -54,6 +54,9 @@ + #elif defined(Q_OS_HAIKU) || defined(Q_OS_CYGWIN) + # define QT_STATFSBUF struct statvfs + # define QT_STATFS ::statvfs ++#elif defined(Q_OS_ASTRAL) ++# define QT_STATFSBUF struct statvfs ++# define QT_STATFS ::statvfs + #else + # if defined(QT_LARGEFILE_SUPPORT) + # define QT_STATFSBUF struct statvfs64 +diff --git qtbase6-clean/src/corelib/thread/qthread_unix.cpp qtbase6-workdir/src/corelib/thread/qthread_unix.cpp +index 00d2b87b7ea..b9f8145746b 100644 +--- qtbase6-clean/src/corelib/thread/qthread_unix.cpp ++++ qtbase6-workdir/src/corelib/thread/qthread_unix.cpp +@@ -844,7 +844,7 @@ void QThread::start(Priority priority) + + + if (d->stackSize > 0) { +-#if defined(_POSIX_THREAD_ATTR_STACKSIZE) && (_POSIX_THREAD_ATTR_STACKSIZE-0 > 0) ++#if (defined(_POSIX_THREAD_ATTR_STACKSIZE) && (_POSIX_THREAD_ATTR_STACKSIZE-0 > 0)) || defined(__astral__) + int code = pthread_attr_setstacksize(&attr, d->stackSize); + #else + int code = ENOSYS; // stack size not supported, automatically fail +diff --git qtbase6-clean/src/gui/configure.cmake qtbase6-workdir/src/gui/configure.cmake +index e34f4d8b30a..ab7d9cf0e78 100644 +--- qtbase6-clean/src/gui/configure.cmake ++++ qtbase6-workdir/src/gui/configure.cmake +@@ -28,7 +28,7 @@ set_property(CACHE INPUT_libpng PROPERTY STRINGS undefined no qt system) + + + #### Libraries +-if(LINUX OR HPUX OR FREEBSD OR NETBSD OR OPENBSD OR SOLARIS OR HURD) ++if(LINUX OR HPUX OR FREEBSD OR NETBSD OR OPENBSD OR SOLARIS OR HURD OR ASTRAL) + set(X11_SUPPORTED 1) + else() + set(X11_SUPPORTED 0) +diff --git qtbase6-clean/src/network/kernel/qnetworkinterface_unix.cpp qtbase6-workdir/src/network/kernel/qnetworkinterface_unix.cpp +index 5313e1707dc..47d7c320129 100644 +--- qtbase6-clean/src/network/kernel/qnetworkinterface_unix.cpp ++++ qtbase6-workdir/src/network/kernel/qnetworkinterface_unix.cpp +@@ -20,6 +20,10 @@ + #elif defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD) || defined(Q_OS_OPENBSD) || defined(Q_OS_DARWIN) + # include + #endif ++ ++#ifdef Q_OS_ASTRAL ++# include ++#endif + + #ifdef QT_LINUXBASE + # include diff --git a/recipes/qtbase6 b/recipes/qtbase6 new file mode 100644 index 00000000..95abddf0 --- /dev/null +++ b/recipes/qtbase6 @@ -0,0 +1,79 @@ +name=qtbase6 +revision=1 +from_source=qtbase6 +imagedeps="build-essential ninja-build" +hostdeps="xgcc xbinutils cmake pkgconfig libstdc++-v3 host-qtbase6" +deps="base at-spi2-core double-conversion fontconfig freetype glib harfbuzz icu libdrm libevdev libice libjpeg-turbo libpng libsm libx11 libxcb libxcursor libxi libxinerama libxkbcommon libxrender mesa openssl pcre2 sqlite xcb-util xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil xcb-util-wm zlib zstd" +clean_workdirs=no + +configure() { + cmake \ + -GNinja \ + -DPKG_CONFIG_EXECUTABLE="/usr/local/bin/x86_64-astral-pkg-config" \ + -DCMAKE_TOOLCHAIN_FILE=${base_dir}/util/cmake \ + -DQT_HOST_PATH=${build_dir}/host-pkgs/host-qtbase6/usr/local \ + -DQT_FORCE_BUILD_TOOLS=ON \ + -DQT_NO_GENERATE_QMAKE_WRAPPER_FOR_TARGET=ON \ + -DBUILD_WITH_PCH=OFF \ + -DCMAKE_INSTALL_PREFIX=${prefix} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DINSTALL_BINDIR=bin \ + -DINSTALL_INCLUDEDIR=include/qt6 \ + -DINSTALL_LIBDIR=lib \ + -DINSTALL_ARCHDATADIR=lib/qt6 \ + -DINSTALL_PLUGINSDIR=lib/qt6/plugins \ + -DINSTALL_LIBEXECDIR=lib/qt6/libexec \ + -DINSTALL_QMLDIR=lib/qt6/qml \ + -DINSTALL_DATADIR=share/qt6 \ + -DINSTALL_DOCDIR=share/qt6-doc \ + -DINSTALL_TRANSLATIONSDIR=share/qt6/translations \ + -DINSTALL_SYSCONFDIR=/etc/xdg \ + -DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \ + -DINSTALL_EXAMPLESDIR=share/qt6/examples \ + -DBUILD_SHARED_LIBS=ON \ + -DQT_BUILD_EXAMPLES=OFF \ + -DQT_BUILD_TESTS=OFF \ + -DFEATURE_concurrent=ON \ + -DFEATURE_dbus=OFF \ + -DFEATURE_gui=ON \ + -DFEATURE_network=ON \ + -DFEATURE_printsupport=ON \ + -DFEATURE_sql=ON \ + -DFEATURE_testlib=ON \ + -DFEATURE_widgets=ON \ + -DFEATURE_icu=ON \ + -DFEATURE_glib=ON \ + -DFEATURE_pcre2=ON \ + -DFEATURE_xml=ON \ + -DFEATURE_harfbuzz=ON \ + -DFEATURE_xkbcommon=ON \ + -DFEATURE_xkbcommon_x11=ON \ + -DFEATURE_libinput=OFF \ + -DFEATURE_evdev=ON \ + -DFEATURE_mtdev=OFF \ + -DFEATURE_egl=ON \ + -DFEATURE_opengl=ON \ + -DFEATURE_accessibility=ON \ + -DFEATURE_xlib=ON \ + -DFEATURE_xcb=ON \ + -DFEATURE_xcb_xlib=ON \ + -DFEATURE_gtk3=OFF \ + -DFEATURE_system_sqlite=ON \ + -DFEATURE_cups=OFF \ + -DFEATURE_wayland=OFF \ + -DFEATURE_vulkan=OFF \ + -DFEATURE_ssl=ON \ + -DQT_FEATURE_jemalloc=OFF \ + -DQT_FEATURE_androiddeployqt=OFF \ + -DQT_UNITY_BUILD=ON \ + ${source_dir} +} + +build() { + ninja -j${parallelism} +} + +package() { + DESTDIR=${dest_dir} ninja install +} diff --git a/source-recipes/qtbase6 b/source-recipes/qtbase6 new file mode 100644 index 00000000..62d6b769 --- /dev/null +++ b/source-recipes/qtbase6 @@ -0,0 +1,5 @@ +name=qtbase6 +version=6.11.0 +source_method=tarball +tarball_url="https://download.qt.io/official_releases/qt/6.11/${version}/submodules/qtbase-everywhere-src-${version}.tar.xz" +tarball_sha256=231ad85979864d914dc9568a1b71c91d6cf20d7b2021d059103bf0eb51cb755e