Bug 513083 - Review Request: gbirthday - birthday reminder for evolution
Summary: Review Request: gbirthday - birthday reminder for evolution
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Christoph Wickert
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-07-21 22:14 UTC by Thomas Spura
Modified: 2009-09-06 20:44 UTC (History)
4 users (show)

Fixed In Version: 0.4.2-1.fc10
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-09-06 20:42:49 UTC
Type: ---
Embargoed:
christoph.wickert: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Thomas Spura 2009-07-21 22:14:02 UTC
Spec URL: http://student.physik.uni-mainz.de/~spurath/gbirthday.spec
SRPM URL: http://student.physik.uni-mainz.de/~spurath/gbirthday-0.4.1-1.fc11.src.rpm
Description:
GBirthday is a birthday reminder application that helps you to remember 
your evolution contacts' birthdays.
It puts an icon on notification area which will blink when there is any 
of your contacts' birthday today. You can also check if there is any of 
your contacs' birhday on next days.

-----------
This is my first attemt to package.

NEED SPONSOR

Currently two issues are pending from my side:
Licence is GPL, because that is mentioned on the website, nothing else in the sources…

I needed to supply my own makefile and added to the sources upstream.
Waiting for answer to add to sources, because I had some strange issues with applying the patch:
http://student.physik.uni-mainz.de/~spurath/makefile.patch

If I get a hint here, I can solve this issue, if not, waiting for upstream.

rpmlint complains about GPL as mentioned above, anything else quiet.

Comment 1 Thomas Spura 2009-07-21 23:31:44 UTC
Done as patch now.

Don't know if GPL as Licence is a blocking issue...

If not, ready for review.

Package uploaded as above:

Spec URL: http://student.physik.uni-mainz.de/~spurath/gbirthday.spec
SRPM URL:
http://student.physik.uni-mainz.de/~spurath/gbirthday-0.4.1-1.fc11.src.rpm
Patch0: http://student.physik.uni-mainz.de/~spurath/makefile.patch

Comment 2 Christoph Wickert 2009-07-22 01:39:54 UTC
Thanks for your submission. The license definitely is a blocker, because not all versions of the GPL are compatible with other licenses, see
https://fedoraproject.org/wiki/Licensing#GPLCompatibilityMatrix

We need to now what version is is and if it is a single version only (e.g. GPLv2) or "any later version (GPLv2+). Please contact the author and ask him to clarify the license and to incluse both a COPYING file and a license block in the header of the programm itself in the next release.

Some more comments:

Source0 should be 
http://downloads.sourceforge.net/gbirthday/gbirthday-%{version}.tar.gz
Use the macro %{version} here, so you don't have to update the URL on every update.

Your makefile and the skript itself contain hardcoded paths like "/usr/share".

"Applications/Internet" doesn't seem to be the right group to me, "User Interface/Desktops" seems more adequate. See 
/usr/share/doc/rpm*/GROUPS for a list of known groups.

The patch should follow the format <name>-patchname.patch %{name}-%{version}-patchname.patch, where {version} is the version of gbirthday where the patch was introduced. When you reference the patch in the spec, do not use a macro but 0.4.1 instead, because the name of the patch is not (necessarily) changing from release to release.

If your patch is good, send it upstream.

%{_datadir}/gbirthday/* is bad, because the folder %{_datadir}/gbirthday/ is not included and will remain on the disk after removal of the package.

Use desktop-file-install or desktop-file-validate for gbirthday.desktop, see
https://fedoraproject.org/wiki/Packaging/Guidelines#Desktop_files

With desktop-file-install you could also add a copy of gbirthday.desktop to /etc/xdg/autostart, so the reminder starts automatically.

There is still a lot of room for improvement, but I'M sure we can work this out.

Comment 3 Thomas Spura 2009-07-22 09:28:49 UTC
Thanks for your comments.

- Licence issue:
  Notified upstram to change it and add a COPYING file
- Changed source0 with %{version} tag
- Changed group to "User Interface/Desktops"
- patch renamed and send upstream
  anotherone added
- now using %{_datadir}/gbirthday/
- using desktop-file-install and desktop-file-validate
- adding gbirthday.desktop to /etc/xdg/autostart


Still a TODO:
  Licence issue: waiting for upstream


Don't know, if this needs to bumb the Release, because it's not already packaged, but did so:

Spec URL: http://student.physik.uni-mainz.de/~spurath/gbirthday.spec
SRPM URL:
http://student.physik.uni-mainz.de/~spurath/gbirthday-0.4.1-2.fc11.src.rpm

Comment 4 Fabian Affolter 2009-07-22 17:34:38 UTC
Sorry that I interfere, just two quick comments:

- You are mixing '%{buildroot}' and '$RPM_BUILD_ROOT'
  https://fedoraproject.org/wiki/Packaging:Guidelines#Using_.25.7Bbuildroot.7D_and_.25.7Boptflags.7D_vs_.24RPM_BUILD_ROOT_and_.24RPM_OPT_FLAGS
- There is a entry in the changelog that indicate that there are translations.
  https://fedoraproject.org/wiki/Packaging:Guidelines#Handling_Locale_Files

(In reply to comment #3)
> Don't know, if this needs to bumb the Release, because it's not already
> packaged, but did so:

Every time you make a change in the spec file bump the release, no confusions and everybody can see/read what was changed.

Comment 5 Thomas Spura 2009-07-22 18:12:11 UTC
No problem at all, comments are always welcomed ;-)

- Now just using %{buildroot}

The handling locale files should be wrong here, because the package ships its own files and reads the translations from there. It's not creating translation files, just copies it to /usr/share/gbirthday/languages/*.lang and reads anything from there. No *.mo files and so on.


Spec URL: http://student.physik.uni-mainz.de/~spurath/gbirthday.spec
SRPM URL:
http://student.physik.uni-mainz.de/~spurath/gbirthday-0.4.1-3.fc11.src.rpm

Comment 6 Thomas Spura 2009-07-31 20:06:38 UTC
I talked upstream and I am now kind of upstream^^

Project moved to: http://git.fedorahosted.org/git/gbirthday.git

The patchs are applied, license is GPLv2+, gettext will probably used in the future. Using it now won't make sense as the translations for now will be missing and none are there…




Ready for Review





Spec URL: http://student.physik.uni-mainz.de/~spurath/gbirthday.spec
SRPM URL:
http://student.physik.uni-mainz.de/~spurath/gbirthday-0.4.1-4.fc11.src.rpm

Comment 7 Christoph Wickert 2009-08-04 00:03:14 UTC
(In reply to comment #6)
> I talked upstream and I am now kind of upstream^^

Congratulations.

> Project moved to: http://git.fedorahosted.org/git/gbirthday.git

Wouldn't it be better to continue at sf.net? I mean: I welcome every package at fedorahosted.org, but this should be documented at the sf page.

Stay tunes for a formal review, I will also sponsor you. In the meantime you can participate in other reviews to prove that you understood the guidelines. Please CC me when you make your comments. See http://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored for more info.

Comment 8 Christoph Wickert 2009-08-08 14:35:35 UTC
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.

Comment 9 Thomas Spura 2009-08-11 11:56:36 UTC
A new version was released: 0.4.2

FIXED:
-rpmlint runs on any package:
  * fixed permissions
  * gbirthday.desktop is now config

-blank line in changelog

-only started with a system tray present

-license block is there

-desktop file not hardcoded

-using install instead of cp in makefile

Not fixed, as suggested:

- some docs: authors will come in the future, but there is a changelog

- the paths in the makefile are *not* hardcoded. To try type "make tar.lzma version=0815" and just "make tar.lzma". In the first case version is overridden -> not hardcoded.

- Denglish: project will be added to fedora translation project soon (gettext isn't used atm anyway :-( )

SPEC: http://student.physik.uni-mainz.de/~spurath/gbirthday.spec
SRPM: http://student.physik.uni-mainz.de/~spurath/gbirthday-0.4.2-1.fc11.src.rpm

Comment 10 Christoph Wickert 2009-08-30 05:06:56 UTC
Your server seems to be down. :(

Comment 11 Thomas Spura 2009-08-30 22:50:26 UTC
Thanks for the notice. Could take a while till, they reinstalled the system, it seems :-(


Try it here:

SPEC: http://www.students.uni-mainz.de/spurath/public/fedora/gbirthday.spec
SRPM: http://www.students.uni-mainz.de/spurath/public/fedora/gbirthday-0.4.2-1.fc11.src.rpm

Comment 12 Christoph Wickert 2009-08-31 22:13:56 UTC
OK, let's see what we've got in gbirthday-0.4.2-1.fc11.src.rpm

OK - MUST: $ rpmlint /var/lib/mock/fedora-rawhide-x86_64/result/gbirthday-0.4.2-1.fc12.*
2 packages and 0 specfiles checked; 0 errors, 0 warnings.
OK - MUST: The spec file for the package is legible, changelog look fine now
OK - MUST: SourceO URL is correct
OK - MUST: The sources used to build the package match the upstream
source by MD5 c117a6b90e51d836ed2590e6f0f48164
OK - MUST: Permissions on files are set properly.
OK - SHOULD: License block added
OK - SHOULD: ChangeLog was added
OK - No more hardcoded path in desktop file
OK - Autostarts only in desktops known to have a systray

Famous last words:
- The spec in the Sourec0 tarball still is at 0.4.1-5 but I guess this is a chicken and egg problem.
- Would be nice if install also preserved time stamps. Ether add '-p' or make the Makefile accept as an argument, so one could use:
  make install DESTDIR=%{buildroot} INSTALL='install -p'
in the spec. But these are minor and should be targeted upstream. Thanks for taking care of this program BTW.

No blockers left, the gbirthday-0.4.2-1.fc11.src.rpm is APPROVED.


Next steps:
- Get yourself a Fedora accound and tell me it's name:
https://fedoraproject.org/wiki/PackageMaintainers/Join#Get_a_Fedora_Account
- Request the CVS admin procedure:
https://fedoraproject.org/wiki/PackageMaintainers/CVSAdminProcedure

Comment 13 Christoph Wickert 2009-09-02 22:17:06 UTC
I have sponsored Thomas, removing blocker on bug 177841.

Comment 14 Thomas Spura 2009-09-03 00:29:59 UTC
New Package CVS Request
=======================
Package Name: gbirthday
Short Description: Birthday reminder for evolution
Owners: tomspur
Branches: F-10 F-11 F-12 EL-5 OLPC-3
InitialCC:

Comment 15 Christoph Wickert 2009-09-03 00:44:12 UTC
No OLPC-3 branch please as we are using stock Fedora packages on the XO now.

Comment 16 Thomas Spura 2009-09-03 01:26:22 UTC
Ok, sorry. F-10 is also not that needed...

New Package CVS Request
=======================
Package Name: gbirthday
Short Description: Birthday reminder for evolution
Owners: tomspur
Branches: F-11 F-12 EL-5
InitialCC:

Comment 17 Christoph Wickert 2009-09-03 01:36:52 UTC
(In reply to comment #16)
> Ok, sorry. F-10 is also not that needed...

Why not? I think people on F-10 will like it. On the other hand you don't need to specify F-12 explicitly because currently F-12 == devel.

Comment 18 Thomas Spura 2009-09-03 01:59:32 UTC
Since last friday branch requests for F-12 can be done (fedora-devel-list). devel will then be F-13.

New Package CVS Request
=======================
Package Name: gbirthday
Short Description: Birthday reminder for evolution
Owners: tomspur
Branches: F-10 F-11 F-12 EL-5
InitialCC:

Comment 19 Thomas Spura 2009-09-03 10:27:43 UTC
Using F-12 branch is indeed nonsence^^
Well... Learning by doing :)

New Package CVS Request
=======================
Package Name: gbirthday
Short Description: Birthday reminder for evolution
Owners: tomspur
Branches: F-10 F-11 EL-5
InitialCC:

Comment 20 Kevin Fenzi 2009-09-04 02:24:48 UTC
cvs done.

Comment 21 Fedora Update System 2009-09-04 03:14:13 UTC
gbirthday-0.4.2-1.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/gbirthday-0.4.2-1.fc10

Comment 22 Fedora Update System 2009-09-04 03:15:41 UTC
gbirthday-0.4.2-1.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/gbirthday-0.4.2-1.fc11

Comment 23 Fedora Update System 2009-09-06 20:42:42 UTC
gbirthday-0.4.2-1.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 24 Fedora Update System 2009-09-06 20:44:39 UTC
gbirthday-0.4.2-1.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.