pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Proposed changes for py-qt5 and py-qt5-scintilla (was Re: How to deal with packages having the same files)



So, below I have some patches to py-qt5 and the packages that depend on
it. I added ${PYVERSSUFFIX} to

bin/pylupdate5-${PYVERSSUFFIX}
bin/pyrcc5-${PYVERSSUFFIX}
bin/pyuic5-${PYVERSSUFFIX}
qt5/plugins/PyQt5-${PYVERSSUFFIX}/libpyqt5qmlplugin.so
qt5/plugins/designer${PYVERSSUFFIX}/libpyqt5.so
qt5/qsci${PYVERSSUFFIX}/api/python/PyQt5.api

and actually fewer packages cared than I expected. In particular,
PyQt5.api and libpyqt5qmlplugin.so never seem to be used. I did however
run into some broken packages that already seemed to be broken before my
changes.

I had to do the same thing basically for py-qt5-scintilla, since you
also get that once per python version.

With this I can finally install both misc/calibre and
emulators/fs-uae-launcher at the same time (which both use py-qt5 but
with completely incompatible python versions).

Possibly the same python-versioning needs to be done for py-qt4,
but there I didn't personally run into any conflicts yet.

I am considering whether the ALTERNATIVES for pyrcc5 etc are even
necessary. I don't want the optional presence of alternative names to
hide the fact that a package's build is broken.

Is there anything that I've missed?

Summary of my findings (and below the diff):

OK WITHOUT CHANGE:

./emulators/fs-uae-arcade/Makefile:DEPENDS+=    ${PYPKGPREFIX}-qt5>=5.4:../../x11/py-qt5
./emulators/fs-uae-launcher/Makefile:DEPENDS+=  ${PYPKGPREFIX}-qt5>=5.4:../../x11/py-qt5
./misc/calibre/Makefile:.include "../../x11/py-qt5/buildlink3.mk"
./games/kajongg/Makefile:.include "../../x11/py-qt5/buildlink3.mk"
./emulators/gns3-gui/Makefile:DEPENDS+= ${PYPKGPREFIX}-qt5-[0-9]*:../../x11/py-qt5

OK WITH CHANGE:

./x11/py-qt5-qscintilla/Makefile:.include "../../x11/py-qt5/buildlink3.mk"
    somewhat surprisingly has no references to PyQt5.api
    versioned qt5/qsci${PYVERSSUFFIX}/api/python/QScintilla2.api

./geography/qgis/options.mk:.include "../../x11/py-qt5-qscintilla/buildlink3.mk"
    I don't know how to test this but it seemed ok.

FAILS FOR OTHER REASONS

./sysutils/dupeguru/Makefile:DEPENDS+=  ${PYPKGPREFIX}-qt5-[0-9]*:../../x11/py-qt5
    uses pyrcc5, patched to pyrcc5-${PYVERSSUFFIX}
    fails to build anyway (lupdate? => pylupdate5-3.7?
    /usr/pkg/qt5/bin/lupdate?).

./finance/moneyguru/Makefile:DEPENDS+=  ${PYPKGPREFIX}-qt5-[0-9]*:../../x11/py-qt5
    uses pyrcc5, patched to pyrcc5-${PYVERSSUFFIX}
    fails to build anyway, same as sysutils/dupeguru

./editors/retext/Makefile:.include "../../x11/py-qt5/buildlink3.mk"
    running build_translations
    Failed to build translations: [Errno 2] No such file or directory: 'lrelease': 'lrelease'
    Maybe /usr/pkg/qt5/bin needs to be in $PATH.

./devel/py-tortoisehg/Makefile:.include "../../x11/py-qt5-qscintilla/buildlink3.mk"
    builds but fails at runtime:
    "This version of TortoiseHg requires Mercurial version 4.9.n to 5.1.n, but found 5.2"

./print/hplip/options.mk:.include "../../x11/py-qt5/buildlink3.mk"
    need to set "PKG_OPTIONS.hplip+=qt5". Build broken because PLIST.qt5
    contains files related to qt4 (which don't get built).

./graphics/veusz/Makefile:.include "../../x11/py-qt5/buildlink3.mk"
    builds but fails at runtime:
    VO table import: astropy module not available
    SAMP: sampy module not available
    Segmentation fault (core dumped)


cvs diff: Diffing x11/py-qt5
Index: x11/py-qt5/ALTERNATIVES
===================================================================
RCS file: x11/py-qt5/ALTERNATIVES
diff -N x11/py-qt5/ALTERNATIVES
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ x11/py-qt5/ALTERNATIVES	22 Jan 2020 19:32:57 -0000
@@ -0,0 +1,3 @@
+bin/pylupdate5 @PREFIX@/bin/pylupdate5-${PYVERSSUFFIX}
+bin/pyrcc5 @PREFIX@/bin/pyrcc5-${PYVERSSUFFIX}
+bin/pyuic5 @PREFIX@/bin/pyuic5-${PYVERSSUFFIX}

Index: x11/py-qt5/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/x11/py-qt5/Makefile,v
retrieving revision 1.49
diff -u -r1.49 Makefile
--- x11/py-qt5/Makefile	18 Nov 2019 19:44:51 -0000	1.49
+++ x11/py-qt5/Makefile	22 Jan 2020 19:32:57 -0000
@@ -1,6 +1,7 @@
 # $NetBSD: Makefile,v 1.49 2019/11/18 19:44:51 adam Exp $
 
 DISTNAME=	PyQt5-5.13.2
+PKGREVISION=    1
 PKGNAME=	${PYPKGPREFIX}-${DISTNAME:S/PyQt5/qt5/}
 CATEGORIES=	x11 python
 MASTER_SITES=	https://www.riverbankcomputing.com/static/Downloads/PyQt5/${PKGVERSION_NOREV}/
@@ -21,9 +22,12 @@
 CONFIGURE_ARGS+=	-b ${PREFIX}/bin
 CONFIGURE_ARGS+=	-d ${PREFIX}/${PYSITELIB}
 CONFIGURE_ARGS+=	--sipdir ${PREFIX}/share/sip${PYVERSSUFFIX}/PyQt5
+CONFIGURE_ARGS+=	--qml-plugindir ${PREFIX}/qt5/plugins/PyQt5-${PYVERSSUFFIX}/
+CONFIGURE_ARGS+=	--designer-plugindir ${PREFIX}/qt5/plugins/designer${PYVERSSUFFIX}/
 CONFIGURE_ARGS+=	-q ${QTDIR}/bin/qmake
 CONFIGURE_ARGS+=	--confirm-license
 CONFIGURE_ARGS+=	--qsci-api
+CONFIGURE_ARGS+=	--qsci-api-destdir ${PREFIX}/qt5/qsci${PYVERSSUFFIX}
 CONFIGURE_ARGS+=	--sip ${BUILDLINK_PREFIX.py-sip}/bin/sip${PYVERSSUFFIX}
 CONFIGURE_ARGS+=	--verbose
 
@@ -60,6 +64,13 @@
 .else
 PLIST.x11=	yes
 .endif
+post-install: fix-alternatives
+
+fix-alternatives:
+	cd ${DESTDIR}${PREFIX}/bin && \
+	${MV} pylupdate5 pylupdate5-${PYVERSSUFFIX} && \
+	${MV} pyrcc5 pyrcc5-${PYVERSSUFFIX} && \
+	${MV} pyuic5 pyuic5-${PYVERSSUFFIX} || ${TRUE}
 
 .include "../../lang/python/extension.mk"
 .include "../../sysutils/dbus-python-common/buildlink3.mk"

Index: x11/py-qt5/PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/x11/py-qt5/PLIST,v
retrieving revision 1.13
diff -u -r1.13 PLIST
--- x11/py-qt5/PLIST	29 Oct 2019 19:17:09 -0000	1.13
+++ x11/py-qt5/PLIST	22 Jan 2020 19:32:57 -0000
@@ -1,7 +1,7 @@
 @comment $NetBSD: PLIST,v 1.13 2019/10/29 19:17:09 bouyer Exp $
-bin/pylupdate5
-bin/pyrcc5
-bin/pyuic5
+bin/pylupdate5-${PYVERSSUFFIX}
+bin/pyrcc5-${PYVERSSUFFIX}
+bin/pyuic5-${PYVERSSUFFIX}
 ${PYSITELIB}/PyQt5-${PKGVERSION}.dist-info/INSTALLER
 ${PYSITELIB}/PyQt5-${PKGVERSION}.dist-info/METADATA
 ${PYSITELIB}/PyQt5-${PKGVERSION}.dist-info/RECORD
@@ -106,9 +106,9 @@
 ${PYSITELIB}/PyQt5/uic/widget-plugins/qtwebenginewidgets.py
 ${PYSITELIB}/PyQt5/uic/widget-plugins/qtwebkit.py
 ${PYSITELIB}/dbus/mainloop/pyqt5.so
-qt5/plugins/PyQt5/libpyqt5qmlplugin.so
-qt5/plugins/designer/libpyqt5.so
-qt5/qsci/api/python/PyQt5.api
+qt5/plugins/PyQt5-${PYVERSSUFFIX}/libpyqt5qmlplugin.so
+qt5/plugins/designer${PYVERSSUFFIX}/libpyqt5.so
+qt5/qsci${PYVERSSUFFIX}/api/python/PyQt5.api
 share/sip${PYVERSSUFFIX}/PyQt5/Enginio/Enginiomod.sip
 share/sip${PYVERSSUFFIX}/PyQt5/Enginio/enginio.sip
 share/sip${PYVERSSUFFIX}/PyQt5/Enginio/enginioclient.sip

cvs diff: Diffing x11/py-qt5/patches
cvs diff: Diffing x11/py-qt5-qscintilla

Index: x11/py-qt5-qscintilla/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/x11/py-qt5-qscintilla/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- x11/py-qt5-qscintilla/Makefile	29 Oct 2019 19:17:09 -0000	1.2
+++ x11/py-qt5-qscintilla/Makefile	22 Jan 2020 19:32:57 -0000
@@ -5,7 +5,7 @@
 
 PKGNAME=	${PYPKGPREFIX}-qt5-${DISTNAME:tl:S/_gpl-/-/}
 COMMENT=	QScintilla -- Python bindings
-PKGREVISION=	1
+PKGREVISION=	2
 
 WRKSRC=		${WRKDIR}/${DISTNAME}/Python
 
@@ -22,7 +22,8 @@
 	    --qmake=${QTDIR}/bin/qmake --sip=${PREFIX}/bin/sip${PYVERSSUFFIX} \
 	    --pyqt-sipdir=${PREFIX}/share/sip${PYVERSSUFFIX}/PyQt5 \
 	    --qsci-sipdir=${PREFIX}/share/sip${PYVERSSUFFIX}/PyQt5 \
-	    --qsci-libdir=${QTDIR}/lib
+	    --qsci-libdir=${QTDIR}/lib \
+	    --apidir=${QTDIR}/qsci${PYVERSSUFFIX}
 
 .include "../../lang/python/extension.mk"
 .include "../../x11/py-sip/buildlink3.mk"

Index: x11/py-qt5-qscintilla/PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/x11/py-qt5-qscintilla/PLIST,v
retrieving revision 1.2
diff -u -r1.2 PLIST
--- x11/py-qt5-qscintilla/PLIST	29 Oct 2019 19:17:09 -0000	1.2
+++ x11/py-qt5-qscintilla/PLIST	22 Jan 2020 19:32:57 -0000
@@ -4,7 +4,7 @@
 ${PYSITELIB}/QScintilla-${PKGVERSION}.dist-info/INSTALLER
 ${PYSITELIB}/QScintilla-${PKGVERSION}.dist-info/METADATA
 ${PYSITELIB}/QScintilla-${PKGVERSION}.dist-info/RECORD
-qt5/qsci/api/python/QScintilla2.api
+qt5/qsci${PYVERSSUFFIX}/api/python/QScintilla2.api
 share/sip${PYVERSSUFFIX}/PyQt5/Qsci/qsciabstractapis.sip
 share/sip${PYVERSSUFFIX}/PyQt5/Qsci/qsciapis.sip
 share/sip${PYVERSSUFFIX}/PyQt5/Qsci/qscicommand.sip

cvs diff: Diffing sysutils/dupeguru

Index: sysutils/dupeguru/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/sysutils/dupeguru/Makefile,v
retrieving revision 1.7
diff -u -r1.7 Makefile
--- sysutils/dupeguru/Makefile	4 Nov 2019 21:28:44 -0000	1.7
+++ sysutils/dupeguru/Makefile	22 Jan 2020 19:32:57 -0000
@@ -2,7 +2,7 @@
 
 DISTNAME=	dupeguru-src-4.0.3
 PKGNAME=	${DISTNAME:S/-src//}
-PKGREVISION=	3
+PKGREVISION=	4
 CATEGORIES=	sysutils
 MASTER_SITES=	https://download.hardcoded.net/
 
@@ -29,10 +29,12 @@
 PYTHON_VERSIONS_INCOMPATIBLE=	27
 REPLACE_PYTHON+=		qt/run_template.py
 
+MAKE_ENV+=	PYVERSSUFFIX=${PYVERSSUFFIX}
+
 INSTALLATION_DIRS=	bin share/applications share/dupeguru
 
 do-build:
-	cd ${WRKSRC} && ${PYTHONBIN} build.py
+	cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ${PYTHONBIN} build.py
 	${CHMOD} +x ${WRKSRC}/run.py
 
 do-install:

Index: sysutils/dupeguru/distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/sysutils/dupeguru/distinfo,v
retrieving revision 1.2
diff -u -r1.2 distinfo
--- sysutils/dupeguru/distinfo	14 Mar 2018 17:11:26 -0000	1.2
+++ sysutils/dupeguru/distinfo	22 Jan 2020 19:32:57 -0000
@@ -4,5 +4,7 @@
 RMD160 (dupeguru-src-4.0.3.tar.gz) = 5cd2b7f93276fcd8f09b699cfec5246f7dc5abed
 SHA512 (dupeguru-src-4.0.3.tar.gz) = dc8a5a122ad1d3d235825a498fb75b192566d3b5a33382ebb0002a361428af5cc453b143002ea3f57a9cb6ee30ce49f0b9f5a54bce2a90364fb1b92e102a289a
 Size (dupeguru-src-4.0.3.tar.gz) = 686580 bytes
+SHA1 (patch-Makefile) = 809ee7de40622a0e348df60b1251f2bed3c49b97
+SHA1 (patch-build.py) = 074a9adb4e48c07b637abe9183d49ece7d5520dc
 SHA1 (patch-hscommon_sphinxgen.py) = cd558d14733d394e7adf2b6b0c826dda5eed689f
 SHA1 (patch-qt_platform.py) = e97e226b53f57f8c4e9bf21f4726e024bb0b2d67

cvs diff: Diffing sysutils/dupeguru/patches

Index: sysutils/dupeguru/patches/patch-Makefile
===================================================================
RCS file: sysutils/dupeguru/patches/patch-Makefile
diff -N sysutils/dupeguru/patches/patch-Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysutils/dupeguru/patches/patch-Makefile	22 Jan 2020 19:32:57 -0000
@@ -0,0 +1,15 @@
+$NetBSD$
+
+pyrcc5 is python-version-specific.
+
+--- Makefile.orig	2016-11-25 01:04:31.000000000 +0000
++++ Makefile
+@@ -54,7 +54,7 @@ build/help : | env
+ 	./env/bin/python build.py --doc
+ 
+ qt/dg_rc.py : qt/dg.qrc
+-	pyrcc5 qt/dg.qrc > qt/dg_rc.py
++	pyrcc5-${PYVERSSUFFIX} qt/dg.qrc > qt/dg_rc.py
+ 
+ i18n: $(mofiles)
+ 

Index: sysutils/dupeguru/patches/patch-build.py
===================================================================
RCS file: sysutils/dupeguru/patches/patch-build.py
diff -N sysutils/dupeguru/patches/patch-build.py
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sysutils/dupeguru/patches/patch-build.py	22 Jan 2020 19:32:57 -0000
@@ -0,0 +1,16 @@
+$NetBSD$
+
+pyrcc5 is python-version-specific.
+
+--- build.py.orig	2016-11-25 01:04:31.000000000 +0000
++++ build.py
+@@ -164,7 +164,8 @@ def build_qt(dev):
+     print("Building localizations")
+     build_localizations('qt')
+     print("Building Qt stuff")
+-    print_and_do("pyrcc5 {0} > {1}".format(op.join('qt', 'dg.qrc'), op.join('qt', 'dg_rc.py')))
++    pyrcc5 = "pyrcc5-" + os.environ["PYVERSSUFFIX"]
++    print_and_do(pyrcc5 +" {0} > {1}".format(op.join('qt', 'dg.qrc'), op.join('qt', 'dg_rc.py')))
+     fix_qt_resource_file(op.join('qt', 'dg_rc.py'))
+     build_help()
+     print("Creating the run.py file")
cvs diff: Diffing finance/moneyguru

Index: finance/moneyguru/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/finance/moneyguru/Makefile,v
retrieving revision 1.24
diff -u -r1.24 Makefile
--- finance/moneyguru/Makefile	2 Nov 2019 16:08:47 -0000	1.24
+++ finance/moneyguru/Makefile	22 Jan 2020 19:32:57 -0000
@@ -2,7 +2,7 @@
 
 DISTNAME=	moneyguru-src-2.11.0
 PKGNAME=	${DISTNAME:S/-src//}
-PKGREVISION=	1
+PKGREVISION=	2
 CATEGORIES=	finance
 MASTER_SITES=	https://download.hardcoded.net/
 
@@ -40,8 +40,10 @@
 
 PLIST_SUBST+=	BASE_ARCH=${BASE_ARCH:Q}
 
+MAKE_ENV+=	PYVERSSUFFIX=${PYVERSSUFFIX}
+
 do-build:
-	cd ${WRKSRC} && ${PYTHONBIN} build.py
+	cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ${PYTHONBIN} build.py
 	${CHMOD} +x ${WRKSRC}/run.py
 
 do-install:

Index: finance/moneyguru/distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/finance/moneyguru/distinfo,v
retrieving revision 1.10
diff -u -r1.10 distinfo
--- finance/moneyguru/distinfo	4 Sep 2017 14:45:43 -0000	1.10
+++ finance/moneyguru/distinfo	22 Jan 2020 19:32:57 -0000
@@ -4,3 +4,5 @@
 RMD160 (moneyguru-src-2.11.0.tar.gz) = 8e04b57bd3100ce28fb003c528000463f9d0eb87
 SHA512 (moneyguru-src-2.11.0.tar.gz) = fae1c8140ed36f3bd33a7533938ba59bffeda898932c005c5a5e115d6108dc43a6f53cc65608340fd5501945b13604d136b8ac083d2daa3876bdc070d619c022
 Size (moneyguru-src-2.11.0.tar.gz) = 2658749 bytes
+SHA1 (patch-Makefile) = 1dced1ca961e74e5adcb2f7013dee04efd78d44e
+SHA1 (patch-build.py) = e7084efd4ba8543c4fd5f93cddde7a840bf19d27
cvs diff: Diffing finance/moneyguru/patches

Index: finance/moneyguru/patches/patch-Makefile
===================================================================
RCS file: finance/moneyguru/patches/patch-Makefile
diff -N finance/moneyguru/patches/patch-Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ finance/moneyguru/patches/patch-Makefile	22 Jan 2020 19:32:57 -0000
@@ -0,0 +1,15 @@
+$NetBSD$
+
+pyrcc5 is python-version-specific.
+
+--- Makefile.orig	2017-08-23 23:26:50.000000000 +0000
++++ Makefile
+@@ -71,7 +71,7 @@ endif
+ 	$(VENV_PYTHON) build.py --doc
+ 
+ qt/mg_rc.py : qt/mg.qrc
+-	pyrcc5 qt/mg.qrc > qt/mg_rc.py
++	pyrcc5-${PYVERSSUFFIX} qt/mg.qrc > qt/mg_rc.py
+ 
+ i18n: $(mofiles)
+ 

Index: finance/moneyguru/patches/patch-build.py
===================================================================
RCS file: finance/moneyguru/patches/patch-build.py
diff -N finance/moneyguru/patches/patch-build.py
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ finance/moneyguru/patches/patch-build.py	22 Jan 2020 19:32:57 -0000
@@ -0,0 +1,19 @@
+$NetBSD$
+
+pyrcc5 is python-version-specific.
+
+--- build.py.orig	2017-08-23 23:26:50.000000000 +0000
++++ build.py
+@@ -81,9 +81,10 @@ def clean():
+ def build_qt(dev):
+     qrc_path = op.join('qt', 'mg.qrc')
+     pyrc_path = op.join('qt', 'mg_rc.py')
+-    ret = print_and_do("pyrcc5 {} > {}".format(qrc_path, pyrc_path))
++    pyrcc5 = "pyrcc5-" + os.environ["PYVERSSUFFIX"]
++    ret = print_and_do(pyrcc5 +" {} > {}".format(qrc_path, pyrc_path))
+     if ret != 0:
+-        raise RuntimeError("pyrcc5 call failed with code {}. Aborting build".format(ret))
++        raise RuntimeError(pyrcc5 + " call failed with code {}. Aborting build".format(ret))
+     build_help()
+ 
+ def build_help():
cvs diff: Diffing editors/retext
cvs diff: Diffing devel/py-tortoisehg
cvs diff: Diffing devel/py-tortoisehg/patches
cvs diff: Diffing geography/qgis

Index: geography/qgis/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/geography/qgis/Makefile,v
retrieving revision 1.80
diff -u -r1.80 Makefile
--- geography/qgis/Makefile	3 Nov 2019 19:30:34 -0000	1.80
+++ geography/qgis/Makefile	22 Jan 2020 19:32:57 -0000
@@ -1,6 +1,7 @@
 # $NetBSD: Makefile,v 1.80 2019/11/03 19:30:34 rillig Exp $
 
 DISTNAME=	qgis-3.8.3
+PKGREVISION=	1
 CATEGORIES=	geography
 MASTER_SITES=	https://qgis.org/downloads/
 EXTRACT_SUFX=	.tar.bz2
@@ -40,6 +41,13 @@
 SUBST_SED.xapple+=		-e 's,APPLE,XAPPLE,'
 SUBST_SED.xapple+=		-e 's,MACOSX_BUNDLE ,,'
 
+SUBST_CLASSES+=			pyqt
+SUBST_STAGE.pyqt=		pre-configure
+SUBST_MESSAGE.pyqt=		Use correct python version for PyQt5 programs
+SUBST_FILES.pyqt=		cmake/PyQtMacros.cmake
+SUBST_SED.pyqt+=		-e '/^SET/s,pyuic5,&-${PYVERSSUFFIX},'
+SUBST_SED.pyqt+=		-e '/^SET/s,pyrcc5,&-${PYVERSSUFFIX},'
+
 CMAKE_ARGS+=	-DWITH_QTWEBKIT=FALSE
 CMAKE_ARGS+=	-DQWT_DIR=${QWT_DIR}
 # Useful for package development:
cvs diff: Diffing geography/qgis/patches
cvs diff: Diffing print/hplip
cvs diff: Diffing print/hplip/patches

Attachment: signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index