From Fedora Project Wiki
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
- Package meets naming guidelines | - Package meets naming guidelines | ||
- Spec file name matches base package name | - Spec file name matches base package name | ||
- License is acceptable | - License is acceptable (...) | ||
- License field in spec is correct | - License field in spec is correct | ||
- License files included in package %docs or not included in upstream source | - License files included in package %docs or not included in upstream source | ||
Line 91: | Line 90: | ||
Application / Language-specific guidelines: | Application / Language-specific guidelines: | ||
... | ... | ||
</pre> | |||
== Java Guidelines == | |||
<pre> | |||
- Javadocs go in javadoc subpackage | |||
- Prefer split JARs over monolithic | |||
- JAR file names correct | |||
- JAR files go in %{_javadir} or %{_javadir}-$version | |||
- Javadocs go in unversioned %{_javadocdir}/%{name} | |||
- javadoc subpackage is noarch on > EL5 | |||
- BuildRequires java-devel, jpackage-utils | |||
- Requires java >= $version, jpackage-utils | |||
- Dependencies on java, java-devel >= 1.6.0 add epoch 1 | |||
- Package requiring maven contains correct maven-specific code in spec | |||
- GCJ AOT bits follow GCJ guidelines | |||
- No devel package | |||
- JNI shared objects, JARs that require them go in %{_libdir}/%{name} | |||
- Bundled JAR files not included or used for build | |||
- No Javadoc %post/%ghost | |||
- No class-path elements in JAR manifests | |||
</pre> | |||
== Python Guidelines == | |||
<pre> | |||
- Runtime Requires correct | |||
- Python macros declared on < F13/EL6 | |||
- All .py files packaged with .pyc, .pyo counterparts | |||
- Includes .egg-info files/directories when generated | |||
- Provides/Requires properly filtered | |||
- Code that invokes gtk.gdk.get_pixels_array() Requires numpy | |||
</pre> | </pre> | ||
[[Category:Package Maintainers/Review Template]] | [[Category:Package Maintainers/Review Template]] |
Revision as of 06:30, 18 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 with %config - %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: ...
Java Guidelines
- Javadocs go in javadoc subpackage - Prefer split JARs over monolithic - JAR file names correct - JAR files go in %{_javadir} or %{_javadir}-$version - Javadocs go in unversioned %{_javadocdir}/%{name} - javadoc subpackage is noarch on > EL5 - BuildRequires java-devel, jpackage-utils - Requires java >= $version, jpackage-utils - Dependencies on java, java-devel >= 1.6.0 add epoch 1 - Package requiring maven contains correct maven-specific code in spec - GCJ AOT bits follow GCJ guidelines - No devel package - JNI shared objects, JARs that require them go in %{_libdir}/%{name} - Bundled JAR files not included or used for build - No Javadoc %post/%ghost - No class-path elements in JAR manifests
Python Guidelines
- Runtime Requires correct - Python macros declared on < F13/EL6 - All .py files packaged with .pyc, .pyo counterparts - Includes .egg-info files/directories when generated - Provides/Requires properly filtered - Code that invokes gtk.gdk.get_pixels_array() Requires numpy