Bug 608206 - Review Request: zn_poly - C library for polynomial arithmetic
Summary: Review Request: zn_poly - C library for polynomial arithmetic
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Susi Lehtola
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 608199
TreeView+ depends on / blocked
 
Reported: 2010-06-26 01:39 UTC by Thomas Spura
Modified: 2010-06-29 15:33 UTC (History)
5 users (show)

Fixed In Version: zn_poly-0.9-4.fc13
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-06-29 15:29:44 UTC
Type: ---
Embargoed:
susi.lehtola: fedora-review+
j: fedora-cvs+


Attachments (Terms of Use)

Description Thomas Spura 2010-06-26 01:39:11 UTC
Spec URL: http://tomspur.fedorapeople.org/review/zn_poly.spec
SRPM URL: http://tomspur.fedorapeople.org/review/zn_poly-0.9-1.fc13.src.rpm
Description:
zn_poly is a C library for polynomial arithmetic in Z/nZ[x], where n is
any modulus that fits into an unsigned long.

#############################################################################

koji build succesfull:
http://koji.fedoraproject.org/koji/taskinfo?taskID=2273644

rpmlint ignorable except this one:
zn_poly-devel.x86_64: E: no-ldconfig-symlink /usr/lib64/libzn_poly.so

Don't know what to do with this one, is it ignoreable too?
"rpmlint -I no-ldconfig-symlink" lists it as 'should'...


#############################################################################

This package is a missing dependency for flint, which in turn is needed for SAGE:
http://fedoraproject.org/wiki/SIGs/SciTech/SAGE

Comment 1 Chen Lei 2010-06-26 03:36:21 UTC
Some suggests:
1.License:        (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+
-> GPLv3
Because license field only applies to binary rpm
2.
It'll be better to delete .a files instead of shipping it in -static subpackage. 

From packaging guideline:
Static libraries should only be included in exceptional circumstances

3.

You can add a make test to %check

Comment 2 Susi Lehtola 2010-06-26 19:35:26 UTC
rpmlint output:
zn_poly.src: W: spelling-error %description -l en_US zn -> Zn, z, n
zn_poly.src: W: spelling-error %description -l en_US nZ -> NZ, Zn, n
zn_poly.src:48: W: configure-without-libdir-spec
zn_poly.x86_64: W: spelling-error %description -l en_US zn -> Zn, z, n
zn_poly.x86_64: W: spelling-error %description -l en_US nZ -> NZ, Zn, n
zn_poly-debuginfo.x86_64: W: spelling-error Summary(en_US) zn -> Zn, z, n
zn_poly-debuginfo.x86_64: W: spelling-error %description -l en_US zn -> Zn, z, n
zn_poly-devel.x86_64: W: spelling-error Summary(en_US) zn -> Zn, z, n
zn_poly-devel.x86_64: W: spelling-error %description -l en_US zn -> Zn, z, n
zn_poly-devel.x86_64: W: spelling-error %description -l en_US nZ -> NZ, Zn, n
zn_poly-devel.x86_64: E: no-ldconfig-symlink /usr/lib64/libzn_poly.so
zn_poly-devel.x86_64: W: no-documentation
zn_poly-static.x86_64: W: spelling-error Summary(en_US) zn -> Zn, z, n
zn_poly-static.x86_64: W: spelling-error %description -l en_US zn -> Zn, z, n
zn_poly-static.x86_64: W: spelling-error %description -l en_US nZ -> NZ, Zn, n
zn_poly-static.x86_64: W: no-documentation
5 packages and 0 specfiles checked; 1 errors, 15 warnings.

- You can fix the configure-without-libdir warning by replacing
 ./configure --cflags="%{optflags} -fPIC" --prefix=%{_prefix} \
    --gmp-prefix=%{_prefix} \
    --ntl-prefix=%{_prefix} \
    --flint-prefix=%{_prefix}
with
 python makemakefile.py \
    --cflags="%{optflags} -fPIC" --prefix=%{_prefix} \
    --gmp-prefix=%{_prefix} --ntl-prefix=%{_prefix} \
    --flint-prefix=%{_prefix} > makefile


- Fix the no-ldconfig-symlink either by patching makemakefile.py so that libzn_poly.so becomes a symlink, or by replacing the installed duplicate with a symlink at the end of %install.


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
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. OK
- Specifying the multiple license scenario is OK, although you could shorten it to "GPLv2 or GPLv3", since that's what comes out at the end.

MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. OK
0eeaae2524addf558de94bfbc914d22e  zn_poly-0.9.tar.gz
0eeaae2524addf558de94bfbc914d22e  ../SOURCES/zn_poly-0.9.tar.gz

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. NEEDSWORK
- Preserve time stamps in %install by adding -p (or -a) to the cp argument.

MUST: Packages containing shared library files must call ldconfig. OK

MUST: A package must own all directories that it creates or require the package that owns the directory. OK
- I recommend using a trailing / for directories in %files to make it clearer, i.e.
%{_includedir}/zn_poly/

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
- Don't include README, it only contains instructions for compilation, which aren't relevant to the binary rpm.
- Maybe include doc/REFERENCES ?

MUST: Header files must be in a -devel package. OK

MUST: Static libraries must be in a -static package. OK
- There's nothing wrong with shipping static libraries (in -static), but normally it isn't done in Fedora.
- If you want, you can just not ship the static library by either not installing it in %install, or by deleting it at the end of %install.

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. OK
MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency. OK
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
SHOULD: The package builds in mock. OK

Comment 3 Thomas Spura 2010-06-27 10:18:38 UTC
Jussi, thanks for the review.

(In reply to comment #1)
> Some suggests:
> 1.License:        (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+
> -> GPLv3
> Because license field only applies to binary rpm

It's in summary GPLv3, yes, but I refer to:
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Multiple_Licensing_Scenarios

If there are some files under a different license, it must stated in the spec, and refering to the COPYING file is one possibiliy.
e.g. wide_arith.h is licensed under LGPLv2+, so this needs to be reflected somewhere.

> 2.
> It'll be better to delete .a files instead of shipping it in -static
> subpackage. 
> 
> From packaging guideline:
> Static libraries should only be included in exceptional circumstances

Yes, I usually delete them, but because this is a dependency of flint, which shipps static libs, I choosed to ship them here too. (Furthermore, I don't know yet, if sagemath needs static libs, if it doesn't maybe we can delete them later on.)

> 3.
> 
> You can add a make test to %check    

I think, I already did... :)

###########################################################################

(In reply to comment #2)
> rpmlint output:
[snip]
> 
> - You can fix the configure-without-libdir warning by replacing
>  ./configure --cflags="%{optflags} -fPIC" --prefix=%{_prefix} \
>     --gmp-prefix=%{_prefix} \
>     --ntl-prefix=%{_prefix} \
>     --flint-prefix=%{_prefix}
> with
>  python makemakefile.py \
>     --cflags="%{optflags} -fPIC" --prefix=%{_prefix} \
>     --gmp-prefix=%{_prefix} --ntl-prefix=%{_prefix} \
>     --flint-prefix=%{_prefix} > makefile

Done.

> - Fix the no-ldconfig-symlink either by patching makemakefile.py so that
> libzn_poly.so becomes a symlink, or by replacing the installed duplicate with a
> symlink at the end of %install.

Done in %install.

[snip]
> MUST: Optflags are used and time stamps preserved. NEEDSWORK
> - Preserve time stamps in %install by adding -p (or -a) to the cp argument.

Done.

> MUST: A package must own all directories that it creates or require the package
> that owns the directory. OK
> - I recommend using a trailing / for directories in %files to make it clearer,
> i.e.
> %{_includedir}/zn_poly/

Changed.

> MUST: All relevant items are included in %doc. Items in %doc do not affect
> runtime of application. NEEDSWORK
> - Don't include README, it only contains instructions for compilation, which
> aren't relevant to the binary rpm.
> - Maybe include doc/REFERENCES ?

ok, done.

> MUST: Static libraries must be in a -static package. OK
> - There's nothing wrong with shipping static libraries (in -static), but
> normally it isn't done in Fedora.
> - If you want, you can just not ship the static library by either not
> installing it in %install, or by deleting it at the end of %install.

flint has static libs, so I have to ship them too, or the libs from flint would be nonsense. (Maybe if sage doesn't require the static libs, we'll delete it.)

###########################################################################

Spec URL: http://tomspur.fedorapeople.org/review/zn_poly.spec
SRPM URL: http://tomspur.fedorapeople.org/review/zn_poly-0.9-2.fc13.src.rpm

Comment 4 Thomas Spura 2010-06-27 11:00:35 UTC
flint wants to have the headers in zn_poly/src

Spec URL: http://tomspur.fedorapeople.org/review/zn_poly.spec
SRPM URL: http://tomspur.fedorapeople.org/review/zn_poly-0.9-3.fc13.src.rpm

Comment 5 Chen Lei 2010-06-27 11:06:26 UTC
(In reply to comment #3)
> Jussi, thanks for the review.
> (In reply to comment #1)
> > Some suggests:
> > 1.License:        (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+
> > -> GPLv3
> > Because license field only applies to binary rpm
> It's in summary GPLv3, yes, but I refer to:
> 

See http://lists.fedoraproject.org/pipermail/packaging/2010-May/007075.html for more explanation. I think the mainpackage is a pure GPLv3 license, the license for -devel may be a bit complicated.

Comment 6 Susi Lehtola 2010-06-27 11:06:54 UTC
I'm not sure I agree with
 cp -pv include/*.h %{buildroot}%{_includedir}/zn_poly/src/

If flint assumes a nonstandard location for the headers, then it should be fixed.

Comment 7 Susi Lehtola 2010-06-27 11:08:27 UTC
(In reply to comment #1)
> Some suggests:
> 1.License:        (GPLv2 or GPLv3) and GPLv2+ and LGPLv2+
> -> GPLv3
> Because license field only applies to binary rpm

Note that this is not true, since "(GPLv2 or GPLv3) and GPLv2+ and LGPLv2+" resolves to "GPLv2 or GPLv3".

Comment 8 Thomas Spura 2010-06-27 11:45:46 UTC
(In reply to comment #6)
> I'm not sure I agree with
>  cp -pv include/*.h %{buildroot}%{_includedir}/zn_poly/src/
> 
> If flint assumes a nonstandard location for the headers, then it should be
> fixed.    

Ok, reverted in:

Spec URL: http://tomspur.fedorapeople.org/review/zn_poly.spec
SRPM URL: http://tomspur.fedorapeople.org/review/zn_poly-0.9-4.fc13.src.rpm

Will do the flint fix with the update in bug #608199.

Comment 9 Susi Lehtola 2010-06-27 17:23:04 UTC
Very well,

APPROVED


PS. The soname = %{version} looks a bit funny. Maybe the library still is under heavy development; the soname changing with updates might cause troubles with other packages later on.

Comment 10 Thomas Spura 2010-06-28 09:28:24 UTC
Thanks again.

New Package CVS Request
=======================
Package Name: zn_poly
Short Description: C library for polynomial arithmetic
Owners: tomspur konradm
Branches: F-12 F-13
InitialCC:

Comment 11 Jason Tibbitts 2010-06-28 16:44:35 UTC
CVS done (by process-cvs-requests.py).

Comment 12 Fedora Update System 2010-06-29 10:16:57 UTC
zn_poly-0.9-4.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/zn_poly-0.9-4.fc13

Comment 13 Fedora Update System 2010-06-29 10:17:03 UTC
zn_poly-0.9-4.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/zn_poly-0.9-4.fc12

Comment 14 Fedora Update System 2010-06-29 15:29:38 UTC
zn_poly-0.9-4.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2010-06-29 15:33:15 UTC
zn_poly-0.9-4.fc13 has been pushed to the Fedora 13 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.