Bug 819264 (Singular)

Summary: Review Request: Singular - Computer Algebra System for polynomial computations
Product: [Fedora] Fedora Reporter: Paulo Andrade <paulo.cesar.pereira.de.andrade>
Component: Package ReviewAssignee: Rex Dieter <rdieter>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: loganjerry, notting, package-review, puiterwijk, rdieter, tomspur
Target Milestone: ---Flags: rdieter: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-10 23:25:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Macaulay2-factory.patch none

Description Paulo Andrade 2012-05-06 02:59:39 UTC
Spec URL: http://kenobi.mandriva.com/~pcpa/Singular.spec
SRPM URL: http://kenobi.mandriva.com/~pcpa/Singular-3.1.3-1.fc16.src.rpm
Description: Singular is a computer algebra system for polynomial computations, with
special emphasis on commutative and non-commutative algebra, algebraic
geometry, and singularity theory. It is free and open-source under the
GNU General Public Licence.

---
This package is required to build sagemath, that is a work in progress as
described at http://fedoraproject.org/wiki/SIGs/SciTech/SAGE

My initial idea was to package it based on a Singular package I made for
Mandriva, but instead I did a fully review of it, and remade the package
from scratch, but based on experience from previously packaging it, so,
it is a very saner package, and in my tests, covers all Singular
requirements in my WIP scratch Fedora build of sagemath 5.0.rc0.

Comment 1 Paulo Andrade 2012-05-06 15:52:22 UTC
I updated the package due to a build failure in sagemath.

Spec URL: http://kenobi.mandriva.com/~pcpa/Singular.spec
SRPM URL: http://kenobi.mandriva.com/~pcpa/Singular-3.1.3-2.fc16.src.rpm

I moved the singular factory devel files to the same directory as the
singular ones. This corrects build of sagemath due to not finding some
factory include files, and has the advantage of no longer conflicting
with the Fedora libfac-devel package.

Comment 2 Paulo Andrade 2012-05-09 04:11:15 UTC
Yet another update due to a build failure in sagemath.

Now a failure due to an unresolved symbol, preventing sagemath to run in
the buildroot environment to generate documentation. Corrected in the new
Singular-undefined.patch, documented in the spec.

Spec URL: http://kenobi.mandriva.com/~pcpa/Singular.spec
SRPM URL: http://kenobi.mandriva.com/~pcpa/Singular-3.1.3-3.fc16.src.rpm

Comment 3 Patrick Uiterwijk 2012-06-26 19:54:07 UTC
Hey,

When I try to download the spec or SRPM file for reviewing, I get an 403 Access Forbidden error.
Maybe you could upload it somewhere else?

Comment 4 Paulo Andrade 2012-07-01 11:22:15 UTC
(In reply to comment #3)
> Hey,
> 
> When I try to download the spec or SRPM file for reviewing, I get an 403
> Access Forbidden error.
> Maybe you could upload it somewhere else?

Someone removed my ~/public_html in kenobi.mandriva.com, I just uploaded it to:

Spec URL: http://fedorapeople.org/~pcpa/Singular.spec
SRPM URL: http://fedorapeople.org/~pcpa/Singular-3.1.3-3.fc18.src.rpm

Comment 5 Paulo Andrade 2012-07-01 11:51:45 UTC
I run fedora-review in the above and made a minor correction to the License tag

Spec URL: http://fedorapeople.org/~pcpa/Singular.spec
SRPM URL: http://fedorapeople.org/~pcpa/Singular-3.1.3-4.fc18.src.rpm

The major issue should be
[!]: MUST Development (unversioned) .so files in -devel subpackage, if
     present.
     Note: Singular-3.1.3-3.fc18.i686.rpm : /usr/lib/Singular/dbmsr.so
     Singular-3.1.3-3.fc18.i686.rpm :
     /usr/lib/Singular/p_Procs_FieldGeneral.so Singular-3.1.3-3.fc18.i686.rpm
     : /usr/lib/Singular/p_Procs_FieldIndep.so Singular-3.1.3-3.fc18.i686.rpm
     : /usr/lib/Singular/p_Procs_FieldQ.so Singular-3.1.3-3.fc18.i686.rpm :
     /usr/lib/Singular/p_Procs_FieldZp.so Singular-3.1.3-3.fc18.i686.rpm :
     /usr/lib/libsingular.so

.so files under %{_libdir}/Singular are dynamic modules, so this should be ignored. %{_libdir}/libsingular.so is not a symlink, but, the api/abi is very unstable, so, not sure if worth to make a patch to create a versioned shared library; note that this is not the latest upstream release, but the version used by sagemath, and since only sagemath should use it, I would prefer to at first use the version used by sagemath because I already got a huge amount of tests to do for other components using versions different than the ones used by sagemath; linbox and givaro (and several others actually) should require quite a lot of debugging...

Comment 6 Rex Dieter 2012-07-01 15:23:22 UTC
excellent!  I'll be happy to help review this.

Comment 7 Paulo Andrade 2012-07-01 17:50:35 UTC
Thanks! While working on updating Macaulay2 to build with pari 2.5 I found that Singular-devel was, without need, conflicting with libfac-devel, so I corrected it.

Spec URL: http://fedorapeople.org/~pcpa/Singular.spec
SRPM URL: http://fedorapeople.org/~pcpa/Singular-3.1.3-5.fc18.src.rpm

Comment 8 Rex Dieter 2012-07-08 16:09:12 UTC
So, while looking into this closer, we probably ought to address the issue of bundling factory/libfac.  In short, why not use the system copies instead of the bundled code here?  To justify this, see also:
http://fedoraproject.org/wiki/Packaging/Guidelines#Duplication_of_system_libraries
http://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries
http://fedoraproject.org/wiki/Packaging:Treatment_Of_Bundled_Libraries

Comment 9 Paulo Andrade 2012-07-08 16:21:06 UTC
Agreed. This was a side effect of, besides fully rewriting the Singular.spec, still using some "semantics" I had in my Mandriva packages, where libfac is statically linked to whoever needs it, on a local build, should be, as well as in Fedora, no more than 3 packages afaik.

Reworking and hopefully will have -6 ready for review shortly.

Comment 10 Rex Dieter 2012-07-08 16:24:23 UTC
I suppose if using system libfac/factory doesn't work, for whatever reason, perhaps this Singular package could provide them (and we retire the separate libfac/factory packages currently in fedora).

Comment 11 Rex Dieter 2012-07-08 16:25:29 UTC
Singular-3.1.3-5.fc18 scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4225504

Comment 12 Rex Dieter 2012-07-08 16:52:21 UTC
Simple stuff:

$ rpmlint *.rpm
Singular.src: W: invalid-license LGPLv2.1+

ah...

1. LGPLv2.1+ isn't a valid license tag in fedora, use:
License: BSD and LGPLv2+ and GPLv2+
instead


naming: ok

macros: ok

scriptlets: n/a


So far so good, let's get the libfac/factory thing sorted out, and then I'll do a bit more runtime testing.

Comment 13 Paulo Andrade 2012-07-08 16:59:23 UTC
It is going to require significant rework I guess, as well as in libfac.
Maybe the proper approach should be to have the Singular package generate
libfac and libfac-devel, given that libfac sources are from singular upstream
repository...

I will need to patch configure.in files and autoreconf to comment AC_PROG_CC
and leave only AC_PROG_CXX and probably a few other changes, or it will fail
to "detect" factor.h due to not finding C++ stuff as it tries to compile the
test program with gcc.

libfac-devel probably should also generate a plain /usr/lib64/libsingfac.a
and not only /usr/lib64/libsingfac_g.a, but I am afraid there may be issues
with the build conditionals, e.g.

if test "x$with_Singular" = xyes; then
  libfactory=libsingcf.a
  [...]
else
  libfactory=libcf.a
  [..]
fi

Maybe the singular package should provide libfac and libfac-devel as a
subpackage.

Also, libfac-devel version does not exactly match the one in the Singular
review request, libfac-devel is:
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/Libfac/libfac-3-1-1.tar.gz
but to match this review request, it should be:
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/Libfac/libfac-3-1-3.tar.gz

Also, Maybe factory should be built separately, or, again, be a subpackage
of Singular, e.g. contents of
http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/Factory/

The singular package in the review request does not install any .a
library, but it builds:

$ find BUILD/Singular-3-1-3/ -name \*.a
BUILD/Singular-3-1-3/factory/libsingcf.a
BUILD/Singular-3-1-3/factory/libsingcf_g.a
BUILD/Singular-3-1-3/omalloc/libomalloc.a
BUILD/Singular-3-1-3/omalloc/libomalloc_ndebug.a
BUILD/Singular-3-1-3/libfac/libsingfac_g.a
BUILD/Singular-3-1-3/libfac/libsingfac.a
BUILD/Singular-3-1-3/kernel/libkernel_g.a
BUILD/Singular-3-1-3/kernel/libkernel.a

and libfac-devel installs:
$ rpm -ql libfac-devel
/usr/include/factor.h
/usr/lib64/libfac.a
/usr/lib64/libsingfac_g.a
/usr/share/doc/libfac-devel-3.1.1
/usr/share/doc/libfac-devel-3.1.1/00README
/usr/share/doc/libfac-devel-3.1.1/COPYING
/usr/share/doc/libfac-devel-3.1.1/ChangeLog

So, if the singular package would provide libfac-devel as a subpackage,
it would also need to do two builds, that is, one $with_Singular unset,
so that it would generate libfac.a instead of libsingfac.a.

Does this qualify as a reason for an exemption and special case?
I mean, Singular was also built in a specific, not latest, version
because the api is somewhat unstable, and this is the version that
works with sagemath.

Comment 14 Paulo Andrade 2012-07-08 17:12:09 UTC
Only Macaulay2 needs libfac and factory?
I am inclined to think that this package should provide the current
libfac-devel and factory as subpackages.

Comment 15 Rex Dieter 2012-07-08 17:14:59 UTC
Yes.  I agree with that plan.

Given the differences, that will likely require some additional work to adapt Macaulay2 to use the newer and different stuff.  So be it.

Comment 16 Paulo Andrade 2012-07-08 18:00:47 UTC
The only thing I was a bit unsure is about installing factory headers directory in %_includedir, but will keep it to have the package as compatible as possible.

That is, instead of installing files in
--includedir=%{_includedir}/singular/factory
use
--includedir=%{_includedir}

Comment 17 Rex Dieter 2012-07-08 18:32:47 UTC
doesn't matter much to me really, Macaulay2 packaging can be adapted either way.

But, for review purposes, I won't consider the bundling or replacement of system libfac/factory a review-blocker for now.  As a matter of fact, the replacement of the system-libs, I'd rather handle that later post-review, when I have more time to work on it.

Comment 18 Paulo Andrade 2012-07-08 18:38:08 UTC
Ok. I am almost done with a new review request, and generating compatible factory-devel and libfac-devel.
Already know sagemath builds, and have a patch for Macaulay2 already, just need a test build that should be done asap. Just trying to have it as clean as possible, should upload new review request in at most one hour... (famous last words)

Comment 19 Paulo Andrade 2012-07-08 19:36:42 UTC
Shortly I will post a Macaulay2 patch. The new Singular package that provides newer factory-devel and libfac-devel, and tested to work with sagemath, and fails very late in Macaulay2 build (need to correct a path due to installing in %{_includedir}/factory)...

Spec URL: http://fedorapeople.org/~pcpa/Singular.spec
SRPM URL: http://fedorapeople.org/~pcpa/Singular-3.1.3-6.fc18.src.rpm

Comment 20 Paulo Andrade 2012-07-08 19:50:07 UTC
Created attachment 596916 [details]
Macaulay2-factory.patch

With this patch, plus trivial Macaulay2.spec diff:

------%<------
$ diff -u ~/fedora/Macaulay2/Macaulay2.spec SPECS/
--- /home/pcpa/fedora/Macaulay2/Macaulay2.spec  2012-07-08 15:07:16.415854577 -0400
+++ SPECS/Macaulay2.spec        2012-07-08 15:30:18.705907510 -0400
@@ -8,7 +8,7 @@
 Summary: System for algebraic geometry and commutative algebra
 Name:    Macaulay2
 Version: 1.4
-Release: 7%{?dist}
+Release: 8%{?dist}
 
 License: GPLv2 or GPLv3
 Group:   Applications/Engineering
@@ -49,6 +49,8 @@
 # Build with pari 2.3 or 2.5.
 # Based on http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/macaulay2/current/SOURCES/Macaulay2-1.4-pari.patch?revision=596315&view=markup
 Patch10: Macaulay2-1.4-pari.patch
+# Build with newer factory and libfac subpackages of the new Singular package
+Patch11: Macaulay2-factory.patch
 
 %global system_normaliz 1
 
@@ -139,6 +141,7 @@
 %endif
 %patch9 -p1 -b .mpir
 %patch10 -p1 -b .pari
+%patch11 -p1 -b .factory
 
 [ -f configure -a -f include/config.h ] || make 
 
------%<------

Macaulay2 failed as:
 ** compiling x-factor.cpp
x-factor.cpp: In function 'void rawFactor(const RingElement*, engine_RawRingElementArray_struct**, M2_arrayint_struct**)':
x-factor.cpp:500:21: error: too few arguments to function 'CFFList Factorize(const CanonicalForm&, const CanonicalForm&, int)'
compilation terminated due to -Wfatal-errors.
make[2]: *** [x-factor.o] Error 1
make[2]: Leaving directory `/home/pcpa/rpmbuild/BUILD/Macaulay2-1.4-r12617/Macaulay2/e'
make[1]: *** [all-in-e] Error 2
make[1]: Leaving directory `/home/pcpa/rpmbuild/BUILD/Macaulay2-1.4-r12617/Macaulay2'
make: *** [all-in-Macaulay2] Error 2
make: Leaving directory `/home/pcpa/rpmbuild/BUILD/Macaulay2-1.4-r12617'
+ cat 'StagingArea/common/share/doc/Macaulay2/Normaliz/example-output/*'
cat: StagingArea/common/share/doc/Macaulay2/Normaliz/example-output/*: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.6IPz56 (%build)

496:	  if (P->charac() == 0) {
497:	    q = factorize(h);		// suitable for k = QQ, comes from libcf (factory)
498:	  }
499:	  else {
500:	    q = Factorize(h);		// suitable for k = ZZ/p, comes from libfac
501:	  }

$ grep -r Factorize /usr/include/factor*
/usr/include/factor.h:CFFList Factorize( const CanonicalForm & F, const CanonicalForm & mipo, int is_SqrFree=0 ) ;
/usr/include/factory/factory.h:CFFList AbsFactorize( const CanonicalForm  & a );

Maybe the fix is just s/Factorize/AbsFactorize/, or maybe you know how to fix it :-),
or upstream can give some help on this...

Comment 21 Paulo Andrade 2012-07-09 15:47:45 UTC
I just made a post to Macaulay2 google groups asking for some feedback about updating/using factory and libfac 3.1.3, and posted a link to the bug report.

Comment 22 Rex Dieter 2012-07-09 17:38:23 UTC
Dan replied upstream, and I'm satisfied with the reply, we can continue with this review (and sort out the M2 issues afterward).

For example, the M2 build gets further, but now am seeing some undefined symbols in libcf.a:

/usr/lib/gcc/x86_64-redhat-linux/4.7.0/../../../../lib64/libcf.a(cf_gcd_smallp.o): In function `randomElement(CanonicalForm const&, Variable const&, List<CanonicalForm>&, bool&)':
(.text+0x2bd): undefined reference to `bool find<CanonicalForm>(List<CanonicalForm> const&, CanonicalForm const&)'
/usr/lib/gcc/x86_64-redhat-linux/4.7.0/../../../../lib64/libcf.a(cf_gcd_smallp.o): In function `randomElement(CanonicalForm const&, Variable const&, List<CanonicalForm>&, bool&)':
...
among others.

Comment 23 Rex Dieter 2012-07-09 18:02:03 UTC
sources: ok
37e532fb6cece957e90a4be9ad1d375b  Singular-3-1-3-3.tar.gz

licensing: ok now


I don't see any remaining review blockers, APPROVED.


I'd like to be listed as comaintainer, if that's agreeable.

Comment 24 Rex Dieter 2012-07-09 18:04:58 UTC
oh, in case you aren't psychic:

FAS username:  rdieter

Comment 25 Paulo Andrade 2012-07-09 20:28:23 UTC
New Package SCM Request
=======================
Package Name: Singular
Short Description: Computer Algebra System for polynomial computations
Owners: pcpa rdieter
Branches: 
InitialCC:

Comment 26 Paulo Andrade 2012-07-09 20:40:13 UTC
(In reply to comment #22)
> Dan replied upstream, and I'm satisfied with the reply, we can continue with
> this review (and sort out the M2 issues afterward).
> 
> For example, the M2 build gets further, but now am seeing some undefined
> symbols in libcf.a:
> 
> /usr/lib/gcc/x86_64-redhat-linux/4.7.0/../../../../lib64/libcf.
> a(cf_gcd_smallp.o): In function `randomElement(CanonicalForm const&,
> Variable const&, List<CanonicalForm>&, bool&)':
> (.text+0x2bd): undefined reference to `bool
> find<CanonicalForm>(List<CanonicalForm> const&, CanonicalForm const&)'
> /usr/lib/gcc/x86_64-redhat-linux/4.7.0/../../../../lib64/libcf.
> a(cf_gcd_smallp.o): In function `randomElement(CanonicalForm const&,
> Variable const&, List<CanonicalForm>&, bool&)':
> ...

  I am more of a C than C++ programmer, but looks like the template was not instantiated. It should come from factory/templates/ftmpl_list.cc:

template <class T>
bool find (const List<T> & F, const T& t)

  Probably the Macaulay2 code should include the .cc file and not just the .h:
$ rpm -ql factory-devel | grep ftmpl_list
/usr/include/factory/templates/ftmpl_list.cc
/usr/include/factory/templates/ftmpl_list.h

> among others.

Comment 27 Paulo Andrade 2012-07-10 13:37:07 UTC
rdieter, maybe the fedora-cvs request was not yet processed because you did not do a full fedora-review :-) The package is mine, so, not changing the generated review:

$ fedora-review -b 819264
Processing review bug : 819264
Getting .spec and .srpm Urls from bug report : 819264
Downloading .spec and .srpm files
Building /home/pcpa/819264/Singular-3.1.3-6.fc18.src.rpm using mock fedora-rawhide-i386
INFO: mock.py version 1.1.23 starting...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
INFO: Start(/home/pcpa/819264/Singular-3.1.3-6.fc18.src.rpm)  Config(fedora-rawhide-i386)
Start: lock buildroot
Start: clean chroot
INFO: chroot (/var/lib/mock/fedora-rawhide-i386) unlocked and deleted
Finish: clean chroot
Finish: lock buildroot
Start: chroot init
Start: lock buildroot
Mock Version: 1.1.23
INFO: Mock Version: 1.1.23
INFO: calling preinit hooks
INFO: enabled root cache
Start: unpacking root cache
Finish: unpacking root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
INFO: enabled ccache
Start: device setup
Finish: device setup
Start: yum update
Finish: yum update
Finish: lock buildroot
Finish: chroot init
INFO: Installed packages:
Start: build phase for Singular-3.1.3-6.fc18.src.rpm
Start: device setup
Finish: device setup
Start: build setup for Singular-3.1.3-6.fc18.src.rpm
Finish: build setup for Singular-3.1.3-6.fc18.src.rpm
Start: rpmbuild -bb Singular-3.1.3-6.fc18.src.rpm
Finish: rpmbuild -bb Singular-3.1.3-6.fc18.src.rpm
Finish: build phase for Singular-3.1.3-6.fc18.src.rpm
INFO: Done(/home/pcpa/819264/Singular-3.1.3-6.fc18.src.rpm) Config(fedora-rawhide-i386) 6 minutes 16 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-rawhide-i386/result
Finish: run
Build completed ok
Downloading (Source0): http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/3-1-3/Singular-3-1-3-3.tar.gz
Running checks and generate report
Checking source md5 : /home/pcpa/819264/Singular-3-1-3-3.tar.gz
Review in: /home/pcpa/819264/Singular-review.txt

and the Singular-review.txt:

---%<---

Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== C/C++ ====
[x]: MUST Header files in -devel subpackage, if present.
[x]: MUST Package does not contain any libtool archives (.la)
[ ]: MUST Package does not contain kernel modules.
[ ]: MUST Package contains no static executables.
[ ]: MUST Rpath absent or only used for internal libs.
[ ]: MUST Package is not relocatable.
[!]: MUST Development (unversioned) .so files in -devel subpackage, if
     present.
     Note: Singular-3.1.3-6.fc18.i686.rpm : /usr/lib/Singular/dbmsr.so
     Singular-3.1.3-6.fc18.i686.rpm :
     /usr/lib/Singular/p_Procs_FieldGeneral.so Singular-3.1.3-6.fc18.i686.rpm
     : /usr/lib/Singular/p_Procs_FieldIndep.so Singular-3.1.3-6.fc18.i686.rpm
     : /usr/lib/Singular/p_Procs_FieldQ.so Singular-3.1.3-6.fc18.i686.rpm :
     /usr/lib/Singular/p_Procs_FieldZp.so Singular-3.1.3-6.fc18.i686.rpm :
     /usr/lib/libsingular.so
[ ]: MUST Static libraries in -static subpackage, if present.


==== Generic ====
[ ]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[ ]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[ ]: MUST Package contains no bundled libraries.
[ ]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[ ]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[ ]: MUST Macros in Summary, %description expandable at SRPM build time.
[ ]: MUST Package requires other packages for directories it uses.
[ ]: MUST Package uses nothing in %doc for runtime.
[ ]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[ ]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: MUST 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.
[ ]: MUST License field in the package spec file matches the actual license.
[ ]: MUST License file installed when any subpackage combination is installed.
[ ]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[ ]: MUST Package does not generate any conflict.
[ ]: MUST Package obeys FHS, except libexecdir and /usr/target.
[ ]: MUST Package must own all directories that it creates.
[ ]: MUST Package does not own files or directories owned by other packages.
[ ]: MUST Package installs properly.
[ ]: MUST Requires correct, justified where necessary.
[!]: MUST Rpmlint output is silent.

rpmlint Singular-3.1.3-6.fc18.src.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint Singular-doc-3.1.3-6.fc18.i686.rpm

Singular-doc.i686: W: only-non-binary-in-usr-lib
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


rpmlint libfac-devel-3.1.3-6.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint Singular-devel-3.1.3-6.fc18.i686.rpm

Singular-devel.i686: W: no-documentation
Singular-devel.i686: E: incorrect-fsf-address /usr/include/singular/fegetopt.h
Singular-devel.i686: W: spurious-executable-perm /usr/include/libsingular.h
Singular-devel.i686: E: incorrect-fsf-address /usr/include/singular/grammar.h
1 packages and 0 specfiles checked; 2 errors, 2 warnings.


rpmlint Singular-examples-3.1.3-6.fc18.i686.rpm

Singular-examples.i686: W: only-non-binary-in-usr-lib
Singular-examples.i686: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint Singular-3.1.3-6.fc18.i686.rpm

Singular.i686: W: no-soname /usr/lib/libsingular.so
Singular.i686: W: file-not-utf8 /usr/lib/Singular/COPYING
Singular.i686: E: incorrect-fsf-address /usr/lib/Singular/GPL2
Singular.i686: W: no-manual-page-for-binary TSingular
Singular.i686: W: no-manual-page-for-binary Singular
1 packages and 0 specfiles checked; 1 errors, 4 warnings.


rpmlint Singular-emacs-3.1.3-6.fc18.i686.rpm

Singular-emacs.i686: W: no-documentation
Singular-emacs.i686: W: no-manual-page-for-binary ESingular
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint Singular-debuginfo-3.1.3-6.fc18.i686.rpm

Singular-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/Singular-3-1-3/Singular/grammar.cc
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/Singular/janet.cc
Singular-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/Singular-3-1-3/Singular/janet.h
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/factory/facAlgExt.cc
Singular-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/Singular-3-1-3/kernel/fegetopt.h
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/factory/cf_gcd_smallp.cc
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/factory/facIrredTest.cc
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/Singular/wrapper.cc
1 packages and 0 specfiles checked; 7 errors, 1 warnings.


rpmlint Singular-surfex-3.1.3-6.fc18.i686.rpm

Singular-surfex.i686: W: only-non-binary-in-usr-lib
Singular-surfex.i686: W: no-documentation
Singular-surfex.i686: W: no-manual-page-for-binary surfex
1 packages and 0 specfiles checked; 0 errors, 3 warnings.


rpmlint factory-devel-3.1.3-6.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
/home/pcpa/819264/Singular-3-1-3-3.tar.gz :
  MD5SUM this package     : 37e532fb6cece957e90a4be9ad1d375b
  MD5SUM upstream package : 37e532fb6cece957e90a4be9ad1d375b

[ ]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[ ]: MUST Package contains a SysV-style init script if in need of one.
[x]: MUST File names are valid UTF-8.
[ ]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[ ]: 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.
[x]: SHOULD Dist tag is present.
[ ]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[ ]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: SHOULD Package functions as described.
[ ]: SHOULD Latest version is packaged.
[ ]: SHOULD Package does not include license text files separate from
     upstream.
[ ]: SHOULD Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0: http://www.mathematik.uni-
     kl.de/ftp/pub/Math/Singular/SOURCES/3-1-3/Singular-3-1-3-3.tar.gz
     (Singular-3-1-3-3.tar.gz) Patch0: Singular-python.patch (Singular-
     python.patch) Patch1: Singular-make-parallel.patch (Singular-make-
     parallel.patch) Patch2: Singular-shared.patch (Singular-shared.patch)
     Patch3: Singular-destdir.patch (Singular-destdir.patch) Patch4: Singular-
     headers.patch (Singular-headers.patch) Patch5: Singular-link.patch
     (Singular-link.patch) Patch6: Singular-doc.patch (Singular-doc.patch)
     Patch7: Singular-builddid.patch (Singular-builddid.patch) Patch8:
     Singular-undefined.patch (Singular-undefined.patch)
[x]: SHOULD SourceX is a working URL.
[ ]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[ ]: SHOULD %check is present and all tests pass.
[ ]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.


==== Java ====
[ ]: MUST If source tarball includes bundled jar/class files these need to be
     removed prior to building
[!]: MUST Packages have proper BuildRequires/Requires on jpackage-utils
[x]: MUST Fully versioned dependency in subpackages, if present.
[!]: MUST Javadoc documentation files are generated and included in -javadoc
     subpackage
     Note: No javadoc subpackage present
[!]: MUST Javadoc subpackages have Requires: jpackage-utils
[!]: MUST Javadocs are placed in %{_javadocdir}/%{name} (no -%{version}
     symlink)
     Note: No javadoc subpackage present
[ ]: SHOULD Package has BuildArch: noarch (if possible)
[ ]: SHOULD Package uses upstream build method (ant/maven/etc.)


==== Maven ====
[x]: MUST Old add_to_maven_depmap macro is not being used
[ ]: MUST If package contains pom.xml files install it (including depmaps)
     even when building with ant

Issues:
[!]: MUST Rpmlint output is silent.

rpmlint Singular-3.1.3-6.fc18.src.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint Singular-doc-3.1.3-6.fc18.i686.rpm

Singular-doc.i686: W: only-non-binary-in-usr-lib
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


rpmlint libfac-devel-3.1.3-6.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


rpmlint Singular-devel-3.1.3-6.fc18.i686.rpm

Singular-devel.i686: W: no-documentation
Singular-devel.i686: E: incorrect-fsf-address /usr/include/singular/fegetopt.h
Singular-devel.i686: W: spurious-executable-perm /usr/include/libsingular.h
Singular-devel.i686: E: incorrect-fsf-address /usr/include/singular/grammar.h
1 packages and 0 specfiles checked; 2 errors, 2 warnings.


rpmlint Singular-examples-3.1.3-6.fc18.i686.rpm

Singular-examples.i686: W: only-non-binary-in-usr-lib
Singular-examples.i686: W: no-documentation
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint Singular-3.1.3-6.fc18.i686.rpm

Singular.i686: W: no-soname /usr/lib/libsingular.so
Singular.i686: W: file-not-utf8 /usr/lib/Singular/COPYING
Singular.i686: E: incorrect-fsf-address /usr/lib/Singular/GPL2
Singular.i686: W: no-manual-page-for-binary TSingular
Singular.i686: W: no-manual-page-for-binary Singular
1 packages and 0 specfiles checked; 1 errors, 4 warnings.


rpmlint Singular-emacs-3.1.3-6.fc18.i686.rpm

Singular-emacs.i686: W: no-documentation
Singular-emacs.i686: W: no-manual-page-for-binary ESingular
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint Singular-debuginfo-3.1.3-6.fc18.i686.rpm

Singular-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/Singular-3-1-3/Singular/grammar.cc
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/Singular/janet.cc
Singular-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/Singular-3-1-3/Singular/janet.h
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/factory/facAlgExt.cc
Singular-debuginfo.i686: E: incorrect-fsf-address /usr/src/debug/Singular-3-1-3/kernel/fegetopt.h
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/factory/cf_gcd_smallp.cc
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/factory/facIrredTest.cc
Singular-debuginfo.i686: E: script-without-shebang /usr/src/debug/Singular-3-1-3/Singular/wrapper.cc
1 packages and 0 specfiles checked; 7 errors, 1 warnings.


rpmlint Singular-surfex-3.1.3-6.fc18.i686.rpm

Singular-surfex.i686: W: only-non-binary-in-usr-lib
Singular-surfex.i686: W: no-documentation
Singular-surfex.i686: W: no-manual-page-for-binary surfex
1 packages and 0 specfiles checked; 0 errors, 3 warnings.


rpmlint factory-devel-3.1.3-6.fc18.i686.rpm

1 packages and 0 specfiles checked; 0 errors, 0 warnings.


See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint
[!]: MUST Development (unversioned) .so files in -devel subpackage, if
     present.
     Note: Singular-3.1.3-6.fc18.i686.rpm : /usr/lib/Singular/dbmsr.so
     Singular-3.1.3-6.fc18.i686.rpm :
     /usr/lib/Singular/p_Procs_FieldGeneral.so Singular-3.1.3-6.fc18.i686.rpm
     : /usr/lib/Singular/p_Procs_FieldIndep.so Singular-3.1.3-6.fc18.i686.rpm
     : /usr/lib/Singular/p_Procs_FieldQ.so Singular-3.1.3-6.fc18.i686.rpm :
     /usr/lib/Singular/p_Procs_FieldZp.so Singular-3.1.3-6.fc18.i686.rpm :
     /usr/lib/libsingular.so
See: http://fedoraproject.org/wiki/Packaging/Guidelines#DevelPackages
[!]: MUST Packages have proper BuildRequires/Requires on jpackage-utils
See: https://fedoraproject.org/wiki/Packaging:Java
[!]: MUST Javadoc documentation files are generated and included in -javadoc
     subpackage
     Note: No javadoc subpackage present
See: https://fedoraproject.org/wiki/Packaging:Java#Javadoc_installation
[!]: MUST Javadoc subpackages have Requires: jpackage-utils
See: https://fedoraproject.org/wiki/Packaging:Java
[!]: MUST Javadocs are placed in %{_javadocdir}/%{name} (no -%{version}
     symlink)
     Note: No javadoc subpackage present
See: https://fedoraproject.org/wiki/Packaging:Java#Javadoc_installation


Generated by fedora-review 0.1.3
External plugins:
---%<---

Comment 28 Thomas Spura 2012-07-10 13:58:55 UTC
(In reply to comment #27)
> rdieter, maybe the fedora-cvs request was not yet processed because you did
> not do a full fedora-review :-) The package is mine, so, not changing the
> generated review:

It can take a few days till the cvs request is processed.
Just keep calm and wait a bit till it's done :)

What package owns "%{singulardir}/" by the way?

Comment 29 Paulo Andrade 2012-07-10 14:29:37 UTC
Ops, you are right, when slitting file by file and dir by dir in subpackages I forgot a "%dir %{singulardir}" in the main package, I think not required to upload a new srpm, but already edited my local spec to fix it.

Ok, I am calm now :-) and started porting the current sage 5.0.1 package to sage-5.2.beta0 :-)

Comment 30 Kevin Fenzi 2012-07-10 22:28:11 UTC
Git done (by process-git-requests).

Comment 31 Paulo Andrade 2012-07-10 23:25:42 UTC
Thanks, package already built for rawhide.