diff --git a/qt6-base/alr.sh b/qt6-base/alr.sh new file mode 100644 index 0000000..f09a1cb --- /dev/null +++ b/qt6-base/alr.sh @@ -0,0 +1,13 @@ +name='qt6-base' +version='6.8.0' +release='1' +desc='A cross-platform application and UI framework.' +homepage='https://www.qt.io' +maintainer="Евгений Храмов " +architectures=('amd64') +license=('GPL3' 'LGPL3' 'FDL' 'custom') + +build_deps=( + 'qt6-qtbase' + 'qt6-xcb-private-headers' +) \ No newline at end of file diff --git a/qt6-qtbase/alr.sh b/qt6-qtbase/alr.sh new file mode 100644 index 0000000..7fe1d86 --- /dev/null +++ b/qt6-qtbase/alr.sh @@ -0,0 +1,136 @@ +name='qt6-qtbase' +version='6.8.0' +release='1' +desc='A cross-platform application and UI framework.' +homepage='https://www.qt.io' +maintainer_ru='Евгений Храмов ' +architectures=('amd64') +license=('GPL3' 'LGPL3' 'FDL' 'custom') +provides=('qt6-qtbase') +conflicts=('qt6-qtbase' 'qt6-qtbase-bin' 'qt6-qtbase-git' 'qt6-qtbase-ibase') + +deps=( + 'brotli' + 'dbus' + 'double-conversion' + 'fontconfig' + 'freetype' + 'libgcc' + 'glib2' + 'glibc' + 'harfbuzz' + 'icu' + 'krb5-libs' + 'libb2' + 'cups-libs' + 'libdrm' + 'libglvnd-glx' + 'libICE' + 'libinput' + 'libjpeg-turbo' + 'libpng' + 'libproxy' + 'libSM' + 'libX11' + 'libxcb' + 'libxkbcommon' + 'libxkbcommon-x11' + 'md4c' + 'mesa-dri-drivers' + 'mtdev' + 'openssl' + 'pcre2' + 'shared-mime-info' + 'sqlite' + 'systemd-libs' + 'tslib' + 'vulkan-headers' + 'xcb-util-cursor' + 'xcb-util-image' + 'xcb-util-keysyms' + 'xcb-util-renderutil' + 'xcb-util-wm' + 'xdg-utils' + 'zlib' + 'zstd' + 'qt6-qttranslations' +) +build_deps=( + 'alsa-lib' + 'cmake' + 'cups' + 'freetds' + 'git' + 'gstreamer1-plugins-base' + 'gtk3' + 'libfbclient2' + 'pulseaudio-libs-devel' + 'mariadb-devel' + 'ninja-build' + 'postgresql' + 'unixODBC-devel' + 'xmlstarlet' + 'libproxy-devel' + 'sqlite-devel' +) +opt_deps=( + 'freetds: MS SQL driver' + 'gdk-pixbuf2: GTK platform plugin' + 'gtk3: GTK platform plugin' + 'libfbclient2: Firebird/iBase driver' + 'R-RMariaDB: MariaDB driver' + 'pango: GTK platform plugin' + 'perl: for syncqt' + 'postgresql-libs: PostgreSQL driver' + 'qt6-qtwayland: to run Qt6 applications in a Wayland session' + 'unixODBC: ODBC driver' +) + +sources=("git+https://code.qt.io/qt/qtbase#tag=v$version") +checksums=('SKIP') + +prepare() { + patch -d qtbase -p1 < $scriptdir/qt6-base-cflags.patch + patch -d qtbase -p1 < $scriptdir/qt6-base-nostrip.patch +} + +build() { + cmake -B build -S qtbase -G Ninja \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DINSTALL_BINDIR=lib/qt6/bin \ + -DINSTALL_PUBLICBINDIR=usr/bin \ + -DINSTALL_LIBEXECDIR=lib/qt6 \ + -DINSTALL_DOCDIR=share/doc/qt6 \ + -DINSTALL_ARCHDATADIR=lib/qt6 \ + -DINSTALL_DATADIR=share/qt6 \ + -DINSTALL_INCLUDEDIR=include/qt6 \ + -DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \ + -DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \ + -DFEATURE_journald=ON \ + -DFEATURE_libproxy=ON \ + -DFEATURE_openssl_linked=ON \ + -DFEATURE_system_sqlite=ON \ + -DFEATURE_system_xcb_xinput=ON \ + -DFEATURE_no_direct_extern_access=ON \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ + -DCMAKE_MESSAGE_LOG_LEVEL=STATUS + cmake --build build -j$(($(nproc) - 1)) +} + +package() { + DESTDIR="$pkgdir" cmake --install build + + install -Dm644 qtbase/LICENSES/* -t qtbase/usr/share/licenses/qtbase + +# Install symlinks for user-facing tools + cd "qtbase" + mkdir usr/bin + while read _line; do + ln -s $_line + done < "$srcdir"/build/user_facing_tool_links.txt + +} + + + diff --git a/qt6-qtbase/qt6-base-cflags.patch b/qt6-qtbase/qt6-base-cflags.patch new file mode 100644 index 0000000..d48e13f --- /dev/null +++ b/qt6-qtbase/qt6-base-cflags.patch @@ -0,0 +1,46 @@ +diff --git a/mkspecs/common/g++-unix.conf b/mkspecs/common/g++-unix.conf +index a493cd5984..41342f5020 100644 +--- a/mkspecs/common/g++-unix.conf ++++ b/mkspecs/common/g++-unix.conf +@@ -10,5 +10,6 @@ + + include(g++-base.conf) + +-QMAKE_LFLAGS_RELEASE += -Wl,-O1 ++SYSTEM_LDFLAGS = $$(LDFLAGS) ++!isEmpty(SYSTEM_LDFLAGS) { eval(QMAKE_LFLAGS_RELEASE += $$(LDFLAGS)) } else { QMAKE_LFLAGS_RELEASE += -Wl,-O1 } + QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined +diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf +index 1f919d270a..7ef6046326 100644 +--- a/mkspecs/common/gcc-base.conf ++++ b/mkspecs/common/gcc-base.conf +@@ -40,9 +40,11 @@ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os + QMAKE_CFLAGS_DEPS += -M + QMAKE_CFLAGS_WARN_ON += -Wall -Wextra + QMAKE_CFLAGS_WARN_OFF += -w +-QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE +-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g +-QMAKE_CFLAGS_DEBUG += -g ++SYSTEM_CFLAGS = $$(CFLAGS) ++SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS) ++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE } ++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g } ++!isEmpty(SYSTEM_DEBUG_CFLAGS) { eval(QMAKE_CFLAGS_DEBUG += $$(DEBUG_CFLAGS)) } else { QMAKE_CFLAGS_DEBUG += -g } + QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC + QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC + QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC +@@ -59,9 +61,11 @@ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS + QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS + QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON + QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF +-QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE +-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO +-QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG ++SYSTEM_CXXFLAGS = $$(CXXFLAGS) ++SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS) ++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE } ++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g } ++!isEmpty(SYSTEM_DEBUG_CXXFLAGS) { eval(QMAKE_CXXFLAGS_DEBUG += $$(DEBUG_CXXFLAGS)) } else { QMAKE_CXXFLAGS_DEBUG += -g } + QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB + QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB + QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP diff --git a/qt6-qtbase/qt6-base-nostrip.patch b/qt6-qtbase/qt6-base-nostrip.patch new file mode 100644 index 0000000..9aead7f --- /dev/null +++ b/qt6-qtbase/qt6-base-nostrip.patch @@ -0,0 +1,13 @@ +diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf +index 99d77156fd..fc840fe9f6 100644 +--- a/mkspecs/common/gcc-base.conf ++++ b/mkspecs/common/gcc-base.conf +@@ -31,6 +31,8 @@ + # you can use the manual test in tests/manual/mkspecs. + # + ++CONFIG += nostrip ++ + QMAKE_CFLAGS_OPTIMIZE = -O2 + QMAKE_CFLAGS_OPTIMIZE_FULL = -O3 + QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og diff --git a/qt6-xcb-private-headers/alr.sh b/qt6-xcb-private-headers/alr.sh new file mode 100644 index 0000000..8dd27a6 --- /dev/null +++ b/qt6-xcb-private-headers/alr.sh @@ -0,0 +1,125 @@ +name='qt6-xcb-private-headers' +version='6.8.0' +release='1' +desc='Private headers for Qt6 Xcb.' +homepage='https://www.qt.io' +maintainer_ru='Евгений Храмов ' +architectures=('amd64') +license=('GPL3' 'LGPL3' 'FDL' 'custom') +provides=('qt6-qtbase') +conflicts=('qt6-qtbase' 'qt6-qtbase-bin' 'qt6-qtbase-git' 'qt6-qtbase-ibase') + +deps=( + 'brotli' + 'dbus' + 'double-conversion' + 'fontconfig' + 'freetype' + 'libgcc' + 'glib2' + 'glibc' + 'harfbuzz' + 'icu' + 'krb5-libs' + 'libb2' + 'cups-libs' + 'libdrm' + 'libglvnd-glx' + 'libICE' + 'libinput' + 'libjpeg-turbo' + 'libpng' + 'libproxy' + 'libSM' + 'libX11' + 'libxcb' + 'libxkbcommon' + 'libxkbcommon-x11' + 'md4c' + 'mesa-dri-drivers' + 'mtdev' + 'openssl' + 'pcre2' + 'shared-mime-info' + 'sqlite' + 'systemd-libs' + 'tslib' + 'vulkan-headers' + 'xcb-util-cursor' + 'xcb-util-image' + 'xcb-util-keysyms' + 'xcb-util-renderutil' + 'xcb-util-wm' + 'xdg-utils' + 'zlib' + 'zstd' + 'qt6-qttranslations' + "qt6-qtbase=$version" +) +build_deps=( + 'alsa-lib' + 'cmake' + 'cups' + 'freetds' + 'git' + 'gstreamer1-plugins-base' + 'gtk3' + 'libfbclient2' + 'pulseaudio-libs-devel' + 'mariadb-devel' + 'ninja-build' + 'postgresql' + 'unixODBC-devel' + 'xmlstarlet' + 'libproxy-devel' + 'sqlite-devel' +) +opt_deps=( + 'freetds: MS SQL driver' + 'gdk-pixbuf2: GTK platform plugin' + 'gtk3: GTK platform plugin' + 'libfbclient2: Firebird/iBase driver' + 'R-RMariaDB: MariaDB driver' + 'pango: GTK platform plugin' + 'perl: for syncqt' + 'postgresql-libs: PostgreSQL driver' + 'qt6-qtwayland: to run Qt6 applications in a Wayland session' + 'unixODBC: ODBC driver' +) + +sources=("git+https://code.qt.io/qt/qtbase#tag=v$version") +checksums=('SKIP') + +prepare() { + patch -d qtbase -p1 < /home/xpamych/IdeaProjects/xpamych-alr-repo/qt6-xcb-private-headers/qt6-base-cflags.patch + patch -d qtbase -p1 < /home/xpamych/IdeaProjects/xpamych-alr-repo/qt6-xcb-private-headers/qt6-base-nostrip.patch +} + +build() { + cmake -B build -S qtbase -G Ninja \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DINSTALL_BINDIR=lib/qt6/bin \ + -DINSTALL_PUBLICBINDIR=usr/bin \ + -DINSTALL_LIBEXECDIR=lib/qt6 \ + -DINSTALL_DOCDIR=share/doc/qt6 \ + -DINSTALL_ARCHDATADIR=lib/qt6 \ + -DINSTALL_DATADIR=share/qt6 \ + -DINSTALL_INCLUDEDIR=include/qt6 \ + -DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \ + -DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \ + -DFEATURE_journald=ON \ + -DFEATURE_libproxy=ON \ + -DFEATURE_openssl_linked=ON \ + -DFEATURE_system_sqlite=ON \ + -DFEATURE_system_xcb_xinput=ON \ + -DFEATURE_no_direct_extern_access=ON \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ + -DCMAKE_MESSAGE_LOG_LEVEL=STATUS + cmake --build build -j$(($(nproc) - 1)) +} + +package () { + cd qtbase + +} diff --git a/qt6-xcb-private-headers/qt6-base-cflags.patch b/qt6-xcb-private-headers/qt6-base-cflags.patch new file mode 100644 index 0000000..d48e13f --- /dev/null +++ b/qt6-xcb-private-headers/qt6-base-cflags.patch @@ -0,0 +1,46 @@ +diff --git a/mkspecs/common/g++-unix.conf b/mkspecs/common/g++-unix.conf +index a493cd5984..41342f5020 100644 +--- a/mkspecs/common/g++-unix.conf ++++ b/mkspecs/common/g++-unix.conf +@@ -10,5 +10,6 @@ + + include(g++-base.conf) + +-QMAKE_LFLAGS_RELEASE += -Wl,-O1 ++SYSTEM_LDFLAGS = $$(LDFLAGS) ++!isEmpty(SYSTEM_LDFLAGS) { eval(QMAKE_LFLAGS_RELEASE += $$(LDFLAGS)) } else { QMAKE_LFLAGS_RELEASE += -Wl,-O1 } + QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined +diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf +index 1f919d270a..7ef6046326 100644 +--- a/mkspecs/common/gcc-base.conf ++++ b/mkspecs/common/gcc-base.conf +@@ -40,9 +40,11 @@ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os + QMAKE_CFLAGS_DEPS += -M + QMAKE_CFLAGS_WARN_ON += -Wall -Wextra + QMAKE_CFLAGS_WARN_OFF += -w +-QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE +-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g +-QMAKE_CFLAGS_DEBUG += -g ++SYSTEM_CFLAGS = $$(CFLAGS) ++SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS) ++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE } ++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g } ++!isEmpty(SYSTEM_DEBUG_CFLAGS) { eval(QMAKE_CFLAGS_DEBUG += $$(DEBUG_CFLAGS)) } else { QMAKE_CFLAGS_DEBUG += -g } + QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC + QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC + QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC +@@ -59,9 +61,11 @@ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS + QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS + QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON + QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF +-QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE +-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO +-QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG ++SYSTEM_CXXFLAGS = $$(CXXFLAGS) ++SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS) ++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE } ++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g } ++!isEmpty(SYSTEM_DEBUG_CXXFLAGS) { eval(QMAKE_CXXFLAGS_DEBUG += $$(DEBUG_CXXFLAGS)) } else { QMAKE_CXXFLAGS_DEBUG += -g } + QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB + QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB + QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP diff --git a/qt6-xcb-private-headers/qt6-base-nostrip.patch b/qt6-xcb-private-headers/qt6-base-nostrip.patch new file mode 100644 index 0000000..9aead7f --- /dev/null +++ b/qt6-xcb-private-headers/qt6-base-nostrip.patch @@ -0,0 +1,13 @@ +diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf +index 99d77156fd..fc840fe9f6 100644 +--- a/mkspecs/common/gcc-base.conf ++++ b/mkspecs/common/gcc-base.conf +@@ -31,6 +31,8 @@ + # you can use the manual test in tests/manual/mkspecs. + # + ++CONFIG += nostrip ++ + QMAKE_CFLAGS_OPTIMIZE = -O2 + QMAKE_CFLAGS_OPTIMIZE_FULL = -O3 + QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og