SHA256
1
0
forked from pool/rpmlint

Accepting request 19018 from Base:System

Copy from Base:System/rpmlint based on submit request 19018 from user lnussel

OBS-URL: https://build.opensuse.org/request/show/19018
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpmlint?expand=0&rev=44
This commit is contained in:
OBS User autobuild 2009-08-28 20:12:54 +00:00 committed by Git OBS Bridge
parent 7383a6345e
commit 773aa7d652
21 changed files with 214 additions and 180 deletions

View File

@ -80,7 +80,6 @@ _goodprefixes = (
'/var/adm/', '/var/adm/',
'/var/nis/', '/var/nis/',
'/emul/', '/emul/',
'/selinux/',
) )
# computed from goodprefixes. # computed from goodprefixes.

View File

@ -33,7 +33,7 @@ class PkgConfigCheck(AbstractCheck.AbstractFilesCheck):
def check_file(self, pkg, filename): def check_file(self, pkg, filename):
if pkg.isSource() or not stat.S_ISREG(pkg.files()[filename][0]): if pkg.isSource() or not stat.S_ISREG(pkg.files()[filename].mode):
return return
if pkg.grep(self.suspicious_dir, filename): if pkg.grep(self.suspicious_dir, filename):

View File

@ -11,7 +11,6 @@ import AbstractCheck
import re import re
import os import os
import string import string
import pprint
_permissions_d_whitelist = ( _permissions_d_whitelist = (
"lprng", "lprng",

View File

@ -1,17 +1,19 @@
--- Pkg.py Index: Pkg.py
===================================================================
--- Pkg.py.orig
+++ Pkg.py +++ Pkg.py
@@ -176,6 +176,10 @@ class Pkg: @@ -170,6 +170,10 @@ class Pkg:
self._missing_ok_files=None self._missingok_files = None
self._files=None self._files = None
self._requires=None self._requires = None
+ self._suggests=None + self._suggests = None
+ self._supplements=None + self._supplements = None
+ self._enhances=None + self._enhances = None
+ self._recommends=None + self._recommends = None
self._req_names=-1 self._req_names = -1
if header: if header:
@@ -414,6 +418,22 @@ class Pkg: @@ -376,6 +380,22 @@ class Pkg:
self._gatherDepInfo() self._gatherDepInfo()
return self._requires return self._requires
@ -34,23 +36,19 @@
def prereq(self): def prereq(self):
self._gatherDepInfo() self._gatherDepInfo()
return self._prereq return self._prereq
@@ -453,7 +473,8 @@ class Pkg: @@ -406,7 +426,8 @@ class Pkg:
return self._provides return self._provides
# internal function to gather dependency info used by the above ones # internal function to gather dependency info used by the above ones
- def _gather_aux(self, header, list, nametag, versiontag, flagstag, prereq=None): - def _gather_aux(self, header, list, nametag, versiontag, flagstag, prereq = None):
+ def _gather_aux(self, header, list, nametag, versiontag, flagstag, + def _gather_aux(self, header, list, nametag, versiontag, flagstag,
+ prereq=None,strong_only=False,weak_only=False): + prereq = None, strong_only = False, weak_only = False):
names = header[nametag] names = header[nametag]
versions = header[versiontag] versions = header[versiontag]
flags = header[flagstag] flags = header[flagstag]
@@ -462,10 +483,15 @@ class Pkg: @@ -415,7 +436,11 @@ class Pkg:
# workaroung buggy rpm python module that doesn't return a list
if type(flags) != types.ListType:
flags=[flags]
+
for loop in range(len(versions)): for loop in range(len(versions)):
if prereq != None and flags[loop] & PREREQ_FLAG: if prereq is not None and flags[loop] & PREREQ_FLAG:
prereq.append((names[loop], versions[loop], flags[loop] & (~PREREQ_FLAG))) prereq.append((names[loop], versions[loop], flags[loop] & (~PREREQ_FLAG)))
- else: - else:
+ elif strong_only and flags[loop] & rpm.RPMSENSE_STRONG: + elif strong_only and flags[loop] & rpm.RPMSENSE_STRONG:
@ -61,7 +59,7 @@
list.append((names[loop], versions[loop], flags[loop])) list.append((names[loop], versions[loop], flags[loop]))
def _gatherDepInfo(self): def _gatherDepInfo(self):
@@ -475,6 +501,10 @@ class Pkg: @@ -425,6 +450,10 @@ class Pkg:
self._provides = [] self._provides = []
self._conflicts = [] self._conflicts = []
self._obsoletes = [] self._obsoletes = []
@ -72,7 +70,7 @@
self._gather_aux(self.header, self._requires, self._gather_aux(self.header, self._requires,
rpm.RPMTAG_REQUIRENAME, rpm.RPMTAG_REQUIRENAME,
@@ -493,6 +523,27 @@ class Pkg: @@ -443,6 +472,27 @@ class Pkg:
rpm.RPMTAG_OBSOLETENAME, rpm.RPMTAG_OBSOLETENAME,
rpm.RPMTAG_OBSOLETEVERSION, rpm.RPMTAG_OBSOLETEVERSION,
rpm.RPMTAG_OBSOLETEFLAGS) rpm.RPMTAG_OBSOLETEFLAGS)

View File

@ -1,30 +1,21 @@
--- SpecCheck.py Index: SpecCheck.py
===================================================================
--- SpecCheck.py.orig
+++ SpecCheck.py +++ SpecCheck.py
@@ -186,7 +186,7 @@ @@ -57,7 +57,10 @@ suse_version_regex = re.compile('%suse_v
lib = 0 section_regexs = dict(
if_depth = 0 ([x, re.compile('^%' + x + '(?:\s|$)')]
ifarch_depth = -1 for x in ('build', 'changelog', 'check', 'clean', 'description', 'files',
- current_section = 'package' - 'install', 'package', 'prep')))
+ current_section = 'package' + 'install', 'package', 'prep',
buildroot_clean={'clean':0 , 'install':0} + 'pre', 'post', 'postun', 'trigger', 'triggerin',
buildroot_created={'clean':False , 'install':True} + 'triggerprein', 'triggerun', 'triggerpostun',
depscript_override = 0 + 'pretrans', 'posttrans')))
@@ -196,8 +196,11 @@
section = {} # Only check for /lib, /usr/lib, /usr/X11R6/lib
buildrequires = set() # TODO: better handling of X libraries and modules.
@@ -262,7 +265,9 @@ class SpecCheck(AbstractCheck.AbstractCh
- for sec in ['description', 'prep', 'build', 'install', 'clean',
- 'files', 'changelog', 'package', 'check']:
+ for sec in ('description', 'prep', 'build', 'install', 'clean',
+ 'files', 'changelog', 'package', 'check',
+ 'pre', 'post', 'postun', 'trigger', 'triggerin',
+ 'triggerprein', 'triggerun', 'triggerpostun',
+ 'pretrans', 'posttrans'):
section[sec] = {
'count': 0,
're': re.compile('^%' + sec + '(?:\s|$)'),
@@ -223,7 +226,9 @@
if section_marker:
continue continue
- if current_section in ('prep', 'build'): - if current_section in ('prep', 'build'):

View File

@ -1,18 +1,20 @@
--- SpecCheck.py Index: SpecCheck.py
===================================================================
--- SpecCheck.py.orig
+++ SpecCheck.py +++ SpecCheck.py
@@ -32,7 +32,7 @@ @@ -34,7 +34,7 @@ prefix_regex = re.compile('^Prefix\s*:\s
prefix_regex = re.compile('^Prefix\s*:\s*([^\s]+)', re.IGNORECASE)
packager_regex = re.compile('^Packager\s*:\s*([^\s]+)', re.IGNORECASE) packager_regex = re.compile('^Packager\s*:\s*([^\s]+)', re.IGNORECASE)
make_check_regexp = re.compile('(^|\s|%{?__)make}?\s+(check|test)') noarch_regex = re.compile('^BuildArch(?:itectures)?\s*:\s*\\bnoarch\\b', re.IGNORECASE)
make_check_regex = re.compile('(^|\s|%{?__)make}?\s+(check|test)')
-rm_regex = re.compile('(^|\s)((.*/)?rm|%{?__rm}?) ') -rm_regex = re.compile('(^|\s)((.*/)?rm|%{?__rm}?) ')
+rm_rf_regex = re.compile('(^|\s)((.*/)?rm|%{?__rm}?) -[fF]?[rR][^/]*$') +rm_rf_regex = re.compile('(^|\s)((.*/)?rm|%{?__rm}?) -[fF]?[rR][^/]*$')
rpm_buildroot_regex = re.compile('(\\\*)\${?RPM_BUILD_ROOT}?|(%+){?buildroot}?') rpm_buildroot_regex = re.compile('(\\\*)\${?RPM_BUILD_ROOT}?|(%+){?buildroot}?')
configure_start_regex = re.compile('\./configure') configure_start_regex = re.compile('\./configure')
configure_libdir_spec_regex = re.compile('ln |\./configure[^#]*--libdir=([^\s]+)[^#]*') configure_libdir_spec_regex = re.compile('ln |\./configure[^#]*--libdir=([^\s]+)[^#]*')
@@ -119,6 +140,14 @@ @@ -145,6 +145,14 @@ def contains_buildroot(line):
return 1
return 0 return 0
+def contains_create_buildroot(line): +def contains_create_buildroot(line):
+ '''Check if the line is of the form mkdir %{buildroot}.''' + '''Check if the line is of the form mkdir %{buildroot}.'''
+ line = line.strip() + line = line.strip()
@ -22,20 +24,20 @@
+ return False + return False
+ +
class SpecCheck(AbstractCheck.AbstractCheck): class SpecCheck(AbstractCheck.AbstractCheck):
def __init__(self): def __init__(self):
@@ -160,6 +167,7 @@ @@ -192,6 +200,7 @@ class SpecCheck(AbstractCheck.AbstractCh
ifarch_depth = -1 ifarch_depth = -1
current_section = 'package' current_section = 'package'
buildroot_clean={'clean':0 , 'install':0} buildroot_clean = {'clean': 0, 'install' : 0}
+ buildroot_created={'clean':False , 'install':True} + buildroot_created={'clean':False , 'install':True}
depscript_override = 0 depscript_override = 0
depgen_disabled = 0 depgen_disabled = 0
indent_spaces = 0 indent_spaces = 0
@@ -200,8 +208,13 @@ @@ -261,8 +270,13 @@ class SpecCheck(AbstractCheck.AbstractCh
printWarning(pkg, 'make-check-outside-check-section', line[:-1]) printWarning(pkg, 'make-check-outside-check-section', line[:-1])
if current_section in buildroot_clean.keys(): if current_section in buildroot_clean:
- if contains_buildroot(line) and rm_regex.search(line): - if contains_buildroot(line) and rm_regex.search(line):
+ if buildroot_created[current_section] and \ + if buildroot_created[current_section] and \
+ contains_buildroot(line) and rm_rf_regex.search(line): + contains_buildroot(line) and rm_rf_regex.search(line):
@ -47,7 +49,7 @@
if ifarch_regex.search(line): if ifarch_regex.search(line):
if_depth = if_depth + 1 if_depth = if_depth + 1
@@ -337,6 +350,9 @@ @@ -441,6 +455,9 @@ class SpecCheck(AbstractCheck.AbstractCh
if not buildroot_clean[sect]: if not buildroot_clean[sect]:
printError(pkg, 'no-cleaning-of-buildroot', '%' + sect) printError(pkg, 'no-cleaning-of-buildroot', '%' + sect)
@ -57,7 +59,7 @@
if not buildroot: if not buildroot:
printError(pkg, 'no-buildroot-tag') printError(pkg, 'no-buildroot-tag')
@@ -483,6 +499,12 @@ @@ -598,6 +615,12 @@ unpacking the sources.''',
'''You should clean $RPM_BUILD_ROOT in the %clean section and just after the '''You should clean $RPM_BUILD_ROOT in the %clean section and just after the
beginning of %install section. Use "rm -Rf $RPM_BUILD_ROOT".''', beginning of %install section. Use "rm -Rf $RPM_BUILD_ROOT".''',

6
config
View File

@ -220,6 +220,12 @@ addFilter("nfs-client\.\S+: \w: suse-filelist-forbidden-backup-file /var/lib/nfs
addFilter("perl\.\S+: \w: suse-filelist-forbidden-perl-dir ") addFilter("perl\.\S+: \w: suse-filelist-forbidden-perl-dir ")
addFilter("info\.\S+: \w: info-dir-file .*/usr/share/info/dir") addFilter("info\.\S+: \w: info-dir-file .*/usr/share/info/dir")
# these packages are used for CD creation and are not supposed to be
# installed. It's still a dirty hack to make an exception. The
# packages should either be built in a separate project with
# different config or file be put somewhere below /opt/suse/*
addFilter("(?:dosutils|skelcd|installation-images|yast2-slide-show|instlux|skelcd-.*|patterns-.*)\.\S+: \w: suse-filelist-forbidden-fhs23 /CD1")
# suboptimal library packaging # suboptimal library packaging
addFilter(" non-devel-buildrequires graphviz") addFilter(" non-devel-buildrequires graphviz")
addFilter(" non-devel-buildrequires ImageMagick") addFilter(" non-devel-buildrequires ImageMagick")

View File

@ -1,11 +1,13 @@
--- SpecCheck.py Index: SpecCheck.py
===================================================================
--- SpecCheck.py.orig
+++ SpecCheck.py +++ SpecCheck.py
@@ -28,7 +28,7 @@ @@ -29,7 +29,7 @@ applied_patch_regex = re.compile("^%patc
applied_patch_p_regex = re.compile("-P\s*([\d]*)") applied_patch_p_regex = re.compile("\s-P\s+(\d+)\\b")
source_dir_regex = re.compile("^[^#]*(\$RPM_SOURCE_DIR|%{?_sourcedir}?)") source_dir_regex = re.compile("^[^#]*(\$RPM_SOURCE_DIR|%{?_sourcedir}?)")
obsolete_tags_regex = re.compile("^(Copyright|Serial)\s*:\s*([^\s]+)") obsolete_tags_regex = re.compile("^(Copyright|Serial)\s*:\s*([^\s]+)")
-buildroot_regex = re.compile('Buildroot\s*:\s*([^\s]+)', re.IGNORECASE) -buildroot_regex = re.compile('Buildroot\s*:\s*([^\s]+)', re.IGNORECASE)
+buildroot_regex = re.compile('^\s*Buildroot\s*:\s*([^\s]+)', re.IGNORECASE) +buildroot_regex = re.compile('^\s*Buildroot\s*:\s*([^\s]+)', re.IGNORECASE)
prefix_regex = re.compile('^Prefix\s*:\s*([^\s]+)', re.IGNORECASE) prefix_regex = re.compile('^Prefix\s*:\s*([^\s]+)', re.IGNORECASE)
packager_regex = re.compile('^Packager\s*:\s*([^\s]+)', re.IGNORECASE) packager_regex = re.compile('^Packager\s*:\s*([^\s]+)', re.IGNORECASE)
make_check_regexp = re.compile('(^|\s|%{?__)make}?\s+(check|test)') noarch_regex = re.compile('^BuildArch(?:itectures)?\s*:\s*\\bnoarch\\b', re.IGNORECASE)

View File

@ -1,8 +1,10 @@
--- FilesCheck.py Index: FilesCheck.py
===================================================================
--- FilesCheck.py.orig
+++ FilesCheck.py +++ FilesCheck.py
@@ -948,7 +948,8 @@ @@ -980,7 +980,8 @@ class FilesCheck(AbstractCheck.AbstractC
printWarning(pkg, 'non-executable-in-bin', f, oct(perm)) (includefile_regex.search(f) or \
if not devel_pkg and (includefile_regex.search(f) or buildconfigfile_regex.search(f)) and not is_doc: develfile_regex.search(f) or is_buildconfig):
printWarning(pkg, 'devel-file-in-non-devel-package', f) printWarning(pkg, 'devel-file-in-non-devel-package', f)
- if mode & 0444 != 0444 and perm & 07000 == 0 and f[0:len('/var/log')] != '/var/log': - if mode & 0444 != 0444 and perm & 07000 == 0 and f[0:len('/var/log')] != '/var/log':
+ if mode & 0444 != 0444 and perm & 07000 == 0 and \ + if mode & 0444 != 0444 and perm & 07000 == 0 and \

View File

@ -1,8 +1,8 @@
Index: Filter.py Index: Filter.py
=================================================================== ===================================================================
--- Filter.py (Revision 1434) --- Filter.py.orig
+++ Filter.py (Arbeitskopie) +++ Filter.py
@@ -96,10 +96,6 @@ def _diag_compare(x,y): @@ -101,10 +101,6 @@ def _diag_compare(x, y):
def printAllReasons(): def printAllReasons():
@ -12,41 +12,40 @@ Index: Filter.py
- -
global _badness_score, _diagnostic global _badness_score, _diagnostic
_diagnostic.sort(_diag_compare) _diagnostic.sort(_diag_compare)
last_reason='' last_reason = ''
@@ -114,8 +110,6 @@ def printAllReasons(): @@ -119,8 +115,6 @@ def printAllReasons():
if Config.info and len(last_reason): if Config.info and len(last_reason):
printDescriptions(last_reason) printDescriptions(last_reason)
_diagnostic = list() _diagnostic = list()
- return _badness_score > threshold - return _badness_score > threshold
- -
_details={} _details = {}
Index: rpmlint.py Index: rpmlint.py
=================================================================== ===================================================================
--- rpmlint.py (Revision 1434) --- rpmlint.py.orig
+++ rpmlint.py (Arbeitskopie) +++ rpmlint.py
@@ -155,9 +155,7 @@ def main(): @@ -170,15 +170,19 @@ def main():
sys.stderr.write('Interrupted, exiting while scanning all packages\n') sys.stderr.write('(none): E: interrupted, exiting while scanning all packages\n')
sys.exit(2) sys.exit(2)
- if printAllReasons(): - if printAllReasons():
- sys.stderr.write('rpmlint: E: badness %d exceeds threshold %d, aborting.\n' % (badnessScore(), badnessThreshold())) - sys.stderr.write('(none): E: badness %d exceeds threshold %d, aborting.\n' % (badnessScore(), badnessThreshold()))
- sys.exit(66) - sys.exit(66)
+ printAllReasons() + printAllReasons()
finally: finally:
pkg and pkg.cleanup() print "%d packages and %d specfiles checked; %d errors, %d warnings." \
@@ -165,6 +163,12 @@ def main():
% (packages_checked, specfiles_checked, % (packages_checked, specfiles_checked,
printed_messages["E"], printed_messages["W"]) printed_messages["E"], printed_messages["W"])
+ if (badnessThreshold() >= 0): + if (badnessThreshold() >= 0):
+ if badnessScore() >= badnessThreshold(): + if badnessScore() >= badnessThreshold():
+ sys.stderr.write('rpmlint: E: badness %d exceeds threshold %d, aborting.\n' % (badnessScore(), badnessThreshold())) + sys.stderr.write('(none): E: badness %d exceeds threshold %d, aborting.\n' % (badnessScore(), badnessThreshold()))
+ sys.exit(66) + sys.exit(66)
+ sys.exit(0) + sys.exit(0)
+ +
if printed_messages["E"] > 0: if printed_messages["E"] > 0:
sys.exit(64) sys.exit(64)
elif printed_messages["W"] > 0: sys.exit(0)

View File

@ -1,11 +1,13 @@
--- FilesCheck.py Index: FilesCheck.py
===================================================================
--- FilesCheck.py.orig
+++ FilesCheck.py +++ FilesCheck.py
@@ -292,7 +292,7 @@ @@ -772,7 +772,7 @@ class FilesCheck(AbstractCheck.AbstractC
log_file=0 log_file = 0
logrotate_file=0 logrotate_file = 0
- if not doc_files: - if not doc_files:
+ if not lib_package and not doc_files: + if not lib_package and not doc_files:
printWarning(pkg, 'no-documentation') printWarning(pkg, 'no-documentation')
if len(files.keys()) and meta_package_re.search(pkg.name): if files:

View File

@ -1,11 +1,13 @@
--- TagsCheck.py Index: TagsCheck.py
===================================================================
--- TagsCheck.py.orig
+++ TagsCheck.py +++ TagsCheck.py
@@ -586,6 +586,8 @@ class TagsCheck(AbstractCheck.AbstractCheck): @@ -601,6 +601,8 @@ class TagsCheck(AbstractCheck.AbstractCh
else: else:
if VALID_GROUPS and group not in VALID_GROUPS: if VALID_GROUPS and group not in VALID_GROUPS:
printWarning(pkg, 'non-standard-group', group) printWarning(pkg, 'non-standard-group', group)
+ if pkg.name.find('-devel') != -1 and not group.startswith('Development/'): + if pkg.name.find('-devel') != -1 and not group.startswith('Development/'):
+ printWarning(pkg, 'devel-package-with-non-devel-group', group) + printWarning(pkg, 'devel-package-with-non-devel-group', group)
buildhost=pkg[rpm.RPMTAG_BUILDHOST] buildhost = pkg[rpm.RPMTAG_BUILDHOST]
if not buildhost: if not buildhost:

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Wed Aug 26 09:28:14 UTC 2009 - lnussel@suse.de
- disable bogus patch to InitScriptCheck.py. Causes failures and
needs to be reworked
- fix and add weak dependencies patch again to make some suse checks
work
-------------------------------------------------------------------
Wed Aug 26 09:08:13 UTC 2009 - lnussel@suse.de
- fix CheckPkgConfig.py to work with rpmlint 0.87
-------------------------------------------------------------------
Wed Aug 26 07:08:03 UTC 2009 - lnussel@suse.de
- refresh some patches to remove fuzz
- BuildIgnore rpmlint-mini as it is currently broken
-------------------------------------------------------------------
Mon Aug 24 11:56:55 UTC 2009 - lnussel@suse.de
- don't import pprint in CheckSUIDPermissions.py
- remove /selinux again. No package except 'filesystem' is supposed
to include that.
- add filter for FHS violation of skelcd type packages
- fix some more suse patches
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Aug 10 08:07:25 CEST 2009 - thomas@novell.com Mon Aug 10 08:07:25 CEST 2009 - thomas@novell.com

View File

@ -17,12 +17,13 @@
# norootforbuild # norootforbuild
#!BuildIgnore: rpmlint-mini
Name: rpmlint Name: rpmlint
BuildRequires: rpm-python BuildRequires: rpm-python
Summary: Rpm correctness checker Summary: Rpm correctness checker
Version: 0.87 Version: 0.87
Release: 1 Release: 2
Source0: %{name}-%{version}.tar.bz2 Source0: %{name}-%{version}.tar.bz2
Source1: config Source1: config
Source1001: config.in Source1001: config.in
@ -72,11 +73,13 @@ Patch20: xdg-paths-update.diff
Patch21: fix-buildroot-test.diff Patch21: fix-buildroot-test.diff
Patch22: better-wrong-script.diff Patch22: better-wrong-script.diff
Patch23: buildroot-doc.diff Patch23: buildroot-doc.diff
# bogus, fails with aaa_base. disabled
Patch24: sysv5-init-checks.diff Patch24: sysv5-init-checks.diff
Patch26: ignore-non-readable-in-etc.diff Patch26: ignore-non-readable-in-etc.diff
Patch27: detailed-desktop-file-check.diff Patch27: detailed-desktop-file-check.diff
Patch29: rpmgroup-checks.diff Patch29: rpmgroup-checks.diff
Patch30: devel-provide-is-devel-package.diff Patch30: devel-provide-is-devel-package.diff
# what's the reason behind that one?
Patch31: only-reg-files-are-scripts.diff Patch31: only-reg-files-are-scripts.diff
Patch33: check-buildroot-during-install.diff Patch33: check-buildroot-during-install.diff
Patch34: verify-buildrequires.diff Patch34: verify-buildrequires.diff
@ -86,17 +89,18 @@ Patch39: libtool-wrapper-check.diff
Patch41: perl-versioned-rpath-deps.diff Patch41: perl-versioned-rpath-deps.diff
Patch42: check-cron-dependency.diff Patch42: check-cron-dependency.diff
Patch46: locale-support.diff Patch46: locale-support.diff
# not is also in CheckFilelist.py
Patch47: noarch-lib64.diff Patch47: noarch-lib64.diff
Patch49: stricter-tags-check.diff Patch49: stricter-tags-check.diff
Patch50: suse-no-run-ldconfig.diff Patch50: suse-no-run-ldconfig.diff
Patch51: description-check.diff Patch51: description-check.diff
# this is the wrong place here
Patch52: suppress-for-perl-python.diff Patch52: suppress-for-perl-python.diff
Patch54: locale-update.diff Patch54: locale-update.diff
Patch57: suse-mono-deps-checks.diff Patch57: suse-mono-deps-checks.diff
Patch58: add-weak-dependencies.diff Patch58: add-weak-dependencies.diff
Patch60: selfconflicts-provide.diff Patch60: selfconflicts-provide.diff
Patch62: no-badness-return.diff Patch62: no-badness-return.diff
Patch63: suse-factory-config.diff
Patch65: suse-shlib-devel-dependency.diff Patch65: suse-shlib-devel-dependency.diff
Patch66: suse-no-python-base.diff Patch66: suse-no-python-base.diff
Patch67: suse-required-lsb-tags.diff Patch67: suse-required-lsb-tags.diff
@ -120,7 +124,7 @@ Authors:
%prep %prep
%setup -q -n rpmlint-%{version} %setup -q -n rpmlint-%{version}
%patch %patch0
%patch2 %patch2
%patch3 %patch3
%patch4 %patch4
@ -141,39 +145,40 @@ Authors:
%patch21 %patch21
%patch22 %patch22
%patch23 %patch23
%patch24 # bogus, fails with aaa_base. disabled
#patch24
%patch26 %patch26
%patch27 %patch27
%patch29 %patch29
%patch30 %patch30
#%patch31 #patch31
#%patch33 %patch33
#%patch34 #patch34
#%patch35 #patch35
#%patch37 %patch37
#%patch39 #patch39
#%patch41 #patch41
#%patch42 #patch42
#%patch46 #patch46
#%patch47 #patch47
#%patch49 #patch49
%patch50 %patch50
#%patch51 #patch51
#%patch52 #patch52
%patch54 %patch54
#%patch57 #patch57
#%patch58 %patch58
#%patch60 #patch60
#%patch62 %patch62
#%patch63 #patch63
#%patch65 #patch65
#%patch66 #patch66
#%patch67 #patch67
#%patch68 #patch68
#%patch69 #patch69
#%patch70 #patch70
#%patch71 #patch71
#%patch72 -p1 %patch72
cp -p %{SOURCE1} . cp -p %{SOURCE1} .
cp -p %{SOURCE2} . cp -p %{SOURCE2} .
cp -p %{SOURCE3} . cp -p %{SOURCE3} .

View File

@ -1,6 +1,8 @@
--- SourceCheck.py Index: SourceCheck.py
===================================================================
--- SourceCheck.py.orig
+++ SourceCheck.py +++ SourceCheck.py
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@ import Config
DEFAULT_VALID_SRC_PERMS = (0644, 0755) DEFAULT_VALID_SRC_PERMS = (0644, 0755)
@ -9,16 +11,16 @@
use_bzip2 = Config.getOption('UseBzip2', 1) use_bzip2 = Config.getOption('UseBzip2', 1)
valid_src_perms = Config.getOption("ValidSrcPerms", DEFAULT_VALID_SRC_PERMS) valid_src_perms = Config.getOption("ValidSrcPerms", DEFAULT_VALID_SRC_PERMS)
@@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@ class SourceCheck(AbstractCheck.Abstract
printError(pkg, 'multiple-specfiles', spec_file, fname) printError(pkg, 'multiple-specfiles', spec_file, fname)
else: else:
spec_file = fname spec_file = fname
- elif source_regex.search(fname): - elif source_regex.search(fname):
+ elif source_regex.search(fname) and files[f][4] > 120*1024: + elif source_regex.search(fname) and pkgfile.size > 120*1024:
if use_bzip2: if use_bzip2:
if not fname.endswith('.bz2'): if not fname.endswith('.bz2'):
printWarning(pkg, 'source-or-patch-not-bzipped', fname) printWarning(pkg, 'source-or-patch-not-bzipped', fname)
@@ -61,7 +61,9 @@ @@ -61,7 +61,9 @@ all your RPM information.''',
'source-or-patch-not-bzipped', 'source-or-patch-not-bzipped',
'''A source archive or file in your package is not bzipped (doesn't '''A source archive or file in your package is not bzipped (doesn't

View File

@ -1,10 +1,12 @@
--- Config.py Index: Config.py
===================================================================
--- Config.py.orig
+++ Config.py +++ Config.py
@@ -20,7 +20,6 @@ @@ -20,7 +20,6 @@ DEFAULT_CHECKS = ("DistributionCheck",
"FilesCheck", "FilesCheck",
"DocFilesCheck", "DocFilesCheck",
"FHSCheck", "FHSCheck",
- "SignatureCheck", - "SignatureCheck",
"I18NCheck", "I18NCheck",
"MenuCheck",
"PostCheck", "PostCheck",
"InitScriptCheck",

View File

@ -1,7 +1,9 @@
--- BinariesCheck.py Index: BinariesCheck.py
===================================================================
--- BinariesCheck.py.orig
+++ BinariesCheck.py +++ BinariesCheck.py
@@ -36,6 +36,8 @@ @@ -39,6 +39,8 @@ class BinaryInfo:
debug_file_regex=re.compile('\.debug$') debug_file_regex = re.compile('\.debug$')
exit_call_regex = re.compile('\s+FUNC\s+.*?\s+(_?exit(?:@\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|$)') fork_call_regex = re.compile('\s+FUNC\s+.*?\s+(fork(?:@\S+)?)(?:\s|$)')
+ debuginfo_regex=re.compile('^\s+\[\s*\d+\]\s+\.debug_.*\s+') + debuginfo_regex=re.compile('^\s+\[\s*\d+\]\s+\.debug_.*\s+')
@ -9,7 +11,7 @@
def __init__(self, pkg, path, file, is_ar, is_shlib): def __init__(self, pkg, path, file, is_ar, is_shlib):
self.readelf_error = 0 self.readelf_error = 0
@@ -50,6 +52,8 @@ @@ -53,6 +55,8 @@ class BinaryInfo:
self.exec_stack = 0 self.exec_stack = 0
self.exit_calls = [] self.exit_calls = []
fork_called = 0 fork_called = 0
@ -17,8 +19,8 @@
+ self.symtab=0 + self.symtab=0
self.tail = '' self.tail = ''
is_debug=BinaryInfo.debug_file_regex.search(path) is_debug = BinaryInfo.debug_file_regex.search(path)
@@ -102,6 +106,14 @@ @@ -105,6 +109,14 @@ class BinaryInfo:
fork_called = 1 fork_called = 1
continue continue
@ -31,11 +33,11 @@
+ continue + continue
+ +
if self.non_pic: if self.non_pic:
self.non_pic=BinaryInfo.non_pic_regex.search(res[1]) self.non_pic = BinaryInfo.non_pic_regex.search(res[1])
@@ -249,6 +261,17 @@ @@ -260,6 +272,17 @@ class BinariesCheck(AbstractCheck.Abstra
# inspect binary file bin_info = BinaryInfo(
bin_info=BinaryInfo(pkg, pkg.dirName()+i[0], i[0], is_ar, is_shlib) pkg, pkgfile.path, fname, is_ar, is_shlib)
+ # stripped static library + # stripped static library
+ if is_ar: + if is_ar:
@ -50,8 +52,8 @@
+ +
# so name in library # so name in library
if is_shlib: if is_shlib:
has_lib.append(i[0]) has_lib = True
@@ -475,6 +498,14 @@ @@ -488,6 +511,14 @@ with the intended shared libraries only.
'ldd-failed', 'ldd-failed',
'''Executing ldd on this file failed, all checks could not be run.''', '''Executing ldd on this file failed, all checks could not be run.''',

View File

@ -1,11 +0,0 @@
--- rpmlint.py
+++ rpmlint.py
@@ -225,7 +225,7 @@ conf_file='~/.rpmlintrc'
info_error=0
# load global config files
-for f in ('/usr/share/rpmlint/config','/etc/rpmlint/config'):
+for f in ('/usr/share/rpmlint/config','/etc/rpmlint/config','/etc/rpmlint/factory.config'):
try:
execfile(f)
except IOError:

View File

@ -1,6 +1,8 @@
--- FilesCheck.py Index: FilesCheck.py
===================================================================
--- FilesCheck.py.orig
+++ FilesCheck.py +++ FilesCheck.py
@@ -26,65 +26,114 @@ @@ -27,65 +27,114 @@ STANDARD_DIRS = (
'/', '/',
'/bin', '/bin',
'/boot', '/boot',
@ -142,7 +144,7 @@
'/usr/local/lib', '/usr/local/lib',
'/usr/local/lib64', '/usr/local/lib64',
'/usr/local/man', '/usr/local/man',
@@ -100,24 +149,415 @@ @@ -101,24 +150,415 @@ STANDARD_DIRS = (
'/usr/local/man/mann', '/usr/local/man/mann',
'/usr/local/sbin', '/usr/local/sbin',
'/usr/local/share', '/usr/local/share',
@ -569,7 +571,7 @@
'/usr/share/man', '/usr/share/man',
'/usr/share/man/man1', '/usr/share/man/man1',
'/usr/share/man/man2', '/usr/share/man/man2',
@@ -129,28 +569,60 @@ @@ -130,28 +570,60 @@ STANDARD_DIRS = (
'/usr/share/man/man8', '/usr/share/man/man8',
'/usr/share/man/man9', '/usr/share/man/man9',
'/usr/share/man/mann', '/usr/share/man/mann',
@ -635,4 +637,4 @@
+ '/var/tmp/vi.recover', + '/var/tmp/vi.recover',
) )
DEFAULT_GAMES_GROUPS='Games' DEFAULT_GAMES_GROUPS = 'Games'

View File

@ -1,8 +1,10 @@
--- SpecCheck.py Index: SpecCheck.py
===================================================================
--- SpecCheck.py.orig
+++ SpecCheck.py +++ SpecCheck.py
@@ -359,6 +359,10 @@ class SpecCheck(AbstractCheck.AbstractCheck): @@ -387,6 +387,10 @@ class SpecCheck(AbstractCheck.AbstractCh
if scriptlet_requires_regex.search(line) and current_section == 'package': for obs in unversioned(deptokens(res.group(1))):
printError(pkg, 'broken-syntax-in-scriptlet-requires', string.strip(line)) printWarning(pkg, 'unversioned-explicit-obsoletes', obs)
+ if current_section in ('post', 'postun'): + if current_section in ('post', 'postun'):
+ if line.find('%run_ldconfig') != -1: + if line.find('%run_ldconfig') != -1:
@ -11,7 +13,7 @@
if current_section == 'changelog': if current_section == 'changelog':
res = macro_regex.search(line) res = macro_regex.search(line)
if res and len(res.group(1)) % 2: if res and len(res.group(1)) % 2:
@@ -572,6 +576,14 @@ will break short circuiting.''', @@ -602,6 +606,14 @@ will break short circuiting.''',
'''Make check or other automated regression test should be run in %check, as '''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.''', they can be disabled with a rpm macro for short circuiting purposes.''',

View File

@ -1,14 +1,14 @@
also detect RCS files also detect RCS files
Index: rpmlint-0.84/FilesCheck.py Index: FilesCheck.py
=================================================================== ===================================================================
--- rpmlint-0.84.orig/FilesCheck.py --- FilesCheck.py.orig
+++ rpmlint-0.84/FilesCheck.py +++ FilesCheck.py
@@ -655,7 +655,7 @@ ldconfig_regex=re.compile('^[^#]*ldconfi @@ -662,7 +662,7 @@ ldconfig_regex = re.compile('^[^#]*ldcon
depmod_regex=re.compile('^[^#]*depmod', re.MULTILINE) depmod_regex = re.compile('^[^#]*depmod', re.MULTILINE)
install_info_regex=re.compile('^[^#]*install-info', re.MULTILINE) install_info_regex = re.compile('^[^#]*install-info', re.MULTILINE)
perl_temp_file=re.compile('.*perl.*/(\.packlist|perllocal\.pod)$') perl_temp_file_regex = re.compile('.*perl.*/(\.packlist|perllocal\.pod)$')
-scm_regex=re.compile('/CVS/[^/]+$|/\.(cvs|git|hg)ignore$|/\.hgtags$|/\.(git|hg|svn)/|/(\.arch-ids|{arch})/') -scm_regex = re.compile('/CVS/[^/]+$|/\.(bzr|cvs|git|hg)ignore$|/\.hgtags$|/\.(bzr|git|hg|svn)/|/(\.arch-ids|{arch})/')
+scm_regex=re.compile('/(CVS|RCS)(/[^/]+)?$|/\.(cvs|git|hg)ignore$|/\.hgtags$|/\.(git|hg|svn)/|/(\.arch-ids|{arch})/|,v$') +scm_regex=re.compile('/(CVS|RCS)(/[^/]+)?$|/\.(bzr|cvs|git|hg)ignore$|/\.hgtags$|/\.(bzr|git|hg|svn)/|/(\.arch-ids|{arch})/|,v$')
htaccess_regex=re.compile('\.htaccess$') games_path_regex = re.compile('^/usr(/lib(64)?)?/games/')
games_path_regex=re.compile('^/usr(/lib(64)?)?/games/') games_group_regex = re.compile(Config.getOption('RpmGamesGroups', DEFAULT_GAMES_GROUPS))
games_group_regex=re.compile(Config.getOption('RpmGamesGroups', DEFAULT_GAMES_GROUPS)) dangling_exceptions = Config.getOption('DanglingSymlinkExceptions', DEFAULT_DANGLING_EXCEPTIONS)