Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libseccomp for openSUSE:Factory checked in at 2026-07-14 13:44:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libseccomp (Old) and /work/SRC/openSUSE:Factory/.libseccomp.new.1991 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libseccomp" Tue Jul 14 13:44:45 2026 rev:42 rq:1365159 version:2.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libseccomp/libseccomp.changes 2025-02-07 22:59:27.559965257 +0100 +++ /work/SRC/openSUSE:Factory/.libseccomp.new.1991/libseccomp.changes 2026-07-14 13:44:50.524558878 +0200 @@ -1,0 +2,43 @@ +Wed Jul 8 15:02:36 UTC 2026 - Jan Engelhardt <[email protected]> + +- Produce unique .src.rpm files per multibuild flavor. + +------------------------------------------------------------------- +Thu Jul 2 10:44:08 UTC 2026 - Jan Engelhardt <[email protected]> + +- Update to release 2.6.1 + * Fixed incorrect 64-bit comparison merge that can weaken + libseccomp filters. + * Fixed issue where oversized libseccomp filters can trigger a + double free. + * Fixed issue where oversized libseccomp filters can trigger a + heap corruption. + * Fixed struct aliasing undefined behavior in the internal + libseccomp hash algorithm. + * Fixed issue where extraneous bytes were being copied to the + destination buffer in seccomp_export_bpf_mem(). + * Fix a bug where merged libseccomp filters failed to merge the + notify_used flag, leading to no listener file descriptor being + generated. +- 62-sim-arch_transactions-remove-fuzzer.patch: removed upstream + +------------------------------------------------------------------- +Mon Jun 29 20:50:41 UTC 2026 - Matej Cepl <[email protected]> + +- Fixes in SPEC file. +- Update make-python-build.patch to work with multiple versions + of Python interpreters. +- Add python-pip-packages.patch, modernize-python-build.patch + +------------------------------------------------------------------- +Wed Mar 25 16:57:09 UTC 2026 - Matej Cepl <[email protected]> + +- Enable _multibuild back. + +------------------------------------------------------------------- +Thu Mar 12 00:27:05 UTC 2026 - Matej Cepl <[email protected]> + +- Add support for generating of multiple versions of Python + subpackages (using %python_subpackage_only). + +------------------------------------------------------------------- Old: ---- 62-sim-arch_transactions-remove-fuzzer.patch libseccomp-2.6.0.tar.gz libseccomp-2.6.0.tar.gz.asc New: ---- libseccomp-2.6.1.tar.gz libseccomp-2.6.1.tar.gz.asc modernize-python-build.patch python-pip-packages.patch ----------(Old B)---------- Old: generated. - 62-sim-arch_transactions-remove-fuzzer.patch: removed upstream ----------(Old E)---------- ----------(New B)---------- New: of Python interpreters. - Add python-pip-packages.patch, modernize-python-build.patch New: of Python interpreters. - Add python-pip-packages.patch, modernize-python-build.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libseccomp.spec ++++++ --- /var/tmp/diff_new_pack.hfj6On/_old 2026-07-14 13:44:54.468693900 +0200 +++ /var/tmp/diff_new_pack.hfj6On/_new 2026-07-14 13:44:54.472694037 +0200 @@ -1,7 +1,7 @@ # -# spec file for package python3-seccomp +# spec file for package libseccomp # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,16 +20,18 @@ %global lname libseccomp2 %global flavor @BUILD_FLAVOR@%nil -%if "%flavor" == "python3" -Name: python3-seccomp -Summary: Python 3 bindings for seccomp -Group: Development/Tools/Debuggers +%if "%flavor" == "python" +%bcond_without python +%define namesuf -%flavor %else -Name: libseccomp +%bcond_with python +%define namesuf %nil +%endif + +Name: libseccomp%namesuf Summary: A Seccomp (mode 2) helper library Group: Development/Libraries/C and C++ -%endif -Version: 2.6.0 +Version: 2.6.1 Release: 0 License: LGPL-2.1-only URL: https://github.com/seccomp/libseccomp @@ -37,17 +39,24 @@ Source2: https://github.com/seccomp/libseccomp/releases/download/v%version/libseccomp-%version.tar.gz.asc Source3: %pname.keyring Source99: baselibs.conf +Patch0: python-pip-packages.patch Patch1: make-python-build.patch -Patch2: 62-sim-arch_transactions-remove-fuzzer.patch +Patch3: modernize-python-build.patch BuildRequires: autoconf BuildRequires: automake >= 1.11 BuildRequires: fdupes BuildRequires: libtool >= 2 BuildRequires: pkgconfig -%if "%flavor" == "python3" +%if %{with python} +BuildRequires: %python_module Cython >= 0.29 +BuildRequires: %python_module build +BuildRequires: %python_module pip +BuildRequires: %python_module setuptools +BuildRequires: %python_module wheel +BuildRequires: ca-certificates-mozilla-prebuilt BuildRequires: python-rpm-macros -BuildRequires: python3-Cython >= 0.29 -BuildRequires: python3-setuptools +%define python_subpackage_only 1 +%python_subpackages %endif %description @@ -56,10 +65,6 @@ away the underlying BPF-based syscall filter language and presents a more conventional function-call based filtering interface. -%if "%flavor" == "python3" -This subpackage contains the python3 bindings for seccomp. -%endif - %package -n %lname Summary: An enhanced Seccomp (mode 2) helper library Group: System/Libraries @@ -93,6 +98,20 @@ This subpackage contains debug utilities for the seccomp interface. +%if %{with python} +%package -n python-seccomp +Summary: Python bindings for seccomp +Group: Development/Tools/Debuggers + +%description -n python-seccomp +The libseccomp library provides an interface to the Linux Kernel's +syscall filtering mechanism, seccomp. The libseccomp API abstracts +away the underlying BPF-based syscall filter language and presents a +more conventional function-call based filtering interface. + +This subpackage contains the python3 bindings for seccomp. +%endif + %prep %autosetup -p1 -n %pname-%version @@ -105,42 +124,55 @@ %build autoreconf -fiv -%configure \ +export LD_LIBRARY_PATH="$PWD/src/.libs${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" +%if %{with python} +%{python_expand \ + %configure \ --includedir="%_includedir/%pname" \ -%if "%flavor" == "python3" --enable-python \ -%endif + --disable-static \ + --disable-silent-rules \ + GPERF=/bin/true \ + PYTHON=$python +%make_build all python-wheel +} +%else +%configure \ + --includedir="%_includedir/%pname" \ --disable-static \ --disable-silent-rules \ GPERF=/bin/true %make_build +%endif %install +%if %{with python} +%{python_expand \ + %make_install PYTHON=$python pyexecdir=%$python_sitearch +} +b="%buildroot" +rm -Rf "$b/%_bindir" "$b/%_libdir"/libsec* "$b/%_libdir/pkgconfig" \ + "$b/%_includedir" "$b/%_datadir" +%else %make_install +%endif find "%buildroot/%_libdir" -type f -name "*.la" -delete -rm -fv %buildroot/%python3_sitearch/install_files.txt -%if "%flavor" == "python3" -rm %buildroot/%_libdir/%pname.so* -rm -r %buildroot/%_mandir/ -rm -r %buildroot/%_includedir/%pname/ -rm -r %buildroot/%_libdir/pkgconfig -rm -r %buildroot/%_bindir/ +%if %{with python} +%python_expand rm -fv %buildroot/%$python_sitearch/install_files.txt %endif %fdupes %buildroot/%_prefix -%if "%flavor" != "python3" %check +%if %{with python} export LD_LIBRARY_PATH="$PWD/src/.libs" -make check +%{python_expand \ + make PYTHON=$python PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}%buildroot%{$python_sitearch}" PYTHONDONTWRITEBYTECODE=1 check +} %endif %ldconfig_scriptlets -n %lname -%if "%flavor" == "python3" -%files -%python3_sitearch/seccomp* -%else - +%if "%flavor" == "" %files -n %lname %_libdir/%pname.so.2* %license LICENSE @@ -156,3 +188,9 @@ %_mandir/man1/scmp_sys_resolver.1* %endif +%if %{with python} +%files %{python_files seccomp} +%python_sitearch/seccomp*.so +%python_sitearch/seccomp-%{version}*-info +%endif + ++++++ _multibuild ++++++ --- /var/tmp/diff_new_pack.hfj6On/_old 2026-07-14 13:44:54.532696091 +0200 +++ /var/tmp/diff_new_pack.hfj6On/_new 2026-07-14 13:44:54.536696228 +0200 @@ -1,4 +1,4 @@ <multibuild> - <flavor>python3</flavor> + <flavor>python</flavor> </multibuild> ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.hfj6On/_old 2026-07-14 13:44:54.560697049 +0200 +++ /var/tmp/diff_new_pack.hfj6On/_new 2026-07-14 13:44:54.564697186 +0200 @@ -1,5 +1,5 @@ -mtime: 1738707363 -commit: 6bbc789a678c169df6ac5c6132fec9b5a4f3d02f0681f8fd215428ca4815d900 +mtime: 1783895865 +commit: 9f68b6f98779b48a62a46f11576d5cf461ff4611ddcda6469473108325015c70 url: https://src.opensuse.org/jengelh/libseccomp revision: master ++++++ build.specials.obscpio ++++++ --- old/.gitignore 2025-02-04 23:49:45.000000000 +0100 +++ new/.gitignore 2026-07-13 00:37:45.000000000 +0200 @@ -1 +1,6 @@ .osc +*.obscpio +*.osc +_build.* +.pbuild +libseccomp-*-build ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-07-13 00:37:45.000000000 +0200 @@ -0,0 +1,6 @@ +.osc +*.obscpio +*.osc +_build.* +.pbuild +libseccomp-*-build ++++++ libseccomp-2.6.0.tar.gz -> libseccomp-2.6.1.tar.gz ++++++ ++++ 15385 lines of diff (skipped) ++++++ make-python-build.patch ++++++ ++++ 678 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/libseccomp/make-python-build.patch ++++ and /work/SRC/openSUSE:Factory/.libseccomp.new.1991/make-python-build.patch ++++++ modernize-python-build.patch ++++++ From: [email protected] References: https://bugzilla.opensuse.org/1258203 Subject: Convert Python build from setup.py to pyproject.toml --- src/python/MANIFEST.in | 2 +- src/python/Makefile.am | 6 +++--- src/python/Makefile.in | 10 ++++++++-- src/python/pyproject.toml | 20 +++++++++++++++++++- src/python/setup.py.in | 2 +- 5 files changed, 32 insertions(+), 8 deletions(-) Index: libseccomp-2.6.1/src/python/MANIFEST.in =================================================================== --- libseccomp-2.6.1.orig/src/python/MANIFEST.in +++ libseccomp-2.6.1/src/python/MANIFEST.in @@ -1,6 +1,6 @@ include seccomp.pyx include libseccomp.pxd -include libseccomp.a +include libseccomp.so include seccomp.h include seccomp-syscalls.h include __init__.py Index: libseccomp-2.6.1/src/python/Makefile.am =================================================================== --- libseccomp-2.6.1.orig/src/python/Makefile.am +++ libseccomp-2.6.1/src/python/Makefile.am @@ -35,9 +35,9 @@ EXTRA_DIST = libseccomp.pxd seccomp.pyx all-local: build -build: ../libseccomp.la libseccomp.pxd seccomp.pyx setup.py +build: ../libseccomp.la libseccomp.pxd seccomp.pyx pyproject.toml [ -f ${builddir}/seccomp.pyx ] || cp ${srcdir}/seccomp.pyx ${builddir} - cp ${srcdir}/../.libs/libseccomp.a ${builddir} + cp ${srcdir}/../.libs/libseccomp.so ${builddir} cp ${top_srcdir}/include/seccomp.h ${builddir} cp ${top_srcdir}/include/seccomp-syscalls.h ${builddir} ${PY_BUILD} && touch build Index: libseccomp-2.6.1/src/python/Makefile.in =================================================================== --- libseccomp-2.6.1.orig/src/python/Makefile.in +++ libseccomp-2.6.1/src/python/Makefile.in @@ -300,7 +300,7 @@ PY_BUILD_1 = ${PY_DISTUTILS} build PY_BUILD_ = ${PY_BUILD_0} PY_BUILD = ${PY_BUILD_@AM_V@} PY_INSTALL = ${PY_DISTUTILS} install -EXTRA_DIST = libseccomp.pxd seccomp.pyx setup.py +EXTRA_DIST = libseccomp.pxd seccomp.pyx setup.py pyproject.toml all: all-am .SUFFIXES: @@ -512,6 +512,9 @@ uninstall-local: clean-local: [ ${srcdir} = ${builddir} ] || ${RM} -f ${builddir}/seccomp.pyx + ${RM} -f ${builddir}/libseccomp.so + ${RM} -f ${builddir}/seccomp.h + ${RM} -f ${builddir}/seccomp-syscalls.h ${RM} -rf seccomp.c build dist seccomp.egg-info # Tell versions [3.59,3.63) of GNU make to not export all variables. Index: libseccomp-2.6.1/src/python/pyproject.toml =================================================================== --- libseccomp-2.6.1.orig/src/python/pyproject.toml +++ libseccomp-2.6.1/src/python/pyproject.toml @@ -1,2 +1,20 @@ [build-system] -requires = ["cython", "setuptools"] +requires = [ + "setuptools>=61", + "wheel", + "Cython", +] +build-backend = "setuptools.build_meta" + +[project] +name = "seccomp" +dynamic = ["version"] +description = "Python binding for libseccomp" +readme = {text = "Python API for the Linux Kernel's syscall filtering capability, seccomp.", content-type = "text/plain"} +maintainers = [ + {name = "Paul Moore", email = "[email protected]"} +] +license = "LGPL-2.1-only" + +[project.urls] +Homepage = "https://github.com/seccomp/libseccomp" Index: libseccomp-2.6.1/src/python/setup.py.in =================================================================== --- libseccomp-2.6.1.orig/src/python/setup.py.in +++ libseccomp-2.6.1/src/python/setup.py.in @@ -41,6 +41,6 @@ setup( ext_modules = cythonize([ Extension("seccomp", ["seccomp.pyx"], # unable to handle libtool libraries directly - extra_objects=["../.libs/libseccomp.a"]), + extra_objects=["libseccomp.so"]), ]) ) ++++++ python-pip-packages.patch ++++++ >From ebb2593df1df93007705a62527f40845330277ca Mon Sep 17 00:00:00 2001 From: Tom Hromatka <[email protected]> Date: Wed, 9 Jul 2025 12:50:44 -0600 Subject: [PATCH 1/4] python: Rename setup.py to setup.py.in X-SUSE-Subject: Add support for building python pip packages References: https://github.com/seccomp/libseccomp/pull/467 Rename setup.py to setup.py.in so that the version variables can be autopopulated by automake/m4. This will be used in subsequent commits for building python wheels. Wheels are often built in containers, and the build containers don't have knowledge of automake, its configurations, and its environment variables, so we need to pre-populate the version information. Signed-off-by: Tom Hromatka <[email protected]> --- Makefile.am | 10 ++++++++++ configure.ac | 1 + include/seccomp.h.in | 2 +- src/python/MANIFEST.in | 6 ++++++ src/python/Makefile.am | 14 +++++++++++++- src/python/pyproject.toml | 2 ++ src/python/setup.py | 45 --------------------------------------------- src/python/setup.py.in | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 79 insertions(+), 47 deletions(-) rename src/python/{setup.py => setup.py.in} (89%) Index: libseccomp-2.6.1/Makefile.am =================================================================== --- libseccomp-2.6.1.orig/Makefile.am +++ libseccomp-2.6.1/Makefile.am @@ -75,6 +75,14 @@ coverity-tarball: coverity-build ls -l libseccomp-coverity_$$rev.tar.gz endif +if ENABLE_PYTHON +python-wheel: all + ${MAKE} ${AM_MAKEFLAGS} -C src/python $@ + +python-wheels: all + ${MAKE} ${AM_MAKEFLAGS} -C src/python $@ +endif + help: @echo "libseccomp build system" @echo " make targets:" @@ -86,6 +94,8 @@ help: @echo " distcheck: verify the build for distribution" @echo " dist-gzip: build a release tarball" @echo " coverity-tarball: build a tarball for use with Coverity (opt)" + @echo " python-wheel: build a python wheel for this system" + @echo " python-wheels: build python wheels for distribution to pip" clean-local: ${RM} -rf cov-int libseccomp-coverity_*.tar.gz Index: libseccomp-2.6.1/configure.ac =================================================================== --- libseccomp-2.6.1.orig/configure.ac +++ libseccomp-2.6.1/configure.ac @@ -146,6 +146,7 @@ dnl #### AC_CONFIG_FILES([ libseccomp.pc include/seccomp.h + src/python/setup.py ]) dnl #### Index: libseccomp-2.6.1/include/seccomp.h.in =================================================================== --- libseccomp-2.6.1.orig/include/seccomp.h.in +++ libseccomp-2.6.1/include/seccomp.h.in @@ -897,7 +897,7 @@ int seccomp_precompute(const scmp_filter #define __NR_SCMP_ERROR -1 #define __NR_SCMP_UNDEF -2 -#include <seccomp-syscalls.h> +#include "seccomp-syscalls.h" #ifdef __cplusplus } Index: libseccomp-2.6.1/src/python/MANIFEST.in =================================================================== --- /dev/null +++ libseccomp-2.6.1/src/python/MANIFEST.in @@ -0,0 +1,6 @@ +include seccomp.pyx +include libseccomp.pxd +include libseccomp.a +include seccomp.h +include seccomp-syscalls.h +include __init__.py Index: libseccomp-2.6.1/src/python/pyproject.toml =================================================================== --- /dev/null +++ libseccomp-2.6.1/src/python/pyproject.toml @@ -0,0 +1,2 @@ +[build-system] +requires = ["cython", "setuptools"] Index: libseccomp-2.6.1/src/python/setup.py.in =================================================================== --- /dev/null +++ libseccomp-2.6.1/src/python/setup.py.in @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +# +# Enhanced Seccomp Library Python Module Build Script +# +# Copyright (c) 2012-2025 Red Hat <[email protected]> +# Author: Paul Moore <[email protected]> +# Author: Tom Hromatka <[email protected]> +# + +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of version 2.1 of the GNU Lesser General Public License as +# published by the Free Software Foundation. +# +# This library is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License +# for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this library; if not, see <http://www.gnu.org/licenses>. +# + +import os + +from setuptools import setup +from setuptools.extension import Extension +from Cython.Build import cythonize + +setup( + name = "seccomp", + version = "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_MICRO@", + description = "Python binding for libseccomp", + long_description = "Python API for the Linux Kernel's syscall filtering capability, seccomp.", + url = "https://github.com/seccomp/libseccomp", + maintainer = "Paul Moore", + maintainer_email = "[email protected]", + license = "LGPLv2.1", + platforms = "Linux", + ext_modules = cythonize([ + Extension("seccomp", ["seccomp.pyx"], + # unable to handle libtool libraries directly + extra_objects=["../.libs/libseccomp.a"]), + ]) +) Index: libseccomp-2.6.1/src/python/Makefile.am =================================================================== --- libseccomp-2.6.1.orig/src/python/Makefile.am +++ libseccomp-2.6.1/src/python/Makefile.am @@ -37,12 +37,21 @@ all-local: build build: ../libseccomp.la libseccomp.pxd seccomp.pyx setup.py [ -f ${builddir}/seccomp.pyx ] || cp ${srcdir}/seccomp.pyx ${builddir} + cp ${srcdir}/../.libs/libseccomp.a ${builddir} + cp ${top_srcdir}/include/seccomp.h ${builddir} + cp ${top_srcdir}/include/seccomp-syscalls.h ${builddir} ${PY_BUILD} && touch build install-exec-local: build ${PY_INSTALL} --install-lib=${DESTDIR}/${pyexecdir} \ --record=${DESTDIR}/${pyexecdir}/install_files.txt +python-wheel: build + ${PYTHON} -m build --no-isolation + +python-wheels: build + ${PYTHON} -m cibuildwheel --output-dir wheelhouse + uninstall-local: cat ${DESTDIR}/${pyexecdir}/install_files.txt | xargs ${RM} -f ${RM} -f ${DESTDIR}/${pyexecdir}/install_files.txt
