SHA256
1
0
forked from pool/rpmlint

Accepting request 533398 from devel:openSUSE:Factory:rpmlint

- Update to version 84.87+git20171011.8b163ac:
  * Trying to fixup the erlang check

- Update to version 84.87+git20171011.856375f:
  * Add unit test for ErlangCheck

- Update to version 84.87+git20171010.a53d9bd:
  * Remove appdata related tests, those are upstream now

- Update to version 84.87+git20171009.dfac67b:
  * Adjust output for enabled non-std group checks

- Update to version master:
  * Python 3.x porting of the ErlangCheck

- Update to version master:
  * Treat strongly versioned libs also as compliant (bsc#723726)
  * LibraryPolicy: allow %%_licensedir in packages (used by %license)
- Hide the noisy warnings

- add 0001-Avoid-false-positives-on-is_elf-check.patch (bsc#1057216)
  add 0007-Validate-Appdata-also-when-appstream-util-is-unavail.patch
- Update rpmlint-checks to version master:
  * Fix false positives for -theme- -> -branding- rename
  * Stop leaking filedescriptors
  * Pythonic fixes
  * Drop CheckAppdata (there is AppDataCheck upstream)
  * Tighten ELF check
  * Tiny code formatting cleanup
  * Tighten the branding policy reporting a bit to make it less confusing

OBS-URL: https://build.opensuse.org/request/show/533398
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/rpmlint?expand=0&rev=282
This commit is contained in:
Dominique Leuenberger 2017-10-18 08:43:58 +00:00 committed by Git OBS Bridge
commit e9d193777e
12 changed files with 424 additions and 22 deletions

View File

@ -0,0 +1,28 @@
From 5a0f99a9f522944a0933cd06f9010a96bef9b7b3 Mon Sep 17 00:00:00 2001
From: Dirk Mueller <dirk@dmllr.de>
Date: Tue, 10 Oct 2017 11:02:57 +0200
Subject: [PATCH] Avoid false positives on is_elf check
"symbolic link to `SELF-WE-PD-XXL.wings'"
matched the "ELF" in magic logic. So make it more strict
by enforcing that the magic needs to start with "ELF "
which seems to match everywhere (PIE executables, normal
executables, ELF libs).
---
BinariesCheck.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: rpmlint-rpmlint-1.10/BinariesCheck.py
===================================================================
--- rpmlint-rpmlint-1.10.orig/BinariesCheck.py
+++ rpmlint-rpmlint-1.10/BinariesCheck.py
@@ -372,7 +372,7 @@ class BinariesCheck(AbstractCheck.Abstra
(fname.startswith("/usr/lib64") or fname.startswith("/lib64")):
file_in_lib64 = True
- is_elf = 'ELF' in pkgfile.magic
+ is_elf = pkgfile.magic.startswith('ELF ')
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

View File

@ -0,0 +1,47 @@
From 33b3aab641f6f71f33fd87f1e1b41ea2e74f48e3 Mon Sep 17 00:00:00 2001
From: Dirk Mueller <dirk@dmllr.de>
Date: Sun, 1 Oct 2017 14:36:40 +0200
Subject: [PATCH] Validate Appdata also when appstream-util is unavailable
When the dependency isn't installed, we can at least still
validate whether the input is valid XML or not. As we're
not printing any validation results anyway this is good
enough.
---
AppDataCheck.py | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
Index: rpmlint-rpmlint-1.10/AppDataCheck.py
===================================================================
--- rpmlint-rpmlint-1.10.orig/AppDataCheck.py
+++ rpmlint-rpmlint-1.10/AppDataCheck.py
@@ -10,6 +10,7 @@ import AbstractCheck
import Config
from Filter import addDetails, printError
from Pkg import getstatusoutput
+import xml.etree.ElementTree as ET
STANDARD_BIN_DIRS = ['/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/']
DEFAULT_APPDATA_CHECKER = ('appstream-util', 'validate-relax')
@@ -28,12 +29,18 @@ class AppDataCheck(AbstractCheck.Abstrac
def check_file(self, pkg, filename):
root = pkg.dirName()
f = root + filename
+ validation_failed = False
try:
st = getstatusoutput(appdata_checker + (f,))
+ # Return code nonzero?
+ validation_failed = (st[0] != 0)
except OSError:
- # ignore if the checker is not installed
- return
- if st[0]:
+ # checker is not installed, do a validation manually
+ try:
+ ET.parse(pkg.dirName() + filename)
+ except ET.ParseError:
+ validation_failed = True
+ if validation_failed:
printError(pkg, 'invalid-appdata-file', filename)

View File

@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/openSUSE/rpmlint-tests.git</param>
<param name="changesrevision">a05216ca4502eb1c029f68534ada12092e139999</param></service><service name="tar_scm">
<param name="changesrevision">8b163ac0aaf41e8424edbc4074a60f18e9cb9438</param></service><service name="tar_scm">
<param name="url">https://github.com/openSUSE/rpmlint-checks.git</param>
<param name="changesrevision">b82179a9c8d48a3573e8c4f4770500d1fe932921</param></service></servicedata>
<param name="changesrevision">c90062ef30ec343a060331f1b867e9f30d2951bf</param></service></servicedata>

253
config
View File

@ -38,7 +38,6 @@ addCheck("CheckBuildDate")
addCheck("CheckLogrotate")
addCheck("CheckPAMModules")
addCheck("CheckRCLinks")
addCheck("CheckAppdata")
addCheck("CheckSystemdInstall")
addCheck("TmpFilesCheck")
addCheck("CheckSysVinitOnSystemd")
@ -71,7 +70,249 @@ setOption("CompressExtension", None)
setOption('UseVarLockSubsys', False)
setOption("BadnessThreshold", 1000)
setOption('ValidGroups', [])
# keep in sync with https://en.opensuse.org/openSUSE:Package_group_guidelines
setOption('ValidGroups', [
'Amusements/Games/3D/Other',
'Amusements/Games/3D/Race',
'Amusements/Games/3D/Shoot',
'Amusements/Games/3D/Simulation',
'Amusements/Games/Action/Arcade',
'Amusements/Games/Action/Breakout',
'Amusements/Games/Action/Other',
'Amusements/Games/Action/Race',
'Amusements/Games/Action/Shoot',
'Amusements/Games/Board/Card',
'Amusements/Games/Board/Chess',
'Amusements/Games/Board/Other',
'Amusements/Games/Board/Pool',
'Amusements/Games/Board/Puzzle',
'Amusements/Games/Logic',
'Amusements/Games/Other',
'Amusements/Games/RPG',
'Amusements/Games/Strategy/Other',
'Amusements/Games/Strategy/Real Time',
'Amusements/Games/Strategy/Turn Based',
'Amusements/Teaching/Language',
'Amusements/Teaching/Mathematics',
'Amusements/Teaching/Other',
'Amusements/Toys/Background',
'Amusements/Toys/Clocks',
'Amusements/Toys/Graphics',
'Amusements/Toys/Other',
'Amusements/Toys/Screensavers',
'Development/Languages/C and C++',
'Development/Languages/Fortran',
'Development/Languages/Haskell',
'Development/Languages/Java',
'Development/Languages/Other',
'Development/Languages/Perl',
'Development/Languages/Python',
'Development/Languages/Ruby',
'Development/Languages/Scheme',
'Development/Languages/Tcl',
'Development/Libraries/C and C++',
'Development/Libraries/Cross',
'Development/Libraries/GNOME',
'Development/Libraries/Haskell',
'Development/Libraries/Java',
'Development/Libraries/KDE',
'Development/Libraries/Other',
'Development/Libraries/Parallel',
'Development/Libraries/Perl',
'Development/Libraries/Python',
'Development/Libraries/Tcl',
'Development/Libraries/X11',
'Development/Libraries/YaST',
'Development/Sources',
'Development/Tools/Building',
'Development/Tools/Debuggers',
'Development/Tools/Doc Generators',
'Development/Tools/GUI Builders',
'Development/Tools/IDE',
'Development/Tools/Navigators',
'Development/Tools/Other',
'Development/Tools/Version Control',
'Documentation/Howto',
'Documentation/HTML',
'Documentation/Man',
'Documentation/Other',
'Documentation/SUSE',
'Hardware/Camera',
'Hardware/Fax',
'Hardware/ISDN',
'Hardware/Joystick',
'Hardware/Mobile',
'Hardware/Modem',
'Hardware/Other',
'Hardware/Palm',
'Hardware/Printing',
'Hardware/Psion',
'Hardware/Radio',
'Hardware/Scanner',
'Hardware/TV',
'Hardware/UPS',
'Hardware/Wifi',
'Metapackages',
'Productivity/Archiving/Backup',
'Productivity/Archiving/Compression',
'Productivity/Clustering/Computing',
'Productivity/Clustering/HA',
'Productivity/Databases/Clients',
'Productivity/Databases/Servers',
'Productivity/Databases/Tools',
'Productivity/File utilities',
'Productivity/Graphics/3D Editors',
'Productivity/Graphics/Bitmap Editors',
'Productivity/Graphics/CAD',
'Productivity/Graphics/Convertors',
'Productivity/Graphics/Other',
'Productivity/Graphics/Vector Editors',
'Productivity/Graphics/Viewers',
'Productivity/Graphics/Visualization/Graph',
'Productivity/Graphics/Visualization/Other',
'Productivity/Graphics/Visualization/Raytracers',
'Productivity/Hamradio/Fax',
'Productivity/Hamradio/Logging',
'Productivity/Hamradio/Morse',
'Productivity/Hamradio/Other',
'Productivity/Hamradio/Packet',
'Productivity/Hamradio/Psk31',
'Productivity/Hamradio/Satellite',
'Productivity/Multimedia/CD/Grabbers',
'Productivity/Multimedia/CD/Players',
'Productivity/Multimedia/CD/Record',
'Productivity/Multimedia/Other',
'Productivity/Multimedia/Sound/Editors and Convertors',
'Productivity/Multimedia/Sound/Midi',
'Productivity/Multimedia/Sound/Mixers',
'Productivity/Multimedia/Sound/Players',
'Productivity/Multimedia/Sound/Utilities',
'Productivity/Multimedia/Sound/Visualization',
'Productivity/Multimedia/Video/Editors and Convertors',
'Productivity/Multimedia/Video/Players',
'Productivity/Networking/AOLInstantMessenger',
'Productivity/Networking/Archie',
'Productivity/Networking/Boot/Clients',
'Productivity/Networking/Boot/Servers',
'Productivity/Networking/Boot/Utilities',
'Productivity/Networking/Diagnostic',
'Productivity/Networking/DNS/Servers',
'Productivity/Networking/DNS/Utilities',
'Productivity/Networking/Email/Clients',
'Productivity/Networking/Email/Mailinglists',
'Productivity/Networking/Email/Servers',
'Productivity/Networking/Email/Utilities',
'Productivity/Networking/File-Sharing',
'Productivity/Networking/Ftp/Clients',
'Productivity/Networking/Ftp/Servers',
'Productivity/Networking/ICQ',
'Productivity/Networking/Instant Messenger',
'Productivity/Networking/IRC',
'Productivity/Networking/LDAP/Clients',
'Productivity/Networking/LDAP/Servers',
'Productivity/Networking/LDAP/Utilities',
'Productivity/Networking/Napster',
'Productivity/Networking/News/Clients',
'Productivity/Networking/News/Servers',
'Productivity/Networking/News/Utilities',
'Productivity/Networking/NFS',
'Productivity/Networking/NIS',
'Productivity/Networking/Novell',
'Productivity/Networking/Other',
'Productivity/Networking/PPP',
'Productivity/Networking/Radius/Clients',
'Productivity/Networking/Radius/Servers',
'Productivity/Networking/Routing',
'Productivity/Networking/Samba',
'Productivity/Networking/Security',
'Productivity/Networking/SSH',
'Productivity/Networking/System',
'Productivity/Networking/Talk/Clients',
'Productivity/Networking/Talk/Servers',
'Productivity/Networking/Web/Browsers',
'Productivity/Networking/Web/Frontends',
'Productivity/Networking/Web/Proxy',
'Productivity/Networking/Web/Servers',
'Productivity/Networking/Web/Utilities',
'Productivity/Office/Dictionary',
'Productivity/Office/Finance',
'Productivity/Office/Management',
'Productivity/Office/Organizers',
'Productivity/Office/Other',
'Productivity/Office/Spreadsheets',
'Productivity/Office/Suite',
'Productivity/Office/Word Processor',
'Productivity/Other',
'Productivity/Publishing/DocBook',
'Productivity/Publishing/HTML/Editors',
'Productivity/Publishing/HTML/Tools',
'Productivity/Publishing/Other',
'Productivity/Publishing/PDF',
'Productivity/Publishing/Presentation',
'Productivity/Publishing/PS',
'Productivity/Publishing/SGML',
'Productivity/Publishing/TeX/Base',
'Productivity/Publishing/TeX/Fonts',
'Productivity/Publishing/TeX/Frontends',
'Productivity/Publishing/Texinfo',
'Productivity/Publishing/TeX/Utilities',
'Productivity/Publishing/Troff',
'Productivity/Publishing/Word',
'Productivity/Publishing/XML',
'Productivity/Scientific/Astronomy',
'Productivity/Scientific/Chemistry',
'Productivity/Scientific/Electronics',
'Productivity/Scientific/Math',
'Productivity/Scientific/Other',
'Productivity/Scientific/Physics',
'Productivity/Security',
'Productivity/Telephony/Clients',
'Productivity/Telephony/H323/Clients',
'Productivity/Telephony/H323/Servers',
'Productivity/Telephony/H323/Utilities',
'Productivity/Telephony/Servers',
'Productivity/Telephony/SIP/Clients',
'Productivity/Telephony/SIP/Servers',
'Productivity/Telephony/SIP/Utilities',
'Productivity/Telephony/Utilities',
'Productivity/Text/Convertors',
'Productivity/Text/Editors',
'Productivity/Text/Spell',
'Productivity/Text/Utilities',
'System/Base',
'System/Benchmark',
'System/Boot',
'System/Console',
'System/Daemons',
'System/Emulators/Other',
'System/Emulators/PC',
'System/Fhs',
'System/Filesystems',
'System/GUI/GNOME',
'System/GUI/KDE',
'System/GUI/LXDE',
'System/GUI/Other',
'System/GUI/XFCE',
'System/I18n/Chinese',
'System/I18n/Japanese',
'System/I18n/Korean',
'System/Kernel',
'System/Libraries',
'System/Localization',
'System/Management',
'System/Monitoring',
'System/Packages',
'System/Shells',
'System/Sound Daemons',
'System/X11/Displaymanagers',
'System/X11/Fonts',
'System/X11/Icons',
'System/X11/Servers/XF86_3',
'System/X11/Servers/XF86_4',
'System/X11/Terminals',
'System/X11/Utilities',
'System/YaST',
])
setOption('StandardGroups', (
'aegis',
@ -384,6 +625,7 @@ setOption('StandardUsers', (
'radiusd',
'radvd',
'root',
'_rmt',
'sabayon-admin',
'salt',
'sapdb',
@ -1115,6 +1357,13 @@ addFilter(' non-devel-buildrequires libxml2')
addFilter(' non-devel-buildrequires libxslt')
addFilter(' non-devel-buildrequires recode')
# Too noisy, and usually not something downstream packagers can fix
addFilter(' incorrect-fsf-address ')
addFilter(' no-manual-page-for-binary ')
addFilter(' static-library-without-debuginfo /usr/lib(?:64)?/ghc-[\d\.]+/')
# the libre mess
addFilter(r'libre(?:ssl|office|cad)[^\:]+: \w: shlib-policy-')
# many places have shorter paths
addFilter(' non-coherent-filename ')

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a0d1c0f84b777aa36e5f31dda97ce4cf4d803eb4f2d256edd75063c6e679bcb
size 23192
oid sha256:1b0ea1ad20da5002cffa4b3df129d776b5a7db361379e0060f3178003b137f37
size 23072

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:68342457aa0a0e55de2482a10ff6607b2ae0540cea0a5e8bee734e67cb41ef1a
size 11204

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5ae84f26459605339a1dfa6511573e8d4837902517dd4c52bcd159fbc7780de6
size 10700

View File

@ -1,3 +1,27 @@
-------------------------------------------------------------------
Wed Oct 11 11:29:25 UTC 2017 - opensuse-packaging@opensuse.org
- Update to version 84.87+git20171011.8b163ac:
* Trying to fixup the erlang check
-------------------------------------------------------------------
Wed Oct 11 06:43:46 UTC 2017 - opensuse-packaging@opensuse.org
- Update to version 84.87+git20171011.856375f:
* Add unit test for ErlangCheck
-------------------------------------------------------------------
Tue Oct 10 12:21:50 UTC 2017 - opensuse-packaging@opensuse.org
- Update to version 84.87+git20171010.a53d9bd:
* Remove appdata related tests, those are upstream now
-------------------------------------------------------------------
Tue Oct 10 09:19:30 UTC 2017 - opensuse-packaging@opensuse.org
- Update to version 84.87+git20171009.dfac67b:
* Adjust output for enabled non-std group checks
-------------------------------------------------------------------
Sat Sep 30 16:19:07 UTC 2017 - opensuse-packaging@opensuse.org

View File

@ -19,11 +19,12 @@
#!BuildIgnore: post-build-checks brp-check-suse
BuildRequires: erlang
BuildRequires: rpmlint-Factory-strict
BuildRequires: rpmlint-mini
Name: rpmlint-tests
Version: 84.87+git20170930.a05216c
Version: 84.87+git20171011.8b163ac
Release: 0
Summary: rpmlint regression tests
License: SUSE-Public-Domain

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Wed Oct 11 08:03:12 UTC 2017 - opensuse-packaging@opensuse.org
- Update to version master:
* Python 3.x porting of the ErlangCheck
-------------------------------------------------------------------
Wed Oct 11 06:43:48 UTC 2017 - opensuse-packaging@opensuse.org
- Update to version master:
* Treat strongly versioned libs also as compliant (bsc#723726)
* LibraryPolicy: allow %%_licensedir in packages (used by %license)
- Hide the noisy warnings
-------------------------------------------------------------------
Tue Oct 10 09:06:23 UTC 2017 - dmueller@suse.com
- add 0001-Avoid-false-positives-on-is_elf-check.patch (bsc#1057216)
add 0007-Validate-Appdata-also-when-appstream-util-is-unavail.patch
- Update rpmlint-checks to version master:
* Fix false positives for -theme- -> -branding- rename
* Stop leaking filedescriptors
* Pythonic fixes
* Drop CheckAppdata (there is AppDataCheck upstream)
* Tighten ELF check
* Tiny code formatting cleanup
* Tighten the branding policy reporting a bit to make it less confusing
-------------------------------------------------------------------
Fri Oct 6 09:20:48 UTC 2017 - lnussel@suse.de
- add package groups from
https://en.opensuse.org/openSUSE:Package_group_guidelines to enable the
groups check
-------------------------------------------------------------------
Fri Sep 29 12:06:57 UTC 2017 - dmueller@suse.com

View File

@ -83,6 +83,8 @@ Patch64: drop-unicodedata-dep.diff
Patch65: 0001-split-wrong-script-interpreter-into-env-script-inter.patch
Patch66: 0001-Handle-post-scripts-that-contain-non-ascii-character.patch
Patch67: omit_BUILDROOT_from_pyo_files.patch
Patch68: 0001-Avoid-false-positives-on-is_elf-check.patch
Patch69: 0007-Validate-Appdata-also-when-appstream-util-is-unavail.patch
Patch70: rpmlint-all-pie.patch
BuildRequires: obs-service-format_spec_file
BuildRequires: python3-flake8

View File

@ -1,22 +1,38 @@
From: Some One <nobody@opensuse.org>
Date: Thu, 9 Apr 2015 14:55:40 +0200
Subject: [PATCH] suse-whitelist-opensuse.diff
From ceebc0de2c3a9bb1663418d75a4b0de1d15740b2 Mon Sep 17 00:00:00 2001
From: Dirk Mueller <dirk@dmllr.de>
Date: Sun, 1 Oct 2017 14:06:31 +0200
Subject: [PATCH] Lower false-positives on summary-not-capitalized
===================================================================
Allow some 'names' at the beginning of the summary to be
non-capitalized.
---
TagsCheck.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
TagsCheck.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Index: rpmlint-rpmlint-1.10/TagsCheck.py
===================================================================
--- rpmlint-rpmlint-1.10.orig/TagsCheck.py
+++ rpmlint-rpmlint-1.10/TagsCheck.py
@@ -953,7 +953,7 @@ class TagsCheck(AbstractCheck.AbstractCh
diff --git a/TagsCheck.py b/TagsCheck.py
index ea131e3..d3da24c 100644
--- a/TagsCheck.py
+++ b/TagsCheck.py
@@ -397,6 +397,9 @@ BAD_WORDS = {
'xwindows': 'X'
}
+CAPITALIZED_IGNORE_LIST = (
+ 'jQuery', 'openSUSE', 'wxWidgets', 'a', 'an', 'uWSGI')
+
DEFAULT_INVALID_REQUIRES = ('^is$', '^not$', '^owned$', '^by$', '^any$',
'^package$', r'^libsafe\.so\.')
@@ -911,7 +914,8 @@ class TagsCheck(AbstractCheck.AbstractCheck):
spell_check(pkg, summary, 'Summary(%s)', lang, ignored_words)
if '\n' in summary:
printError(pkg, 'summary-on-multiple-lines', lang)
- if summary[0] != summary[0].upper():
+ if summary[0] != summary[0].upper() and not summary.startswith("openSUSE"):
+ if (not summary[0].isupper() and
+ summary.partition(' ')[0] not in CAPITALIZED_IGNORE_LIST):
printWarning(pkg, 'summary-not-capitalized', lang, summary)
if summary[-1] == '.':
printWarning(pkg, 'summary-ended-with-dot', lang, summary)
--
2.14.1