Uh oh!
There was an error while loading. Please reload this page.
Adopt pyproject.toml and Meson to build Python extension - #148
Conversation
1605b3c to
31b17c0CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
hongquan
commented
Jul 4, 2025
Hi, what more I need to do to get this PR merged? |
behrmann
commented
Jul 9, 2025
Just for somebody to find the time to review it again. |
hongquan
commented
Aug 11, 2025
Please allocate some time for this PR. |
Uh oh!
There was an error while loading. Please reload this page.
behrmann
commented
Oct 3, 2025
@hongquan Thanks for your contribution (and patience). |
gene1wood
commented
Oct 3, 2025
This looks great! Hopefully there'll be a new release cut and deployed to PyPi with this PR now merged so the PyPi project has a project description (readme) |
behrmann
commented
Oct 3, 2025
A new release is planned after the current PR are addressed. |
EVWorth
commented
Nov 18, 2025
@behrmann Any planned release upcoming? I'm hitting the same issue trying to install this package using UV on non-linux dev machines. I think the next release that includes this merged PR will solve the problem |
Motivation
I have a Django web project, which targets Linux server but some team members use MacOS for development. We use
uvas Python package manager. In the "dependency resolution" phase,uvtried to findsystemd-pythonmetadata but couldn't get what it wanted from the setup.py file. It had to buildsystemd-pythonwheel to get the metadata, then failed on MacOS machines.What this PR does
Adopt new pyproject.toml file, in place of setup.py. For building C code, I adopt Meson, which has meson-python as a build backend so that
pipor any other modern Python package manager can know how to build the C-based extensions.Because this new build process is done in an isolated environment and leave no *.so files, the Makefile is also updated to work with this new build method.
This is the rework of #147, but split to smaller steps.
At this step, I only make these 4 jobs work:
I don't move the other jobs from Makefile to Meson.
I also move the "systemd" folder (containing C & Py sources) to
srcfolder, to prevent importing by accident when standing at the top-level folder. This is also a common practice for many other Python projects.