- Package meets naming and packaging guidelines - Spec file matches base package name. - Spec has consistant macro usage. - Meets Packaging Guidelines. - License - License field in spec matches - License file included in package - Spec in American English - Spec is legible. - Sources match upstream md5sum: - Package needs ExcludeArch - BuildRequires correct - Spec handles locales/find_lang - Package is relocatable and has a reason to be. - Package has %defattr and permissions on files is good. - Package has a correct %clean section. - Package has correct buildroot %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - Package is code or permissible content. - Doc subpackage needed/used. - Packages %doc files don't affect runtime. - Headers/static libs in -devel subpackage. - Spec has needed ldconfig in post and postun - .pc files in -devel subpackage/requires pkgconfig - .so files in -devel subpackage. - -devel package Requires: %{name} = %{version}-%{release} - .la files are removed. - Package is a GUI app and has a .desktop file - Package compiles and builds on at least one arch. - Package has no duplicate files in %files. - Package doesn't own any directories other packages own. - Package owns all the directories it creates. - No rpmlint output. - final provides and requires are sane: (include output of for i in *rpm; do echo $i; rpm -qp --provides $i; echo =; rpm -qp --requires $i; echo; done manually indented after checking each line. I also remove the rpmlib junk and anything provided by glibc.) SHOULD Items: - Should build in mock. - Should build on all supported archs - Should function as described. - Should have sane scriptlets. - Should have subpackages require base package with fully versioned depend. - Should have dist tag - Should package latest version - check for outstanding bugs on package. (For core merge reviews)