Sync from SUSE:SLFO:Main python-pybind11 revision 96af6d984ecba2046e9112567e656cc2

This commit is contained in:
Adrian Schröter 2024-05-03 22:01:56 +02:00
commit 334719e6ac
6 changed files with 841 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>test</package>
</multibuild>

BIN
pybind11-2.10.4.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,2 @@
# The ghost comes from pretrans
addFilter("ghost-files-without-postin")

605
python-pybind11.changes Normal file
View File

@ -0,0 +1,605 @@
-------------------------------------------------------------------
Fri Apr 21 12:30:25 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
-------------------------------------------------------------------
Thu Apr 13 22:43:32 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Make calling of %{sle15modernpython} optional.
-------------------------------------------------------------------
Sun Mar 19 12:06:00 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 2.10.4:
* ``python3 -m pybind11`` gained a ``--version`` option (prints
the version and exits).
* Fix a warning when pydebug is enabled on Python 3.11.
* Ensure ``gil_scoped_release`` RAII is non-copyable.
* Ensure the tests dir does not show up with new versions of
setuptools.
* Better stacklevel for a warning in setuptools helpers.
-------------------------------------------------------------------
Thu Jan 12 17:50:05 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Package new pkgconfig file gh#pybind/pybind11#4077
- PEP517 build
- Fix multibuild setup: unique packagename for test flavor required
-------------------------------------------------------------------
Wed Jan 4 19:48:22 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 2.10.3:
* Temporarily made our GIL status assertions (added in 2.10.2) disabled by
default (re-enable manually by defining
``PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF``, will be enabled in 2.11).
* Improved error messages when ``inc_ref``/``dec_ref`` are called with an
invalid GIL state.
* Some minor touchups found by static analyzers.
* ``scoped_interpreter`` constructor taking ``PyConfig``.
* ``pybind11/eigen/tensor.h`` adds converters to and from
``Eigen::Tensor`` and
``Eigen::TensorMap``.
* ``PyGILState_Check()``'s were integrated to ``pybind11::handle``
``inc_ref()`` & ``dec_ref()``. The added GIL checks are guarded by
``PYBIND11_ASSERT_GIL_HELD_INCREF_DECREF``, which is the default only if
``NDEBUG`` is not defined. (Made non-default in 2.10.3, will be active in 2.11)
* Add option for enable/disable enum members in docstring.
* Fixed typing of ``KeysView``, ``ValuesView`` and ``ItemsView`` in
``bind_map``.
* Fix segfault bug when passing foreign native functions to functional.h.
* Build system improvements:
* Support setting PYTHON_LIBRARIES manually for Windows ARM cross-
compilation
(classic mode).
* Extend IPO/LTO detection for ICX (a.k.a IntelLLVM) compiler.
* Allow calling ``find_package(pybind11 CONFIG)`` multiple times from
separate
directories in the same CMake project and properly link Python (new mode).
* ``multiprocessing_set_spawn`` in pytest fixture for added safety.
* Fixed a bug in two pybind11/tools cmake scripts causing "Unknown
arguments specified" errors.
* Version 2.10.1 (Oct 31, 2022)
* This is the first version to fully support embedding the newly released
Python 3.11.
* Changes:
* Allow ``pybind11::capsule`` constructor to take null destructor
pointers.
* ``embed.h`` was changed so that ``PYTHONPATH`` is used also with Python
3.11
(established behavior).
* A ``PYBIND11_SIMPLE_GIL_MANAGEMENT`` option was added (cmake, C++
define),
along with many additional tests in ``test_gil_scoped.py``. The option may be
useful to try when debugging GIL-related issues, to determine if the more
complex default implementation is or is not to blame. See #4216 for
background. WARNING: Please be careful to not create ODR violations when
using the option: everything that is linked together with mutual symbol
visibility needs to be rebuilt.
* ``PYBIND11_EXPORT_EXCEPTION`` was made non-empty only under macOS. This
makes
Linux builds safer, and enables the removal of warning suppression pragmas for
Windows.
* Fixed a bug where ``UnicodeDecodeError`` was not propagated from various
``py::str`` ctors when decoding surrogate utf characters.
* Revert perfect forwarding for ``make_iterator``. This broke at least one
valid use case. May revisit later.
* Fix support for safe casts to ``void*`` (regression in 2.10.0).
* Fix ``char8_t`` support (regression in 2.9).
* Unicode surrogate character in Python exception message leads to process
termination in ``error_already_set::what()``.
* Fix MSVC 2019 v.1924 & C++14 mode error for ``overload_cast``.
* Make augmented assignment operators non-const for the object-api.
Behavior
was previously broken for augmented assignment operators.
* Add proper error checking to C++ bindings for Python list append and
insert.
* Work-around for Nvidia's CUDA nvcc compiler in versions 11.4.0 - 11.8.0.
* A workaround for PyPy was added in the ``py::error_already_set``
implementation, related to PR `#1895 <https://github.com/pybind/pybind11/pull/1895>`_
released with v2.10.0.
* Fixed compiler errors when C++23 ``std::forward_like`` is available.
* Properly raise exceptions in contains methods (like when an object in
unhashable).
* Further improve another error in exception handling.
* ``get_local_internals()`` was made compatible with
``finalize_interpreter()``, fixing potential freezes during interpreter
finalization.
* Performance and style:
* Reserve space in set and STL map casters if possible. This will prevent
unnecessary rehashing / resizing by knowing the number of keys ahead of time
for Python to C++ casting. This improvement will greatly speed up the casting
of large unordered maps and sets.
* GIL RAII scopes are non-copyable to avoid potential bugs.
* Explicitly default all relevant ctors for pytypes in the
``PYBIND11_OBJECT``
macros and enforce the clang-tidy checks ``modernize-use-equals-default`` in
macros as well.
* Optimize iterator advancement in C++ bindings.
* Use the modern ``PyObject_GenericGetDict`` and
``PyObject_GenericSetDict``
for handling dynamic attribute dictionaries.
* Document that users should use ``PYBIND11_NAMESPACE`` instead of using
``pybind11`` when
opening namespaces. Using namespace declarations and namespace qualification
remain the same as ``pybind11``. This is done to ensure consistent symbol
visibility.
* Mark ``detail::forward_like`` as constexpr.
* Optimize unpacking_collector when processing ``arg_v`` arguments.
* Optimize casting C++ object to ``None``.
-------------------------------------------------------------------
Thu Sep 15 20:25:44 UTC 2022 - Ben Greiner <code@bnavigator.de>
- %pretrans must be lua
- requires python-rpm-macros >= 20220912 because of parameter in
scriptlet
- Fix subdirectory links
-------------------------------------------------------------------
Wed Sep 14 21:02:16 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Work around long standing rpm-directory-to-symlink-bug
* https://docs.fedoraproject.org/en-US/packaging-guidelines/Directory_Replacement/
* rh#447156
* use shell instead of lua for pretrans scriptlet
-------------------------------------------------------------------
Sun Sep 11 00:15:11 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 2.10.0
* Removed support for Python 2.7, Python 3.5, and MSVC 2015.
Support for MSVC 2017 is limited due to availability of CI
runners; we highly recommend MSVC 2019 or 2022 be used.
Initial support added for Python 3.11.
* New features:
+ py::anyset & py::frozenset were added, with copying (cast)
to std::set (similar to set). #3901
+ Support bytearray casting to string. #3707
+ type_caster<std::monostate> was added. std::monostate is a
tag type that allows std::variant to act as an optional, or
allows default construction of a std::variant holding a
non-default constructible type. #3818
+ pybind11::capsule::set_name added to mutate the name of the
capsule instance. #3866
+ NumPy: dtype constructor from type number added, accessors
corresponding to Python API dtype.num, dtype.byteorder,
dtype.flags and dtype.alignment added. #3868
* Changes:
+ Python 3.6 is now the minimum supported version. #3688 #3719
+ The minimum version for MSVC is now 2017. #3722
+ Fix issues with CPython 3.11 betas and add to supported test
matrix. #3923
+ error_already_set is now safer and more performant,
especially for exceptions with long tracebacks, by delaying
computation. #1895
+ Improve exception handling in python str bindings. #3826
+ The bindings for capsules now have more consistent exception
handling. #3825
+ PYBIND11_OBJECT_CVT and PYBIND11_OBJECT_CVT_DEFAULT macro
can now be used to define classes in namespaces other than
pybind11. #3797
+ Error printing code now uses
PYBIND11_DETAILED_ERROR_MESSAGES instead of requiring
NDEBUG, allowing use with release builds if desired. #3913
+ Implicit conversion of the literal 0 to pybind11::handle is
now disabled. #4008
* Bug fixes:
+ Fix exception handling when pybind11::weakref() fails. #3739
+ module_::def_submodule was missing proper error handling.
This is fixed now. #3973
+ The behavior or error_already_set was made safer and the
highly opaque "Unknown internal error occurred" message was
replaced with a more helpful message. #3982
+ error_already_set::what() now handles non-normalized
exceptions correctly. #3971
+ Support older C++ compilers where filesystem is not yet part
of the standard library and is instead included in
std::experimental::filesystem. #3840
+ Fix -Wfree-nonheap-object warnings produced by GCC by
avoiding returning pointers to static objects with
return_value_policy::take_ownership. #3946
+ Fix cast from pytype rvalue to another pytype. #3949
+ Ensure proper behavior when garbage collecting classes with
dynamic attributes in Python >=3.9. #4051
+ A couple long-standing PYBIND11_NAMESPACE
__attribute__((visibility("hidden"))) inconsistencies are
now fixed (affects only unusual environments). #4043
+ pybind11::detail::get_internals() is now resilient to
in-flight Python exceptions. #3981
+ Arrays with a dimension of size 0 are now properly converted
to dynamic Eigen matrices (more common in NumPy 1.23). #4038
+ Avoid catching unrelated errors when importing NumPy. #3974
* Performance and style:
+ Added an accessor overload of (object &&key) to reference
steal the object when using python types as keys. This
prevents unnecessary reference count overhead for attr,
dictionary, tuple, and sequence look ups. Added additional
regression tests. Fixed a performance bug the caused
accessor assignments to potentially perform unnecessary
copies. #3970
+ Perfect forward all args of make_iterator. #3980
+ Avoid potential bug in pycapsule destructor by adding an
error_guard to one of the dtors. #3958
+ Optimize dictionary access in strip_padding for numpy. #3994
+ stl_bind.h bindings now take slice args as a const-ref.
#3852
+ Made slice constructor more consistent, and improve
performance of some casters by allowing reference stealing.
#3845
+ Change numpy dtype from_args method to use const ref. #3878
+ Follow rule of three to ensure PyErr_Restore is called only
once. #3872
+ Added missing perfect forwarding for make_iterator
functions. #3860
+ Optimize c++ to python function casting by using the rvalue
caster. #3966
+ Optimize Eigen sparse matrix casting by removing unnecessary
temporary. #4064
+ Avoid potential implicit copy/assignment constructors
causing double free in strdup_gaurd. #3905
+ Enable clang-tidy checks misc-definitions-in-headers,
modernize-loop-convert, and modernize-use-nullptr. #3881
#3988
* Build system improvements:
+ CMake: Fix file extension on Windows with cp36 and cp37
using FindPython. #3919
+ CMake: Support multiple Python targets (such as on vcpkg).
#3948
+ CMake: Fix issue with NVCC on Windows. #3947
+ CMake: Drop the bitness check on cross compiles (like
targeting WebAssembly via Emscripten). #3959
+ Add MSVC builds in debug mode to CI. #3784
+ MSVC 2022 C++20 coverage was added to GitHub Actions,
including Eigen. #3732, #3741
* Backend and tidying up:
+ New theme for the documentation. #3109
+ Remove idioms in code comments. Use more inclusive language.
#3809
+ #include <iostream> was removed from the pybind11/stl.h
header. Your project may break if it has a transitive
dependency on this include. The fix is to "Include What You
Use". #3928
+ Avoid setup.py <command> usage in internal tests. #3734
- Fix header deduplication: pybind11.get_include still reports
the headers to be in the sitelib (SciPy meson build fail)
- Test in multibuild as some tests expect the system-wide
%_includedir/pybind11/pybind11.h
-------------------------------------------------------------------
Sat Apr 9 22:47:00 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 2.9.2:
* Enum now has an ``__index__`` method on Python <3.8 too.
* Local internals are now cleared after finalizing the interpreter.
* Better support for Python 3.11 alphas.
* ``PYBIND11_TYPE_CASTER`` now uses fully qualified symbols, so it can be used
outside of ``pybind11::detail``.
* Some fixes for PyPy 3.9.
* Fixed a potential memleak in PyPy in ``get_type_override``.
* Fix usage of ``VISIBILITY_INLINES_HIDDEN``.
* Uses ``sysconfig`` module to determine installation locations on Python >=
3.10, instead of ``distutils`` which has been deprecated.
* Support Catch 2.13.5+ (supporting GLIBC 2.34+).
* Fix test failures with numpy 1.22 by ignoring whitespace when comparing
``str()`` of dtypes.
-------------------------------------------------------------------
Sun Mar 27 15:11:08 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 2.9.1:
* If possible, attach Python exception with py::raise_from to TypeError when
casting from C++ to Python. This will give additional info if Python
exceptions occur in the caster.
* Add a mapping of C++11 nested exceptions to their Python exception
equivalent using py::raise_from. This attaches the nested exceptions in
Python using the __cause__ field.
* Propagate Python exception traceback using raise_from if a pybind11
function runs out of overloads.
* py::multiple_inheritance is now only needed when C++ bases are hidden from
pybind11.
* Allow py::args to be followed by other arguments; the remaining arguments
are implicitly keyword-only, as if a py::kw_only{} annotation had been
used.
* Fix a rare warning about extra copy in an Eigen constructor.
* Fix caching of the C++ overrides.
* Add missing std::forward calls to some cpp_function overloads.
* Support PyPy 7.3.7 and the PyPy3.8 beta. Test python-3.11 on PRs with the python dev label.
* Replace usage of deprecated Eigen::MappedSparseMatrix with Eigen::Map<Eigen::SparseMatrix<...>> for Eigen 3.3+.
* Tweaks to support Microsoft Visual Studio 2022.
-------------------------------------------------------------------
Mon Dec 6 10:07:33 UTC 2021 - Dirk Müller <dmueller@suse.com>
- udpate to 2.8.1:
* The simple namespace creation shortcut added in 2.8.0 was deprecated due to
usage of CPython internal API, and will be removed soon.
* Add C++ Exception type to throw and catch ``AttributeError``.
* Fixed the potential for dangling references when using properties with
``std::optional`` types.
* Modernize usage of ``PyCodeObject`` on Python 3.9+ (moving toward support for
Python 3.11a1)
* A long-standing bug in ``eigen.h`` was fixed (originally PR #3343). The bug
was unmasked by newly added ``static_assert``'s in the Eigen 3.4.0 release.
* Support multiple raw inclusion of CMake helper files
* Fix harmless warning on upcoming CMake 3.22.
* Fix 2.8.0 regression with MSVC 2017 + C++17 mode + Python 3.
* Fix 2.8.0 regression that caused undefined behavior (typically
segfaults) in ``make_key_iterator``/``make_value_iterator`` if dereferencing
the iterator returned a temporary value instead of a reference.
-------------------------------------------------------------------
Sat Oct 16 20:47:43 UTC 2021 - Stefan Schubert <schubi@suse.de>
- Use libalternatives instead of update-alternatives.
-------------------------------------------------------------------
Sat Oct 16 19:47:43 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to v2.8.0
* Added py::raise_from to enable chaining exceptions. #3215
* Allow exception translators to be optionally registered local
to a module instead of applying globally across all pybind11
modules. Use
register_local_exception_translator(ExceptionTranslator&&
translator) instead of
register_exception_translator(ExceptionTranslator&& translator)
to keep your exception remapping code local to the module.
#2650
* Add make_simple_namespace function for instantiating Python
SimpleNamespace objects. #2840
* pybind11::scoped_interpreter and initialize_interpreter have
new arguments to allow sys.argv initialization. #2341
* Allow Python builtins to be used as callbacks in CPython. #1413
* Added view to view arrays with a different datatype. #987
* Implemented reshape on arrays. #984
* Enable defining custom __new__ methods on classes by fixing bug
preventing overriding methods if they have non-pybind11
siblings. #3265
* Add make_value_iterator(), and fix make_key_iterator() to
return references instead of copies. #3293
* Improve the classes generated by bind_map: #3310
* Change .items from an iterator to a dictionary view.
* Add .keys and .values (both dictionary views).
* Allow __contains__ to take any object.
* pybind11::custom_type_setup was added, for customizing the
PyHeapTypeObject corresponding to a class, which may be useful
for enabling garbage collection support, among other things.
#3287
* Set __file__ constant when running eval_file in an embedded
interpreter. #3233
* Python objects and (C++17) std::optional now accepted in
py::slice constructor. #1101
* The pybind11 proxy types str, bytes, bytearray, tuple, list now
consistently support passing ssize_t values for sizes and
indexes. Previously, only size_t was accepted in several
interfaces. #3219
* Avoid evaluating PYBIND11_TLS_REPLACE_VALUE arguments more than
once. #3290
* Bug fix: enum value's __int__ returning non-int when underlying
type is bool or of char type. #1334
* Fixes bug in setting error state in Capsule's pointer methods.
#3261
* A long-standing memory leak in py::cpp_function::initialize was
fixed. #3229
* Fixes thread safety for some pybind11::type_caster which
require lifetime extension, such as for std::string_view. #3237
* Restore compatibility with gcc 4.8.4 as distributed by
ubuntu-trusty, linuxmint-17. #3270
* Fix regression in CMake Python package config: improper use of
absolute path. #3144
* Cached Python version information could become stale when CMake
was re-run with a different Python version. The build system
now detects this and updates this information. #3299
* Specified UTF8-encoding in setup.py calls of open(). #3137
* Fix a harmless warning from CMake 3.21 with the classic Python
discovery. #3220
* Eigen repo and version can now be specified as cmake options.
#3324
* Reduced thread-local storage required for keeping alive
temporary data for type conversion to one key per ABI version,
rather than one key per extension module. This makes the total
thread-local storage required by pybind11 2 keys per ABI
version. #3275
* Optimize NumPy array construction with additional moves. #3183
* Conversion to std::string and std::string_view now avoids
making an extra copy of the data on Python >= 3.3. #3257
* Remove const modifier from certain C++ methods on Python
collections (list, set, dict) such as (clear(), append(),
insert(), etc...) and annotated them with py-non-const.
* Enable readability clang-tidy-const-return and remove useless
consts. #3254 #3194
* The clang-tidy google-explicit-constructor option was enabled.
#3250
* Mark a pytype move constructor as noexcept (perf). #3236
* Enable clang-tidy check to guard against inheritance slicing.
#3210
* Legacy warning suppression pragma were removed from eigen.h. On
Unix platforms, please use -isystem for Eigen include
directories, to suppress compiler warnings originating from
Eigen headers. Note that CMake does this by default. No
adjustments are needed for Windows. #3198
* Format pybind11 with isort consistent ordering of imports #3195
* The warnings-suppression "pragma clamp" at the top/bottom of
pybind11 was removed, clearing the path to refactoring and IWYU
cleanup. #3186
* Enable most bugprone checks in clang-tidy and fix the found
potential bugs and poor coding styles. #3166
* Add clang-tidy-readability rules to make boolean casts explicit
improving code readability. Also enabled other misc and
readability clang-tidy checks. #3148
* Move object in .pop() for list. #3116
- Release 2.7.1
* Allow Python builtins to be used as callbacks in CPython. #1413
* Fix regression in CMake Python package config: improper use of
absolute path. #3144
* Fix Mingw64 and add to the CI testing matrix. #3132
* Specified UTF8-encoding in setup.py calls of open(). #3137
* Add clang-tidy-readability rules to make boolean casts explicit
improving code readability. Also enabled other misc and
readability clang-tidy checks. #3148
* Move object in .pop() for list. #3116
* Removed and fixed warning suppressions. #3127 #3129 #3135 #3141
#3142 #3150 #3152 #3160 #3161
- Release 2.7.0
* Enable py::implicitly_convertible<py::none, ...> for
py::class_-wrapped types. #3059
* Allow function pointer extraction from overloaded functions.
#2944
* NumPy: added .char_() to type which gives the NumPy public char
result, which also distinguishes types by bit length (unlike
.kind()). #2864
* Add pybind11::bytearray to manipulate bytearray similar to
bytes. #2799
* pybind11/stl/filesystem.h registers a type caster that, on
C++17/Python 3.6+, converts std::filesystem::path to
pathlib.Path and any os.PathLike to std::filesystem::path.
#2730
* A PYBIND11_VERSION_HEX define was added, similar to
PY_VERSION_HEX. #3120
* py::str changed to exclusively hold PyUnicodeObject. Previously
py::str could also hold bytes, which is probably surprising,
was never documented, and can mask bugs (e.g. accidental use of
py::str instead of py::bytes). #2409
* Add a safety guard to ensure that the Python GIL is held when
C++ calls back into Python via object_api<>::operator() (e.g.
py::function __call__). (This feature is available for Python
3.6+ only.) #2919
* Catch a missing self argument in calls to __init__(). #2914
* Use std::string_view if available to avoid a copy when passing
an object to a std::ostream. #3042
* An important warning about thread safety was added to the
iostream.h documentation; attempts to make
py::scoped_ostream_redirect thread safe have been removed, as
it was only partially effective. #2995
* Performance: avoid unnecessary strlen calls. #3058
* Fix auto-generated documentation string when using const T in
pyarray_t. #3020
* Unify error messages thrown by
simple_collector/unpacking_collector. #3013
* pybind11::builtin_exception is now explicitly exported, which
means the types included/defined in different modules are
identical, and exceptions raised in different modules can be
caught correctly. The documentation was updated to explain that
custom exceptions that are used across module boundaries need
to be explicitly exported as well. #2999
* Fixed exception when printing UTF-8 to a
scoped_ostream_redirect. #2982
* Pickle support enhancement: setstate implementation will
attempt to setattr __dict__ only if the unpickled dict object
is not empty, to not force use of py::dynamic_attr()
unnecessarily. #2972
* Allow negative timedelta values to roundtrip. #2870
* Fix unchecked errors could potentially swallow signals/other
exceptions. #2863
* Add null pointer check with std::localtime. #2846
* Fix the weakref constructor from py::object to create a new
weakref on conversion. #2832
* Avoid relying on exceptions in C++17 when getting a shared_ptr
holder from a shared_from_this class. #2819
* Allow the codec's exception to be raised instead of
RuntimeError when casting from py::str to std::string. #2903
* In setup_helpers.py, test for platforms that have some
multiprocessing features but lack semaphores, which
ParallelCompile requires. #3043
* Fix pybind11_INCLUDE_DIR in case CMAKE_INSTALL_INCLUDEDIR is
absolute. #3005
* Fix bug not respecting WITH_SOABI or WITHOUT_SOABI to CMake.
#2938
* Fix the default Pybind11Extension compilation flags with a
Mingw64 python. #2921
* Clang on Windows: do not pass /MP (ignored flag). #2824
* pybind11.setup_helpers.intree_extensions can be used to
generate Pybind11Extension instances from cpp files placed in
the Python package source tree. #2831
* Enable clang-tidy performance, readability, and modernization
checks throughout the codebase to enforce best coding
practices. #3046, #3049, #3051, #3052, #3080, and #3094
* Checks for common misspellings were added to the pre-commit
hooks. #3076
* Changed Werror to stricter Werror-all for Intel compiler and
fixed minor issues. #2948
* Fixed compilation with GCC < 5 when the user defines
_GLIBCXX_USE_CXX11_ABI. #2956
* Added nox support for easier local testing and linting of
contributions. #3101 and #3121
* Avoid RTD style issue with docutils 0.17+. #3119
* Support pipx run, such as pipx run pybind11 --include for a
quick compile. #3117
- Drop unicode.patch merged upstream
-------------------------------------------------------------------
Wed Jul 7 14:30:20 UTC 2021 - Markéta Machová <mmachova@suse.com>
- Add upstream patch unicode.patch to fix random python crash
-------------------------------------------------------------------
Mon Feb 15 00:56:32 UTC 2021 - Benjamin Greiner <code@bnavigator.de>
- Dont test with python36-numpy. Tumbleweed's NumPy >= 1.20 dropped
support for Python 3.6
-------------------------------------------------------------------
Sun Feb 7 13:15:06 UTC 2021 - John Vandenberg <jayvdb@gmail.com>
- Add docs/changelog.rst to package contents
- Update to v2.6.2
* See changelog for changes since 2.5.0
-------------------------------------------------------------------
Fri Jul 17 01:00:06 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Also expand generation of test binaries for Python 2 and 3,
fixes Leap 15.x builds where Python 2 is still built.
-------------------------------------------------------------------
Mon Jul 6 14:56:54 UTC 2020 - Christian Goll <cgoll@suse.com>
- updated to version 2.5.0 and running the internal unit tests now
-------------------------------------------------------------------
Thu Apr 23 10:05:00 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- On devel files you need the pybind too to compile anything
-------------------------------------------------------------------
Wed Mar 11 16:57:22 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Fix build without python2
-------------------------------------------------------------------
Thu Feb 13 05:32:14 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Fix mixup of expanded/unexpaned python versions in devel package,
the devel package always required python(2)-devel and
python2-pybind. Move the data to a -common-devel subpackage,
pulled in by versioned python{2,3}-pybind-devel packages.
-------------------------------------------------------------------
Tue Jan 14 10:19:23 UTC 2020 - John Vandenberg <jayvdb@gmail.com>
- Add package version to extra devel packages added via Provides
-------------------------------------------------------------------
Sat Dec 21 15:51:16 UTC 2019 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 2.4.3
* Adapt pybind11 to a C API convention change in Python 3.8.
-------------------------------------------------------------------
Tue Oct 8 09:11:41 UTC 2019 - Christian Goll <cgoll@suse.com>
- updated to 2.4.2
* made devel package python version independent
* added cmake run to install cmake include files
-------------------------------------------------------------------
Sat Aug 24 06:26:13 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Replace description by something more substantial.
-------------------------------------------------------------------
Mon Jul 22 14:21:41 UTC 2019 - Michal Vyskocil <mvyskocil@opensuse.org>
- Initial packaging of pybind11 2.3.0 for openSUSE

205
python-pybind11.spec Normal file
View File

@ -0,0 +1,205 @@
#
# spec file
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%bcond_without test
%define psuffix -test
%else
%bcond_with test
%define psuffix %{nil}
%endif
%if 0%{?suse_version} > 1500
%bcond_without libalternatives
%else
%bcond_with libalternatives
%endif
%define skip_python2 1
%define plainpython python
%{?sle15_python_module_pythons}
Name: python-pybind11%{psuffix}
Version: 2.10.4
Release: 0
Summary: Module for operability between C++11 and Python
License: BSD-3-Clause
URL: https://github.com/pybind/pybind11
Source: https://github.com/pybind/pybind11/archive/v%{version}.tar.gz#/pybind11-%{version}.tar.gz
Source99: python-pybind11-rpmlintrc
BuildRequires: %{python_module devel >= 3.6}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 42}
BuildRequires: %{python_module wheel}
BuildRequires: cmake >= 3.18
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: python-rpm-macros >= 20220912
%if %{with libalternatives}
Requires: alts
BuildRequires: alts
%else
Requires(post): update-alternatives
Requires(postun):update-alternatives
%endif
%if %{with test}
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module pybind11-devel = %{version}}
BuildRequires: %{python_module pytest-timeout}
BuildRequires: %{python_module pytest}
%endif
BuildArch: noarch
%python_subpackages
%description
pybind11 is a header-only library that exposes C++ types in Python
and vice versa, mainly to create Python bindings of existing C++
code. It can reduce boilerplate code in traditional extension modules
by inferring type information using compile-time introspection.
%package -n %{name}-common-devel
Summary: Development files for pybind11
Provides: %{python_module pybind11-common-devel = %{version}}
%description -n %{name}-common-devel
This package contains files for developing applications using pybind11.
%package devel
Summary: Development files for pybind11
Requires: %{name}-common-devel = %{version}
Requires: python-devel
Requires: python-pybind11 = %{version}
Requires: %{plainpython}(abi) = %{python_version}
%description devel
This package contains files for developing applications using pybind11.
%prep
%setup -q -n pybind11-%{version}
%build
%if !%{with test}
%pyproject_wheel
# calling cmake to install header to right location and
# generate cmake include files
%{python_expand pushd .
%cmake \
-DPYBIND11_INSTALL=ON \
-DPYBIND11_TEST=OFF \
-DPYTHON_EXECUTABLE:FILEPATH=%{_bindir}/$python
%cmake_build
popd
}
%else
%{python_expand pushd .
%cmake \
-DPYBIND11_INSTALL=OFF \
-DPYBIND11_TEST=ON \
-DPYTHON_EXECUTABLE:FILEPATH=%{_bindir}/$python
%cmake_build
popd
}
%endif
%install
%if !%{with test}
%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/pybind11-config
%{python_expand #
%cmake_install
# remove duplicated header files from sitelibs but link to common dirs as some
# packages expect them to be in the sitelib where pybind11.get_include() reports them.
rm -r %{buildroot}%{$python_sitelib}/pybind11/include/pybind11
ln -s %{_includedir}/pybind11 %{buildroot}%{$python_sitelib}/pybind11/include/pybind11
# same for cmake files: pybind11.get_cmake_dir()
rm -r %{buildroot}%{$python_sitelib}/pybind11/share/cmake/pybind11
ln -s %{_datadir}/cmake/pybind11 %{buildroot}%{$python_sitelib}/pybind11/share/cmake/pybind11
# same for pkgconfig
rm %{buildroot}%{$python_sitelib}/pybind11/share/pkgconfig/pybind11.pc
ln -s %{_datadir}/pkgconfig/pybind11.pc %{buildroot}%{$python_sitelib}/pybind11/share/pkgconfig/pybind11.pc
%fdupes %{buildroot}%{$python_sitelib}
}
%endif
%if %{with test}
%check
export PYTHONPATH=${PWD}/build/tests/
# tests fail as python3-widget is not in distribuion
ignore_tests="--ignore tests/test_embed/test_interpreter.py --ignore tests/test_embed/test_trampoline.py"
# no isolated build env with builddep wheels available
ignore_tests="$ignore_tests --ignore tests/extra_python_package/test_files.py"
%pytest $ignore_tests
%endif
%pretrans devel -p <lua>
-- https://docs.fedoraproject.org/en-US/packaging-guidelines/Directory_Replacement/
-- rh#447156
-- Define the paths to directory being replaced in the below.
-- DO NOT add a trailing slash at the end.
paths = {"%{python_sitelib}/pybind11/share/cmake/pybind11", "%{python_sitelib}/pybind11/include/pybind11"}
for i, path in ipairs(paths) do
st = posix.stat(path)
if st and st.type == "directory" then
status = os.rename(path, path .. ".rpmmoved")
if not status then
suffix = 0
while not status do
suffix = suffix + 1
status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
end
os.rename(path, path .. ".rpmmoved")
end
end
end
%pre
# If libalternatives is used: Removing old update-alternatives entries.
%python_libalternatives_reset_alternative pybind11-config
%post
%python_install_alternative pybind11-config
%postun
%python_uninstall_alternative pybind11-config
%if !%{with test}
%files %{python_files}
%doc README.rst docs/changelog.rst
%license LICENSE
%python_alternative %{_bindir}/pybind11-config
%{python_sitelib}/pybind11
%exclude %{python_sitelib}/pybind11/share/cmake
%exclude %{python_sitelib}/pybind11/include
%{python_sitelib}/pybind11-%{version}*-info
%files -n %{name}-common-devel
%license LICENSE
%{_includedir}/pybind11
%{_datadir}/cmake/pybind11
%{_datadir}/pkgconfig/pybind11.pc
%files %{python_files devel}
%license LICENSE
%{python_sitelib}/pybind11/share/cmake
%ghost %{python_sitelib}/pybind11/share/cmake/pybind11.rpmmoved
%{python_sitelib}/pybind11/include
%ghost %{python_sitelib}/pybind11/include/pybind11.rpmmoved
%{python_sitelib}/pybind11/share/pkgconfig
%endif
%changelog