diff --git a/config b/config index ac27374..cee7889 100644 --- a/config +++ b/config @@ -497,7 +497,6 @@ addFilter(" dangerous-command.*") addFilter(" setuid-binary.*") addFilter(".*FSSTND-dir-in-var /var/adm/.*") addFilter("subdir-in-bin /sbin/conf.d/") -addFilter(" invalid-license") addFilter(".* nss_db non-standard-dir-in-var db") addFilter("non-standard-dir-in-usr openwin") addFilter("ibcs2 non-standard-dir-in-usr i486-sysv4") diff --git a/licenses.config b/licenses.config new file mode 100644 index 0000000..9c2c877 --- /dev/null +++ b/licenses.config @@ -0,0 +1,169 @@ +# -*- python -*- +# vim: syntax=python sw=4 et + +# This line is mandatory to access the configuration functions +from Config import * +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 +their exact spelling.""") + +# from http://www.spdx.org/licenses/ +setOption('ValidLicenses', ( + 'AFL-1.2', + 'AFL-2.0', + 'AFL-2.1', + 'AFL-3.0', + 'APL-1.0', + 'ANTLR-PD', + 'Apache-1.0', + 'Apache-1.1', + 'Apache-2.0', + 'APSL-1.0', + 'APSL-1.1', + 'APSL-1.2', + 'APSL-2.0', + 'Artistic-1.0', + 'Artistic-2.0', + 'AAL', + 'BSL-1.0', + 'BSD-2-Clause', + 'BSD-3-Clause', + 'BSD-4-Clause', + 'CECILL-1.0', + 'CECILL-1.1English', + 'CECILL-2.0', + 'CECILL-B', + 'CECILL-C', + 'ClArtistic', + 'CDDL-1.0', + 'CPAL-1.0', + 'CPL-1.0', + 'CATOSL-1.1', + 'CC-BY-1.0', + 'CC-BY-2.0', + 'CC-BY-2.5', + 'CC-BY-3.0', + 'CC-BY-ND-1.0', + 'CC-BY-ND-2.0', + 'CC-BY-ND-2.5', + 'CC-BY-ND-3.0', + 'CC-BY-NC-1.0', + 'CC-BY-NC-2.0', + 'CC-BY-NC-2.5', + 'CC-BY-NC-3.0', + 'CC-BY-NC-ND-1.0', + 'CC-BY-NC-ND-2.0', + 'CC-BY-NC-ND-2.5', + 'CC-BY-NC-ND-3.0', + 'CC-BY-NC-SA-1.0', + 'CC-BY-NC-SA-2.0', + 'CC-BY-NC-SA-2.5', + 'CC-BY-NC-SA-3.0', + 'CC-BY-SA-1.0', + 'CC-BY-SA-2.0', + 'CC-BY-SA-2.5', + 'CC-BY-SA-3.0', + 'CC0-1.0', + 'CUA-OPL-1.0', + 'EPL-1.0', + 'eCos-2.0', + 'ECL-1.0', + 'ECL-2.0', + 'EFL-1.0', + 'EFL-2.0', + 'Entessa', + 'ErlPL-1.1', + 'EUDatagrid', + 'EUPL-1.0', + 'EUPL-1.1', + 'Fair', + 'Frameworx-1.0', + 'AGPL-3.0', + 'GFDL-1.1', + 'GFDL-1.2', + 'GFDL-1.3', + 'GPL-1.0', + 'GPL-1.0+', + 'GPL-2.0', + 'GPL-2.0+', + 'GPL-2.0-with-autoconf-exception', + 'GPL-2.0-with-bison-exception', + 'GPL-2.0-with-classpath-exception', + 'GPL-2.0-with-font-exception', + 'GPL-2.0-with-GCC-exception', + 'GPL-3.0', + 'GPL-3.0+', + 'GPL-3.0-with-autoconf-exception', + 'GPL-3.0-with-GCC-exception', + 'LGPL-2.1', + 'LGPL-2.1+', + 'LGPL-3.0', + 'LGPL-3.0+', + 'LGPL-2.0', + 'LGPL-2.0+', + 'gSOAP-1.3b', + 'HPND', + 'IPL-1.0', + 'IPA', + 'ISC', + 'LPPL-1.0', + 'LPPL-1.1', + 'LPPL-1.2', + 'LPPL-1.3c', + 'Libpng', + 'LPL-1.02', + 'MS-PL', + 'MS-RL', + 'MirOS', + 'MIT', + 'Motosoto', + 'MPL-1.0', + 'MPL-1.1', + 'Multics', + 'NASA-1.3', + 'Naumen', + 'NGPL', + 'Nokia', + 'NPOSL-3.0', + 'NTP', + 'OCLC-2.0', + 'ODbL-1.0', + 'PDDL-1.0', + 'OGTSL', + 'OSL-1.0', + 'OSL-2.0', + 'OSL-3.0', + 'OLDAP-2.8', + 'OpenSSL', + 'PHP-3.01', + 'PostgreSQL', + 'Python-2.0', + 'QPL-1.0', + 'RPSL-1.0', + 'RPL-1.5', + 'RHeCos-1.1', + 'RSCPL', + 'Ruby', + 'SAX-PD', + 'OFL-1.1', + 'SimPL-2.0', + 'Sleepycat', + 'SugarCRM-1.1.3', + 'SPL-1.0', + 'Watcom-1.0', + 'NCSA', + 'VSL-1.0', + 'W3C', + 'WXwindows', + 'Xnet', + 'XFree86-1.1', + 'YPL-1.1', + 'Zimbra-1.3', + 'Zlib', + 'ZPL-1.1', + 'ZPL-2.0', + 'ZPL-2.1', +)) diff --git a/rpmgroup-checks.diff b/rpmgroup-checks.diff index 2457d50..5854f91 100644 --- a/rpmgroup-checks.diff +++ b/rpmgroup-checks.diff @@ -6,7 +6,7 @@ Index: TagsCheck.py self._unexpanded_macros(pkg, 'Group', group) if not group: printError(pkg, 'no-group-tag') -+ elif pkg.name.find('-devel') != -1 and not group.startswith('Development/'): ++ elif pkg.name.endswith('-devel') and not group.startswith('Development/'): + printWarning(pkg, 'devel-package-with-non-devel-group', group) elif VALID_GROUPS and group not in VALID_GROUPS: printWarning(pkg, 'non-standard-group', group) diff --git a/rpmlint.changes b/rpmlint.changes index e33f4fb..4ef98f5 100644 --- a/rpmlint.changes +++ b/rpmlint.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Tue Nov 29 12:39:47 UTC 2011 - lnussel@suse.de + +- fix devel-package-with-non-devel-group check (bnc#732897) + +------------------------------------------------------------------- +Tue Nov 29 12:08:30 UTC 2011 - lnussel@suse.de + +- enable license check + ------------------------------------------------------------------- Mon Nov 28 11:00:43 UTC 2011 - lnussel@suse.de diff --git a/rpmlint.spec b/rpmlint.spec index b8c0536..415f8cc 100644 --- a/rpmlint.spec +++ b/rpmlint.spec @@ -50,6 +50,7 @@ Source21: BashismsCheck.py Source22: CheckGNOMEMacros.py Source23: CheckBuildDate.py Source24: pie.config +Source25: licenses.config Source100: syntax-validator.py Url: http://rpmlint.zarb.org/ License: GPLv2+ @@ -125,6 +126,7 @@ Patch86: suse-rclink-check.diff # accepted upstream Patch88: suse-speccheck-utf8.diff Patch89: suse-python-abi-check.diff +Patch90: suse-allow-semicolon-as-license-separator.diff %py_requires %description @@ -204,6 +206,7 @@ Authors: #patch87 -p1 %patch88 %patch89 +%patch90 -p1 cp -p %{SOURCE1} . cp -p %{SOURCE2} . cp -p %{SOURCE3} . @@ -240,6 +243,7 @@ head -n 8 $RPM_BUILD_ROOT/usr/share/rpmlint/config > $RPM_BUILD_ROOT/etc/rpmlint python -tt %{SOURCE100} $RPM_BUILD_ROOT/usr/share/rpmlint/*.py $RPM_BUILD_ROOT/usr/share/rpmlint/config %__install -m 644 %{SOURCE20} %{buildroot}/%{_sysconfdir}/rpmlint/ %__install -m 644 %{SOURCE24} %{buildroot}/%{_sysconfdir}/rpmlint/ +%__install -m 644 %{SOURCE25} %{buildroot}/%{_sysconfdir}/rpmlint/ %clean rm -rf $RPM_BUILD_ROOT @@ -252,6 +256,7 @@ rm -rf $RPM_BUILD_ROOT %config(noreplace) /etc/rpmlint/config %config %{_sysconfdir}/rpmlint/rpmgroups.config %config %{_sysconfdir}/rpmlint/pie.config +%config %{_sysconfdir}/rpmlint/licenses.config %dir /etc/rpmlint /usr/share/man/man1/rpmlint.1.gz diff --git a/suse-allow-semicolon-as-license-separator.diff b/suse-allow-semicolon-as-license-separator.diff new file mode 100644 index 0000000..a65bd1b --- /dev/null +++ b/suse-allow-semicolon-as-license-separator.diff @@ -0,0 +1,25 @@ +From c867bce77f67c562a3f704d58dc7a30042f23081 Mon Sep 17 00:00:00 2001 +From: Ludwig Nussel +Date: Tue, 29 Nov 2011 10:39:05 +0100 +Subject: [PATCH] allow semicolon as license separator + +--- + TagsCheck.py | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/TagsCheck.py b/TagsCheck.py +index 762f465..5140202 100644 +--- a/TagsCheck.py ++++ b/TagsCheck.py +@@ -417,7 +417,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+') + pkg_config_regex = re.compile('^/usr/(?:lib\d*|share)/pkgconfig/') +-license_regex = re.compile('\(([^)]+)\)|\s(?:and|or)\s') ++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 + forbidden_words_regex = re.compile('(' + Config.getOption('ForbiddenWords') + ')', re.IGNORECASE) +-- +1.7.7 +