From Fedora Project Wiki
m (moved Gholms/review template to User:Gholms/review template: Move under my user space) |
No edit summary |
||
Line 35: | Line 35: | ||
- Devel packages require base with fully-versioned dependency | - Devel packages require base with fully-versioned dependency | ||
- Package contains no .la files | - Package contains no .la files | ||
- GUI app | - GUI app uses desktop-file-install/desktop-file-validate for .desktop files | ||
- Package's files and directories don't conflict with others' or justified | - Package's files and directories don't conflict with others' or justified | ||
- File names are valid UTF-8 | - File names are valid UTF-8 | ||
Line 56: | Line 56: | ||
- Useful without external bits | - Useful without external bits | ||
- Package obeys FHS, except libexecdir, /usr/target, /run | - Package obeys FHS, except libexecdir, /usr/target, /run | ||
- No file in /bin, /sbin, /lib* on >= F17 | |||
- Programs launched before FS mounting use /run instead of /var/run | - Programs launched before FS mounting use /run instead of /var/run | ||
- Binaries in /bin, /sbin do not depend on files in /usr | - Binaries in /bin, /sbin do not depend on files in /usr on < F17 | ||
- Changelog in prescribed format | - Changelog in prescribed format | ||
- Spec file lacks Packager, Vendor, PreReq tags | - Spec file lacks Packager, Vendor, PreReq tags | ||
Line 74: | Line 75: | ||
- %config files marked noreplace or justified | - %config files marked noreplace or justified | ||
- No %config files under /usr | - No %config files under /usr | ||
- | - Systemd units/init scripts are sane | ||
- Spec uses macros instead of hard-coded directory names where appropriate | - Spec uses macros instead of hard-coded directory names where appropriate | ||
- Spec uses macros for executables only when configurability is needed | - Spec uses macros for executables only when configurability is needed | ||
Line 89: | Line 90: | ||
- Conflicts are justified | - Conflicts are justified | ||
- No external kernel modules | - No external kernel modules | ||
- No files in /srv | - No files in /srv, /opt, /usr/local | ||
- One project per package | - 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 | ||
Line 110: | Line 111: | ||
- Requires java >= $version, jpackage-utils | - Requires java >= $version, jpackage-utils | ||
- Dependencies on java/java-devel >= 1.6.0 add epoch 1 | - Dependencies on java/java-devel >= 1.6.0 add epoch 1 | ||
- Package requiring maven Requires jpackage-utils for post and postun | |||
- Package requiring maven contains correct maven-specific code in spec | - Package requiring maven contains correct maven-specific code in spec | ||
- Wrapper script in %{_bindir} | |||
- GCJ AOT bits follow GCJ guidelines | - GCJ AOT bits follow GCJ guidelines | ||
- No devel package | - No devel package | ||
- pom.xml files, if any, installed with %add_maven_depmap | |||
- JNI shared objects, JARs that require them go in %{_libdir}/%{name} | - JNI shared objects, JARs that require them go in %{_libdir}/%{name} | ||
- Calls to System.loadLibrary replaced w/ System.load w/ full .so path | - Calls to System.loadLibrary replaced w/ System.load w/ full .so path | ||
Line 118: | Line 122: | ||
- No Javadoc %post/%ghost | - No Javadoc %post/%ghost | ||
- No class-path elements in JAR manifests | - No class-path elements in JAR manifests | ||
</pre> | </pre> | ||
Revision as of 22:42, 17 February 2012
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 on EL4 - 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 uses desktop-file-install/desktop-file-validate for .desktop files - 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 subpackage Requires are sane - .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 - Package with test-suite executes it in %check section Packaging guidelines: - Has dist tag - Useful without external bits - Package obeys FHS, except libexecdir, /usr/target, /run - No file in /bin, /sbin, /lib* on >= F17 - Programs launched before FS mounting use /run instead of /var/run - Binaries in /bin, /sbin do not depend on files in /usr on < F17 - 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 - Documentation files do not have executable permissions - %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 - Systemd units/init scripts are sane - Spec uses macros instead of hard-coded directory names where appropriate - Spec uses macros for executables only when configurability is needed - %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, /opt, /usr/local - One project per package - Patches link to upstream bugs/comments/lists or are otherwise justified - Packages needing dirs in /var/run or /var/lock use tmpfiles.d on >= F15 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 - Multiple JAR files go in a %{name} subdirectory - 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 Requires jpackage-utils for post and postun - Package requiring maven contains correct maven-specific code in spec - Wrapper script in %{_bindir} - GCJ AOT bits follow GCJ guidelines - No devel package - pom.xml files, if any, installed with %add_maven_depmap - JNI shared objects, JARs that require them go in %{_libdir}/%{name} - Calls to System.loadLibrary replaced w/ System.load w/ full .so path - 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