forked from pool/rpmlint
Accepting request 398188 from devel:openSUSE:Factory:rpmlint
- suse-spdx-license-exceptions.patch, suse-sysv-init-checks.diff: adjust to match rpmlint-tests again - update link to list of valid licenses - temporary approval for tcmu-runner dbus service (bsc#978903) - add omit_BUILDROOT_from_pyo_files.patch (boo#978306) - add suse-spdx-license-exceptions.patch (bsc#973404) OBS-URL: https://build.opensuse.org/request/show/398188 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpmlint?expand=0&rev=250
This commit is contained in:
commit
aa5e5503de
5
config
5
config
@ -703,7 +703,10 @@ setOption("DBUSServices.WhiteList", (
|
||||
"net.hadess.SensorProxy.service",
|
||||
# openattic (bsc#972478)
|
||||
"openattic.conf",
|
||||
"openattic.service"
|
||||
"openattic.service",
|
||||
# TEMPORARY APPROVAL ONLY (meissner 20160519) tcmu-runner (bsc#978903)
|
||||
"tcmu-runner.conf",
|
||||
"org.kernel.TCMUService1.service"
|
||||
))
|
||||
|
||||
setOption("PAMModules.WhiteList", (
|
||||
|
@ -7,7 +7,7 @@ from Filter import addDetails
|
||||
|
||||
addDetails('invalid-license',
|
||||
"""The specified license string is not recognized. Please refer to
|
||||
http://license.opensuse.org/ for the list of known licences and
|
||||
https://spdx.org/licenses/ for the list of known licenses and
|
||||
their exact spelling.""")
|
||||
|
||||
# from http://www.spdx.org/licenses/
|
||||
|
14
omit_BUILDROOT_from_pyo_files.patch
Normal file
14
omit_BUILDROOT_from_pyo_files.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff -u rpmlint-rpmlint-1.8.orig/Makefile rpmlint-rpmlint-1.8/Makefile
|
||||
--- rpmlint-rpmlint-1.8.orig/Makefile 2016-05-03 18:21:47.823504438 +0200
|
||||
+++ rpmlint-rpmlint-1.8/Makefile 2016-05-03 18:25:11.746636047 +0200
|
||||
@@ -39,9 +39,7 @@
|
||||
$(DESTDIR)$(LIBDIR)/[A-Z]*.py \
|
||||
$(DESTDIR)$(LIBDIR)/__*__.py ; \
|
||||
fi
|
||||
- $(PYTHON) -O -m py_compile \
|
||||
- $(DESTDIR)$(LIBDIR)/[A-Z]*.py \
|
||||
- $(DESTDIR)$(LIBDIR)/__*__.py ; \
|
||||
+ $(PYTHON) -O -m compileall -d $(LIBDIR) $(DESTDIR)$(LIBDIR)
|
||||
for file in rpmlint rpmdiff ; do \
|
||||
sed -e "s,#!/usr/bin/python ,#!$(PYTHON) ," $$file > $(DESTDIR)$(BINDIR)/$$file ; \
|
||||
chmod +x $(DESTDIR)$(BINDIR)/$$file ; \
|
@ -1,3 +1,29 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu May 19 19:49:25 UTC 2016 - dmueller@suse.com
|
||||
|
||||
- suse-spdx-license-exceptions.patch, suse-sysv-init-checks.diff:
|
||||
adjust to match rpmlint-tests again
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 19 19:11:40 UTC 2016 - dmueller@suse.com
|
||||
|
||||
- update link to list of valid licenses
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu May 19 12:00:09 UTC 2016 - meissner@suse.com
|
||||
|
||||
- temporary approval for tcmu-runner dbus service (bsc#978903)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 3 16:33:33 UTC 2016 - stefan.bruens@rwth-aachen.de
|
||||
|
||||
- add omit_BUILDROOT_from_pyo_files.patch (boo#978306)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 6 09:31:04 UTC 2016 - dmueller@suse.com
|
||||
|
||||
- add suse-spdx-license-exceptions.patch (bsc#973404)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 30 12:10:04 UTC 2016 - krahmer@suse.com
|
||||
|
||||
|
90
rpmlint.spec
90
rpmlint.spec
@ -66,52 +66,54 @@ 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: stricter-interpreter-check.diff
|
||||
Patch34: confusing-invalid-spec-name.diff
|
||||
Patch35: rpmlint-pkg-quoting.diff
|
||||
Patch36: suse-g-ir-chech.diff
|
||||
Patch37: remove-expand-macros.diff
|
||||
Patch38: suse-whitelist-opensuse.diff
|
||||
Patch39: extend-suse-conffiles-check.diff
|
||||
Patch40: compressed-backup-regex.diff
|
||||
Patch41: suse-speccheck-utf8.diff
|
||||
Patch42: suse-python-abi-check.diff
|
||||
Patch43: suse-manpages-for-rc-scripts.diff
|
||||
Patch44: suse-ignore-specfile-errors.diff
|
||||
Patch45: invalid-filerequires.diff
|
||||
Patch46: suse-sysv-init-checks.diff
|
||||
Patch47: check-for-self-provides.diff
|
||||
Patch48: add-check-for-tmpfiles-created-at-r.diff
|
||||
Patch49: remove-files-attr-not-set-check.diff
|
||||
Patch50: fix-shared-library-matching.diff
|
||||
Patch10: suse-spdx-license-exceptions.patch
|
||||
Patch20: usr-arch.diff
|
||||
Patch21: script-interpreter-only-for-exec-sc.diff
|
||||
Patch22: sourced-dirs.diff
|
||||
Patch23: suse-filter-more-verbose.diff
|
||||
Patch24: docdata-examples.diff
|
||||
Patch25: yast-provides.diff
|
||||
Patch26: xdg-paths-update.diff
|
||||
Patch27: better-wrong-script.diff
|
||||
Patch28: buildroot-doc.diff
|
||||
Patch29: rpmgroup-checks.diff
|
||||
Patch30: devel-provide-is-devel-package.diff
|
||||
Patch31: only-reg-files-are-scripts.diff
|
||||
Patch32: buildroot-in-scripts.diff
|
||||
Patch33: libtool-wrapper-check.diff
|
||||
Patch34: suse-check-optional-dependencies.diff
|
||||
Patch35: noarch-lib64.diff
|
||||
Patch36: suse-no-run-ldconfig.diff
|
||||
Patch37: description-check.diff
|
||||
Patch38: add-weak-dependencies.diff
|
||||
Patch39: selfconflicts-provide.diff
|
||||
Patch40: no-badness-return.diff
|
||||
Patch41: suse-shlib-devel-dependency.diff
|
||||
Patch42: version-control-internal-file.diff
|
||||
Patch43: stricter-interpreter-check.diff
|
||||
Patch44: confusing-invalid-spec-name.diff
|
||||
Patch45: rpmlint-pkg-quoting.diff
|
||||
Patch46: suse-g-ir-chech.diff
|
||||
Patch47: remove-expand-macros.diff
|
||||
Patch48: suse-whitelist-opensuse.diff
|
||||
Patch49: extend-suse-conffiles-check.diff
|
||||
Patch50: compressed-backup-regex.diff
|
||||
Patch51: suse-speccheck-utf8.diff
|
||||
Patch52: suse-python-abi-check.diff
|
||||
Patch53: suse-manpages-for-rc-scripts.diff
|
||||
Patch54: suse-ignore-specfile-errors.diff
|
||||
Patch55: invalid-filerequires.diff
|
||||
Patch56: suse-sysv-init-checks.diff
|
||||
Patch57: check-for-self-provides.diff
|
||||
Patch58: add-check-for-tmpfiles-created-at-r.diff
|
||||
Patch59: remove-files-attr-not-set-check.diff
|
||||
Patch60: fix-shared-library-matching.diff
|
||||
# https://github.com/rpm-software-management/rpmlint/commit/1436dd7bc41115af658cf8f36a3149ab90a61fcf.patch
|
||||
Patch51: postin-speedup.diff
|
||||
Patch61: postin-speedup.diff
|
||||
# https://github.com/rpm-software-management/rpmlint/commit/37fe9d4f237c2cb29fcb3b60d1ece189e578eeaf.patch and followup regression fixes
|
||||
Patch52: binaryinfo-speedup.diff
|
||||
Patch53: 0001-Avoid-messing-with-the-error-encoding-Fixes-61.patch
|
||||
Patch62: binaryinfo-speedup.diff
|
||||
Patch63: 0001-Avoid-messing-with-the-error-encoding-Fixes-61.patch
|
||||
Patch64: omit_BUILDROOT_from_pyo_files.patch
|
||||
# PATCHLIST END
|
||||
# BuildArch must at the end. is a bug: https://bugzilla.suse.com/show_bug.cgi?id=926766
|
||||
BuildArch: noarch
|
||||
|
109
suse-spdx-license-exceptions.patch
Normal file
109
suse-spdx-license-exceptions.patch
Normal file
@ -0,0 +1,109 @@
|
||||
From a7e8eca225a09c08742627af7b0c9bc7db9f44b3 Mon Sep 17 00:00:00 2001
|
||||
From: Dirk Mueller <dirk@dmllr.de>
|
||||
Date: Wed, 6 Apr 2016 11:29:40 +0200
|
||||
Subject: [PATCH] Handle SPDX style license exceptions
|
||||
|
||||
---
|
||||
TagsCheck.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 50 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/TagsCheck.py b/TagsCheck.py
|
||||
index f5b7516..ada84f7 100644
|
||||
--- a/TagsCheck.py
|
||||
+++ b/TagsCheck.py
|
||||
@@ -139,6 +139,34 @@ DEFAULT_VALID_LICENSES = (
|
||||
'Shareware',
|
||||
)
|
||||
|
||||
+DEFAULT_VALID_LICENSE_EXCEPTIONS = (
|
||||
+ '389-exception',
|
||||
+ 'Autoconf-exception-2.0',
|
||||
+ 'Autoconf-exception-3.0',
|
||||
+ 'Bison-exception-2.2',
|
||||
+ 'CLISP-exception-2.0',
|
||||
+ 'Classpath-exception-2.0',
|
||||
+ 'DigiRule-FOSS-exception',
|
||||
+ 'FLTK-exception',
|
||||
+ 'Fawkes-Runtime-exception',
|
||||
+ 'Font-exception-2.0',
|
||||
+ 'GCC-exception-2.0',
|
||||
+ 'GCC-exception-3.1',
|
||||
+ 'LZMA-exception',
|
||||
+ 'Libtool-exception',
|
||||
+ 'Nokia-Qt-exception-1.1',
|
||||
+ 'OCCT-exception-1.0',
|
||||
+ 'Qwt-exception-1.0',
|
||||
+ 'WxWindows-exception-3.1',
|
||||
+ 'eCos-exception-2.0',
|
||||
+ 'freertos-exception-2.0',
|
||||
+ 'gnu-javamail-exception',
|
||||
+ 'i2p-gpl-java-exception',
|
||||
+ 'mif-exception',
|
||||
+ 'openvpn-openssl-exception',
|
||||
+ 'u-boot-exception-2.0',
|
||||
+)
|
||||
+
|
||||
BAD_WORDS = {
|
||||
'alot': 'a lot',
|
||||
'accesnt': 'accent',
|
||||
@@ -404,6 +432,7 @@ VALID_GROUPS = Config.getOption('ValidGroups', None)
|
||||
if VALID_GROUPS is None: # get defaults from rpm package only if it's not set
|
||||
VALID_GROUPS = Pkg.get_default_valid_rpmgroups()
|
||||
VALID_LICENSES = Config.getOption('ValidLicenses', DEFAULT_VALID_LICENSES)
|
||||
+VALID_LICENSE_EXCEPTIONS = Config.getOption('ValidLicenseExceptions', DEFAULT_VALID_LICENSE_EXCEPTIONS)
|
||||
INVALID_REQUIRES = map(re.compile, Config.getOption('InvalidRequires', DEFAULT_INVALID_REQUIRES))
|
||||
packager_regex = re.compile(Config.getOption('Packager'))
|
||||
changelog_version_regex = re.compile('[^>]([^ >]+)\s*$')
|
||||
@@ -417,6 +446,7 @@ 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+')
|
||||
license_regex = re.compile('\(([^)]+)\)|\s(?:and|or)\s')
|
||||
+license_exception_regex = re.compile('(\S+)\sWITH\s(\S+)')
|
||||
invalid_version_regex = re.compile('([0-9](?:rc|alpha|beta|pre).*)', re.IGNORECASE)
|
||||
# () are here for grouping purpose in the regexp
|
||||
forbidden_words_regex = re.compile('(' + Config.getOption('ForbiddenWords') + ')', re.IGNORECASE)
|
||||
@@ -776,6 +806,10 @@ class TagsCheck(AbstractCheck.AbstractCheck):
|
||||
# printWarning(pkg, 'package-provides-itself')
|
||||
# break
|
||||
|
||||
+ def split_license_exception(license):
|
||||
+ x, y = license_exception_regex.split(license)[1:3] or (license, "")
|
||||
+ return x.strip(), y.strip()
|
||||
+
|
||||
def split_license(license):
|
||||
return (x.strip() for x in
|
||||
(l for l in license_regex.split(license) if l))
|
||||
@@ -786,7 +820,17 @@ class TagsCheck(AbstractCheck.AbstractCheck):
|
||||
else:
|
||||
valid_license = True
|
||||
if rpm_license not in VALID_LICENSES:
|
||||
- for l1 in split_license(rpm_license):
|
||||
+ license_string = rpm_license
|
||||
+
|
||||
+ l1, lexception = split_license_exception(rpm_license)
|
||||
+ # SPDX allows "<license> WITH <license-exception>"
|
||||
+ if lexception:
|
||||
+ license_string = l1
|
||||
+ if lexception not in VALID_LICENSE_EXCEPTIONS:
|
||||
+ printWarning(pkg, 'invalid-license-exception', lexception)
|
||||
+ valid_license = False
|
||||
+
|
||||
+ for l1 in split_license(license_string):
|
||||
if l1 in VALID_LICENSES:
|
||||
continue
|
||||
for l2 in split_license(l1):
|
||||
@@ -1062,6 +1106,11 @@ your specfile.''',
|
||||
'''The value of the License tag was not recognized. Known values are:
|
||||
"%s".''' % '", "'.join(VALID_LICENSES),
|
||||
|
||||
+'invalid-license-exception',
|
||||
+'''The ' WITH <x> ' license exception of the License tag was not recognized.
|
||||
+Known values are:
|
||||
+"%s".''' % '", "'.join(VALID_LICENSE_EXCEPTIONS),
|
||||
+
|
||||
'obsolete-not-provided',
|
||||
'''If a package is obsoleted by a compatible replacement, the obsoleted package
|
||||
should also be provided in order to not cause unnecessary dependency breakage.
|
||||
--
|
||||
2.7.4
|
||||
|
@ -16,8 +16,8 @@ index f9b13a1..f81a450 100644
|
||||
'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')
|
||||
+stop_on_removal_regex=re.compile('bin/systemctl stop (?!.+\.service).+')
|
||||
+restart_on_update_regex=re.compile('bin/systemctl try-restart (?!.+\.service).+')
|
||||
+insserv_cleanup_regex=re.compile('^\s*/sbin/insserv /etc/init.d$', re.MULTILINE)
|
||||
|
||||
class InitScriptCheck(AbstractCheck.AbstractCheck):
|
||||
|
Loading…
Reference in New Issue
Block a user