Bug 510038 - Review Request: python-icalendar - Parser and generator library for iCalendar files
Summary: Review Request: python-icalendar - Parser and generator library for iCalendar...
Keywords:
Status: CLOSED CANTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Susi Lehtola
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-07-07 14:23 UTC by Konstantin Ryabitsev
Modified: 2009-09-18 07:40 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-09-15 13:17:42 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Konstantin Ryabitsev 2009-07-07 14:23:34 UTC
Spec URL: http://icon.fedorapeople.org/f/python-icalendar.spec
SRPM URL: http://icon.fedorapeople.org/f/python-icalendar-2.0.1-0.1.fc11.src.rpm
Description:
The iCalendar package is a parser/generator of iCalendar files for use
with Python. It follows the "RFC 2445 (iCalendar) specification."

Comment 1 Gary T. Giesen 2009-07-08 05:00:18 UTC
This is a mock review. I do not have permissions to approve the package:

MUST: rpmlint must be run on every package. The output should be posted in the review. OK

rpmlint -i SPECS/python-icalendar.spec SRPMS/python-icalendar-2.0.1-0.1.fc11.src.rpm 
1 packages and 1 specfiles checked; 0 errors, 0 warnings.

MUST: The package must be named according to the Package Naming Guidelines . OK
MUST: The spec file name must match the base package %{name}, in the format %{name}.spec OK
MUST: The package must meet the Packaging Guidelines . OK
MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines . OK
MUST: The License field in the package spec file must match the actual license. NEEDSWORK

According to README.txt and LICENSE.txt, this is LGPLv2+

MUST: The source package includes the text of the license(s) in its own file, and then that fileis included in %doc. NEEDSWORK

%doc should include CHANGES.txt, CREDITS.txt, HISTORY.txt, LICENSE.txt, PKG-INFO, README.TXT, TODO.txt, version.txt

MUST: The spec file must be written in American English. OK
MUST: The spec file for the package MUST be legible. OK
MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. OK
MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. OK
MUST: All build dependencies must be listed in BuildRequires
MUST: The spec file MUST handle locales properly. N/A
MUST: Optflags are used and time stamps preserved. NEEDSWORK

Timestamps of source package do not match. See
http://fedoraproject.org/wiki/Packaging/Guidelines#Timestamps

Suggest using wget -N http://pypi.python.org/packages/source/i/icalendar/icalendar-2.0.1.tar.gz

MUST: Binary RPM package which stores shared library files in any of the dynamic linker's default paths, must call ldconfig. 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. N/A
MUST: A package must own all directories that it creates. If it does not create a directory that it uses or require the package which does create that directory. OK
MUST: A Fedora package must not list a file more than once in the spec file's %files listings. OK
MUST: Permissions on files must be set properly. OK
MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). OK
MUST: Each package must consistently use macros. OK
MUST: The package must contain code, or permissable content. OK
MUST: Large documentation files must go in a -doc subpackage. N/A
MUST: If a package includes something as %doc, it must not affect the runtime of the application. OK
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' (for directory ownership and usability). N/A
MUST: If a package contains library files with a suffix, then library files that end in .so (without suffix) must go in a -devel package. N/A
MUST: Devel packages must require the base package using a fully versioned dependency: N/A
MUST: Packages must NOT contain any .la libtool archives. OK
MUST: Packages containing GUI applications must include a %{name}.desktop file and be installed properly. N/A
MUST: Packages must not own files or directories already owned by other packages. N/A
MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT). OK
MUST: All filenames in rpm packages must be valid UTF-8. OK

Comment 2 Susi Lehtola 2009-07-08 08:51:39 UTC
OK, let's have a look.

(In reply to comment #1)
> MUST: Optflags are used and time stamps preserved. NEEDSWORK
> 
> Timestamps of source package do not match. See
> http://fedoraproject.org/wiki/Packaging/Guidelines#Timestamps
> 
> Suggest using wget -N
> http://pypi.python.org/packages/source/i/icalendar/icalendar-2.0.1.tar.gz

The tarball timestamp isn't an issue since it doesn't end up in the RPM. What's important is that the time stamps of the files in the tarball are preserved.

Comment 3 Susi Lehtola 2009-07-08 08:54:16 UTC
(In reply to comment #1)
> This is a mock review. I do not have permissions to approve the package:
> 
> MUST: rpmlint must be run on every package. The output should be posted in the
> review. OK
> 
> rpmlint -i SPECS/python-icalendar.spec
> SRPMS/python-icalendar-2.0.1-0.1.fc11.src.rpm 
> 1 packages and 1 specfiles checked; 0 errors, 0 warnings.

You didn't run it on the binary package:

[jzlehtol@politzer result]$ rpmlint python-icalendar-2.0.1-0.1.fc11.*
python-icalendar.noarch: W: no-documentation
2 packages and 0 specfiles checked; 0 errors, 1 warnings.

(Also, if you run rpmlint on the srpm it already includes the spec file.)

Comment 4 Susi Lehtola 2009-07-08 09:09:36 UTC
- Python packages need BR: python-devel, this one has BR: python-setuptools-devel
 which pulls in python-devel, so that's ok. NB. python-setuptools-devel isn't available on EPEL, for that you need BR: python-devel, python-setuptools.

- I suggest using "python" instead of "%{__python}".

- Instead of
 %{python_sitelib}/*
you should list
 %{python_sitelib}/icalendar/
 %{python_sitelib}/icalendar-*.egg-info/
since the first version won't notice if the egg-info is missing.

- Drop the python spec template comment
 # For noarch packages: sitelib

**

rpmlint output in comment #3.

- Add doc as mentioned in #1, except version.txt which isn't really necessary (the version info is already in the RPM itself).


MUST: The package does not yet exist in Fedora. The Review Request is not a duplicate. OK
MUST: The spec file for the package is legible and macros are used consistently. OK
MUST: The package must be named according to the Package Naming Guidelines. OK
- Python module with name that doesn't contain py or Py => prefix python-.

MUST: The spec file name must match the base package %{name}. OK
MUST: The package must be licensed with a Fedora approved license and meet the  Licensing Guidelines. OK

MUST: The License field in the package spec file must match the actual license. NEEDSWORK
- License mentioned in src/icalendar/parser.py is GPL => license is GPL+.
- Other files do not mention any license headers, readme states license is LGPL => LGPLv2+
* Resulting license tag is GPL+ and LGPLv2+ (which probably can be combined to GPLv2+).
- Suggest contacting upstream about this. License headers should be present in every source code file.

MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. OK
MUST: The package MUST successfully compile and build into binary rpms. OK
MUST: The spec file MUST handle locales properly. N/A
MUST: Optflags are used and time stamps preserved. OK
MUST: Packages containing shared library files must call ldconfig. N/A
MUST: A package must own all directories that it creates or require the package that owns the directory. OK
MUST: Files only listed once in %files listings. OK
MUST: Debuginfo package is complete. OK
MUST: Permissions on files must be set properly. OK
MUST: Clean section exists. OK
MUST: Large documentation files must go in a -doc subpackage. N/A

MUST: All relevant items are included in %doc. Items in %doc do not affect runtime of application. NEEDSWORK
- Add missing %doc.

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 then library files ending in .so 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. N/A
MUST: Packages does not contain any .la libtool archives. N/A
MUST: Desktop files are installed properly. N/A
MUST: No file conflicts with other packages and no general names. OK
MUST: Buildroot cleaned before install. OK
SHOULD: %{?dist} tag is used in release. OK

SHOULD: If the package does not include license text(s) as separate files from upstream, the packager should query upstream to include it. OK
- Included LGPLv2 license but no GPL...

SHOULD: The package builds in mock. OK

Comment 5 Konstantin Ryabitsev 2009-07-08 14:35:04 UTC
Yeah, I better contact upstream about the license bit. Everything else should be taken care of, but I want to make sure they intended LGPL and not GPL, as in a couple of files.

Comment 6 Konstantin Ryabitsev 2009-07-08 14:45:18 UTC
Emailed primary maintainer. The PKG-INFO file states that the license is GPL2.1, so it's even less clear what the intended license is.

Comment 7 Susi Lehtola 2009-08-16 09:12:58 UTC
ping?

Comment 8 Konstantin Ryabitsev 2009-08-19 02:46:58 UTC
I haven't heard back from the lead maintainer, and looks like the support mailing lists are dead, too. I'm not sure what to do -- even if someone wants to continue maintaining the application, they will have to first settle the question of license.

Comment 9 Susi Lehtola 2009-09-07 15:24:16 UTC
ping? what do you want to do about this?

The package can go in as long as you fix the license tag to "GPL+ and LGPLv2+" (and address the other issues, too).

Comment 10 Konstantin Ryabitsev 2009-09-15 13:17:42 UTC
It looks like it's abandonware. All my attempts to reach any of the maintainers have gone without response. I think this is a "cantfix."


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