Mark ports recursively depending on Python 2.7 for expiration on June 23.
For ports optionally dependending on Python 2.7, just mark those options
as expired.
Differential D28665
Mark ports recursively depending on Python 2.7 for expiration on June 23. rene on Feb 14 2021, 5:11 PM. Authored by Tags None Referenced Files
Details
Mark ports recursively depending on Python 2.7 for expiration on June 23. For ports optionally dependending on Python 2.7, just mark those options Based on P475, which passes `make index'.
Diff Detail
Event TimelineThere are a very large number of changes, so older changes are hidden. Show Older Changes Comment Actions Note that the date (June 23) is not set in stone, it is a date that looked reasonable to both @swills and myself. Comment Actions Note that this review excludes ports that depend on Python 2.7 and have already expired (on 2020-12-31) according to https://www.freshports.org/ports-expired.php Comment Actions I have no objection regarding gxmms2 (the only port I maintain in this review, if I'm correct) Comment Actions That would save quite some ports indeed. There is also https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249620 to modernize devel/libclc which would save lang/clover. Comment Actions We need to install a maintained platform to execute Python 2.7 code on, for instance, Tauthon - this is for mail/mailman (mailman 2.1) which is maintained but in feature freeze. mailman3 is a rewrite-from scratch that works differently and has no migration path. Comment Actions When the dependency will be removed? Comment Actions www/node10 and www/node12 already expired, see https://www.freshports.org/ports-expired.php?sort=expiration_date
Comment Actions They are deprecated through USES=python. Mk/Uses/python.mk: 477 .if ${PYTHON_MAJOR_VER} == 2 478 DEPRECATED?= Uses Python 2.7 which is EOLed upstream 479 EXPIRATION_DATE?= 2020-12-31 480 .endif Comment Actions
Comment Actions That would save quite some ports indeed. There is also https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=249620 to modernize devel/libclc which would save lang/clover. Comment Actions I just updated audio/faust in r565456. You can remove it and depending ports from the list. Comment Actions
Comment Actions Yes, on it. Note that this diff is made from a local branch from the git export at https://cgit-beta.freebsd.org/ports/ so it is always a bit behind Subversion. Comment Actions
Comment Actions Rene, I've updated audio/faustlive and audio/csound - they can be now removed from the list.
Comment Actions P475 updated against r566185 and fixed the mistake there of removing definitions in Mk/ too early. INDEX builds again, now indeed taking a lot of webengine consumers with it. Comment Actions Python 2.7 (and Tauthon) removal preview, tentatively for June 23. Lots of KDE gone...
Comment Actions Please clarify "and Tauthon". We need this, or something else, for mail/mailman (v2.1) as discussed previously ad nauseam. Comment Actions
Comment Actions I have a problem with the deprecation of calibre. It has an hard dependency on webengine. I don't know how to save it at present. I see we would need a major upgrade to get python 3 support. While I agree on removing python 2, is it reasonable to remove so many working ports due to a single build time dependency? WOuld it be reasonable to somehow keep python 2 only for build deps? Comment Actions @madpilot @rene Someone loop python@ in and get them to properly hook up tauthon 2.8 into the framework (I am not knowledgeable so I require support, else I would have done it weeks ago) so we can see which of the ports will work on tauthon, for instance, mailman is also a candidate -- and which handful of requisites may need a Tauthon flavor. This would offer a perspective for those ports where we won't get (compatible) Python 3.x based versions from the upstream, or where upstream made a mess of the Python 3.x enabled versions. Comment Actions @mandree Thanks for the suggestion. I did not know about thauton. Despite maintaining and also having contributed a little to calibre I'm no python fan or expert. I'll have to look that up. I have a few things down my pipe, but I could try to take a look. Comment Actions There is an idea to keep python2 for chromium-like ports as a build dependency. There is also work underway to remove the python dependency from llvm7, saving all DLC-based ports and a few others. Comment Actions I have just completed a poudriere build of llvm70 without Python-2.7. The only component that relied on Python-2.7 was LLDB, and I do not think that this is a hard requirement for this port. Therefore I suggest to disable LLDB in devel/llvm70 and to remove all version selectors from the python dependencies in the port's Makefile, instead of deleting this port. Comment Actions I don't think there are any consumers of this LLDB, so we can just remove the option?
Yes :)
And all LDC consumers, I'll update the patch. Comment Actions
Yes just remove it. LLDB has had periods of more- and less-active FreeBSD development over the years, but only the versions in contemporary FreeBSD are of much interest - perhaps LLDB 10 and later. Comment Actions I have created D29342 for the patch that removes LLDB from devel/llvm70 and thus the dependency of that port on Python-2.7. The following ports are currently marked as deprecated due to their dependency on llvm70: I have not checked whether they indirectly depend on any other port (besides llvm70) that is deprecated. Comment Actions After commit 568810 the following ports do no longer (directly or indirectly) depend on Python-2.7: devel/flang These ports have been successfully built in poudriere and verified to no longer depend on Python-2.7. Comment Actions
Comment Actions I'm spending a good chunk of the weekend on trying to get webengine up to speed. I'm still at the "maybe we can get this to build with Python3" stage of hopefulness, not yet at the "let's take the C++ code that is generated by their stupid build system and tar that up as an extra dist-file". Why isn't chromium on this list? It depends on Python2.7 the same way webengine does. Comment Actions This review only adds ports that were not already expired, chromium is on the Expired Ports list at Freshports: https://www.freshports.org/ports-expired.php?sort=expiration_date Comment Actions I have updated the devel/rbtools port to version 2.0 in commit 568885, but have not been able to test whether devel/hgreviewboard can now be used without dependency on Python-2.7, But I do assume that devel/hgreviewboard can now be taken off this list. If it does not correctly work with this rbtools version, hgreviewboard will have to be upgraded (the latest stable version is 3.0.20, available from https://downloads.reviewboard.org/releases/ReviewBoard/3.0/). |