From Fedora Project Wiki
No edit summary |
No edit summary |
||
Line 91: | Line 91: | ||
... | ... | ||
</pre> | </pre> | ||
[[Category:Package Maintainers/Review Template]] |
Revision as of 22:31, 2 November 2010
Mandatory review guidelines: - rpmlint output ... - Package meets naming guidelines - Spec file name matches base package name - License is acceptable ... - License field in spec is correct - License files included in package %docs or not included in upstream source - License files installed when any subpackage combination is installed - Spec written in American English - Spec is legible - Sources match upstream unless altered to fix permissibility issues Upstream MD5: ... Your MD5: ... - Build succeeds on at least one supported platform - Build succeeds on all supported platforms or has ExcludeArch + bugs filed - BuildRequires correct - Package handles locales with %find_lang - %post, %postun call ldconfig if package contains shared .so files - No bundled system libs - Relocatability is justified - Package owns all directories it creates - Package requires other packages for directories it uses but does not own - No duplicate files in %files unless necessary for license files - File permissions are sane - Each %files section contains %defattr - Consistent use of macros - Sources contain only permissible code or content - Large documentation files go in -doc package - Missing %doc files do not affect runtime - Headers go in -devel package - Static libs go in -static package - Unversioned .so files go in -devel package - Devel packages require base with fully-versioned dependency - Package contains no .la files - GUI app installs .desktop file w/ desktop-file-install or has justification - Package's files and directories don't conflict with others' or justified - File names are valid UTF-8 Optional review guidelines: - Query upstream about including license files - Translations of description, Summary - Builds in mock - Builds on all supported platforms - Functions as described - Scriptlets are sane - Non-devel subpackages require base w/ fully-versioned dependencies - .pc files go in -devel unless main package is a development tool - No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin - Man pages included for all executables Packaging guidelines: - Has dist tag - Useful without external bits - Package obeys FHS, except libexecdir and /usr/target - Changelog in prescribed format - Spec file lacks Packager, Vendor, PreReq tags - Correct BuildRoot tag on < F10/EL6 - Correct %clean section on < F13/EL6 - Requires correct, justified where necessary - Summary, description do not use trademarks incorrectly - All relevant documentation is packaged, tagged appropriately - %build honors applicable compiler flags or justifies otherwise - Package with .pc files Requires pkgconfig on < EL6 - Useful -debuginfo package or disabled and justified - No static executables - Rpath absent or only used for internal libs - %config files marked noreplace or justified - No %config files under /usr - SysV-style init script - Spec uses macros instead of hard-coded directory names - %makeinstall used only when ``make install DESTDIR=...'' doesn't work - Macros in Summary, %description expandable at SRPM build time - Spec uses %{SOURCE#} instead of $RPM_SOURCE_DIR or %{sourcedir} - %global instead of %define where appropriate - Package containing translations BuildRequires gettext - File timestamps preserved by file ops - Parallel make - Spec does not use Requires(pre,post) notation - User, group creation handled correctly (See Packaging:UsersAndGroups) - Web app files go in /usr/share/%{name}, not /var/www - Conflicts are justified - No external kernel modules - No files in /srv - One project per package - Patches link to upstream bugs/comments/lists or are otherwise justified Application / Language-specific guidelines: ...