On 2025 Aug 19 (Tue) at 15:01:48 +0200 (+0200), Theo Buehler wrote: :Currently py-qt6 builds itself in the configure step, in a single :thread that takes well over two hours on a fast machine. In the :latest exopi bulk: : :max_stuck=291.37/depends=17.09/show-prepare-results=5.24/patch=0.86/configure=8543.77/build=6.05/fake=17.14/package=40.79/clean=0.89 : :With the diff below, I could configure it in 10 minutes and build it :in ~15 minutes with -j8 on an 8-core laptop. The plist grew some .pyi :files, which I think is fine. : :I don't use anything using this and don't plan to, so it's only build :tested. : :If this works and is acceptable, I think we can give py-qt5 the :same treatment. Setting DPB_PROPERTIES = parallel can then be :considered separately. :
Yes, please!!!!!! Many thanks for hunting this down. :Index: Makefile :=================================================================== :RCS file: /cvs/ports/x11/py-qt6/Makefile,v :diff -u -p -r1.7 Makefile :--- Makefile 9 Feb 2025 08:55:16 -0000 1.7 :+++ Makefile 19 Aug 2025 12:56:06 -0000 :@@ -3,6 +3,7 @@ COMMENT= Python bindings for Qt6 : MODPY_DISTV= 6.8.0 : DISTNAME= PyQt6-${MODPY_DISTV} : PKGNAME= py-qt6-${MODPY_DISTV} :+REVISION= 0 : : CATEGORIES= x11 devel : :@@ -58,13 +59,14 @@ MODPY_PI= Yes : # https://www.riverbankcomputing.com/static/Docs/PyQt6/installation.html#building-pyqt6 : CONFIGURE_STYLE= simple : CONFIGURE_SCRIPT= ${LOCALBASE}/bin/sip-build :-CONFIGURE_ARGS = --verbose --confirm-license --pep484-pyi :+CONFIGURE_ARGS= --no-make --verbose --confirm-license --pep484-pyi : : MAKE_FLAGS= -C build \ : CC=${CC} \ : CXX=${CXX} \ : COPTS="${CFLAGS}" \ :- CXXOPTS="${CXXFLAGS}" :+ CXXOPTS="${CXXFLAGS}" \ :+ MAKE_JOBS=${MAKE_JOBS} : : FAKE_FLAGS= INSTALL_ROOT=${DESTDIR} : :Index: pkg/PLIST :=================================================================== :RCS file: /cvs/ports/x11/py-qt6/pkg/PLIST,v :diff -u -p -r1.4 PLIST :--- pkg/PLIST 9 Feb 2025 08:55:16 -0000 1.4 :+++ pkg/PLIST 19 Aug 2025 12:51:47 -0000 :@@ -6,38 +6,71 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/PyQt6-${MODPY_DISTV}.dist-info/METADATA : lib/python${MODPY_VERSION}/site-packages/PyQt6-${MODPY_DISTV}.dist-info/RECORD : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtBluetooth${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtBluetooth.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtCore${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtCore.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtDBus${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtDBus.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtDesigner${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtDesigner.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtGui${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtGui.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtHelp${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtHelp.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtMultimedia${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtMultimedia.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtMultimediaWidgets${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtMultimediaWidgets.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtNetwork${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtNetwork.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtNfc${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtNfc.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtOpenGL${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtOpenGL.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtOpenGLWidgets${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtOpenGLWidgets.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPdf${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPdf.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPdfWidgets${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPdfWidgets.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPositioning${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPositioning.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPrintSupport${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtPrintSupport.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQml${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQml.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQuick${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQuick.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQuick3D${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQuick3D.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQuickWidgets${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtQuickWidgets.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtRemoteObjects${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtRemoteObjects.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSensors${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSensors.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSerialPort${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSerialPort.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSpatialAudio${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSpatialAudio.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSql${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSql.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSvg${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSvg.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSvgWidgets${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtSvgWidgets.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtTest${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtTest.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtTextToSpeech${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtTextToSpeech.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtWebChannel${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtWebChannel.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtWebSockets${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtWebSockets.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtWidgets${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtWidgets.pyi : @so lib/python${MODPY_VERSION}/site-packages/PyQt6/QtXml${MODPY_ABI3SO}.so :+lib/python${MODPY_VERSION}/site-packages/PyQt6/QtXml.pyi : lib/python${MODPY_VERSION}/site-packages/PyQt6/__init__.py : lib/python${MODPY_VERSION}/site-packages/PyQt6/bindings/ : lib/python${MODPY_VERSION}/site-packages/PyQt6/bindings/QtBluetooth/ :@@ -839,6 +872,8 @@ lib/python${MODPY_VERSION}/site-packages : lib/python${MODPY_VERSION}/site-packages/PyQt6/lupdate/translation_file.py : lib/python${MODPY_VERSION}/site-packages/PyQt6/lupdate/translations.py : lib/python${MODPY_VERSION}/site-packages/PyQt6/lupdate/user.py :+lib/python${MODPY_VERSION}/site-packages/PyQt6/py.typed :+lib/python${MODPY_VERSION}/site-packages/PyQt6/sip.pyi : lib/python${MODPY_VERSION}/site-packages/PyQt6/uic/ : lib/python${MODPY_VERSION}/site-packages/PyQt6/uic/Compiler/ : lib/python${MODPY_VERSION}/site-packages/PyQt6/uic/Compiler/__init__.py : -- When are you BUTTHEADS gonna learn that you can't oppose Gestapo tactics *with* Gestapo tactics? -- Reuben Flagg