.gear/config.alt | 389 +++++++++++++++ .gear/rpmlint.spec | 296 +++++++++++ .gear/rules | 6 + .../tags/192fc817e8ca74cb4d168966a4735c8564af3e09 | 6 + .gear/tags/list | 1 + .gear/upstream/remotes | 3 + configs/ALT/alt.toml | 314 ++++++++++++ configs/ALT/groups.toml | 121 +++++ configs/ALT/licenses.toml | 550 +++++++++++++++++++++ configs/ALT/scoring.toml | 33 ++ configs/ALT/users-groups.toml | 96 ++++ rpmlint/pkg.py | 18 +- 12 files changed, 1820 insertions(+), 13 deletions(-) diff --git a/.gear/config.alt b/.gear/config.alt new file mode 100644 index 0000000..266edca --- /dev/null +++ b/.gear/config.alt @@ -0,0 +1,389 @@ +# -*- python -*- +# Configuration for the rpmlint utility. +# Loaded before ~/.rpmlintrc +# $Id: config,v 1.38 2000/08/31 11:24:03 flepied Exp $ + +# This line is mandatory to access the configuration functions +from Config import * + +# Additionale path to look for checks + +#addCheckDir("~/mandrake/rpmlint") + +# Configure the checks if you don't want the default ones + +resetChecks() + +addCheck("DistributionCheck") +addCheck("TagsCheck") +addCheck("BinariesCheck") +addCheck("ConfigCheck") +addCheck("FilesCheck") +addCheck("FHSCheck") +addCheck("SignatureCheck") +addCheck("I18NCheck") +addCheck("MenuCheck") +addCheck("PostCheck") +addCheck("InitScriptCheck") +addCheck("SourceCheck") +addCheck("SpecCheck") +addCheck("NamingPolicyCheck") +addCheck("ZipCheck") + + +# Configuration options used by the checks + +# for ALT Linux only!!! +setOption("Vendor", "ALT Linux Team") +setOption("Distribution", "ALT Linux") +#setOption("UseBzip2", 1) +setOption("Packager", +'@altlinux\.(ru|org|com)| at altlinux dot (ru|org)|@packages\.altlinux\.org| at altlinux\.ru') +setOption("ReleaseExtension", "^(alt[0-9]+|ipl[0-9]+mdk)$") +setOption("ValidLicenses", ( +"GPL", +"LGPL", +"GPL v2", +"Proprietary", +"distributable", +"Distributable", +"Different licenses", +"Public Domain", +"public domain", +"OpenSource", +"ARTISTIC BSD GPL_V2 LGPL_V2 QPL_V1.0", +"Boost Software License", +"CMU License", +"GPL or Academic Free License", +"MPL", +"MIT", +"FTL/GPL", +"GPL2", +"Dual: GPL or BSD", +"Apache", +"Artistic", +"FDL", +"GPL, LGPL", +"AT&T open source (see COPYING)", +"AFL/GPL", +"GPL with exceptions (see COPYING.txt)" +"BSD License", +"Sun Binary Code License", +"Free for non-commercial use", +"BSD derivative", +"QPL", +"ARSENAL INC.", +"QPL & LGPL", +"Sleepycat", +"GPL/QPL", +"OSL", +"MIT/X Consortium", +"BSD style + APSL", +"Modified BSD", +"OpenLDAP Public License", +"Distributable (see License.htm)", +"Apple Public Source License", +"Distributable (see LICENSE)", +"OSI certified", +"GPL & QPL", +"Dual: GPL and Ruby", +"Freely Distributable", +"LGPL/FDL", +"GNU GPL", +"X/MIT and other", +"Free", +"PHP", +"MPL/NPL", +"Commercial", +"free to use, but restricted (see EULA)", +"Public domain", +"NVIDIA", +"QPL & LGPL", +"Open Group Public License", +"GPL, LGPL, SISSL, PDL", +"GPL or Artistic", +"Apache License v2.0", +"GPL/Artistic/Tk/Tix (see docs)", +"PHP Licence", +"IBM Public License", +"povray", +"freeware", +"PSF", +"wxWindows Library Licence", +"Dual: GPL and Ruby", +"LGPL/FDL", +"Python License", +"The author disclaims copyright to this source code.", +"GPL-2", +"freely modifiable and distributable", +"Freely distributable", +"GPL, URW holds copyright", +"Charityware", +"wxWidgets License", +"BSD with minor restrictions", +"Free for personal and educational use, see /usr/share/doc/xmms-in-mac-0.2.1/COPYING", +"BSD")) + +setOption("ValidBuildHost", '\.hasher\.altlinux\.(ru|org)|\.office\.altlinux\.ru$') + +# ValidGroups taken from rpm-4.0.4-alt73 +setOption("ValidGroups", ( +"Accessibility", +"Archiving/Backup", +"Archiving/Cd burning", +"Archiving/Compression", +"Archiving/Other", +"Books/Computer books", +"Books/Faqs", +"Books/Howtos", +"Books/Literature", +"Books/Other", +"Communications", +"Databases", +"Development/C", +"Development/C++", +"Development/Databases", +"Development/Debuggers", +"Development/Documentation", +"Development/Functional", +"Development/GNOME and GTK+", +"Development/Haskell", +"Development/Java", +"Development/KDE and QT", +"Development/Kernel", +"Development/Lisp", +"Development/ML", +"Development/Objective-C", +"Development/Other", +"Development/Perl", +"Development/Python", +"Development/Ruby", +"Development/Scheme", +"Development/Tcl", +"Documentation", +"Editors", +"Education", +"Emulators", +"File tools", +"Games/Adventure", +"Games/Arcade", +"Games/Boards", +"Games/Cards", +"Games/Educational", +"Games/Other", +"Games/Puzzles", +"Games/Sports", +"Games/Strategy", +"Graphical desktop/Enlightenment", +"Graphical desktop/FVWM based", +"Graphical desktop/GNOME", +"Graphical desktop/GNUstep", +"Graphical desktop/Icewm", +"Graphical desktop/KDE", +"Graphical desktop/Motif", +"Graphical desktop/Other", +"Graphical desktop/Rox", +"Graphical desktop/Sawfish", +"Graphical desktop/Window Maker", +"Graphical desktop/XFce", +"Graphics", +"Monitoring", +"Networking/Chat", +"Networking/DNS", +"Networking/File transfer", +"Networking/FTN", +"Networking/IRC", +"Networking/Instant messaging", +"Networking/Mail", +"Networking/News", +"Networking/Other", +"Networking/Remote access", +"Networking/WWW", +"Office", +"Publishing", +"Sciences/Astronomy", +"Sciences/Biology", +"Sciences/Chemistry", +"Sciences/Computer science", +"Sciences/Geosciences", +"Sciences/Mathematics", +"Sciences/Medicine", +"Sciences/Other", +"Sciences/Physics", +"Security/Antivirus", +"Security/Networking", +"Shells", +"Sound", +"System/Base", +"System/Configuration/Boot and Init", +"System/Configuration/Hardware", +"System/Configuration/Networking", +"System/Configuration/Other", +"System/Configuration/Packaging", +"System/Configuration/Printing", +"System/Fonts/Console", +"System/Fonts/True type", +"System/Fonts/Type1", +"System/Fonts/X11 bitmap", +"System/Internationalization", +"System/Kernel and hardware", +"System/Libraries", +"System/Servers", +"System/Servers/ZProducts", +"System/X11", +"System/XFree86", +"Terminals", +"Text tools", +"Toys", +"Video")) + +# taken from menu-policy-0.0.2.txt +setOption("ValidMenuSections", ( +"Amusement/Adventure", +"Amusement/Arcade", +"Amusement/Boards", +"Amusement/Cards", +"Amusement/Puzzles", +"Amusement/Sports", +"Amusement/Strategy", +"Amusement/Toys", +"Amusement/Other", +"Applications/Accessibility", +"Applications/Archiving/Compression", +"Applications/Archiving/Cd burning", +"Applications/Archiving/Backup", +"Applications/Archiving/Other", +"Applications/Communications", +"Applications/Databases", +"Applications/Development/Interpreters", +"Applications/Development/Code generators", +"Applications/Development/Development environments", +"Applications/Development/Tools", +"Applications/Editors", +"Applications/Emulators", +"Applications/File tools", +"Applications/Finances", +"Applications/Monitoring", +"Applications/Publishing", +"Applications/Sciences/Astronomy", +"Applications/Sciences/Biology", +"Applications/Sciences/Chemistry", +"Applications/Sciences/Computer science", +"Applications/Sciences/Geosciences", +"Applications/Sciences/Mathematics", +"Applications/Sciences/Physics", +"Applications/Sciences/Other", +"Applications/Shells", +"Applications/Text tools", +"Chinese/Configuration", +"Chinese/Boot and Init", +"Chinese/Hardware", +"Chinese/Networking", +"Chinese/Packaging", +"Chinese/Printing", +"Chinese/Other", +"Documentation", +"Edutainment/Languages", +"Edutainment/Mathematics", +"Edutainment/Science", +"Edutainment/Tools", +"Edutainment/Other", +"Multimedia/Graphics", +"Multimedia/Sound", +"Multimedia/Video", +"Networking/Chat", +"Networking/IRC", +"Networking/Instant messaging", +"Networking/File transfer", +"Networking/Mail", +"Networking/News", +"Networking/Remote access", +"Networking/WWW", +"Networking/Other", +"Office/Accessories", +"Office/AddressBooks", +"Office/Graphs", +"Office/PDA", +"Office/Presentations", +"Office/Spreadsheets", +"Office/Tasks management", +"Office/Time management", +"Office/Wordprocessors", +"Session/Windowmanagers", +"Terminals")) + + +# Output filters +# addFilter("E: .* no-signature") + +# ALT Linux filters +# defaults +addFilter('E: .* no-buildroot-tag') +addFilter('W: .* hardcoded-packager-tag') +addFilter('E: .* no-%clean-section') +addFilter('E: .* no-cleaning-of-buildroot') +addFilter('W: .* setup-not-quiet') +addFilter('W: .* source-or-patch-not-bzipped') +addFilter('W: .* manpage-not-bzipped') +addFilter('W: .* infopage-not-bzipped') +addFilter('W: .* non-conffile-in-etc /etc/rpm/macros.d/') +addFilter('E: .* requires-on-release') +# +addFilter('W: .* not-standard-release-extension') +addFilter('W: .* invalid-license') +addFilter('W: .* summary-not-capitalized') +addFilter('W: .* summary-ended-with-dot') +addFilter('W: .* non-conffile-in-etc /etc/buildreqs') + +# kernel's +addFilter('unstripped-binary-or-object /lib/modules/') + +# rootfiles-alt-alt9.noarch.rpm +addFilter('rootfiles non-etc-or-var-file-marked-as-conffile /root/.*') +addFilter('rootfiles non-readable /root/.*') + +# mkinitrd-busybox-1.00.rel-alt3.i586.rpm +addFilter('mkinitrd-busybox statically-linked-binary /lib/mkinitrd/busybox') + +# glibc-2.3.5-alt5.i586.rpm +addFilter('glibc no-binary') +addFilter('glibc-core statically-linked-binary /sbin/ldconfig') + +# etcskel-2.0.10-alt1.2.noarch.rpm +addFilter('etcskel hidden-file-or-dir /etc/skel.*/') +addFilter('etcskel zero-length /etc/skel.*/.mutt/folder') +addFilter('etcskel executable-marked-as-config-file /etc/skel.*/.mutt/color-select') + +# filesystem-2.3.1-alt1.i586.rpm +addFilter('filesystem no-binary') +addFilter('filesystem non-standard-dir-perm /root 0700') +addFilter('filesystem non-standard-dir-perm /lib/modules 0700') +addFilter('filesystem non-standard-dir-perm /boot 0700') +addFilter('filesystem non-standard-dir-perm /sys 0555') +addFilter('filesystem non-standard-dir-perm /proc 0555') +addFilter('filesystem non-standard-dir-perm /tmp 01777') +addFilter('filesystem dir-or-file-in-usr-local .*') +addFilter('filesystem dir-or-file-in-mnt /mnt/(floppy|disk|cdrom)') + +# MPlayer-1.0-alt20.pre7.i586.rpm +# MPlayer-doc-1.0-alt20.pre7.i586.rpm +# MPlayer-gui-1.0-alt20.pre7.i586.rpm +# MPlayer-skin-default-1.7-alt1.1.i586.rpm +addFilter('MPlayer invalid-license GPL for all but not for OpenDivX') +addFilter('MPlayer-doc invalid-license GPL for all but not for OpenDivX') +addFilter('MPlayer-gui invalid-license GPL for all but not for OpenDivX') +addFilter('MPlayer-skin-default invalid-license GPL for all but not for OpenDivX') +addFilter('MPlayer conffile-without-noreplace-flag /etc/MPlayer/codecs.conf') + +# altlinux-release-Sisyphus-alt20050723.noarch.rpm +addFilter('altlinux-release non-conffile-in-etc /etc/altlinux-release') + +# rpm-4.0.4-alt89.i586.rpm and later +addFilter('E: rpm-build.* only-non-binary-in-usr-lib') # files in /usr/lib/rpm/ may be scripts + +# hack's +#addFilter('E: .* invalid-lc-messages-dir') +#addFilter('W: .* no-url-tag') +#addFilter('W: .* no-documentation') + +# config ends here diff --git a/.gear/rpmlint.spec b/.gear/rpmlint.spec new file mode 100644 index 0000000..7eae029 --- /dev/null +++ b/.gear/rpmlint.spec @@ -0,0 +1,296 @@ +%def_disable check + +Name: rpmlint +Version: 2.4.0 +Release: alt2 + +Summary: Tool for checking common errors in RPM packages +License: GPL-2 +Group: Development/Other +URL: https://github.com/rpm-software-management/rpmlint + +Source0: %name-%version.tar +Patch0: %name-%version.patch +BuildArch: noarch + +BuildRequires(pre): rpm-build-python3 +BuildRequires: python3-devel + +%if_enabled check +# for tests +BuildRequires: /proc +BuildRequires: python3-module-pyxdg python3-module-rpm python3-module-toml python3-module-zstd python3-module-pybeam +BuildRequires: python3-module-pytest python3-module-pytest-cov python3-module-pytest-flake8 python3-module-pytest-xdist +BuildRequires: python3-module-enchant hunspell-en hunspell-cs glibc-locales +BuildRequires: glibc-utils binutils +BuildRequires: dash +BuildRequires: /usr/bin/appstream-util +BuildRequires: /usr/bin/checkbashisms +BuildRequires: /usr/bin/desktop-file-validate +%endif + +Requires: rpm-build glibc-utils binutils +#Requires: /usr/bin/appstream-util +Requires: /usr/bin/bzip2 +Requires: /usr/bin/checkbashisms +Requires: /bin/cpio +Requires: /usr/bin/desktop-file-validate +Requires: /usr/bin/groff +Requires: /usr/bin/gtbl +Requires: /usr/bin/ldd +Requires: /usr/bin/man +Requires: /usr/bin/perl +Requires: /usr/bin/readelf +Requires: /usr/bin/xz +Requires: /usr/bin/zstd +%py3_requires tomli +%py3_requires magic +%py3_provides rpmlint.checks + +%description +Rpmlint is a tool to check common errors on rpm packages. +Binary and source packages can be checked. + +%prep +%setup -q +%patch0 -p1 + +%build +%python3_build + +%install +%python3_install + +mkdir -p %buildroot%_sysconfdir/xdg/rpmlint +cp -a configs/ALT/*.toml %buildroot%_sysconfdir/xdg/rpmlint/ + +%check +python3 -m pytest + +%files +%doc README.md +%config(noreplace) %_sysconfdir/xdg/rpmlint/*.toml +%_bindir/* +%python3_sitelibdir/* + +%changelog +* Wed Apr 26 2023 Alexey Shabalin 2.4.0-alt2 +- backport fix for python-magic and add requires python3(magic). +- add requires python3(tomli). + +* Sun Mar 26 2023 Alexey Shabalin 2.4.0-alt1 +- New version 2.4.0. + +* Wed Dec 22 2021 Alexey Shabalin 2.2.0-alt1 +- new version 2.2.0 + +* Wed Sep 15 2021 Alexey Shabalin 2.1.0-alt1 +- 2.1.0 +- Filter no-cleaning-of-buildroot, setup-not-quiet in ALT config +- Disable R: /usr/bin/appstream-util + +* Fri Aug 06 2021 Alexey Shabalin 2.0.0-alt1 +- 2.0.0 (ALT #39550) + +* Mon Dec 2 2019 Terechkov Evgenii 0.85-alt6 +- Build with python2 (Patch2) + +* Wed Dec 28 2016 Terechkov Evgenii 0.85-alt5 +- Turn off patch0 to work with rpm-4.3 + +* Thu Jul 3 2014 Terechkov Evgenii 0.85-alt4 +- Patch0 updated to work with ALT >= rpm-4.0.4-alt100.78 + +* Sat Oct 22 2011 Vitaly Kuznetsov 0.85-alt3.1 +- Rebuild with Python-2.7 + +* Tue Jan 12 2010 Terechkov Evgenii 0.85-alt3 +- Patch1 added to remove warnings on deprecated popen2 module + +* Wed Nov 11 2009 Eugeny A. Rostovtsev (REAL) 0.85-alt2.1 +- Rebuilt with python 2.6 + +* Tue Mar 17 2009 Terechkov Evgenii 0.85-alt2 +- Noarch build fix (shame on me) + +* Tue Mar 17 2009 Terechkov Evgenii 0.85-alt1 +- 0.85 (#19195) +- Build as noarch +- Buildrequires updated +- Packager tag updated + +* Sun Mar 16 2008 Terechkov Evgenii 0.82-alt1 +- 0.82 +- Licencse tag changed to gpl2 +- Some filters added to config (#14098) +- Spec cleanups + +* Fri Jan 25 2008 Grigory Batalov 0.80-alt1.1 +- Rebuilt with python-2.5. + +* Fri Apr 27 2007 Igor Zubkov 0.80-alt1 +- 0.79 -> 0.80 + +* Sun Mar 18 2007 Igor Zubkov 0.79-alt1 +- 0.71 -> 0.79 +- update Patch0 for old rpm +- add manpage +- enable all checks in rpmlint + +* Tue Mar 13 2007 Igor Zubkov 0.71-alt7 +- sync list groups with rpm-4.0.4-alt73 +- update Url + +* Tue Mar 13 2007 Igor Zubkov 0.71-alt6 +- bzip2 ChangeLog file (closes #11080) +- buildreq + +* Mon Oct 31 2005 Igor Zubkov 0.71-alt5 +- update ValidBuildHost +- remove not-standard-release-extension warning +- remove invalid-license warning +- remove summary-not-capitalized warning +- remove summary-ended-with-dot warning + +* Mon Oct 31 2005 Igor Zubkov 0.71-alt4 +- remove requires-on-release warning +- enable TagsCheck + +* Mon Oct 31 2005 Igor Zubkov 0.71-alt3 +- disable all checks +- enable DistributionCheck + +* Mon Oct 31 2005 Igor Zubkov 0.71-alt2 +- update config + +* Mon Oct 31 2005 Igor Zubkov 0.71-alt1 +- update to 0.71 + +* Fri Sep 09 2005 Igor Zubkov 0.70-alt0.8 +- added /etc/bash_completion.d/rpmlint + +* Wed Sep 07 2005 Igor Zubkov 0.70-alt0.7 +- add check for missing Packager tag + +* Mon Sep 05 2005 Igor Zubkov 0.70-alt0.6 +- correct check for release tag + +* Sun Sep 04 2005 Igor Zubkov 0.70-alt0.5 +- correct groups and users check + +* Sat Sep 03 2005 Igor Zubkov 0.70-alt0.4 +- correct check for menu files + +* Sat Aug 20 2005 Igor Zubkov 0.70-alt0.3 +- realy remove some old policy (thx to rpmlint) + +* Fri Aug 19 2005 Igor Zubkov 0.70-alt0.2 +- remove some old policy from mandrake (mandriva) +- add some new policy for ALTLinux Sisyphus + +* Mon Aug 15 2005 Igor Zubkov 0.70-alt0.1 +- fix work with old rpm + +* Mon Aug 15 2005 Igor Zubkov 0.70-alt0 +- update to 0.70 + +* Mon Aug 15 2005 Igor Zubkov 0.48-alt0 +- update to 0.48 + +* Mon Aug 15 2005 Igor Zubkov 0.47-alt0 +- update to 0.47 + +* Thu Aug 11 2005 Igor Zubkov 0.46-alt0.2 +- twiks + +* Wed Aug 10 2005 Igor Zubkov 0.46-alt0.1 +- add README.ALT to package + +* Sat Aug 06 2005 Igor Zubkov 0.46-alt0 +- update to 0.46 + +* Sat Aug 06 2005 Igor Zubkov 0.45-alt0 +- update to 0.45 + +* Sat Aug 06 2005 Igor Zubkov 0.44-alt0 +- update to 0.44 + +* Sat Aug 06 2005 Igor Zubkov 0.43-alt0 +- update to 0.43 + +* Sat Aug 06 2005 Igor Zubkov 0.42-alt0 +- update to 0.42 + +* Sat Aug 06 2005 Igor Zubkov 0.41-alt0 +- update to 0.41 + +* Sat Aug 06 2005 Igor Zubkov 0.40-alt1.1 +- add config + +* Tue Jan 29 2002 Dmitry V. Levin 0.40-alt1 +- 0.40 +- Relocated %_datadir/%name to %_libdir/%name. + +* Wed Nov 28 2001 Konstantin Volckov 0.39-alt1 +- 0.39 + +* Wed Jun 27 2001 Konstantin Volckov 0.32-alt1 +- New version +- Killed all changelogs before 2001 + +* Mon Jun 18 2001 Christian Belisle 0.32-2mdk +- Added descriptions for the -i option. + +* Wed Jun 13 2001 Frederic Lepied 0.32-1mdk +- rpmlint.py: o If the file given on the command line doesn't exist, + try to use the name as an installed package to check. + o new -i option to give explanation on the errors/warnings (not too much + descriptions have been added ;-) + +- MenuCheck.py: added new Office sub menus. + +- FilesCheck.py: o added /usr/X11R6/man subdirs to the list of + STANDARD_DIRS. + o warn for .so file only if they are in a lib dir. + o warn for source files in a non devel package only if they are not + doc files. + +- TagsCheck.py: corrected description-line-too-long check. + +- FilesCheck.py: add the rpm user and group per request of Jeff + Johnson for the future version of rpm. + +* Fri May 18 2001 Frederic Lepied 0.31-1mdk +- PostCheck.py: check that a script isn't only one command. + check postin and prein instead of postun and preun + for ghost files creation. + +- MenuCheck.py: don't check NO_XALF in menu command. + +- FilesCheck.py: Add rpcuser. + +- Config.py: Expections for ldconfig, initscripts, netkit-base and iputils. + +- TagsCheck.py: check length of summary and description lines. + +* Fri Feb 16 2001 Frederic Lepied 0.30-1mdk + +- InitScriptCheck.py: check if runlevels are set + +- MenuCheck.py: added support to check launchers. + +- I18NCheck.py: check subdirs of /sur/share/man. + +- PostCheck.py: check that the postun creates the ghost files + added install to dangerous commands + +- LSBCheck.py: first version + +- TagsCheck.py: changed Window Maker to WindowMaker + Add https as valid url. + Used list of licenses from www.opensource.org/licenses + Check the full license before splitting in it + multiple parts. + +* Tue Dec 26 2000 Dmitry V. Levin 0.29-ipl1mdk +- RE adaptions. diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 0000000..dbd574f --- /dev/null +++ b/.gear/rules @@ -0,0 +1,6 @@ +spec: .gear/rpmlint.spec +copy?: .gear/*.ALT +copy?: .gear/*.alt +copy?: .gear/*.patch +tar: @version@:. +diff: @version@:. . name=@name@-@version@.patch diff --git a/.gear/tags/192fc817e8ca74cb4d168966a4735c8564af3e09 b/.gear/tags/192fc817e8ca74cb4d168966a4735c8564af3e09 new file mode 100644 index 0000000..f79dac0 --- /dev/null +++ b/.gear/tags/192fc817e8ca74cb4d168966a4735c8564af3e09 @@ -0,0 +1,6 @@ +object 7f427752e76624b15e9c5dfaea35c1fa11aa4b0b +type commit +tag 2.4.0 +tagger Martin Liska 1664805652 +0200 + +2.4.0 diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 0000000..2b90751 --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +192fc817e8ca74cb4d168966a4735c8564af3e09 2.4.0 diff --git a/.gear/upstream/remotes b/.gear/upstream/remotes new file mode 100644 index 0000000..c4e95ab --- /dev/null +++ b/.gear/upstream/remotes @@ -0,0 +1,3 @@ +[remote "upstream"] + url = https://github.com/rpm-software-management/rpmlint.git + fetch = +refs/heads/*:refs/remotes/upstream/* diff --git a/configs/ALT/alt.toml b/configs/ALT/alt.toml new file mode 100644 index 0000000..556c66a --- /dev/null +++ b/configs/ALT/alt.toml @@ -0,0 +1,314 @@ +# ALT configuration for the rpmlint utility. + +# Configuration options used by the checks +CompressExtension = "" +BadnessThreshold = 999 + +# Regexp string with expected suffix in Release tags. +ReleaseExtension = "^(alt[0-9]+|ipl[0-9]+mdk)$" + +# String regexp validating value for the Packager tag. +Packager = '@altlinux\.(ru|org|com)| at altlinux dot (ru|org)|@packages\.altlinux\.org| at altlinux\.ru' + +# Regexp string with value for the BuildHost preamble tag +ValidBuildHost = '\.hasher\.altlinux\.(ru|org)|\.office\.altlinux\.ru$' + +# List of directories considered to be system default library search paths. +SystemLibPaths = [ + "/lib", + "/usr/lib", + "/lib64", + "/usr/lib64", +] + +# Enabled checks for the rpmlint to be run (besides the default set) +Checks = [ + "BashismsCheck", + "PAMModulesCheck", + "TmpFilesCheck", + "SysVInitOnSystemdCheck", + "SharedLibraryPolicyCheck", +] + +# Package scriptlet interpreters +ValidShells = [ + "", + "/bin/sh", + "/bin/bash", + "/usr/bin/perl", + "/usr/bin/python2", + "/usr/bin/python3", +] + +# List of directory prefixes that are not allowed in packages +DisallowedDirs = [ + "/etc/NetworkManager/dispatcher.d", + "/etc/binfmt.d", + "/etc/depmod.d", + "/etc/modules-load.d", + "/etc/modprobe.d", + "/etc/sysctl.d", + "/etc/systemd/system", + "/etc/tmpfiles.d", + "/etc/udev/rules.d", +] + +Filters = [ + '.*invalid-version.*', + '.*invalid-packager.*', + '.*not-standard-release-extension.*', + '.*invalid-buildhost.*', + '.*executable-in-library-package.*', + '.*non-versioned-file-in-library-package.*', + '.*shlib-policy-name-error.*', + '.*hardcoded-path-in-buildroot-tag.*', + '.*no-buildroot-tag.*', + '.*cross-directory-hard-link.*', + +# Do not validate package rpm groups + '.*devel-package-with-non-devel-group.*', + '.*no-group-tag.*', + '.*non-standard-group.*', + +# Output filters + '.*spurious-bracket-in-.*', + '.*one-line-command-in-.*', + ' dir-or-file-in-opt ', # handled by CheckFilelist.py + ' dir-or-file-in-usr-local ', # handled by CheckFilelist.py + ' non-standard-dir-in-usr ', # handled by CheckFilelist.py + ' no-signature', + ' symlink-crontab-file', #bnc591431 + ' without-chkconfig', + 'unstripped-binary-or-object.*\.ko', + ' no-chkconfig', + ' subsys-not-used', + ' dangerous-command.*', + ' setuid-binary.*', + 'subdir-in-bin /sbin/conf.d/', + '.* nss_db non-standard-dir-in-var db', + 'non-standard-dir-in-usr openwin', + 'ibcs2 non-standard-dir-in-usr i486-sysv4', + 'shlibs5 non-standard-dir-in-usr i486-linux-libc5', + 'explicit-lib-dependency libtool', +# +## Filesystem package needs special exceptions + '^filesystem\..*: dir-or-file-in-var-run', + '^filesystem\..*: dir-or-file-in-var-lock', + '^filesystem\..*: dir-or-file-in-var-tmp', + '^filesystem\..*: dir-or-file-in-var-run', + '^filesystem\..*: dir-or-file-in-var-lock', + '^filesystem\..*: dir-or-file-in-usr-tmp', + '^filesystem\..*: dir-or-file-in-tmp', + '^filesystem\..*: dir-or-file-in-mnt', + '^filesystem\..*: dir-or-file-in-home', + '^filesystem\..*: hidden-file-or-dir /root/.gnupg', + '^filesystem\..*: hidden-file-or-dir /root/.gnupg', + '^filesystem\..*: hidden-file-or-dir /etc/skel.*/.config', + '^filesystem\..*: hidden-file-or-dir /etc/skel/.local', + '^filesystem\..*: hidden-file-or-dir /tmp/.X11-unix', + '^filesystem\..*: hidden-file-or-dir /tmp/.ICE-unix', + '^filesystem\..*: hidden-file-or-dir /etc/skel/.fonts', + '^filesystem\..*: filelist-forbidden-fhs23', + '^filesystem\..*: filelist-forbidden-opt', + '^filesystem\..*: non-standard-uid /var/lib/nobody nobody', + '^filesystem\..*: missing-dependency-to-cron', +## has arch specific dirs in /usr + '^filesystem\..*: no-binary', +# +## Suppress any errors about internal packages + '^qa\S+: [EWI]:', + '^\S*(?:INTERNAL|internal)\.\S+: [EWI]:', +# +## Exceptions for devel-files + 'devel-file-in-non-devel-package.*/boot/vmlinuz-.*autoconf.h', + 'devel-file-in-non-devel-package.*/usr/src/linux-', + 'devel-file-in-non-devel-package.*/usr/share/systemtap', + '-(?:examples|doc)\.\S+: \w: devel-file-in-non-devel-package', + 'java\S+-demo\.\S+: \w: devel-file-in-non-devel-package', + 'avr-libc\.\S+: \w: devel-file-in-non-devel-package', + 'cross-.*devel-file-in-non-devel-package', + 'cmake.*devel-file-in-non-devel-package', + 'gcc\d\d.*devel-file-in-non-devel-package', + 'OpenOffice_org-sdk\.\S+: \w: devel-file-in-non-devel-package', + 'wnn-sdk\.\S+: \w: devel-file-in-non-devel-package', + 'ocaml\.\S+: \w: devel-file-in-non-devel-package', + 'xorg-x11-server-sdk\.\S+: \w: devel-file-in-non-devel-package', + 'linux-kernel-headers\.\S+: \w: devel-file-in-non-devel-package', + ' devel-file-in-non-devel-package.*-config', + 'libtool\.\S+: \w: devel-file-in-non-devel-package', + 'sdb.* dangling-relative-symlink /usr/share/doc/sdb/.*/gifs ../gifs', + 'kernel-modules-not-in-kernel-packages', +# +## SUSE kmp's don't need manual depmod (bnc#456048) +# 'module-without-depmod-postin', +# 'postin-with-wrong-depmod', +# 'module-without-depmod-postun', +# 'postun-with-wrong-depmod', +# 'configure-without-libdir-spec', +# 'conffile-without-noreplace-flag /etc/init.d', +# 'use-of-RPM_SOURCE_DIR', +# 'use-tmp-in-', +# 'symlink-contains-up-and-down-segments /var/lib/named', +# 'no-ldconfig-symlink', +# 'aaa_base\.\S+: \w: use-of-home-in-%post', +# 'description-line-too-long', + 'hardcoded-library-path', +# +## Doesn't seem to make sense +# 'invalid-ldconfig-symlink', +# 'invalid-soname', +# 'library-not-linked-against-libc', +# 'only-non-binary-in-usr-lib', + 'outside-libdir-files', +# +## We want these files + ' perl-temp-file ', + ' hidden-file-or-dir .*/\.packlist', + ' hidden-file-or-dir .*/\.directory', + 'perl-.*no-binary', + ' no-major-in-name ', +# +## We check for that already + 'dangling-relative-symlink', + ' lib-package-without-%mklibname', + ' requires-on-release', + ' non-executable-script /etc/profile.d/', +# ' non-executable-script /var/adm/fillup-templates/', +# ' init-script-name-with-dot ', + '.* statically-linked-binary /sbin/ldconfig', + '.* statically-linked-binary /sbin/init', +# 'valgrind.* statically-linked-binary', +# 'ldconfig-post.*/ddiwrapper/wine/', +# 'glibc\.\S+: \w: statically-linked-binary /usr/sbin/glibc_post_upgrade', + ' symlink-should-be-relative ', +# ' binary-or-shlib-defines-rpath .*ORIGIN', +# 'libzypp.*shlib-policy-name-error.*libzypp', +# 'libtool.*shlib-policy.*', +# +## Stuff that is currently too noisy, but might become relevant in the future +# ' prereq-use', +# ' file-not-utf8', +# ' tag-not-utf8', + ' setup-not-quiet', + ' no-cleaning-of-buildroot ', +# ' mixed-use-of-spaces-and-tabs ', +# ' prereq-use ', +# +## An issue with OBS, works with autobuild + ' no-packager-tag', +# ' unversioned-explicit-provides ', +# ' unversioned-explicit-obsoletes ', +# ' service-default-enabled ', +# ' non-standard-dir-perm ', +# ' conffile-without-noreplace-flag ', +# ' non-standard-executable-perm ', + ' jar-not-indexed ', +# ' uncompressed-zip ', +# ' %ifarch-applied-patch ', +# ' read-error ', +# ' init-script-without-chkconfig-postin ', +# ' init-script-without-chkconfig-preun ', +# ' postin-without-chkconfig ', +# ' preun-without-chkconfig ', + ' no-dependency-on locales', + ' no-dependency-on perl-base', + ' no-dependency-on python-base', + ' python-naming-policy-not-applied', + # FIXME does this really exists? + ' perl-naming-policy-not-applied', +# ' shlib-policy-name-error', +# ' binary-or-shlib-defines-rpath', +# ' executable-marked-as-config-file', +# ' log-files-without-logrotate', +# ' hardcoded-prefix-tag', + ' -debug(info|source).* no-documentation', +# ' multiple-specfiles', +# ' no-default-runlevel ', +# ' setgid-binary ', +# ' non-readable ', + ' postin-without-ghost-file-creation ', +# +## Exceptions for filelist checks +# 'nfs-client\.\S+: \w: filelist-forbidden-backup-file /var/lib/nfs/sm.bak', +# 'perl\.\S+: \w: filelist-forbidden-perl-dir ', +# '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/* +# '(?:dosutils|skelcd|installation-images|yast2-slide-show|instlux|skelcd-.*|patterns-.*)\.\S+: \w: filelist-forbidden-fhs23 /CD1', +# +## Too noisy, and usually not something downstream packagers can fix +# ' incorrect-fsf-address ', +# ' no-manual-page-for-binary ', +# ' static-library-without-debuginfo /usr/lib(?:64)?/ghc-[\d\.]+/', +# +## Many places have shorter paths +# ' non-coherent-filename ', + +# Mandriva specific stuff that we don't want + ' invalid-build-requires ', + ' no-provides ', + +# Bash completion files are not scripts, do not require them marked as %config + 'W: non-conffile-in-etc /etc/bash_completion.d/', + +# ALT specific stuff that we don't want + ' ghost-files-without-postin', + ' -debuginfo.* /usr/lib/debug/', + ' -debugsource.* /usr/src/debug/', + ' doc-file-dependency .* /bin/sh$', + # Don't bother with the non-ghost-in-run checks, /var/lock and /var/run are + # symlinks to /run/lock and /run respectively, and /run is a tmpfs + 'non-ghost-in-run', + # Someone thought it was a good idea to make .desktop files executable. They were wrong. + # Nevertheless, I do not yet control the universe, so we squelch the error here. + 'script-without-shebang .*\.desktop$', + # Some files in /etc/ are not meant to be modified by the sysadmin + 'non-conffile-in-etc /etc/rpm/.*$', + 'W: non-conffile-in-etc /etc/buildreqs', + # Don't care about long descriptions on debuginfo packages + # They automatically include the package name and are always + # quite long. + '-debuginfo.* description-line-too-long', + # ALT no uses explicit ldconfig %post/%postun + 'library-without-ldconfig-postin', + 'library-without-ldconfig-postun', + # Ignore 700 dir perms here + 'non-standard-dir-perm /etc/.* 700', + 'non-standard-dir-perm /var/lib/.* 700', + 'non-standard-dir-perm /root 0700', + 'non-standard-dir-perm /lib/modules 0700', + 'non-standard-dir-perm /boot 0700', + 'non-standard-dir-perm /sys 0555', + 'non-standard-dir-perm /proc 0555', + 'non-standard-dir-perm /tmp 01777', + +# Info uses file triggers now (boo#1152169) + ' info-files-without-install-info-postin', + ' info-files-without-install-info-postun ', + ' postin-without-install-info ', +] + +[DanglingSymlinkExceptions."/usr/share/licenses/"] +path = "/usr/share/licenses/" +name = "licenses" +[DanglingSymlinkExceptions."consolehelper$"] +path = "consolehelper$" +name = "usermode" +[DanglingSymlinkExceptions."consolehelper-gtk$"] +path = "consolehelper-gtk$" +name = "usermode-gtk" + +[Descriptions] +non-standard-uid = '''A file in this package is owned by an unregistered user id. +To register the user, please make a pull request to the rpmlint config file +configs/ALT/alt.toml in the rpmlint repository. +''' +non-standard-gid = '''A file in this package is owned by an unregistered group id. +To register the group, please make a pull request to the rpmlint config file +configs/ALT/alt.toml in the rpmlint repository. +''' +no-changelogname-tag = '''There is no changelog. Please insert a '%changelog' section heading in your +spec file and prepare your changes file using e.g. the 'add_changelog' command.''' diff --git a/configs/ALT/groups.toml b/configs/ALT/groups.toml new file mode 100644 index 0000000..184136f --- /dev/null +++ b/configs/ALT/groups.toml @@ -0,0 +1,121 @@ +# based on /usr/lib/rpm/GROUPS from rpm + +ValidGroups = [ + 'Accessibility', + 'Archiving/Backup', + 'Archiving/Cd burning', + 'Archiving/Compression', + 'Archiving/Other', + 'Books/Computer books', + 'Books/Faqs', + 'Books/Howtos', + 'Books/Literature', + 'Books/Other', + 'Communications', + 'Databases', + 'Development/C', + 'Development/C++', + 'Development/Databases', + 'Development/Debug', + 'Development/Debuggers', + 'Development/Documentation', + 'Development/Erlang', + 'Development/Functional', + 'Development/GNOME and GTK+', + 'Development/Haskell', + 'Development/Java', + 'Development/KDE and QT', + 'Development/Kernel', + 'Development/Lisp', + 'Development/ML', + 'Development/Objective-C', + 'Development/Other', + 'Development/Perl', + 'Development/Python', + 'Development/Python3', + 'Development/Ruby', + 'Development/Scheme', + 'Development/Tcl', + 'Development/Tools', + 'Documentation', + 'Editors', + 'Education', + 'Emulators', + 'Engineering', + 'File tools', + 'Games/Adventure', + 'Games/Arcade', + 'Games/Boards', + 'Games/Cards', + 'Games/Educational', + 'Games/Other', + 'Games/Puzzles', + 'Games/Sports', + 'Games/Strategy', + 'Graphical desktop/Enlightenment', + 'Graphical desktop/FVWM based', + 'Graphical desktop/GNOME', + 'Graphical desktop/GNUstep', + 'Graphical desktop/Icewm', + 'Graphical desktop/KDE', + 'Graphical desktop/MATE', + 'Graphical desktop/Motif', + 'Graphical desktop/Other', + 'Graphical desktop/Rox', + 'Graphical desktop/Sawfish', + 'Graphical desktop/Sugar', + 'Graphical desktop/Window Maker', + 'Graphical desktop/XFce', + 'Graphics', + 'Monitoring', + 'Networking/Chat', + 'Networking/DNS', + 'Networking/File transfer', + 'Networking/FTN', + 'Networking/IRC', + 'Networking/Instant messaging', + 'Networking/Mail', + 'Networking/News', + 'Networking/Other', + 'Networking/Remote access', + 'Networking/WWW', + 'Office', + 'Other', + 'Publishing', + 'Sciences/Astronomy', + 'Sciences/Biology', + 'Sciences/Chemistry', + 'Sciences/Computer science', + 'Sciences/Geosciences', + 'Sciences/Mathematics', + 'Sciences/Medicine', + 'Sciences/Other', + 'Sciences/Physics', + 'Security/Antivirus', + 'Security/Networking', + 'Shells', + 'Sound', + 'System/Base', + 'System/Configuration/Boot and Init', + 'System/Configuration/Hardware', + 'System/Configuration/Networking', + 'System/Configuration/Other', + 'System/Configuration/Packaging', + 'System/Configuration/Printing', + 'System/Fonts/Console', + 'System/Fonts/True type', + 'System/Fonts/Type1', + 'System/Fonts/X11 bitmap', + 'System/Internationalization', + 'System/Kernel and hardware', + 'System/Libraries', + 'System/Legacy libraries', + 'System/Servers', + 'System/Servers/ZProducts', + 'System/X11', + 'System/XFree86', + 'Terminals', + 'Text tools', + 'Toys', + 'Video', +] diff --git a/configs/ALT/licenses.toml b/configs/ALT/licenses.toml new file mode 100644 index 0000000..6188a1e --- /dev/null +++ b/configs/ALT/licenses.toml @@ -0,0 +1,550 @@ +# taken from ALT common-licenses package + +ValidLicenses = [ + # /usr/share/license + '0BSD', + 'AAL', + 'Abstyles', + 'Adobe-2006', + 'Adobe-Glyph', + 'ADSL', + 'AFL-1.1', + 'AFL-1.2', + 'AFL-2.0', + 'AFL-2.1', + 'AFL-3.0', + 'Afmparse', + 'AGPL-1.0', + 'AGPL-1.0+', + 'AGPL-1.0-only', + 'AGPL-1.0-or-later', + 'AGPL-3.0', + 'AGPL-3.0+', + 'AGPL-3.0-only', + 'AGPL-3.0-or-later', + 'Aladdin', + 'Aladdin-8.0', + 'ALT-Bitstream-Vera', + 'ALT-Cryptix', + 'ALT-Cyrus', + 'ALT-Free-Art-1.3', + 'ALT-MITX', + 'ALT-NVIDIA-340', + 'ALT-NVIDIA-390', + 'ALT-OCL-1.0', + 'ALT-OpenPub-0.4', + 'ALT-OpenPub-1.0', + 'ALT-ParaType-1.3', + 'ALT-Perl', + 'ALT-Proprietary-PLATON', + 'ALT-Public-Domain', + 'ALT-RADVD', + 'ALT-TPL', + 'ALT-Ubuntu-Font-License-1.0', + 'ALT-UCD', + 'ALT-XConsortium', + 'ALT-XFree86-other', + 'ALT-Zsh', + 'AMDPLPA', + 'AML', + 'AMPAS', + 'ANTLR-PD', + 'Apache-1.0', + 'Apache-1.1', + 'Apache-2.0', + 'APAFML', + 'APL', + 'APL-1.0', + 'APSL-1.0', + 'APSL-1.1', + 'APSL-1.2', + 'APSL-2.0', + 'Artistic-1', + 'Artistic-1.0', + 'Artistic-1.0-cl8', + 'Artistic-1.0-Perl', + 'Artistic-2', + 'Artistic-2.0', + 'Bahyph', + 'Barr', + 'Beerware', + 'BitTorrent-1.0', + 'BitTorrent-1.1', + 'blessing', + 'BlueOak-1.0.0', + 'Borceux', + 'BSD', + 'BSD-1-Clause', + 'BSD-2-Clause', + 'BSD-2-Clause-FreeBSD', + 'BSD-2-Clause-NetBSD', + 'BSD-2-Clause-Patent', + 'BSD-3-Clause', + 'BSD-3-Clause-Attribution', + 'BSD-3-Clause-Clear', + 'BSD-3-Clause-LBNL', + 'BSD-3-Clause-No-Nuclear-License', + 'BSD-3-Clause-No-Nuclear-License-2014', + 'BSD-3-Clause-No-Nuclear-Warranty', + 'BSD-3-Clause-Open-MPI', + 'BSD-4-Clause', + 'BSD-4-Clause-UC', + 'BSD-Protection', + 'BSD-Source-Code', + 'BSL', + 'BSL-1.0', + 'bzip2-1.0.5', + 'bzip2-1.0.6', + 'Caldera', + 'CATOSL', + 'CATOSL-1.1', + 'CC0', + 'CC0-1.0', + 'CC-BY-1.0', + 'CC-BY-2.0', + 'CC-BY-2.5', + 'CC-BY-3.0', + 'CC-BY-4.0', + 'CC-BY-NC-1.0', + 'CC-BY-NC-2.0', + 'CC-BY-NC-2.5', + 'CC-BY-NC-3.0', + 'CC-BY-NC-4.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-ND-4.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-NC-SA-4.0', + 'CC-BY-ND-1.0', + 'CC-BY-ND-2.0', + 'CC-BY-ND-2.5', + 'CC-BY-ND-3.0', + 'CC-BY-ND-4.0', + 'CC-BY-SA-1.0', + 'CC-BY-SA-2.0', + 'CC-BY-SA-2.5', + 'CC-BY-SA-3.0', + 'CC-BY-SA-4.0', + 'CC-PDDC', + 'CDDL-1.0', + 'CDDL-1.1', + 'CDLA-Permissive-1.0', + 'CDLA-Sharing-1.0', + 'CECILL-1.0', + 'CECILL-1.1', + 'CECILL-2.0', + 'CECILL-2.1', + 'CECILL-B', + 'CECILL-C', + 'CERN-OHL-1.1', + 'CERN-OHL-1.2', + 'ClArtistic', + 'CNRI-Jython', + 'CNRI-Python', + 'CNRI-Python-GPL-Compatible', + 'Condor-1.1', + 'copyleft-next-0.3.0', + 'copyleft-next-0.3.1', + 'CPAL-1.0', + 'CPL-1.0', + 'CPOL-1.02', + 'Crossword', + 'Cryptix', + 'CrystalStacker', + 'CUA-OPL-1.0', + 'Cube', + 'curl', + 'D-FSL-1.0', + 'diffmark', + 'DOC', + 'Dotseqn', + 'DSDP', + 'dvipdfm', + 'ECL-1.0', + 'ECL-2.0', + 'eCos', + 'eCos-2.0', + 'EFL-1.0', + 'EFL-2.0', + 'eGenix', + 'Entessa', + 'EPL-1.0', + 'EPL-2.0', + 'ErlPL', + 'ErlPL-1.1', + 'etalab-2.0', + 'EUDatagrid', + 'EUPL-1.0', + 'EUPL-1.1', + 'EUPL-1.2', + 'Eurosym', + 'Fair', + 'FDL-1.1', + 'FDL-1.2', + 'Frameworx', + 'Frameworx-1.0', + 'FreeImage', + 'FreeImage-1.0', + 'FSFAP', + 'FSFUL', + 'FSFULLR', + 'FTL', + 'GFDL-1.1', + 'GFDL-1.1+', + 'GFDL-1.1-only', + 'GFDL-1.1-or-later', + 'GFDL-1.2', + 'GFDL-1.2+', + 'GFDL-1.2-only', + 'GFDL-1.2-or-later', + 'GFDL-1.3', + 'GFDL-1.3+', + 'GFDL-1.3-only', + 'GFDL-1.3-or-later', + 'Giftware', + 'GL2PS', + 'GL2PS-2.0', + 'Glide', + 'Glulxe', + 'gnuplot', + 'GPL-1', + 'GPL-1.0', + 'GPL-1.0+', + 'GPL-1.0-only', + 'GPL-1.0-or-later', + 'GPL-2', + 'GPL-2.0', + 'GPL-2.0+', + 'GPL-2.0-only', + 'GPL-2.0-or-later', + 'GPL-3', + 'GPL-3.0', + 'GPL-3.0+', + 'GPL-3.0-only', + 'GPL-3.0-or-later', + 'GPLv2', + 'GPLv2+', + 'GPLv3', + 'GPLv3+', + 'gSOAP-1.3b', + 'HaskellReport', + 'HPND', + 'HPND-sell-variant', + 'IBM-pibs', + 'ICU', + 'ICU-1.8.1+', + 'ICU-1.8.1-or-later', + 'IJG', + 'ImageMagick', + 'iMatix', + 'Imlib2', + 'Info-ZIP', + 'Intel', + 'Intel-ACPI', + 'Interbase', + 'Interbase-1.0', + 'IPA', + 'IPA-1.0', + 'IPL', + 'IPL-1.0', + 'ISC', + 'JasPer', + 'JasPer-2.0', + 'JPNIC', + 'JSON', + 'LAL-1.2', + 'LAL-1.3', + 'Latex2e', + 'Leptonica', + 'LGPL-2', + 'LGPL-2.0', + 'LGPL-2.0+', + 'LGPL-2.0-only', + 'LGPL-2.0-or-later', + 'LGPL-2.1', + 'LGPL-2.1+', + 'LGPL-2.1-only', + 'LGPL-2.1-or-later', + 'LGPL-3', + 'LGPL-3.0', + 'LGPL-3.0+', + 'LGPL-3.0-only', + 'LGPL-3.0-or-later', + 'LGPLLR', + 'LGPLv2', + 'LGPLv2+', + 'LGPLv2.1', + 'LGPLv2.1+', + 'LGPLv3', + 'LGPLv3+', + 'Libpng', + 'libpng-2.0', + 'libtiff', + 'LiLiQ-P-1.1', + 'LiLiQ-R-1.1', + 'LiLiQ-Rplus-1.1', + 'Linux-OpenIB', + 'LPL-1.0', + 'LPL-1.02', + 'LPPL-1.0', + 'LPPL-1.1', + 'LPPL-1.2', + 'LPPL-1.3a', + 'LPPL-1.3c', + 'MakeIndex', + 'MirOS', + 'MIT', + 'MIT-0', + 'MIT-advertising', + 'MIT-CMU', + 'MIT-enna', + 'MIT-feh', + 'MITNFA', + 'MITX', + 'Motosoto', + 'mpich2', + 'MPL-1.0', + 'MPL-1.1', + 'MPL-2.0', + 'MPL-2.0-no-copyleft-exception', + 'MS-PL', + 'MS-RL', + 'MTLL', + 'MulanPSL-1.0', + 'Multics', + 'Mup', + 'NASA-1.3', + 'Naumen', + 'NBPL-1.0', + 'NCSA', + 'NetCDF', + 'Net-SNMP', + 'Newsletr', + 'NGPL', + 'NLOD', + 'NLOD-1.0', + 'NLPL', + 'Nokia', + 'NOSL', + 'NOSL-1.0', + 'Noweb', + 'NPL-1.0', + 'NPL-1.1', + 'NPOSL', + 'NPOSL-3.0', + 'NRL', + 'NTP', + 'Nunit', + 'NVIDIA-340', + 'NVIDIA-390', + 'OCCT-PL', + 'OCL', + 'OCL-1.0', + 'OCLC', + 'OCLC-2.0', + 'ODbL', + 'ODbL-1.0', + 'ODC-By', + 'ODC-By-1.0', + 'OFL-1.0', + 'OFL-1.1', + 'OGL-Canada-2.0', + 'OGL-UK-1.0', + 'OGL-UK-2.0', + 'OGL-UK-3.0', + 'OGTSL', + 'OLDAP-1.1', + 'OLDAP-1.2', + 'OLDAP-1.3', + 'OLDAP-1.4', + 'OLDAP-2.0', + 'OLDAP-2.0.1', + 'OLDAP-2.1', + 'OLDAP-2.2', + 'OLDAP-2.2.1', + 'OLDAP-2.2.2', + 'OLDAP-2.3', + 'OLDAP-2.4', + 'OLDAP-2.5', + 'OLDAP-2.6', + 'OLDAP-2.7', + 'OLDAP-2.8', + 'OML', + 'OpenPub', + 'OpenPub-0.4', + 'OpenSSL', + 'OPL', + 'OPL-1.0', + 'OSET-PL', + 'OSET-PL-2.1', + 'OSL-1.0', + 'OSL-1.1', + 'OSL-2.0', + 'OSL-2.1', + 'OSL-3.0', + 'Parity-6.0.0', + 'PDDL', + 'PDDL-1.0', + 'Perl', + 'PHP-3.0', + 'PHP-3.01', + 'Plexus', + 'PostgreSQL', + 'psfrag', + 'psutils', + 'Python', + 'Python-2.0', + 'Qhull', + 'QPL', + 'QPL-1.0', + 'Rdisc', + 'RHeCos', + 'RHeCos-1.1', + 'RPL-1.1', + 'RPL-1.5', + 'RPSL', + 'RPSL-1.0', + 'RSA-MD', + 'RSCPL', + 'RSCPL-1.0', + 'Ruby', + 'Saxpath', + 'SAX-PD', + 'SCEA', + 'SCEA-1.0', + 'Sendmail', + 'Sendmail-8.23', + 'SGI-B-1.0', + 'SGI-B-1.1', + 'SGI-B-2.0', + 'SHL-0.5', + 'SHL-0.51', + 'SimPL', + 'SimPL-2.0', + 'SISSL-1.1', + 'SISSL-1.2', + 'Sleepycat', + 'SMLNJ', + 'SMPPL', + 'SNIA', + 'Spencer-86', + 'Spencer-94', + 'Spencer-99', + 'SPL', + 'SPL-1.0', + 'SSH-OpenSSH', + 'SSH-short', + 'SSPL-1.0', + 'StandardML-NJ', + 'SugarCRM', + 'SugarCRM-1.1.3', + 'SWL', + 'TAPR-OHL-1.0', + 'TCL', + 'TCP-wrappers', + 'TMate', + 'TORQUE-1.1', + 'TOSL', + 'TPL', + 'TU-Berlin-1.0', + 'TU-Berlin-2.0', + 'UCD', + 'UCL-1.0', + 'Unicode-DFS-2015', + 'Unicode-DFS-2016', + 'Unicode-TOU', + 'Unlicense', + 'UPL', + 'UPL-1.0', + 'Vim', + 'VOSTROM', + 'VSL', + 'VSL-1.0', + 'W3C', + 'W3C-19980720', + 'W3C-20150513', + 'Watcom', + 'Watcom-1.0', + 'Wsuipa', + 'WTFPL', + 'wxWidgets', + 'wxWindows', + 'X11', + 'XConsortium', + 'Xerox', + 'XFree86', + 'XFree86-1.1', + 'XFree86-other', + 'xinetd', + 'Xnet', + 'xpp', + 'XSkat', + 'YPL-1.0', + 'YPL-1.1', + 'Zed', + 'Zend', + 'Zend-2.0', + 'Zimbra-1.3', + 'Zimbra-1.4', + 'Zlib', + 'zlib-acknowledgement', + 'ZPL-1.0', + 'ZPL-1.1', + 'ZPL-2.0', + 'ZPL-2.1', + # /usr/share/license-exception + '389-exception', + 'Autoconf-exception-2.0', + 'Autoconf-exception-3.0', + 'Bison-exception', + 'Bison-exception-2.2', + 'Bootloader-exception', + 'Classpath-exception', + 'Classpath-exception-2.0', + 'CLISP-exception', + 'CLISP-exception-2.0', + 'DigiRule-FOSS-exception', + 'eCos-exception', + 'eCos-exception-2.0', + 'Fawkes-Runtime-exception', + 'FLTK-exception', + 'Font-exception', + 'Font-exception-2.0', + 'freertos-exception', + 'freertos-exception-2.0', + 'GCC-exception-2.0', + 'GCC-exception-3.1', + 'gnu-javamail-exception', + 'GPL-CC-1.0', + 'i2p-gpl-java-exception', + 'Libtool-exception', + 'Linux-syscall-note', + 'LLVM-exception', + 'LZMA-exception', + 'mif-exception', + 'Nokia-Qt-exception', + 'Nokia-Qt-exception-1.1', + 'OCaml-LGPL-linking-exception', + 'OCCT-exception', + 'OCCT-exception-1.0', + 'OpenJDK-assembly-exception', + 'OpenJDK-assembly-exception-1.0', + 'openvpn-openssl-exception', + 'PS-or-PDF-font-exception-20170817', + 'Qt-GPL-exception', + 'Qt-GPL-exception-1.0', + 'Qt-LGPL-exception', + 'Qt-LGPL-exception-1.1', + 'Qwt-exception-1.0', + 'Swift-exception', + 'u-boot-exception', + 'u-boot-exception-2.0', + 'Universal-FOSS-exception-1.0', + 'WxWindows-exception', + 'WxWindows-exception-3.1', +] diff --git a/configs/ALT/scoring.toml b/configs/ALT/scoring.toml new file mode 100644 index 0000000..e82c34e --- /dev/null +++ b/configs/ALT/scoring.toml @@ -0,0 +1,33 @@ +[Scoring] +arch-dependent-file-in-usr-share = 590 +arch-independent-package-contains-binary-or-object = 499 +binary-in-etc = 900 +devel-file-in-non-devel-package = 50 +dir-or-file-in-var-lock = 10000 +dir-or-file-in-var-run = 10000 +env-script-interpreter = 9 +executable-docs = 900 +file-contains-buildroot = 10000 +files-duplicated-waste = 100 +hardlink-across-config-files = 10000 +hardlink-across-partition = 10000 +info-dir-file = 10000 +invalid-license = 100000 +invalid-pkgconfig-file = 10000 +libtool-wrapper-in-package = 10000 +lto-bytecode = 10000 +lto-no-text-in-archive = 10000 +makefile-junk = 109 +no-pkg-config-provides = 300 +non-ghost-in-run = 10000 +non-position-independent-executable = 10000 +percent-in-conflicts = 10000 +percent-in-dependency = 10000 +percent-in-obsoletes = 10000 +percent-in-provides = 10000 +spurious-executable-perm = 50 +summary-ended-with-dot = 20 +summary-not-capitalized = 20 +summary-too-long = 200 +pam-unauthorized-module = 10000 +wrong-script-interpreter = 490 diff --git a/configs/ALT/users-groups.toml b/configs/ALT/users-groups.toml new file mode 100644 index 0000000..1568535 --- /dev/null +++ b/configs/ALT/users-groups.toml @@ -0,0 +1,96 @@ +# based setup package + +StandardGroups = [ + 'root', + 'bin', + 'daemon', + 'sys', + 'adm', + 'tty', + 'disk', + 'lp', + 'mem', + 'kmem', + 'wheel', + 'firewall', + 'mail', + 'news', + 'uucp', + 'man', + 'rpm', + 'console', + 'wnn', + 'proc', + 'games', + 'slocate', + 'cdrom', + 'squid', + 'chkpwd', + 'named', + 'shadow', + 'auth', + 'nscd', + 'rpcuser', + 'gopher', + 'netwatch', + 'rpc', + 'rpminst', + 'asterisk', + 'kqemu', + 'vmusers', + 'dip', + 'mailman', + 'postfix', + 'popa3d', + 'xfs', + 'mysql', + 'postgres', + 'gdm', + 'postman', + 'ftp:x', + 'ftpadmin', + 'cvs', + 'cvsadmin', + 'postdrop', + 'ldap', + 'loop', + 'floppy', + 'utmp', + 'exim', + 'cdwriter', + 'audio', + 'x10', + 'radio', + 'apache', + 'nobody', + 'users', +] + +StandardUsers = [ + 'root', + 'bin', + 'daemon', + 'adm', + 'lp', + 'mail', + 'news', + 'uucp', + 'games', + 'ftp', + 'squid', + 'named', + 'nscd', + 'rpcuser', + 'rpc', + 'mailman', + 'postfix', + 'popa3d', + 'xfs', + 'mysql', + 'postgres', + 'gdm', + 'ldap', + 'exim', + 'apache', + 'nobody', +] diff --git a/rpmlint/pkg.py b/rpmlint/pkg.py index 3352885..9f063e2 100644 --- a/rpmlint/pkg.py +++ b/rpmlint/pkg.py @@ -16,12 +16,9 @@ from urllib.parse import urljoin try: import magic - # TODO: magic.MAGIC_COMPRESS when PkgFile gets decompress support. - _magic = magic.open(magic.MAGIC_NONE) - _ = _magic.descriptor # magic >= 5.05 needed - _magic.load() + has_magic = True except ImportError: - _magic = None + has_magic = False import rpm from rpmlint.helpers import byte_to_string, ENGLISH_ENVIROMENT, print_warning from rpmlint.pkgfile import PkgFile @@ -358,14 +355,9 @@ def parse_deps(line): def get_magic(path): - # file() method evaluates every file twice with python2, - # use descriptor() method instead try: - fd = os.open(path, os.O_RDONLY) - magic = byte_to_string(_magic.descriptor(fd)) - os.close(fd) - return magic - except OSError: + return magic.detect_from_filename(path).name + except ValueError: return '' @@ -590,7 +582,7 @@ class Pkg(AbstractPkg): elif not pkgfile.size: pkgfile.magic = 'empty' if (not pkgfile.magic and - not pkgfile.is_ghost and _magic): + not pkgfile.is_ghost and has_magic): pkgfile.magic = get_magic(pkgfile.path) if pkgfile.magic is None or Pkg._magic_from_compressed_re.search(pkgfile.magic): # Discard magic from inside compressed files ('file -z')