Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-xkbcommon for openSUSE:Factory checked in at 2024-05-03 19:45:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-xkbcommon (Old) and /work/SRC/openSUSE:Factory/.python-xkbcommon.new.1880 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-xkbcommon" Fri May 3 19:45:36 2024 rev:3 rq:1171477 version:1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-xkbcommon/python-xkbcommon.changes 2023-02-14 16:45:27.178453462 +0100 +++ /work/SRC/openSUSE:Factory/.python-xkbcommon.new.1880/python-xkbcommon.changes 2024-05-03 19:45:56.983905128 +0200 @@ -1,0 +2,7 @@ +Thu May 2 21:51:13 UTC 2024 - Dirk Müller <dmuel...@suse.com> + +- update to 1.0: + * add key_get_mods_for_level + * add python 3.12 support + +------------------------------------------------------------------- Old: ---- python-xkbcommon-0.8.tar.gz New: ---- python-xkbcommon-1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-xkbcommon.spec ++++++ --- /var/tmp/diff_new_pack.ymcBnl/_old 2024-05-03 19:45:58.127946720 +0200 +++ /var/tmp/diff_new_pack.ymcBnl/_new 2024-05-03 19:45:58.139947156 +0200 @@ -1,7 +1,7 @@ # -# spec file +# spec file for package python-xkbcommon # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,17 +18,18 @@ %bcond_without test %define pyname xkbcommon +%{?sle15_python_module_pythons} Name: python-%{pyname} -Version: 0.8 +Version: 1.0 Release: 0 Summary: Python bindings for libxkbcommon using cffi License: MIT Group: Development/Libraries/Python URL: https://github.com/sde1000/python-xkbcommon Source0: https://files.pythonhosted.org/packages/source/x/xkbcommon/%{pyname}-%{version}.tar.gz#/%{name}-%{version}.tar.gz -# Patch0: fix-xkbcommon-paths.patch BuildRequires: %{python_module cffi} BuildRequires: %{python_module devel} +BuildRequires: %{python_module pip} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} @@ -42,18 +43,15 @@ Python bindings for libxkbcommon using cffi %prep -%setup -q -n %{pyname}-%{version} -#%%patch0 -p1 +%autosetup -p1 -n %{pyname}-%{version} %build -export CFLAGS="-I/usr/include/libxkbcommon ${CFLAGS}" +export CFLAGS="%optflags $(pkg-config --cflags xkbcommon)" %python_exec xkbcommon/ffi_build.py -%python_build +%pyproject_wheel %install -export CFLAGS="%optflags $(pkg-config --cflags xkbcommon)" -%python_install - +%pyproject_install %{python_expand %fdupes %{buildroot}%{$python_sitearch}} %if %{with test} @@ -68,5 +66,6 @@ %files %{python_files} %license LICENSE %doc README.rst -%{python_sitearch}/* +%{python_sitearch}/xkbcommon +%{python_sitearch}/xkbcommon-%{version}.dist-info ++++++ python-xkbcommon-0.8.tar.gz -> python-xkbcommon-1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xkbcommon-0.8/PKG-INFO new/xkbcommon-1.0/PKG-INFO --- old/xkbcommon-0.8/PKG-INFO 2023-01-12 00:55:11.186813400 +0100 +++ new/xkbcommon-1.0/PKG-INFO 2024-04-10 16:12:16.277598400 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: xkbcommon -Version: 0.8 +Version: 1.0 Summary: Bindings for libxkbcommon using cffi Home-page: https://github.com/sde1000/python-xkbcommon Author: Stephen Early @@ -9,15 +9,14 @@ Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: License :: OSI Approved :: MIT License -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 Classifier: Topic :: Software Development :: Libraries Classifier: Intended Audience :: Developers -Requires-Python: >=3.6 +Requires-Python: >=3.8 Description-Content-Type: text/x-rst License-File: LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xkbcommon-0.8/setup.cfg new/xkbcommon-1.0/setup.cfg --- old/xkbcommon-0.8/setup.cfg 2023-01-12 00:55:11.186813400 +0100 +++ new/xkbcommon-1.0/setup.cfg 2024-04-10 16:12:16.277598400 +0200 @@ -1,6 +1,6 @@ [metadata] name = xkbcommon -version = 0.8 +version = 1.0 description = Bindings for libxkbcommon using cffi long_description = file: README.rst long_description_content_type = text/x-rst @@ -13,17 +13,16 @@ classifiers = Development Status :: 4 - Beta License :: OSI Approved :: MIT License - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 Topic :: Software Development :: Libraries Intended Audience :: Developers [options] -python_requires = >= 3.6 +python_requires = >= 3.8 packages = xkbcommon setup_requires = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xkbcommon-0.8/tests/test_xkb.py new/xkbcommon-1.0/tests/test_xkb.py --- old/xkbcommon-0.8/tests/test_xkb.py 2023-01-11 23:00:20.000000000 +0100 +++ new/xkbcommon-1.0/tests/test_xkb.py 2024-04-10 16:10:58.000000000 +0200 @@ -252,6 +252,15 @@ key = next(iter(self.km)) self.assertEqual(self.km.num_levels_for_key(key, 0), 1) + def test_keymap_key_get_mods_for_level(self): + first_invalid_mask = 1 << self.km.num_mods() + for key in self.km: + for layout in range(self.km.num_layouts_for_key(key)): + for level in range(self.km.num_levels_for_key(key, layout)): + r = self.km.key_get_mods_for_level(key, layout, level) + for mm in r: + self.assertLess(mm, first_invalid_mask) + def test_keymap_key_get_syms_by_level(self): for key in self.km: r = self.km.key_get_syms_by_level(key, 0, 0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xkbcommon-0.8/xkbcommon/ffi_build.py new/xkbcommon-1.0/xkbcommon/ffi_build.py --- old/xkbcommon-0.8/xkbcommon/ffi_build.py 2023-01-11 22:50:54.000000000 +0100 +++ new/xkbcommon-1.0/xkbcommon/ffi_build.py 2024-04-10 16:10:58.000000000 +0200 @@ -1,7 +1,7 @@ from cffi import FFI ffibuilder = FFI() -# Currently implemented with reference to libxkbcommon-0.6.0 +# Currently implemented with reference to libxkbcommon-1.0.0 ffibuilder.set_source("xkbcommon._ffi", """ #include <stdarg.h> @@ -253,6 +253,14 @@ xkb_keymap_num_levels_for_key(struct xkb_keymap *keymap, xkb_keycode_t key, xkb_layout_index_t layout); +size_t +xkb_keymap_key_get_mods_for_level(struct xkb_keymap *keymap, + xkb_keycode_t key, + xkb_layout_index_t layout, + xkb_level_index_t level, + xkb_mod_mask_t *masks_out, + size_t masks_size); + int xkb_keymap_key_get_syms_by_level(struct xkb_keymap *keymap, xkb_keycode_t key, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xkbcommon-0.8/xkbcommon/xkb.py new/xkbcommon-1.0/xkbcommon/xkb.py --- old/xkbcommon-0.8/xkbcommon/xkb.py 2023-01-11 22:52:55.000000000 +0100 +++ new/xkbcommon-1.0/xkbcommon/xkb.py 2024-04-10 16:10:58.000000000 +0200 @@ -618,6 +618,29 @@ """ return lib.xkb_keymap_num_levels_for_key(self._keymap, key, layout) + def key_get_mods_for_level(self, key, layout, level): + """Retrieves every possible modifier mask that produces the specified + shift level for a specific key and layout. + + This API is useful for inverse key transformation; + i.e. finding out which modifiers need to be active in order to + be able to type the keysym(s) corresponding to the specific + key code, layout and level. + + If layout is out of range for this key (that is, larger or + equal to the value returned by Keymap.num_layouts_for_key()), + it is brought back into range in a manner consistent with + State.key_get_layout(). + """ + masks_size = 4 + while True: + masks_out = ffi.new(f"xkb_mod_mask_t[{masks_size}]") + r = lib.xkb_keymap_key_get_mods_for_level( + self._keymap, key, layout, level, masks_out, masks_size) + if r < masks_size: + return [masks_out[n] for n in range(r)] + masks_size = masks_size << 1 + def key_get_syms_by_level(self, key, layout, level): """Get the keysyms obtained from pressing a key in a given layout and shift level. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xkbcommon-0.8/xkbcommon.egg-info/PKG-INFO new/xkbcommon-1.0/xkbcommon.egg-info/PKG-INFO --- old/xkbcommon-0.8/xkbcommon.egg-info/PKG-INFO 2023-01-12 00:55:11.000000000 +0100 +++ new/xkbcommon-1.0/xkbcommon.egg-info/PKG-INFO 2024-04-10 16:12:16.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: xkbcommon -Version: 0.8 +Version: 1.0 Summary: Bindings for libxkbcommon using cffi Home-page: https://github.com/sde1000/python-xkbcommon Author: Stephen Early @@ -9,15 +9,14 @@ Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: License :: OSI Approved :: MIT License -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 Classifier: Topic :: Software Development :: Libraries Classifier: Intended Audience :: Developers -Requires-Python: >=3.6 +Requires-Python: >=3.8 Description-Content-Type: text/x-rst License-File: LICENSE