Page MenuHomeFreeBSD

lang/python310: add python 3.10.0.beta2
ClosedPublic

Authored by AMDmi3 on May 26 2021, 4:30 PM.

Details

Summary
lang/python310: add python 3.10.0.beta2

PR:             256150
Reviewed by: ???
Approved by:    ??? (python, maintainer)
Differential Revision:  https://reviews.freebsd.org/D30475
Test Plan
  • Build tested on:
    • Platforms
      • 11i386
      • 11amd64
      • 12i386
      • 12amd64
      • 13i386
      • 13amd64
      • 14amd64
      • 13aarch64
    • OpenSSL flavors:
      • 11amd64+libressl
      • 13amd64+libressl
      • 11amd64+ports openssl
      • 13amd64+ports openssl
    • Nondefault options:
      • 13amd64+WITH=DEBUG // revealed staging problems which affects earlier python versions as well
      • 13amd64+WITHOUT=IPV6
      • 13amd64+WITHOUT=LIBMPDEC
      • 13amd64+WITHOUT=NLS
      • 13amd64+WITHOUT=PYMALLOC
      • 13amd64+WITH=FNV
      • 13amd64+WITH=SIPHASH
  • Built tested py-sqlite3, py-gdbm, py-tkinter with python

Run tested (DEFAULT_VERSIONS+=python=3.10 python3=3.10, rebuild everything) on desktop and in production on 13amd64.

Diff Detail

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

Event Timeline

lwhsu added inline comments.
lang/python310/Makefile
1

I guess this line can be removed or changed to you?

Is it possible to get this as a diff from python39 (or whatever its original source was)?

Is it possible to get this as a diff from python39 (or whatever its original source was)?

Available in the related PR https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256150, or do you need complete diff with plist?

lang/python310/Makefile
1

IMO no since it's copied from python39 with minimal changes.

This is now ready to land. I take it as there are no objections?

Is it possible to get this as a diff from python39 (or whatever its original source was)?

Available in the related PR https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256150, or do you need complete diff with plist?

Oh the diff was pasted in comment, I was looking at the attachment. That would have been great here.

Apart from the hard-coded version in MASTER_SITES (minor), and no commit log message and test plan in the review here, it looks "ok".

What's the explanation for the NEWOPENSSL variable? Is the behaviour the same with ports versions of openssl, libressl?

Also the LIBFFI option needs to be removed, originally only done in python37 see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244782

The build fails with it disabled.

Outstanding/open PR https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256141

Can this be run through complete QA?

This is now ready to land. I take it as there are no objections?

The threshold to commit isn't really no objections, no?

koobs requested changes to this revision.Jun 4 2021, 12:35 PM
This revision now requires changes to proceed.Jun 4 2021, 12:35 PM
  • Update to beta2
  • Remove LIBFFI option
  • Extend handling of different openssl flavors

Apart from the hard-coded version in MASTER_SITES (minor)

Fixed. I've hardcoded it as it would have to be changed anyway for release, but with cutting away prerelease suffix it would work for both pre- and release versions.

What's the explanation for the NEWOPENSSL variable? Is the behaviour the same with ports versions of openssl, libressl?

python310 does not support archaic openssl from 11.x and fails to build crypto related modules there. The same for libressl. But with openssl from ports it's good even on 11.
I've updated the condition. Not sure if it should be BROKEN instead or should output some kind of warning.

Also the LIBFFI option needs to be removed, originally only done in python37 see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244782

Outstanding/open PR https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256141

Done.

Can this be run through complete QA?

What do you mean by "complete QA"?

The threshold to commit isn't really no objections, no?

The approval may not be required but as you can see this review led to some improvements.

Apart from the hard-coded version in MASTER_SITES (minor)

Fixed. I've hardcoded it as it would have to be changed anyway for release, but with cutting away prerelease suffix it would work for both pre- and release versions.

What's the explanation for the NEWOPENSSL variable? Is the behaviour the same with ports versions of openssl, libressl?

python310 does not support archaic openssl from 11.x and fails to build crypto related modules there. The same for libressl. But with openssl from ports it's good even on 11.
I've updated the condition. Not sure if it should be BROKEN instead or should output some kind of warning.

Also the LIBFFI option needs to be removed, originally only done in python37 see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244782

Outstanding/open PR https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256141

Done.

Can this be run through complete QA?

What do you mean by "complete QA"?

The threshold to commit isn't really no objections, no?

The approval may not be required but as you can see this review led to some improvements.

Apart from best practice general QA, usually this means:

  • OPTIONS, particularly the most error prone ones that use third party libs that create work for people with regressions
  • At least all tier 1 archs and supported FreeBSD versions
  • Any other obvious things, in this case, with SSL changes, testing against supported ssl values

Could you update review summary (proposed commit log message) & test plan (list of qa tests run), for our future selves

lang/python310: add python 3.10.0.beta2

PR: 256150
Approved by: no objection from python@
Differential Revision: https://reviews.freebsd.org/D30475

AMDmi3 retitled this revision from lang/python310: add python 3.10.0.beta1 to lang/python310: add python 3.10.0.beta2.Jun 10 2021, 7:07 PM
AMDmi3 edited the summary of this revision. (Show Details)
AMDmi3 edited the test plan for this revision. (Show Details)
AMDmi3 edited the summary of this revision. (Show Details)
AMDmi3 edited the summary of this revision. (Show Details)
AMDmi3 edited the summary of this revision. (Show Details)

See minor comments to clarify before landing this. Would still like to see this as a diff against the port it was based on

lang/python310/Makefile
1

You can drop this, no need to update diff here

92–97

See comments on https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256558 re this. Would like to understand why ABIFLAGS is no longer sufficient (or when/how it regressed?)

lang/python310/Makefile
1

Drop as in "remove the line" or drop as in "leave it as in python 3.9"?

92–97

I'm not the person to ask this. I'd very much like this to not hold this change any more, I can revert it to the same state as python39, so it can be fixed for python38, 39 and 310 at once in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256558

People can only review changes as proposed, the addition of a new variable to handle the debug ABI is not explained.

The people submitting changes are the only people to ask.

If you'd like to remove it that's fine, but this change has blocked on clarity, not anything else.

Everyone would very much like to have a complete understanding of a proposed changeset in the first instance.

AMDmi3 marked an inline comment as done.
AMDmi3 edited the summary of this revision. (Show Details)
  • Remove bits related to fixing DEBUG option
  • Add clarification on unsupported OpenSSL version handling

Latest change from python39: https://gist.github.com/54c25485e2052743c6f8bdd85f56452e
Please state clearly which changes are still required to get this landed.

Latest change from python39: https://gist.github.com/54c25485e2052743c6f8bdd85f56452e
Please state clearly which changes are still required to get this landed.

Could you update this diff to be a diff against the port from which it was based?

Could you update this diff to be a diff against the port from which it was based?

This IS a diff against the port from which it is based.

Include DISABLED_EXTENSIONS bit and update to beta3

Change against python3.9: https://gist.github.com/f688683436c195fd5b3fc810b07eab7d

This revision was not accepted when it landed; it landed in state Needs Review.Jul 14 2021, 8:18 PM
This revision was automatically updated to reflect the committed changes.