Bug 840244 - Review Request: surf-geometry - Tool to visualize some real algebraic geometry
Review Request: surf-geometry - Tool to visualize some real algebraic geometry
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jerry James
Fedora Extras Quality Assurance
:
: 697680 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-07-14 14:30 EDT by Paulo Andrade
Modified: 2013-01-11 20:02 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-09-02 21:22:53 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
loganjerry: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Paulo Andrade 2012-07-14 14:30:42 EDT
Spec URL: http://fedorapeople.org/~pcpa/Singular-surf.spec
SRPM URL: http://fedorapeople.org/~pcpa/Singular-surf-1.0.6-1.src.rpm
Description: surf is a tool to visualize some real algebraic geometry:
plane algebraic curves, algebraic surfaces and hyperplane sections of surfaces.
surf is script driven and has (optionally) a nifty GUI using the Gtk widget set.
Fedora Account System Username:pcpa
Comment 1 Paulo Andrade 2012-07-14 14:34:24 EDT
This package is based on the Mandriva surf package
http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/surf/
it is required for a functional sagemath tutorial, an example screenshot
http://fedorapeople.org/~pcpa/rawhide-sage-notebook4.png

The package was named Singular-surf because only Singular should use it, it is the most common alternate name I could find, and there is already a surf package in fedora, that the new package explicitly conflicts to, but if mandatory I can work on patching Singular to want something else, and the package rename installed files.
Comment 2 Susi Lehtola 2012-07-19 10:37:18 EDT
%{?_dist} is wrong, it should read %{?dist}. 

**

%dir %{_datadir}/surf
%{_datadir}/surf/surf.xpm

Why do things so complex? This is the same as

%{_datadir}/surf/
Comment 3 Susi Lehtola 2012-07-19 10:39:05 EDT
I think that you can't assume that only Singular uses the application, since it looks like a rather general use application (it has a GUI after all).

Please contact upstream, and ask them to come up with a less general name for the application.
Comment 4 Paulo Andrade 2012-07-19 11:40:15 EDT
(In reply to comment #2)
> %{?_dist} is wrong, it should read %{?dist}. 
> 
> **

  Thanks. I messed something when finishing the package and uploading,
as I had it correct in my computer:
$ rpm -q Singular-surf
Singular-surf-1.0.6-1.x86_64


> %dir %{_datadir}/surf
> %{_datadir}/surf/surf.xpm
> 
> Why do things so complex? This is the same as
> 
> %{_datadir}/surf/

  Thanks. For some reason I made this mistake when packaging version
1.0.5 in Mandriva some years ago.
Comment 5 Paulo Andrade 2012-07-19 11:50:59 EDT
(In reply to comment #3)
> I think that you can't assume that only Singular uses the application, since
> it looks like a rather general use application (it has a GUI after all).

  Yes. I did "choose" it because it actually gets a lot of google hits.

> Please contact upstream, and ask them to come up with a less general name
> for the application.

  I can open a bug report, but I am afraid chances are very small of
upstream changing the name, but as I said in the initial comment, I
can patch Singular to use another name.

  I do not know why the surf package has not been rebuilt for some
time also:

$ repoquery -i surf

Name        : surf
Version     : 0.4.1
Release     : 3.fc15
Architecture: x86_64
Size        : 31272
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://surf.suckless.org/
Repository  : rawhide
Summary     : Simple web browser
Source      : surf-0.4.1-3.fc15.src.rpm
Description :
surf is a simple web browser based on WebKit/GTK+.

but git log shows release was bumped for f17 mass rebuild.
Comment 7 Mario Blättermann 2012-07-28 12:17:16 EDT
*** Bug 697680 has been marked as a duplicate of this bug. ***
Comment 8 Jerry James 2012-08-17 19:03:26 EDT
Since I made a hash of the original review (sorry, Mario!), the least I can do is see this one through.

Things look pretty good in general.  I understand that upstream is at least mostly dead, but Jussi's point in comment 3 is well taken.  Shouldn't this package have a more general name?  (That's why I called my version "surf-geometry".)

According to http://sagemath.org/packages/experimental/, Sage is using surf version 1.1!  Where did that version come from?  Do you know?

The conflict with the existing surf package can cause problems.  Can we rename the binary in this package instead so they don't conflict?  Again, I realize that this makes us nonstandard and that we can't talk to upstream about it because upstream mostly isn't there anymore, but that seems to be a better path to me.

I noticed that the configure script reports that it cannot find tiffio.h, even though that file is in libtiff-devel.  Do you know what's going on there?
Comment 9 Paulo Andrade 2012-08-17 21:31:21 EDT
(In reply to comment #8)

> According to http://sagemath.org/packages/experimental/, Sage is using surf
> version 1.1!  Where did that version come from?  Do you know?

  Looking at the spkg contents:
[[[[
$ cat surf-1.1/get_from_cvs
echo "Enter a blank password"
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/surf login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/surf co -P surf
]]]]

  But it looks seriously outdated:
[[[[
$ cat surf-1.1/SAGE.txt
This is the 2006-02-12 CVS version of surf 1.1.0, obtained using

  cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/surf login
  cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/surf co -P surf

I'm using the cvs version since I couldn't get the download version
from 2003 to compile (it's just too out of date).

I then ran autogen.sh to create the configure script.


----------------------------------------------


I had to change the source code in two files to get surf to compile
with GCC 4.0.2 on my system:

  * Deleted "IO::" in three places in surf/misc/IO.cc
          lines 207, 218, and 228

  * Also in misc/IO.cc, changed line 121 to 

     #ifdef XHAVE_LIBREADLINE

    so that chunk of code that uses readline isn't used.
    (It seems to be out of date.  Since we're only using
    surf from singular, not having readline somewhere shouldn't
    be a big problem.)




PACKAGE MAINTAINER: William Stein
]]]]

  I actually did never check on actual upstream sagemath
binaries. Maybe the singular examples using surf are not
working in recent sagemath; I know it works in my Mandriva
and current work in progress Fedora sagemath rpm package,
using the package proposed here. Yes, BTW the sagemath
version looks quite bogus...

> The conflict with the existing surf package can cause problems.  Can we
> rename the binary in this package instead so they don't conflict?  Again, I
> realize that this makes us nonstandard and that we can't talk to upstream
> about it because upstream mostly isn't there anymore, but that seems to be a
> better path to me.

  Renaming the binary should be trivial, I was not much
happy with needing to patch Singular scripts to match
the new name, but should also not be a big deal. But
then, the "surf" package, for the single webkit window
appears to be quite outdated.

> I noticed that the configure script reports that it cannot find tiffio.h,
> even though that file is in libtiff-devel.  Do you know what's going on
> there?

Looks like something bogus, and should be corrected,
(or just ignore tiff support :-)
[[[[
dnl check for tiff library and header file (FreeBSD 3.0 has tiff34.so
dnl instead of tiff.so and the header files are in /usr/local/lib/tiff34):

AC_CHECK_LIB(tiff, main,,
             AC_CHECK_LIB(tiff34, main,,
                          AC_MSG_ERROR([Sorry: can't find libtiff])))

AC_CHECK_HEADER(tiffio.h,,
                [AC_CHECK_HEADER(tiff34/tiffio.h,AC_DEFINE(TIFF_HEADER_34))],
		[AC_MSG_ERROR(["Sorry: cannot find header file tiffio.h"])] )
]]]]

Thanks for spotting it. I will check if autoreconf
does work, otherwise, could patch the configure script
instead.

Actually, the "surfex" java interface in Singular-surfex
should be good for most if not all uses, just that the
surf binary and the associated sagemath tutorial examples
expect to use Singular's surf.lib that uses the surf
binary.
As noted in #c2 but link here for easier access, this
is how it looks like in the sagemath tutorial
http://fedorapeople.org/~pcpa/rawhide-sage-notebook4.png
Comment 10 Paulo Andrade 2012-08-18 08:44:27 EDT
(In reply to comment #8)

> I noticed that the configure script reports that it cannot find tiffio.h,
> even though that file is in libtiff-devel.  Do you know what's going on
> there?

Actually, it only checks for tiff34/tiffio.h and if found, it will
link to -ltiff34, otherwise, it will include tiffio.h and link to
-ltiff. The what link to is defined in configure, and the source
that uses it is surf-1.0.6/image-formats/tiffprint.cc:

#ifdef TIFF_HEADER_34
#include <tiff34/tiffio.h>
#else
#include <tiffio.h>
#endif

So, the message in config.log is a bit misleading, but is the
expected result.
Comment 11 Jerry James 2012-08-20 15:49:46 EDT
That is a misleading message!  Okay, so it looks like the main issue is the naming of the package and the binary.  Do you have any thoughts on that?
Comment 12 Paulo Andrade 2012-08-20 21:06:46 EDT
I think it is just the style used to check the tiff
version in "ancient" systems. Usually config.log has
several other test error results, but those are more
common.

Changing package name should be trivial, but changing
binary name should require patching Singular. Nothing
else, at least in Fedora, should use this package.

Quick and dirt strings check:

$ egrep -r '\<surf\>' /usr/lib64/Singular/
/usr/lib64/Singular/LIB/surfex.lib:        This library uses the program surf
/usr/lib64/Singular/LIB/surfex.lib: This library requires the program surfex, surf and java to be installed.
/usr/lib64/Singular/LIB/surfex.lib: surfex is a front-end for surf which aims to be easier to use than
/usr/lib64/Singular/LIB/surfex.lib:LIB "surf.lib";
/usr/lib64/Singular/LIB/surfex.lib:    string l="surf"+string(system("pid"))+".sux";
/usr/lib64/Singular/LIB/surfex.lib:// procedures used to produce the surf-code:
/usr/lib64/Singular/LIB/surfex.lib:RETURN: a string, that one can use with the external program surf
/usr/lib64/Singular/LIB/resgraph.lib:NOTE: This library uses the external programs surf, graphviz and xv.
/usr/lib64/Singular/LIB/resgraph.lib:finalCharts(L,...)   pictures of final charts of surface (uses surf)
/usr/lib64/Singular/LIB/resgraph.lib:CREATE:  - new windows in which surf-images of the final charts are presented
/usr/lib64/Singular/LIB/resgraph.lib:@*       external programs 'surf' and 'xv' [pcpa@localhost rpmbuild]$ egrep -rn '\<surf\>' /usr/lib64/Singular/
/usr/lib64/Singular/LIB/surfex.lib:8:        This library uses the program surf
/usr/lib64/Singular/LIB/surfex.lib:13: This library requires the program surfex, surf and java to be installed.
/usr/lib64/Singular/LIB/surfex.lib:17: surfex is a front-end for surf which aims to be easier to use than
/usr/lib64/Singular/LIB/surfex.lib:37:LIB "surf.lib";
/usr/lib64/Singular/LIB/surfex.lib:506:    string l="surf"+string(system("pid"))+".sux";
/usr/lib64/Singular/LIB/surfex.lib:547:// procedures used to produce the surf-code:
/usr/lib64/Singular/LIB/surfex.lib:946:RETURN: a string, that one can use with the external program surf
/usr/lib64/Singular/LIB/resgraph.lib:9:NOTE: This library uses the external programs surf, graphviz and xv.
/usr/lib64/Singular/LIB/resgraph.lib:15:finalCharts(L,...)   pictures of final charts of surface (uses surf)
/usr/lib64/Singular/LIB/resgraph.lib:309:CREATE:  - new windows in which surf-images of the final charts are presented
/usr/lib64/Singular/LIB/resgraph.lib:312:@*       external programs 'surf' and 'xv' (X11/Xorg package) need to be
/usr/lib64/Singular/LIB/resgraph.lib:413:// Go through all final charts and write a separate surf input file for each
/usr/lib64/Singular/LIB/resgraph.lib:417:     fname=fnamebase + string(endCharts[i]) + ".surf";
/usr/lib64/Singular/LIB/resgraph.lib:420://--- define surf's root finding algorithm
/usr/lib64/Singular/LIB/resgraph.lib:516://--- 1) surf can only handle real numbers ==> we ignore the other curves
/usr/lib64/Singular/LIB/resgraph.lib:576:     j=system("sh", "surf -n " + fnamebase +string(endCharts[i]) + ".surf");
/usr/lib64/Singular/LIB/all.lib:94:LIB "surf.lib";
/usr/lib64/Singular/LIB/COPYING:180:surf.lib        Hans Schoenemann                hannes@mathematik.uni-kl.de
/usr/lib64/Singular/LIB/surf.lib:2:version="$Id: surf.lib 14583 2012-02-13 15:00:05Z motsak $";
/usr/lib64/Singular/LIB/surf.lib:5:LIBRARY: surf.lib    Procedures for Graphics with Surf
/usr/lib64/Singular/LIB/surf.lib:10: Using this library requires the program @code{surf} to be installed.
/usr/lib64/Singular/LIB/surf.lib:11: You can download @code{surf} either from
/usr/lib64/Singular/LIB/surf.lib:12:  @uref{http://sourceforge.net/projects/sur}
/usr/lib64/Singular/LIB/surf.lib:67:NOTE: requires the external program `surf` to be installed,
/usr/lib64/Singular/LIB/surf.lib:72:  string extra_surf_opts=" -x --auto-resize "; // remove this line for surf 0.9
/usr/lib64/Singular/LIB/surf.lib:73:  string l = "/tmp/surf" + string(system("pid"));
/usr/lib64/Singular/LIB/surf.lib:156:      surf_call = surf_call + " >/dev/null 2>&1 &) && sleep 5 && (surf";
/usr/lib64/Singular/LIB/surf.lib:163:      "Press q to exit from `surf`.";
/usr/lib64/Singular/LIB/surf.lib:169:        err_mes = "calling `surf` failed" + newline
/usr/lib64/Singular/LIB/surf.lib:182:    surf_call = "surf ";
/usr/lib64/Singular/LIB/surf.lib:195:    "Press q to exit from `surf`.";
/usr/lib64/Singular/LIB/surf.lib:199:      err_mes = "calling `surf` failed" + newline
/usr/lib64/Singular/info/singular.hlp:153:surf (used by surf.lib, *note surf_lib::)
/usr/lib64/Singular/info/singular.hlp:155:     `http://surf.sf.net'
/usr/lib64/Singular/info/singular.hlp:157:surfer (used by surf.lib, *note surf_lib::)
/usr/lib64/Singular/info/singular.hlp:29453:generated automatically by using external programs `surf' and `dot'
/usr/lib64/Singular/info/singular.hlp:43122:     This library uses the external programs surf, graphviz and xv.
/usr/lib64/Singular/info/singular.hlp:43132:* finalCharts:: pictures of final charts of surface (uses surf)
/usr/lib64/Singular/info/singular.hlp:43226:     - new windows in which surf-images of the final charts are
/usr/lib64/Singular/info/singular.hlp:43232:     external programs 'surf' and 'xv' (X11/Xorg package) need to be
/usr/lib64/Singular/info/singular.hlp:53167:* surf_lib:: interface to the surf programm
/usr/lib64/Singular/info/singular.hlp:53645:     surf.lib
/usr/lib64/Singular/info/singular.hlp:53654:     Using this library requires the program `surf' to be installed.
/usr/lib64/Singular/info/singular.hlp:53655:     You can download `surf' either from
/usr/lib64/Singular/info/singular.hlp:53656:     `http://sourceforge.net/projects/surf'   or from
/usr/lib64/Singular/info/singular.hlp:53682:Procedure from library `surf.lib' (*note surf_lib::).
/usr/lib64/Singular/info/singular.hlp:53694:     requires the external program surf` to be installed,
/usr/lib64/Singular/info/singular.hlp:53698:     LIB "surf.lib";
/usr/lib64/Singular/info/singular.hlp:53725:Procedure from library `surf.lib' (*note surf_lib::).
/usr/lib64/Singular/info/singular.hlp:53741:     LIB "surf.lib";
/usr/lib64/Singular/info/singular.hlp:53768:     This library uses the program surf
/usr/lib64/Singular/info/singular.hlp:53774:     This library requires the program surfex, surf and java to be
/usr/lib64/Singular/info/singular.hlp:53779:     surfex is a front-end for surf which aims to be easier to use than
/usr/lib64/Singular/info/singular.hlp:64903:   * surf.lib: new command `surfer': interface to program `surfer'
/usr/lib64/Singular/info/singular.hlp:65631:   * - singular-surf,
/usr/lib64/Singular/info/singular.hlp:68580:* surf.lib:                              surf_lib.            (line   6)
/usr/lib64/Singular/NEWS:383:   * surf.lib: new command `surfer': interface to program `surfer'
/usr/lib64/Singular/doc/singular.idx:2644:surf.lib              sing_1597.htm#SEC1673

should be enough to patch
/usr/lib64/Singular/LIB/surfex.lib:506
/usr/lib64/Singular/LIB/resgraph.lib:576
/usr/lib64/Singular/LIB/surf.lib:182

to use whatever name the binary is renamed.
Comment 13 Jerry James 2012-08-21 16:25:51 EDT
(In reply to comment #12)
> Changing package name should be trivial, but changing
> binary name should require patching Singular. Nothing
> else, at least in Fedora, should use this package.

Well ... maybe.  I think the concern in comment 3, which I share, is that while there are no other users of surf in Fedora *right now*, we can't be sure there won't be any more in the future.  So tying surf to Singular feels wrong.  I think the package should have a more general name, as well as the binary.  I'm sorry about the necessity of patching Singular to make it use the right binary name, but that does appear necessary at this point.

What do you think of the name "surf-geometry", for both the package and the binary?
Comment 14 Paulo Andrade 2012-08-22 19:42:43 EDT
I think surf-geometry should be good enough. About
patching, it should require significant patching to
the package itself because surf is hardcoded everywhere
in build environment, and almost all, if not all
source files have this before the standard GPL
text:

 *   surf - visualizing algebraic curves and algebraic surfaces
 *   Copyright (C) 1996-1997 Friedrich-Alexander-Universitaet
 *                           Erlangen-Nuernberg
 *                 1997-2000 Johannes Gutenberg-Universitaet Mainz
 *   Authors: Stephan Endrass, Hans Huelf, Ruediger Oertel,
 *            Kai Schneider, Ralf Schmitt, Johannes Beigel


[...]
./Makefile.am:bin_PROGRAMS = surf
./Makefile.am:EXTRA_DIST = background.pic Makefile.global aclocal.m4 surf.1 sur.xpm
./Makefile.am:man_MANS = surf.1
./Makefile.am:pkgdata_DATA = surf.xpm
./Makefile.am:surf: $(LOCAL_OBJECTS) $(GTKGUI_OBJ)
./Makefile.am:  $(CXX) $(LOCAL_OBJECTS) $(GTKGUI_OBJ) -o surf $(LDFLAGS) -lXmu -lXext -lXt @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ $(LIBS) -lfl @GTK_LIBS@ -lcups
[...]
./gtkgui/showAbout.cc:  pixmap = gdk_pixmap_create_from_xpm (window->window, &mask, &style->bg[GTK_STATE_NORMAL], DATADIR "/surf/surf.xpm");
[...]

I would vote for renaming to surf-geometry, but not
patching the package itself neither Singular, that
is, keep the Conflicts with the current surf package.
Comment 15 Jerry James 2012-08-23 16:45:56 EDT
(In reply to comment #14)
> I would vote for renaming to surf-geometry, but not
> patching the package itself neither Singular, that
> is, keep the Conflicts with the current surf package.

You will have to get the Fedora Packaging Committee's approval to keep the Conflicts.  See https://fedoraproject.org/wiki/Packaging:Conflicts.  I suspect they will tell you to rename the binary instead, but you are welcome to try.
Comment 16 Paulo Andrade 2012-08-26 10:52:16 EDT
I changed the package to use environment-modules.
I should add something like:

module load surf-geometry-`rpm -E %_arch`

to the sagemath and singular scripts (for sagemath only required
in "sage -shell").

New package:

Spec URL: http://fedorapeople.org/~pcpa/surf-geometry.spec
SRPM URL: http://fedorapeople.org/~pcpa/surf-geometry-1.0.6-3.fc19.src.rpm
Comment 17 Jerry James 2012-08-28 18:54:22 EDT
Sorry for the delay, Paulo.  There are just a few things to fix:

(1) https://fedoraproject.org/wiki/Packaging:SourceURL#Sourceforge.net says
    that the source URL ought to look like this:

Source0:	http://downloads.sourceforge.net/surf/surf-%{version}.tar.gz

(2) Use either %{buildroot} or $RPM_BUILD_ROOT, not both.

(3) Some source files have executable bits set.  See below.

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)
[x]: MUST Package does not contain kernel modules.
[x]: MUST Package contains no static executables.
[x]: MUST Rpath absent or only used for internal libs.


==== Generic ====
[x]: EXTRA Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: EXTRA Spec file according to URL is the same as in SRPM.
[x]: 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.
[x]: 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 Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: 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
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[x]: MUST Package contains desktop file if it is a GUI application.
[x]: MUST Development files must be in a -devel package
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: 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 Package complies to the Packaging Guidelines
[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
[x]: 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.
[x]: MUST License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "GPL (v2 or later) (with incorrect FSF address)", "GPL (with incorrect
     FSF address)" For detailed output of licensecheck see file:
     /home/jamesjer/840244-surf-geometry/licensecheck.txt
[!]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
     Note: Using both %{buildroot} and $RPM_BUILD_ROOT
[x]: MUST Package is named using only allowed ascii characters.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Package is not relocatable.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: 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.
[x]: MUST Package contains systemd file(s) if in need.
[x]: MUST File names are valid UTF-8.
[x]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: SHOULD Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL5 is required
[x]: 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.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[!]: SHOULD SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0 (surf-1.0.6.tar.gz)
[x]: SHOULD SourceX is a working URL.
[x]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[!]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Package consistently uses macro is (instead of hard-coded directory
     names).
     Note: Using both %{buildroot} and $RPM_BUILD_ROOT
See: http://fedoraproject.org/wiki/Packaging/Guidelines#macros

Rpmlint
-------
Checking: surf-geometry-1.0.6-3.fc19.i686.rpm
          surf-geometry-debuginfo-1.0.6-3.fc19.i686.rpm
          surf-geometry-1.0.6-3.fc19.src.rpm
surf-geometry.i686: W: spelling-error %description -l en_US hyperplane -> hyper plane, hyper-plane, hydroplane
surf-geometry.i686: E: incorrect-fsf-address /usr/share/doc/surf-geometry-1.0.6/COPYING
surf-geometry-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/surf-1.0.6/gtkgui/PrintImageDialog.h
surf-geometry-debuginfo.i686: E: script-without-shebang /usr/src/debug/surf-1.0.6/gtkgui/PrintImageDialog.cc
surf-geometry.src: W: spelling-error %description -l en_US hyperplane -> hyper plane, hyper-plane, hydroplane
surf-geometry.src: W: invalid-url Source0: http://downloads.sourceforge.net/project/surf/surf/surf/surf-1.0.6.tar.gz HTTP Error 404: Not Found
3 packages and 0 specfiles checked; 2 errors, 4 warnings.


Rpmlint (installed packages)
----------------------------
# rpmlint surf-geometry-debuginfo
surf-geometry-debuginfo.i686: W: spurious-executable-perm /usr/src/debug/surf-1.0.6/gtkgui/PrintImageDialog.h
surf-geometry-debuginfo.i686: E: script-without-shebang /usr/src/debug/surf-1.0.6/gtkgui/PrintImageDialog.cc
1 packages and 0 specfiles checked; 1 errors, 1 warnings.
# echo 'rpmlint-done:'

Requires
--------
surf-geometry-1.0.6-3.fc19.i686.rpm (rpmlib, GLIBC filtered):
    
    environment-modules  
    libICE.so.6  
    libSM.so.6  
    libX11.so.6  
    libXext.so.6  
    libXi.so.6  
    libXmu.so.6  
    libXt.so.6  
    libc.so.6  
    libcom_err.so.2  
    libcrypt.so.1  
    libcups.so.2  
    libdl.so.2  
    libgcc_s.so.1  
    libgdk-1.2.so.0  
    libglib-1.2.so.0  
    libgmodule-1.2.so.0  
    libgmp.so.10  
    libgssapi_krb5.so.2  
    libgtk-1.2.so.0  
    libjpeg.so.62  
    libjpeg.so.62(LIBJPEG_6.2)  
    libk5crypto.so.3  
    libkrb5.so.3  
    libm.so.6  
    libpthread.so.0  
    libstdc++.so.6  
    libstdc++.so.6(CXXABI_1.3)  
    libtiff.so.5  
    libtiff.so.5(LIBTIFF_4.0)  
    libz.so.1  
    rtld(GNU_HASH)  

surf-geometry-debuginfo-1.0.6-3.fc19.i686.rpm (rpmlib, GLIBC filtered):
    

Provides
--------
surf-geometry-1.0.6-3.fc19.i686.rpm:
    
    surf-geometry = 1.0.6-3.fc19
    surf-geometry(x86-32) = 1.0.6-3.fc19

surf-geometry-debuginfo-1.0.6-3.fc19.i686.rpm:
    
    surf-geometry-debuginfo = 1.0.6-3.fc19
    surf-geometry-debuginfo(x86-32) = 1.0.6-3.fc19

MD5-sum check
-------------


Generated by fedora-review 0.2.2 (9f8c0e5) last change: 2012-08-09
Command line :/usr/bin/fedora-review -b 840244 -m fedora-rawhide-i386
External plugins:
Comment 18 Paulo Andrade 2012-08-29 19:23:11 EDT
May thanks for the review! New package addressing the issues:

Spec URL: http://fedorapeople.org/~pcpa/surf-geometry.spec
SRPM URL: http://fedorapeople.org/~pcpa/surf-geometry-1.0.6-4.fc19.src.rpm
Comment 19 Jerry James 2012-08-31 18:14:34 EDT
You've still got one instance of %{buildroot} in %install, on the mkdir line.  Just fix that before you import the package into git.  This package is APPROVED.
Comment 20 Paulo Andrade 2012-09-02 08:59:22 EDT
(In reply to comment #19)
> You've still got one instance of %{buildroot} in %install, on the mkdir
> line.  Just fix that before you import the package into git.  This package
> is APPROVED.

Ops, sorry about another instance of %{buildroot}, I adapted it
from 4ti2.spec and for some reason 'got blind" when looking before
my adaptations to the sed command. Will correct it before import.
Thanks for the review!
Comment 21 Paulo Andrade 2012-09-02 09:01:58 EDT
New Package SCM Request
=======================
Package Name: surf-geometry
Short Description: Tool to visualize some real algebraic geometry
Owners: pcpa
Branches: 
InitialCC: pcpa
Comment 22 Jon Ciesla 2012-09-02 20:14:31 EDT
Git done (by process-git-requests).
Comment 23 Paulo Andrade 2012-09-02 21:22:53 EDT
The surf-geometry package has been built for rawhide.
Comment 24 Paulo Andrade 2012-12-14 12:00:24 EST
Package Change Request
======================
Package Name: surf-geometry
New Branches: f18
Owners: pcpa
InitialCC: pcpa

Required to simplify a possible sagemath update package by
having f19 dependencies built in f18. This package was
approved shortly after the f18 branch.
It should also simplify the Singular package, that would
then not need a spec for f18 and another for f19+.
Comment 25 Jon Ciesla 2012-12-14 12:20:07 EST
Git done (by process-git-requests).
Comment 26 Fedora Update System 2012-12-14 12:38:29 EST
surf-geometry-1.0.6-4.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/surf-geometry-1.0.6-4.fc18
Comment 27 Fedora Update System 2012-12-20 17:45:25 EST
surf-geometry-1.0.6-5.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/surf-geometry-1.0.6-5.fc18
Comment 28 Fedora Update System 2013-01-11 20:02:00 EST
surf-geometry-1.0.6-5.fc18 has been pushed to the Fedora 18 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.