[Bug 513083] Review Request: gbirthday - birthday reminder for evolution

bugzilla at redhat.com bugzilla at redhat.com
Sat Aug 8 14:35:38 UTC 2009


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.


https://bugzilla.redhat.com/show_bug.cgi?id=513083





--- Comment #8 from Christoph Wickert <christoph.wickert at googlemail.com>  2009-08-08 10:35:35 EDT ---
REVIEW for 572380a735a4eba9019b9e5109c4e808  gbirthday-0.4.1-4.fc11.src.rpm

FIX - MUST: rpmlint must be run on every package. The SRPM is clean, but the
binary not:
$ rpmlint fedora/rpmbuild/RPMS/x86_64/gbirthday-0.4.1-4.fc11.x86_64.rpm 
gbirthday.x86_64: E: no-binary
gbirthday.x86_64: E: non-standard-dir-perm /usr/share/gbirthday 0775
gbirthday.x86_64: E: non-standard-dir-perm /usr/share/gbirthday/pics 0775
gbirthday.x86_64: E: non-standard-executable-perm /usr/bin/gbirthday 0775
gbirthday.x86_64: W: non-conffile-in-etc /etc/xdg/autostart/gbirthday.desktop
gbirthday.x86_64: E: non-standard-dir-perm /usr/share/gbirthday/languages 0775
1 packages and 0 specfiles checked; 5 errors, 1 warnings.

- First warning is because the package should be noarch. Add "BuildArch:
noarch". This will also fix the empty debuginfo package
- "non-standard-dir-perm" warnings are because the icons should be 755 instead
of 775. Can be fixed in the Makefile
- same for "non-standard-executable-perm"
- "non-conffile-in-etc": gbirthday.desktop should be marked config since it is
in /etc. See
https://fedoraproject.org/wiki/Packaging/Guidelines#Configuration_files

OK - MUST: The package is named according to the Package Naming Guidelines.
OK - MUST: The spec file name matches the base package %{name}, in the format
%{name}.spec.

FIX - MUST: The package does not meet the Packaging Guidelines for several
reasons outlined in this review.

OK - MUST: The package is licensed with a Fedora approved license and meets the
Licensing Guidelines.
OK - MUST: The License field in the package spec file matches the actual
license:
OK - MUST: The license file from the source package is included in %doc.
OK - MUST: The spec file is in American English.

FIX - MUST: The spec file for the package is legible, but please add a blank
line between each changelog entry

FIX - MUST: The sources used to build the package don't match the upstream
source by MD5
  Package: cc6547cc498feaa52803e3c5a68d051e
  Source0 URL: d2a028ab886d05702152386e6e2978c7
Have you patched the source before?
If you are making changes as a package maintainer, use the original source and
patches. Changes must be visible. If you make changes as the upstream
developer, make a new release of the package.

OK - MUST: The package successfully compiles and builds into binary rpms on
x86_64
N/A - MUST: If the package does not successfully compile, build or work on an
architecture, then those architectures should be listed in the spec in
ExcludeArch.
OK - MUST: All build dependencies are listed in BuildRequires.
N/A - MUST: The spec file handles locales properly with the %find_lang macro.
N/A - MUST: Every binary RPM package (or subpackage) which stores shared
library files (not just symlinks) in any of the dynamic linker's default paths,
must call ldconfig in %post and %postun.
N/A - MUST: If the package is designed to be relocatable, the packager must
state this fact in the request for review, along with the rationalization for
relocation of that specific package.
OK - MUST: The package owns all directories that it creates.
OK - MUST: The package does not contain any duplicate files in the %files
listing.
OK - MUST: Permissions on files are set properly. Every %files section includes
a %defattr(...) line.
OK - MUST: The package has a %clean section, which contains rm -rf
%{buildroot}.
OK - MUST: The package consistently uses macros, as described in the macros
section of Packaging Guidelines.
OK - MUST: The package contains code, or permissable content.
N/A - MUST: Large documentation files should go in a -doc subpackage.
OK - MUST: Files included as %doc do not affect the runtime of the application.
N/A - MUST: Header files must be in a -devel package.
N/A - MUST: Static libraries must be in a -static package.
N/A - MUST: Packages containing pkgconfig(.pc) files must 'Requires:
pkgconfig'.
N/A - MUST: If a package contains library files with a suffix (e.g.
libfoo.so.1.1), then library files that end in .so (without suffix) must go in
a -devel package.
N/A - MUST: In the vast majority of cases, devel packages must require the base
package using a fully versioned dependency: Requires: %{name} =
%{version}-%{release}
OK - MUST: The package does not contain any .la libtool archives.
OK - MUST: The package contains a GUI application and includes a
%{name}.desktop file, and that file is properly installed with
desktop-file-install in the %install section.
OK - MUST: The packages does not own files or directories already owned by
other packages.
OK - MUST: At the beginning of %install, the package runs rm -rf %{buildroot}.
OK - MUST: All filenames in rpm packages are valid UTF-8.


SHOULD Items:
N/A - SHOULD: If the source package does not include license text(s) as a
separate file from upstream, the packager SHOULD query upstream to include it.
N/A - SHOULD: The description and summary sections in the package spec file
should contain translations for supported Non-English languages, if available.
OK - SHOULD: The the package builds in mock.
OK - SHOULD: The package should compile and build into binary rpms on all
supported architectures (noarch) package
OK - SHOULD: The package functions as described.
N/A - SHOULD: If scriptlets are used, those scriptlets must be sane.
N/A - SHOULD: Usually, subpackages other than devel should require the base
package using a fully versioned dependency.
N/A - SHOULD: The placement of pkgconfig(.pc) files depends on their usecase,
and this is usually for development purposes, so should be placed in a -devel
pkg.
N/A - SHOULD: If the package has file dependencies outside of /etc, /bin,
/sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the
file instead of the file itself.


Todo:
- fix rpmlint errors as explained above
- We need to make sure gbirthday only starts in a session where there is
actually a system tray present, GNOME etc. You could use 
desktop-file-install  \
  --add-category="TrayIcon" \
  --add-only-show-in="GNOME;KDE;XFCE;" \
  --dir=%{buildroot}%{_sysconfdir}/xdg/autostart/ \
  %{buildroot}/%{_datadir}/applications/%{name}.desktop


Things that should be fixed upstream:
- Please add a license block to the gbirthday.py in the next release.
- Add some docs: AUTHORS ChangeLog, ...
- The desktop files contain hardcoded paths for the icons. How about installing
the icons under /usr/share/icons/hicolor/..., then you don't need to care about
they are in GTK's icon search path. You shouldn't use an suffix like png or svg
ether, GTK will take care of choosing the best one depending on the size. See
https://fedoraproject.org/wiki/Packaging/Guidelines#Desktop_files
- The paths in the Makefile are all hardcoded.
- Use install rather than cp in the Makefile.
- BTW: "Geburtstags-Reminder" - nice Denglish. ;)

As you see there is a whole lot of things that are worth a new release, e.g.
the permissions set in the Makefile.

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.




More information about the Fedora-package-review mailing list