Hello community,
here is the log from the commit of package rpmlint for openSUSE:Factory checked in at 2015-05-23 13:19:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpmlint (Old)
and /work/SRC/openSUSE:Factory/.rpmlint.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpmlint"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rpmlint/rpmlint-tests.changes 2015-04-10 09:50:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rpmlint.new/rpmlint-tests.changes 2015-05-23 13:19:27.000000000 +0200
@@ -1,0 +2,20 @@
+Wed May 20 08:02:15 UTC 2015 - lnussel@suse.de
+
+- Update to version 13.2+git20150520.a374c88:
+ + add tmpfiles.d checks
+
+-------------------------------------------------------------------
+Tue May 19 12:21:46 UTC 2015 - lnussel@suse.de
+
+- Update to version 13.2+git20150519.278efdf:
+ + add ghost file checks
+ + print names of failed tests
+
+-------------------------------------------------------------------
+Tue Apr 21 08:59:43 UTC 2015 - lnussel@suse.de
+
+- Update to version 13.2+git20150410.6161e60:
+ + build our own non-PIE binaries, as the distribution slowly gets converted to all PIE binaries
+ (removed rpmlint-pie-fixes.patch)
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/rpmlint/rpmlint.changes 2015-04-10 09:50:06.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rpmlint.new/rpmlint.changes 2015-05-23 13:19:27.000000000 +0200
@@ -1,0 +2,79 @@
+Wed May 20 07:58:52 UTC 2015 - lnussel@suse.de
+
+- skip files handled by tmpfile mechnism in regular ghost file check
+ (move-ghost-file-check-to-TmpFilesCh.diff)
+
+-------------------------------------------------------------------
+Tue May 19 11:35:07 UTC 2015 - lnussel@suse.de
+
+- fix update_git.sh
+- make sure tmpfiles are listed in %files
+ (add-check-for-tmpfiles-created-at-r.diff)
+- don't complain about missingok ghost files
+ (fix-ghost-file-handling.diff)
+- remove obsolete check for %defattr in spec files
+ (remove-files-attr-not-set-check.diff)
+
+-------------------------------------------------------------------
+Fri Apr 24 07:56:05 UTC 2015 - tserong@suse.com
+
+- added standard user and group ceph (bnc#928492)
+
+-------------------------------------------------------------------
+Wed Apr 22 12:17:30 UTC 2015 - krahmer@suse.com
+
+- fixing some .conf/.service suffixes
+
+-------------------------------------------------------------------
+Wed Apr 22 11:51:33 UTC 2015 - krahmer@suse.com
+
+- adding realmd DBUS service (bnc#916766)
+
+-------------------------------------------------------------------
+Mon Apr 20 14:10:14 UTC 2015 - lnussel@suse.de
+
+- update save-content-to-an-array.diff with upstream version
+
+-------------------------------------------------------------------
+Fri Apr 10 11:16:01 UTC 2015 - lnussel@suse.de
+
+- new versioin 1.6
+- add script update_git.sh based on qemu's to simplify importing
+ a patch series from git after rebasing.
+* Patches dropped:
+ 0001-Python-3-compatibility-tweaks.patch (upstream)
+ 0001-Set-Python-3.4-magic-number-to-3310.patch (upstream)
+ add-scoring-support.diff (different upstream solution)
+ check-buildroot-during-install.diff (need to fix no-cleaning-of-buildroot check upstream)
+ fix-versioned-prereq.diff (was disabled, not sure what it's useful for)
+ ignore-non-readable-in-etc.diff (filtered anyways)
+ locale-support.diff (drop)
+ locale-update.diff (different upstream solution now)
+ more-verbose-lsb-check.diff (drop)
+ perl-versioned-rpath-deps.diff (upstream)
+ rpmlint-1.5-disallow-var-run-and-var-lock.diff (upstream)
+ rpmlint-1.5-Fix-setgroups-error-name.diff (upstream)
+ rpmlint-decode-fix.diff (different upstream solution)
+ rpmlint-fix-unexpanded-macros-for-array-values.patch (different upstream solution)
+ stricter-tags-check.diff (merged in weak deps and check-for-self-provides.diff)
+ suppress-for-perl-python.diff (use filter instead)
+ suse-binary-info-compile-opts.diff (drop)
+ suse-changelog.patch (change config instead)
+ suse-mono-deps-checks.diff (useful?)
+ suse-required-lsb-tags.diff (different upstream solution)
+ verify-buildrequires.diff (very build system specific, drop)
+ xdg-check-exception.diff (upstream)
+* renamed patches:
+ script-interpreter-only-for-exec-scripts.diff
+ -> script-interpreter-only-for-exec-sc.diff
+ confusing-invalid-spec-name.patch
+ -> confusing-invalid-spec-name.diff
+ suse-manpages-for-rc-scripts.patch
+ -> suse-manpages-for-rc-scripts.diff
+ sysv5-init-checks.diff
+ -> suse-sysv-init-checks.diff
+* added patches:
+ check-for-self-provides.diff
+ save-content-to-an-array.diff
+
+-------------------------------------------------------------------
Old:
----
0001-Python-3-compatibility-tweaks.patch
0001-Set-Python-3.4-magic-number-to-3310.patch
add-scoring-support.diff
check-buildroot-during-install.diff
confusing-invalid-spec-name.patch
fix-versioned-prereq.diff
ignore-non-readable-in-etc.diff
locale-support.diff
locale-update.diff
more-verbose-lsb-check.diff
perl-versioned-rpath-deps.diff
rpmlint-1.5-Fix-setgroups-error-name.diff
rpmlint-1.5-disallow-var-run-and-var-lock.diff
rpmlint-1.5.tar.xz
rpmlint-decode-fix.diff
rpmlint-fix-unexpanded-macros-for-array-values.patch
rpmlint-pie-fixes.patch
rpmlint-tests-13.2+git20150310.00c9b55.tar.xz
script-interpreter-only-for-exec-scripts.diff
stricter-tags-check.diff
suppress-for-perl-python.diff
suse-binary-info-compile-opts.diff
suse-changelog.patch
suse-manpages-for-rc-scripts.patch
suse-mono-deps-checks.diff
suse-required-lsb-tags.diff
sysv5-init-checks.diff
verify-buildrequires.diff
xdg-check-exception.diff
New:
----
add-check-for-tmpfiles-created-at-r.diff
check-for-self-provides.diff
confusing-invalid-spec-name.diff
fix-ghost-file-handling.diff
move-ghost-file-check-to-TmpFilesCh.diff
remove-files-attr-not-set-check.diff
rpmlint-1.6.tar.xz
rpmlint-tests-13.2+git20150520.a374c88.tar.xz
save-content-to-an-array.diff
script-interpreter-only-for-exec-sc.diff
suse-manpages-for-rc-scripts.diff
suse-sysv-init-checks.diff
update_git.sh
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rpmlint-tests.spec ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -22,7 +22,7 @@
BuildRequires: rpmlint-mini
Name: rpmlint-tests
-Version: 13.2+git20150310.00c9b55
+Version: 13.2+git20150520.a374c88
Release: 0
Summary: rpmlint regression tests
License: SUSE-Public-Domain
@@ -30,7 +30,6 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: http://www.opensuse.org/
Source: rpmlint-tests-%version.tar.xz
-Patch0: rpmlint-pie-fixes.patch
%description
This package doesn't actually contain any files and is not meant to
@@ -39,7 +38,6 @@
%prep
%setup -q
-%patch0 -p1
%build
mkdir rpms
++++++ rpmlint.spec ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -25,7 +25,7 @@
Summary: Rpm correctness checker
License: GPL-2.0+
Group: System/Packages
-Version: 1.5
+Version: 1.6
Release: 0
Source0: https://downloads.sourceforge.net/project/rpmlint/rpmlint-%{version}.tar.xz
Source1: rpmlint-checks-master.tar.gz
@@ -33,6 +33,7 @@
Source3: config.in
Source11: pie.config
Source12: licenses.config
+Source98: update_git.sh
Source99: README.packaging.txt
Source100: syntax-validator.py
Url: https://sourceforge.net/projects/rpmlint/
@@ -49,88 +50,69 @@
Requires: rpm-python
# Requirement for ErlangCheck.py (pull-request #2).
Requires: python-pybeam
-BuildArch: noarch
#
# Read README.packaging.txt before making any changes to this
# package
#
-Patch0: rpmlint-suse.diff
-Patch1: suse-checks.diff
-Patch2: suse-version.diff
-Patch3: suse-url-check.diff
-Patch5: suse-python3-naming-policy.diff
-Patch6: suse-filesystem.diff
-Patch7: suse-pkg-config-check.diff
-Patch8: suse-binarieschecks.diff
-Patch9: no-doc-for-lib.diff
-Patch10: add-scoring-support.diff
-Patch11: suse-filter-exception.diff
-Patch12: usr-arch.diff
-Patch13: script-interpreter-only-for-exec-scripts.diff
-Patch14: sourced-dirs.diff
-Patch15: suse-filter-more-verbose.diff
-Patch17: docdata-examples.diff
-Patch18: 0001-Python-3-compatibility-tweaks.patch
-Patch19: yast-provides.diff
-Patch20: xdg-paths-update.diff
-Patch22: better-wrong-script.diff
-Patch23: buildroot-doc.diff
-Patch24: sysv5-init-checks.diff
-Patch26: ignore-non-readable-in-etc.diff
-Patch29: rpmgroup-checks.diff
-Patch30: devel-provide-is-devel-package.diff
-Patch31: only-reg-files-are-scripts.diff
-Patch33: check-buildroot-during-install.diff
-Patch34: verify-buildrequires.diff
-Patch35: fix-versioned-prereq.diff
-Patch37: buildroot-in-scripts.diff
-Patch39: libtool-wrapper-check.diff
-Patch41: perl-versioned-rpath-deps.diff
-Patch42: suse-check-optional-dependencies.diff
-Patch46: locale-support.diff
-# not is also in CheckFilelist.py
-Patch47: noarch-lib64.diff
-Patch49: stricter-tags-check.diff
-Patch50: suse-no-run-ldconfig.diff
-Patch51: description-check.diff
-# this is the wrong place here
-Patch52: suppress-for-perl-python.diff
-Patch54: locale-update.diff
-Patch57: suse-mono-deps-checks.diff
-Patch58: add-weak-dependencies.diff
-Patch60: selfconflicts-provide.diff
-Patch62: no-badness-return.diff
-Patch65: suse-shlib-devel-dependency.diff
-Patch67: suse-required-lsb-tags.diff
-Patch68: more-verbose-lsb-check.diff
-Patch71: suse-binary-info-compile-opts.diff
-Patch72: version-control-internal-file.diff
-Patch73: avoid-mismatched-libregex.diff
-Patch74: filename-non-utf8-exception.diff
-Patch75: stricter-interpreter-check.diff
-Patch76: confusing-invalid-spec-name.patch
-Patch77: rpmlint-pkg-quoting.diff
-Patch78: suse-g-ir-chech.diff
-Patch80: remove-expand-macros.diff
-Patch81: suse-whitelist-opensuse.diff
-Patch84: extend-suse-conffiles-check.diff
-Patch85: suse-changelog.patch
-Patch87: compressed-backup-regex.diff
-# accepted upstream
-Patch88: suse-speccheck-utf8.diff
-Patch89: suse-python-abi-check.diff
-# PATCH-FIX-OPENSUSE: saschpe@suse.de - Don't complain about missing man-pages for rc-scripts
-Patch91: suse-manpages-for-rc-scripts.patch
-# PATCH-FIX-UPSTREAM: lnussel@suse.de - Fix setgroups error name
-Patch92: rpmlint-1.5-Fix-setgroups-error-name.diff
-Patch93: xdg-check-exception.diff
-Patch94: suse-ignore-specfile-errors.diff
-Patch95: invalid-filerequires.diff
-Patch96: rpmlint-decode-fix.diff
-Patch97: rpmlint-fix-unexpanded-macros-for-array-values.patch
-# PATCH-FIX-UPSTREAM: lnussel@suse.de - disallow /var/run and /var/lock
-Patch98: rpmlint-1.5-disallow-var-run-and-var-lock.diff
-Patch99: 0001-Set-Python-3.4-magic-number-to-3310.patch
+# PATCHLIST BEGIN
+Patch00: rpmlint-suse.diff
+Patch01: suse-checks.diff
+Patch02: suse-version.diff
+Patch03: suse-url-check.diff
+Patch04: suse-python3-naming-policy.diff
+Patch05: suse-filesystem.diff
+Patch06: suse-pkg-config-check.diff
+Patch07: suse-binarieschecks.diff
+Patch08: no-doc-for-lib.diff
+Patch09: suse-filter-exception.diff
+Patch10: usr-arch.diff
+Patch11: script-interpreter-only-for-exec-sc.diff
+Patch12: sourced-dirs.diff
+Patch13: suse-filter-more-verbose.diff
+Patch14: docdata-examples.diff
+Patch15: yast-provides.diff
+Patch16: xdg-paths-update.diff
+Patch17: better-wrong-script.diff
+Patch18: buildroot-doc.diff
+Patch19: rpmgroup-checks.diff
+Patch20: devel-provide-is-devel-package.diff
+Patch21: only-reg-files-are-scripts.diff
+Patch22: buildroot-in-scripts.diff
+Patch23: libtool-wrapper-check.diff
+Patch24: suse-check-optional-dependencies.diff
+Patch25: noarch-lib64.diff
+Patch26: suse-no-run-ldconfig.diff
+Patch27: description-check.diff
+Patch28: add-weak-dependencies.diff
+Patch29: selfconflicts-provide.diff
+Patch30: no-badness-return.diff
+Patch31: suse-shlib-devel-dependency.diff
+Patch32: version-control-internal-file.diff
+Patch33: avoid-mismatched-libregex.diff
+Patch34: filename-non-utf8-exception.diff
+Patch35: stricter-interpreter-check.diff
+Patch36: confusing-invalid-spec-name.diff
+Patch37: rpmlint-pkg-quoting.diff
+Patch38: suse-g-ir-chech.diff
+Patch39: remove-expand-macros.diff
+Patch40: suse-whitelist-opensuse.diff
+Patch41: extend-suse-conffiles-check.diff
+Patch42: compressed-backup-regex.diff
+Patch43: suse-speccheck-utf8.diff
+Patch44: suse-python-abi-check.diff
+Patch45: suse-manpages-for-rc-scripts.diff
+Patch46: suse-ignore-specfile-errors.diff
+Patch47: invalid-filerequires.diff
+Patch48: suse-sysv-init-checks.diff
+Patch49: check-for-self-provides.diff
+Patch50: save-content-to-an-array.diff
+Patch51: add-check-for-tmpfiles-created-at-r.diff
+Patch52: fix-ghost-file-handling.diff
+Patch53: remove-files-attr-not-set-check.diff
+Patch54: move-ghost-file-check-to-TmpFilesCh.diff
+# PATCHLIST END
+# BuildArch must at the and. is a bug: https://bugzilla.suse.com/show_bug.cgi?id=926766
+BuildArch: noarch
%py_requires
@@ -139,80 +121,7 @@
source packages can be checked.
%prep
-%setup -q -n rpmlint-%{version} -a1
-%patch0
-%patch1
-%patch2
-%patch3
-%patch5
-%patch6
-%patch7
-%patch8
-%patch9
-#%patch10
-%patch11
-%patch12
-%patch13
-%patch14
-%patch15
-%patch17
-%patch18 -p1
-%patch19
-%patch20
-%patch22
-%patch23
-%patch24
-#%patch26
-%patch29
-%patch30
-%patch31
-# needs rediff
-#%patch33
-#%patch34
-#%patch35
-%patch37
-%patch39
-#%patch41
-%patch42
-#%patch46
-%patch47
-#%patch49
-%patch50
-%patch51
-#%patch52
-### rediff!
-#%patch54
-#%patch57
-%patch58
-%patch60
-%patch62
-%patch65
-#%patch67
-#%patch68
-#%patch71
-%patch72
-%patch73
-%patch74
-%patch75
-%patch76 -p1
-%patch77
-%patch78
-%patch80
-%patch81
-%patch84
-%patch85
-%patch87
-%patch88
-%patch89
-%patch91 -p1
-%patch92 -p1
-%patch93 -p1
-%patch94
-%patch95
-%patch96 -p1
-%patch97 -p1
-%patch98 -p1
-%patch99 -p1
+%autosetup -n rpmlint-%{version} -a1 -p1
cp -p %{SOURCE2} .
# Only move top-level python files
chmod 0755 rpmlint-checks-master/*.py
@@ -251,5 +160,6 @@
%config %{_sysconfdir}/rpmlint/licenses.config
%dir /etc/rpmlint
/usr/share/man/man1/rpmlint.1.gz
+/usr/share/man/man1/rpmdiff.1.gz
%changelog
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">http://github.com/openSUSE/rpmlint-tests.git</param>
- <param name="changesrevision">00c9b555c6114912c3314cbc353bace70a509c9c</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">a374c88b73eb58e49989ecab59e2d602aa11be94</param></service></servicedata>
\ No newline at end of file
++++++ add-check-for-tmpfiles-created-at-r.diff ++++++
From: Ludwig Nussel
Date: Fri, 5 Sep 2014 12:53:40 +0200
Subject: [PATCH] add check for tmpfiles created at runtime
this check parses files in /usr/lib/tmpfiles.d and verifies that entries
that create files or directories are actually listed in %files.
---
TmpFilesCheck.py | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
create mode 100644 TmpFilesCheck.py
diff --git a/TmpFilesCheck.py b/TmpFilesCheck.py
new file mode 100644
index 0000000..8c4db8d
--- /dev/null
+++ b/TmpFilesCheck.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+# File : TmpFilesCheck.py
+# Package : rpmlint
+# Author : Ludwig Nussel
+# Created on : Wed Sep 03 10:36 2014
+# Purpose : Check systemd created tmpfiles are included in filelist
+#############################################################################
+
+import os
+import re
+
+from Filter import addDetails, printError, printWarning
+import AbstractCheck
+import Pkg
+import stat
+
+class TmpFilesCheck(AbstractCheck.AbstractCheck):
+ '''Check systemd created tmpfiles are included in filelist'''
+
+ def __init__(self):
+ AbstractCheck.AbstractCheck.__init__(self, "TmpFilesCheck")
+ self._spec_file = None
+
+ def check(self, pkg):
+ if pkg.isSource():
+ return
+
+ # see tmpfiles.d(5)
+ interesting_types = ('f', 'F', 'w', 'd', 'D', 'p', 'L', 'c', 'b')
+
+ for fn, pkgfile in pkg.files().items():
+ if not fn.startswith('/usr/lib/tmpfiles.d/'):
+ continue
+ if not stat.S_ISREG(pkgfile.mode):
+ printWarning(pkg, "tmpfile-not-regular-file", fn)
+ continue
+ for line in open(pkgfile.path):
+ # skip comments
+ line = line.split('#')[0].split('\n')[0]
+ line = line.lstrip()
+ if not len(line):
+ continue
+ line = re.split(r'\s+', line)
+ # format is
+ #Type Path Mode UID GID Age Argument
+ # we only need type and path
+ if len(line) < 3:
+ continue
+ t = line[0]
+ p = line[1]
+ if t.endswith('!'):
+ t = t[:-1]
+ if not t in interesting_types:
+ continue
+
+ if not p in pkg.files():
+ printWarning(pkg, "tmpfile-not-in-filelist", p)
+ continue
+ if not pkg.files()[p].is_ghost:
+ printWarning(pkg, "tmpfile-not-ghost", p)
+
+check = TmpFilesCheck()
+
+addDetails(
+'tmpfile-not-regular-file',
+'''files in tmpfiles.d need to be regular files''', # otherwise we won't open it :-)
+'tmpfile-not-in-filelist',
+'''please add the specified file to your %files section as %ghost so
+users can easily query who created the file, it gets uninstalled on
+package removal and finally other rpmlint checks see it''',
+'tmpfile-not-ghost',
+'''the specified file is not marked as %ghost although created at
+runtime via tmpfiles mechanism.'''
+)
+# vim: sw=4 et
++++++ add-weak-dependencies.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,18 @@
-Index: Pkg.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] add-weak-dependencies.diff
+
===================================================================
---- Pkg.py.orig 2014-02-21 15:11:27.194647274 +0000
-+++ Pkg.py 2014-02-21 15:13:26.205647064 +0000
-@@ -427,6 +427,10 @@ class Pkg:
+---
+ Pkg.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
+ TagsCheck.py | 19 +++++++++++++++++++
+ 2 files changed, 70 insertions(+), 2 deletions(-)
+
+diff --git a/Pkg.py b/Pkg.py
+index e97d7ef..cfaa5a9 100644
+--- a/Pkg.py
++++ b/Pkg.py
+@@ -466,6 +466,10 @@ class Pkg:
self._missingok_files = None
self._files = None
self._requires = None
@@ -13,7 +23,7 @@
self._req_names = -1
if header:
-@@ -673,6 +677,22 @@ class Pkg:
+@@ -716,6 +720,22 @@ class Pkg:
self._gatherDepInfo()
return self._requires
@@ -36,17 +46,17 @@
def prereq(self):
"""Get package PreReqs as list of
(name, flags, (epoch, version, release)) tuples."""
-@@ -709,7 +729,7 @@ class Pkg:
+@@ -752,7 +772,7 @@ class Pkg:
# internal function to gather dependency info used by the above ones
def _gather_aux(self, header, list, nametag, flagstag, versiontag,
-- prereq = None):
+- prereq=None):
+ prereq = None, strong_only = False, weak_only = False):
names = header[nametag]
flags = header[flagstag]
versions = header[versiontag]
-@@ -720,7 +740,11 @@ class Pkg:
- evr = stringToVersion(versions[loop].decode())
+@@ -763,7 +783,11 @@ class Pkg:
+ evr = stringToVersion(b2s(versions[loop]))
if prereq is not None and flags[loop] & PREREQ_FLAG:
prereq.append((name, flags[loop] & (~PREREQ_FLAG), evr))
- else:
@@ -58,7 +68,7 @@
list.append((name, flags[loop], evr))
def _gatherDepInfo(self):
-@@ -730,6 +754,10 @@ class Pkg:
+@@ -773,6 +797,10 @@ class Pkg:
self._provides = []
self._conflicts = []
self._obsoletes = []
@@ -69,7 +79,7 @@
self._gather_aux(self.header, self._requires,
rpm.RPMTAG_REQUIRENAME,
-@@ -748,6 +776,26 @@ class Pkg:
+@@ -791,6 +819,26 @@ class Pkg:
rpm.RPMTAG_OBSOLETENAME,
rpm.RPMTAG_OBSOLETEFLAGS,
rpm.RPMTAG_OBSOLETEVERSION)
@@ -96,11 +106,43 @@
def scriptprog(self, which):
"""Get the specified script interpreter as a string.
-@@ -761,6 +809,7 @@ class Pkg:
- prog = " ".join(prog)
- return prog
+@@ -805,6 +853,7 @@ class Pkg:
+ return b2s(prog)
+
+
def getInstalledPkgs(name):
"""Get list of installed package objects by name."""
+diff --git a/TagsCheck.py b/TagsCheck.py
+index bc79283..6528d5b 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -853,8 +853,27 @@ class TagsCheck(AbstractCheck.AbstractCheck):
+ value = Pkg.formatRequire(*c)
+ self._unexpanded_macros(pkg, 'Conflicts %s' % (value,), value)
+
++ for i in pkg.supplements():
++ value = Pkg.formatRequire(*i)
++ self._unexpanded_macros(pkg, 'Supplements %s' % (value,), value)
++
++ for i in pkg.suggests():
++ value = Pkg.formatRequire(*i)
++ self._unexpanded_macros(pkg, 'Suggests %s' % (value,), value)
++
++ for i in pkg.enhances():
++ value = Pkg.formatRequire(*i)
++ self._unexpanded_macros(pkg, 'Enhances %s' % (value,), value)
++
++ for i in pkg.recommends():
++ value = Pkg.formatRequire(*i)
++ self._unexpanded_macros(pkg, 'Recommends %s' % (value,), value)
++
+ obss = pkg.obsoletes()
+ if obss:
++ for obs in obss:
++ value = Pkg.formatRequire(*obs)
++ self._unexpanded_macros(pkg, 'Obsoletes %s' % (value,), value)
+ provs = pkg.provides()
+ for prov in provs:
+ for obs in obss:
++++++ avoid-mismatched-libregex.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] avoid-mismatched-libregex.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -607,7 +607,7 @@ buildconfig_rpath_regex = re.compile('(?
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index efda328..14cfca3 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -615,7 +615,7 @@ buildconfig_rpath_regex = re.compile('(?:-rpath|Wl,-R)\\b')
sofile_regex = re.compile('/lib(64)?/(.+/)?lib[^/]+\.so$')
devel_regex = re.compile('(.*)-(debug(info)?|devel|headers|source|static)$')
debuginfo_package_regex = re.compile('-debug(info)?$')
++++++ better-wrong-script.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] better-wrong-script.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -1670,7 +1670,10 @@ executed.''',
+---
+ FilesCheck.py | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 7504167..72bdf54 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -1657,7 +1657,10 @@ executed.''',
executed.''',
'wrong-script-interpreter',
++++++ buildroot-doc.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: SpecCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] buildroot-doc.diff
+
===================================================================
---- SpecCheck.py.orig
-+++ SpecCheck.py
-@@ -647,7 +647,7 @@ versions you can ignore this warning.'''
+---
+ SpecCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/SpecCheck.py b/SpecCheck.py
+index 9ea5c6e..dde66fc 100644
+--- a/SpecCheck.py
++++ b/SpecCheck.py
+@@ -672,7 +672,7 @@ versions you can ignore this warning.''',
'hardcoded-path-in-buildroot-tag',
'''A path is hardcoded in your Buildroot tag. It should be replaced
++++++ buildroot-in-scripts.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: SpecCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] buildroot-in-scripts.diff
+
===================================================================
---- SpecCheck.py.orig
-+++ SpecCheck.py
-@@ -234,7 +234,9 @@ class SpecCheck(AbstractCheck.AbstractCh
+---
+ SpecCheck.py | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/SpecCheck.py b/SpecCheck.py
+index dde66fc..63897f2 100644
+--- a/SpecCheck.py
++++ b/SpecCheck.py
+@@ -238,7 +238,9 @@ class SpecCheck(AbstractCheck.AbstractCheck):
continue
++++++ check-for-self-provides.diff ++++++
From: Ludwig Nussel
Date: Fri, 10 Apr 2015 14:54:18 +0200
Subject: [PATCH] check for self provides
---
TagsCheck.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/TagsCheck.py b/TagsCheck.py
index 4141bbc..fa6154c 100644
--- a/TagsCheck.py
+++ b/TagsCheck.py
@@ -846,6 +846,8 @@ class TagsCheck(AbstractCheck.AbstractCheck):
for p in pkg.provides():
value = Pkg.formatRequire(*p)
self._unexpanded_macros(pkg, 'Provides %s' % (value,), value)
+ if p[0] == pkg.name and not p[1]:
+ printError(pkg, 'unversioned-explicit-self-provides', p[0])
for c in pkg.conflicts():
value = Pkg.formatRequire(*c)
@@ -1180,6 +1182,10 @@ objects should thus not be depended on and they should not result in provides
in the containing package. Get rid of the provides if appropriate, for example
by filtering it out during build. Note that in some cases this may require
disabling rpmbuild's internal dependency generator.''',
+
+'unversioned-explicit-self-provides',
+'''This package provides it's own name explicitely, which might break
+upgrade path. self-provides are autogenerated. Remove the provide.''',
)
# TagsCheck.py ends here
++++++ compressed-backup-regex.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,10 +1,19 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] compressed-backup-regex.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -591,7 +591,7 @@ DEFAULT_STANDARD_GROUPS = ('root', 'bin'
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index fc44b50..acb379f 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -599,7 +599,7 @@ DEFAULT_DISALLOWED_DIRS = (
+ )
- tmp_regex = re.compile('^(/var|/usr)?/tmp/')
sub_bin_regex = re.compile('^(/usr)?/s?bin/\S+/')
-backup_regex = re.compile('(~|\#[^/]+\#|\.orig|\.rej)$')
+backup_regex = re.compile('(~|\#[^/]+\#|\.orig|\.orig\.gz|\.rej)$')
++++++ config ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -42,6 +42,7 @@
addCheck("CheckRCLinks")
addCheck("CheckAppdata")
addCheck("CheckSystemdInstall")
+addCheck("TmpFilesCheck")
# stuff autobuild takes care about
addFilter(".*invalid-version.*")
@@ -87,6 +88,7 @@
'boinc',
'casaauth',
'cdrom',
+ 'ceph',
'chef',
'citadel',
'colord',
@@ -250,6 +252,7 @@
'casaatsd',
'casaatvd',
'casaauth',
+ 'ceph',
'chef',
'citadel',
'cntlm',
@@ -397,6 +400,9 @@
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.''',
)
setOption('DanglingSymlinkExceptions',
@@ -654,13 +660,16 @@
# libKF5Auth4 (bnc#864716)
"org.kde.kf5auth.conf",
# firewalld (bnc#907625)
- "org.fedoraproject.FirewallD1",
+ "FirewallD.conf",
# storaged (bnc#915769)
- "com.redhat.storaged",
- "com.redhat.lvm2",
+ "com.redhat.storaged.conf",
+ "com.redhat.storaged.service",
# systemd networkd (bnc#918799)
"org.freedesktop.network1.conf",
- "org.freedesktop.network1.service"
+ "org.freedesktop.network1.service",
+ # realmd (bnc#916766)
+ "org.freedesktop.realmd.service",
+ "org.freedesktop.realmd.conf"
))
setOption("PAMModules.WhiteList", (
++++++ confusing-invalid-spec-name.diff ++++++
From: Some One
Date: Thu, 9 Apr 2015 14:55:39 +0200
Subject: [PATCH] confusing-invalid-spec-name
# Confusing message. The problem is not that the file does not end
# with ".spec", but that there is a mismatch of specname and pkg name.
---
SpecCheck.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/SpecCheck.py b/SpecCheck.py
index 12b6f2b..d0d381a 100644
--- a/SpecCheck.py
+++ b/SpecCheck.py
@@ -646,8 +646,8 @@ addDetails(
SPEC file to build a valid RPM package.''',
'invalid-spec-name',
-'''Your spec filename must end with '.spec'. If it's not the case, rename your
-file and rebuild your package.''',
+'''The spec file name (without the .spec suffix) must match the package name
+("Name:" tag). Either rename your package or the specfile.''',
'non-utf8-spec-file',
'''The character encoding of the spec file is not UTF-8. Convert it for
++++++ description-check.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] description-check.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -715,6 +715,9 @@ class TagsCheck(AbstractCheck.AbstractCh
+---
+ TagsCheck.py | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index b1c4c7a..bc79283 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -716,6 +716,9 @@ class TagsCheck(AbstractCheck.AbstractCheck):
else:
for lang in langs:
self.check_description(pkg, lang, ignored_words)
@@ -12,7 +21,7 @@
else:
printError(pkg, 'no-description-tag')
-@@ -995,6 +998,10 @@ Name tag.''',
+@@ -997,6 +1000,10 @@ Name tag.''',
'''The major number of the library isn't included in the package's name.
''',
++++++ devel-provide-is-devel-package.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] devel-provide-is-devel-package.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -807,6 +807,10 @@ class FilesCheck(AbstractCheck.AbstractC
+---
+ FilesCheck.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 72bdf54..ae9c364 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -829,6 +829,10 @@ class FilesCheck(AbstractCheck.AbstractCheck):
# Check if the package is a development package
devel_pkg = devel_regex.search(pkg.name)
++++++ docdata-examples.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] docdata-examples.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -601,6 +601,7 @@ bin_regex = re.compile('^/(?:usr/(?:s?bi
+---
+ FilesCheck.py | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index c485125..7504167 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -609,6 +609,7 @@ bin_regex = re.compile('^/(?:usr/(?:s?bin|games)|s?bin)/(.*)')
includefile_regex = re.compile('\.(c|h)(pp|xx)?$', re.IGNORECASE)
develfile_regex = re.compile('\.(a|cmxa?|mli?)$')
buildconfigfile_regex = re.compile('(\.pc|/bin/.+-config)$')
@@ -10,7 +19,7 @@
# room for improvement with catching more -R, but also for false positives...
buildconfig_rpath_regex = re.compile('(?:-rpath|Wl,-R)\\b')
sofile_regex = re.compile('/lib(64)?/(.+/)?lib[^/]+\.so$')
-@@ -1158,7 +1159,7 @@ class FilesCheck(AbstractCheck.AbstractC
+@@ -1181,7 +1182,7 @@ class FilesCheck(AbstractCheck.AbstractCheck):
includefile_regex.search(f) or \
develfile_regex.search(f) or \
logrotate_regex.search(f)
@@ -19,7 +28,7 @@
printWarning(pkg, 'spurious-executable-perm', f)
elif f.startswith('/etc/') and f not in config_files and \
f not in ghost_files:
-@@ -1541,7 +1542,10 @@ included in your package.''',
+@@ -1534,7 +1535,10 @@ included in your package.''',
'spurious-executable-perm',
'''The file is installed with executable permissions, but was identified as one
that probably should not be executable. Verify if the executable bits are
++++++ extend-suse-conffiles-check.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] extend-suse-conffiles-check.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -1179,7 +1179,7 @@ class FilesCheck(AbstractCheck.AbstractC
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 0bb4b3d..fc44b50 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -1199,7 +1199,7 @@ class FilesCheck(AbstractCheck.AbstractCheck):
if nonexec_file and not docdir_examples_regex.search(f):
printWarning(pkg, 'spurious-executable-perm', f)
elif f.startswith('/etc/') and f not in config_files and \
++++++ filename-non-utf8-exception.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,10 +1,19 @@
-Index: Filter.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] filename-non-utf8-exception.diff
+
===================================================================
---- Filter.py.orig
-+++ Filter.py
+---
+ Filter.py | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/Filter.py b/Filter.py
+index 40fbf79..37ba038 100644
+--- a/Filter.py
++++ b/Filter.py
@@ -23,14 +23,8 @@ _diagnostic = list()
_badness_score = 0
- printed_messages = { "I": 0, "W": 0, "E": 0 }
+ printed_messages = {"I": 0, "W": 0, "E": 0}
-if sys.stdout.isatty():
- def __print(s):
@@ -17,5 +26,5 @@
+def __print(s):
+ print(s)
+
def printInfo(pkg, reason, *details):
- _print("I", pkg, reason, details)
++++++ fix-ghost-file-handling.diff ++++++
From: Ludwig Nussel
Date: Thu, 9 Apr 2015 12:01:29 +0200
Subject: [PATCH] fix ghost file handling
always take into consideration the missingok files when checking for
missing ghost files.
---
PostCheck.py | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/PostCheck.py b/PostCheck.py
index a87964a..aeb18d3 100644
--- a/PostCheck.py
+++ b/PostCheck.py
@@ -123,15 +123,15 @@ class PostCheck(AbstractCheck.AbstractCheck):
if ghost_files:
postin = pkg[rpm.RPMTAG_POSTIN]
prein = pkg[rpm.RPMTAG_PREIN]
- if not postin and not prein:
- printWarning(pkg, 'ghost-files-without-postin')
- else:
- for f in ghost_files:
- if (not postin or f not in postin) and \
- (not prein or f not in prein) and \
- f not in pkg.missingOkFiles():
- printWarning(pkg,
- 'postin-without-ghost-file-creation', f)
+ for f in ghost_files:
+ if f in pkg.missingOkFiles():
+ continue
+ if not postin and not prein:
+ printWarning(pkg, 'ghost-files-without-postin')
+ if (not postin or f not in postin) and \
+ (not prein or f not in prein):
+ printWarning(pkg,
+ 'postin-without-ghost-file-creation', f)
def check_aux(self, pkg, files, prog, script, tag, prereq):
if script:
++++++ invalid-filerequires.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] invalid-filerequires.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -421,6 +421,7 @@ invalid_version_regex = re.compile('([0-
+---
+ TagsCheck.py | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index 3c68d28..4141bbc 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -422,6 +422,7 @@ invalid_version_regex = re.compile('([0-9](?:rc|alpha|beta|pre).*)', re.IGNORECA
# () are here for grouping purpose in the regexp
forbidden_words_regex = re.compile('(' + Config.getOption('ForbiddenWords') + ')', re.IGNORECASE)
valid_buildhost_regex = re.compile(Config.getOption('ValidBuildHost'))
@@ -10,7 +19,7 @@
use_epoch = Config.getOption('UseEpoch', False)
use_utf8 = Config.getOption('UseUTF8', Config.USEUTF8_DEFAULT)
max_line_len = Config.getOption('MaxLineLength', 79)
-@@ -599,6 +600,9 @@ class TagsCheck(AbstractCheck.AbstractCh
+@@ -602,6 +603,9 @@ class TagsCheck(AbstractCheck.AbstractCheck):
if d[0].startswith('/usr/local/'):
printError(pkg, 'invalid-dependency', d[0])
@@ -20,7 +29,7 @@
if is_source:
if lib_devel_number_regex.search(d[0]):
printError(pkg, 'invalid-build-requires', d[0])
-@@ -1106,6 +1110,12 @@ explicit Requires: tags.''',
+@@ -1127,6 +1131,12 @@ unneeded explicit Requires: tags.''',
'''This package provides 2 times the same capacity. It should only provide it
once.''',
++++++ libtool-wrapper-check.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: BinariesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] libtool-wrapper-check.diff
+
===================================================================
---- BinariesCheck.py.orig
-+++ BinariesCheck.py
-@@ -313,8 +313,19 @@ class BinariesCheck(AbstractCheck.Abstra
+---
+ BinariesCheck.py | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/BinariesCheck.py b/BinariesCheck.py
+index c1c566d..b92c01e 100644
+--- a/BinariesCheck.py
++++ b/BinariesCheck.py
+@@ -316,8 +316,19 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
is_ar = 'current ar archive' in pkgfile.magic
is_ocaml_native = 'Objective caml native' in pkgfile.magic
is_lua_bytecode = 'Lua bytecode' in pkgfile.magic
@@ -22,7 +31,7 @@
if not is_binary:
if reference_regex.search(fname):
lines = pkg.grep(invalid_dir_ref_regex, fname)
-@@ -572,6 +583,15 @@ recompiled separately from the static li
+@@ -579,6 +590,15 @@ recompiled separately from the static libraries with the -fPIC option.
Another common mistake that causes this problem is linking with
``gcc -Wl,-shared'' instead of ``gcc -shared''.''',
++++++ move-ghost-file-check-to-TmpFilesCh.diff ++++++
From: Ludwig Nussel
Date: Wed, 20 May 2015 09:57:28 +0200
Subject: [PATCH] move ghost file check to TmpFilesCheck
files handled by the tmpfiles mechanism can be skipped by the normal
ghost check
---
PostCheck.py | 18 ------------------
TmpFilesCheck.py | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 18 deletions(-)
diff --git a/PostCheck.py b/PostCheck.py
index aeb18d3..53f2d0c 100644
--- a/PostCheck.py
+++ b/PostCheck.py
@@ -119,20 +119,6 @@ class PostCheck(AbstractCheck.AbstractCheck):
self.check_aux(
pkg, files, prog[idx], script[idx], tag[2], prereq)
- ghost_files = pkg.ghostFiles()
- if ghost_files:
- postin = pkg[rpm.RPMTAG_POSTIN]
- prein = pkg[rpm.RPMTAG_PREIN]
- for f in ghost_files:
- if f in pkg.missingOkFiles():
- continue
- if not postin and not prein:
- printWarning(pkg, 'ghost-files-without-postin')
- if (not postin or f not in postin) and \
- (not prein or f not in prein):
- printWarning(pkg,
- 'postin-without-ghost-file-creation', f)
-
def check_aux(self, pkg, files, prog, script, tag, prereq):
if script:
if prog:
@@ -201,10 +187,6 @@ class PostCheck(AbstractCheck.AbstractCheck):
check = PostCheck()
# Add information about checks
-addDetails(
-'postin-without-ghost-file-creation',
-'''A file tagged as ghost is not created during %prein nor during %postin.''',
-)
for scriptlet in map(lambda x: '%' + x, RPM_SCRIPTLETS):
addDetails(
'one-line-command-in-%s' % scriptlet,
diff --git a/TmpFilesCheck.py b/TmpFilesCheck.py
index 8c4db8d..06be7bb 100644
--- a/TmpFilesCheck.py
+++ b/TmpFilesCheck.py
@@ -14,6 +14,7 @@ from Filter import addDetails, printError, printWarning
import AbstractCheck
import Pkg
import stat
+import rpm
class TmpFilesCheck(AbstractCheck.AbstractCheck):
'''Check systemd created tmpfiles are included in filelist'''
@@ -26,6 +27,11 @@ class TmpFilesCheck(AbstractCheck.AbstractCheck):
if pkg.isSource():
return
+ # file names handled by systemd-tmpfiles
+ tmp_files = set()
+ postin = pkg[rpm.RPMTAG_POSTIN]
+ prein = pkg[rpm.RPMTAG_PREIN]
+
# see tmpfiles.d(5)
interesting_types = ('f', 'F', 'w', 'd', 'D', 'p', 'L', 'c', 'b')
@@ -35,6 +41,13 @@ class TmpFilesCheck(AbstractCheck.AbstractCheck):
if not stat.S_ISREG(pkgfile.mode):
printWarning(pkg, "tmpfile-not-regular-file", fn)
continue
+
+ pattern = re.compile(r'systemd-tmpfiles --create .*%s'%re.escape(fn))
+ if (not postin or not pattern.match(postin)) and \
+ (not prein or not pattern.match(prein)):
+ printWarning(pkg,
+ 'postin-without-tmpfile-creation', fn)
+
for line in open(pkgfile.path):
# skip comments
line = line.split('#')[0].split('\n')[0]
@@ -54,15 +67,37 @@ class TmpFilesCheck(AbstractCheck.AbstractCheck):
if not t in interesting_types:
continue
+ tmp_files.add(p)
+
if not p in pkg.files():
printWarning(pkg, "tmpfile-not-in-filelist", p)
continue
if not pkg.files()[p].is_ghost:
printWarning(pkg, "tmpfile-not-ghost", p)
+ # now check remaining ghost files that are not already
+ # handled by systemd-tmpfiles
+ ghost_files = set(pkg.ghostFiles()) - tmp_files
+ if ghost_files:
+ for f in ghost_files:
+ if f in pkg.missingOkFiles():
+ continue
+ if not postin and not prein:
+ printWarning(pkg, 'ghost-files-without-postin')
+ if (not postin or f not in postin) and \
+ (not prein or f not in prein):
+ printWarning(pkg,
+ 'postin-without-ghost-file-creation', f)
+
+
+
check = TmpFilesCheck()
addDetails(
+'postin-without-ghost-file-creation',
+'''A file tagged as ghost is not created during %prein nor during %postin.''',
+'postin-without-tmpfile-creation',
+'''Please use the %tmpfiles_create macro in %post for each of your tmpfiles.d files''',
'tmpfile-not-regular-file',
'''files in tmpfiles.d need to be regular files''', # otherwise we won't open it :-)
'tmpfile-not-in-filelist',
++++++ no-badness-return.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,18 @@
-Index: Filter.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] no-badness-return.diff
+
===================================================================
---- Filter.py.orig
-+++ Filter.py
-@@ -113,7 +113,7 @@ def printAllReasons():
+---
+ Filter.py | 2 +-
+ rpmlint | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Filter.py b/Filter.py
+index eaa8384..40fbf79 100644
+--- a/Filter.py
++++ b/Filter.py
+@@ -120,7 +120,7 @@ def printAllReasons():
if len(last_reason):
printDescriptions(last_reason)
last_reason = reason
@@ -11,11 +21,11 @@
if Config.info and len(last_reason):
printDescriptions(last_reason)
_diagnostic = list()
-Index: rpmlint
-===================================================================
---- rpmlint.orig
-+++ rpmlint
-@@ -214,7 +214,7 @@ def main():
+diff --git a/rpmlint b/rpmlint
+index aa37c3a..8853e79 100755
+--- a/rpmlint
++++ b/rpmlint
+@@ -202,7 +202,7 @@ def main():
% (packages_checked, specfiles_checked,
printed_messages["E"], printed_messages["W"]))
++++++ no-doc-for-lib.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] no-doc-for-lib.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -823,7 +823,7 @@ class FilesCheck(AbstractCheck.AbstractC
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 9532011..5929146 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -846,7 +846,7 @@ class FilesCheck(AbstractCheck.AbstractCheck):
debuginfo_srcs = False
debuginfo_debugs = False
++++++ noarch-lib64.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: BinariesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] noarch-lib64.diff
+
===================================================================
---- BinariesCheck.py.orig
-+++ BinariesCheck.py
-@@ -291,6 +291,7 @@ class BinariesCheck(AbstractCheck.Abstra
+---
+ BinariesCheck.py | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/BinariesCheck.py b/BinariesCheck.py
+index b92c01e..aff0f9f 100644
+--- a/BinariesCheck.py
++++ b/BinariesCheck.py
+@@ -294,6 +294,7 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
binary = False
binary_in_usr_lib = False
has_usr_lib_file = False
@@ -10,7 +19,7 @@
multi_pkg = False
srpm = pkg[rpm.RPMTAG_SOURCERPM]
-@@ -309,6 +310,10 @@ class BinariesCheck(AbstractCheck.Abstra
+@@ -312,6 +313,10 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
# only-non-binary-in-usr-lib false positives
binary_in_usr_lib = True
@@ -21,7 +30,7 @@
is_elf = 'ELF' in pkgfile.magic
is_ar = 'current ar archive' in pkgfile.magic
is_ocaml_native = 'Objective caml native' in pkgfile.magic
-@@ -534,9 +539,12 @@ class BinariesCheck(AbstractCheck.Abstra
+@@ -541,9 +546,12 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
if version and version != -1 and version not in pkg.name:
printError(pkg, 'incoherent-version-in-name', version)
@@ -35,7 +44,7 @@
if has_usr_lib_file and not binary_in_usr_lib:
printWarning(pkg, 'only-non-binary-in-usr-lib')
-@@ -560,6 +568,11 @@ FHS and the FSSTND forbid this.''',
+@@ -567,6 +575,11 @@ FHS and the FSSTND forbid this.''',
# 'non-sparc32-binary',
# '',
++++++ only-reg-files-are-scripts.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: InitScriptCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] only-reg-files-are-scripts.diff
+
===================================================================
---- InitScriptCheck.py.orig
-+++ InitScriptCheck.py
-@@ -18,7 +18,7 @@ from Filter import addDetails, printErro
+---
+ InitScriptCheck.py | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/InitScriptCheck.py b/InitScriptCheck.py
+index 5d851d4..fb53d93 100644
+--- a/InitScriptCheck.py
++++ b/InitScriptCheck.py
+@@ -18,7 +18,7 @@ from Filter import addDetails, printError, printWarning
import AbstractCheck
import Config
import Pkg
@@ -11,7 +20,7 @@
chkconfig_content_regex = re.compile('^\s*#\s*chkconfig:\s*([-0-9]+)\s+[-0-9]+\s+[-0-9]+')
subsys_regex = re.compile('/var/lock/subsys/([^/"\'\n\s;&|]+)', re.MULTILINE)
-@@ -64,6 +64,9 @@ class InitScriptCheck(AbstractCheck.Abst
+@@ -50,6 +50,9 @@ class InitScriptCheck(AbstractCheck.AbstractCheck):
not fname.startswith('/etc/rc.d/init.d/'):
continue
++++++ remove-expand-macros.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,14 +1,21 @@
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] remove-expand-macros.diff
+
commit 29e43a3e1676aa452f730a741d00ef4ac7baec96
Author: Ludwig Nussel
Date: Tue May 17 12:56:38 2011 +0200
remove-expand-macros.diff
+---
+ TagsCheck.py | 27 ---------------------------
+ 1 file changed, 27 deletions(-)
-Index: TagsCheck.py
-===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -431,15 +431,6 @@ so_dep_regex = re.compile(r'\.so(\.[0-9a
+diff --git a/TagsCheck.py b/TagsCheck.py
+index fc392e5..40ce77a 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -432,15 +432,6 @@ so_dep_regex = re.compile(r'\.so(\.[0-9a-zA-z]+)*(\([^)]*\))*$')
# we assume that no rpm packages existed before rpm itself existed...
oldest_changelog_timestamp = calendar.timegm(time.strptime("1995-01-01", "%Y-%m-%d"))
@@ -22,11 +29,11 @@
- private_so_paths.add(re.sub(r'/lib(?=/|$)', '/lib64', epath))
-
_enchant_checkers = {}
- def spell_check(pkg, str, fmt, lang, ignored):
-@@ -864,30 +855,12 @@ class TagsCheck(AbstractCheck.AbstractCh
- (apply(Pkg.formatRequire, obs),
- apply(Pkg.formatRequire, prov)))
+
+@@ -886,30 +877,12 @@ class TagsCheck(AbstractCheck.AbstractCheck):
+ (Pkg.formatRequire(*obs),
+ Pkg.formatRequire(*prov)))
- expfmt = rpm.expandMacro("%{_build_name_fmt}")
- if pkg.isSource():
@@ -41,8 +48,8 @@
for tag in ('Distribution', 'DistTag', 'ExcludeArch', 'ExcludeOS',
'Vendor'):
if hasattr(rpm, 'RPMTAG_%s' % tag.upper()):
- self._unexpanded_macros(
- pkg, tag, pkg[getattr(rpm, 'RPMTAG_%s' % tag.upper())])
+ self._unexpanded_macros(pkg, tag,
+ Pkg.b2s(pkg[getattr(rpm, 'RPMTAG_%s' % tag.upper())]))
- for path in private_so_paths:
- for fname, pkgfile in pkg.files().items():
@@ -50,8 +57,8 @@
- for prov in pkgfile.provides:
- if so_dep_regex.search(prov[0]):
- printWarning(pkg, "private-shared-object-provides",
-- fname, apply(Pkg.formatRequire, prov))
+- fname, Pkg.formatRequire(*prov))
-
-
def check_description(self, pkg, lang, ignored_words):
description = pkg.langtag(rpm.RPMTAG_DESCRIPTION, lang)
+ self._unexpanded_macros(pkg, '%%description -l %s' % lang, description)
++++++ remove-files-attr-not-set-check.diff ++++++
From: Ludwig Nussel
Date: Tue, 19 May 2015 13:24:34 +0200
Subject: [PATCH] remove files-attr-not-set check
%defattr(-,root,root) is default since rpm 4.4, released > 10
years go so it's about time to remove that check
---
SpecCheck.py | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/SpecCheck.py b/SpecCheck.py
index ace044c..4842bef 100644
--- a/SpecCheck.py
+++ b/SpecCheck.py
@@ -63,7 +63,6 @@ biarch_package_regex = re.compile(DEFAULT_BIARCH_PACKAGES)
hardcoded_lib_path_exceptions_regex = re.compile(Config.getOption('HardcodedLibPathExceptions', DEFAULT_HARDCODED_LIB_PATH_EXCEPTIONS))
use_utf8 = Config.getOption('UseUTF8', Config.USEUTF8_DEFAULT)
libdir_regex = re.compile('%{?_lib(?:dir)?\}?\\b')
-comment_or_empty_regex = re.compile('^\s*(#|$)')
defattr_regex = re.compile('^\s*%defattr\\b')
attr_regex = re.compile('^\s*%attr\\b')
suse_version_regex = re.compile('%suse_version\s*[<>=]+\s*(\d+)')
@@ -179,7 +178,6 @@ class SpecCheck(AbstractCheck.AbstractCheck):
patch_fuzz_override = False
indent_spaces = 0
indent_tabs = 0
- files_has_defattr = False
section = {}
# None == main package
current_package = None
@@ -230,9 +228,6 @@ class SpecCheck(AbstractCheck.AbstractCheck):
if section_marker:
- if current_section == 'files':
- files_has_defattr = False
-
if not is_lib_pkg and lib_package_regex.search(line):
is_lib_pkg = True
@@ -470,14 +465,6 @@ class SpecCheck(AbstractCheck.AbstractCheck):
if current_section == 'files':
- if not comment_or_empty_regex.search(line) and not \
- (ifarch_regex.search(line) or if_regex.search(line) or
- endif_regex.search(line)):
- if defattr_regex.search(line):
- files_has_defattr = True
- elif not (files_has_defattr or attr_regex.search(line)):
- printWarning(pkg, 'files-attr-not-set')
-
# TODO: check scriptlets for these too?
if package_noarch.get(current_package) or \
(current_package not in package_noarch and
++++++ rpmgroup-checks.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] rpmgroup-checks.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -722,6 +722,8 @@ class TagsCheck(AbstractCheck.AbstractCh
+---
+ TagsCheck.py | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index 9e00892..b1c4c7a 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -723,6 +723,8 @@ class TagsCheck(AbstractCheck.AbstractCheck):
self._unexpanded_macros(pkg, 'Group', group)
if not group:
printError(pkg, 'no-group-tag')
@@ -11,7 +20,7 @@
elif VALID_GROUPS and group not in VALID_GROUPS:
printWarning(pkg, 'non-standard-group', group)
-@@ -1034,6 +1036,10 @@ won't fool the specfile parser, and rebu
+@@ -1036,6 +1038,10 @@ won't fool the specfile parser, and rebuild the package.''',
'''There is no Group tag in your package. You have to specify a valid group
in your spec file using the Group tag.''',
++++++ rpmlint-1.5.tar.xz -> rpmlint-1.6.tar.xz ++++++
/work/SRC/openSUSE:Factory/rpmlint/rpmlint-1.5.tar.xz /work/SRC/openSUSE:Factory/.rpmlint.new/rpmlint-1.6.tar.xz differ: char 25, line 1
++++++ rpmlint-pkg-quoting.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,9 +1,18 @@
-Index: Pkg.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] rpmlint-pkg-quoting.diff
+
===================================================================
---- Pkg.py.orig
-+++ Pkg.py
-@@ -493,7 +493,7 @@ class Pkg:
- dir = self.dirname)
+---
+ Pkg.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Pkg.py b/Pkg.py
+index cfaa5a9..f7dc31d 100644
+--- a/Pkg.py
++++ b/Pkg.py
+@@ -536,7 +536,7 @@ class Pkg:
+ dir=self.dirname)
# TODO: better shell escaping or sequence based command invocation
command_str = \
- 'rpm2cpio "%s" | (cd "%s"; cpio -id); chmod -R +rX "%s"' % \
++++++ rpmlint-suse.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:30.000000000 +0200
@@ -1,8 +1,18 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:37 +0200
+Subject: [PATCH] rpmlint-suse.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -176,7 +176,7 @@ compr_regex = re.compile('\.(gz|z|Z|zip|
+---
+ FilesCheck.py | 2 +-
+ I18NCheck.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 1ad548b..1a70779 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -184,7 +184,7 @@ compr_regex = re.compile('\.(gz|z|Z|zip|bz2|lzma|xz)$')
absolute_regex = re.compile('^/([^/]+)')
absolute2_regex = re.compile('^/?([^/]+)')
points_regex = re.compile('^\.\./(.*)')
@@ -11,10 +21,10 @@
bin_regex = re.compile('^/(?:usr/(?:s?bin|games)|s?bin)/(.*)')
includefile_regex = re.compile('\.(c|h)(pp|xx)?$', re.IGNORECASE)
develfile_regex = re.compile('\.(a|cmxa?|mli?)$')
-Index: I18NCheck.py
-===================================================================
---- I18NCheck.py.orig
-+++ I18NCheck.py
+diff --git a/I18NCheck.py b/I18NCheck.py
+index 54b42cd..3bcf9d0 100644
+--- a/I18NCheck.py
++++ b/I18NCheck.py
@@ -30,7 +30,7 @@ INCORRECT_LOCALES = {
'en_UK': 'en_GB'}
++++++ rpmlint-tests-13.2+git20150310.00c9b55.tar.xz -> rpmlint-tests-13.2+git20150520.a374c88.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/run new/rpmlint-tests-13.2+git20150520.a374c88/run
--- old/rpmlint-tests-13.2+git20150310.00c9b55/run 2015-03-10 13:42:58.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/run 2015-05-19 14:21:45.000000000 +0200
@@ -50,6 +50,7 @@
rpmbuild --quiet --define "_rpmdir $PWD/output/packages" -bb $i
done
find output/packages -name '*.rpm' -and -not -name *.src.rpm > output/tocheck
+fail_names=()
while read f; do
name="`rpm --qf '%{name}\n' -qp $f`"
if [ "$name" != "${name%debugsource}" -o "$name" != "${name%debuginfo}" ]; then
@@ -71,7 +72,9 @@
echo '++++'
fi
: $((++failed))
+ fail_names+=($name)
fi
done < output/tocheck
echo "good: $good, failed: $failed"
+[ -z "$fail_names" ] || echo "failed tests: ${fail_names[@]}"
[ "$failed" = 0 ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost1.ref new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost1.ref
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost1.ref 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost1.ref 2015-05-19 14:21:45.000000000 +0200
@@ -0,0 +1,2 @@
+ghost1: W: ghost-files-without-postin
+1 packages and 0 specfiles checked; 0 errors, 1 warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost1.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost1.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost1.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost1.spec 2015-05-19 14:21:45.000000000 +0200
@@ -0,0 +1,35 @@
+Name: ghost1
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -D -m 644 /dev/null %buildroot/etc/foo
+
+%clean
+rm -rf %buildroot
+
+%files
+%defattr(-,root,root)
+%ghost %config /etc/foo
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost2.ref new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost2.ref
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost2.ref 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost2.ref 2015-05-19 14:21:45.000000000 +0200
@@ -0,0 +1 @@
+1 packages and 0 specfiles checked; 0 errors, 0 warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost2.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost2.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost2.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost2.spec 2015-05-19 14:21:45.000000000 +0200
@@ -0,0 +1,35 @@
+Name: ghost2
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -D -m 644 /dev/null %buildroot/etc/foo
+
+%clean
+rm -rf %buildroot
+
+%files
+%defattr(-,root,root)
+%ghost %config(missingok) /etc/foo
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost3.ref new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost3.ref
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost3.ref 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost3.ref 2015-05-19 14:21:45.000000000 +0200
@@ -0,0 +1 @@
+1 packages and 0 specfiles checked; 0 errors, 0 warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost3.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost3.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/ghost3.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/ghost3.spec 2015-05-19 14:21:45.000000000 +0200
@@ -0,0 +1,38 @@
+Name: ghost3
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -D -m 644 /dev/null %buildroot/etc/foo
+
+%clean
+rm -rf %buildroot
+
+%files
+%defattr(-,root,root)
+%ghost %config /etc/foo
+
+%post
+touch /etc/foo
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/permissions1.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/permissions1.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/permissions1.spec 2015-03-10 13:42:58.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/permissions1.spec 2015-04-21 10:58:31.000000000 +0200
@@ -23,7 +23,10 @@
install -d -m 755 %buildroot/etc/permissions.d
install -d -m 755 %buildroot/bin
echo "/bin/foo root:root 4755" > %buildroot/etc/permissions.d/test
-cp /bin/ls %buildroot/bin
+
+echo "int main() {}" > xx.c
+gcc -fno-PIE -O2 xx.c -o %buildroot/bin/ls
+strip %buildroot/bin/ls
cp /bin/su %buildroot/bin
%clean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/pie.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/pie.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/pie.spec 2015-03-10 13:42:58.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/pie.spec 2015-04-21 10:58:31.000000000 +0200
@@ -20,7 +20,10 @@
%build
%install
-install -D -m 755 /bin/ls %buildroot/usr/bin/telnet
+mkdir -p %buildroot/usr/bin/
+echo "int main() {}" >xx.c
+gcc -O2 -fno-PIE xx.c -o %buildroot/usr/bin/telnet
+strip %buildroot/usr/bin/telnet
install -D -m 755 /bin/mount %buildroot/bin/mount
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles1.ignore new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles1.ignore
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles1.ignore 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles1.ignore 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,3 @@
+#addFilter(" files-duplicate")
+#addFilter(" no-manual-page-for-binary ")
+#addFilter(" no-binary")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles1.ref new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles1.ref
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles1.ref 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles1.ref 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,3 @@
+tmpfiles1: W: tmpfile-not-in-filelist /run/foo
+tmpfiles1: W: postin-without-tmpfile-creation /usr/lib/tmpfiles.d/foo.conf
+1 packages and 0 specfiles checked; 0 errors, 2 warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles1.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles1.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles1.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles1.spec 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,38 @@
+Name: tmpfiles1
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -d -m 755 %buildroot/usr/lib/tmpfiles.d
+cat > %buildroot/usr/lib/tmpfiles.d/foo.conf << EOF
+d /run/foo 0755 root root 10d
+EOF
+
+%clean
+rm -rf %buildroot
+
+%files
+%defattr(-,root,root)
+/usr/lib/tmpfiles.d
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles2.ref new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles2.ref
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles2.ref 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles2.ref 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,2 @@
+tmpfiles2: W: tmpfile-not-regular-file /usr/lib/tmpfiles.d/foo.conf
+1 packages and 0 specfiles checked; 0 errors, 1 warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles2.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles2.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles2.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles2.spec 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,36 @@
+Name: tmpfiles2
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -d -m 755 %buildroot/usr/lib/tmpfiles.d
+mkdir %buildroot/usr/lib/tmpfiles.d/foo.conf
+
+%clean
+rm -rf %buildroot
+
+%files
+%defattr(-,root,root)
+/usr/lib/tmpfiles.d
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles3.ref new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles3.ref
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles3.ref 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles3.ref 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,5 @@
+tmpfiles3: W: zero-length /var/log/foo
+tmpfiles3: W: tmpfile-not-ghost /var/log/foo
+tmpfiles3: W: postin-without-tmpfile-creation /usr/lib/tmpfiles.d/foo.conf
+tmpfiles3: W: non-ghost-file /var/log/foo
+1 packages and 0 specfiles checked; 0 errors, 4 warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles3.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles3.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles3.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles3.spec 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,41 @@
+Name: tmpfiles3
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -d -m 755 %buildroot/usr/lib/tmpfiles.d
+install -d -m 755 %buildroot/var/log
+> %buildroot/var/log/foo
+cat > %buildroot/usr/lib/tmpfiles.d/foo.conf << EOF
+d /var/log/foo 0755 root root 10d
+EOF
+
+%clean
+rm -rf %buildroot
+
+%files
+%defattr(-,root,root)
+/usr/lib/tmpfiles.d
+/var/log/foo
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles4.ref new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles4.ref
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles4.ref 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles4.ref 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,2 @@
+tmpfiles4: W: postin-without-tmpfile-creation /usr/lib/tmpfiles.d/foo.conf
+1 packages and 0 specfiles checked; 0 errors, 1 warnings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles4.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles4.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles4.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles4.spec 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,41 @@
+Name: tmpfiles4
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -d -m 755 %buildroot/usr/lib/tmpfiles.d
+install -d -m 755 %buildroot/var/log
+> %buildroot/var/log/foo
+cat > %buildroot/usr/lib/tmpfiles.d/foo.conf << EOF
+d /var/log/foo 0755 root root 10d
+EOF
+
+%clean
+rm -rf %buildroot
+
+%files
+%defattr(-,root,root)
+/usr/lib/tmpfiles.d
+%ghost /var/log/foo
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles5.spec new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles5.spec
--- old/rpmlint-tests-13.2+git20150310.00c9b55/tests/tmpfiles5.spec 1970-01-01 01:00:00.000000000 +0100
+++ new/rpmlint-tests-13.2+git20150520.a374c88/tests/tmpfiles5.spec 2015-05-20 10:02:15.000000000 +0200
@@ -0,0 +1,44 @@
+Name: tmpfiles4
+Version: 0
+Release: 0
+Group: Development/Tools/Building
+Summary: Lorem ipsum
+License: GPL-2.0+
+BuildRoot: %_tmppath/%name-%version-build
+Url: http://www.opensuse.org/
+BuildArch: noarch
+
+%description
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
+eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim
+ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
+aliquid ex ea commodi consequat. Quis aute iure reprehenderit in
+voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+Excepteur sint obcaecat cupiditat non proident, sunt in culpa qui
+officia deserunt mollit anim id est laborum.
+
+%prep
+%build
+
+%install
+install -d -m 755 %buildroot/usr/lib/tmpfiles.d
+install -d -m 755 %buildroot/var/log
+> %buildroot/var/log/foo
+cat > %buildroot/usr/lib/tmpfiles.d/foo.conf << EOF
+d /var/log/foo 0755 root root 10d
+EOF
+
+%clean
+rm -rf %buildroot
+
+%post
+%tmpfiles_create /usr/lib/tmpfiles.d/foo.conf
+
+%files
+%defattr(-,root,root)
+/usr/lib/tmpfiles.d
+%ghost /var/log/foo
+
+%changelog
+* Mon Apr 18 2011 lnussel@suse.de
+- dummy
++++++ save-content-to-an-array.diff ++++++
From: Ludwig Nussel
Date: Fri, 10 Apr 2015 16:22:26 +0200
Subject: [PATCH] save content to an array
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
due to the following join the generator would be at the end so iterating
through lines wouldn't work
Modified-by: Ville Skyttä (pep8 fixes)
---
InitScriptCheck.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/InitScriptCheck.py b/InitScriptCheck.py
index 1a58562..aab1d2d 100644
--- a/InitScriptCheck.py
+++ b/InitScriptCheck.py
@@ -103,7 +103,7 @@ class InitScriptCheck(AbstractCheck.AbstractCheck):
# check common error in file content
content = None
try:
- content = Pkg.readlines(pkgfile.path)
+ content = [x for x in Pkg.readlines(pkgfile.path)]
except Exception:
e = sys.exc_info()[1]
printWarning(pkg, 'read-error', e)
++++++ script-interpreter-only-for-exec-scripts.diff -> script-interpreter-only-for-exec-sc.diff ++++++
--- /work/SRC/openSUSE:Factory/rpmlint/script-interpreter-only-for-exec-scripts.diff 2013-06-29 14:51:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.rpmlint.new/script-interpreter-only-for-exec-sc.diff 2015-05-23 13:19:27.000000000 +0200
@@ -1,10 +1,19 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] script-interpreter-only-for-exec-scripts.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -1219,7 +1219,7 @@ class FilesCheck(AbstractCheck.AbstractC
- elif interpreter or mode & 0111 != 0 or \
- script_regex.search(f):
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 5929146..80148c4 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -1242,7 +1242,7 @@ class FilesCheck(AbstractCheck.AbstractCheck):
+ # ...but executed ones should
+ elif interpreter or mode_is_exec or script_regex.search(f):
if interpreter:
- if not interpreter_regex.search(interpreter):
+ if mode & 0111 != 0 and not interpreter_regex.search(interpreter):
++++++ selfconflicts-provide.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:30.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] selfconflicts-provide.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -827,6 +827,7 @@ class TagsCheck(AbstractCheck.AbstractCh
+---
+ TagsCheck.py | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index 6528d5b..18cbb6e 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -829,6 +829,7 @@ class TagsCheck(AbstractCheck.AbstractCheck):
obs_names = [x[0] for x in pkg.obsoletes()]
prov_names = [x[0].split(':/')[0] for x in pkg.provides()]
@@ -10,7 +19,7 @@
for o in (x for x in obs_names if x not in prov_names):
printWarning(pkg, 'obsolete-not-provided', o)
-@@ -838,6 +839,8 @@ class TagsCheck(AbstractCheck.AbstractCh
+@@ -840,6 +841,8 @@ class TagsCheck(AbstractCheck.AbstractCheck):
# https://bugzilla.redhat.com/460872
useless_provides = []
for p in prov_names:
@@ -19,7 +28,7 @@
if prov_names.count(p) != 1 and p not in useless_provides:
useless_provides.append(p)
for p in useless_provides:
-@@ -978,6 +981,10 @@ the Release tag.''',
+@@ -999,6 +1002,10 @@ the Release tag.''',
'''There is no Name tag in your package. You have to specify a name using the
Name tag.''',
++++++ sourced-dirs.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,9 +1,18 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] sourced-dirs.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -634,7 +634,7 @@ manifest_perl_regex = re.compile('^/usr/
- shebang_regex = re.compile('^#!\s*(\S+)')
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 80148c4..c485125 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -642,7 +642,7 @@ manifest_perl_regex = re.compile('^/usr/share/doc/perl-.*/MANIFEST(\.SKIP)?$')
+ shebang_regex = re.compile(b'^#!\s*(\S+)')
interpreter_regex = re.compile('^/(usr/)?(s?bin|games|libexec(/.+)?|(lib(64)?|share)/.+)/[^/]+$')
script_regex = re.compile('^/((usr/)?s?bin|etc/(rc\.d/init\.d|X11/xinit\.d|cron\.(hourly|daily|monthly|weekly)))/')
-sourced_script_regex = re.compile('^/etc/(bash_completion\.d|profile\.d)/')
++++++ stricter-interpreter-check.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] stricter-interpreter-check.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -1245,7 +1245,8 @@ class FilesCheck(AbstractCheck.AbstractC
+---
+ FilesCheck.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 14cfca3..1b68dd5 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -1265,7 +1265,8 @@ class FilesCheck(AbstractCheck.AbstractCheck):
f.endswith('.la')):
printError(pkg, 'script-without-shebang', f)
@@ -11,4 +20,4 @@
+ interpreter and interpreter.startswith("/"):
printError(pkg, 'non-executable-script', f,
oct(perm), interpreter)
- if '\r' in chunk:
+ if b'\r' in chunk:
++++++ suse-binarieschecks.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,12 +1,17 @@
-Index: BinariesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] suse-binarieschecks.diff
+
===================================================================
---- BinariesCheck.py.orig
-+++ BinariesCheck.py
-@@ -9,13 +9,15 @@
-
- import re
- import stat
-+import os
+---
+ BinariesCheck.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 56 insertions(+), 2 deletions(-)
+
+diff --git a/BinariesCheck.py b/BinariesCheck.py
+index 4634eed..a74d3e3 100644
+--- a/BinariesCheck.py
++++ b/BinariesCheck.py
+@@ -14,7 +14,7 @@ import sys
import rpm
@@ -15,11 +20,7 @@
import AbstractCheck
import Config
import Pkg
-+import os
-
-
- DEFAULT_SYSTEM_LIB_PATHS = (
-@@ -42,6 +44,9 @@ class BinaryInfo:
+@@ -46,6 +46,9 @@ class BinaryInfo:
unused_regex = re.compile('^\s+(\S+)')
exit_call_regex = create_regexp_call('_?exit')
fork_call_regex = create_regexp_call('fork')
@@ -27,9 +28,9 @@
+ symtab_regex=re.compile('^\s+\[\s*\d+\]\s+\.symtab\s+')
+ gethostbyname_call_regex = re.compile('\s+FUNC\s+.*?\s+(gethostbyname(?:@\S+)?)(?:\s|$)')
# regexp for setgid setegid setresgid set(?:res|e)?gid
- setgid_call_regex = create_regexp_call(['setresgid','setegid','setgid'])
- setuid_call_regex = create_regexp_call(['setresuid','seteuid','setuid'])
-@@ -62,7 +67,10 @@ class BinaryInfo:
+ setgid_call_regex = create_regexp_call(['setresgid', 'setegid', 'setgid'])
+ setuid_call_regex = create_regexp_call(['setresuid', 'seteuid', 'setuid'])
+@@ -66,7 +69,10 @@ class BinaryInfo:
self.stack = False
self.exec_stack = False
self.exit_calls = []
@@ -40,7 +41,7 @@
self.tail = ''
self.setgid = False
-@@ -131,6 +139,11 @@ class BinaryInfo:
+@@ -135,6 +141,11 @@ class BinaryInfo:
self.exec_stack = True
continue
@@ -52,7 +53,7 @@
if is_shlib:
r = BinaryInfo.exit_call_regex.search(l)
if r:
-@@ -141,6 +154,14 @@ class BinaryInfo:
+@@ -145,6 +156,14 @@ class BinaryInfo:
fork_called = True
continue
@@ -67,7 +68,7 @@
if self.non_pic:
self.non_pic = 'TEXTREL' in res[1]
-@@ -330,13 +351,26 @@ class BinariesCheck(AbstractCheck.Abstra
+@@ -339,13 +358,26 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
continue
# stripped ?
@@ -95,7 +96,7 @@
if is_shlib:
has_lib = True
-@@ -386,6 +420,10 @@ class BinariesCheck(AbstractCheck.Abstra
+@@ -396,6 +428,10 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
for ec in bin_info.exit_calls:
printWarning(pkg, 'shared-lib-calls-exit', fname, ec)
@@ -106,7 +107,7 @@
# rpath ?
if bin_info.rpath:
for p in bin_info.rpath:
-@@ -590,6 +628,14 @@ with the intended shared libraries only.
+@@ -603,6 +639,14 @@ with the intended shared libraries only.''',
'ldd-failed',
'''Executing ldd on this file failed, all checks could not be run.''',
@@ -121,7 +122,7 @@
'executable-stack',
'''The binary declares the stack as executable. Executable stack is usually an
error as it is only needed if the code contains GCC trampolines or similar
-@@ -602,6 +648,10 @@ don\'t define a proper .note.GNU-stack s
+@@ -615,6 +659,10 @@ don\'t define a proper .note.GNU-stack section.''',
make the stack executable. Usual suspects include use of a non-GNU linker or
an old GNU linker version.''',
@@ -132,7 +133,7 @@
'shared-lib-calls-exit',
'''This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
-@@ -620,6 +670,12 @@ that use prelink, make sure that prelink
+@@ -633,6 +681,12 @@ that use prelink, make sure that prelink does not strip it either, usually by
placing a blacklist file in /etc/prelink.conf.d. For more information, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256900#49''',
++++++ suse-check-optional-dependencies.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] suse-check-optional-dependencies.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -908,6 +908,16 @@ class FilesCheck(AbstractCheck.AbstractC
+---
+ FilesCheck.py | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index ae9c364..7d2b92f 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -926,6 +926,16 @@ class FilesCheck(AbstractCheck.AbstractCheck):
if res.group(1) != pkg.name:
printError(pkg, 'incoherent-logrotate-file', f)
@@ -19,7 +28,7 @@
if link != '':
ext = compr_regex.search(link)
if ext:
-@@ -1730,6 +1740,24 @@ consequences), or other compiler flags w
+@@ -1717,6 +1727,24 @@ consequences), or other compiler flags which result in rpmbuild's debuginfo
extraction not working as expected. Verify that the binaries are not
unexpectedly stripped and that the intended compiler flags are used.''',
++++++ suse-checks.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,7 +1,16 @@
-Index: Config.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:37 +0200
+Subject: [PATCH] suse-checks.diff
+
===================================================================
---- Config.py.orig
-+++ Config.py
+---
+ Config.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/Config.py b/Config.py
+index ac3c5ea..f27607c 100644
+--- a/Config.py
++++ b/Config.py
@@ -16,14 +16,13 @@ try:
except ImportError:
__version__ = 'devel'
++++++ suse-filesystem.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] suse-filesystem.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -103,24 +103,415 @@ STANDARD_DIRS = (
+---
+ FilesCheck.py | 454 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 437 insertions(+), 17 deletions(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 1a70779..9532011 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -102,24 +102,415 @@ STANDARD_DIRS = (
'/usr/local/man/mann',
'/usr/local/sbin',
'/usr/local/share',
@@ -429,7 +438,7 @@
'/usr/share/man',
'/usr/share/man/man1',
'/usr/share/man/man2',
-@@ -132,28 +523,57 @@ STANDARD_DIRS = (
+@@ -131,25 +522,54 @@ STANDARD_DIRS = (
'/usr/share/man/man8',
'/usr/share/man/man9',
'/usr/share/man/mann',
@@ -473,14 +482,11 @@
+ '/var/lib/nobody',
+ '/var/lib/pam_devperm',
+ '/var/lib/wwwrun',
- '/var/lock',
- '/var/lock/subsys',
'/var/log',
'/var/mail',
- '/var/nis',
'/var/opt',
- '/var/preserve',
- '/var/run',
'/var/spool',
+ '/var/spool/clientmqueue',
+ '/var/spool/locks',
++++++ suse-filter-exception.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: Config.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] suse-filter-exception.diff
+
===================================================================
---- Config.py.orig
-+++ Config.py
-@@ -102,11 +102,23 @@ def getOption(name, default = ""):
+---
+ Config.py | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ 1 file changed, 54 insertions(+), 7 deletions(-)
+
+diff --git a/Config.py b/Config.py
+index f27607c..b4e19cc 100644
+--- a/Config.py
++++ b/Config.py
+@@ -111,12 +111,23 @@ def getOption(name, default=""):
_filters = []
_filters_re = None
@@ -11,7 +20,7 @@
+
+_filters_except = []
+_filters_except_re = None
-+
+
def addFilter(s):
global _filters_re
+ global _filters_except
@@ -26,10 +35,10 @@
- _filters.append(s)
- _filters_re = None
+
def removeFilter(s):
- global _filters_re
-@@ -121,19 +133,38 @@ def removeFilter(s):
- _scoring = {}
+@@ -133,8 +144,13 @@ _scoring = {}
+
def setBadness(s, score):
+ global _scoring
@@ -39,11 +48,11 @@
+ global _filters_except
+
+ _filters_except.append(s)
-+
+
def badness(s):
return _scoring.get(s, 0)
+@@ -144,11 +160,24 @@ _non_named_group_re = re.compile('[^\\](\()[^:]')
- _non_named_group_re = re.compile('[^\\](\()[^:]')
def isFiltered(s):
global _filters_re
+ global _filters_except
@@ -51,7 +60,7 @@
+ global _filters_non_except
+ global _filters_non_except_re
-- if _filters_re == None:
+- if _filters_re is None:
- # no filter
- if len(_filters) == 0:
- return False
@@ -71,8 +80,8 @@
_filters_re = '(?:' + _filters[0] + ')'
for idx in range(1, len(_filters)):
-@@ -145,9 +176,27 @@ def isFiltered(s):
- _filters_re = _filters_re + '|(?:' + _filters[idx] +')'
+@@ -160,9 +189,27 @@ def isFiltered(s):
+ _filters_re = _filters_re + '|(?:' + _filters[idx] + ')'
_filters_re = re.compile(_filters_re)
+ if _filters_except_re == None and len(_filters_except):
++++++ suse-filter-more-verbose.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,7 +1,16 @@
-Index: Config.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] suse-filter-more-verbose.diff
+
===================================================================
---- Config.py.orig
-+++ Config.py
+---
+ Config.py | 25 +++++++++++++++++++++++--
+ 1 file changed, 23 insertions(+), 2 deletions(-)
+
+diff --git a/Config.py b/Config.py
+index b4e19cc..c29db24 100644
+--- a/Config.py
++++ b/Config.py
@@ -10,6 +10,7 @@
import locale
import os.path
@@ -10,7 +19,7 @@
try:
from __version__ import __version__
-@@ -162,7 +163,17 @@ def isFiltered(s):
+@@ -175,7 +176,17 @@ def isFiltered(s):
if '(' in _filters_non_except[idx]:
_non_named_group_re.subn('(:?', _filters_non_except[idx])
_filters_non_except_re = _filters_non_except_re + '|(?:' + _filters_non_except[idx] +')'
@@ -29,10 +38,10 @@
if _filters_re == None and len(_filters):
_filters_re = '(?:' + _filters[0] + ')'
-@@ -174,7 +185,17 @@ def isFiltered(s):
+@@ -187,7 +198,17 @@ def isFiltered(s):
if '(' in _filters[idx]:
_non_named_group_re.subn('(:?', _filters[idx])
- _filters_re = _filters_re + '|(?:' + _filters[idx] +')'
+ _filters_re = _filters_re + '|(?:' + _filters[idx] + ')'
- _filters_re = re.compile(_filters_re)
+ try:
+ _filters_re = re.compile(_filters_re)
++++++ suse-g-ir-chech.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] suse-g-ir-chech.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -599,7 +599,7 @@ points_regex = re.compile('^\.\./(.*)')
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 1b68dd5..0bb4b3d 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -607,7 +607,7 @@ points_regex = re.compile('^\.\./(.*)')
doc_regex = re.compile('^/usr(/share|/X11R6)?/(doc|man|info)/|^/opt/kde3/share/doc|^/usr/share/gnome/help')
bin_regex = re.compile('^/(?:usr/(?:s?bin|games)|s?bin)/(.*)')
includefile_regex = re.compile('\.(c|h)(pp|xx)?$', re.IGNORECASE)
++++++ suse-ignore-specfile-errors.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,10 +1,19 @@
-Index: SpecCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] suse-ignore-specfile-errors.diff
+
===================================================================
---- SpecCheck.py.orig
-+++ SpecCheck.py
-@@ -537,9 +537,8 @@ class SpecCheck(AbstractCheck.AbstractCh
- printWarning(pkg, "patch-not-applied", "Patch%d:" % pnum,
- pfile)
+---
+ SpecCheck.py | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/SpecCheck.py b/SpecCheck.py
+index 60e946b..ace044c 100644
+--- a/SpecCheck.py
++++ b/SpecCheck.py
+@@ -562,9 +562,8 @@ class SpecCheck(AbstractCheck.AbstractCheck):
+ printWarning(pkg, "patch-not-applied",
+ "Patch%d:" % pnum, pfile)
- # Rest of the checks require a real spec file
- if not self._spec_file:
++++++ suse-manpages-for-rc-scripts.diff ++++++
From: Some One
Date: Thu, 9 Apr 2015 14:55:40 +0200
Subject: [PATCH] suse-manpages-for-rc-scripts
===================================================================
---
FilesCheck.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/FilesCheck.py b/FilesCheck.py
index 214ac76..5342871 100644
--- a/FilesCheck.py
+++ b/FilesCheck.py
@@ -1426,7 +1426,7 @@ class FilesCheck(AbstractCheck.AbstractCheck):
for exe, paths in bindir_exes.items():
if len(paths) > 1:
printWarning(pkg, "duplicate-executable", exe, paths)
- if exe not in man_basenames:
+ if exe not in man_basenames and not exe.startswith("rc") and len(paths) is not 0:
printWarning(pkg, "no-manual-page-for-binary", exe)
# Create an object to enable the auto registration of the test
++++++ suse-no-run-ldconfig.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,9 +1,18 @@
-Index: SpecCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] suse-no-run-ldconfig.diff
+
===================================================================
---- SpecCheck.py.orig
-+++ SpecCheck.py
-@@ -424,6 +424,10 @@ class SpecCheck(AbstractCheck.AbstractCh
- printWarning(pkg, 'comparison-operator-in-deptoken',
+---
+ SpecCheck.py | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/SpecCheck.py b/SpecCheck.py
+index 63897f2..12b6f2b 100644
+--- a/SpecCheck.py
++++ b/SpecCheck.py
+@@ -448,6 +448,10 @@ class SpecCheck(AbstractCheck.AbstractCheck):
+ 'comparison-operator-in-deptoken',
conf)
+ if current_section in ('post', 'postun'):
@@ -13,7 +22,7 @@
if current_section == 'changelog':
for match in AbstractCheck.macro_regex.findall(line):
res = re.match('%+', match)
-@@ -748,6 +752,14 @@ may break short circuit builds.''',
+@@ -773,6 +777,14 @@ may break short circuit builds.''',
'''Make check or other automated regression test should be run in %check, as
they can be disabled with a rpm macro for short circuiting purposes.''',
++++++ suse-pkg-config-check.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] suse-pkg-config-check.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -415,6 +415,7 @@ lib_devel_number_regex = re.compile('^li
+---
+ TagsCheck.py | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index d49239f..0a56b7d 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -416,6 +416,7 @@ lib_devel_number_regex = re.compile('^lib(.*?)([0-9.]+)(_[0-9.]+)?-devel')
invalid_url_regex = re.compile(Config.getOption('InvalidURL'), re.IGNORECASE)
lib_package_regex = re.compile('(?:^(?:compat-)?lib.*?(\.so.*)?|libs?[\d-]*)$', re.IGNORECASE)
leading_space_regex = re.compile('^\s+')
@@ -10,7 +19,7 @@
license_regex = re.compile('\(([^)]+)\)|\s(?:and|or)\s')
invalid_version_regex = re.compile('([0-9](?:rc|alpha|beta|pre).*)', re.IGNORECASE)
# () are here for grouping purpose in the regexp
-@@ -626,10 +627,12 @@ class TagsCheck(AbstractCheck.AbstractCh
+@@ -634,10 +635,12 @@ class TagsCheck(AbstractCheck.AbstractCheck):
base = is_devel.group(1)
dep = None
has_so = False
@@ -24,7 +33,7 @@
if has_so:
base_or_libs = base + '/' + base + '-libs/lib' + base
# try to match *%_isa as well (e.g. "(x86-64)", "(x86-32)")
-@@ -666,6 +669,15 @@ class TagsCheck(AbstractCheck.AbstractCh
+@@ -674,6 +677,15 @@ class TagsCheck(AbstractCheck.AbstractCheck):
if prov not in (x[0] for x in pkg.provides()):
printWarning(pkg, 'no-provides', prov)
@@ -40,7 +49,7 @@
# List of words to ignore in spell check
ignored_words = set()
for pf in pkg.files():
-@@ -1099,6 +1111,11 @@ once.''',
+@@ -1112,6 +1124,11 @@ once.''',
'no-url-tag',
'''The URL tag is missing. Please add a http or ftp link to the project location.''',
++++++ suse-python-abi-check.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: FilesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] suse-python-abi-check.diff
+
===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -1110,8 +1110,11 @@ class FilesCheck(AbstractCheck.AbstractC
+---
+ FilesCheck.py | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index acb379f..214ac76 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -1129,8 +1129,11 @@ class FilesCheck(AbstractCheck.AbstractCheck):
if res and not (pkg.check_versioned_dep('python-base',
res.group(1)) or
pkg.check_versioned_dep('python',
++++++ suse-python3-naming-policy.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,7 +1,16 @@
-Index: NamingPolicyCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:37 +0200
+Subject: [PATCH] suse-python3-naming-policy.diff
+
===================================================================
---- NamingPolicyCheck.py.orig
-+++ NamingPolicyCheck.py
+---
+ NamingPolicyCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/NamingPolicyCheck.py b/NamingPolicyCheck.py
+index 231b936..96fb91d 100644
+--- a/NamingPolicyCheck.py
++++ b/NamingPolicyCheck.py
@@ -90,7 +90,7 @@ check = NamingPolicyCheck()
++++++ suse-shlib-devel-dependency.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] suse-shlib-devel-dependency.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -639,10 +639,10 @@ class TagsCheck(AbstractCheck.AbstractCh
+---
+ TagsCheck.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index 18cbb6e..fc392e5 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -642,10 +642,10 @@ class TagsCheck(AbstractCheck.AbstractCheck):
if pkg_config_regex.match(fname) and fname.endswith('.pc'):
has_pc = True
if has_so:
++++++ suse-speccheck-utf8.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: SpecCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] suse-speccheck-utf8.diff
+
===================================================================
---- SpecCheck.py.orig
-+++ SpecCheck.py
-@@ -625,8 +625,8 @@ SPEC file to build a valid RPM package.'
+---
+ SpecCheck.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/SpecCheck.py b/SpecCheck.py
+index d0d381a..60e946b 100644
+--- a/SpecCheck.py
++++ b/SpecCheck.py
+@@ -650,8 +650,8 @@ SPEC file to build a valid RPM package.''',
("Name:" tag). Either rename your package or the specfile.''',
'non-utf8-spec-file',
++++++ suse-sysv-init-checks.diff ++++++
From: Ludwig Nussel
Date: Fri, 10 Apr 2015 14:38:22 +0200
Subject: [PATCH] suse sysv init checks
we don't use chkconfig but have different macros
---
InitScriptCheck.py | 44 ++++++++++++++++++++++++++++++--------------
1 file changed, 30 insertions(+), 14 deletions(-)
diff --git a/InitScriptCheck.py b/InitScriptCheck.py
index fb53d93..1a58562 100644
--- a/InitScriptCheck.py
+++ b/InitScriptCheck.py
@@ -36,6 +36,10 @@ LSB_KEYWORDS = ('Provides', 'Required-Start', 'Required-Stop', 'Should-Start',
RECOMMENDED_LSB_KEYWORDS = ('Provides', 'Required-Start', 'Required-Stop',
'Default-Stop', 'Short-Description')
+suse = True
+stop_on_removal_regex=re.compile('bin/systemctl stop \$service >/dev/null')
+restart_on_update_regex=re.compile('bin/systemctl try-restart \$service >/dev/null')
+insserv_cleanup_regex=re.compile('^\s*/sbin/insserv /etc/init.d$', re.MULTILINE)
class InitScriptCheck(AbstractCheck.AbstractCheck):
@@ -44,6 +48,12 @@ class InitScriptCheck(AbstractCheck.AbstractCheck):
def check_binary(self, pkg):
initscript_list = []
+
+ # check chkconfig call in %post and %preun
+ postin = Pkg.b2s(pkg[rpm.RPMTAG_POSTIN]) or pkg.scriptprog(rpm.RPMTAG_POSTINPROG)
+ preun = Pkg.b2s(pkg[rpm.RPMTAG_PREUN]) or pkg.scriptprog(rpm.RPMTAG_PREUNPROG)
+ postun = Pkg.b2s(pkg[rpm.RPMTAG_POSTUN]) or pkg.scriptprog(rpm.RPMTAG_POSTUNPROG)
+
for fname, pkgfile in pkg.files().items():
if not fname.startswith('/etc/init.d/') and \
@@ -61,20 +71,26 @@ class InitScriptCheck(AbstractCheck.AbstractCheck):
if "." in basename:
printError(pkg, 'init-script-name-with-dot', fname)
- # check chkconfig call in %post and %preun
- postin = Pkg.b2s(pkg[rpm.RPMTAG_POSTIN]) or \
- pkg.scriptprog(rpm.RPMTAG_POSTINPROG)
- if not postin:
- printError(pkg, 'init-script-without-chkconfig-postin', fname)
- elif not chkconfig_regex.search(postin):
- printError(pkg, 'postin-without-chkconfig', fname)
-
- preun = Pkg.b2s(pkg[rpm.RPMTAG_PREUN]) or \
- pkg.scriptprog(rpm.RPMTAG_PREUNPROG)
- if not preun:
- printError(pkg, 'init-script-without-chkconfig-preun', fname)
- elif not chkconfig_regex.search(preun):
- printError(pkg, 'preun-without-chkconfig', fname)
+ if not suse:
+ if not postin:
+ printError(pkg, 'init-script-without-chkconfig-postin', fname)
+ elif not chkconfig_regex.search(postin):
+ printError(pkg, 'postin-without-chkconfig', fname)
+
+ if not preun:
+ printError(pkg, 'init-script-without-chkconfig-preun', fname)
+ elif not chkconfig_regex.search(preun):
+ printError(pkg, 'preun-without-chkconfig', fname)
+
+ else:
+ if not preun or not stop_on_removal_regex.search(preun):
+ printError(pkg, 'init-script-without-%stop_on_removal-preun', fname)
+
+ if not postun or not restart_on_update_regex.search(postun):
+ printError(pkg, 'init-script-without-%restart_on_update-postun', fname)
+
+ if not postun or not insserv_cleanup_regex.search(postun):
+ printError(pkg, 'init-script-without-%insserv_cleanup-postun', fname)
status_found = False
reload_found = False
++++++ suse-url-check.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,17 +1,26 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:37 +0200
+Subject: [PATCH] suse-url-check.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -781,7 +781,7 @@ class TagsCheck(AbstractCheck.AbstractCh
+---
+ TagsCheck.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index fa38a07..d49239f 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -794,7 +794,7 @@ class TagsCheck(AbstractCheck.AbstractCheck):
if not valid_license:
self._unexpanded_macros(pkg, 'License', rpm_license)
- for tag in ('URL', 'DistURL', 'BugURL'):
+ for tag in ('URL', 'BugURL'):
if hasattr(rpm, 'RPMTAG_%s' % tag.upper()):
- url = pkg[getattr(rpm, 'RPMTAG_%s' % tag.upper())]
- self._unexpanded_macros(pkg, tag, url, is_url = True)
-@@ -1097,7 +1097,7 @@ once.''',
+ url = Pkg.b2s(pkg[getattr(rpm, 'RPMTAG_%s' % tag.upper())])
+ self._unexpanded_macros(pkg, tag, url, is_url=True)
+@@ -1110,7 +1110,7 @@ once.''',
'''This rpm requires a specific release of another package.''',
'no-url-tag',
++++++ suse-version.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,16 +1,25 @@
-Index: SpecCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:37 +0200
+Subject: [PATCH] suse-version.diff
+
===================================================================
---- SpecCheck.py.orig
-+++ SpecCheck.py
-@@ -66,6 +66,7 @@ libdir_regex = re.compile('%{?_lib(?:dir
+---
+ SpecCheck.py | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/SpecCheck.py b/SpecCheck.py
+index 2b24b43..9ea5c6e 100644
+--- a/SpecCheck.py
++++ b/SpecCheck.py
+@@ -66,6 +66,7 @@ libdir_regex = re.compile('%{?_lib(?:dir)?\}?\\b')
comment_or_empty_regex = re.compile('^\s*(#|$)')
defattr_regex = re.compile('^\s*%defattr\\b')
attr_regex = re.compile('^\s*%attr\\b')
+suse_version_regex = re.compile('%suse_version\s*[<>=]+\s*(\d+)')
section_regexs = dict(
([x, re.compile('^%' + x + '(?:\s|$)')]
- for x in ['build', 'changelog', 'check', 'clean', 'description', 'files',
-@@ -369,6 +370,12 @@ class SpecCheck(AbstractCheck.AbstractCh
+ for x in ('build', 'changelog', 'check', 'clean', 'description', 'files',
+@@ -387,6 +388,12 @@ class SpecCheck(AbstractCheck.AbstractCheck):
if not res.group(1).startswith('%'):
printWarning(pkg, 'hardcoded-prefix-tag', res.group(1))
@@ -23,7 +32,7 @@
res = prereq_regex.search(line)
if res:
printError(pkg, 'prereq-use', res.group(2))
-@@ -790,6 +797,15 @@ in the resulting binary package dependin
+@@ -815,6 +822,15 @@ in the resulting binary package depending on the build environment and rpmbuild
version (typically < 4.4). Add default attributes using %defattr before it in
the %files section, or use per entry %attr's.''',
++++++ suse-whitelist-opensuse.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:40 +0200
+Subject: [PATCH] suse-whitelist-opensuse.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -891,7 +891,7 @@ class TagsCheck(AbstractCheck.AbstractCh
+---
+ TagsCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index 40ce77a..3c68d28 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -912,7 +912,7 @@ class TagsCheck(AbstractCheck.AbstractCheck):
spell_check(pkg, utf8summary, 'Summary(%s)', lang, ignored_words)
if '\n' in summary:
printError(pkg, 'summary-on-multiple-lines', lang)
++++++ update_git.sh ++++++
#!/bin/bash -e
#
# based on qemu's update_git.sh this program updates the patches
# applied on top of a tarball based on commmits in git
#
# how to use:
# quilt setup rpmlint.spec
# cp rpmlint-$RPMLINTVERSION/series .
# mkdir ~/git; cd ~/git
# git clone git://git.code.sf.net/p/rpmlint/code rpmlint-code
# git checkout -b opensuse-$RPMLINTVERSION v$RPMLINTVERSION
# git quiltimport --patches /where/rpmlint/checkout/is
# ... add/remove/rebase patches
# ... to rebase to a new version create branch and modify versions below
# when done run update_git.sh
GIT_TREE=https://github.com/lnussel/rpmlint-code.git
GIT_LOCAL_TREE=~/git/rpmlint-code
GIT_BRANCH=opensuse-1.6
GIT_UPSTREAM_TAG=v1.6
cleanup()
{
[ -z "$GIT_DIR" ] || rm -rf "$GIT_DIR"
[ -z "$CMP_DIR" ] || rm -rf "$GIT_DIR"
}
trap cleanup EXIT
GIT_DIR=`mktemp -d --tmpdir update_git.XXXXXXXXXX`
CMP_DIR=`mktemp -d --tmpdir update_git.XXXXXXXXXX`
if [ -d "$GIT_LOCAL_TREE" ]; then
echo "Processing $GIT_BRANCH branch of local git tree, using tag:" \
"$GIT_UPSTREAM_TAG"
if ! (cd $GIT_LOCAL_TREE && git show-branch $GIT_BRANCH &>/dev/null); then
echo "Error: Branch $GIT_BRANCH not found - please create a remote" \
"tracking branch of origin/$GIT_BRANCH"
exit
fi
git clone -ls $GIT_LOCAL_TREE $GIT_DIR -b $GIT_BRANCH
if ! (cd $GIT_LOCAL_TREE && git remote show upstream &>/dev/null); then
echo "Remote for upstream git tree not found. Next time add remote" \
"named upstream for $GIT_TREE and update"
(cd $GIT_DIR && git remote add upstream "$GIT_TREE")
(cd $GIT_DIR && git remote update)
fi
else
echo "Processing $GIT_BRANCH branch of remote git tree, using tag:" \
"$GIT_UPSTREAM_TAG"
echo "(For much fast processing, consider establishing a local git tree" \
"at $GIT_LOCAL_TREE)"
git clone $GIT_TREE $GIT_DIR -b $GIT_BRANCH
(cd $GIT_DIR && git remote add upstream "$GIT_TREE")
(cd $GIT_DIR && git remote update)
fi
(cd $GIT_DIR && git format-patch -N $GIT_UPSTREAM_TAG --suffix=.tmp -o $CMP_DIR >/dev/null)
CHANGED_COUNT=0
UNCHANGED_COUNT=0
DELETED_COUNT=0
ADDED_COUNT=0
shopt -s nullglob
patches=()
for i in $CMP_DIR/*.tmp; do
basename="${i##*/}"
newname=${basename%.tmp}
newname=${newname%.diff} # remove .diff suffix it exist
# limit file names to 40 chars before extension
newname=${newname:0:40}.diff
# remove git signature and commit hash to make content
# independent of git version
head -n -3 "$i" | tail -n +2 > "$CMP_DIR/$newname"
rm "$i"
localname=${newname#*-}
patches+=("$localname")
if [ -e "$localname" ]; then
if cmp -s "$CMP_DIR/$newname" "$localname"; then
rm "$CMP_DIR/$newname"
let UNCHANGED_COUNT+=1
else
mv "$CMP_DIR/$newname" "$localname"
let CHANGED_COUNT+=1
fi
else
mv "$CMP_DIR/$newname" "$localname"
let ADDED_COUNT+=1
echo " $localname" >> qemu.changes.added
osc add "$localname"
fi
done
# delete dropped patches
for patch in *.diff; do
keep=
for i in "${patches[@]}"; do
if [ "$i" = "$patch" ]; then
keep=1
break
fi
done
if [ -z "$keep" ]; then
osc rm --force $patch
let DELETED_COUNT+=1
echo " $patch" >> qemu.changes.deleted
fi
done
for package in rpmlint; do
skip=
while IFS= read -r line; do
if [ "$line" = "# PATCHLIST END" ]; then
skip=
i=0
for patch in "${patches[@]}"; do
printf "Patch%02d: %s\n" "$i" "$patch"
let i+=1
done
fi
if [ -z "$skip" ]; then
echo "$line"
fi
if [ "$line" = "# PATCHLIST BEGIN" ]; then
skip=1
fi
done < $package.spec > $package.spec.new
mv $package.spec.new $package.spec
if [ -e qemu.changes.deleted ]; then
echo "* Patches dropped:" >> $package.changes.proposed
cat qemu.changes.deleted >> $package.changes.proposed
fi
if [ -e qemu.changes.added ]; then
echo "* Patches added:" >> $package.changes.proposed
cat qemu.changes.added >> $package.changes.proposed
fi
if [ -e $package.changes.proposed ]; then
osc vc --file=$package.changes.proposed $package
rm -f $package.changes.proposed
fi
done
if [ -e qemu.changes.deleted ]; then
rm -f qemu.changes.deleted
fi
if [ -e qemu.changes.added ]; then
rm -f qemu.changes.added
fi
echo "git patch summary"
echo " unchanged: $UNCHANGED_COUNT"
echo " changed: $CHANGED_COUNT"
echo " deleted: $DELETED_COUNT"
echo " added: $ADDED_COUNT"
++++++ usr-arch.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,16 +1,25 @@
-Index: BinariesCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] usr-arch.diff
+
===================================================================
---- BinariesCheck.py.orig
-+++ BinariesCheck.py
-@@ -263,6 +263,7 @@ usr_lib_exception_regex = re.compile(Con
+---
+ BinariesCheck.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/BinariesCheck.py b/BinariesCheck.py
+index a74d3e3..c1c566d 100644
+--- a/BinariesCheck.py
++++ b/BinariesCheck.py
+@@ -270,6 +270,7 @@ usr_lib_exception_regex = re.compile(Config.getOption('UsrLibBinaryException', '
srcname_regex = re.compile('(.*?)-[0-9]')
invalid_dir_ref_regex = re.compile('/(home|tmp)(\W|$)')
ocaml_mixed_regex = re.compile('^Caml1999X0\d\d$')
+usr_arch_share_regex = re.compile('/share/.*/(?:x86|i.86|x86_64|ppc|ppc64|s390|s390x|ia64|m68k|arm|aarch64)')
+
def dir_base(path):
- res = path_regex.search(path)
-@@ -336,7 +337,7 @@ class BinariesCheck(AbstractCheck.Abstra
+@@ -343,7 +344,7 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
# arch dependent packages only from here on
# in /usr/share ?
++++++ version-control-internal-file.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,9 +1,17 @@
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:39 +0200
+Subject: [PATCH] version-control-internal-file.diff
+
also detect RCS files
-Index: FilesCheck.py
-===================================================================
---- FilesCheck.py.orig
-+++ FilesCheck.py
-@@ -612,7 +612,7 @@ ldconfig_regex = re.compile('^[^#]*ldcon
+---
+ FilesCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/FilesCheck.py b/FilesCheck.py
+index 7d2b92f..efda328 100644
+--- a/FilesCheck.py
++++ b/FilesCheck.py
+@@ -620,7 +620,7 @@ ldconfig_regex = re.compile('^[^#]*ldconfig', re.MULTILINE)
depmod_regex = re.compile('^[^#]*depmod', re.MULTILINE)
install_info_regex = re.compile('^[^#]*install-info', re.MULTILINE)
perl_temp_file_regex = re.compile('.*perl.*/(\.packlist|perllocal\.pod)$')
++++++ xdg-paths-update.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,10 +1,19 @@
-Index: MenuXDGCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] xdg-paths-update.diff
+
===================================================================
---- MenuXDGCheck.py.orig
-+++ MenuXDGCheck.py
-@@ -24,7 +24,7 @@ class MenuXDGCheck(AbstractCheck.Abstrac
+---
+ MenuXDGCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/MenuXDGCheck.py b/MenuXDGCheck.py
+index 4aab385..158db23 100644
+--- a/MenuXDGCheck.py
++++ b/MenuXDGCheck.py
+@@ -24,7 +24,7 @@ class MenuXDGCheck(AbstractCheck.AbstractFilesCheck):
+ # $ echo $XDG_DATA_DIRS/applications
# /var/lib/menu-xdg:/usr/share
- self.cfp = RawConfigParser()
AbstractCheck.AbstractFilesCheck.__init__(
- self, "MenuXDGCheck", "/usr/share/applications/.*\.desktop$")
+ self, "MenuXDGCheck", "(?:/usr/share|/etc/opt/.*/share|/opt/.*)/applications/.*\.desktop$")
++++++ yast-provides.diff ++++++
--- /var/tmp/diff_new_pack.ke2bvz/_old 2015-05-23 13:19:31.000000000 +0200
+++ /var/tmp/diff_new_pack.ke2bvz/_new 2015-05-23 13:19:31.000000000 +0200
@@ -1,8 +1,17 @@
-Index: TagsCheck.py
+From: Some One
+Date: Thu, 9 Apr 2015 14:55:38 +0200
+Subject: [PATCH] yast-provides.diff
+
===================================================================
---- TagsCheck.py.orig
-+++ TagsCheck.py
-@@ -821,7 +821,7 @@ class TagsCheck(AbstractCheck.AbstractCh
+---
+ TagsCheck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/TagsCheck.py b/TagsCheck.py
+index 0a56b7d..9e00892 100644
+--- a/TagsCheck.py
++++ b/TagsCheck.py
+@@ -823,7 +823,7 @@ class TagsCheck(AbstractCheck.AbstractCheck):
printWarning(pkg, 'no-url-tag')
obs_names = [x[0] for x in pkg.obsoletes()]