From ac7524d3c0851b49fd3840d2e921f3b96cdcdfb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Wed, 2 Jun 2021 11:15:45 +0700 Subject: [PATCH 1/3] build-style/qmake: support Qt6 While we're at it, remove Qt4 support since Qt4 was pruned from f1914c9145 (qt: remove, 2021-01-31) --- common/build-style/qmake.sh | 83 ++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/common/build-style/qmake.sh b/common/build-style/qmake.sh index 25d62258f7fb..b1a6deb4cc89 100644 --- a/common/build-style/qmake.sh +++ b/common/build-style/qmake.sh @@ -1,21 +1,19 @@ # -# This helper is for templates using Qt4/Qt5 qmake. +# This helper is for templates using Qt5/Qt6 qmake. # do_configure() { - local qmake + local qt local qmake_args - if [ -x "/usr/lib/qt5/bin/qmake" ]; then + if [ -x "/usr/lib/qt6/bin/qmake" ]; then + # Qt6 qmake + qt=qt6 + elif [ -x "/usr/lib/qt5/bin/qmake" ]; then # Qt5 qmake - qmake="/usr/lib/qt5/bin/qmake" - fi - if [ -x "/usr/lib/qt/bin/qmake" ]; then - # Qt4 qmake - qmake="/usr/lib/qt/bin/qmake" - fi - if [ -z "${qmake}" ]; then + qt=qt5 + else msg_error "${pkgver}: Could not find qmake - missing in hostmakedepends?\n" fi - if [ "$CROSS_BUILD" ] && [ "$qmake" == "/usr/lib/qt5/bin/qmake" ]; then + if [ "$CROSS_BUILD" ]; then case $XBPS_TARGET_MACHINE in i686*) _qt_arch=i386;; x86_64*) _qt_arch=x86_64;; @@ -31,13 +29,13 @@ MAKEFILE_GENERATOR = UNIX CONFIG += incremental no_qt_rpath QMAKE_INCREMENTAL_STYLE = sublib -include(/usr/lib/qt5/mkspecs/common/linux.conf) -include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf) -include(/usr/lib/qt5/mkspecs/common/g++-unix.conf) +include(/usr/lib/$qt/mkspecs/common/linux.conf) +include(/usr/lib/$qt/mkspecs/common/gcc-base-unix.conf) +include(/usr/lib/$qt/mkspecs/common/g++-unix.conf) -QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri -QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri -QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/modules +QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/$qt/mkspecs/qconfig.pri +QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/$qt/mkspecs/qmodule.pri +QMAKEMODULES = ${XBPS_CROSS_BASE}/usr/lib/$qt/mkspecs/modules QMAKE_CC = ${CC} QMAKE_CXX = ${CXX} QMAKE_LINK = ${CXX} @@ -54,7 +52,7 @@ QMAKE_CXXFLAGS = ${CXXFLAGS} QMAKE_LFLAGS = ${LDFLAGS} load(qt_config) _EOF - echo "#include \"${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h" + echo "#include \"${XBPS_CROSS_BASE}/usr/lib/$qt/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.target-spec/linux-g++/qplatformdefs.h" mkdir -p "${wrksrc}/.host-spec/linux-g++" cat > "${wrksrc}/.host-spec/linux-g++/qmake.conf" <<_EOF @@ -62,12 +60,12 @@ MAKEFILE_GENERATOR = UNIX CONFIG += incremental no_qt_rpath QMAKE_INCREMENTAL_STYLE = sublib -include(/usr/lib/qt5/mkspecs/common/linux.conf) -include(/usr/lib/qt5/mkspecs/common/gcc-base-unix.conf) -include(/usr/lib/qt5/mkspecs/common/g++-unix.conf) +include(/usr/lib/$qt/mkspecs/common/linux.conf) +include(/usr/lib/$qt/mkspecs/common/gcc-base-unix.conf) +include(/usr/lib/$qt/mkspecs/common/g++-unix.conf) -QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qconfig.pri -QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/qt5/mkspecs/qmodule.pri +QMAKE_TARGET_CONFIG = ${XBPS_CROSS_BASE}/usr/lib/$qt/mkspecs/qconfig.pri +QMAKE_TARGET_MODULE = ${XBPS_CROSS_BASE}/usr/lib/$qt/mkspecs/qmodule.pri QMAKE_CC = ${CC_host} QMAKE_CXX = ${CXX_host} QMAKE_LINK = ${CXX_host} @@ -79,46 +77,47 @@ QMAKE_OBJCOPY = ${OBJCOPY_host} QMAKE_NM = ${NM_host} -P QMAKE_STRIP = ${STRIP_host} -QMAKE_CFLAGS = ${CFLAGS_host} -QMAKE_CXXFLAGS = ${CXXFLAGS_host} -QMAKE_LFLAGS = ${LDFLAGS_host} +QMAKE_CFLAGS += ${CFLAGS_host} +QMAKE_CXXFLAGS += ${CXXFLAGS_host} +QMAKE_LFLAGS += ${LDFLAGS_host} load(qt_config) _EOF -echo '#include "/usr/lib/qt5/mkspecs/linux-g++/qplatformdefs.h"' > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h" +echo "#include \"/usr/lib/$qt/mkspecs/linux-g++/qplatformdefs.h\"" > "${wrksrc}/.host-spec/linux-g++/qplatformdefs.h" cat > "${wrksrc}/qt.conf" <<_EOF [Paths] Sysroot=${XBPS_CROSS_BASE} Prefix=/usr -ArchData=${XBPS_CROSS_BASE}/usr/lib/qt5 -Data=${XBPS_CROSS_BASE}/usr/share/qt5 -Documentation=${XBPS_CROSS_BASE}/usr/share/doc/qt5 -Headers=${XBPS_CROSS_BASE}/usr/include/qt5 +ArchData=${XBPS_CROSS_BASE}/usr/lib/$qt +Data=${XBPS_CROSS_BASE}/usr/share/$qt +Documentation=${XBPS_CROSS_BASE}/usr/share/doc/$qt +Headers=${XBPS_CROSS_BASE}/usr/include/$qt Libraries=${XBPS_CROSS_BASE}/usr/lib -LibraryExecutables=/usr/lib/qt5/libexec -Binaries=/usr/lib/qt5/bin +LibraryExecutables=/usr/lib/$qt/libexec +Binaries=/usr/lib/$qt/bin Tests=${XBPS_CROSS_BASE}/usr/tests -Plugins=/usr/lib/qt5/plugins -Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/imports -Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/qml -Translations=${XBPS_CROSS_BASE}/usr/share/qt5/translations +Plugins=/usr/lib/$qt/plugins +Imports=${XBPS_CROSS_BASE}/usr/lib/$qt/imports +Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/$qt/qml +Translations=${XBPS_CROSS_BASE}/usr/share/$qt/translations Settings=${XBPS_CROSS_BASE}/etc/xdg -Examples=${XBPS_CROSS_BASE}/usr/share/qt5/examples +Examples=${XBPS_CROSS_BASE}/usr/share/$qt/examples HostPrefix=/usr -HostData=/usr/lib/qt5 -HostBinaries=/usr/lib/qt5/bin +HostData=/usr/lib/$qt +HostBinaries=/usr/lib/$qt/bin HostLibraries=/usr/lib +HostLibraryExecutables=/usr/lib/$qt/libexec Spec=${wrksrc}/.host-spec/linux-g++ TargetSpec=${wrksrc}/.target-spec/linux-g++ _EOF qmake_args="-qtconf ${wrksrc}/qt.conf PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}" - ${qmake} ${qmake_args} \ + /usr/lib/${qt}/bin/qmake ${qmake_args} \ PREFIX=/usr \ QT_INSTALL_PREFIX=/usr \ LIB=/usr/lib \ QT_TARGET_ARCH=$_qt_arch \ ${configure_args} else - ${qmake} ${qmake_args} \ + /usr/lib/${qt}/bin/qmake ${qmake_args} \ PREFIX=/usr \ QT_INSTALL_PREFIX=/usr \ LIB=/usr/lib \ From c45f61f9f0f3e5522d9e1178a5f6d2963936a66c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sun, 6 Jun 2021 22:13:25 +0700 Subject: [PATCH 2/3] New package: qscintilla-qt6-2.12.1 --- common/shlibs | 1 + srcpkgs/qscintilla-qt6-devel | 1 + srcpkgs/qscintilla-qt6/template | 67 +++++++++++++++++++++++++++++++++ srcpkgs/qscintilla-qt6/update | 2 + 4 files changed, 71 insertions(+) create mode 120000 srcpkgs/qscintilla-qt6-devel create mode 100644 srcpkgs/qscintilla-qt6/template create mode 100644 srcpkgs/qscintilla-qt6/update diff --git a/common/shlibs b/common/shlibs index 7b007a129e17..6a05cc869eda 100644 --- a/common/shlibs +++ b/common/shlibs @@ -2951,6 +2951,7 @@ libCGAL.so.13 cgal-4.10_1 libCGAL_Core.so.13 cgal-4.10_1 libCGAL_ImageIO.so.14 cgal-4.14_1 libqscintilla2_qt5.so.15 qscintilla-qt5-2.11_1 +libqscintilla2_qt6.so.15 qscintilla-qt6-2.12.1_1 libQtAVWidgets.so.1 qtav-1.12.0_1 libQtAV.so.1 qtav-1.12.0_1 liblxpanel.so.0 lxpanel-0.9.3_1 diff --git a/srcpkgs/qscintilla-qt6-devel b/srcpkgs/qscintilla-qt6-devel new file mode 120000 index 000000000000..7ee3295294b5 --- /dev/null +++ b/srcpkgs/qscintilla-qt6-devel @@ -0,0 +1 @@ +qscintilla-qt6 \ No newline at end of file diff --git a/srcpkgs/qscintilla-qt6/template b/srcpkgs/qscintilla-qt6/template new file mode 100644 index 000000000000..03a3077928b5 --- /dev/null +++ b/srcpkgs/qscintilla-qt6/template @@ -0,0 +1,67 @@ +# Template file for 'qscintilla-qt6' +# Keep synced with python3-pyqt6-qsci +pkgname=qscintilla-qt6 +version=2.12.1 +revision=1 +wrksrc="QScintilla_src-${version}" +build_wrksrc=src +build_style=qmake +hostmakedepends="qt6-base-devel pkg-config" +makedepends="qt6-tools-devel" +short_desc="Qt6 port of Neil Hodgson's Scintilla C++ editor class" +maintainer="Đoàn Trần Công Danh " +license="GPL-3.0-only" +homepage="https://www.riverbankcomputing.com/software/qscintilla/intro" +distfiles="https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla_src-${version}.tar.gz" +checksum=a7331c44b5d7320cbf58cb2382c38857e9e9f4fa52c405bd7776c8b6649836c2 + +post_configure() { + local _qt_arch + local qmake_args + if [ "$CROSS_BUILD" ]; then + case $XBPS_TARGET_MACHINE in + i686*) _qt_arch=i386;; + x86_64*) _qt_arch=x86_64;; + aarch64*) _qt_arch=arm64;; + arm*) _qt_arch=arm;; + mips*) _qt_arch=mips;; + ppc64*) _qt_arch=power64;; + ppc*) _qt_arch=power;; + esac + qmake_args="-qtconf ${wrksrc}/qt.conf + PKG_CONFIG_EXECUTABLE=${XBPS_WRAPPERDIR}/${PKG_CONFIG}" + fi + cd $wrksrc/designer + /usr/lib/qt6/bin/qmake \ + ${qmake_args} \ + PREFIX=/usr \ + QT_INSTALL_PREFIX=/usr \ + LIB=/usr/lib \ + QMAKE_CC=$CC QMAKE_CXX=$CXX \ + QMAKE_LINK=$CXX QMAKE_LINK_C=$CC \ + QMAKE_CFLAGS="${CFLAGS} -I$wrksrc/src" \ + QMAKE_CXXFLAGS="${CXXFLAGS} -I$wrksrc/src" \ + QMAKE_LFLAGS="${LDFLAGS}" \ + ${_qt_arch:+"QT_TARGET_ARCH=$_qt_arch"} \ + CONFIG+=no_qt_rpath +} + +post_build() { + make -C $wrksrc/designer ${makejobs} CC="$CC" CXX="$CXX" LINK="$CXX" +} + +post_install() { + make -C $wrksrc/designer STRIP=true PREFIX=/usr DESTDIR=${DESTDIR} \ + INSTALL_ROOT=${DESTDIR} install +} + +qscintilla-qt6-devel_package() { + short_desc+=" - development files" + depends="${makedepends} ${sourcepkg}>=${version}_${revision}" + pkg_install() { + vmove usr/include + vmove "usr/lib/*.so" + vmove usr/lib/qt6/mkspecs + vmove usr/share/qt6/qsci/api + } +} diff --git a/srcpkgs/qscintilla-qt6/update b/srcpkgs/qscintilla-qt6/update new file mode 100644 index 000000000000..8ddafc0f70ad --- /dev/null +++ b/srcpkgs/qscintilla-qt6/update @@ -0,0 +1,2 @@ +site="https://www.riverbankcomputing.com/software/qscintilla/download" +pattern='QScintilla[_a-zA-Z]*-\K[\d.]+(?=.tar.gz)' From a58666e25d9972ba30c44c580c76e54c53b59445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 8 Jun 2021 14:20:04 +0700 Subject: [PATCH 3/3] New package: python3-pyqt6-qsci-2.12.1 --- srcpkgs/python3-pyqt6-qsci-devel | 1 + .../python3-pyqt6-qsci/patches/cross.patch | 20 ++++++++++ srcpkgs/python3-pyqt6-qsci/template | 39 +++++++++++++++++++ srcpkgs/python3-pyqt6-qsci/update | 2 + 4 files changed, 62 insertions(+) create mode 120000 srcpkgs/python3-pyqt6-qsci-devel create mode 100644 srcpkgs/python3-pyqt6-qsci/patches/cross.patch create mode 100644 srcpkgs/python3-pyqt6-qsci/template create mode 100644 srcpkgs/python3-pyqt6-qsci/update diff --git a/srcpkgs/python3-pyqt6-qsci-devel b/srcpkgs/python3-pyqt6-qsci-devel new file mode 120000 index 000000000000..a70f9fccd39f --- /dev/null +++ b/srcpkgs/python3-pyqt6-qsci-devel @@ -0,0 +1 @@ +python3-pyqt6-qsci \ No newline at end of file diff --git a/srcpkgs/python3-pyqt6-qsci/patches/cross.patch b/srcpkgs/python3-pyqt6-qsci/patches/cross.patch new file mode 100644 index 000000000000..e69b09225d0b --- /dev/null +++ b/srcpkgs/python3-pyqt6-qsci/patches/cross.patch @@ -0,0 +1,20 @@ +Index: QScintilla_src-2.12.1/Python/project.py +=================================================================== +--- QScintilla_src-2.12.1.orig/Python/project.py ++++ QScintilla_src-2.12.1/Python/project.py +@@ -41,6 +41,15 @@ class QScintilla(PyQtProject): + # static or dynamic). + self.qsci_external_lib = not os.path.isdir('src') + ++ def run_command(self, args, *, fatal=True): ++ """ Run a command and display the output if requested. """ ++ qemu_machine = os.environ.get("XBPS_TARGET_QEMU_MACHINE") ++ builddir = os.environ.get("XBPS_BUILDDIR") ++ if qemu_machine and args[0].startswith(os.path.join(builddir, "QScintilla")): ++ qemu = "qemu-{}-static".format(qemu_machine) ++ args.insert(0, qemu) ++ super().run_command(args, fatal=fatal) ++ + def apply_user_defaults(self, tool): + """ Set default values for user options that haven't been set yet. """ + diff --git a/srcpkgs/python3-pyqt6-qsci/template b/srcpkgs/python3-pyqt6-qsci/template new file mode 100644 index 000000000000..a6c1f81ba763 --- /dev/null +++ b/srcpkgs/python3-pyqt6-qsci/template @@ -0,0 +1,39 @@ +# Template file for 'python3-pyqt6-qsci' +# XXX Keep in sync with qscintilla-qt6 +# Splited because pyqt6-qsci requires qscintilla-qt6 built at configure time. +pkgname=python3-pyqt6-qsci +version=2.12.1 +revision=1 +wrksrc=QScintilla_src-$version +build_wrksrc=Python +build_style=sip-build +build_helper=qemu +hostmakedepends="qt6-base-devel qscintilla-qt6-devel python3-PyQt-builder + python3-pyqt6-tools-devel python3-pyqt6-printsupport-devel pkg-config" +makedepends="qscintilla-qt6-devel qt6-tools-devel python3-devel" +depends="python3-pyqt6" +short_desc="Qt6 port of Scintilla editor - Python 3 binding" +maintainer="Đoàn Trần Công Danh " +license="GPL-3.0-only" +homepage="https://www.riverbankcomputing.com/software/qscintilla/intro" +distfiles="https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla_src-${version}.tar.gz" +checksum=a7331c44b5d7320cbf58cb2382c38857e9e9f4fa52c405bd7776c8b6649836c2 +lib32disabled=yes + +CXXFLAGS="$(printf " -I$XBPS_CROSS_BASE/usr/include/qt6/%s" \ + QtWidgets QtPrintSupport)" + +post_extract() { + rm -rf src + ln -sf pyproject-qt6.toml Python/pyproject.toml +} + +python3-pyqt6-qsci-devel_package() { + lib32disabled=yes + short_desc+=" - development files" + depends="${makedepends} ${sourcepkg}>=${version}_${revision}" + pkg_install() { + vmove ${py3_sitelib}/PyQt6/bindings + vmove usr/share/qt6/qsci/api + } +} diff --git a/srcpkgs/python3-pyqt6-qsci/update b/srcpkgs/python3-pyqt6-qsci/update new file mode 100644 index 000000000000..8ddafc0f70ad --- /dev/null +++ b/srcpkgs/python3-pyqt6-qsci/update @@ -0,0 +1,2 @@ +site="https://www.riverbankcomputing.com/software/qscintilla/download" +pattern='QScintilla[_a-zA-Z]*-\K[\d.]+(?=.tar.gz)'