diff --git a/add-weak-dependencies.diff b/add-weak-dependencies.diff index ed282f9..c89bc51 100644 --- a/add-weak-dependencies.diff +++ b/add-weak-dependencies.diff @@ -2,7 +2,7 @@ Index: Pkg.py =================================================================== --- Pkg.py.orig +++ Pkg.py -@@ -426,6 +426,10 @@ class Pkg: +@@ -424,6 +424,10 @@ class Pkg: self._missingok_files = None self._files = None self._requires = None @@ -13,7 +13,7 @@ Index: Pkg.py self._req_names = -1 if header: -@@ -673,6 +677,22 @@ class Pkg: +@@ -670,6 +674,22 @@ class Pkg: self._gatherDepInfo() return self._requires @@ -36,7 +36,7 @@ Index: Pkg.py def prereq(self): """Get package PreReqs as list of (name, flags, (epoch, version, release)) tuples.""" -@@ -709,7 +729,7 @@ class Pkg: +@@ -706,7 +726,7 @@ class Pkg: # internal function to gather dependency info used by the above ones def _gather_aux(self, header, list, nametag, flagstag, versiontag, @@ -45,7 +45,7 @@ Index: Pkg.py names = header[nametag] flags = header[flagstag] versions = header[versiontag] -@@ -720,7 +740,11 @@ class Pkg: +@@ -717,7 +737,11 @@ class Pkg: if prereq is not None and flags[loop] & PREREQ_FLAG: prereq.append((names[loop], flags[loop] & (~PREREQ_FLAG), evr)) @@ -58,7 +58,7 @@ Index: Pkg.py list.append((names[loop], flags[loop], evr)) def _gatherDepInfo(self): -@@ -730,6 +754,10 @@ class Pkg: +@@ -727,6 +751,10 @@ class Pkg: self._provides = [] self._conflicts = [] self._obsoletes = [] @@ -69,7 +69,7 @@ Index: Pkg.py self._gather_aux(self.header, self._requires, rpm.RPMTAG_REQUIRENAME, -@@ -748,6 +776,30 @@ class Pkg: +@@ -745,6 +773,30 @@ class Pkg: rpm.RPMTAG_OBSOLETENAME, rpm.RPMTAG_OBSOLETEFLAGS, rpm.RPMTAG_OBSOLETEVERSION) @@ -100,7 +100,7 @@ Index: Pkg.py def scriptprog(self, which): """Get the specified script interpreter as a string. -@@ -761,6 +813,7 @@ class Pkg: +@@ -758,6 +810,7 @@ class Pkg: prog = " ".join(prog) return prog diff --git a/avoid-mismatched-libregex.diff b/avoid-mismatched-libregex.diff index 842ccaa..620f4af 100644 --- a/avoid-mismatched-libregex.diff +++ b/avoid-mismatched-libregex.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -654,7 +654,7 @@ buildconfig_rpath_regex = re.compile('(? +@@ -607,7 +607,7 @@ buildconfig_rpath_regex = re.compile('(? 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)?$') diff --git a/better-wrong-script.diff b/better-wrong-script.diff index 6b31524..38b87fd 100644 --- a/better-wrong-script.diff +++ b/better-wrong-script.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -1697,7 +1697,10 @@ executed.''', +@@ -1667,7 +1667,10 @@ executed.''', executed.''', 'wrong-script-interpreter', diff --git a/buildroot-doc.diff b/buildroot-doc.diff index d405b8b..c1b47bc 100644 --- a/buildroot-doc.diff +++ b/buildroot-doc.diff @@ -2,7 +2,7 @@ Index: SpecCheck.py =================================================================== --- SpecCheck.py.orig +++ SpecCheck.py -@@ -631,7 +631,7 @@ versions you can ignore this warning.''' +@@ -647,7 +647,7 @@ versions you can ignore this warning.''' 'hardcoded-path-in-buildroot-tag', '''A path is hardcoded in your Buildroot tag. It should be replaced diff --git a/buildroot-in-scripts.diff b/buildroot-in-scripts.diff index 1df600b..5d35b4e 100644 --- a/buildroot-in-scripts.diff +++ b/buildroot-in-scripts.diff @@ -2,7 +2,7 @@ Index: SpecCheck.py =================================================================== --- SpecCheck.py.orig +++ SpecCheck.py -@@ -224,7 +224,9 @@ class SpecCheck(AbstractCheck.AbstractCh +@@ -234,7 +234,9 @@ class SpecCheck(AbstractCheck.AbstractCh continue diff --git a/compressed-backup-regex.diff b/compressed-backup-regex.diff new file mode 100644 index 0000000..ce5177f --- /dev/null +++ b/compressed-backup-regex.diff @@ -0,0 +1,13 @@ +Index: FilesCheck.py +=================================================================== +--- FilesCheck.py.orig ++++ FilesCheck.py +@@ -591,7 +591,7 @@ DEFAULT_STANDARD_GROUPS = ('root', 'bin' + + 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)$') + compr_regex = re.compile('\.(gz|z|Z|zip|bz2|lzma|xz)$') + absolute_regex = re.compile('^/([^/]+)') + absolute2_regex = re.compile('^/?([^/]+)') diff --git a/confusing-invalid-spec-name.patch b/confusing-invalid-spec-name.patch index 17a5145..c0caf16 100644 --- a/confusing-invalid-spec-name.patch +++ b/confusing-invalid-spec-name.patch @@ -1,10 +1,10 @@ # 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. -Index: rpmlint-1.4/SpecCheck.py +Index: rpmlint-1.5/SpecCheck.py =================================================================== ---- rpmlint-1.4.orig/SpecCheck.py -+++ rpmlint-1.4/SpecCheck.py -@@ -605,8 +605,8 @@ addDetails( +--- rpmlint-1.5.orig/SpecCheck.py ++++ rpmlint-1.5/SpecCheck.py +@@ -621,8 +621,8 @@ addDetails( SPEC file to build a valid RPM package.''', 'invalid-spec-name', diff --git a/description-check.diff b/description-check.diff index 5085bdc..75b501d 100644 --- a/description-check.diff +++ b/description-check.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -704,6 +704,9 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -705,6 +705,9 @@ class TagsCheck(AbstractCheck.AbstractCh if not description: printError(pkg, 'no-description-tag') else: @@ -12,7 +12,7 @@ Index: TagsCheck.py if not pkg[rpm.RPMTAG_HEADERI18NTABLE]: self._unexpanded_macros(pkg, '%description', description) else: -@@ -987,6 +990,10 @@ Name tag.''', +@@ -988,6 +991,10 @@ Name tag.''', '''The major number of the library isn't included in the package's name. ''', diff --git a/devel-provide-is-devel-package.diff b/devel-provide-is-devel-package.diff index 1ec356b..aefd14e 100644 --- a/devel-provide-is-devel-package.diff +++ b/devel-provide-is-devel-package.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -842,6 +842,10 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -806,6 +806,10 @@ class FilesCheck(AbstractCheck.AbstractC # Check if the package is a development package devel_pkg = devel_regex.search(pkg.name) diff --git a/docdata-examples.diff b/docdata-examples.diff index 5b13118..16bd187 100644 --- a/docdata-examples.diff +++ b/docdata-examples.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -648,6 +648,7 @@ bin_regex = re.compile('^/(?:usr/(?:s?bi +@@ -601,6 +601,7 @@ bin_regex = re.compile('^/(?:usr/(?:s?bi 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 +10,7 @@ Index: FilesCheck.py # 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$') -@@ -1199,7 +1200,7 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -1158,7 +1159,7 @@ class FilesCheck(AbstractCheck.AbstractC includefile_regex.search(f) or \ develfile_regex.search(f) or \ logrotate_regex.search(f) @@ -19,7 +19,7 @@ Index: FilesCheck.py printWarning(pkg, 'spurious-executable-perm', f) elif f.startswith('/etc/') and f not in config_files and \ f not in ghost_files: -@@ -1571,7 +1572,10 @@ included in your package.''', +@@ -1541,7 +1542,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 diff --git a/extend-suse-conffiles-check.diff b/extend-suse-conffiles-check.diff index 4ffaaaa..7a86745 100644 --- a/extend-suse-conffiles-check.diff +++ b/extend-suse-conffiles-check.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -1217,7 +1217,7 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -1176,7 +1176,7 @@ class FilesCheck(AbstractCheck.AbstractC 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 \ diff --git a/filename-non-utf8-exception.diff b/filename-non-utf8-exception.diff index bf37216..833af51 100644 --- a/filename-non-utf8-exception.diff +++ b/filename-non-utf8-exception.diff @@ -1,6 +1,8 @@ ---- Filter.py +Index: Filter.py +=================================================================== +--- Filter.py.orig +++ Filter.py -@@ -24,12 +24,8 @@ +@@ -23,14 +23,8 @@ _diagnostic = list() _badness_score = 0 printed_messages = { "I": 0, "W": 0, "E": 0 } @@ -9,7 +11,9 @@ - print(s) -else: - def __print(s): -- print(s.encode(locale.getpreferredencoding(), "replace")) +- if isinstance(s, unicode): +- s = s.encode(locale.getpreferredencoding(), "replace") +- print(s) +def __print(s): + print(s) diff --git a/invalid-filerequires.diff b/invalid-filerequires.diff index 2d380be..503073b 100644 --- a/invalid-filerequires.diff +++ b/invalid-filerequires.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -421,6 +421,7 @@ invalid_version_regex = re.compile('([0- +@@ -420,6 +420,7 @@ invalid_version_regex = re.compile('([0- # () 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,17 +10,17 @@ Index: TagsCheck.py use_epoch = Config.getOption('UseEpoch', False) use_utf8 = Config.getOption('UseUTF8', Config.USEUTF8_DEFAULT) max_line_len = Config.getOption('MaxLineLength', 79) -@@ -603,6 +604,9 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -602,6 +603,9 @@ class TagsCheck(AbstractCheck.AbstractCh if d[0].startswith('/usr/local/'): printError(pkg, 'invalid-dependency', d[0]) + if d[0].startswith('/') and not valid_filedep_regex.search(d[0]): + printWarning(pkg, 'invalid-filepath-dependency', d[0]) + - if not devel_depend and not is_devel and not is_source and \ - FilesCheck.devel_regex.search(d[0]): - printError(pkg, 'devel-dependency', d[0]) -@@ -1089,6 +1093,12 @@ explicit Requires: tags.''', + if is_source: + if lib_devel_number_regex.search(d[0]): + printError(pkg, 'invalid-build-requires', d[0]) +@@ -1090,6 +1094,12 @@ explicit Requires: tags.''', '''This package provides 2 times the same capacity. It should only provide it once.''', diff --git a/libtool-wrapper-check.diff b/libtool-wrapper-check.diff index 7b0cc0c..2286291 100644 --- a/libtool-wrapper-check.diff +++ b/libtool-wrapper-check.diff @@ -2,12 +2,12 @@ Index: BinariesCheck.py =================================================================== --- BinariesCheck.py.orig +++ BinariesCheck.py -@@ -253,8 +253,19 @@ class BinariesCheck(AbstractCheck.Abstra - is_elf = 'ELF' in pkgfile.magic +@@ -309,8 +309,19 @@ class BinariesCheck(AbstractCheck.Abstra 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 + is_shell = "shell script" in pkgfile.magic - is_binary = is_elf or is_ar or is_ocaml_native + is_binary = is_elf or is_ar or is_ocaml_native or is_lua_bytecode + if is_shell: + count= 0 @@ -22,7 +22,7 @@ Index: BinariesCheck.py if not is_binary: if reference_regex.search(fname): lines = pkg.grep(invalid_dir_ref_regex, fname) -@@ -502,6 +513,15 @@ recompiled separately from the static li +@@ -568,6 +579,15 @@ recompiled separately from the static li Another common mistake that causes this problem is linking with ``gcc -Wl,-shared'' instead of ``gcc -shared''.''', diff --git a/no-badness-return.diff b/no-badness-return.diff index 592046e..ba5be9f 100644 --- a/no-badness-return.diff +++ b/no-badness-return.diff @@ -2,7 +2,7 @@ Index: Filter.py =================================================================== --- Filter.py.orig +++ Filter.py -@@ -112,7 +112,7 @@ def printAllReasons(): +@@ -113,7 +113,7 @@ def printAllReasons(): if len(last_reason): printDescriptions(last_reason) last_reason = reason @@ -15,7 +15,7 @@ Index: rpmlint =================================================================== --- rpmlint.orig +++ rpmlint -@@ -212,7 +212,7 @@ def main(): +@@ -211,7 +211,7 @@ def main(): % (packages_checked, specfiles_checked, printed_messages["E"], printed_messages["W"]) diff --git a/no-doc-for-lib.diff b/no-doc-for-lib.diff index 7254762..b129001 100644 --- a/no-doc-for-lib.diff +++ b/no-doc-for-lib.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -859,7 +859,7 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -823,7 +823,7 @@ class FilesCheck(AbstractCheck.AbstractC debuginfo_srcs = False debuginfo_debugs = False diff --git a/noarch-lib64.diff b/noarch-lib64.diff index 2939e7c..efe7ad6 100644 --- a/noarch-lib64.diff +++ b/noarch-lib64.diff @@ -2,7 +2,7 @@ Index: BinariesCheck.py =================================================================== --- BinariesCheck.py.orig +++ BinariesCheck.py -@@ -234,6 +234,7 @@ class BinariesCheck(AbstractCheck.Abstra +@@ -289,6 +289,7 @@ class BinariesCheck(AbstractCheck.Abstra binary = False binary_in_usr_lib = False has_usr_lib_file = False @@ -10,7 +10,7 @@ Index: BinariesCheck.py multi_pkg = False res = srcname_regex.search(pkg[rpm.RPMTAG_SOURCERPM] or '') -@@ -250,6 +251,10 @@ class BinariesCheck(AbstractCheck.Abstra +@@ -305,6 +306,10 @@ class BinariesCheck(AbstractCheck.Abstra # only-non-binary-in-usr-lib false positives binary_in_usr_lib = True @@ -21,7 +21,7 @@ Index: BinariesCheck.py is_elf = 'ELF' in pkgfile.magic is_ar = 'current ar archive' in pkgfile.magic is_ocaml_native = 'Objective caml native' in pkgfile.magic -@@ -464,9 +469,12 @@ class BinariesCheck(AbstractCheck.Abstra +@@ -530,9 +535,12 @@ class BinariesCheck(AbstractCheck.Abstra if version and version != -1 and version not in pkg.name: printError(pkg, 'incoherent-version-in-name', version) @@ -35,7 +35,7 @@ Index: BinariesCheck.py if has_usr_lib_file and not binary_in_usr_lib: printWarning(pkg, 'only-non-binary-in-usr-lib') -@@ -490,6 +498,11 @@ FHS and the FSSTND forbid this.''', +@@ -556,6 +564,11 @@ FHS and the FSSTND forbid this.''', # 'non-sparc32-binary', # '', diff --git a/only-reg-files-are-scripts.diff b/only-reg-files-are-scripts.diff index f3ebc0a..d16de12 100644 --- a/only-reg-files-are-scripts.diff +++ b/only-reg-files-are-scripts.diff @@ -2,7 +2,7 @@ Index: InitScriptCheck.py =================================================================== --- InitScriptCheck.py.orig +++ InitScriptCheck.py -@@ -18,7 +18,7 @@ from Filter import addDetails, printErro +@@ -17,7 +17,7 @@ from Filter import addDetails, printErro import AbstractCheck import Config import Pkg @@ -11,7 +11,7 @@ Index: InitScriptCheck.py 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 +@@ -63,6 +63,9 @@ class InitScriptCheck(AbstractCheck.Abst not fname.startswith('/etc/rc.d/init.d/'): continue diff --git a/python3_magic_number_fix.diff b/python3_magic_number_fix.diff deleted file mode 100644 index 183fccf..0000000 --- a/python3_magic_number_fix.diff +++ /dev/null @@ -1,22 +0,0 @@ -Index: FilesCheck.py -=================================================================== ---- FilesCheck.py.orig -+++ FilesCheck.py -@@ -753,7 +753,7 @@ def peek(filename, pkg, length=1024): - istext = float(len(t))/len(chunk) <= 0.30 - return (chunk, istext) - --# See Python/import.c (in the trunk and py3k branches) for a full list of -+# See Python/import.c (in the default and 2.x branches) for a full list of - # the values here. - _python_magic_values = { - '2.2': 60717, -@@ -765,7 +765,7 @@ _python_magic_values = { - '3.0': 3130, - '3.1': 3150, - '3.2': 3180, -- '3.3': 3190, -+ '3.3': 3230, - } - - def get_expected_pyc_magic(path): diff --git a/remove-expand-macros.diff b/remove-expand-macros.diff index 0dd8a4e..2fe0394 100644 --- a/remove-expand-macros.diff +++ b/remove-expand-macros.diff @@ -8,7 +8,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -433,15 +433,6 @@ so_dep_regex = re.compile(r'\.so(\.[0-9a +@@ -432,15 +432,6 @@ so_dep_regex = re.compile(r'\.so(\.[0-9a # we assume that no rpm packages existed before rpm itself existed... oldest_changelog_timestamp = calendar.timegm(time.strptime("1995-01-01", "%Y-%m-%d")) @@ -24,7 +24,7 @@ Index: TagsCheck.py _enchant_checkers = {} def spell_check(pkg, str, fmt, lang, ignored): -@@ -856,30 +847,12 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -857,30 +848,12 @@ class TagsCheck(AbstractCheck.AbstractCh (apply(Pkg.formatRequire, obs), apply(Pkg.formatRequire, prov))) diff --git a/rpmgroup-checks.diff b/rpmgroup-checks.diff index 954f013..d2dc9f5 100644 --- a/rpmgroup-checks.diff +++ b/rpmgroup-checks.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -714,6 +714,8 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -715,6 +715,8 @@ class TagsCheck(AbstractCheck.AbstractCh self._unexpanded_macros(pkg, 'Group', group) if not group: printError(pkg, 'no-group-tag') @@ -11,7 +11,7 @@ Index: TagsCheck.py elif VALID_GROUPS and group not in VALID_GROUPS: printWarning(pkg, 'non-standard-group', group) -@@ -1026,6 +1028,10 @@ won't fool the specfile parser, and rebu +@@ -1027,6 +1029,10 @@ won't fool the specfile parser, and rebu '''There is no Group tag in your package. You have to specify a valid group in your spec file using the Group tag.''', diff --git a/rpmlint-1.4.tar.xz b/rpmlint-1.4.tar.xz deleted file mode 100644 index d26be80..0000000 --- a/rpmlint-1.4.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af4e4e8304c7209e95b9100f7592aca0d713b542dcb6c0629395655716a287f6 -size 116600 diff --git a/rpmlint-1.5.tar.xz b/rpmlint-1.5.tar.xz new file mode 100644 index 0000000..d0cbecc --- /dev/null +++ b/rpmlint-1.5.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8268cede9397b263e51933a514db0f9a8426867274d495d1e87ef4c81b2c1e18 +size 126048 diff --git a/rpmlint-pkg-quoting.diff b/rpmlint-pkg-quoting.diff index 09eecf8..e75601c 100644 --- a/rpmlint-pkg-quoting.diff +++ b/rpmlint-pkg-quoting.diff @@ -2,7 +2,7 @@ Index: Pkg.py =================================================================== --- Pkg.py.orig +++ Pkg.py -@@ -493,7 +493,7 @@ class Pkg: +@@ -490,7 +490,7 @@ class Pkg: dir = self.dirname) # TODO: better shell escaping or sequence based command invocation command_str = \ diff --git a/rpmlint-suse.diff b/rpmlint-suse.diff index 0a3d517..f2879dc 100644 --- a/rpmlint-suse.diff +++ b/rpmlint-suse.diff @@ -15,7 +15,7 @@ Index: I18NCheck.py =================================================================== --- I18NCheck.py.orig +++ I18NCheck.py -@@ -31,7 +31,7 @@ INCORRECT_LOCALES = { +@@ -30,7 +30,7 @@ INCORRECT_LOCALES = { 'en_UK': 'en_GB'} package_regex = re.compile('-(' + '|'.join(LANGUAGES) + ')$') diff --git a/rpmlint.changes b/rpmlint.changes index 3524fa6..d38171d 100644 --- a/rpmlint.changes +++ b/rpmlint.changes @@ -18,6 +18,14 @@ Thu May 30 11:32:57 UTC 2013 - tchvatal@suse.com - Add group 'locate' for mlocate package +------------------------------------------------------------------- +Tue May 28 12:10:33 UTC 2013 - dmueller@suse.com + +- update to 1.5: + * New Homepage + * Plenty of new checks +- add compressed-backup-regex.diff +- remove python3_magic_number_fix.diff ------------------------------------------------------------------- Mon May 20 19:48:39 UTC 2013 - andreas.stieger@gmx.de diff --git a/rpmlint.spec b/rpmlint.spec index df96054..3599991 100644 --- a/rpmlint.spec +++ b/rpmlint.spec @@ -25,9 +25,9 @@ BuildRequires: xz Summary: Rpm correctness checker License: GPL-2.0+ Group: System/Packages -Version: 1.4 +Version: 1.5 Release: 0 -Source0: http://rpmlint.zarb.org/download/rpmlint-%{version}.tar.xz +Source0: https://downloads.sourceforge.net/project/rpmlint/rpmlint-%{version}.tar.xz Source1: rpmlint-checks-master.tar.gz Source2: config Source3: config.in @@ -35,7 +35,7 @@ Source10: rpmgroups.config Source11: pie.config Source12: licenses.config Source100: syntax-validator.py -Url: http://rpmlint.zarb.org/ +Url: https://sourceforge.net/projects/rpmlint/ BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: /usr/bin/readelf Requires: bash @@ -114,10 +114,10 @@ Patch81: suse-whitelist-opensuse.diff Patch84: extend-suse-conffiles-check.diff Patch85: suse-changelog.patch Patch86: suse-rclink-check.diff +Patch87: compressed-backup-regex.diff # accepted upstream Patch88: suse-speccheck-utf8.diff Patch89: suse-python-abi-check.diff -Patch90: python3_magic_number_fix.diff # PATCH-FIX-OPENSUSE: saschpe@suse.de - Don't complain about missing man-pages for rc-scripts Patch91: suse-manpages-for-rc-scripts.patch @@ -191,10 +191,9 @@ source packages can be checked. %patch84 %patch85 %patch86 -#patch87 -p1 +%patch87 %patch88 %patch89 -%patch90 %patch91 -p1 cp -p %{SOURCE2} . # Only move top-level python files diff --git a/script-interpreter-only-for-exec-scripts.diff b/script-interpreter-only-for-exec-scripts.diff index 1052d8c..4158f66 100644 --- a/script-interpreter-only-for-exec-scripts.diff +++ b/script-interpreter-only-for-exec-scripts.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -1249,7 +1249,7 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -1219,7 +1219,7 @@ class FilesCheck(AbstractCheck.AbstractC elif interpreter or mode & 0111 != 0 or \ script_regex.search(f): if interpreter: diff --git a/selfconflicts-provide.diff b/selfconflicts-provide.diff index bb1cd90..83319ac 100644 --- a/selfconflicts-provide.diff +++ b/selfconflicts-provide.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -819,6 +819,7 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -820,6 +820,7 @@ class TagsCheck(AbstractCheck.AbstractCh obs_names = [x[0] for x in pkg.obsoletes()] prov_names = [x[0].split(':/')[0] for x in pkg.provides()] @@ -10,7 +10,7 @@ Index: TagsCheck.py for o in (x for x in obs_names if x not in prov_names): printWarning(pkg, 'obsolete-not-provided', o) -@@ -830,6 +831,8 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -831,6 +832,8 @@ class TagsCheck(AbstractCheck.AbstractCh # https://bugzilla.redhat.com/460872 useless_provides = [] for p in prov_names: @@ -19,7 +19,7 @@ Index: TagsCheck.py if prov_names.count(p) != 1 and p not in useless_provides: useless_provides.append(p) for p in useless_provides: -@@ -970,6 +973,10 @@ the Release tag.''', +@@ -971,6 +974,10 @@ the Release tag.''', '''There is no Name tag in your package. You have to specify a name using the Name tag.''', diff --git a/sourced-dirs.diff b/sourced-dirs.diff index 93b9252..ea37133 100644 --- a/sourced-dirs.diff +++ b/sourced-dirs.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -681,7 +681,7 @@ manifest_perl_regex = re.compile('^/usr/ +@@ -634,7 +634,7 @@ manifest_perl_regex = re.compile('^/usr/ shebang_regex = re.compile('^#!\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)))/') diff --git a/stricter-interpreter-check.diff b/stricter-interpreter-check.diff index d781be3..088887c 100644 --- a/stricter-interpreter-check.diff +++ b/stricter-interpreter-check.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -1272,7 +1272,8 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -1242,7 +1242,8 @@ class FilesCheck(AbstractCheck.AbstractC f.endswith('.la')): printError(pkg, 'script-without-shebang', f) diff --git a/suse-binarieschecks.diff b/suse-binarieschecks.diff index 4675169..7c3703c 100644 --- a/suse-binarieschecks.diff +++ b/suse-binarieschecks.diff @@ -1,6 +1,8 @@ ---- BinariesCheck.py +Index: BinariesCheck.py +=================================================================== +--- BinariesCheck.py.orig +++ BinariesCheck.py -@@ -10,13 +10,15 @@ +@@ -9,13 +9,15 @@ import re import stat @@ -17,17 +19,17 @@ DEFAULT_SYSTEM_LIB_PATHS = ( -@@ -37,6 +39,9 @@ +@@ -42,6 +44,9 @@ class BinaryInfo: unused_regex = re.compile('^\s+(\S+)') - exit_call_regex = re.compile('\s+FUNC\s+.*?\s+(_?exit(?:@\S+)?)(?:\s|$)') - fork_call_regex = re.compile('\s+FUNC\s+.*?\s+(fork(?:@\S+)?)(?:\s|$)') + exit_call_regex = create_regexp_call('_?exit') + fork_call_regex = create_regexp_call('fork') + debuginfo_regex=re.compile('^\s+\[\s*\d+\]\s+\.debug_.*\s+') + symtab_regex=re.compile('^\s+\[\s*\d+\]\s+\.symtab\s+') + gethostbyname_call_regex = re.compile('\s+FUNC\s+.*?\s+(gethostbyname(?:@\S+)?)(?:\s|$)') - - def __init__(self, pkg, path, file, is_ar, is_shlib): - self.readelf_error = False -@@ -50,7 +55,10 @@ + # 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: self.stack = False self.exec_stack = False self.exit_calls = [] @@ -37,8 +39,8 @@ + self.symtab=0 self.tail = '' - is_debug = path.endswith('.debug') -@@ -93,6 +101,11 @@ + self.setgid = False +@@ -131,6 +139,11 @@ class BinaryInfo: self.exec_stack = True continue @@ -50,7 +52,7 @@ if is_shlib: r = BinaryInfo.exit_call_regex.search(l) if r: -@@ -103,6 +116,14 @@ +@@ -141,6 +154,14 @@ class BinaryInfo: fork_called = True continue @@ -65,7 +67,7 @@ if self.non_pic: self.non_pic = 'TEXTREL' in res[1] -@@ -274,13 +295,26 @@ +@@ -330,13 +351,26 @@ class BinariesCheck(AbstractCheck.Abstra continue # stripped ? @@ -93,7 +95,7 @@ if is_shlib: has_lib = True -@@ -330,6 +364,10 @@ +@@ -386,6 +420,10 @@ class BinariesCheck(AbstractCheck.Abstra for ec in bin_info.exit_calls: printWarning(pkg, 'shared-lib-calls-exit', fname, ec) @@ -104,7 +106,7 @@ # rpath ? if bin_info.rpath: for p in bin_info.rpath: -@@ -524,6 +562,14 @@ +@@ -590,6 +628,14 @@ with the intended shared libraries only. 'ldd-failed', '''Executing ldd on this file failed, all checks could not be run.''', @@ -119,7 +121,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 -@@ -536,6 +582,10 @@ +@@ -602,6 +648,10 @@ don\'t define a proper .note.GNU-stack s make the stack executable. Usual suspects include use of a non-GNU linker or an old GNU linker version.''', @@ -130,7 +132,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 -@@ -554,6 +604,12 @@ +@@ -620,6 +670,12 @@ that use prelink, make sure that prelink placing a blacklist file in /etc/prelink.conf.d. For more information, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=256900#49''', diff --git a/suse-changelog.patch b/suse-changelog.patch index 5af91da..16edeb5 100644 --- a/suse-changelog.patch +++ b/suse-changelog.patch @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -1024,8 +1024,8 @@ Development/''', +@@ -1025,8 +1025,8 @@ Development/''', "%s".''' % '", "'.join(VALID_GROUPS), 'no-changelogname-tag', diff --git a/suse-check-optional-dependencies.diff b/suse-check-optional-dependencies.diff index db7f5be..2c5242c 100644 --- a/suse-check-optional-dependencies.diff +++ b/suse-check-optional-dependencies.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -948,6 +948,16 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -907,6 +907,16 @@ class FilesCheck(AbstractCheck.AbstractC if res.group(1) != pkg.name: printError(pkg, 'incoherent-logrotate-file', f) @@ -19,7 +19,7 @@ Index: FilesCheck.py if link != '': ext = compr_regex.search(link) if ext: -@@ -1757,6 +1767,24 @@ consequences), or other compiler flags w +@@ -1727,6 +1737,24 @@ consequences), or other compiler flags w extraction not working as expected. Verify that the binaries are not unexpectedly stripped and that the intended compiler flags are used.''', diff --git a/suse-checks.diff b/suse-checks.diff index 096784c..ece15c2 100644 --- a/suse-checks.diff +++ b/suse-checks.diff @@ -2,7 +2,7 @@ Index: Config.py =================================================================== --- Config.py.orig +++ Config.py -@@ -17,14 +17,13 @@ try: +@@ -16,14 +16,13 @@ try: except ImportError: __version__ = 'devel' diff --git a/suse-filesystem.diff b/suse-filesystem.diff index 0373639..eb5feba 100644 --- a/suse-filesystem.diff +++ b/suse-filesystem.diff @@ -2,147 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -29,65 +29,112 @@ STANDARD_DIRS = ( - '/', - '/bin', - '/boot', -+ '/dev', - '/etc', - '/etc/X11', -+ '/etc/aliases.d', -+ '/etc/cron.d', -+ '/etc/cron.daily', -+ '/etc/cron.hourly', -+ '/etc/cron.monthly', -+ '/etc/cron.weekly', -+ '/etc/cups', -+ '/etc/default', -+ '/etc/init.d', -+ '/etc/init.d/boot.d', -+ '/etc/init.d/rc0.d', -+ '/etc/init.d/rc1.d', -+ '/etc/init.d/rc2.d', -+ '/etc/init.d/rc3.d', -+ '/etc/init.d/rc4.d', -+ '/etc/init.d/rc5.d', -+ '/etc/init.d/rc6.d', -+ '/etc/init.d/rcS.d', -+ '/etc/java', -+ '/etc/ld.so.conf.d', -+ '/etc/logrotate.d', -+ '/etc/news', - '/etc/opt', -+ '/etc/permissions.d', -+ '/etc/ppp', -+ '/etc/ppp/ip-down.d', -+ '/etc/ppp/ip-up.d', - '/etc/profile.d', -+ '/etc/rc.d', - '/etc/skel', -+ '/etc/susehelp.d', -+ '/etc/susehelp.d/htdig', -+ '/etc/sysconfig', -+ '/etc/sysconfig/SuSEfirewall2.d', -+ '/etc/sysconfig/SuSEfirewall2.d/services', -+ '/etc/sysconfig/network', -+ '/etc/sysconfig/network/if-down.d', -+ '/etc/sysconfig/network/if-up.d', -+ '/etc/sysconfig/network/providers', -+ '/etc/sysconfig/network/scripts', -+ '/etc/sysconfig/scripts', -+ '/etc/uucp', -+ '/etc/xdg', -+ '/etc/xdg/autostart', - '/etc/xinetd.d', - '/home', - '/lib', -+ '/lib/YaST', -+ '/lib/firmware', -+ '/lib/lsb', - '/lib/modules', - '/lib64', -+ '/lib64/YaST', -+ '/lib64/firmware', -+ '/lib64/lsb', -+ '/lib64/modules', - '/media', -+ '/media/cdrom', -+ '/media/floppy', - '/mnt', -- '/mnt/cdrom', -- '/mnt/disk', -- '/mnt/floppy', - '/opt', - '/proc', - '/root', -+ '/root/.gnupg', -+ '/root/bin', - '/sbin', -- '/selinux', - '/srv', -+ '/srv/ftp', -+ '/srv/www', -+ '/srv/www/cgi-bin', -+ '/srv/www/htdocs', - '/sys', - '/tmp', -+ '/tmp/.ICE-unix', -+ '/tmp/.X11-unix', - '/usr', - '/usr/X11R6', - '/usr/X11R6/bin', -- '/usr/X11R6/doc', -- '/usr/X11R6/include', - '/usr/X11R6/lib', -- '/usr/X11R6/lib64', -- '/usr/X11R6/man', -- '/usr/X11R6/man/man1', -- '/usr/X11R6/man/man2', -- '/usr/X11R6/man/man3', -- '/usr/X11R6/man/man4', -- '/usr/X11R6/man/man5', -- '/usr/X11R6/man/man6', -- '/usr/X11R6/man/man7', -- '/usr/X11R6/man/man8', -- '/usr/X11R6/man/man9', -- '/usr/X11R6/man/mann', - '/usr/bin', -- '/usr/bin/X11', -- '/usr/etc', - '/usr/games', -+ '/usr/i586-suse-linux', -+ '/usr/i586-suse-linux/bin', -+ '/usr/i586-suse-linux/include', -+ '/usr/i586-suse-linux/lib', - '/usr/include', -+ '/usr/include/X11', - '/usr/lib', - '/usr/lib/X11', -- '/usr/lib/games', -- '/usr/lib/gcc-lib', -- '/usr/lib/menu', -+ '/usr/lib/browser-plugins', -+ '/usr/lib/lsb', -+ '/usr/lib/news', -+ '/usr/lib/pkgconfig', - '/usr/lib64', -- '/usr/lib64/gcc-lib', -+ '/usr/lib64/X11', -+ '/usr/lib64/browser-plugins', -+ '/usr/lib64/lsb', -+ '/usr/lib64/news', -+ '/usr/lib64/pkgconfig', - '/usr/local', - '/usr/local/bin', -- '/usr/local/doc', -- '/usr/local/etc', - '/usr/local/games', -- '/usr/local/info', -+ '/usr/local/include', - '/usr/local/lib', - '/usr/local/lib64', - '/usr/local/man', -@@ -103,24 +150,415 @@ STANDARD_DIRS = ( +@@ -103,24 +103,415 @@ STANDARD_DIRS = ( '/usr/local/man/mann', '/usr/local/sbin', '/usr/local/share', @@ -569,7 +429,7 @@ Index: FilesCheck.py '/usr/share/man', '/usr/share/man/man1', '/usr/share/man/man2', -@@ -132,28 +570,57 @@ STANDARD_DIRS = ( +@@ -132,28 +523,57 @@ STANDARD_DIRS = ( '/usr/share/man/man8', '/usr/share/man/man9', '/usr/share/man/mann', diff --git a/suse-filter-exception.diff b/suse-filter-exception.diff index 23a45bd..1e69d05 100644 --- a/suse-filter-exception.diff +++ b/suse-filter-exception.diff @@ -2,7 +2,7 @@ Index: Config.py =================================================================== --- Config.py.orig +++ Config.py -@@ -103,11 +103,23 @@ def getOption(name, default = ""): +@@ -102,11 +102,23 @@ def getOption(name, default = ""): _filters = [] _filters_re = None @@ -28,7 +28,7 @@ Index: Config.py def removeFilter(s): global _filters_re -@@ -122,19 +134,38 @@ def removeFilter(s): +@@ -121,19 +133,38 @@ def removeFilter(s): _scoring = {} def setBadness(s, score): @@ -71,7 +71,7 @@ Index: Config.py _filters_re = '(?:' + _filters[0] + ')' for idx in range(1, len(_filters)): -@@ -146,9 +177,27 @@ def isFiltered(s): +@@ -145,9 +176,27 @@ def isFiltered(s): _filters_re = _filters_re + '|(?:' + _filters[idx] +')' _filters_re = re.compile(_filters_re) diff --git a/suse-filter-more-verbose.diff b/suse-filter-more-verbose.diff index fe9d4b0..8d3baa6 100644 --- a/suse-filter-more-verbose.diff +++ b/suse-filter-more-verbose.diff @@ -1,6 +1,8 @@ ---- Config.py +Index: Config.py +=================================================================== +--- Config.py.orig +++ Config.py -@@ -11,6 +11,7 @@ +@@ -10,6 +10,7 @@ import locale import os.path import re @@ -8,7 +10,7 @@ try: from __version__ import __version__ -@@ -163,7 +164,17 @@ +@@ -162,7 +163,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] +')' @@ -27,7 +29,7 @@ if _filters_re == None and len(_filters): _filters_re = '(?:' + _filters[0] + ')' -@@ -175,7 +186,17 @@ +@@ -174,7 +185,17 @@ def isFiltered(s): if '(' in _filters[idx]: _non_named_group_re.subn('(:?', _filters[idx]) _filters_re = _filters_re + '|(?:' + _filters[idx] +')' diff --git a/suse-g-ir-chech.diff b/suse-g-ir-chech.diff index 946586c..41af1f1 100644 --- a/suse-g-ir-chech.diff +++ b/suse-g-ir-chech.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -646,7 +646,7 @@ points_regex = re.compile('^\.\./(.*)') +@@ -599,7 +599,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) diff --git a/suse-manpages-for-rc-scripts.patch b/suse-manpages-for-rc-scripts.patch index 007b9ac..0b29e09 100644 --- a/suse-manpages-for-rc-scripts.patch +++ b/suse-manpages-for-rc-scripts.patch @@ -1,8 +1,8 @@ -Index: rpmlint-1.4/FilesCheck.py +Index: rpmlint-1.5/FilesCheck.py =================================================================== ---- rpmlint-1.4.orig/FilesCheck.py -+++ rpmlint-1.4/FilesCheck.py -@@ -1434,7 +1434,7 @@ class FilesCheck(AbstractCheck.AbstractC +--- rpmlint-1.5.orig/FilesCheck.py ++++ rpmlint-1.5/FilesCheck.py +@@ -1404,7 +1404,7 @@ class FilesCheck(AbstractCheck.AbstractC for exe, paths in bindir_exes.items(): if len(paths) > 1: printWarning(pkg, "duplicate-executable", exe, paths) diff --git a/suse-no-run-ldconfig.diff b/suse-no-run-ldconfig.diff index 31919b1..b0011a1 100644 --- a/suse-no-run-ldconfig.diff +++ b/suse-no-run-ldconfig.diff @@ -2,7 +2,7 @@ Index: SpecCheck.py =================================================================== --- SpecCheck.py.orig +++ SpecCheck.py -@@ -414,6 +414,10 @@ class SpecCheck(AbstractCheck.AbstractCh +@@ -424,6 +424,10 @@ class SpecCheck(AbstractCheck.AbstractCh printWarning(pkg, 'comparison-operator-in-deptoken', conf) @@ -13,7 +13,7 @@ Index: SpecCheck.py if current_section == 'changelog': for match in AbstractCheck.macro_regex.findall(line): res = re.match('%+', match) -@@ -732,6 +736,14 @@ may break short circuit builds.''', +@@ -748,6 +752,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.''', diff --git a/suse-pkg-config-check.diff b/suse-pkg-config-check.diff index 61ffb7f..a761b42 100644 --- a/suse-pkg-config-check.diff +++ b/suse-pkg-config-check.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -416,6 +416,7 @@ lib_devel_number_regex = re.compile('^li +@@ -415,6 +415,7 @@ lib_devel_number_regex = re.compile('^li 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 +10,7 @@ Index: TagsCheck.py 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 -@@ -629,10 +630,12 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -630,10 +631,12 @@ class TagsCheck(AbstractCheck.AbstractCh base = is_devel.group(1) dep = None has_so = False @@ -24,7 +24,7 @@ Index: TagsCheck.py if has_so: base_or_libs = base + '/' + base + '-libs/lib' + base # try to match *%_isa as well (e.g. "(x86-64)", "(x86-32)") -@@ -669,6 +672,15 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -670,6 +673,15 @@ class TagsCheck(AbstractCheck.AbstractCh if prov not in (x[0] for x in pkg.provides()): printWarning(pkg, 'no-provides', prov) @@ -40,7 +40,7 @@ Index: TagsCheck.py # List of words to ignore in spell check ignored_words = set() for pf in pkg.files(): -@@ -1108,6 +1120,11 @@ instead or require a file in bin or /etc +@@ -1109,6 +1121,11 @@ instead or require a file in bin or /etc 'no-url-tag', '''The URL tag is missing. Please add a http or ftp link to the project location.''', diff --git a/suse-python-abi-check.diff b/suse-python-abi-check.diff index 557471a..f6adf8b 100644 --- a/suse-python-abi-check.diff +++ b/suse-python-abi-check.diff @@ -2,7 +2,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -1148,8 +1148,11 @@ class FilesCheck(AbstractCheck.AbstractC +@@ -1107,8 +1107,11 @@ class FilesCheck(AbstractCheck.AbstractC if res and not (pkg.check_versioned_dep('python-base', res.group(1)) or pkg.check_versioned_dep('python', diff --git a/suse-python3-naming-policy.diff b/suse-python3-naming-policy.diff index 7ca8b37..5604848 100644 --- a/suse-python3-naming-policy.diff +++ b/suse-python3-naming-policy.diff @@ -1,6 +1,8 @@ ---- NamingPolicyCheck.py +Index: NamingPolicyCheck.py +=================================================================== +--- NamingPolicyCheck.py.orig +++ NamingPolicyCheck.py -@@ -91,7 +91,7 @@ +@@ -90,7 +90,7 @@ check = NamingPolicyCheck() check.add_check('xmms', '^xmms(-|$)', '^/usr/lib(64)?/xmms/') diff --git a/suse-rclink-check.diff b/suse-rclink-check.diff index a0ff30b..cce76c4 100644 --- a/suse-rclink-check.diff +++ b/suse-rclink-check.diff @@ -2,7 +2,7 @@ Index: InitScriptCheck.py =================================================================== --- InitScriptCheck.py.orig +++ InitScriptCheck.py -@@ -51,7 +51,7 @@ class InitScriptCheck(AbstractCheck.Abst +@@ -50,7 +50,7 @@ class InitScriptCheck(AbstractCheck.Abst return initscript_list = [] @@ -11,7 +11,7 @@ Index: InitScriptCheck.py # check chkconfig call in %post and %preun postin = pkg[rpm.RPMTAG_POSTIN] or pkg.scriptprog(pkg[rpm.RPMTAG_POSTINPROG]) -@@ -60,6 +60,10 @@ class InitScriptCheck(AbstractCheck.Abst +@@ -59,6 +59,10 @@ class InitScriptCheck(AbstractCheck.Abst for fname, pkgfile in pkg.files().items(): @@ -22,7 +22,7 @@ Index: InitScriptCheck.py if not fname.startswith('/etc/init.d/') and \ not fname.startswith('/etc/rc.d/init.d/'): continue -@@ -199,6 +203,12 @@ class InitScriptCheck(AbstractCheck.Abst +@@ -198,6 +202,12 @@ class InitScriptCheck(AbstractCheck.Abst elif subsys_regex_found and not use_subsys: printError(pkg, 'subsys-unsupported', fname) @@ -35,7 +35,7 @@ Index: InitScriptCheck.py if len(initscript_list) == 1: pkgname = re.sub("-sysvinit$", "", pkg.name.lower()) goodnames = (pkgname, pkgname + 'd') -@@ -223,6 +233,10 @@ a call to chkconfig.''', +@@ -222,6 +232,10 @@ a call to chkconfig.''', '''The package contains an init script but doesn't contain a %preun with a call to chkconfig.''', diff --git a/suse-shlib-devel-dependency.diff b/suse-shlib-devel-dependency.diff index e357467..e6e6d8b 100644 --- a/suse-shlib-devel-dependency.diff +++ b/suse-shlib-devel-dependency.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -637,10 +637,10 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -638,10 +638,10 @@ class TagsCheck(AbstractCheck.AbstractCh if pkg_config_regex.match(fname) and fname.endswith('.pc'): has_pc = True if has_so: diff --git a/suse-speccheck-utf8.diff b/suse-speccheck-utf8.diff index 3a5260f..cfda93d 100644 --- a/suse-speccheck-utf8.diff +++ b/suse-speccheck-utf8.diff @@ -2,7 +2,7 @@ Index: SpecCheck.py =================================================================== --- SpecCheck.py.orig +++ SpecCheck.py -@@ -609,8 +609,8 @@ SPEC file to build a valid RPM package.' +@@ -625,8 +625,8 @@ SPEC file to build a valid RPM package.' ("Name:" tag). Either rename your package or the specfile.''', 'non-utf8-spec-file', diff --git a/suse-url-check.diff b/suse-url-check.diff index 008116c..3e706e3 100644 --- a/suse-url-check.diff +++ b/suse-url-check.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -780,7 +780,7 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -781,7 +781,7 @@ class TagsCheck(AbstractCheck.AbstractCh if not valid_license: self._unexpanded_macros(pkg, 'License', rpm_license) @@ -11,7 +11,7 @@ Index: TagsCheck.py if hasattr(rpm, 'RPMTAG_%s' % tag.upper()): url = pkg[getattr(rpm, 'RPMTAG_%s' % tag.upper())] self._unexpanded_macros(pkg, tag, url, is_url = True) -@@ -1096,7 +1096,7 @@ once.''', +@@ -1097,7 +1097,7 @@ once.''', '''This rpm requires a specific release of another package.''', 'no-url-tag', diff --git a/suse-version.diff b/suse-version.diff index b653de8..3c53f58 100644 --- a/suse-version.diff +++ b/suse-version.diff @@ -1,14 +1,16 @@ ---- SpecCheck.py +Index: SpecCheck.py +=================================================================== +--- SpecCheck.py.orig +++ SpecCheck.py -@@ -57,6 +57,7 @@ +@@ -66,6 +66,7 @@ libdir_regex = re.compile('%{?_lib(?:dir 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', -@@ -359,6 +360,12 @@ + for x in ['build', 'changelog', 'check', 'clean', 'description', 'files', +@@ -369,6 +370,12 @@ class SpecCheck(AbstractCheck.AbstractCh if not res.group(1).startswith('%'): printWarning(pkg, 'hardcoded-prefix-tag', res.group(1)) @@ -21,7 +23,7 @@ res = prereq_regex.search(line) if res: printError(pkg, 'prereq-use', res.group(2)) -@@ -774,6 +781,15 @@ +@@ -790,6 +797,15 @@ in the resulting binary package dependin version (typically < 4.4). Add default attributes using %defattr before it in the %files section, or use per entry %attr's.''', diff --git a/suse-whitelist-opensuse.diff b/suse-whitelist-opensuse.diff index ffbfa22..609d740 100644 --- a/suse-whitelist-opensuse.diff +++ b/suse-whitelist-opensuse.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -883,7 +883,7 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -884,7 +884,7 @@ class TagsCheck(AbstractCheck.AbstractCh spell_check(pkg, utf8summary, 'Summary(%s)', lang, ignored_words) if '\n' in summary: printError(pkg, 'summary-on-multiple-lines', lang) diff --git a/sysv5-init-checks.diff b/sysv5-init-checks.diff index c1e5287..51c9ac4 100644 --- a/sysv5-init-checks.diff +++ b/sysv5-init-checks.diff @@ -2,7 +2,7 @@ Index: InitScriptCheck.py =================================================================== --- InitScriptCheck.py.orig +++ InitScriptCheck.py -@@ -30,6 +30,10 @@ lsb_tags_regex = re.compile('^# ([\w-]+) +@@ -29,6 +29,10 @@ lsb_tags_regex = re.compile('^# ([\w-]+) lsb_cont_regex = re.compile('^#(?:\t| )(.*?)\s*$') use_subsys = Config.getOption('UseVarLockSubsys', True) @@ -13,7 +13,7 @@ Index: InitScriptCheck.py LSB_KEYWORDS = ('Provides', 'Required-Start', 'Required-Stop', 'Should-Start', 'Should-Stop', 'Default-Start', 'Default-Stop', 'Short-Description', 'Description') -@@ -47,6 +51,13 @@ class InitScriptCheck(AbstractCheck.Abst +@@ -46,6 +50,13 @@ class InitScriptCheck(AbstractCheck.Abst return initscript_list = [] @@ -27,7 +27,7 @@ Index: InitScriptCheck.py for fname, pkgfile in pkg.files().items(): if not fname.startswith('/etc/init.d/') and \ -@@ -61,20 +72,16 @@ class InitScriptCheck(AbstractCheck.Abst +@@ -60,20 +71,16 @@ class InitScriptCheck(AbstractCheck.Abst if "." in basename: printError(pkg, 'init-script-name-with-dot', fname) @@ -56,7 +56,7 @@ Index: InitScriptCheck.py status_found = False reload_found = False -@@ -275,6 +282,17 @@ of chkconfig don't work as expected with +@@ -274,6 +281,17 @@ of chkconfig don't work as expected with 'init-script-non-executable', '''The init script should have at least the execution bit set for root in order for it to run at boot time.''', diff --git a/usr-arch.diff b/usr-arch.diff index 1eb8bd6..37a0216 100644 --- a/usr-arch.diff +++ b/usr-arch.diff @@ -2,7 +2,7 @@ Index: BinariesCheck.py =================================================================== --- BinariesCheck.py.orig +++ BinariesCheck.py -@@ -208,6 +208,7 @@ usr_lib_exception_regex = re.compile(Con +@@ -263,6 +263,7 @@ usr_lib_exception_regex = re.compile(Con srcname_regex = re.compile('(.*?)-[0-9]') invalid_dir_ref_regex = re.compile('/(home|tmp)(\W|$)') ocaml_mixed_regex = re.compile('^Caml1999X0\d\d$') @@ -10,7 +10,7 @@ Index: BinariesCheck.py def dir_base(path): res = path_regex.search(path) -@@ -280,7 +281,7 @@ class BinariesCheck(AbstractCheck.Abstra +@@ -336,7 +337,7 @@ class BinariesCheck(AbstractCheck.Abstra # arch dependent packages only from here on # in /usr/share ? diff --git a/version-control-internal-file.diff b/version-control-internal-file.diff index 15da5ce..7f3859d 100644 --- a/version-control-internal-file.diff +++ b/version-control-internal-file.diff @@ -3,7 +3,7 @@ Index: FilesCheck.py =================================================================== --- FilesCheck.py.orig +++ FilesCheck.py -@@ -659,7 +659,7 @@ ldconfig_regex = re.compile('^[^#]*ldcon +@@ -612,7 +612,7 @@ ldconfig_regex = re.compile('^[^#]*ldcon 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)$') diff --git a/xdg-paths-update.diff b/xdg-paths-update.diff index f959145..9010fe6 100644 --- a/xdg-paths-update.diff +++ b/xdg-paths-update.diff @@ -2,12 +2,12 @@ Index: MenuXDGCheck.py =================================================================== --- MenuXDGCheck.py.orig +++ MenuXDGCheck.py -@@ -18,7 +18,7 @@ class MenuXDGCheck(AbstractCheck.Abstrac - # $ echo $XDG_DATA_DIRS/applications +@@ -21,7 +21,7 @@ class MenuXDGCheck(AbstractCheck.Abstrac # /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$") def check_file(self, pkg, filename): - f = pkg.dirName() + filename + root = pkg.dirName() diff --git a/yast-provides.diff b/yast-provides.diff index 5745e37..81c92f7 100644 --- a/yast-provides.diff +++ b/yast-provides.diff @@ -2,7 +2,7 @@ Index: TagsCheck.py =================================================================== --- TagsCheck.py.orig +++ TagsCheck.py -@@ -813,7 +813,7 @@ class TagsCheck(AbstractCheck.AbstractCh +@@ -814,7 +814,7 @@ class TagsCheck(AbstractCheck.AbstractCh printWarning(pkg, 'no-url-tag') obs_names = [x[0] for x in pkg.obsoletes()]