From Fedora Project Wiki
(Created page with 'Mandatory review guidelines: - rpmlint output - rpmlint output that probably doesn't need correcting for - Package meets naming guidelines - Spec file matches base package na...') |
No edit summary |
||
Line 1: | Line 1: | ||
<pre> | |||
Mandatory review guidelines: | Mandatory review guidelines: | ||
- rpmlint output | - rpmlint output | ||
... | |||
- Package meets naming guidelines | - Package meets naming guidelines | ||
- Spec file matches base package name | - 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 | - Spec is legible | ||
- Sources match upstream unless altered to fix permissibility issues | |||
Upstream MD5: ... | |||
Your MD5: ... | |||
- Sources match upstream | |||
- Build succeeds on at least one supported platform | - Build succeeds on at least one supported platform | ||
- Build succeeds on all supported platforms or has ExcludeArch + bugs filed | - Build succeeds on all supported platforms or has ExcludeArch + bugs filed | ||
- BuildRequires correct | - BuildRequires correct | ||
- Package handles locales | - Package handles locales with %find_lang | ||
- %post, %postun call ldconfig if package contains shared .so files | - %post, %postun call ldconfig if package contains shared .so files | ||
- No bundled libs | - No bundled system libs | ||
- Relocatability is justified | - Relocatability is justified | ||
- Package owns all directories it creates | - Package owns all directories it creates | ||
- Package requires | - Package requires other packages for directories it uses but does not own | ||
- No duplicate files in %files unless necessary for license files | |||
- No duplicate files in %files | - File permissions are sane | ||
- Each %files section contains %defattr | - Each %files section contains %defattr | ||
- Consistent use of macros | - Consistent use of macros | ||
- Sources contain only permissible code or content | |||
- Large documentation files go in -doc package | - Large documentation files go in -doc package | ||
- Missing %doc files do not affect runtime | - Missing %doc files do not affect runtime | ||
Line 30: | Line 34: | ||
- Static libs go in -static package | - Static libs go in -static package | ||
- Unversioned .so files go in -devel package | - Unversioned .so files go in -devel package | ||
- Devel packages require base | - Devel packages require base with fully-versioned dependency | ||
- Package contains no .la files | - Package contains no .la files | ||
- GUI app installs .desktop file w/ desktop-file-install or has justification | - 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 | - 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: | Packaging guidelines: | ||
- | - Has dist tag | ||
- Useful without external bits | |||
- Package obeys FHS, except libexecdir and /usr/target | - Package obeys FHS, except libexecdir and /usr/target | ||
- Changelog in prescribed format | - Changelog in prescribed format | ||
- Spec file lacks Packager, Vendor, PreReq tags | - Spec file lacks Packager, Vendor, PreReq tags | ||
- BuildRoot tag | - Correct BuildRoot tag on < F10/EL6 | ||
- Correct %clean section on < F13 | - Correct %clean section on < F13/EL6 | ||
- Requires correct, justified where necessary | - 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 | - %build honors applicable compiler flags or justifies otherwise | ||
- Useful -debuginfo package or | - Package with .pc files Requires pkgconfig on < EL6 | ||
- Useful -debuginfo package or disabled and justified | |||
- No static executables | - No static executables | ||
- Rpath absent or only used for internal libs | - Rpath absent or only used for internal libs | ||
Line 53: | Line 74: | ||
- %makeinstall used only when ``make install DESTDIR=...'' doesn't work | - %makeinstall used only when ``make install DESTDIR=...'' doesn't work | ||
- Macros in Summary, %description expandable at SRPM build time | - 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 | |||
- %global instead of %define | |||
- File timestamps preserved by file ops | - File timestamps preserved by file ops | ||
- Parallel make | - 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 | - Patches link to upstream bugs/comments/lists or are otherwise justified | ||
Application / Language-specific guidelines: | |||
... | |||
</pre> |
Revision as of 19:53, 1 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: ...