Re: [ITP] python-pybind11

Hamish McIntyre-Bhatty via Cygwin-apps <[email protected]> Sun, 15 Mar 2026 16:57:44 +0000
Newsgroups gmane.os.cygwin.applications
Message-ID <[email protected]>
On 15/03/2026 16:41, Jon Turney wrote:
> On 15/03/2026 15:52, Hamish McIntyre-Bhatty via Cygwin-apps wrote:
>> Hi all,
>>
>> pybind11 (https://pypi.org/project/pybind11/) is a dependency of 
>> recent versions of python-imaging (a package I already maintain), and 
>> as such I'd like to package it for Cygwin.
>>
>> The Cygport file is available at: https://gitlab.com/hamishmb/cygwin- 
>> python-pybind11.
>>
>> pybind11 is in Debian: 
>> https://packages.debian.org/trixie/python3-pybind11
>
> Thanks! I added this to your packages.
Thank you!
>
> A few small comments on the cygport:
>  > PYTHON_WHEEL_VERSIONS="3.9:3.12"
>
> This is the default, and leaving it implicit will avoid the need to 
> change it in future.
Thanks, I didn't know I could leave that out, I shall amend it.
>
>> PKG_NAMES="python-pybind11-common python39-pybind11 python312-pybind11"
> [...]
>> python39_pybind11_REQUIRES="python39"
>> python312_pybind11_REQUIRES="python312"
>
> You can write this as (something like):
>
>> PKG_NAMES="python-pybind11-common"
>>
>> for v in ${PYTHON_WHEEL_VERSIONS//:/ }
>> do
>>   PKG_NAMES+=" python${v/./}"
>>   declare python${v/./}_REQUIRES+="python${v}"
>> done
>
Good to know, but that is less clear to me, personally, probably because 
I'm not all that familiar with shell scripting.

> I'm not sure about this part:
>
>> python_pybind11_common_REQUIRES="python39-pybind11 python312-pybind11"
>> python_pybind11_common_CONTENTS="
>>     usr/bin/
>> "
>
> Maybe the name should just be python-pybind11, or even pybind11, if it 
> installs a tool of that name?
It install pybind11-config, so perhaps yes.
>
> I'm not sure about the arrangement of depending on 
> python3{9,12}-pybind11 (and thus pulling in *both* python39 and 
> python312) to ensure that the script works irrespective of what 
> /usr/bin/python currently is).
>
> (In fact, because python-wheel installs /usr/bin/pybind11-config for 
> each python version, we might well end up with it containing an 
> explicitly versioned shebang for the last one it made, anyhow)
You're probably right.
>
>
> So, all in all, maybe it makes more sense to build this with the 
> python3-wheel cygclass? (which only builds the package for a single 
> version of python, the default, which is 3.9 currently) - especially 
> if the primary way to use this is via the script, and the python 
> module isn't expected to be used elsewhere. 

The python module gets imported when used by other modules like 
python-imaging, so I don't think that would work, and we do need to 
build for both Python 3.9 and 3.12, unless due to it being a pure-python 
module, the module is compatible with both? The build times are very 
short anyway, so I don't thinks that's too much of a concern?

Best,

Hamish