Bug 208034 - Review Request: HippoDraw - Interactive and Python scriptable data analysis application
Review Request: HippoDraw - Interactive and Python scriptable data analysis a...
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Mamoru TASAKA
Fedora Package Reviews List
:
: 208032 (view as bug list)
Depends On:
Blocks: FE-ACCEPT
  Show dependency treegraph
 
Reported: 2006-09-25 18:58 EDT by Paul F. Kunz
Modified: 2010-06-18 11:48 EDT (History)
7 users (show)

See Also:
Fixed In Version: 1.21.1-2.fc7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-09-07 13:19:54 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
mtasaka: fedora‑review+


Attachments (Terms of Use)
mock build.log for HippoDraw-1.18.6-2.fc5.src.rpm (985 bytes, text/plain)
2006-10-04 06:30 EDT, Francois Aucamp
no flags Details
config.log from mock rebuild on FC5, i386 (1.18.6.1-1) (61.98 KB, text/plain)
2006-10-09 08:46 EDT, Francois Aucamp
no flags Details
mock build log of HippoDraw-1.19.2-1.fc7 (47.63 KB, text/plain)
2007-03-04 21:40 EST, Mamoru TASAKA
no flags Details
mock build log of HippoDraw-1.19.3-1.fc7 (1.04 MB, text/plain)
2007-03-07 12:10 EST, Mamoru TASAKA
no flags Details
mock build log of HippoDraw-1.19.4-1 on FC-devel i386 (1.14 MB, text/plain)
2007-03-10 10:33 EST, Mamoru TASAKA
no flags Details
mock build log of 1.19.5-1 with graphviz-gd added to BR (805.43 KB, text/plain)
2007-03-11 11:29 EDT, Mamoru TASAKA
no flags Details
mock build log of HippoDraw 1.20.7-2 on rawhide i386 (776.06 KB, text/plain)
2007-07-13 01:18 EDT, Mamoru TASAKA
no flags Details

  None (edit)
Description Paul F. Kunz 2006-09-25 18:58:28 EDT
Spec URL: ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
SRPM URL: ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.18.5-1.src.rpm
Description: 
HippoDraw is a highly interactive data analysis
environment that can be used as a stand-a-lone application or as a
Python extension module.

This is my first package and am seeking sponsor.
Comment 1 Ralf Corsepius 2006-09-26 01:12:32 EDT
*** Bug 208032 has been marked as a duplicate of this bug. ***
Comment 2 Paul F. Kunz 2006-10-02 18:32:45 EDT
Updated source rpm and spec file.   rpmlint now shows no output on any rpm file.

Spec URL: ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
SRPM
URL:ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.18.6-2.src.rpm
Comment 3 Francois Aucamp 2006-10-04 06:30:14 EDT
Created attachment 137734 [details]
mock build.log for HippoDraw-1.18.6-2.fc5.src.rpm

Build log showing the mock rebuild error in %build
Comment 4 Francois Aucamp 2006-10-04 06:32:23 EDT
I'm not an official reviewer, but will help out with this one :-):

You should use %configure (the macro) in %build; see my comment above (I am
using mock on FC5, i386). Will do a more in-depth review of the package shortly...
Comment 5 Francois Aucamp 2006-10-04 08:43:29 EDT
Ok, some review points:

* package meets naming and packaging guidelines; name uses mixed case, but since
you are the author, I assume this is quite intentional :-)
* latest version is being packaged
* source files match upstream:
ff1be8aa2cd0ad049e526958a626f07b  HippoDraw-1.18.6.tar.gz
* specfile is cleanly written 

* specfile does NOT use macros consistently ($RPM_BUILD_ROOT, ${RPM_BUILD_ROOT},
etc)

* dist tag is present
* build root is correct

* IMPORTANT: license is incorrect: you are licensing this as LGPL, but some
parts of this application are linking to Qt 3 (free edition), which is licensed
under the GPL; therefore this application must also be licensed as GPL.
Quoting the GPL:
   b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

* %clean is present, but check consistency of RPM_BUILD_ROOT macros
* rpmlint is silent on .src.rpm
* package does NOT build in mock (FC-5, i386), see previous comments

Hope this helps!
Comment 6 Paul F. Kunz 2006-10-04 16:33:25 EDT
Thanks for the comments.

I've fixed the following
use configure macro,
consistent use of RPM_BUILD_ROOT macro
Changed license to GPL

New SRPM URL:
ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.18.6.1-1.src.rpm
New Spec URL:
ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 7 Jason Tibbitts 2006-10-06 20:44:59 EDT
This failed to build for me in mock on x86_64 rawhide and fc5 i386.  Configure
dies when doing the Qt checks:

checking for Qt... ./configure: line 22007: test: xno: unary operator expected
yes:
    QT_CXXFLAGS=-I/usr/lib64/qt-3.3/include -DQT_THREAD_SUPPORT
    QT_DIR=/usr/lib64/qt-3.3
    QT_LIBS=-L/usr/lib64/qt-3.3/lib -lqt-mt  -lSM -lICE  -lX11 -lXext -lXmu -lXt
-lXi  -R/usr/lib64/qt-3.3/lib
    QT_UIC=/usr/lib64/qt-3.3/bin/uic
    QT_MOC=/usr/lib64/qt-3.3/bin/moc
checking correct functioning of Qt installation... failure
configure: error: Failed to find matching components of a complete
                  Qt installation. Try using more options,
                  see ./configure --help.
error: Bad exit status from /var/tmp/rpm-tmp.57891 (%build)

The "xno" error comes from this line:
    if test x$enable_rpath =xno; then
which is missing a space before "xno".  I don't know if this results in the
failure to find Qt or not.

Also in the configure output:
configure: checking boost installation with
    BOOST_LDFLAGS=-lboost_python
checking for /usr/lib/libboost_python.so... no
configure: WARNING:
        Build will fail to build Python module, the last step

Looks like it's looking in /usr/lib on an x86_64 system.

Is Fortran required anywhere?  The configure script checks for it (and doesn't
find it) but I don't think it's used.

Are Minuit2, ROOT or WCSLIB expected to be found?  They're not on my system.

How do you run the included test suite?

You know you don't have to separately list out your BuildRequires:, right?  You
can if you like, but in the end it just takes the union of all of them.
Comment 8 Paul F. Kunz 2006-10-07 13:10:13 EDT
On QT: the configure bug (missing space before "xno") caused failure to disable
rpath, but shouldn't have caused failure to find Qt. The QT_xxx flags look the
same to me as on my local x86_64 machine.   I need too look at the resulting
config.log file to see what really went wrong.

On boost_python.  I'll change the m4 macro for boost to try to link instead of
looking for a file for the next version.

Fortran is not required, but one of the standard autoconf/automake macros checks
for Fortran.   I suspect AM_LIBTOOL.  Do you know how to turn off the search?

Minuit2, ROOT, and WCSLIB are optional when user builds from tar.gz file.   None
of them are in Core or Extras.   The message that comes out at the end of the
configure step is meant to confirm to user that he got the optional packages he
had hoped for.   Perhaps I should add a message to indicate missing options is ok?

Only the C++ part of the test suite is run with "make check'.   The larger part
(the Python scripts) need manual intervention for the builder to look on the
canvas to verify things.   Should I do something about this?

No I didn't know I didn't have to seperately list the BuildRequires.  I'll fix
that for the next release.

Thanks for you comments.
Comment 9 Francois Aucamp 2006-10-09 08:46:03 EDT
Created attachment 138037 [details]
config.log from mock rebuild on FC5, i386 (1.18.6.1-1)

I also experience the Qt installation detection problem when building via mock
on FC5, i386. Attached is the resulting config.log from the failed configure
script.

Also, in the %description section of the "doc" subpackage, there is an
incorrect macro: ${name} instead of %{name}.
Comment 10 Michael Schwendt 2006-10-09 09:18:57 EDT
* It's missing at least "BuildRequires: libXi-devel libXmu-devel" due
to a bad Qt detection and linker command-line. The configure script
adds several unneeded X libs as constants.

* There are several redundant and questionable BuildRequires for
the sub-packages. This should be cleaned up. Most likely you wanted
to add "Requires" instead.
Comment 11 Paul F. Kunz 2006-10-10 16:26:20 EDT
I've fixed all of the problmes mentioned in the above comments.   The updated
files are

SRPM  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.18.8-4.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec

Thanks again for the comments.
Comment 12 Orion Poplawski 2006-11-20 16:35:18 EST
x86_64 issues:

> checking for /usr/lib/libcfitsio.so... no
> configure: WARNING: cfitsio not found

Looks for libcfitsio.so in /usr/lib on x86_64.

Tried --with-cfitsio-lib=%{_libdir}, but that check for /usr/lib/licfitsio.so
persists and overrides the earlier check.  Maybe remove the second check from
configure?

Not sure if this is related, but the build fails with:

 g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
-m64 -mtune=generic -Wall -ansi -MT HiNTupleXML.lo -MD -MP -MF
.deps/HiNTupleXML.Tpo -c HiNTupleXML.cxx  -fPIC -DPIC -o .libs/HiNTupleXML.o
 g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4
-m64 -mtune=generic -Wall -ansi -MT MapMatrixProjectorXML.lo -MD -MP -MF
.deps/MapMatrixProjectorXML.Tpo -c MapMatrixProjectorXML.cxx  -fPIC -DPIC -o
.libs/MapMatrixProjectorXML.o
HiNTupleXML.cxx: In member function 'const hippodraw::DataSource*
hippodraw::HiNTupleXML::getObject(std::string) const':
HiNTupleXML.cxx:116: error: 'DataSourceException' was not declared in this scope
make[2]: *** [HiNTupleXML.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/builddir/build/BUILD/HippoDraw-1.18.8/xml'
Comment 13 Paul F. Kunz 2006-12-08 16:16:33 EST
configure script fixed.   used AC_CHECK_LIB instaead of AC_CHECK_FILE.

build failure was related and fixed in upstream sources.

URLs
SRPM  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.1-1.src.rpm

SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 14 Mamoru TASAKA 2007-01-25 12:10:19 EST
Well, just I looked at your spec file:
* Currently several directories under %{_datadir}/doc/%{name}
  (and this directory itself) is not owned by any package

* By the way, why LICENSE, DISCLAIMER.rtf are installed in
  both main and -devel package?

* qt file sourcing
--------------------------------------------------
 export QTDIR="" && source /etc/profile.d/qt.sh
--------------------------------------------------
  This should not be needed as qt package is correctly
  fixed. Please remove this

* --add-category X-Fedora \
  This category is deprecated and should be removed.

* %{_datadir}/icons/hicolor/48x48/apps/hippoApp.png
  Installing image files under %{_datadir}/icons/hicolor needs
  icon cache updating (check:
  http://fedoraproject.org/wiki/Packaging/ScriptletSnippets )

* %{_libdir}/python2.4/site-packages/
  Please don't write so. Currently rawhide python is 2.5 and
  this description should cause failure. Please check:
      http://fedoraproject.org/wiki/Packaging/Python

NOTE: I only looked at your spec file.
Comment 15 Mamoru TASAKA 2007-02-25 11:26:41 EST
ping?
Comment 16 Paul F. Kunz 2007-03-04 18:34:54 EST
I velieve I've takedn care of all the items mentioned in comment #14 above

SRPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.2-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec

Note the version number of the upstream sources has been bumped up.
Comment 17 Mamoru TASAKA 2007-03-04 21:40:41 EST
Created attachment 149234 [details]
mock build log of HippoDraw-1.19.2-1.fc7

I just tried mockbuild of HippoDraw-1.19.2-1 on
FC-devel i386 but it failed.
Comment 18 Paul F. Kunz 2007-03-05 10:57:02 EST
The build failed because latex was not found and the configure script issued an
error instead of a warning.   If latex (and dvips and netpbm-progs) are found an
additional feature is built in the main program.   Question: should I add these
the build requirements or fix the configure to issue a warning instead of error
or both?   Is it bad practice to add addtional build requirements to enable
non-essential features?
Comment 19 Orion Poplawski 2007-03-05 11:37:44 EST
IMO - you should enable all available features at build time, and the use has no
way of adding it later.  Try to aviod adding excessive runtime Requires though.
 Sometimes this can be accomplished by moving some libraries/programs that
require other libraries into a subpackage.
Comment 20 Mamoru TASAKA 2007-03-05 11:57:54 EST
Well, for conditional dependencies  (ref: "Conditional dependencies" of 
http://fedoraproject.org/wiki/Packaging/Guidelines )

* generally you should enable all features which can be done
  by using rpms available on fedora. In short, default is ALL.
* If you have some reason you want to disable some feature, you
  must explicitly disable it (e.g. --without-*** or so) and explain
  why.
Comment 21 Paul F. Kunz 2007-03-05 15:46:52 EST
Given comments #15 and #16 above and slso that the extra packages required are
commonly installed by potential users of this package, I've added the additionsl 
build and runtime requirements.

The updated files are

SRPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.3-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 22 Mamoru TASAKA 2007-03-07 12:06:02 EST
Well, for 1.19.3-1:

* rpmlint
  - rpmlint is not silent. Among them what cannot be ignored are:
-------------------------------------------------
W: HippoDraw incoherent-version-in-changelog 1.19.2-1 1.19.3-1.fc7
W: HippoDraw undefined-non-weak-symbol /usr/lib/libaxiswidget.so.0.0.0
_ZN9hippodraw5Range6setLowEd
W: HippoDraw undefined-non-weak-symbol /usr/lib/libaxiswidget.so.0.0.0
_ZNK9hippodraw5Range3lowEv
W: HippoDraw undefined-non-weak-symbol /usr/lib/libaxiswidget.so.0.0.0
_ZNK9hippodraw5Range3posEv
W: HippoDraw undefined-non-weak-symbol /usr/lib/libaxiswidget.so.0.0.0
_ZN9hippodraw5Range8setRangeEddd
W: HippoDraw undefined-non-weak-symbol /usr/lib/libaxiswidget.so.0.0.0
_ZN9hippodraw5Range7setHighEd
W: HippoDraw undefined-non-weak-symbol /usr/lib/libaxiswidget.so.0.0.0
_ZNK9hippodraw5Range4highEv
-------------------------------------------------
    * Please fix the version in %changelog
    * Well, as this package provides -devel package, the existence
      of undefined non-weak symbol in a library cannot be ignored,
      because the linkage of this library fails because of these symbols.

* Documentation
  - Usually documentation should be installd under
    %{_datadir}/%{name}-%{version}/

* Desktop file
-------------------------------------------------
Categories=Application;Science & Math;
-------------------------------------------------
   - Category "Application" is deprecated and should be removed.
   - Category "Science & Math" is invalid.

* Python directory
   - Check if using python_sitelib is correct.
     Usually arch-dependent python items (such as python library)
     should be installed under python_sitearch (check :
     http://fedoraproject.org/wiki/Packaging/Python )

* Requires
  A. for -devel package:
  - Check the missing dependencies.
    For example, /usr/include/HippoDraw/qt/CanvasWindow.h contains the line:
-------------------------------------------------
#include <qcanvas.h>
-------------------------------------------------
    This means that -devel package should need "Requires: qt-devel".
    Also check if other dependencies may exist.

  B. for main package
  - Explicit note of dependency for library rpm (i.e. "Requires: cfitsio") 
    is not needed. The dependencies for libraries (i.e. libcfitsio.so.0)
    automatically pulls this dependency.
  - Check if "tetex-latex tetex-dvips netpbm-progs" arereally required.
    These are truely used to rebuild this package, however, are they
    required for runtime?

  C. for -python package:
   - Check the missing dependencies.
     For example, /usr/share/HippoDraw/examples/fft.py contains the line:
--------------------------------------------------
import numarray
--------------------------------------------------
     This means that -python package should need "Requires: python-numarray". 
     Also check if other dependencies may exist.
   ? By the way, /usr/lib/python2.5/site-packages/HippoDraw/FitsAxis.py
     contains:
--------------------------------------------------
import numarray, pyfits
--------------------------------------------------
     Then what provides pyfits module?

* Directory/file ownership
  - Duplicate files
    several files are installed in more than one package.
-------------------------------------------------
[tasaka1@localhost i386]$ rpm -qlp HippoDraw-*rpm | sort | uniq -d
/usr/share/doc/HippoDraw/DISCLAIMER.rtf
/usr/share/doc/HippoDraw/LICENSE
/usr/share/doc/HippoDraw/html/hippo.html
-------------------------------------------------
   - For -doc package
     Currently -doc package does not require main package.
     Well, if only -doc package is installed without main package,
     the directories
-------------------------------------------------
/usr/share/doc/HippoDraw
/usr/share/doc/HippoDraw/html
-------------------------------------------------
      are not owned by any package, so this is not right.

* Timestamps
  - Well, this package contains many
    - text files such as header files
    - image files
    and so on, and keeping timestamps on these files are recommended.   
    Usually 
--------------------------------------------------
make install DESTDIR=$RPM_BUILD_ROOT  INSTALL="install -p"
--------------------------------------------------
    will work.

* Build log
  - Well, what are the many lines like following?
--------------------------------------------------
sh: dot: command not found
Problems running dot. Check your installation!
--------------------------------------------------
    Are these okay?
   - And ghostscript is perhaps needed for BuildRequires
--------------------------------------------------
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo))
(/usr/share/texmf/tex/latex/graphics/epsfig.sty
(/usr/share/texmf/tex/latex/graphics/graphicx.sty
(/usr/share/texmf/tex/latex/graphics/keyval.sty)
(/usr/share/texmf/tex/latex/graphics/graphics.sty
(/usr/share/texmf/tex/latex/graphics/trig.sty)
(/usr/share/texmf/tex/latex/graphics/graphics.cfg)
(/usr/share/texmf/tex/latex/graphics/dvips.def))))
No file _formulas.aux.
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
[18] [19] [20] [21] [22] [23] [24] [25] [26] (./_formulas.aux) )
Output written on _formulas.dvi (26 pages, 4328 bytes).
Transcript written on _formulas.log.
sh: gs: command not found
Problem running ghostscript gs -q -g429x64 -r384x384x -sDEVICE=ppmraw
-sOutputFile=_form0.pnm -dNOPAUSE -dBATCH -- _form0.ps.
 Check your installation!
--------------------------------------------------
Comment 23 Mamoru TASAKA 2007-03-07 12:10:14 EST
Created attachment 149470 [details]
mock build log of HippoDraw-1.19.3-1.fc7

mock build log of HippoDraw-1.19.3-1 on FC-devel i386.
I attach this log for your information.
Comment 24 Paul F. Kunz 2007-03-09 18:34:01 EST
Thnku Tasaka-san for your lenghtly and careful review.   I think I fixed all the
problems.   A number of the problems was caused by the fact that Doxygen is used
to build the built-in help and it rquires graphviz and ghostscript for the build
which were missing.   Other fixs reuired changing the upstream souces so the
version has been bumped up to 1.19.4

One question on the desktop file.   I took out "Science & Math", but was not
sure what to put in.   I found a document on thw web on categories found
"Science" and "DataVisualization" as categories, so I used them.   Is there
something better?

Fixed files are at 

SRPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.4-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 25 Mamoru TASAKA 2007-03-09 21:04:06 EST
Assigning to me. I will review this later.

One note:
(In reply to comment #24)
> One question on the desktop file.   I took out "Science & Math", but was not
> sure what to put in.   I found a document on thw web on categories found
> "Science" and "DataVisualization" as categories, so I used them.   Is there
> something better?

desktop-file-validate says:
----------------------------------------------------
[root@localhost ~]# desktop-file-validate
/usr/share/applications/fedora-HippoDraw.desktop
/usr/share/applications/fedora-HippoDraw.desktop: warning: Categories values
must be one of 
"AudioVideo", "Audio", "Video", 
"Development", "Education", "Game", "Graphics", 
"Network", "Office", "Settings", "System", 
"Utility", "Building", "Debugger", "IDE", 
"GUIDesigner", "Profiling", "RevisionControl", 
"Translation", "Calendar", "ContactManagement", 
"Database", "Dictionary", "Chart", "Email", 
"Finance", "FlowChart", "PDA", "ProjectManagement", 
"Presentation", "Spreadsheet", "WordProcessor", 
"2DGraphics", "VectorGraphics", "RasterGraphics", 
"3DGraphics", "Scanning", "OCR", "Photography", 
"Viewer", "DesktopSettings", "HardwareSettings", 
"PackageManager", "Dialup", "InstantMessaging", 
"IRCClient", "FileTransfer", "HamRadio", "News", 
"P2P", "RemoteAccess", "Telephony", "WebBrowser", 
"WebDevelopment", "Midi", "Mixer", "Sequencer", 
"Tuner", "TV", "AudioVideoEditing", "Player", 
"Recorder", "DiscBurning", "ActionGame", 
"AdventureGame", "ArcadeGame", "BoardGame", 
"BlocksGame", "CardGame", "KidsGame", "LogicGame", 
"RolePlaying", "Simulation", "SportsGame", 
"StrategyGame", "Art", "Construction", "Music", 
"Languages", "Science", "Astronomy", "Biology", 
"Chemistry", "Geology", "Math", "MedicalSoftware", 
"Physics", "Amusement", "Archiving", "Electronics", 
"Emulator", "Engineering", "FileManager", 
"TerminalEmulator", "Filesystem", "Monitor", 
"Security", "Accessibility", "Calculator", "Clock", 
"TextEditor", "Core", "KDE", "GNOME", "GTK", "Qt", 
"Motif", "Java", "ConsoleOnly", "Screensaver", 
"TrayIcon", "Applet", "Shell" (found "DataVisualization")
---------------------------------------------------
Comment 26 Mamoru TASAKA 2007-03-10 10:33:37 EST
Created attachment 149772 [details]
mock build log of HippoDraw-1.19.4-1 on FC-devel i386

Okay, for 1.19.4-1:

* rpmlint issue
  - For binary:
-------------------------------------------------
W: HippoDraw-devel no-documentation
W: HippoDraw-python no-documentation
E: HippoDraw-python non-executable-script
/usr/lib/python2.5/site-packages/HippoDraw/pyfits.py 0644
-------------------------------------------------
   + The former two can be ignored.
   - About the last one: If this python script is only called by other
     python scripts and is not called directly by user, then please
     remove shebang.

* Requires
  - not fixed at all. Please check my previous comment 22.
    NOTE: Here what I mean is that you have to add something
    to "Requires", not "BuildRequires".

* Documentation
  - Still two files are under /usr/share/doc/HippoDraw/.
--------------------------------------------------
/usr/share/doc/HippoDraw/DISCLAIMER.rtf
/usr/share/doc/HippoDraw/LICENSE
--------------------------------------------------

* Desktop file
--------------------------------------------------
Categories=Science;DataVisualization;
--------------------------------------------------
  - Category "DataVisualization" is not valid (please check comment 25)
  - Category "Science" is valid, so this can be left as is.
    However, currenly no HippoDraw entry appear in my GNOME menu.
    Please check:
    /etc/xdg/menus/applications.menu 
    and add a category which can be found in the menu file above
    so that HippoDraw entry can appear on GNOME menu.

* Conditional dependency
  - Mock build log says:
----------------------------------------------------
checking for /usr/local/include/wcslib/wcs.h... no
checking for no/libwcs.a... no
configure: WARNING: WCSLIB not found
----------------------------------------------------
    - Perhaps this can be enabled by libwcs-devel?

* Build order
  - By the way, can it be moved to %build stage to
    make doxygen called to build documentation?

* Build log
  - Can the following(s) be ignored?
----------------------------------------------------
Generating docs for filRenderer type: "gif" not recognized. 
Use one of: canon cmap cmapx dia dot fig gtk hpgl imap ismap mif mp
pcl pdf pic plain plain-ext png ps ps2 svg svgz vtx xdot xlib
Problems running dot. Check your installation!
----------------------------------------------------

* Changelog
  - By the way, why do you use the mail address in the changelog
    which differs from your bugzilla entry?
Comment 27 Paul F. Kunz 2007-03-10 18:12:29 EST
shebang taken out of pyfits.py

> * Requires
>  - not fixed at all. Please check my previous comment 22.
>    NOTE: Here what I mean is that you have to add something
>    to "Requires", not "BuildRequires".

   I think I fixed it correctly knowing what is needed at runtime for the
application.   Which item do you think is wrong?

>  - Still two files are under /usr/share/doc/HippoDraw/.
fixed

> - Category "DataVisualization" is not valid (please check comment 25)
removed.
>  - Category "Science" is valid, so this can be left as is.
>    However, currenly no HippoDraw entry appear in my GNOME menu.
>    Please check:
>    /etc/xdg/menus/applications.menu 
>    and add a category which can be found in the menu file above
>    so that HippoDraw entry can appear on GNOME menu.

Only category I could find which I think is a bit of a strech is Graphics.  I
checked under GNOME that it works.   Under KDE, it appears under "Science &
Math" altho I don't know why exactly.

> checking for /usr/local/include/wcslib/wcs.h... no
> checking for no/libwcs.a... no
> configure: WARNING: WCSLIB not found
> ----------------------------------------------------
>  - Perhaps this can be enabled by libwcs-devel?

The directory structure and even name of the key header file is different in the
rpm than when one does an install in /usr/local/ from source.   It would
complicate the sources and configure script to support both.   Thanks for
pointing out that it exists.

> * Build order
>  - By the way, can it be moved to %build stage to
>    make doxygen called to build documentation?

That could be done if you think it is important enough.


>* Build log
>  - Can the following(s) be ignored?
----------------------------------------------------
> Generating docs for filRenderer type: "gif" not recognized. 
> Use one of: canon cmap cmapx dia dot fig gtk hpgl imap ismap mif mp
> pcl pdf pic plain plain-ext png ps ps2 svg svgz vtx xdot xlib
> Problems running dot. Check your installation!

I don't see that message on FC6 with 

rpm -qf /usr/bin/dot
graphviz-2.8-5.fc6

If dot is not generating .gif files, then the documentation in package
HippoDraw-devel-docs are not going to look right.


> * Changelog
>  - By the way, why do you use the mail address in the changelog
>    which differs from your bugzilla entry?

I'm using rpm mode in emacs to generate the entries.   It picks up my userid
on my laptop that I'm using for development.   You'll note the machine name
changes depending on whether I'm at work or at home due to different DHCP
server. Should I manually fix all of them?

Fix files...

SRPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.5-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 28 Mamoru TASAKA 2007-03-11 11:29:36 EDT
Created attachment 149793 [details]
mock build log of 1.19.5-1 with graphviz-gd added to BR

Well, for 1.19.5-1:

* Requires (for -devel and -python package)
---------------------------------------------------
(In reply to comment #27)
>> * Requires
>>  - not fixed at all. Please check my previous comment 22.
>>    NOTE: Here what I mean is that you have to add something
>>    to "Requires", not "BuildRequires".
>
>   I think I fixed it correctly knowing what is needed at runtime for the
>application.	Which item do you think is wrong?
---------------------------------------------------
  - For main package (HippoDraw), it is okay.
    For -devel and -python package, it is not yet okay.

    Well, as I wrote on comment 22,
    * Example
      /usr/include/HippoDraw/qt/QtFileDialog.h contains the line:
---------------------------------------------------
    16
    17	#include <qglobal.h> // for version
    18	#if QT_VERSION < 0x040000
    19	#include <qfiledialog.h>
    20	#else
    21	#include <q3filedialog.h>
    22	#endif
---------------------------------------------------
      This means that HippoDraw-devel should have
      "Requires: qt-devel". However, currently HippoDraw-devel
      can be installed without qt-devel.
     This is wrong because
---------------------------------------------------
[tasaka1@localhost HippoDraw]$ cat TMP.cc
#include <HippoDraw/qt/QtFileDialog.h>

int main(){
  return 0;
}
[tasaka1@localhost HippoDraw]$ LANG=C g++ -o TMP TMP.cc
-I/usr/lib/qt-3.3/include -L/usr/lib/qt-3.3/lib -lqt-mt
In file included from TMP.cc:1:
/usr/include/HippoDraw/qt/QtFileDialog.h:17:36: error: qglobal.h: No such file
or directory
/usr/include/HippoDraw/qt/QtFileDialog.h:19:25: error: qfiledialog.h: No such
file or directory
/usr/include/HippoDraw/qt/QtFileDialog.h:69: error: 'QWidget' has not been
declared
/usr/include/HippoDraw/qt/QtFileDialog.h:125: error: 'QWidget' has not been
declared
/usr/include/HippoDraw/qt/QtFileDialog.h:137: error: 'QWidget' has not been
declared
/usr/include/HippoDraw/qt/QtFileDialog.h:151: error: 'QWidget' has not been
declared
/usr/include/HippoDraw/qt/QtFileDialog.h:157: error: 'QWidget' has not been
declared
---------------------------------------------------
       This succeeds with qt-devel installed.

     * For -python, what is the following?
---------------------------------------------------
%description  python
Provides Python module to use %{name} from Python scripts.
Requires: python-numarray
---------------------------------------------------
       This is a description and this does not
       "Requires: python-numarray" to -python package.
       You must write "Requires:" section below "Group" description.

     * Same for -devel-docs packge.
       Requires: description should not be in %description section.

* Macro
---------------------------------------------------
%{configure} --without-wcslib-lib --without-minuit2-lib --without-root-lib\
    --disable-rpath --with-boost-root=/usr
---------------------------------------------------
       Please use %{_prefix} for /usr.

* Build order
> > * Build order
> >  - By the way, can it be moved to %build stage to
> >    make doxygen called to build documentation?
> 
> That could be done if you think it is important enough.
> 
  - If possible, please do. Normally rebuilding should be done in
    %build stage and %install stage is only for install.

* For graphviz
> >* Build log
> >  - Can the following(s) be ignored?
> ----------------------------------------------------
> > Generating docs for filRenderer type: "gif" not recognized. 
> > Use one of: canon cmap cmapx dia dot fig gtk hpgl imap ismap mif mp
> > pcl pdf pic plain plain-ext png ps ps2 svg svgz vtx xdot xlib
> > Problems running dot. Check your installation!
> 
> I don't see that message on FC6 with 
> 
> rpm -qf /usr/bin/dot
> graphviz-2.8-5.fc6
> 
> If dot is not generating .gif files, then the documentation in package
> HippoDraw-devel-docs are not going to look right.
  - Confirmed that this doesn't happen on FC-6.
    Turns out that this is due to graphviz-gd sprit out on FC-devel
    NOTE: currently on FC-devel:
-------------------------------------------------------
bash-3.2# rpm -q graphviz
graphviz-2.12-6.fc7
-------------------------------------------------------
    For me it is okay with the following added.
-------------------------------------------------------
--- HippoDraw.spec~	2007-03-11 05:00:06.000000000 +0900
+++ HippoDraw.spec	2007-03-12 00:21:55.000000000 +0900
@@ -13,6 +13,9 @@
 
 
 BuildRequires: cfitsio-devel qt-devel desktop-file-utils doxygen graphviz
+%if 0%{?fedora} >= 7
+BuildRequires: graphviz-gd
+%endif
 BuildRequires: tetex-latex tetex-dvips netpbm-progs ghostscript
 Requires:  cfitsio tetex-latex tetex-dvips netpbm-progs ghostscript

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

* Changelog
> I'm using rpm mode in emacs to generate the entries.	 It picks up my userid
> on my laptop that I'm using for development.	 You'll note the machine name
> changes depending on whether I'm at work or at home due to different DHCP
> server. Should I manually fix all of them?
  - Normally the email of Changelog and bugzilla entry should be
    the same.
    Please fix the email address for new changelog entry (it is okay
    for the changelog already written).
Comment 29 Paul F. Kunz 2007-03-11 17:59:45 EDT
   Thanks again for your review and comments.

I'm sure I typed in qt-devel when you first mentioned it.  It got lost somehow.
I'v moved the Requires: to the right place and added the missing one.
replaced "/usr" with "%{_prefix}".

Thanks for the graphviz-gd fix, I've put it in but can't test it.

Fixed the e-mail address in latest changelog entry.

upstream sources Makefile install target fixed so documentation built only if
needed.

fixed files are at...
SRPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.6-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec


Comment 30 Mamoru TASAKA 2007-03-12 04:08:31 EDT
Well, as I said my comment
--------------------------------------
qt-devel is needed for HippoDraw-devel
--------------------------------------
is a just a example. Would you check all dependency for -devel
package again?

And. I have a question.
Well, /usr/include/HippoDraw/numarray/num_util.h contains:
--------------------------------------
    10  // $Id: num_util.h,v 1.11 2007/02/13 19:15:14 pfkeb Exp $
    11  //
    12
    13  #ifdef HAVE_CONFIG_H
    14  #include "config.h"
    15  #endif
    16
    17  #include <boost/python.hpp>
    18  #ifdef HAVE_NUMPY
    19  #include <numpy/noprefix.h>
    20  #else
    21  #ifdef HAVE_NUMERIC
    22  #include <Numeric/arrayobject.h>
    23  #else
    24  #include <numarray/arrayobject.h>
    25  typedef int intp;
    26  #endif
    27  #endif
    28
--------------------------------------
  (well, the line 17 implies that HippoDraw-devel needs
   "Requires: boost-devel")
  Here the files included by this file differs according to
  what is "define"d, however, how can I know if HAVE_NUMPY or
  so should be defined when using this header file?

  Well, at the stage of compiling HippoDraw, it was determined
  whether HAVE_NUMPY or so was defined or not because "config.h"
  is included. Perhaps when I use this header file, it should
  be consistent with the stage of compiling HippoDraw about
  whether I should define HAVE_NUMPY or not, isn't it? 
  Or can this be ignored?
Comment 31 Paul F. Kunz 2007-03-12 13:58:40 EDT
Thankss once again for the careful review.

Added for -devel package requirements of cfitsio-devel, boost-devel, and
python-numarray

To answer your question, HippoDraw can be built with any of the three numeric
packages for Python.   The numarray package has been most commonly used up to
now so configre script enables it by default.   The macros you see in the snipet
of code are defined in config.h.   Perhaps config.h should be installed in
/usr/include/HippoDraw/ as part of the -devel package?

Question for you:   The -devel package installs /usr/lib/libhippo.so and
/usr/lib/libhippoqt.so, but the main package already does that.   Should they be
removed from the -devel package since it requires the main package?

New files available
RPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.6-2.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 32 Mamoru TASAKA 2007-03-12 14:26:45 EDT
Well, before checking -2 package:
(In reply to comment #31)
> 
> To answer your question, HippoDraw can be built with any of the three numeric
> packages for Python.   The numarray package has been most commonly used up to
> now so configre script enables it by default.   The macros you see in the snipet
> of code are defined in config.h.   Perhaps config.h should be installed in
> /usr/include/HippoDraw/ as part of the -devel package?

Well, my question is that
* at a build stage of HippoDraw, one of the three headers are
  "include"d in num_util.h, for example, Numeric/arrayobject.h
* When I want to use num_util.h for other applications, the header
  file included in num_util.h may differ from above, for example,
  numarray/arrayobject.h
Does this cause no problem?

> 
> Question for you:   The -devel package installs /usr/lib/libhippo.so and
> /usr/lib/libhippoqt.so,

Yes, this is needed for linkage. i.e. if you want to allow linkage
against libhippo.so from other applications, this symlink is needed.

> but the main package already does that.   
Umm? main package has /usr/lib/libhippo.so.0 (needed for ldconfig) or
/usr/lib/libhippo.so.0.0.0 (this is the real file of the library),
however these files cannot be used for linkage (i.e. -lhippo)

> Should they be removed from the -devel package since 
> it requires the main package?

Normally -devel package should require main package (or -libs package
if there exists) and for linkage /usr/lib/libhippo.so is needed in
-devel package.
Comment 33 Paul F. Kunz 2007-03-13 13:52:28 EDT
In regards to num_util.h:   Only in hippomodule.so (in the HippoDraw-python
package is the num_util functions used.   So someone building an application
with the libhippo.so and libhippoqt.so librareis the mulitple possible include
in num_util.h should not matter.   If someone wants to build his own Python
extension module to use with the HippoDraw-python package, he'll have to use
numarray or there might be prolbmes interfacing the two extnesion modules.

In regard to the library installations.   After undrstanding your explanation
and comparing it with qt and qt-devel, I think I have it correct for the
HippoDraw main package and the -devel package.

Comment 34 Paul F. Kunz 2007-03-14 08:28:13 EDT
I'm going to be out of town until the weekend, thus will not be able to respond
to an additinal questions for a while.
Comment 35 Mamoru TASAKA 2007-03-24 09:08:21 EDT
Are you back from your vacation?

(In reply to comment #33)
> In regard to the library installations.   After undrstanding your explanation
> and comparing it with qt and qt-devel, I think I have it correct for the
> HippoDraw main package and the -devel package.

Does this mean that you plan to fix main and -devel
package?

Comment 36 Paul F. Kunz 2007-03-24 17:08:21 EDT
To replay to comment #35...

   Yes I'm back from my trip, wasn't really a vacation.

   I think main and -devel were already correct with regards to installation of
libraries and symbolic links to libraries.
Comment 37 Mamoru TASAKA 2007-03-25 02:49:20 EDT
(In reply to comment #33)
> In regards to num_util.h:   Only in hippomodule.so (in the HippoDraw-python
> package is the num_util functions used.   So someone building an application
> with the libhippo.so and libhippoqt.so librareis the mulitple possible include
> in num_util.h should not matter.  

This explanation is good.

Well, then there are some other header files which contains the
following line:
--------------------------
#include "config.h"
--------------------------
They are:
--------------------------
/usr/include/HippoDraw/functions/FunctionBase.h
/usr/include/HippoDraw/minimizers/MinuitMigrad.h
/usr/include/HippoDraw/minimizers/NTupleLikeliHoodFCN.h
/usr/include/HippoDraw/minimizers/NTuplePearsonFCN.h
/usr/include/HippoDraw/minimizers/StatedFCN.h
/usr/include/HippoDraw/numarray/num_util.h
/usr/include/HippoDraw/python/FunctionWrap.h
/usr/include/HippoDraw/python/PyDataSource.h
/usr/include/HippoDraw/python/QtCut.h
--------------------------

Among them, some header files have #ifdef judgments for
HAVE_MINUIT2, HAVE_NUMARRAY, BOOST_DEFECT.
Would you check if all of the ifdef check for these values
are of no problem?

Well, I may have forgotton if any other issues are left,
so I will recheck this...
Comment 38 Paul F. Kunz 2007-03-26 16:16:06 EDT
There are a number of #ifdef with macros of the from HAVE_xxx.   All are defined
in config.h.   What was misssing, I think, is installation of the config.h file
itself.   That is now fixed in the upstream sources.



RPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.19.8-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 39 Patrice Dumas 2007-03-26 16:23:27 EDT
(In reply to comment #37)

> Among them, some header files have #ifdef judgments for
> HAVE_MINUIT2, HAVE_NUMARRAY, BOOST_DEFECT.
> Would you check if all of the ifdef check for these values
> are of no problem?

I haven't checked the package, but in general there 
should never be such conditionals in the API. Is there
something special in that package?

Comment 40 Mamoru TASAKA 2007-03-27 05:59:09 EDT
(In reply to comment #39)
> (In reply to comment #37)
> 
> > Among them, some header files have #ifdef judgments for
> > HAVE_MINUIT2, HAVE_NUMARRAY, BOOST_DEFECT.
> > Would you check if all of the ifdef check for these values
> > are of no problem?
> 
> I haven't checked the package, but in general there 
> should never be such conditionals in the API. Is there
> something special in that package?

I agree. Generally header files included in -devel package
should not have #ifdef conditionals like above..
This usually causes API breakage, and may cause problems
when other applications want to use these header files
with some macros re-defined.

(In reply to comment #38)
> There are a number of #ifdef with macros of the from HAVE_xxx.   
> All are defined
> in config.h.   What was misssing, I think, 
> is installation of the config.h file
> itself.   That is now fixed in the upstream sources.

However, having header files created by autotools included as
-devel header files are generally considered as BAD
( see the explanation by Michael Schwendt and Hans de Goede
  on bug 232342 ).
Comment 41 Mamoru TASAKA 2007-04-06 11:46:43 EDT
Well, I still think that
* having config.h installed in -devel package
* #ifdef judgment for HAVE_NUMPY HAVE_NUMARRAY etc... being
  included in header files
are wrong as said in comment 40.

IMO you should remove unnecessary header files and
remove confusing ifdef judgment.
Comment 42 Hans de Goede 2007-04-08 02:43:33 EDT
Mamoru asked me to look at the #ifdef stuff, but while doing so I also stumbled
over this:

(In reply to comment #14)
> * %{_datadir}/icons/hicolor/48x48/apps/hippoApp.png
>   Installing image files under %{_datadir}/icons/hicolor needs
>   icon cache updating (check:
>   http://fedoraproject.org/wiki/Packaging/ScriptletSnippets )
> 

Using capitals in icon file names is not allowed according to the
freedesktop.org icon naming standard, please choose and use an all lowercase name.

(In reply to comment #26)
> * Desktop file
> --------------------------------------------------
> Categories=Science;DataVisualization;
> --------------------------------------------------
>   - Category "DataVisualization" is not valid (please check comment 25)
>   - Category "Science" is valid, so this can be left as is.
>     However, currenly no HippoDraw entry appear in my GNOME menu.
>     Please check:
>     /etc/xdg/menus/applications.menu 
>     and add a category which can be found in the menu file above
>     so that HippoDraw entry can appear on GNOME menu.
> 

Yes that might work, but the correct way todo this is to write desktop files
which follow the spec. According to the spec there are 2 kinda categories:
Main categories and Additional categories. For the Categories filed in a desktop
file you should select one Main Category and as many additional as propriate, see:
http://standards.freedesktop.org/menu-spec/latest/apa.html

I'll get back to the #ifdef stuff later.
Comment 43 Hans de Goede 2007-04-08 04:30:27 EDT
About the header files, #ifdef HAVE_XXXX and including config.h

Header files document / publish interfaces. The first thing todo is to make a
divide between internal interfaces (iow interfaces between parts of HippoDraw)
and external interfaces. Then you should only install external interfaces, iow
interfaces meant to be used by other party apps / libraries into /usr/include.

Then where-ever possible the header files installed into /usr/include should not
contain any #ifdef HAVE_XXX code, if they do, maybe the contain a mix between
internal and external interfaces. If that is the case try to split the header file.

Having #ifdef HAVE_XXXX macros in public header files is bad, as that means that
different compilations of the same version of HippoDraw may be ABI incompatible,
which should be avoided if at all possible.

Last when the number of #ifdef HAVE_XXX lines in public header files is reduced
the a minimum, change them to #ifdef HIPPODRAW_WITH_XXX, and create a
hippodraw_conf.h with only the #ifdef HIPPODRAW_WITH_XXX defines in it, and
include that from the header files who need the #ifdef HIPPODRAW_WITH_XXX defines.

This last step is necessary because we don't want a generic filename like
config.h in the headerfile-name space, nor a header file with very generic and
often conflicting defines like HAVE_XXX. What happens when an app uses 2
libraries with config.h, which config.h gets included? And if they both get
included, because not -Ixxx is used, but #include <xxx/config.h>, then what if
one defines HAVE_FOO 0 and the other as HAVE_FOO 1, as they were build with
different BR's? To avoid such a mess in general autoheader files should not be
installed, and thus public headers should not depend on them.

Comment 44 Mamoru TASAKA 2007-04-08 07:39:54 EDT
Thank you for a good explanation, Hans.
Comment 45 Paul F. Kunz 2007-04-09 15:38:42 EDT
Thanks Hans, for sharing your suggestions.   I understand what you mean by
config.h being installed, I've been bitten by other libraries that do that.  
For example WCSLIB.

The fixes will take more than a few days.   I've already started working on it.

Thanks again.
Comment 46 Mamoru TASAKA 2007-04-22 02:33:25 EDT
ping?
Comment 47 Paul F. Kunz 2007-04-25 15:46:06 EDT
Icon filename changed to lower case only.

Generated config header file now named hippoconfig.h   It is included in only 5
header files of the library.   The first 4 relate to ABI change in optional
third party library.   This library is not used for the rpm build as it doesn't
have an rpm for any distribution.   The last one is for templated C++ code that
depends on which Python numeric package the library was built with (i.e.
Numeric, numarray, or numpy).   The buildrequires is set to python-numarray.

Updated...
RPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.20.0-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec

Comment 48 Mamoru TASAKA 2007-04-26 00:11:14 EDT
For 1.20.0-1:

* Release number dependency
  - Usually, the dependency for "main" package should be
    release number specific.
    Check the dependency of -devel-docs against -devel subpackage.

* Desktop file
  - Icon name differs.

* Again #define macro
  - My recognition is that Hans want to say that if #define
    macro is needed (this time in hippoconfig.h), the name
    to be defined should not generic.
-----------------------------------------------
Last when the number of #ifdef HAVE_XXX lines in public header files is reduced
the a minimum, change them to #ifdef HIPPODRAW_WITH_XXX, and create a
hippodraw_conf.h with only the #ifdef HIPPODRAW_WITH_XXX defines in it, and
include that from the header files who need the #ifdef HIPPODRAW_WITH_XXX defines.
------------------------------------------------
    So, HAVE_CFITSIO should be renamed to WITH_HIPPODRAW_CFITSIO, for
    example.
Comment 49 Mamoru TASAKA 2007-05-04 04:03:24 EDT
ping?
Comment 50 Mamoru TASAKA 2007-05-28 09:46:58 EDT
ping again?
Comment 51 Mamoru TASAKA 2007-06-14 10:32:25 EDT
ping again?
Comment 52 Mamoru TASAKA 2007-06-28 13:38:01 EDT
Again ping? I will close this bug if no response from you is
received within 2 weeks, Paul.
Comment 53 John Ellson 2007-07-12 16:26:53 EDT
Just a side comment from a graphviz developer.   If you use PNG format ("dot
-Tpng" instead of "dot -Tgif") then you will get better quality anti-aliased
line drawings from the new cairo+pango renderer in graphviz.  Also you will only
need to BR graphviz and not graphviz-gd.  Unfortunately cairo provides no
support for GIF format.
Comment 54 Paul F. Kunz 2007-07-12 17:00:04 EDT
The offending generated config.h file is no longer installed.   I eliminated the
need to include this file by other header files in all but a few cases and only
one of them might need to be included by a user of the library.   For that one,
which declares a C++ base class, I found no other alternative than to document
that the user needs to create his own config.h file that can be included.

Updated...
RPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.20.7-2.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 55 Mamoru TASAKA 2007-07-13 01:18:46 EDT
Created attachment 159123 [details]
mock build log of HippoDraw 1.20.7-2 on rawhide i386

mock build failed on rawhide i386, more specially
desktop-file-utils 0.13-1.fc8

The entry "Version" is the version of "Desktop Entry Standard"
you used (see: http://standards.freedesktop.org/desktop-entry-spec/ ),
so
* This version value has no relation with the version of the
  application
* The value of Version should be either:
  0.9.[3-8] or 1.0
* And the Entry Version is *not needed*
So you may want to simply remove Version entry.
Comment 56 Paul F. Kunz 2007-07-16 19:01:41 EDT
I removed Version entry from the desktop file.

Upstream source updated so 
RPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.20.8-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec

Comment 57 Mamoru TASAKA 2007-07-17 13:53:02 EDT
Now mock build passed on rawhide i386.

For 1.20.8-1:

* #define macro / file name namespace issue
  - This time HippoDraw-devel contains named "version.h" and
    defines _VERSION_H_ macro
    IMO this will cause file name/define macro namespace conflict.
    Actually some package badly install header file named
    "version.h" and this will cause namespace conflict when
    both packages which use "version.h" are included.

    Would you rename this to "HippoDraw_version.h" and
    change to "ifdef _HippoDraw_version_h_" or something, or
    simply remove version.h from HippoDraw-devel?


* Again ifdef judgment
  - Again what is happening on /usr/include/HippoDraw/numarray/num_util.h?
    This package contains #ifdef HAVE_NUMPY, however we cannot 
    tell whether HAVE_NUMPY is defined or not when rebuilt 
    (please recheck the comment 43 by Hans).

    Is your comment 33 still valid? (in that case, is num_util.h really
    needed for header files?)

* Requires
  - Please remove explicit Requires when libraries' dependency automatically
    checked by rpmbuild pulls the dependency.
    For example "Requires: cfitsio" is not needed for main package
    because main package has the dependency for libcfitsio.so.0.

* Desktop file
  - fedora-HippoDraw.desktop refers to the wrong name icon.

* defattr
  For defattr, we now recommend %defattr(-,root,root,-)

* doc subpackage naming
  - Perhaps simply "HippoDraw-docs" may be better?
Comment 58 Paul F. Kunz 2007-07-20 15:23:48 EDT
num_util.h is no longer installed.   Turns out it was not included by any C++
base  class so no user should need it.

File version.h has been completely removed in the upstream sources.   The
function  declared in this header file was not called from any place.

explict requirement of cfitsio removed.   build requirement of cfitsio-devel
remains.

File name of icon file fixed.

change to recommended defattr

HippoDraw-devel-docs contains documentation for the class library.   Main
package has documentation for the application user and the applications's
built-in help system.

pstream source updated so 
RPMS ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.20.9-1.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 59 Mamoru TASAKA 2007-07-21 12:49:28 EDT
Well, for header files #include and #ifdef macros issues, now
they seems good for me.

For 1.20.9-1:

* Requires
  - Why main subpackage should have
    "Requires: tetex-latex tetex-dvips"? (I am not asking for
    BuildRequires).
    * Also please check for the dependency for netpbm-progs 
      and ghostscript (again, I am not asking for BuildRequires).

* python dependency
  - Well, does HippoDraw require tkinter? (tkinter is not
    installed by default).

? Files under examples/
  - Should the files "SimEvents.fits" "Z0Strip.data" "aptuple.tnt" under
    %_datadir/%name should be in -python subpackage or in main package?

* Dependency of -devel-doc package
  - Unless you have a special reason, please specify the dependency
    against -devel subpackage by release number specific.
Comment 60 John Ellson 2007-07-21 16:25:51 EDT
Just a report from an interested bystander that:
  rpmbuild --rebuild HippoDraw-1.20.9-1.fc7.src.rpm
on Fedora-development, x86_64, fails with:

RPM build errors:
    user pfkeb does not exist - using root
    group ek does not exist - using root
    user pfkeb does not exist - using root
    group ek does not exist - using root
    File not found:
/var/tmp/HippoDraw-1.20.9-1.fc8-root-ellson/usr/lib64/python2.5/site-packages/HippoDraw
    File not found:
/var/tmp/HippoDraw-1.20.9-1.fc8-root-ellson/usr/lib64/python2.5/site-packages/hippo.pth
    File not found by glob:
/var/tmp/HippoDraw-1.20.9-1.fc8-root-ellson/usr/lib64/python2.5/site-packages/HippoDraw/hippomodule.*
    File not found by glob:
/var/tmp/HippoDraw-1.20.9-1.fc8-root-ellson/usr/lib64/python2.5/site-packages/HippoDraw/*.py
    File not found by glob:
/var/tmp/HippoDraw-1.20.9-1.fc8-root-ellson/usr/lib64/python2.5/site-packages/HippoDraw/*.pyc
    File not found by glob:
/var/tmp/HippoDraw-1.20.9-1.fc8-root-ellson/usr/lib64/python2.5/site-packages/HippoDraw/*.pyo
    File listed twice: /usr/include/HippoDraw/numarray/num_util.h
    Installed (but unpackaged) file(s) found:
   /usr/lib/python2.5/site-packages/HippoDraw/FitsAxis.py
   /usr/lib/python2.5/site-packages/HippoDraw/FitsAxis.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/FitsAxis.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/FitsImageNTuple.py
   /usr/lib/python2.5/site-packages/HippoDraw/FitsImageNTuple.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/FitsImageNTuple.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/FitsNTuple.py
   /usr/lib/python2.5/site-packages/HippoDraw/FitsNTuple.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/FitsNTuple.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/FunctionBaseDecorator.py
   /usr/lib/python2.5/site-packages/HippoDraw/FunctionBaseDecorator.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/FunctionBaseDecorator.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/fileList.py
   /usr/lib/python2.5/site-packages/HippoDraw/fileList.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/fileList.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/fitsarray.py
   /usr/lib/python2.5/site-packages/HippoDraw/fitsarray.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/fitsarray.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/hippofft.py
   /usr/lib/python2.5/site-packages/HippoDraw/hippofft.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/hippofft.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/hippomodule.so
   /usr/lib/python2.5/site-packages/HippoDraw/hippomodule.so.0
   /usr/lib/python2.5/site-packages/HippoDraw/hippomodule.so.0.0.0
   /usr/lib/python2.5/site-packages/HippoDraw/hippoplotter.py
   /usr/lib/python2.5/site-packages/HippoDraw/hippoplotter.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/hippoplotter.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/pyfits.py
   /usr/lib/python2.5/site-packages/HippoDraw/pyfits.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/pyfits.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/spectral.py
   /usr/lib/python2.5/site-packages/HippoDraw/spectral.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/spectral.pyo
   /usr/lib/python2.5/site-packages/HippoDraw/utilities.py
   /usr/lib/python2.5/site-packages/HippoDraw/utilities.pyc
   /usr/lib/python2.5/site-packages/HippoDraw/utilities.pyo
   /usr/lib/python2.5/site-packages/hippo.pth
Comment 61 Mamoru TASAKA 2007-07-23 08:43:02 EDT
Well, it seems that all files are installed under site_lib,
not site_arch. While this should be for arch-independent files
(.py{,c,o}), arch-dependent files (.so, for example) must be
installed under site_arch directory.
Comment 62 Paul F. Kunz 2007-07-24 18:49:23 EDT
Thanks very much again for very careful review.
As for comments in #59

Both the buildrequires and requires list tetex-latex, et al.   The build
requires so that Doxygen used for documentation generation will work, and the
reqires for the runtime of the application.

HippoDraw does not require tkinter.

The files in the examples directory can be used for the stand-a-lone
application.   Only mention of them in in the example Python scripts and
documentation.

release number added to the -devel-doc subpackage.

As for commetns in #60 and #61

The problem appears to stem from the fact that the autoconf/automake generated
Makefile does not install python modules in lib64/python.   I don't know how to
work around it.   Other packages that do not use Python's distutils must have
solved it.   Any clues on how to handle this would be appreciated.

pstream source updated so 
RPMS
ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.21.0-1.fc7.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec
Comment 63 Mamoru TASAKA 2007-07-25 11:09:15 EDT
(In reply to comment #62)
> HippoDraw does not require tkinter.
  - Oops.. I meant "does HippoDraw-python require tkinter?"
    hippoplotter.py imports Tkinter.
 
> release number added to the -devel-doc subpackage.
  - I meant that currently -devel-doc subpackage has
    "Requires: %{name}-devel", which should be
    "Requires: %{name}-devel = %{version}-%{release}"

> As for commetns in #60 and #61
> 
> The problem appears to stem from the fact that the autoconf/automake generated
> Makefile does not install python modules in lib64/python.   I don't know how to
> work around it.  
- As I said in comment 61, while .py{,o,c} files (i.e. arch-independent
  files) should be installed under site_lib, .so files (arch-dependent)
  should be installed under site_arch. on x86_64 and ppc64, they differ.

  You can workarround:
--------------------------------------------------------------
%{!?python_sitelib: %define ......}
%{!?python_sitearch: %define .....}
....
....

%install
.....
%ifarch x86_64 ppc64
mkdir -p $RPM_BUILD_ROOT%{python_sitearch}/%{name}/
mv $RPM_BUILD_ROOT%{python_sitelib}/%{name}/hippomodule.so* \
    $RPM_BUILD_ROOT%{python_sitearch}/%{name}/
%endif

....
%files python
%defattr(-,root,root,-)
%{python_sitelib}/hippo.pth
%{python_sitelib}/%{name}/
%ifarch x86_64 ppc64
%{python_sitearch}/%{name}/
%endif
%{_datadir}/%{name}/examples/

%changelog
...........
---------------------------------------------------------
Comment 64 Mamoru TASAKA 2007-07-25 11:14:44 EDT
(In case my comment is not delivered by mail, I will
 post again)

(In reply to comment #62)
> HippoDraw does not require tkinter.
  - Oops.. I meant "does HippoDraw-python require tkinter?"
    hippoplotter.py imports Tkinter.
 
> release number added to the -devel-doc subpackage.
  - I meant that currently -devel-doc subpackage has
    "Requires: %{name}-devel", which should be
    "Requires: %{name}-devel = %{version}-%{release}"

> As for commetns in #60 and #61
> 
> The problem appears to stem from the fact that the autoconf/automake generated
> Makefile does not install python modules in lib64/python.   I don't know how to
> work around it.  
- As I said in comment 61, while .py{,o,c} files (i.e. arch-independent
  files) should be installed under site_lib, .so files (arch-dependent)
  should be installed under site_arch. on x86_64 and ppc64, they differ.

  You can workarround:
--------------------------------------------------------------
%{!?python_sitelib: %define ......}
%{!?python_sitearch: %define .....}
....
....

%install
.....
%ifarch x86_64 ppc64
mkdir -p $RPM_BUILD_ROOT%{python_sitearch}/%{name}/
mv $RPM_BUILD_ROOT%{python_sitelib}/%{name}/hippomodule.so* \
    $RPM_BUILD_ROOT%{python_sitearch}/%{name}/
%endif

....
%files python
%defattr(-,root,root,-)
%{python_sitelib}/hippo.pth
%{python_sitelib}/%{name}/
%ifarch x86_64 ppc64
%{python_sitearch}/%{name}/
%endif
%{_datadir}/%{name}/examples/

%changelog
...........
---------------------------------------------------------
Comment 65 Paul F. Kunz 2007-07-26 13:58:01 EDT
Thanks again for you very careful review

HippoDraw no longre imports Tkinter.   The feature implemented by the
contributed package that imported Tkinter has been implemented in the C++ sources.

The -devel-doc subpackage requires has been fixed for requiring verison of
-devel subpackage.

I found the way autoconf/automake handles installing in
/usr/lib64/python25/site-packages so did not need any workarounds.
For reference to thing to do is for the arch dependent shared library to be
declared like this

pkgpyexec_LTLIBRARIES = hippomodule.la

The %file section of the spec file has been adjusted accordingly.

Comment 66 Mamoru TASAKA 2007-07-28 11:00:04 EDT
Well, if you create new srpm, please upload it again.
Comment 67 Paul F. Kunz 2007-07-28 16:28:23 EDT
   I did up load it, but forgor to say so.   Here they are...



RPMS
ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.21.1-1.fc7.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec

Comment 68 Mamoru TASAKA 2007-07-29 13:27:27 EDT
Almost okay. Now rebuid succeeds on all archs as
http://koji.fedoraproject.org/koji/taskinfo?taskID=80875

* Just file entry:
-------------------------------------------------
%ghost %{_includedir}/%{name}/numarray/num_util.h
-------------------------------------------------
  - Perhaps you want to use %exclude? %ghost means that
    "this file may be missing, but it is okay". Actually
    num_util.h is installed on my system.

-------------------------------------------------
%files python
%defattr(-,root,root,-)
<snip>
%{python_sitearch}/hippo.pth
%{python_sitelib}/hippo.pth
<snip>
--------------------------------------------------
  - on i386 and ppc, these are the same. So:
--------------------------------------------------
<snip>
%{python_sitelib}/hippo.pth
%ifarch x86_64 ppc64
%{python_sitearch}/hippo.pth
%endif
<snip>
---------------------------------------------------
Comment 69 Paul F. Kunz 2007-08-01 20:47:29 EDT
Sorry of the delay, been unusally busy at work this week (meetings all day).
I've changed to %ghost to %eclude

Thsnks for suggestion on handling duplicate file with `%ifarch' which I've also
implemented, but could not test.

Updated files...
RPMS
ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw-1.21.1-2.fc7.src.rpm
SPEC  ftp://ftp.slac.stanford.edu/users/pfkeb/hippodraw/HippoDraw.spec

Comment 70 Mamoru TASAKA 2007-08-02 11:37:51 EDT
Well, for sponsor needed ticket, I usually ask the submitter to either
do a pre-review of other persons' review requests or submit another
review request per:
http://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored

However:
* This review request is very long
* We discussed packaging issue and I can assume that you are now
  familiar with packaging issue
So for this review request, I won't ask above.

-----------------------------------------------------------------
          This package (HippoDraw) is APPROVED by me
-----------------------------------------------------------------

Please follow the procedure written on:
http://fedoraproject.org/wiki/PackageMaintainers/Join
from "Get a Fedora Account"
At a point, I should receive a mail which notices that you need
a sponsor, then I will sponsor you.

If you want to release this package on Fedora 7, you have to read:
http://fedoraproject.org/wiki/Infrastructure/UpdatesSystem/Bodhi-info-DRAFT
after rebuilding on koji is done.

If you have some questions, please feel free to ask me.
Comment 71 Mamoru TASAKA 2007-08-08 12:54:56 EDT
ping?
Comment 72 Mamoru TASAKA 2007-08-17 14:23:50 EDT
Now I am sponsoring you.
Comment 73 Mamoru TASAKA 2007-08-25 11:31:27 EDT
ping again?
Comment 74 Mamoru TASAKA 2007-08-25 11:31:49 EDT
ping again?
Comment 75 Mamoru TASAKA 2007-08-25 22:38:20 EDT
(In case my comment is not delivered due to yesterday's bugzilla
 maintenance, I write one more ping...)
Comment 76 Paul F. Kunz 2007-08-30 15:20:27 EDT
(In reply to comment #75)
> (In case my comment is not delivered due to yesterday's bugzilla
>  maintenance, I write one more ping...)

commetn #71 and onward was not received by e-mail.
Comment 77 Paul F. Kunz 2007-08-30 15:23:45 EDT
New Package CVS Request
=======================
Package Name: HippoDraw
Short Description: nteractive and Python scriptable data analysis application
Owners: pfkeb
Branches: FC-6 F-7
InitialCC: pfkeb
Cvsextras Commits:yes
Comment 78 Jens Petersen 2007-08-30 21:39:13 EDT
done
Comment 79 Mamoru TASAKA 2007-09-01 10:55:26 EDT
Please rebuild also on FC-6 and F-7. For F-7, please request a release
push using Bodhi system.
Comment 80 Mamoru TASAKA 2007-09-04 08:28:42 EDT
Okay. Now I saw that you rebuilt HippoDraw on devel, F-7 and FC-6.
Then please request this package to push on F-7 repository using
bodhi system:
https://admin.fedoraproject.org/updates/
according to
http://fedoraproject.org/wiki/Infrastructure/UpdatesSystem/Bodhi-info-DRAFT

Now closing as NEXTRELEASE.
Comment 81 Paul F. Kunz 2007-09-04 16:51:30 EDT
(In reply to comment #80)
> Okay. Now I saw that you rebuilt HippoDraw on devel, F-7 and FC-6.
> Then please request this package to push on F-7 repository using
> bodhi system:
> https://admin.fedoraproject.org/updates/
> according to
> http://fedoraproject.org/wiki/Infrastructure/UpdatesSystem/Bodhi-info-DRAFT
> 
> Now closing as NEXTRELEASE.

   I'm uncertain of this next step.   Should I make a request for "new update"
of type "bug fix"  with bug number being his one?
Comment 82 Mamoru TASAKA 2007-09-04 21:57:38 EDT
(In reply to comment #81)

>    I'm uncertain of this next step.   Should I make a request for "new update"
> of type "bug fix"  with bug number being his one?

Well, "new update" of type "enhancement" with bug number this one.
Then after pushing "submit", select "push to stable".
Comment 83 Paul F. Kunz 2007-09-05 13:26:30 EDT
(In reply to comment #82)
> (In reply to comment #81)
> 
> >    I'm uncertain of this next step.   Should I make a request for "new update"
> > of type "bug fix"  with bug number being his one?
> 
> Well, "new update" of type "enhancement" with bug number this one.
> Then after pushing "submit", select "push to stable".

Done.   Thanks for helping.
Comment 84 Fedora Update System 2007-09-07 13:19:53 EDT
HippoDraw-1.21.1-2.fc7 has been pushed to the Fedora 7 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 85 Kevin Kofler 2007-09-07 21:59:20 EDT
> * IMPORTANT: license is incorrect: you are licensing this as LGPL, but some
> parts of this application are linking to Qt 3 (free edition), which is
> licensed under the GPL; therefore this application must also be licensed as
> GPL.

This is incorrect. Just as kdelibs can be under the LGPL, this package can too. 
The guidelines explicitly say that the License field should indicate the 
license of the package itself, not the entire linked combination. Now, it is 
true that unless you have a commercial license for Qt, you cannot distribute 
the linked combination under anything other than the GPL. But this still 
doesn't mean the license of the package has to be declared as GPL in the RPM 
License tag, just as in the case of kdelibs.
Comment 86 Mamoru TASAKA 2007-09-07 22:08:25 EDT
(In reply to comment #85)
> > * IMPORTANT: license is incorrect: you are licensing this as LGPL, but some
> > parts of this application are linking to Qt 3 (free edition), which is
> > licensed under the GPL; therefore this application must also be licensed as
> > GPL.
> 
> This is incorrect. Just as kdelibs can be under the LGPL, this package can too. 
......

Please file a new bug report.
Comment 87 Mamoru TASAKA 2007-09-07 22:13:45 EDT
And note that 1.21.1. is surely licensed under GPL.
Comment 88 Peter Robinson 2010-06-10 16:06:07 EDT
Package Change Request
======================
Package Name: hippodraw
New Branches: EL-6
Owners: pbrobinson sdz
Comment 89 Kevin Fenzi 2010-06-11 00:19:45 EDT
Have you checked with pfkeb to see if they would like to maintain in EPEL?

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