Page MenuHomeFreeBSD

Update py-sip to 5.3.0, qscintilla2 to 2.11.5, PyQt5 to 5.15.0 add new py-qt5-sip 12.8.0
Needs ReviewPublic

Authored by lbartoletti on Jul 21 2020, 6:03 AM.

Details

Reviewers
tcberner
swills
Group Reviewers
O5: Ports Framework(Owns No Changed Paths)
portmgr
Summary

This diff follow ups https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247369. I wanted to fix and update www/py-qt5-webengine and... that escalated quickly.

I discovered that RiverBankComputing doesn't offer links to download latest version of some ports (for example PyQt 5.15), I use pypi links as on arch. So, we have latest versions of all pyqt stuff.

py-sip is now mostly a bin set tools and PyQt5 requires PyQt5_Sip (which I added in devel/py-qt5-sip [1]) to run [2] and to build [3].

BTW, I've made some changes in Mk/Uses/pyqt.mk, alphabetize USE_PYQT and strip lib installed by PyQt.

New PyQt modules added are:

  • comms/py-qt5-sensors
  • devel/py-qt5-location
  • devel/py-qt5-remoteobjects
  • net/py-qt5-networkauth

For your information, QtQuick3d and some others are missing so I couldn't add their py-qt versions.

In theory, devel/py-qt5-qscintilla2 can be built with setuptools and devel/py-qtbuilder. After a few tries, I went back to using configure.py. So I don't know if devel/py-qtbuilder worth to be added in the ports tree.

Last but not least, sip5 drops sipconfig and even if it is a depreciated module since 2014 it is still in use [4]. It will be necessary to look at how many ports will be broken by this change and if it is not easier for the moment to stay on SIP 4.

The diff is still in its raw state and needs polishing.

[1] I'm unsure about theses names. Maybe it's worth renaming devel/py-sip?
[2] Confirmed with QtCore
[3] Per devel/py-qt5-qscintilla2 and www/py-qt5-webengine
[4] There are discussions and work to fix graphics/qgis and graphics/krita https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1753208.html

Test Plan

Only poudriere 12amd64 for now. Of course a new exp-run is mandatory.

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 33779
Build 30997: arc lint + arc unit

Event Timeline

lbartoletti created this revision.Jul 21 2020, 6:03 AM
lbartoletti requested review of this revision.Jul 21 2020, 6:03 AM
lbartoletti edited the summary of this revision. (Show Details)Jul 21 2020, 6:17 AM
mat added inline comments.Jul 21 2020, 12:23 PM
Mk/Uses/pyqt.mk
125

Could you please avoid all the white-space noise? It makes it very hard to see what is happening.

(I am not against it, but maybe commit the white-space increase seperately.)

comms/py-qt5-sensors/pkg-plist
26

empty line.

tcberner added inline comments.Jul 21 2020, 5:22 PM
Mk/Uses/pyqt.mk
125

@lbartoletti you have my approval to quickly commit the whitespace changes separately to reduce the noise :)

lbartoletti updated this revision to Diff 74856.EditedJul 23 2020, 8:42 PM

rebase

comms/py-qt5-sensors/pkg-plist: remove empty line

devel/py-qt5-sip: add license file

lbartoletti marked 3 inline comments as done.Jul 23 2020, 8:43 PM
mat added inline comments.Jul 24 2020, 12:20 PM
Mk/Uses/pyqt.mk
127–133

I'll re-iterate my request, please try not to mix up whitespace changes at the same time as functional changes, it really makes it harder to see what is happening.

279

Extra blank line.

tcberner added inline comments.Jul 24 2020, 3:14 PM
Mk/Uses/pyqt.mk
125–126

^ I've been wondering whether it would be nicer to read to have something like

.for _component in ${_USE_PYQT_ALL}
py-${_component}_PATH?=${PYQT_PY_RELNAME}-${_component}>=${PYQT_VERSION}
.endfor

py-some_nondefault_one_PATH=${PYQT_PY_RELNAME}-why-is-this-called-differently>=${PYQT_VERSION}

instead of listing every component

134

^ same comment as for _PATH

  • Rewrite _PORT and _PATH parts
  • Add x11-toolkits/py-qt5-quick3d
  • Add py-qt5-networkauth description
  • Remove some extra line and whitespaces (maybe not yet totally cleaned, sorry mat)
  • Fix devel/py-qt5-dbus
lbartoletti marked 3 inline comments as done.Aug 25 2020, 7:44 PM
lbartoletti added inline comments.
Mk/Uses/pyqt.mk
125–126

Done, except for sip, pysip and qscintilla2

Good effort, thank you.

I added some minor, non-breaking issues, that you can decide yourself whether you agree with or not (except for the Tools/scripts one :D )

Mk/Uses/pyqt.mk
130

^this could use a \t after =

141

^ I would also insert a tab after = here for better readabilty

143

^ could you run Tools/scripts/indent_make_if.pl on the file before commit, to get proper indentation of the nested .if and .for for readabilty?

comms/py-qt5-serialport/Makefile
17

^ minor: could you order them by type first, and then alphabetically:
USE_PYQT= sip_build core_run pysip_run

lbartoletti updated this revision to Diff 76455.Tue, Sep 1, 4:40 AM
lbartoletti marked 4 inline comments as done.

Indent and reorder USE_PYQT

lbartoletti marked an inline comment as done.Tue, Sep 1, 4:40 AM
lbartoletti retitled this revision from [WIP] Update py-sip to 5.3.0, qscintilla2 to 2.11.5, PyQt5 to 5.15.0 add new py-qt5-sip 12.8.0 to Update py-sip to 5.3.0, qscintilla2 to 2.11.5, PyQt5 to 5.15.0 add new py-qt5-sip 12.8.0.

I started, to fix problems on ports that don't support sip5.
However, I go back to sip4, since:

  • it works with PyQt5.15 using the latest version of sip4
  • it doesn't break the packages (with my tests, we will reconsider this after the exp-run).
  • and there will be a new version in a few months.

I left py-qt5-sip (aka pysip) for the moment, but it should not to be installed because it conflicts with the other pyqt5 files. I'm wondering if it's better to add the CONFLICTS tag or just remove it.

I left py-qt5-sip (aka pysip) for the moment, but it should not to be installed because it conflicts with the other pyqt5 files. I'm wondering if it's better to add the CONFLICTS tag or just remove it.

You already did the work of adding it, so I don't think there is much harm in having it in with a CONFLICTS line. You could mention something like "it will be used in future updates of PyQt" to make it clearer, that it is not used at the moment.