diff --git a/namcap.1 b/namcap.1 index 28b3e6d..e08c805 100644 --- a/namcap.1 +++ b/namcap.1 @@ -31,56 +31,71 @@ RULELIST is a comma-separated list of rule names print version and exit .SH RULES .TP -.B arrays +.B anyelf +Check for ELF files to see if a package should be 'any' architecture +.TP +.B array Verifies that array variables are actually arrays and not strings .TP .B badbackups Verifies that backup entries don't begin with / .TP -.B carch -Looks for references to i686 and i586 and tells you to use $CARCH instead -.TP -.B capsnames -Checks a PKGBUILD to verify that the package name has no upper case characters -.TP .B capsnamespkg Checks a package to verify that the package name has no upper case characters .TP +.B carch +Looks for references to i686 and i586 and tells you to use $CARCH instead +.TP .B checksums Makes sure that a PKGBUILD includes valid checksums .TP -.B depends -This module runs ldd on all executables, gets the link-level dependencies, finds the smallest subset of dependencies that cover the link-level dependencies, and compares that list to the depends of the package. It returns messages in three cases: dependency detected and not included, dependency included but already satisfied, and dependency included and not needed. These suggestions are just guidelines and all package builders should take this into account (i.e. you're smarter than namcap is) - -Some cases where namcap fails are dlopen() and obscure links. dlopen()'d libraries don't show up because they are loaded at run time: in the case of a program that loads plugins. Obscure links are the cases where only a small portion of the package needs something to run; usually, the small portion won't be accessed unless that thing is installed (i.e. a java plugin for mozilla included in the java package). +.B description +Verifies that the description is set in a PKGBUILD .TP .B directoryname Checks the directory names in the package file list for standard directories (i.e. /etc, /usr/bin, /usr/lib). All files in directories that are non-standard are returned .TP -.B elffiles -Gives an error if it finds ELF (binary) files outside the standard paths (/bin, /usr/bin, etc.) +.B elfexecstack +Check for executable stacks in ELF files. Uses pyelftools to read the GNU_STACK program header and ensure it does not have the executable bit set. +.TP +.B elfgnurelro +Check for RELRO in ELF files. Uses pyelftools to check for GNU_RELRO. +.TP +.B elfpaths +Check about ELF files outside some standard paths (i.e. bin/, sbin/, usr/bin/, usr/sbin/, lib/, usr/lib/, usr/lib32/, opt/). All ELF files in directories that are non-standard are returned +.TP +.B elftextrel +Check for text relocations in ELF files +.TP +.B elfunstripped +Check for unstripped ELF files. Uses pyelftools to check if .symtab exists .TP .B emptydir Looks for directories in a package that don't contain any files .TP +.B externalhooks +Check the .INSTALL for commands covered by hooks and, therefore, should not be listed in .INSTALL +.TP .B extravars Verifies that extra variables start with an underscore .TP -.B fhsinfopages +.B fhs-infopages Verifies correct installation of info pages .TP -.B fhsmanpages +.B fhs-manpages Verifies correct installation of man pages .TP +.B filenames +Checks for filenames for invalid chars. Valids are ascii letters, digits, and punctuation +.TP .B fileownership Verifies that all files are owned by root:root and not some other user or group .TP .B gnomemime Checks for generated GNOME mime files .TP -.B hicoloricons -Checks whether the hicolor icon cache is updated when a package installs -files in /usr/share/icons/hicolor +.B hardlinks +Look for cross-directory/partition hard links .TP .B infodirectory Verifies that a package does not contain the info directory file (/usr/share/info/dir) @@ -88,6 +103,12 @@ Verifies that a package does not contain the info directory file (/usr/share/inf .B invalidstartdir Any PKGBUILDs that refer to files in $startdir are incorrect .TP +.B javafiles +Check for existence of Java classes or JARs +.TP +.B kdeprograms +Checks that KDE programs have kdebase-runtime as a dependency +.TP .B libtool Warns if libtool (*.la) files are present .TP @@ -99,29 +120,68 @@ Verifies that the licenses variable has been filled in in a package. For package checks whether the license file has been installed in /usr/share/licenses/$pkgname/ .TP +.B lots-of-docs +See if a package is carrying more documentation than it should, and recomend to split into a doc-specific package +.TP +.B makepkgfunctions +Looks for calls to makepkg functions (i.e. msg, msg2, warning, error, plain), and warns when using undocumented ones +.TP +.B mimedesktop +Check for MIME desktop file depends +.TP +.B missingbackups +Backup files listed in package should exist +.TP +.B pathdepends +Check for simple implicit path dependencies +.TP .B perllocal Searches for perllocal.pod. perllocal.pod is a nasty file that's included during most perl module installations .TP .B permissions Checks basic file and and directory permissions. It returns warnings about world readable bits not being set, world writable bits being set, and world executable bit not being set for directories .TP +.B pkgnameindesc +Verifies if the package name is included on package description +.TP +.B py_mtime +Check for py timestamps that are ahead of pyc/pyo timestamps +.TP .B rpath Gives an error if a binary has RPATH set to something other than /usr/lib .TP +.B rubypaths +Verifies correct usage of folders by ruby packages +.TP .B scrollkeeper Verifies that there aren't any scrollkeeper directories .TP .B sfurl Warns if a PKGBUILD is downloading from a specific sourceforge mirror instead of the generic downloads.sourceforge.net .TP +.B shebangdepends +Checks dependencies semi-smartly +.TP +.B sodepends +Checks dependencies caused by linked shared libraries +.TP +.B splitpkgfunctions +Checks that all package_* functions exist +.TP +.B splitpkgmakedeps +Checks that a split PKGBUILD has enough makedeps +.TP .B symlink Finds out symbolic and hard links which do not point to a valid path in the package .TP +.B systemdlocation +Checks for systemd files in /etc/systemd/system/ +.TP .B tags For package maintainers, this module verifies that we have remembered to add a Maintainer and Contributor comment. .TP -.B url -Verifies that we have the url variable set in the PKGBUILD +.B unusedsodepends +Checks for unused dependencies caused by linked shared libraries .TP .B urlpkg Verifies that we have the url variable set in the package file