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 - krahmer@suse.com
+
+- whitelisting usbauth (bsc#1066877)
+
+-------------------------------------------------------------------
+Sun Jan 14 15:36:40 UTC 2018 - ngompa13@gmail.com
+
+- Add Development/{Languages,Libraries}/Rust groups as noted in wiki
+
+-------------------------------------------------------------------
+Wed Jan 3 10:27:22 UTC 2018 - adam.majer@suse.de
+
+- add missing comma (,) to config file
+- add user/group _nsd for NSD name server
+
+-------------------------------------------------------------------
+Sat Dec 2 16:48:08 UTC 2017 - stefan.bruens@rwth-aachen.de
+
+- add 0001-Binariescheck-Check-for-chroot-chdir-on-ARM-PPC.patch
+
+-------------------------------------------------------------------
+Wed Nov 29 09:26:18 UTC 2017 - krahmer@suse.com
+
+- whitelisting kcmsddm (bsc#1065563)
+
+-------------------------------------------------------------------
+Fri Nov 24 10:09:26 UTC 2017 - opensuse-packaging@opensuse.org
+
+- 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?=
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
- 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
+ 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
+ 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