Page MenuHomeFreeBSD

michaelo (Michael Osipov)
User

Projects

User Details

User Since
Jul 19 2018, 5:53 PM (381 w, 1 d)

Recent Activity

Yesterday

michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

USES=distutils is going away because upstream is removing support for this entirely. It had been deprecated for quite some time but they are finally pulling the switch.

I know, this is why I said that with PEP 517 wheels already there, they just need to be in a distinct, explicit place for consumption.

Can you explain why this change needs revision? ATM, I don't see a way to make it even simple than this. Again, I don't expect you do upload anthing to PyPI. It is just a possible usecaes. I am happy if people can host their own indexes with this.

From a meta-/framework perspective, building wheels from USE_PYTHON=distutils (ie direct setup.py invocation) is not reliable unless you don't pass any flags or variables at all. This stems from setuptools themselves continuing to deal with a littany of legacy code and design which is frustrating to rid for modernity and maintenance sakes. Trying to build a binary wheel from built artefacts in this case may result in those artefacts getting wrongly rebuilt. (I had some local modifications where USE_PYTHON=distutils only built binary wheels and eliminated its do-install in favour of the PEP-517 do-install.)

For those ports that still have a setup.py without a corresponding or replacement pyproject.toml that doesn't need to have flags or variables passed into configure or build, PEP-517 already provides that setuptools is implicitly the build backend. Those ports can switch to USE_PYTHON=pep517. For ports that need to pass flags and variables, setuptools still doesn't support config settings passed from a build frontend like devel/py-build.

Fri, Nov 7, 6:58 PM
michaelo closed D53370: security/py-gssapi: Upgrade port to 1.10.1.
Fri, Nov 7, 2:03 PM
michaelo committed R11:019d791f0c5e: security/py-gssapi: Upgrade port to 1.10.1 (authored by michaelo).
security/py-gssapi: Upgrade port to 1.10.1
Fri, Nov 7, 2:03 PM
michaelo added a comment to D53370: security/py-gssapi: Upgrade port to 1.10.1.

Thank you for your contribution.

Fri, Nov 7, 1:32 PM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

I don't know whether it can be compiled on 13.5 and run older minor versions.

It can't generally. But this is not a problem, because the support window between two consecutive minor releases is usually tight and the official cluster always builds packages on the lowest minor version supported.

Fri, Nov 7, 12:53 PM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

Here is the definition: https://packaging.python.org/en/latest/specifications/binary-distribution-format/

There is a notion of a "platform tag" which denotes the platform for which the wheel has been built if it contains native code, by default it does "$(os}_${release}_${arch}". Run " pip debug --verbose" and see for compatible tags. If a wheel has been compiled with 13.5-RELEASE-p5 it won't be consumed by 13.5-RELEASE-p6. "wheel tags --remove --platform-tag=..." renames the file for multiplatform AND modfies the metadata (Tag: ) in WHEEL file. So I am not rebuilding, I am retagging. I first assumed a bug in poudriere: https://github.com/freebsd/poudriere/issues/1277, but then realized otherwise.

Well, to me it is the python part that should be fixed. FreeBSD guarantees ABI compatibility between minor releases, so the tag should look like py310-none-freebsd_13_amd64. This is the same how pkg handles our native packages ABI.

Re-tagging is not necessary as they are already correct. Not every wheel will have specific platform tags, in fact most if not all ports specifying NO_ARCH will have py3-none-any which allows consumption on anything with any implementation/distribution. Patch levels are not part of specific platform tags, only minor releases, like cp312-cp312-freebsd_14_3_release_amd64 (denotes compatibility with CPython >= 3.12 on 14.3-RELEASE amd64), cp37-abi3-freebsd_16_0_current_amd64 (CPython >= 3.7 ABI 3 on -CURRENT amd64). (If we enable building ports under other implementations like lang/rustpython, that's another can of worms entirely…) Note that 3.13 and later have differing ABIs wrt free-threaded mode or not, like cp313-cp313t-freebsd_16_0_current_amd64.

Fri, Nov 7, 10:59 AM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

USES=distutils is going away because upstream is removing support for this entirely. It had been deprecated for quite some time but they are finally pulling the switch.

I know, this is why I said that with PEP 517 wheels already there, they just need to be in a distinct, explicit place for consumption.

Can you explain why this change needs revision? ATM, I don't see a way to make it even simple than this. Again, I don't expect you do upload anthing to PyPI. It is just a possible usecaes. I am happy if people can host their own indexes with this.

From a meta-/framework perspective, building wheels from USE_PYTHON=distutils (ie direct setup.py invocation) is not reliable unless you don't pass any flags or variables at all. This stems from setuptools themselves continuing to deal with a littany of legacy code and design which is frustrating to rid for modernity and maintenance sakes. Trying to build a binary wheel from built artefacts in this case may result in those artefacts getting wrongly rebuilt. (I had some local modifications where USE_PYTHON=distutils only built binary wheels and eliminated its do-install in favour of the PEP-517 do-install.)

For those ports that still have a setup.py without a corresponding or replacement pyproject.toml that doesn't need to have flags or variables passed into configure or build, PEP-517 already provides that setuptools is implicitly the build backend. Those ports can switch to USE_PYTHON=pep517. For ports that need to pass flags and variables, setuptools still doesn't support config settings passed from a build frontend like devel/py-build.

Fri, Nov 7, 8:46 AM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

My ideal longterm goal: The Project hosts canonical poudriere builds and these could produce FreeBSD-specific wheels which could be uploaded to PyPI and would dramatically improve the situation for the Python ecosystem on FreeBSD.

Not happening. We already build artefacts for ports with non-standard flags and such, which are inappropriate to share to PyPI.

Fri, Nov 7, 8:22 AM

Thu, Nov 6

michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

This looks OK to me, but I'm a python hat wearer.

Thu, Nov 6, 3:48 PM
michaelo committed R11:63810125020f: mail/py-offlineimap3: Upgrade port to 8.0.1 (authored by michaelo).
mail/py-offlineimap3: Upgrade port to 8.0.1
Thu, Nov 6, 1:59 PM
michaelo closed D53430: mail/py-offlineimap3: Upgrade port to 8.0.1.
Thu, Nov 6, 1:57 PM
michaelo committed R11:aab3b2ee1b9c: mail/py-offlineimap3: Upgrade port to 8.0.1 (authored by michaelo).
mail/py-offlineimap3: Upgrade port to 8.0.1
Thu, Nov 6, 1:56 PM
michaelo updated the diff for D53370: security/py-gssapi: Upgrade port to 1.10.1.

Update range in comment

Thu, Nov 6, 1:44 PM
michaelo added a comment to D53370: security/py-gssapi: Upgrade port to 1.10.1.

Please keep the comment, updating it as appropriate.

Thu, Nov 6, 1:00 PM
michaelo closed D53416: textproc/py-regex: Upgrade port to 2025.11.3.
Thu, Nov 6, 12:40 PM
michaelo committed R11:8df09e6d8e9f: textproc/py-regex: Upgrade port to 2025.11.3 (authored by michaelo).
textproc/py-regex: Upgrade port to 2025.11.3
Thu, Nov 6, 12:40 PM
michaelo retitled D53416: textproc/py-regex: Upgrade port to 2025.11.3 from textproc/py-regex: Upgrade port to 2025.10.23 to textproc/py-regex: Upgrade port to 2025.11.3.
Thu, Nov 6, 12:36 PM
michaelo updated the diff for D53416: textproc/py-regex: Upgrade port to 2025.11.3.

Update port

Thu, Nov 6, 12:36 PM
michaelo added a comment to D53370: security/py-gssapi: Upgrade port to 1.10.1.

Any opinion or objection?

Thu, Nov 6, 10:10 AM
michaelo added a comment to D53391: devel/py-pydantic-core: Upgrade port to 2.41.4.

@sunpoet Any opinion or objection?

Thu, Nov 6, 10:10 AM
michaelo added a comment to D53392: devel/py-pydantic2: Upgrade port to 2.12.3.

@sunpoet Any opinion or objection?

Thu, Nov 6, 10:09 AM
michaelo added a comment to D53393: math/py-pandas: Upgrade port to 2.3.3.

Any opinion or objection?

Thu, Nov 6, 10:09 AM
michaelo added a comment to D53383: security/py-cryptography: Upgrade port to 46.0.3.

@sunpoet Any opinion or objection?

Thu, Nov 6, 10:09 AM
michaelo added a comment to D53430: mail/py-offlineimap3: Upgrade port to 8.0.1.

@dereks_lifeofadishwasher.com Any opinion or objection?

Thu, Nov 6, 10:08 AM
michaelo updated subscribers of D53489: lang/rust: Replace OpenSSL system default truststore with a more generic one.

@mikael Any opinion, objection?

Thu, Nov 6, 10:07 AM
michaelo updated the diff for D53433: Mk/Uses/python.mk: Build Python wheels next to packages.
Thu, Nov 6, 9:19 AM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

@arrowd I have now simplified the patch to work out of the box. It requires a subsequent patch (already prepared) for ports (seven of them) which overwrite those commands. The collection logic can fully live in poudriere: https://github.com/michael-o/poudriere-python-wheels/pull/1/files#diff-0afccccb8f3a6069f1dad4ec5c98125d10435243f7848807d2bcf65e00e88282R20-R34

Thu, Nov 6, 8:59 AM
michaelo retitled D53433: Mk/Uses/python.mk: Build Python wheels next to packages from Mk/Uses/python.mk: Enable building Python wheel files alongside packages to Mk/Uses/python.mk: Build Python wheels next to packages.
Thu, Nov 6, 8:57 AM
michaelo updated the diff for D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

Simplify approach by making wheel destination explicit

Thu, Nov 6, 8:57 AM

Wed, Nov 5

michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

I agree with you, but that you I think require a PEP describing this (e.g., https://peps.python.org/pep-0513/).

While this sounds complex, I think this would be just a several lines of code in a correct place. If you don't want to open a PEP for this (which also shouldn't as complex as manylinux one) we could at least patch this in our Python ports.

After that one needs to modify pip, setuptools, maturin, uv, and likely other code. It isn't straight forward.

Hmm, why so much places should be touched? Everything should start working out of the box when we get Python to use proper tags, no?

Wed, Nov 5, 1:55 PM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

There is a subtile difference where. The wheels are already there with PEP 517, distutils just requires one more step, but I expect distutils to disappear in the future. So basically either "make wheel" would be a noop or it would move/copy the *.whl to ${WRKDIR}/whl/

All right, if wheels are already generated unconditionally, then this point is resolved.

Wed, Nov 5, 1:38 PM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

As a plugin, yes?

If it can be completely done via a hook - yes, but not necessary. It might be as well a core feature.

But as long as It is not stable I don't want to have it upstream and constantly break people's stuff unless we mark it as experimental.

This is not a problem - we have poudriere-devel exactly for that.

Wed, Nov 5, 9:48 AM

Tue, Nov 4

michaelo added a reviewer for D53433: Mk/Uses/python.mk: Build Python wheels next to packages: bdrewery.
Tue, Nov 4, 1:21 PM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

@arrowd There is one issue with retagging the wheel inside of the jail. Let's say the jail has been updated from 13.5-RELEASE-p5 to 13.5-RELEASE-p7. There is a wheel for package foo. The multiplatform wheel goes only to 13.5-RELEASE-p5. Unless the port is upgraded to a newer version the multiplatform tags will never be updated and for jails running 13.5-RELEASE-p6+ unavailable. This means that I still need to perform the retagging for older wheels, but not for newer ones with a poudriere hook. So at the end it will be duplicate work. I don't know wether this is really smart to do...

Tue, Nov 4, 1:18 PM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

It should be turned into a proper pull request to the Poudriere upstream repo.

Tue, Nov 4, 12:31 PM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

Link your Poudriere changes in there, so it is possible to get an idea how this is going to work overall.

Tue, Nov 4, 11:58 AM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

Then this change alone isn't really enough and I'm not even sure it is a right step forward.

Tue, Nov 4, 10:35 AM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

My ideal longterm goal: The Project hosts canonical poudriere builds and these could produce FreeBSD-specific wheels which could be uploaded to PyPI and would dramatically improve the situation for the Python ecosystem on FreeBSD.

Tue, Nov 4, 8:56 AM
michaelo added a comment to D53433: Mk/Uses/python.mk: Build Python wheels next to packages.

I don't quite get the rationale. Can you provide an example how is it going to be used?

Tue, Nov 4, 8:54 AM

Mon, Nov 3

michaelo added a comment to D53490: devel/uv: Make the selected TLS provider use the system default truststore.

@yuri Thank you for the merge!

Mon, Nov 3, 10:46 AM

Sun, Nov 2

michaelo committed R11:fb265a6856dd: science/py-scikit-learn: Add pytest test dependency (authored by rfyu28uyeg_snkmail.com).
science/py-scikit-learn: Add pytest test dependency
Sun, Nov 2, 9:45 PM

Sat, Nov 1

michaelo added reviewers for D53433: Mk/Uses/python.mk: Build Python wheels next to packages: wen, vishwin, mandree.
Sat, Nov 1, 10:33 PM

Fri, Oct 31

michaelo added a reviewer for D53490: devel/uv: Make the selected TLS provider use the system default truststore: vishwin.
Fri, Oct 31, 9:48 PM
michaelo added a reviewer for D53489: lang/rust: Replace OpenSSL system default truststore with a more generic one: vishwin.
Fri, Oct 31, 9:48 PM

Thu, Oct 30

michaelo added a reviewer for D53490: devel/uv: Make the selected TLS provider use the system default truststore: rust.
Thu, Oct 30, 9:57 PM
michaelo requested review of D53490: devel/uv: Make the selected TLS provider use the system default truststore.
Thu, Oct 30, 9:55 PM
michaelo updated the summary of D53489: lang/rust: Replace OpenSSL system default truststore with a more generic one.
Thu, Oct 30, 9:51 PM
michaelo added a reviewer for D53489: lang/rust: Replace OpenSSL system default truststore with a more generic one: rust.
Thu, Oct 30, 9:48 PM
michaelo requested review of D53489: lang/rust: Replace OpenSSL system default truststore with a more generic one.
Thu, Oct 30, 9:47 PM
michaelo closed D53432: science/py-scikit-learn: Upgrade port to 1.7.2.
Thu, Oct 30, 9:37 PM
michaelo committed R11:954ab31f55ba: science/py-scikit-learn: Upgrade port to 1.7.2 (authored by michaelo).
science/py-scikit-learn: Upgrade port to 1.7.2
Thu, Oct 30, 9:37 PM
michaelo added a comment to D53370: security/py-gssapi: Upgrade port to 1.10.1.

Does this version build successfully against each version of Python currently in the tree, and against each GSSAPI library?

It does officially support 3.13 and 3.14, therefore I removed the comment. If you consider to limit the Python version it should be in the variable to fail hard and not just a comment. WDYT?

See: https://github.com/pythongssapi/python-gssapi/commit/d792186a8b80e4906773b2d39a9815371ce1499c

Thu, Oct 30, 8:00 PM
michaelo abandoned D53425: devel/meson-python: Upgrade port to 0.18.0.

Manually merged by @vishwin.

Thu, Oct 30, 7:56 PM
michaelo committed R11:13679a6e8597: devel/py-pyproject-metadata: Depend on pytest for 'make test' (authored by michaelo).
devel/py-pyproject-metadata: Depend on pytest for 'make test'
Thu, Oct 30, 8:49 AM

Wed, Oct 29

michaelo added a comment to D53370: security/py-gssapi: Upgrade port to 1.10.1.

Does this version build successfully against each version of Python currently in the tree, and against each GSSAPI library?

Wed, Oct 29, 12:41 PM
michaelo added a reviewer for D53433: Mk/Uses/python.mk: Build Python wheels next to packages: Python.
Wed, Oct 29, 11:38 AM
michaelo requested review of D53433: Mk/Uses/python.mk: Build Python wheels next to packages.
Wed, Oct 29, 11:37 AM
michaelo requested review of D53432: science/py-scikit-learn: Upgrade port to 1.7.2.
Wed, Oct 29, 10:25 AM
michaelo requested review of D53430: mail/py-offlineimap3: Upgrade port to 8.0.1.
Wed, Oct 29, 9:54 AM
michaelo committed R11:d4d7e188a0b6: science/py-scikit-sparse: Fix incorrect distinfo (authored by rfyu28uyeg_snkmail.com).
science/py-scikit-sparse: Fix incorrect distinfo
Wed, Oct 29, 7:31 AM
michaelo committed R11:1822a3d8a533: science/py-scikit-sparse: Fix incorrect distinfo (authored by rfyu28uyeg_snkmail.com).
science/py-scikit-sparse: Fix incorrect distinfo
Wed, Oct 29, 7:30 AM

Tue, Oct 28

michaelo requested review of D53425: devel/meson-python: Upgrade port to 0.18.0.
Tue, Oct 28, 10:41 PM
michaelo requested review of D53416: textproc/py-regex: Upgrade port to 2025.11.3.
Tue, Oct 28, 8:17 PM
michaelo added a reviewer for D53393: math/py-pandas: Upgrade port to 2.3.3: Python.
Tue, Oct 28, 9:35 AM
michaelo requested review of D53393: math/py-pandas: Upgrade port to 2.3.3.
Tue, Oct 28, 9:34 AM
michaelo requested review of D53392: devel/py-pydantic2: Upgrade port to 2.12.3.
Tue, Oct 28, 8:20 AM
michaelo requested review of D53391: devel/py-pydantic-core: Upgrade port to 2.41.4.
Tue, Oct 28, 8:18 AM
michaelo added a reviewer for D53383: security/py-cryptography: Upgrade port to 46.0.3: sunpoet.
Tue, Oct 28, 8:14 AM
michaelo added a reviewer for D53384: devel/py-cffi: Upgrade port to 2.0.0: sunpoet.
Tue, Oct 28, 8:14 AM

Mon, Oct 27

michaelo requested review of D53384: devel/py-cffi: Upgrade port to 2.0.0.
Mon, Oct 27, 8:01 PM
michaelo requested review of D53383: security/py-cryptography: Upgrade port to 46.0.3.
Mon, Oct 27, 8:00 PM
michaelo abandoned D53369: devel/py-rpds-py: Upgrade port to 0.28.0.

Already solved with f8bd5c67bbce81cb06b5823ade537c4f0459df55 by @sunpoet

Mon, Oct 27, 5:35 PM
michaelo updated the diff for D53370: security/py-gssapi: Upgrade port to 1.10.1.

Reset revision

Mon, Oct 27, 8:43 AM
michaelo added a comment to D53369: devel/py-rpds-py: Upgrade port to 0.28.0.

Tested;

Mon, Oct 27, 8:18 AM

Sun, Oct 26

michaelo requested review of D53373: databases/py-pyodbc: Upgrade port to 5.3.0.
Sun, Oct 26, 11:35 PM
michaelo added a reviewer for D53370: security/py-gssapi: Upgrade port to 1.10.1: john_saltant.com.
Sun, Oct 26, 11:19 PM
michaelo requested review of D53370: security/py-gssapi: Upgrade port to 1.10.1.
Sun, Oct 26, 11:18 PM
michaelo requested review of D53369: devel/py-rpds-py: Upgrade port to 0.28.0.
Sun, Oct 26, 10:53 PM

Mon, Oct 20

michaelo committed rG25150c4f98c0: manpages: Use canonical names for Linux filesystems (authored by michaelo).
manpages: Use canonical names for Linux filesystems
Mon, Oct 20, 12:35 PM
michaelo committed rGf8c4b9d71a5c: login.conf: Remove never used ignoretime/ignoretime@ (authored by psa-otoh).
login.conf: Remove never used ignoretime/ignoretime@
Mon, Oct 20, 12:34 PM
michaelo committed rG9e40b536cb58: manpages: Use canonical names for Linux filesystems (authored by michaelo).
manpages: Use canonical names for Linux filesystems
Mon, Oct 20, 12:33 PM
michaelo committed rG30f3a4146466: login.conf: Remove never used ignoretime/ignoretime@ (authored by psa-otoh).
login.conf: Remove never used ignoretime/ignoretime@
Mon, Oct 20, 12:28 PM
michaelo committed rG6ec0fbd8ff11: manpages: Use canonical names for Linux filesystems (authored by michaelo).
manpages: Use canonical names for Linux filesystems
Mon, Oct 20, 12:27 PM
michaelo committed rG34710b2c08c9: login.conf: Remove never used ignoretime/ignoretime@ (authored by psa-otoh).
login.conf: Remove never used ignoretime/ignoretime@
Mon, Oct 20, 12:27 PM

Fri, Oct 17

michaelo closed D53141: Use canonical names for Linux filesystems.
Fri, Oct 17, 1:03 PM
michaelo committed R9:7471dacca112: Use canonical names for Linux filesystems (authored by michaelo).
Use canonical names for Linux filesystems
Fri, Oct 17, 1:03 PM
michaelo closed D53155: manpages: Use canonical names for Linux filesystems.
Fri, Oct 17, 12:48 PM
michaelo committed rG88b9ca860ef3: manpages: Use canonical names for Linux filesystems (authored by michaelo).
manpages: Use canonical names for Linux filesystems
Fri, Oct 17, 12:48 PM
michaelo added a comment to D53141: Use canonical names for Linux filesystems.

Guys, is this acceptable.

Fri, Oct 17, 12:43 PM
michaelo requested review of D53155: manpages: Use canonical names for Linux filesystems.
Fri, Oct 17, 9:26 AM
michaelo added a comment to D53141: Use canonical names for Linux filesystems.

Guys, docs updated. Manpages pending.

Fri, Oct 17, 9:13 AM
michaelo added a reviewer for D53141: Use canonical names for Linux filesystems: markj.
Fri, Oct 17, 9:13 AM
michaelo updated the summary of D53141: Use canonical names for Linux filesystems.
Fri, Oct 17, 9:13 AM
michaelo updated the diff for D53141: Use canonical names for Linux filesystems.

Refer to manpage

Fri, Oct 17, 9:13 AM
michaelo added a comment to D53141: Use canonical names for Linux filesystems.

Good, I will change the manpage and revise the handbook for incomplete fstab statements.

Fri, Oct 17, 6:59 AM

Thu, Oct 16

michaelo requested review of D53141: Use canonical names for Linux filesystems.
Thu, Oct 16, 8:53 PM
michaelo added a comment to D53120: sysutils/javaservicewrapper: Update port to 3.6.3.

@jrm Thank you for your vigilance.

Thu, Oct 16, 3:28 PM
michaelo closed D53120: sysutils/javaservicewrapper: Update port to 3.6.3.
Thu, Oct 16, 3:28 PM
michaelo committed R11:5426e2cf6aea: sysutils/javaservicewrapper: Update port to 3.6.3 (authored by michaelo).
sysutils/javaservicewrapper: Update port to 3.6.3
Thu, Oct 16, 3:28 PM
michaelo added a comment to D53121: devel/nexus2-oss: Update port for javaservicewrapper-3.6.3.

@jrm Thank you for your vigilance.

Thu, Oct 16, 3:28 PM