Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rpmlint for openSUSE:Factory checked in at 2026-04-26 21:11:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpmlint (Old) and /work/SRC/openSUSE:Factory/.rpmlint.new.11940 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpmlint" Sun Apr 26 21:11:17 2026 rev:535 rq:1349108 version:2.9.0+git20260417.eb98d54d Changes: -------- --- /work/SRC/openSUSE:Factory/rpmlint/rpmlint.changes 2026-04-16 17:25:07.494874008 +0200 +++ /work/SRC/openSUSE:Factory/.rpmlint.new.11940/rpmlint.changes 2026-04-26 21:13:02.841672272 +0200 @@ -1,0 +2,14 @@ +Fri Apr 17 08:40:25 UTC 2026 - Matthias Gerstner <[email protected]> + +- Update to version 2.9.0+git20260417.eb98d54d: + * test: add test coverage for PermissionsParser in SUIDPermissionsCheck + * pkg.py: FakePkg.add_file_with_content(): support custom file mode + * PermissionsParser: fix parse error when spaces occur between package names (bsc#1262166) + +------------------------------------------------------------------- +Tue Apr 14 08:22:48 UTC 2026 - Wolfgang Frisch <[email protected]> + +- Update to version 2.9.0+git20260414.1a000082: + * dbus-services: systemd v260 (bsc#1259318) + +------------------------------------------------------------------- Old: ---- rpmlint-2.9.0+git20260413.9633b0c5.tar.xz New: ---- rpmlint-2.9.0+git20260417.eb98d54d.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rpmlint.spec ++++++ --- /var/tmp/diff_new_pack.zVgC9a/_old 2026-04-26 21:13:03.685706757 +0200 +++ /var/tmp/diff_new_pack.zVgC9a/_new 2026-04-26 21:13:03.689706921 +0200 @@ -1,6 +1,7 @@ # # spec file for package rpmlint # +# Copyright (c) 2026 SUSE LLC # Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties @@ -23,7 +24,7 @@ %define name_suffix -%{flavor} %endif Name: rpmlint%{name_suffix} -Version: 2.9.0+git20260413.9633b0c5 +Version: 2.9.0+git20260417.eb98d54d Release: 0 Summary: RPM file correctness checker License: GPL-2.0-or-later ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.zVgC9a/_old 2026-04-26 21:13:03.757709699 +0200 +++ /var/tmp/diff_new_pack.zVgC9a/_new 2026-04-26 21:13:03.765710026 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/rpm-software-management/rpmlint.git</param> - <param name="changesrevision">9633b0c522d4f9c218d0606210d2b647e9478444</param></service></servicedata> + <param name="changesrevision">eb98d54d7712f7717ab91d887b47fb0cc23e4249</param></service></servicedata> (No newline at EOF) ++++++ rpmlint-2.9.0+git20260413.9633b0c5.tar.xz -> rpmlint-2.9.0+git20260417.eb98d54d.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-2.9.0+git20260413.9633b0c5/configs/openSUSE/dbus-services.toml new/rpmlint-2.9.0+git20260417.eb98d54d/configs/openSUSE/dbus-services.toml --- old/rpmlint-2.9.0+git20260413.9633b0c5/configs/openSUSE/dbus-services.toml 2026-04-13 12:09:46.000000000 +0200 +++ new/rpmlint-2.9.0+git20260417.eb98d54d/configs/openSUSE/dbus-services.toml 2026-04-17 10:34:14.000000000 +0200 @@ -619,7 +619,7 @@ package = "systemd-container" type = "dbus" note = "imported from rpmlint1 DBUSServices.WhiteList" -bugs = ["bsc#828207", "bsc#1192033", "bsc#1257388", "bsc#1255368"] +bugs = ["bsc#828207", "bsc#1192033", "bsc#1257388", "bsc#1255368", "bsc#1259318"] [[FileDigestGroup.digests]] path = "/usr/share/dbus-1/system-services/org.freedesktop.machine1.service" digester = "shell" @@ -633,7 +633,7 @@ package = "systemd-container" type = "dbus" note = "imported from rpmlint1 DBUSServices.WhiteList" -bug = "bsc#964935" +bugs = ["bsc#964935", "bsc#1259318"] [[FileDigestGroup.digests]] path = "/usr/share/dbus-1/system-services/org.freedesktop.import1.service" digester = "shell" @@ -641,7 +641,7 @@ [[FileDigestGroup.digests]] path = "/usr/share/dbus-1/system.d/org.freedesktop.import1.conf" digester = "xml" -hash = "9c6f8a5703892843b4b9386ad5ce2ba264e35cf98e5af3d6b032df55bb2d4b0c" +hash = "426f75e9a68216b346ba6421a35b2d0645b3fb52a2865328e351959193ffddb3" [[FileDigestGroup]] package = "geoclue2" @@ -1339,12 +1339,12 @@ [[FileDigestGroup]] package = "systemd-experimental" note = "update management of operating system assets like containers" -bug = "bsc#1237106" +bugs = ["bsc#1237106", "bsc#1259318"] type = "dbus" [[FileDigestGroup.digests]] path = "/usr/share/dbus-1/system.d/org.freedesktop.sysupdate1.conf" digester = "xml" -hash = "92233ffa14abcd0b21710963d67ce86f4ea4acd3efa52474d386800b3cc7646c" +hash = "db654b66f9731235bc34eabd313146ce67f87ba1a4870b61c6efb5ef669bd3b1" [[FileDigestGroup.digests]] path = "/usr/share/dbus-1/system-services/org.freedesktop.sysupdate1.service" digester = "shell" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-2.9.0+git20260413.9633b0c5/rpmlint/permissions.py new/rpmlint-2.9.0+git20260417.eb98d54d/rpmlint/permissions.py --- old/rpmlint-2.9.0+git20260413.9633b0c5/rpmlint/permissions.py 2026-04-13 12:09:46.000000000 +0200 +++ new/rpmlint-2.9.0+git20260417.eb98d54d/rpmlint/permissions.py 2026-04-17 10:34:14.000000000 +0200 @@ -171,7 +171,11 @@ for entry in context.active_entries: entry.caps = caps elif line.startswith(':package:'): - parts = line.split() - self._active_packages = parts[1].split(',') + # get rid of any trailing comment + line = line.split('#')[0] + # get rid of the :package: prefix + parts = line.split(None, 1) + # split comma-separated package names and strip each part from spaces + self._active_packages = [part.strip() for part in parts[1].split(',')] else: raise Exception(f'Unexpected line encountered in {context.label}:{context.line_nr}') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-2.9.0+git20260413.9633b0c5/rpmlint/pkg.py new/rpmlint-2.9.0+git20260417.eb98d54d/rpmlint/pkg.py --- old/rpmlint-2.9.0+git20260413.9633b0c5/rpmlint/pkg.py 2026-04-13 12:09:46.000000000 +0200 +++ new/rpmlint-2.9.0+git20260417.eb98d54d/rpmlint/pkg.py 2026-04-17 10:34:14.000000000 +0200 @@ -904,7 +904,7 @@ return pkgdir - def add_file_with_content(self, name, content, metadata=None, **flags): + def add_file_with_content(self, name, content, metadata=None, perms=0o644, **flags): """ Add file to the FakePkg and fill the file with provided string content. @@ -912,7 +912,7 @@ path = os.path.join(self.dir_name(), name.lstrip('/')) pkg_file = PkgFile(name) pkg_file.path = path - pkg_file.mode = stat.S_IFREG | 0o0644 + pkg_file.mode = stat.S_IFREG | perms pkg_file.user = 'root' pkg_file.group = 'root' self.files[name] = pkg_file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-2.9.0+git20260413.9633b0c5/test/configs/permissions.secure new/rpmlint-2.9.0+git20260417.eb98d54d/test/configs/permissions.secure --- old/rpmlint-2.9.0+git20260413.9633b0c5/test/configs/permissions.secure 2026-04-13 12:09:46.000000000 +0200 +++ new/rpmlint-2.9.0+git20260417.eb98d54d/test/configs/permissions.secure 2026-04-17 10:34:14.000000000 +0200 @@ -3,3 +3,5 @@ /var/lib/testsuidpermissionscheck/test_permissions_incorrect_owner abc:root 600 /var/lib/testsuidpermissionscheck/test_permissions_file_as_dir/ root:root 755 /var/lib/testsuidpermissionscheck/test_permissions_dir_without_slash root:root 755 +:package: first, second # funny comment , :stuff: +/test/path/one root:root 04755 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-2.9.0+git20260413.9633b0c5/test/test_suid_permissions.py new/rpmlint-2.9.0+git20260417.eb98d54d/test/test_suid_permissions.py --- old/rpmlint-2.9.0+git20260413.9633b0c5/test/test_suid_permissions.py 2026-04-13 12:09:46.000000000 +0200 +++ new/rpmlint-2.9.0+git20260417.eb98d54d/test/test_suid_permissions.py 2026-04-17 10:34:14.000000000 +0200 @@ -4,12 +4,29 @@ import pytest from rpmlint.checks.SUIDPermissionsCheck import SUIDPermissionsCheck from rpmlint.filter import Filter +from rpmlint.pkg import FakePkg import Testing from Testing import get_tested_mock_package from Testing import get_tested_package, get_tested_path +class FakePermPkg(FakePkg): + + def __init__(self, name, paths): + super().__init__(name) + if not isinstance(paths, list): + paths = [paths] + # we need to add some extra ingredients for the SUIDPermissionsCheck + # to be satisfied with a fake package. + script = '\n'.join([f'permctl -n {path}' for path in paths]) + self.add_header({ + 'POSTIN': script, + 'VERIFYSCRIPT': script + }) + self.prereq.append(['permissions']) + + def get_suid_permissions_check(config_path): from rpmlint.config import Config @@ -186,3 +203,26 @@ out = output.print_results(output.results) assert 'permissions-missing-postin' not in out assert 'permissions-missing-verifyscript' not in out + + +def get_fake_pkg_check(): + output, test = get_suid_permissions_check(Testing.TEST_CONFIG[0]) + test._parse_profile(str(get_tested_path('configs/permissions.secure'))) + return output, test + + +def test_permissions_package_coupling(): + output, test = get_fake_pkg_check() + + # check that the multi-package specification works correctly, this package + # should be accepted + with FakePermPkg('second', '/test/path/one') as pkg: + pkg.add_file_with_content('/test/path/one', 'stuff', perms=0o4755) + test.check(pkg) + assert len(output.results) == 0 + + # this is an unrelated package which should actually be complained about + with FakePermPkg('third', '/test/path/one') as pkg: + pkg.add_file_with_content('/test/path/one', 'stuff', perms=0o4755) + test.check(pkg) + assert len(output.results) == 1
