Closed danielnachun closed 2 years ago
Thanks for all of the great work on this so far! I dug up my old spreadsheet of unbottled formulae on Linux (which is now outdated to some extent), and checked all the formulae I had noted as failing to build due to some sort of Python-related issue. This has revealed a whole slew of formulae with build or runtime dependencies on Python 2 that could not be easily identified as such without trying to build on Linux. There's plenty more to do now, and please feel free to suggest changes to my recommendations.
brew deps ship --tree --include-build
shows that ship
does not depend on Python 2 anymore.
@Moisan Unfortunately the dependency on Python 2 for ship
is very indirect. ship
depends on an old version of node-sass
(4.9.3) which in turn depends on an old version of node-gyp
that needs Python 2. However, I somehow failed to notice on the README at the Github page for that it says right at the top that ship
is now unmaintained because it has been superseded by kots
. For that reason we should deprecate this, and I will update the checklist accordingly.
Can we move RethinkDB to the unsure category? I just rechecked the Github repository, and it's still getting commits. The last one was 22 days ago when writing this. The only thing that seems to have stalled is the releases. The RethinkDB python driver also remains maintained, though the last commit was in September of last year.
The reason rethinkdb
depends on Python 2 to build is because it includes an old version of v8
. However, there was a PR open to switch from v8
to quickjs
https://github.com/rethinkdb/rethinkdb/pull/6978, and it has now been merged after months of inactivity. Assuming that the commits can be applied cleanly to the current stable release, this would remove the Python 2 build dependency from rethinkdb
. The future of that database is still very uncertain given that the parent company which developed it is out of business, but if it has ongoing development then it's probably okay to leave undeprecated for now.
norm - waf build script needs Python 2 and it appears to also build Python 2 bindings. Does not seem to have commits for Python 3 support, despite being actively developed. I think we need to open an upstream issue asking about Python 3 support.
Will be fixed by https://github.com/Homebrew/homebrew-core/pull/97001
All files installed with app-engine-python
require Python 2. Upstream recently released a version for Python 3 in a different repo.
All files installed with
app-engine-python
require Python 2. Upstream recently released a version for Python 3 in a different repo.
That's good to know. We probably need to decide if we should switch the existing formula to use the new upstream, or deprecate the current formula and make a new one altogether.
For termbox
, do we want to consider a fork. From repology, I see that maintainer of https://github.com/termbox/termbox has migrated the FreeBSD and NixOS packages. Also sounded like they were requesting switch for Alpine and Debian (https://github.com/NixOS/nixpkgs/pull/99581#issuecomment-703922183).
For
termbox
, do we want to consider a fork. From repology, I see that maintainer of https://github.com/termbox/termbox has migrated the FreeBSD and NixOS packages. Also sounded like they were requesting switch for Alpine and Debian (NixOS/nixpkgs#99581 (comment)).
I'm ok to consider switching to that fork, but it's worth noting the future of that seems to be in termbox2 instead, which may warrant a separate formula (though that's not to say we can't both switch to the fork and ship termbox2).
Note that there is this we can apply if there's any objections to the fork: https://github.com/nsf/termbox/commit/6fe63ac3ad63dc2c3ac45b770541cc8b7a1d2db7
We're now running 12-arm64-##########-#
CI nodes with macOS 12.3 installed. This can be used to see if any PRs would fail without Python 2, but it is not used for bottle uploads so it is not yet critical if it fails.
The existing CI machines will be updated next month, at which point Python 2 will no longer be available. You can consider us now in the transition period.
With CI now missing python 2 we no longer need to track this in an issue since CI will warn us.
With the announcement of https://developer.apple.com/documentation/macos-release-notes/macos-12_3-release-notes#Python, I think we are at the point where we need to deprecate or update all remaining formulae that depend on Python 2
Update:
Needs PR
app-engine-python
- (see below comment) - either switch this formula to use https://github.com/GoogleCloudPlatform/appengine-python-standard as the new upstream, or deprecate this formula and make a new one.cfv
- old upstream is dead, there is maintenance fork that is supposed to add Python 3 support, but hasn't made a stable release yet: https://github.com/cfv-project/cfv/issues/8 - we should be able to update, though we can't wait indefinitely for this.viewvc
- the 1.3.0 release will support Python 3: https://github.com/viewvc/viewvc/milestone/9 - we should update when available.Open PR
Fixed
aubio
- has a hardcoded reference inwaf
build scripts to/usr/bin/python
- we should try to update, to see if it is compatible with Python 3. Arch Linux build script uses Python 3: https://github.com/archlinux/svntogit-community/blob/packages/aubio/trunk/PKGBUILD: #95472bde
- our formula useswaf
scripts that don't support Python 3 - we should update this to use the new build system which does support Python 3: https://bloomberg.github.io/bde/library_information/build.html - #96951.blastem
- there are upstream commits to add Python 3 support - being updated here: https://github.com/Homebrew/homebrew-core/pull/95337.blockhash
- calls towaf
in formula need to explicitly use Python 3 - we should update: #95411cppcms
- C++ package that only uses Python 2 for test scripts - we can try to patch these using upstream commits, but for now the only thing needed for this to build without Python 2 is an edit to the CMakelists - we should update - #97007.czmq
- seems to support Python 3 - we should update. (#94095).ffmpeg2theora
- depends onlibkate
, and is using a patch from Debian for Python 3 support - development appears stalled - we should deprecate.git-cinnabar
- upstream repo explicitly says it supports Python 3 - we should update. (#93971)hsd
- currently depends onnode@10
, which needs Python 2, but upstream says it should work withnode@14
: https://github.com/handshake-org/hsd/issues/577 - we should update: #95412libkate
- builds a Python 2 tool KateDJ. Optional: Development seems stalled - we should deprecate. Removed Python 2 bindings in #99939libming
- upstream issue for Python 3 support has not been resolved: https://github.com/libming/libming/issues/177, but we can probably disable Python bindings - we should update: #95474libpgm
- we are using an old upstream that is unmaintained - the new upstream has much newer releases that explicitly support Python 3: https://github.com/steve-o/openpgm - we should update: #95457lv2
- seems to support Python 3 - we should update. #96190norm
-waf
build script needs Python 2 and it appears to also build Python 2 bindings. Does not seem to have commits for Python 3 support, despite being actively developed. I think we need to open an upstream issue asking about Python 3 support.opensearch-dashboards
- currently depends onnode@10
, will switch tonode@14
with 2.0 release: https://github.com/Homebrew/homebrew-core/pull/97888#issuecomment-1105814085 - we should update when available. - #102390prestodb
-launcher.py
script tries to use/usr/bin/env python
- we should update this to use brewed Python directly: #95408rethinkdb
- now had upstream commits to remove v8 dependency - need to clarify a if a new 2.4.x point release is coming with these changes, as there are many commits. -- #100256saldl
- calls towaf
in formula need to explicitly use Python 3 - we should update: #95413serialosc
-waf
build script shebang uses Python 2. Seems to run by passing topython3
- #99919snap7
- test callspython
- should update to use a better test. #96322speedtest-cli
- updated to support Python 3: https://github.com/Homebrew/homebrew-core/pull/95332spidermonkey
- should now support Python 3: https://bugs.gentoo.org/698910#c16 - we should update (#94820).termbox
-waf
build scripts need Python 2, and project is now unmaintained - there is a maintained fork under termbox organization #100259traefik@1
- old version oftraefik
. Was able to build w/o Python 2 - #99931traildb
-waf
build scripts need Python 2, but an upstream commit has been made to make this compatible with Python 3 https://github.com/traildb/traildb/commit/053ed8e5d0301c792f3ee703cd9936c49ecf41a1 - we should update: #95469udis86
- needs to depend onpython@3.10
, and specify Python path with--with-python
- we should update: #95414volatility
- supports Python 3 with volatility 3 (https://github.com/volatilityfoundation/volatility3) which uses a different repo - either update existing formula, or create a new one forvolatility3
and deprecate this formula. (#94275)weighttpd
-waf
build system needs Python 2, but we can change it to autotools build and it should work - we should update: #95415woof
- commit after 2012-05-31 version supports Python 3 - we should update (#94258)Deprecate:
appscale-tools
- development appears stalled - we should deprecate. #99937brew-pip
- development appears stalled - we should deprecate.cassandra@2.2
- old version ofcassandra
, which supports Python 3 in newer version - we should deprecate.eventql
- needs Python 2 at least to build its own copy of spidermonkey - the project is unmaintained: https://github.com/eventql/eventql/issues/366 - we should deprecate. #99941fsh
- was last updated in 2001, so it definitely won't support Python 3 - we should deprecate. #96658git-remote-hg
- development appears stalled - we should deprecate. #99940kibana@6
- old version ofkibana
, which is now disabled due to incompatible licensing - we should deprecate.mergepbx
- seems to be written in Python 2 and development has stalled - we should deprecate. #96510nu-smv
- uses a Python 2 script in the build process. There is no upstream VCS repo, and the last update was in 2015 - we should deprecate. #99936numpy@1.16
- old version ofnumpy
, only needed foropencv@2
- we should deprecate. #96336rfcmarkup
- development seems to have stalled - we should deprecate. #99935ship
- build dependency on Python 2. The upstream repo says it is now unmaintained because it has been superseded bykots
- we should deprecate. #97741subversion@1.8
- old version ofsubversion
that should be deprecated. https://github.com/Homebrew/homebrew-core/pull/97742v8@3.15
- old version ofv8
that should be deprecated.