Bug 1807527

Summary: nodejs requires Python 2 to build
Product: [Fedora] Fedora Reporter: Petr Viktorin (pviktori) <pviktori>
Component: nodejsAssignee: NodeJS Packaging SIG <nodejs-sig>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mrunge, nodejs-sig, sgallagh, tchollingsworth, thrcka, zsvetlik
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-26 19:19:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1803205    

Description Petr Viktorin (pviktori) 2020-02-26 14:51:01 UTC
Python 2 reached upstream end-of-life in January 2020. In Fedora Rawhide, it's now provided from the compat package `python27`.
Packages that only use Python 2 at build time, like nodejs, had a general exception to keep using it in Fedora 31. Now, the dependency should be removed.
I hear that Node.js v13.x should be compatible with Python 3.

If it's possible that the dependency won't be removed in Fedora 33. Please request a FESCo exception. You can refer to the exception for mercurial as an example: https://pagure.io/fesco/issue/2243
It's good to mention:

- What is the reason for the Python 2 build dependency?

- What are the upstream/community plans/timelines regarding Python 2?

- What is the guidance for porting the build to Python 3? (Assuming that there is someone who generally knows how to port to Python 3, but doesn't know anything about the particular package, what are the next steps to take?)

If you need anything from us, or something is unclear, please mention it here.

Comment 1 Stephen Gallagher 2020-02-26 18:58:39 UTC
The Node.js 13.x that I released yesterday does not in fact need Python 2 to build. That was an oversight from copying the spec file from the 12.x series.

Additionally, 12.x has "experimental" support for building using Python 3 that appears to work flawlessly, so I'm going to drop it from that stream as well.

Comment 2 Stephen Gallagher 2020-02-26 19:19:32 UTC
I've pushed specfile changes to dist-git so that the next time we build, it will not have python 2 build-dependencies. I'm not pushing out an update at this time because it's a build-system-only change.

Comment 3 Petr Viktorin (pviktori) 2020-02-27 10:04:34 UTC
Thank you!