Bug 982161 - Review Request: python-kapteyn - The Kapteyn Python Astronomy package
Review Request: python-kapteyn - The Kapteyn Python Astronomy package
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Dominik 'Rathann' Mierzejewski
Fedora Extras Quality Assurance
:
Depends On:
Blocks: FE-DEADREVIEW
  Show dependency treegraph
 
Reported: 2013-07-08 05:59 EDT by Sergio Pascual
Modified: 2014-05-24 10:51 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-05-24 10:51:42 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Sergio Pascual 2013-07-08 05:59:34 EDT
Spec URL: http://guaix.fis.ucm.es/~spr/python-kapteyn.spec
SRPM URL: http://guaix.fis.ucm.es/~spr/python-kapteyn-2.2-1.fc19.src.rpm
Description: The Kapteyn Package is a collection of Python modules and applications
developed by the computer group of the Kapteyn Astronomical Institute,
University of Groningen, The Netherlands. The purpose of the package is
to provide tools for the development of astronomical applications with Python.
Fedora Account System Username: sergiopr
Comment 1 michal.simon 2013-07-10 10:39:59 EDT
I will make a review (my sponsor will approve the package once it's OK)
Comment 2 michal.simon 2013-07-11 12:38:21 EDT
1. Package builds correctly with mock.


2. rpmlint output:

Rpmlint
-------
Checking: python-kapteyn-2.2-1.fc19.x86_64.rpm
          python-kapteyn-doc-2.2-1.fc19.noarch.rpm
python-kapteyn.x86_64: W: spelling-error %description -l en_US Groningen -> Ironing, Grounding, Contingent
python-kapteyn.x86_64: W: non-standard-group Unspecified
2 packages and 0 specfiles checked; 0 errors, 2 warnings.

Rpmlint (installed packages)
----------------------------
# rpmlint python-kapteyn-doc python-kapteyn
2 packages and 0 specfiles checked; 0 errors, 0 warnings.

- The 'spelling-error' warrning is a false positive.
- please add a Group: tag


3. you could add some comments about what the patch is doing


4. the package name is not the same as the upstream tarball but it is reasonable so I think it is OK


5. 
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable

MUST

[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[-]: Development (unversioned) .so files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: %build honours applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package

[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[-]: Fully versioned dependency in subpackages, if present.
[x]: Package complies to the Packaging Guidelines
[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory.
[x]: Package does not own files or directories owned by other packages.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Large documentation must go in a -doc subpackage.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: 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.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.

Python:
[x]: Python eggs must not download any dependencies during the build process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep


SHOULD

Generic:
[x]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane.
[ ]: Patches link to upstream bugs/comments/lists or are otherwise justified.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define.

Generic:
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Rpmlint is run on all installed packages.
[x]: Spec file according to URL is the same as in SRPM.
Comment 3 Sergio Pascual 2013-07-12 03:53:48 EDT
Thanks for the review!

Group tag is optional, for EPEL compatibility
https://fedoraproject.org/wiki/Packaging:Guidelines#Group_tag

Addon packages should preappend the "parent" (python in this case), name
https://fedoraproject.org/wiki/Packaging:NamingGuidelines?rd=Packaging/NamingGuidelines#Addon_Packages_.28General.29
Comment 4 Christopher Meng 2013-07-12 06:48:05 EDT
Fedora never asks packagers to include a group tag, and because group tag is becoming more and more useless, you can safely drop it.
Comment 5 michal.simon 2013-07-12 08:32:31 EDT
I was wrong, you're absolutely right the Group: tag is optional for Fedora
Comment 6 Dominik 'Rathann' Mierzejewski 2013-07-21 16:44:23 EDT
Thanks for the initial review, Michał. Some comments from me below:

Is the package not compatible with python3? If it is, please build the python3 version as well.

I noticed this in the build log:

/usr/lib64/python2.7/site-packages/numpy/core/include/numpy/npy_deprecated_api.h:11:2: warning: #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"

This warning appears a number of times, please report this upstream.

It looks like the following MINPACK-derived code (mpfit.[ch]) is bundled:
http://cow.physics.wisc.edu/~craigm/idl/fitting.html

It appears to come originally from:
http://www.netlib.org/minpack/
and
http://people.sc.fsu.edu/~jburkardt/f_src/minpack/minpack.html

Please unbundle and package separately if possible or request a bundling exception from FPC.

Another bundled code is ndimage from scipy (src/ndimg), which is available in Fedora. Please remove src/ndimg in %prep as well and build against system library.
Comment 7 Dominik 'Rathann' Mierzejewski 2013-07-21 17:02:24 EDT
Looks like kapteyn/_ni_support.py is taken from scipy as well.
Comment 8 Sergio Pascual 2013-07-27 19:57:24 EDT
Hi,

regarding mpfit, the original code is here:
http://cow.physics.wisc.edu/~craigm/idl/cmpfit.html

The code has been modified to interface with Python. The number and types of the arguments is different in the included mpfit.c and in the upstream mpfit.c

Even if cmpfit gets packaged, kapteyn will need it's own version. Is this still considered bundling?
Comment 9 Christopher Meng 2013-07-27 20:05:09 EDT
You might have to raise an exception at FPC if needed.
Comment 10 Michael Schwendt 2013-07-28 05:19:48 EDT
A lot is documented in the guidelines. In particular, these two apply:

  https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Forking
  https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Exceptions

The second one asks many questions. Try to get some answers.
Comment 11 Sergio Pascual 2013-08-16 11:10:26 EDT
I've unbundled the scipy bits and request an exception for cmpfit. No more work until I come back from my vacation period...

https://fedorahosted.org/fpc/ticket/326
Comment 12 Sergio Pascual 2014-05-24 10:51:42 EDT
I'm not interested in this package anymore, so I'm going to close the ticket

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