Bug 707819 - Review Request: DSDP - Software for semidefinite programming
Summary: Review Request: DSDP - Software for semidefinite programming
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Richard Shaw
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-05-26 04:00 UTC by Jerry James
Modified: 2011-06-21 17:38 UTC (History)
3 users (show)

Fixed In Version: DSDP-5.8-2.fc14
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-06-21 17:18:31 UTC
Type: ---
Embargoed:
hobbes1069: fedora-review+
j: fedora-cvs+


Attachments (Terms of Use)

Description Jerry James 2011-05-26 04:00:23 UTC
Spec URL: http://jjames.fedorapeople.org/dsdp/DSDP.spec
SRPM URL: http://jjames.fedorapeople.org/dsdp/DSDP-5.8-1.fc15.src.rpm
Description:
DSDP is a free open source implementation of an interior-point method
for semidefinite programming.  It provides primal and dual solutions,
exploits low-rank structure and sparsity in the data, and has relatively
low memory requirements for an interior-point method.  It allows
feasible and infeasible starting points and provides approximate
certificates of infeasibility when no feasible solution exists.  The
dual-scaling algorithm implemented in this package has a convergence
proof and worst-case polynomial complexity under mild assumptions on the
data.  The software can be used as a set of subroutines, through Matlab,
or by reading and writing to data files.  Furthermore, the solver offers
scalable parallel performance for large problems and a well documented
interface.  Some of the most popular applications of semidefinite
programming and linear matrix inequalities (LMI) are model control,
truss topology design, and semidefinite relaxations of combinatorial and
global optimization problems.

This package is needed to enable an optional set of functionality in the existing python-cvxopt package, which I maintain.  Although DSDP upstream appears to be dormant or dead, I am willing to maintain this package for the sake of python-cvxopt.

Comment 1 Richard Shaw 2011-05-31 21:36:09 UTC
I built it under mock for x86_64 since I'm still running F14. Here's the rpmlint output:

$ rpmlint DSDP.spec DSDP-5.8-1.fc15.src.rpm DSDP-5.8-1.fc15.*.rpm
DSDP.spec: W: invalid-url Source1: DSDP-man.tar.xz
DSDP.src: W: spelling-error Summary(en_US) semidefinite -> semi definite, semi-definite, definiteness
DSDP.src: W: spelling-error %description -l en_US semidefinite -> semi definite, semi-definite, definiteness
DSDP.src: W: invalid-url Source1: DSDP-man.tar.xz
DSDP.src: W: spelling-error Summary(en_US) semidefinite -> semi definite, semi-definite, definiteness
DSDP.src: W: spelling-error %description -l en_US semidefinite -> semi definite, semi-definite, definiteness
DSDP.src: W: invalid-url Source1: DSDP-man.tar.xz
DSDP.x86_64: W: spelling-error Summary(en_US) semidefinite -> semi definite, semi-definite, definiteness
DSDP.x86_64: W: spelling-error %description -l en_US semidefinite -> semi definite, semi-definite, definiteness
DSDP.x86_64: W: shared-lib-calls-exit /usr/lib64/libdsdp.so.5.8 exit.5
DSDP.x86_64: E: non-standard-executable-perm /usr/lib64/libdsdp.so.5.8 0775L
3 packages and 1 specfiles checked; 1 errors, 10 warnings.

I'm thinking we should fix the error. Maybe change the "cp -p" to "install -p -m 0755..."

I made the change and it worked. I also did this for the DSDP-exmples after I realized I forgot to run rpmlint on those packages as well.


I'm not sure what we should do about the last warning...
---
$ rpmlint -I shared-lib-calls-exit
shared-lib-calls-exit:
This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
function calls exit(), it prevents the calling program from handling the
error, reporting it to the user, closing files properly, and cleaning up any
state that the program has. It is preferred for the library to return an
actual error code and let the calling program decide how to handle the
situation.
---
Is this a problem?

Comment 2 Richard Shaw 2011-05-31 22:03:51 UTC
Working my way down the MUST list:

MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines.

I can't find anywhere where the license type is specified. The license file just says it's ok to use/distribute as long as the license file is included. I didn't find any evidence of a MIT license in the source files either using grep.

Perhaps it would be better to use:
"Freely redistributable without restriction" per the guidelines[1]?


More when I have time...

Richard

[1] http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#.22Distributable.22

Comment 3 Jerry James 2011-06-01 19:56:02 UTC
Thanks for the review, Richard.

(In reply to comment #1)
> DSDP.x86_64: E: non-standard-executable-perm /usr/lib64/libdsdp.so.5.8 0775L
> 3 packages and 1 specfiles checked; 1 errors, 10 warnings.
> 
> I'm thinking we should fix the error. Maybe change the "cp -p" to "install -p
> -m 0755..."

Interesting.  I don't get that when building on a real F15 machine (i.e., not mock).  I wonder what the difference is.  Anyhow, I've gone with your suggested change.

> I'm not sure what we should do about the last warning...
> ---
> $ rpmlint -I shared-lib-calls-exit

Complain bitterly to upstream.  Seriously.  I can't do anything about this without changing the library's API.  This is a bad thing for a library to do, but repairing it is upstream's job.

(In reply to comment #2)
> I can't find anywhere where the license type is specified. The license file
> just says it's ok to use/distribute as long as the license file is included. I
> didn't find any evidence of a MIT license in the source files either using
> grep.
>
> Perhaps it would be better to use:
> "Freely redistributable without restriction" per the guidelines[1]?

It is not identified specifically as MIT, no.  I just compared the terms in dsdp-license to the various MIT variants listed here:
https://fedoraproject.org/wiki/Licensing/MIT

This license appears to me to be substantially similar.  Still, we should proceed with caution.  I'll ask about this license on fedora-legal-list.

Comment 4 Richard Shaw 2011-06-01 20:19:11 UTC
(In reply to comment #3)
> Thanks for the review, Richard.

No problem!


> (In reply to comment #1)
> > DSDP.x86_64: E: non-standard-executable-perm /usr/lib64/libdsdp.so.5.8 0775L
> > 3 packages and 1 specfiles checked; 1 errors, 10 warnings.
> > 
> > I'm thinking we should fix the error. Maybe change the "cp -p" to "install -p
> > -m 0755..."
> 
> Interesting.  I don't get that when building on a real F15 machine (i.e., not
> mock).  I wonder what the difference is.  Anyhow, I've gone with your suggested
> change.

I wonder if it's a difference in rpmlint between F14 and F15? I would think they would be the same though. I'm building under mock, which is what koji does, right? So they should get identical results... Either way install "fixes" it.


> > I'm not sure what we should do about the last warning...
> > ---
> > $ rpmlint -I shared-lib-calls-exit
> 
> Complain bitterly to upstream.  Seriously.  I can't do anything about this
> without changing the library's API.  This is a bad thing for a library to do,
> but repairing it is upstream's job.

Works for me. Is there an upstream to complain to? There didn't seem to be much activity on the project anymore...

 
> (In reply to comment #2)
> > I can't find anywhere where the license type is specified. The license file
> > just says it's ok to use/distribute as long as the license file is included. I
> > didn't find any evidence of a MIT license in the source files either using
> > grep.
> >
> > Perhaps it would be better to use:
> > "Freely redistributable without restriction" per the guidelines[1]?
> 
> It is not identified specifically as MIT, no.  I just compared the terms in
> dsdp-license to the various MIT variants listed here:
> https://fedoraproject.org/wiki/Licensing/MIT
> 
> This license appears to me to be substantially similar.  Still, we should
> proceed with caution.  I'll ask about this license on fedora-legal-list.

Ok! 

Thanks,
Richard

Comment 5 Jerry James 2011-06-01 22:25:34 UTC
(In reply to comment #4)
> I wonder if it's a difference in rpmlint between F14 and F15? I would think
> they would be the same though. I'm building under mock, which is what koji
> does, right? So they should get identical results... Either way install "fixes"
> it.

Yes, that's what koji does, so the fix is necessary.

> Works for me. Is there an upstream to complain to? There didn't seem to be much
> activity on the project anymore...

It certainly looks dead.  I'll try sending email anyway and see if I get a response.

Comment 6 Richard Shaw 2011-06-06 21:06:28 UTC
Go ahead and post an updated spec while we wait for legal and I'll review everything else but the licensing.

Comment 7 Jerry James 2011-06-06 21:31:05 UTC
OK.  All that has changed is cp -> install.

Spec URL: http://jjames.fedorapeople.org/dsdp/DSDP.spec
SRPM URL: http://jjames.fedorapeople.org/dsdp/DSDP-5.8-2.fc15.src.rpm

Comment 8 Richard Shaw 2011-06-06 21:51:30 UTC
That's what I figured but didn't want to ASSume :)

Comment 9 Richard Shaw 2011-06-06 22:18:20 UTC
Ok, I added a category since I'm still learning here and I used it on all of the licensing stuff until that gets straightened out.

+: OK
-: must be fixed
=: should be fixed (at your discretion)
?: Question or clairification needed
N: not applicable

MUST:
[=] rpmlint output: shown in comment: shared-lib-calls-exit (only upstream can fix)
[+] follows package naming guidelines
[+] spec file base name matches package name
[=] package meets the packaging guidelines
[?] package uses a Fedora approved license: Elevated to Fedora Legal
[?] license field matches the actual license
[+] license file is included in %doc
[+] spec file is in American English
[+] spec file is legible
[+] sources match upstream: md5sum "37c15a3c6c3f13e31262f65ac4364b5e" for both.
[+] package builds on at least one primary arch (F14 x86_64 & i686, F15 x86_64)
[N] appropriate use of ExcludeArch
[+] all build requirements in BuildRequires
[+] spec file handles locales properly
[+] ldconfig in %post and %postun
[+] no bundled copies of system libraries
[N] no relocatable packages
[+] package owns all directories that it creates
[+] no files listed twice in %files
[+] proper permissions on files
[+] consistent use of macros
[+] code or permissible content
[N] large documentation in -doc
[+] no runtime dependencies in %doc
[+] header files in -devel
[N] static libraries in -static
[+] .so in -devel
[+] -devel requires main package
[+] package contains no libtool archives
[N] package contains a desktop file, uses desktop-file-install
[+] package does not own files/dirs owned by other packages
[+] all filenames in UTF-8

SHOULD:
[?] query upstream for license text
[N] description and summary contains available translations
[+] package builds in mock
[+] package builds on all supported arches
[+] package functions as described: Ran binary and help was displayed
[+] sane scriptlets
[+] subpackages require the main package
[N] placement of pkgconfig files
[N] file dependencies versus package dependencies
[+] package contains man pages for binaries/scripts

Comment 10 Jerry James 2011-06-07 21:26:17 UTC
I got a response.  We're to call this license "DSDP".  I made that change, but didn't bump the release number again, so the URLs are the same as before.  (I hope that's okay.)

Under SHOULD, I don't need to query upstream for the license text, because it is already included in the file "dsdp-license".

Comment 11 Richard Shaw 2011-06-07 21:30:11 UTC
Yup. I only added the ? under SHOULD since it would be nice if they converted to a more common license but OHWELL :)

Spec file looks good so your package is approved!

Comment 12 Jerry James 2011-06-07 23:07:40 UTC
New Package SCM Request
=======================
Package Name: DSDP
Short Description: Software for semidefinite programming
Owners: jjames
Branches: f14 f15
InitialCC:

Comment 13 Jason Tibbitts 2011-06-08 01:58:01 UTC
Git done (by process-git-requests).

Comment 14 Fedora Update System 2011-06-08 03:37:33 UTC
DSDP-5.8-2.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/DSDP-5.8-2.fc15

Comment 15 Fedora Update System 2011-06-08 03:40:05 UTC
DSDP-5.8-2.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/DSDP-5.8-2.fc14

Comment 16 Fedora Update System 2011-06-10 13:32:16 UTC
DSDP-5.8-2.fc14 has been pushed to the Fedora 14 testing repository.

Comment 17 Fedora Update System 2011-06-21 17:18:24 UTC
DSDP-5.8-2.fc15 has been pushed to the Fedora 15 stable repository.

Comment 18 Fedora Update System 2011-06-21 17:38:23 UTC
DSDP-5.8-2.fc14 has been pushed to the Fedora 14 stable repository.


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