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-06-17 16:17:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpmlint (Old)
 and      /work/SRC/openSUSE:Factory/.rpmlint.new.1981 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rpmlint"

Wed Jun 17 16:17:12 2026 rev:541 rq:1359486 version:2.9.0+git20260528.2490edb3

Changes:
--------
--- /work/SRC/openSUSE:Factory/rpmlint/rpmlint.changes  2026-05-28 
23:11:58.771499000 +0200
+++ /work/SRC/openSUSE:Factory/.rpmlint.new.1981/rpmlint.changes        
2026-06-17 16:18:00.026262920 +0200
@@ -1,0 +2,21 @@
+Mon Jun 15 09:16:57 UTC 2026 - Filippo Bonazzi <[email protected]>
+
+- Update to version 2.9.0+git20260528.2490edb3:
+  * dbus-services: whitelist qSnapper (bsc#1261537)
+  * Bump github/codeql-action from 4.35.2 to 4.36.0
+  * BuildRootAndDateCheck: Convert date errs to warning
+  * Bump github/codeql-action from 4.35.1 to 4.35.2
+  * Update openSUSE's licenses.toml
+  * Fix: Add sysusers.d to usrlibbinaryexception
+  * SpecCheck: Fix typo in the 'no-%check-section' explanation
+  * Bump github/codeql-action from 4.34.1 to 4.35.1
+  * test: Add PKG-INFO to egg-info mocks for Python 3.15 compatibility
+  * Reorder param doc rpmlint/checks/TagsCheck.py
+  * test: Add more tests for dependencies
+  * test: Add tests for SELinuxIndependentModuleCheck
+  * TagsCheck: Reorder is_devel and is_source parameters
+  * Add SELinuxIndependentModuleCheck to test_lint.py
+  * Set scoring for selinux-incorrect-if-file-location
+  * Add check for SELinux Independent Modules
+
+-------------------------------------------------------------------

Old:
----
  rpmlint-2.9.0+git20260526.25d1046c.tar.xz

New:
----
  rpmlint-2.9.0+git20260528.2490edb3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rpmlint.spec ++++++
--- /var/tmp/diff_new_pack.Gfodz9/_old  2026-06-17 16:18:01.430321666 +0200
+++ /var/tmp/diff_new_pack.Gfodz9/_new  2026-06-17 16:18:01.434321834 +0200
@@ -23,7 +23,7 @@
 %define name_suffix -%{flavor}
 %endif
 Name:           rpmlint%{name_suffix}
-Version:        2.9.0+git20260526.25d1046c
+Version:        2.9.0+git20260528.2490edb3
 Release:        0
 Summary:        RPM file correctness checker
 License:        GPL-2.0-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Gfodz9/_old  2026-06-17 16:18:01.490324177 +0200
+++ /var/tmp/diff_new_pack.Gfodz9/_new  2026-06-17 16:18:01.490324177 +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">25d1046c109f33bee3ef303834a7a140254a63ea</param></service></servicedata>
+              <param 
name="changesrevision">2490edb3f69bfb2c1df3829fe5f091651fde1f6f</param></service></servicedata>
 (No newline at EOF)
 

++++++ rpmlint-2.9.0+git20260526.25d1046c.tar.xz -> 
rpmlint-2.9.0+git20260528.2490edb3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/.github/workflows/codeql.yml 
new/rpmlint-2.9.0+git20260528.2490edb3/.github/workflows/codeql.yml
--- old/rpmlint-2.9.0+git20260526.25d1046c/.github/workflows/codeql.yml 
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/.github/workflows/codeql.yml 
2026-05-28 14:31:50.000000000 +0200
@@ -25,15 +25,15 @@
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
 
       - name: Initialize CodeQL
-        uses: 
github/codeql-action/init@38697555549f1db7851b81482ff19f1fa5c4fedc # v4.34.1
+        uses: 
github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
         with:
           languages: ${{ matrix.language }}
           queries: +security-and-quality
 
       - name: Autobuild
-        uses: 
github/codeql-action/autobuild@38697555549f1db7851b81482ff19f1fa5c4fedc # 
v4.34.1
+        uses: 
github/codeql-action/autobuild@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # 
v4.36.0
 
       - name: Perform CodeQL Analysis
-        uses: 
github/codeql-action/analyze@38697555549f1db7851b81482ff19f1fa5c4fedc # v4.34.1
+        uses: 
github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0
         with:
           category: "/language:${{ matrix.language }}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/configs/openSUSE/dbus-services.toml 
new/rpmlint-2.9.0+git20260528.2490edb3/configs/openSUSE/dbus-services.toml
--- old/rpmlint-2.9.0+git20260526.25d1046c/configs/openSUSE/dbus-services.toml  
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/configs/openSUSE/dbus-services.toml  
2026-05-28 14:31:50.000000000 +0200
@@ -1800,3 +1800,16 @@
 digester = "xml"
 hash     = "5012b8451001e03da2a00fb66ad629ab1741b5a7e24b2b518b1217d789ffa661"
 
+[[FileDigestGroup]]
+package  = "qsnapper"
+note     = "GUI tool for managing snapper snapshots. This is for the daemon 
implementing privileged operations."
+bug      = "bsc#1261537"
+type     = "dbus"
+[[FileDigestGroup.digests]]
+path     = 
"/usr/share/dbus-1/system-services/com.presire.qsnapper.Operations.service"
+digester = "shell"
+hash     = "df81a398c7eefc077a3fb155785e79dbce7c0da60aa7207f7fa9de5ed4440824"
+[[FileDigestGroup.digests]]
+path     = "/usr/share/dbus-1/system.d/com.presire.qsnapper.Operations.conf"
+digester = "xml"
+hash     = "4ebd3fcf900e113e6d7a9a1e95ff7b32c4ab177723b8660030917313113a58ea"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/configs/openSUSE/scoring.toml 
new/rpmlint-2.9.0+git20260528.2490edb3/configs/openSUSE/scoring.toml
--- old/rpmlint-2.9.0+git20260526.25d1046c/configs/openSUSE/scoring.toml        
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/configs/openSUSE/scoring.toml        
2026-05-28 14:31:50.000000000 +0200
@@ -24,6 +24,7 @@
 percent-in-dependency = 10000
 percent-in-obsoletes = 10000
 percent-in-provides = 10000
+selinux-incorrect-if-file-location = 100
 shlib-policy-name-error = 10000
 spurious-executable-perm = 50
 summary-ended-with-dot = 20
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/checks/BuildRootAndDateCheck.py 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/checks/BuildRootAndDateCheck.py
--- 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/checks/BuildRootAndDateCheck.py  
    2026-05-26 17:29:32.000000000 +0200
+++ 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/checks/BuildRootAndDateCheck.py  
    2026-05-28 14:31:50.000000000 +0200
@@ -38,8 +38,8 @@
         data = pkg.read_with_mmap(filename)
         if self.istoday.search(data):
             if self.looksliketime.search(data):
-                self.output.add_info('E', pkg, 'file-contains-date-and-time', 
filename)
+                self.output.add_info('W', pkg, 'file-contains-date-and-time', 
filename)
             else:
-                self.output.add_info('E', pkg, 'file-contains-current-date', 
filename)
+                self.output.add_info('W', pkg, 'file-contains-current-date', 
filename)
         if self.lookslikebuildroot.search(data):
             self.output.add_info('E', pkg, 'file-contains-buildroot', filename)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/checks/SELinuxIndependentModuleCheck.py
 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/checks/SELinuxIndependentModuleCheck.py
--- 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/checks/SELinuxIndependentModuleCheck.py
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/checks/SELinuxIndependentModuleCheck.py
      2026-05-28 14:31:50.000000000 +0200
@@ -0,0 +1,34 @@
+from rpmlint.checks.AbstractCheck import AbstractCheck
+
+
+class SELinuxIndependentModuleCheck(AbstractCheck):
+    ALLOWED_IF_DIR = '/usr/share/selinux/devel/include/distributed/'
+    SELINUX_MAIN_POLICY_PACKAGES = [
+        'selinux-policy-devel',
+    ]
+
+    def __init__(self, config, output):
+        super().__init__(config, output)
+
+    def __is_independent_module(self, pkg):
+        for req in pkg.requires + pkg.prereq:
+            if req[0] == 'selinux-policy-base':
+                return True
+        return False
+
+    def check(self, pkg):
+        # Skip source packages
+        if pkg.is_source:
+            return
+
+        # Skip main policy packages
+        if pkg.name in self.SELINUX_MAIN_POLICY_PACKAGES:
+            return
+
+        # Skip packages that are not independent modules
+        if not self.__is_independent_module(pkg):
+            return
+
+        for filename, _ in pkg.files.items():
+            if filename.endswith('.if') and not 
filename.startswith(self.ALLOWED_IF_DIR):
+                self.output.add_info('E', pkg, 
'selinux-incorrect-if-file-location', filename)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/checks/TagsCheck.py 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/checks/TagsCheck.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/checks/TagsCheck.py  
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/checks/TagsCheck.py  
2026-05-28 14:31:50.000000000 +0200
@@ -296,14 +296,14 @@
                     self.output.add_info('W', pkg, f'no-epoch-in-{tag}',
                                          Pkg.formatRequire(*x))
 
-    def _check_multiple_dependencies(self, pkg, deps, is_source, is_devel):
+    def _check_multiple_dependencies(self, pkg, deps, is_devel, is_source):
         """Contain multiple check, no-epoch-in-dependency, invalid-dependency,
         invalid-build-requires, devel-dependency, explicit-devel-dependency
 
         Args:
             deps: Variable to find PreReq and Requires tag
-            is_source: Variable to check if a package is of source type
             is_devel: The param to check if a package name ends with *-devel
+            is_source: Variable to check if a package is of source type
 
         Returns:
             Output info to STDOUT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/configdefaults.toml 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/configdefaults.toml
--- old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/configdefaults.toml  
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/configdefaults.toml  
2026-05-28 14:31:50.000000000 +0200
@@ -21,6 +21,7 @@
     "PkgConfigCheck",
     "PostCheck",
     "PythonCheck",
+    "SELinuxIndependentModuleCheck",
     "SignatureCheck",
     "SourceCheck",
     "SpecCheck",
@@ -282,7 +283,7 @@
 PieExecutables = []
 # Architecture dependent paths in which packages are allowed to install files
 # even if they are all non-binary
-UsrLibBinaryException = 
'^/usr/lib(64)?/(perl|python|ruby|menu|pkgconfig|ocaml|lib[^/]+\.(so|l?a)$|bonobo/servers/|\.build-id|firmware|systemd)'
+UsrLibBinaryException = 
'^/usr/lib(64)?/(perl|python|ruby|menu|pkgconfig|ocaml|lib[^/]+\.(so|l?a)$|bonobo/servers/|\.build-id|firmware|systemd|sysusers\.d)'
 # List of compilation flags that are mandatory
 MandatoryOptflags = []
 # List of forbidden compilation flags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/descriptions/SELinuxIndependentModuleCheck.toml
 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/descriptions/SELinuxIndependentModuleCheck.toml
--- 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/descriptions/SELinuxIndependentModuleCheck.toml
      1970-01-01 01:00:00.000000000 +0100
+++ 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/descriptions/SELinuxIndependentModuleCheck.toml
      2026-05-28 14:31:50.000000000 +0200
@@ -0,0 +1,3 @@
+selinux-incorrect-if-file-location = '''
+SELinux interface (.if) files must be installed in 
/usr/share/selinux/devel/include/distributed/ as per Fedora and openSUSE 
independent module packaging guidelines. Files found elsewhere are packaging 
errors.
+'''
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/descriptions/SpecCheck.toml 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/descriptions/SpecCheck.toml
--- old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/descriptions/SpecCheck.toml  
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/descriptions/SpecCheck.toml  
2026-05-28 14:31:50.000000000 +0200
@@ -85,7 +85,7 @@
 section, even if empty.
 """
 "no-%check-section"="""
-The spec file does not contain an %check section.
+The spec file does not contain a %check section.
 Please check if the package has a testsuite and what it takes to enable the
 testsuite as part of the package build. If it is not possible to run it in the
 build environment (OBS/koji) or no testsuite exists, then please ignore this
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/pkg.py 
new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/pkg.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/rpmlint/pkg.py       2026-05-26 
17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/rpmlint/pkg.py       2026-05-28 
14:31:50.000000000 +0200
@@ -975,6 +975,23 @@
 
         self.req_names = [x[0] for x in self.requires + self.prereq]
 
+    def add_dependency(self, dep):
+        name, flags, version = parse_deps(dep)[0]
+        version = versionToString(version)
+        self.header[rpm.RPMTAG_REQUIRESNAME].append(name)
+        self.header[rpm.RPMTAG_REQUIRESFLAGS].append(flags)
+        self.header[rpm.RPMTAG_REQUIRESVERSION].append(version)
+
+        _requires = []
+        _prereq = []
+        self.requires, self.prereq = self._gather_aux(self.header, _requires,
+                                                      rpm.RPMTAG_REQUIRENAME,
+                                                      rpm.RPMTAG_REQUIREFLAGS,
+                                                      
rpm.RPMTAG_REQUIREVERSION,
+                                                      _prereq)
+
+        self.req_names = [x[0] for x in self.requires + self.prereq]
+
     def add_symlink_to(self, name, target):
         """
         Add symlink to name file which path is related to name.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/test/mockdata/mock_python.py 
new/rpmlint-2.9.0+git20260528.2490edb3/test/mockdata/mock_python.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/test/mockdata/mock_python.py 
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/test/mockdata/mock_python.py 
2026-05-28 14:31:50.000000000 +0200
@@ -191,6 +191,13 @@
 PythonIcecreamPackage = get_tested_mock_package(
     lazyload=True,
     files={
+        
'/usr/lib/python3.10/site-packages/icecream-2.1.3-py3.10.egg-info/PKG-INFO': {
+            'content': """Metadata-Version: 2.1
+Name: icecream
+Version: 2.1.3
+""",
+            'create_dirs': True
+        },
         
'/usr/lib/python3.10/site-packages/icecream-2.1.3-py3.10.egg-info/requires.txt':
 {
             'content': """
 asttokens>=2.0.1
@@ -198,7 +205,6 @@
 executing>=0.3.1
 pygments>=2.2.0
 """,
-            'create_dirs': True
         },
     },
     header={
@@ -278,6 +284,12 @@
 IPythonMissingRequirePackage = get_tested_mock_package(
     lazyload=True,
     files={
+        
'/usr/lib/python3.12/site-packages/ipython-8.14.0-py3.12.egg-info/PKG-INFO': {
+            'content': """Metadata-Version: 2.1
+Name: ipython
+Version: 8.14.0
+""",
+        },
         
'/usr/lib/python3.12/site-packages/ipython-8.14.0-py3.12.egg-info/requires.txt':
 {
             'content-path': 'files/ipython-requires.txt',
         },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/test/mockdata/mock_tags.py 
new/rpmlint-2.9.0+git20260528.2490edb3/test/mockdata/mock_tags.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/test/mockdata/mock_tags.py   
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/test/mockdata/mock_tags.py   
2026-05-28 14:31:50.000000000 +0200
@@ -143,3 +143,26 @@
         'license': 'GPL-2.0+ WITH 389-exception',
     },
 )
+
+
+DepsPackage = get_tested_mock_package(
+    lazyload=True,
+    name='pkg',
+    header={
+        'requires': [
+            'expat-devel',
+            'libexplicit',
+        ],
+        'ARCH': 'noarch',
+        'NAME': 'pkg',
+        'VERSION': '5.6.3',
+        'RELEASE': '2.fc39',
+        'EPOCH': 1,
+    },
+)
+
+
+DepsDevPackage = DepsPackage.clone(
+    extend=True,
+    name='pkg-devel',
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/test/test_build_date.py 
new/rpmlint-2.9.0+git20260528.2490edb3/test/test_build_date.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/test/test_build_date.py      
2026-05-26 17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/test/test_build_date.py      
2026-05-28 14:31:50.000000000 +0200
@@ -23,8 +23,8 @@
     test.istoday = re.compile('Jan  1 2019')
     test.check(package)
     out = output.print_results(output.results)
-    assert 'E: file-contains-date-and-time /bin/with-datetime' in out
-    assert 'E: file-contains-current-date /bin/with-date' in out
+    assert 'W: file-contains-date-and-time /bin/with-datetime' in out
+    assert 'W: file-contains-current-date /bin/with-date' in out
 
 
 @pytest.mark.parametrize('package', [BashismsPackage])
@@ -33,5 +33,5 @@
     test.istoday = re.compile('Jan  1 2019')
     test.check(package)
     out = output.print_results(output.results)
-    assert 'E: file-contains-date-and-time' not in out
-    assert 'E: file-contains-current-date' not in out
+    assert 'W: file-contains-date-and-time' not in out
+    assert 'W: file-contains-current-date' not in out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmlint-2.9.0+git20260526.25d1046c/test/test_lint.py 
new/rpmlint-2.9.0+git20260528.2490edb3/test/test_lint.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/test/test_lint.py    2026-05-26 
17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/test/test_lint.py    2026-05-28 
14:31:50.000000000 +0200
@@ -51,6 +51,7 @@
     'PkgConfigCheck',
     'PostCheck',
     'PythonCheck',
+    'SELinuxIndependentModuleCheck',
     'SignatureCheck',
     'SourceCheck',
     'SpecCheck',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpmlint-2.9.0+git20260526.25d1046c/test/test_selinux.py 
new/rpmlint-2.9.0+git20260528.2490edb3/test/test_selinux.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/test/test_selinux.py 1970-01-01 
01:00:00.000000000 +0100
+++ new/rpmlint-2.9.0+git20260528.2490edb3/test/test_selinux.py 2026-05-28 
14:31:50.000000000 +0200
@@ -0,0 +1,66 @@
+import pytest
+from rpmlint.checks.SELinuxIndependentModuleCheck import 
SELinuxIndependentModuleCheck
+from rpmlint.filter import Filter
+
+from Testing import CONFIG, get_tested_mock_package
+
+
[email protected](scope='function', autouse=True)
+def selinuxcheck():
+    CONFIG.info = True
+    output = Filter(CONFIG)
+    test = SELinuxIndependentModuleCheck(CONFIG, output)
+    yield output, test
+
+
[email protected]
+def output(selinuxcheck):
+    output, _test = selinuxcheck
+    yield output
+
+
[email protected]
+def test(selinuxcheck):
+    _output, test = selinuxcheck
+    yield test
+
+
[email protected]('package', [
+    get_tested_mock_package(
+        name='flatpak-selinux',
+        header={'requires': ['selinux-policy-base >= 20260219-2.2']},
+        files=[
+            '/usr/share/selinux/devel/include/contrib/flatpak.if',
+            '/usr/share/selinux/packages/flatpak.pp.bz2',
+        ],
+    ),
+])
+def test_selinux_independent_module(package, output, test):
+    test.check(package)
+    out = output.print_results(output.results)
+    assert 'selinux-incorrect-if-file-location' in out
+
+
[email protected]('package', [
+    get_tested_mock_package(
+        name='selinux-policy-devel',
+        header={'requires': ['selinux-policy-base >= 20260219-2.2']},
+        files=[
+            '/usr/share/selinux/devel/include/contrib/flatpak.if',
+            '/usr/share/selinux/packages/flatpak.pp.bz2',
+        ],
+    ),
+    get_tested_mock_package(
+        name='ok-package',
+        header={'requires': ['selinux-policy-base >= 20260219-2.2']},
+        files=[
+            '/usr/share/selinux/devel/include/distributed/flatpak.if',
+            '/usr/share/selinux/devel/include/distributed/testing.if',
+            
'/usr/share/selinux/devel/include/distributed/subfolder/testing.if',
+        ],
+    ),
+])
+def test_selinux_no_independent_module(package, output, test):
+    test.check(package)
+    out = output.print_results(output.results)
+    assert 'selinux-incorrect-if-file-location' not in out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmlint-2.9.0+git20260526.25d1046c/test/test_tags.py 
new/rpmlint-2.9.0+git20260528.2490edb3/test/test_tags.py
--- old/rpmlint-2.9.0+git20260526.25d1046c/test/test_tags.py    2026-05-26 
17:29:32.000000000 +0200
+++ new/rpmlint-2.9.0+git20260528.2490edb3/test/test_tags.py    2026-05-28 
14:31:50.000000000 +0200
@@ -1,4 +1,6 @@
 from mockdata.mock_tags import (
+    DepsDevPackage,
+    DepsPackage,
     FooDevelPackage,
     FuseCommonPackage,
     InvalidExceptionPackage,
@@ -499,3 +501,39 @@
     test.check(package)
     out = output.print_results(output.results)
     assert 'W: missing-dependency-on' not in out
+
+
[email protected]('package,should_fail', [
+    [DepsPackage, True],
+    [DepsDevPackage, False],
+])
+def test_devel_dependency(package, should_fail, output, test):
+    test.check(package)
+    out = output.print_results(output.results)
+    assert ('devel-dependency' in out) == should_fail
+
+
[email protected]('package,should_fail', [
+    [DepsPackage, True],
+    [DepsDevPackage, False],
+])
+def test_explicit_lib_dependency(package, should_fail, output, test):
+    test.check(package)
+    out = output.print_results(output.results)
+    assert ('explicit-lib-dependency' in out) == should_fail
+
+
[email protected]('package,deps,should_fail', [
+    [DepsPackage, ('libxx2_2-devel', ), True],
+    [DepsPackage, ('libxx-devel', 'libxx2-devel'), True],
+    [DepsPackage, ('libxx2', 'libxx-devel'), False],
+])
+def test_invalid_build_requires(package, deps, should_fail, output, test):
+    pkg = package.clone()
+    pkg.is_source = True
+    pkg.requires = []
+    for dep in deps:
+        pkg.requires.append([dep, None, None])
+    test.check(pkg)
+    out = output.print_results(output.results)
+    assert ('invalid-build-requires' in out) == should_fail

Reply via email to