Hello community,

here is the log from the commit of package rpmlint for openSUSE:Factory checked 
in at 2018-01-20 11:21:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpmlint (Old)
 and      /work/SRC/openSUSE:Factory/.rpmlint.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rpmlint"

Sat Jan 20 11:21:05 2018 rev:286 rq:565802 version:1.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/rpmlint/rpmlint.changes  2017-11-23 
09:35:50.415284269 +0100
+++ /work/SRC/openSUSE:Factory/.rpmlint.new/rpmlint.changes     2018-01-20 
11:21:12.435815876 +0100
@@ -1,0 +2,37 @@
+Mon Jan 15 09:15:19 UTC 2018 - [email protected]
+
+- whitelisting usbauth (bsc#1066877) 
+
+-------------------------------------------------------------------
+Sun Jan 14 15:36:40 UTC 2018 - [email protected]
+
+- Add Development/{Languages,Libraries}/Rust groups as noted in wiki
+
+-------------------------------------------------------------------
+Wed Jan  3 10:27:22 UTC 2018 - [email protected]
+
+- add missing comma (,) to config file
+- add user/group _nsd for NSD name server
+
+-------------------------------------------------------------------
+Sat Dec  2 16:48:08 UTC 2017 - [email protected]
+
+- add 0001-Binariescheck-Check-for-chroot-chdir-on-ARM-PPC.patch
+
+-------------------------------------------------------------------
+Wed Nov 29 09:26:18 UTC 2017 - [email protected]
+
+- whitelisting kcmsddm (bsc#1065563) 
+
+-------------------------------------------------------------------
+Fri Nov 24 10:09:26 UTC 2017 - [email protected]
+
+- Update to version master:
+  * Fix warnings
+  * Add new rpmlint check for new %{_fillupdir} macro (boo#1069468)
+  * Open paths within the rpm file itself
+  * Fix python warning
+  * BashismCheck: Only check regular files
+  * Rewrite BashismsCheck to actually work
+
+-------------------------------------------------------------------

New:
----
  0001-Binariescheck-Check-for-chroot-chdir-on-ARM-PPC.patch

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

Other differences:
------------------
++++++ rpmlint-tests.spec ++++++
--- /var/tmp/diff_new_pack.mPbb4x/_old  2018-01-20 11:21:14.211732849 +0100
+++ /var/tmp/diff_new_pack.mPbb4x/_new  2018-01-20 11:21:14.215732662 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rpmlint-tests
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed

++++++ rpmlint.spec ++++++
--- /var/tmp/diff_new_pack.mPbb4x/_old  2018-01-20 11:21:14.235731728 +0100
+++ /var/tmp/diff_new_pack.mPbb4x/_new  2018-01-20 11:21:14.235731728 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package rpmlint
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -89,6 +89,7 @@
 Patch70:        rpmlint-all-pie.patch
 Patch71:        0001-Avoid-calling-close-on-undefined-fd-variable.patch
 Patch72:        rpmlint-slpp-NUM-NUM.patch
+Patch73:        0001-Binariescheck-Check-for-chroot-chdir-on-ARM-PPC.patch
 BuildRequires:  obs-service-format_spec_file
 BuildRequires:  python3-flake8
 BuildRequires:  python3-pytest

++++++ 0001-Binariescheck-Check-for-chroot-chdir-on-ARM-PPC.patch ++++++
>From 5237c197f56698d55fd1d18f8127f6e947350d80 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <[email protected]>
Date: Wed, 11 Oct 2017 16:29:21 +0200
Subject: [PATCH] Binariescheck: Check for chroot/chdir on ARM, PPC

The assembly on ARM looks almost the same as the x86 assembly, but
with a branch mnemonic (bl) instead of an explicit call.

On PPC, library function calls use jump tables, so the vicinity check does
not work, but we can at least detect a sole chroot without chdir.
---
 BinariesCheck.py | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/BinariesCheck.py b/BinariesCheck.py
index bd75558..8d224a8 100644
--- a/BinariesCheck.py
+++ b/BinariesCheck.py
@@ -54,8 +54,6 @@ class BinaryInfo(object):
     setuid_call_regex = create_regexp_call(r'set(?:res|e)?uid')
     setgroups_call_regex = create_regexp_call(r'(?:ini|se)tgroups')
     chroot_call_regex = create_regexp_call('chroot')
-    # 401eb8:   e8 c3 f0 ff ff          callq  400f80 <chdir@plt>
-    objdump_call_regex = re.compile(br'callq?\s(.*)')
     debuginfo_regex = re.compile(r'^\s+\[\s*\d+\]\s+\.debug_.*\s+')
     symtab_regex = re.compile(r'^\s+\[\s*\d+\]\s+\.symtab\s+')
     gethostbyname_call_regex = 
create_regexp_call(r'(gethostbyname|gethostbyname2|gethostbyaddr|gethostbyname_r|gethostbyname2_r|gethostbyaddr_r)')
@@ -96,6 +94,16 @@ class BinaryInfo(object):
         self.mktemp = False
 
         is_debug = path.endswith('.debug')
+        # Currently this implementation works only on specific
+        # architectures due to reliance on arch specific assembly.
+        if pkg.arch in ['armv6hl', 'armv7hl', 'aarch64']:
+            # 10450:   ebffffec        bl      10408 <chroot@plt>
+            BinaryInfo.objdump_call_regex = re.compile(br'\sbl\s+(.*)')
+        elif (pkg.arch.endswith('86') or pkg.arch == 'x86_64'):
+            # 401eb8:   e8 c3 f0 ff ff          callq  400f80 <chdir@plt>
+            BinaryInfo.objdump_call_regex = re.compile(br'callq?\s(.*)')
+        else:
+            BinaryInfo.objdump_call_regex = None
 
         res = Pkg.getstatusoutput(
             ('readelf', '-W', '-S', '-l', '-d', '-s', path))
@@ -204,10 +212,13 @@ class BinaryInfo(object):
 
             # check if chroot is near chdir (since otherwise, chroot is called
             # without chdir)
-            # Currently this implementation works only on x86_64 due to 
reliance
-            # on x86_64 specific assembly. Skip it on other architectures
-            if ((pkg.arch.endswith('86') or pkg.arch == 'x86_64') and
-                    self.chroot and self.chdir):
+            if not BinaryInfo.objdump_call_regex and self.chroot and 
self.chdir:
+                # On some architectures, e.g. PPC, it is to difficult to
+                # find the actual invocations of chroot/chdir, if both
+                # exist assume chroot is fine
+                self.chroot_near_chdir = True
+
+            elif self.chroot and self.chdir:
                 p = subprocess.Popen(('objdump', '-d', path),
                                      stdout=subprocess.PIPE, bufsize=-1,
                                      env=dict(os.environ, LC_ALL="C"))
@@ -537,9 +548,8 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
                 printError(pkg, 'missing-call-to-setgroups-before-setuid',
                            fname)
 
-            if ((pkg.arch.endswith('86') or pkg.arch == 'x86_64') and 
bin_info.chroot):
-                if not bin_info.chdir or not bin_info.chroot_near_chdir:
-                    printError(pkg, 'missing-call-to-chdir-with-chroot', fname)
+            if bin_info.chroot and not bin_info.chroot_near_chdir:
+                printError(pkg, 'missing-call-to-chdir-with-chroot', fname)
 
             if bin_info.mktemp:
                 printError(pkg, 'call-to-mktemp', fname)
-- 
2.14.2

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.mPbb4x/_old  2018-01-20 11:21:14.355726118 +0100
+++ /var/tmp/diff_new_pack.mPbb4x/_new  2018-01-20 11:21:14.355726118 +0100
@@ -3,4 +3,4 @@
             <param 
name="url">https://github.com/openSUSE/rpmlint-tests.git</param>
           <param 
name="changesrevision">8b163ac0aaf41e8424edbc4074a60f18e9cb9438</param></service><service
 name="tar_scm">
             <param 
name="url">https://github.com/openSUSE/rpmlint-checks.git</param>
-          <param 
name="changesrevision">9fe029d320afd18bba51bad18cc79324a912c756</param></service></servicedata>
\ No newline at end of file
+          <param 
name="changesrevision">19a2516ec526f44b39a88e1757fc4f9fa1f3b603</param></service></servicedata>
\ No newline at end of file

++++++ config ++++++
--- /var/tmp/diff_new_pack.mPbb4x/_old  2018-01-20 11:21:14.387724621 +0100
+++ /var/tmp/diff_new_pack.mPbb4x/_new  2018-01-20 11:21:14.387724621 +0100
@@ -108,6 +108,7 @@
     'Development/Languages/Perl',
     'Development/Languages/Python',
     'Development/Languages/Ruby',
+    'Development/Languages/Rust',
     'Development/Languages/Scheme',
     'Development/Languages/Tcl',
     'Development/Libraries/C and C++',
@@ -120,6 +121,7 @@
     'Development/Libraries/Parallel',
     'Development/Libraries/Perl',
     'Development/Libraries/Python',
+    'Development/Libraries/Rust',
     'Development/Libraries/Tcl',
     'Development/Libraries/X11',
     'Development/Libraries/YaST',
@@ -409,6 +411,7 @@
     'nogroup',
     'novell_nogroup',
     'novlxtier',
+    '_nsd',
     'ntadmin',
     'ntop',
     'ntp',
@@ -587,6 +590,7 @@
     'novlifdr',
     'novlxregd',
     'novlxsrvd',
+    '_nsd',
     'ntop',
     'ntp',
     'openstack-ceilometer',
@@ -675,7 +679,7 @@
 '''A file in this package is owned by an unregistered group id.
 To register the group, please branch the devel:openSUSE:Factory:rpmlint 
rpmlint package, 
 add the group to the "config" file and send a submitrequest.
-'''
+''',
 'no-changelogname-tag',
 '''There is no changelog. Please insert a '%changelog' section heading in your
 spec file and prepare your changes file using e.g. the 'osc vc' command.''',
@@ -1027,7 +1031,13 @@
     "connman-nmcompat.conf",
     "connman.conf",
     "connman-vpn-dbus.conf",
-    "net.connman.vpn.service"
+    "net.connman.vpn.service",
+    # kcmsddm (bsc#1065563)
+    "org.kde.kcontrol.kcmsddm.conf",
+    "org.kde.kcontrol.kcmsddm.service",
+    # usbauth (bsc#1066877)
+    "org.opensuse.usbauth.conf",
+    "org.opensuse.usbauth.service"
 ))
 
 setOption("PAMModules.WhiteList", (

++++++ rpmlint-checks-master.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmlint-checks-master/BashismsCheck.py 
new/rpmlint-checks-master/BashismsCheck.py
--- old/rpmlint-checks-master/BashismsCheck.py  2017-11-03 07:31:19.000000000 
+0100
+++ new/rpmlint-checks-master/BashismsCheck.py  2017-11-25 11:09:53.000000000 
+0100
@@ -1,54 +1,45 @@
 #############################################################################
 # File          : BashismsCheck.py
-# Package       : rpmlint
-# Author        : Guido Berhoerster
 # Purpose       : check /bin/sh shell scripts for bashisms
 #############################################################################
 
-import re
+import stat
+
 import AbstractCheck
 import Pkg
-from Filter import printWarning, printInfo, printError, addDetails
+from Filter import printWarning, printInfo, addDetails
 
 
 class BashismsCheck(AbstractCheck.AbstractFilesCheck):
-    RE_BIN_SH = re.compile(r'#!\s*(/usr)?/bin/sh(\s+|$)')
-
     def __init__(self):
         AbstractCheck.AbstractFilesCheck.__init__(self, "BashismsCheck", ".*")
 
     def check_file(self, pkg, filename):
-        try:
-            f = open(filename)
-        except:
+        pkgfile = pkg.files()[filename]
+
+        if not (stat.S_ISREG(pkgfile.mode) and
+                pkgfile.magic.startswith('POSIX shell script')):
             return
+
         try:
-            first_line = f.read(256).split("\n")[0]
-            if self.RE_BIN_SH.match(first_line):
-                status, output = Pkg.getstatusoutput(["dash", "-n", filename])
-                if status == 2:
-                    printWarning(pkg, "bin-sh-syntax-error", filename)
-                try:
-                    status, output = Pkg.getstatusoutput(
-                        ["checkbashisms", filename])
-                    if status == 1:
-                        printInfo(pkg, "potential-bashisms", filename)
-                except Exception as x:
-                    printError(
-                        pkg, 'rpmlint-exception',
-                        '%(fname)s raised an exception: %(x)s' %
-                        {'fname': filename, 'x': x})
-        except UnicodeDecodeError:
+            status, output = Pkg.getstatusoutput(["dash", "-n", filename])
+            if status == 2:
+                printWarning(pkg, "bin-sh-syntax-error", filename)
+            status, output = Pkg.getstatusoutput(
+                ["checkbashisms", filename])
+            if status == 1:
+                printInfo(pkg, "potential-bashisms", filename)
+        except (FileNotFoundError, UnicodeDecodeError):
             pass
-        finally:
-            f.close()
 
 
 check = BashismsCheck()
 
 addDetails(
 'bin-sh-syntax-error',
-'A /bin/sh shell script contains a syntax error.',
+'''A /bin/sh shell script contains a POSIX shell syntax error.
+This might indicate a potential bash-specific feature being used,
+try dash -n <file> for more detailed error message.''',
 
 'potential-bashisms',
 '''checkbashisms reported potential bashisms in a /bin/sh shell
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmlint-checks-master/CheckFilelist.py 
new/rpmlint-checks-master/CheckFilelist.py
--- old/rpmlint-checks-master/CheckFilelist.py  2017-11-03 07:31:19.000000000 
+0100
+++ new/rpmlint-checks-master/CheckFilelist.py  2017-11-25 11:09:53.000000000 
+0100
@@ -104,7 +104,7 @@
     },
     {
         'error': 'suse-filelist-forbidden-sysconfig',
-        'details': '''Please use /var/adm/fillup-templates/sysconfig.<pkgname>
+        'details': '''Please use %{_fillupdir}/sysconfig.<pkgname>
                    and call %fillup_and_insserv for new sysconfig files.
                    ''',
         'good': [
@@ -123,7 +123,7 @@
             '/etc/sysconfig/uml',
         ],
         'bad': [
-            '/var/adm/fillup-templates/rc.config.*',
+            '/var/adm/fillup-templates/*',
             '/etc/sysconfig/*',
             '/etc/rc.config.d/*',
         ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmlint-checks-master/CheckPolkitPrivs.py 
new/rpmlint-checks-master/CheckPolkitPrivs.py
--- old/rpmlint-checks-master/CheckPolkitPrivs.py       2017-11-03 
07:31:19.000000000 +0100
+++ new/rpmlint-checks-master/CheckPolkitPrivs.py       2017-11-25 
11:09:53.000000000 +0100
@@ -100,7 +100,7 @@
                                     if i.nodeName in ('allow_any', 
'allow_inactive', 'allow_active'):
                                         settings[i.nodeName] = 
i.firstChild.data
 
-                            except:
+                            except KeyError:
                                 iserr = 1
 
                             for i in ('allow_any', 'allow_inactive', 
'allow_active'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpmlint-checks-master/LibraryPolicyCheck.py 
new/rpmlint-checks-master/LibraryPolicyCheck.py
--- old/rpmlint-checks-master/LibraryPolicyCheck.py     2017-11-03 
07:31:19.000000000 +0100
+++ new/rpmlint-checks-master/LibraryPolicyCheck.py     2017-11-25 
11:09:53.000000000 +0100
@@ -300,7 +300,7 @@
     def __init__(self):
         AbstractCheck.AbstractCheck.__init__(self, "LibraryPolicyCheck")
         self.map = []
-        self.strongly_versioned_re = re.compile('-[\d\.]+\.so$')
+        self.strongly_versioned_re = re.compile(r'-[\d\.]+\.so$')
 
     def check(self, pkg):
         global _policy_legacy_exceptions


Reply via email to