From Fedora Project Wiki

< User:Jfsaucier

Revision as of 13:14, 2 November 2010 by Jfsaucier (talk | contribs) (Move item from Required to Suggested)

Below is a template to help when reviewing packages. This template was built using others already available here.

I tried to take the difference between each one and add them in my own template. I also tried to sort the checklist in an order that should flow well when we do a package review.

Please, feel free to use and modify this template as you see fit. Don't hesitate to contact me if you spot any errors or if you have some questions about a check.

Package Review

- = N/A
x = Check
! = Problem
? = Not evaluated

[ ]  Package is named according to the Package Naming Guidelines.
[ ]  Spec file name must match the base package %{name}, in the format %{name}.spec.
[ ]  Spec file is legible and written in American English.
[ ]  Spec file lacks Packager, Vendor, PreReq tags.
[ ]  Spec uses macros instead of hard-coded directory names.
[ ]  Package consistently uses macros.
[ ]  Macros in Summary, %description expandable at SRPM build time.
[ ]  PreReq is not used.
[ ]  Requires correct, justified where necessary.
[ ]  All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines.
[ ]  Buildroot is correct (%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)).
[ ]  Package run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) and the beginning of %install.
[ ]  Package use %makeinstall only when ``make install DESTDIR=...'' doesn't work.
[ ]  Package has a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[ ]  The spec file handles locales properly.
[ ]  Changelog in prescribed format.
[ ]  Rpmlint output is silent.
[ ]  License field in the package spec file matches the actual license.
[ ]  If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc.
[ ]  License file installed when any subpackage combination is installed.
[ ]  Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines.
[ ]  Sources contain only permissible code or content.
[ ]  Sources used to build the package matches the upstream source, as provided in the spec URL.
     MD5SUM this package     : 
     MD5SUM upstream package : 
[ ]  Compiler flags are appropriate.
[ ]  %build honors applicable compiler flags or justifies otherwise.
[ ]  ldconfig called in %post and %postun if required.
[ ]  Package must own all directories that it creates.
[ ]  Package does not own files or directories owned by other packages.
[ ]  Package requires other packages for directories it uses.
[ ]  Package does not contain duplicates in %files.
[ ]  Permissions on files are set properly.
[ ]  Each %files section contains %defattr.
[ ]  No %config files under /usr.
[ ]  %config files are marked noreplace or the reason is justified.
[ ]  Package contains a properly installed %{name}.desktop using desktop-file-install file if it is a GUI application.
[ ]  Package contains a valid .desktop file.
[ ]  Package contains code, or permissable content.
[ ]  Package contains a SysV-style init script if in need of one.
[ ]  File names are valid UTF-8.
[ ]  Large documentation files are in a -doc subpackage, if required.
[ ]  Package uses nothing in %doc for runtime.
[ ]  Package contains no bundled libraries.
[ ]  Header files in -devel subpackage, if present.
[ ]  Static libraries in -static subpackage, if present.
[ ]  Package contains no static executables.
[ ]  Package requires pkgconfig, if .pc files are present.
[ ]  Development .so files in -devel subpackage, if present.
[ ]  Fully versioned dependency in subpackages, if present.
[ ]  Package does not contain any libtool archives (.la).
[ ]  Useful -debuginfo package or justification otherwise.
[ ]  Rpath absent or only used for internal libs.
[ ]  Package does not genrate any conflict.
[ ]  Package does not contains kernel modules.
[ ]  Package is not relocatable.
[ ]  Package successfully compiles and builds into binary rpms on at least one supported architecture.
[ ]  Package is not known to require ExcludeArch.
[ ]  Package installs properly.
[ ]  Package obeys FHS, except libexecdir and /usr/target.
[ ]  Package meets the Packaging Guidelines.

[ ]  Package functions as described.
[ ]  Latest version is packaged.
[ ]  Package does not include license text files separate from upstream.
[ ]  If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[ ]  Description and summary sections in the package spec file contains translations for supported Non-English languages, if available.
[ ]  SourceX is a working URL.
[ ]  SourceX / PatchY prefixed with %{name}.
[ ]  Final provides and requires are sane (rpm -q --provides and rpm -q --requires).
[ ]  %check is present and all tests pass.
[ ]  Usually, subpackages other than devel should require the base package using a fully versioned dependency.
[ ]  Reviewer should test that the package builds in mock.
[ ]  Package should compile and build into binary rpms on all supported architectures.
[ ]  Dist tag is present.
[ ]  Spec use %global instead of %define.
[ ]  Scriptlets must be sane, if used.
[ ]  The placement of pkgconfig(.pc) files are correct.
[ ]  No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[ ]  Packages should try to preserve timestamps of original installed files.
[ ]  File based requires are sane.
[ ]  Man pages included for all executables.
[ ]  Uses parallel make.
[ ]  Patches link to upstream bugs/comments/lists or are otherwise justified.

=== Issues ===

=== Final Notes ===

*** APPROVED ***


*** REJECTED ***