Bug 352761 - Review Request: ds9 - Astronomical Data Visualization Application
Review Request: ds9 - Astronomical Data Visualization Application
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Mamoru TASAKA
Fedora Extras Quality Assurance
:
Depends On: 249812 333081 333091 352741
Blocks:
  Show dependency treegraph
 
Reported: 2007-10-25 12:55 EDT by Sergio Pascual
Modified: 2011-05-04 18:35 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-12-04 06:04:21 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
mtasaka: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Sergio Pascual 2007-10-25 12:55:11 EDT
Spec URL: http://sergiopr.fedorapeople.org/ds9.spec
SRPM URL: http://sergiopr.fedorapeople.org/ds9-4.13-8.fc7.src.rpm
Description: 
SAOImage DS9 is an astronomical imaging and data visualization application. 
DS9 supports FITS images and binary tables, multiple frame buffers, region 
manipulation, and many scale algorithms and colormaps. It provides for easy 
communication with external analysis tasks and is highly configurable and 
extensible.
Comment 1 Jason Tibbitts 2007-10-25 14:19:58 EDT
A couple of quick comments:

You should use %{__ln_s} in %build since you use macroized versions of the other
commands.

If you don't need to update the icon cache, it's probably best to remove the
comments from your %post and %postun scriptlets and use the %post -p
/sbin/ldconfig form instead.
Comment 2 Sergio Pascual 2007-10-28 18:38:54 EDT
I have modified the specfile, now the most of the tcl libraries are loaded using
tcl_pkgrequire

Spec URL: http://sergiopr.fedorapeople.org/ds9.spec
SRPM URL: http://sergiopr.fedorapeople.org/ds9-4.13-9.fc7.src.rpm
Comment 3 Sergio Pascual 2007-11-09 05:23:20 EST
This is a new version of the package that builds with the last version of blt

Spec URL: http://sergiopr.fedorapeople.org/ds9.spec
SRPM URL: http://sergiopr.fedorapeople.org/ds9-4.13-10.fc7.src.rpm
Comment 4 Mamoru TASAKA 2007-11-09 11:32:58 EST
Well, I just (only just) tried to rebuild -10.fc7 on dist-f9
but it failed.

Just a note:
You can try to rebuild a arbitrary srpm on koji by
$ koji build --scratch <target> <srpm_you_want_to_try>

Currently <target> can be dist-f9, dist-f8-updates-candidate,
or dist-fc7-updates-candidate.
If rebuild is successful, the result rpms are placed under
http://koji.fedoraproject.org/scratch/<your_FAS_name>/task_<id>/ .
Comment 5 Mamoru TASAKA 2007-11-09 11:33:38 EST
The result is http://koji.fedoraproject.org/koji/taskinfo?taskID=231751
Comment 6 Sergio Pascual 2007-11-09 22:25:04 EST
It was a problem with one of the dependencies and I have fixed it. Now it builds

http://koji.fedoraproject.org/koji/taskinfo?taskID=232886
Comment 7 Mamoru TASAKA 2007-11-12 02:41:02 EST
I fear that the license of the file
----------------------------------------------------
saotk/util/FlexLexer.h
----------------------------------------------------
is very similar with "the advertising clause" of old (4-clause)
BSD, which is GPL-imcompatible.

From my eye, the only file in ds9 source tarball 
of which the license is in question is this file.
Comment 8 Sergio Pascual 2007-11-12 06:24:05 EST
This file is very similar, if not identical, to the file /usr/include/FlexLexer.h
from the flex package. I will look into this and I will try to use the
header/code/library from the flex package instead of the source code in the tarball
Comment 9 Matthew Truch 2007-11-14 17:06:46 EST
I'm interested in testing this package.  Is there a srpm that will build for F8
or F7?  I'm getting failures on both my machine and in koji.  
Comment 10 Sergio Pascual 2007-11-14 18:23:57 EST
This the new upstream version:

Spec URL: http://sergiopr.fedorapeople.org/ds9.spec
SRPM URL: http://sergiopr.fedorapeople.org/ds9-5.0-1.fc7.src.rpm

I have build it in my home computer and in koji
http://koji.fedoraproject.org/koji/taskinfo?taskID=241997

It still has the problem of FlexLexer.h from comment 7. I have communicated
upstream the problem and they are willing to fix it.
Comment 11 Sergio Pascual 2007-11-15 02:44:31 EST
Matthew, you probably need to install the testing version of funtools-devel and
funtools-libs
Comment 12 Matthew Truch 2007-11-15 10:01:38 EST
(In reply to comment #11)
> Matthew, you probably need to install the testing version of funtools-devel and
> funtools-libs

Great, and I have now build (scratch builds) in koji for F7 and F8, which I and
a couple colleagues are already using to look at real data, so we're psyched. 
Thanks for the effort so far; can't wait for it to be in Fedora proper.  
Comment 13 Sergio Pascual 2007-11-15 10:29:52 EST
(In reply to comment #12)
Thanks to you, I couldn't get anyone here at my institution to test the program :-/

> (In reply to comment #11)
> > Matthew, you probably need to install the testing version of funtools-devel and
> > funtools-libs
> 
> Great, and I have now build (scratch builds) in koji for F7 and F8, which I and
> a couple colleagues are already using to look at real data, so we're psyched. 
> Thanks for the effort so far; can't wait for it to be in Fedora proper.  

Comment 14 Sergio Pascual 2007-11-30 10:54:19 EST
Well, although upstream is willing to fix the problem with the file FlexLexer.h,
it will probably pass another month until they find the time to do it. So I have
created a new package with a temporal workaround:

* I have downloaded from the flex CVS a version of FlexLexer.h with an updated
license (it's release 1.22)

* I have created a tarball without the offending FlexLexer.h

In both cases I have tried to follow the guidelines in
http://fedoraproject.org/wiki/Packaging/SourceURL

So these are the updated specfile and SRPM:
SPEC: http://sergiopr.fedorapeople.org/ds9.spec
SRPM: http://sergiopr.fedorapeople.org/ds9-5.0-2.fc7.src.rpm



Comment 15 Mamoru TASAKA 2007-12-01 03:31:24 EST
License check passed.
Comment 16 Mamoru TASAKA 2007-12-01 04:15:56 EST
Well, for 5.0-2:

* Version specific dependency
----------------------------------------------------------
[tasaka1@dhcp158 ~]$ ds9
Error in startup script: couldn't read file
"/usr/share/tcl8.4/tcllib-1.9/base64/base64.tcl": no such file or directory
    while executing
"source /usr/share/tcl8.4/tcllib-1.9/base64/base64.tcl"
    invoked from within
"if {![catch {package present checkdns}]} {
    set ds9(root) "/usr/share/ds9"

    source /usr/share/tcl8.4/msgcat1.3/msgcat.tcl
    source /usr/share..."
    (file "/usr/share/ds9/src/ds9.tcl" line 65)
----------------------------------------------------------
   - Now rawhide tcllib is tcllib-1.10-1.fc9.
     * At least a patch against src/ds9.tcl seems needed
     * It is better that the dependency against tcllib is
       version specific, i.e. "Requires: tcllib = 1.9"
       so that like this time we can know that ds9 has to
       be rebuilt when tcllib is upgraded.
     * Or you have some better solution?

* Scriptlets
  http://fedoraproject.org/wiki/Packaging/ScriptletSnippets
  - The installed desktop files contains MimeType key and
    desktop database must be updated.

* The location of icon
  - "sun.gif" seems rather generic name and IMO it is better
    that this icon is moved under %_datadir/pixmaps/%name
    (desktop file modification is needed).
Comment 17 Sergio Pascual 2007-12-03 07:43:52 EST
* Version specific dependency

I have patched some files and now the version number of tcllib has to written in
the specfile. It's something like this

%define tcllibver 1.10
Requires: tcllib = %{tcllibver}

The ideal would be:
1) To have a versionless tcllib directory
OR
2) To have a way of obtaining the tcllib version, similar to this macro to
obtain the tcl version:
%{!?tcl_version: %define tcl_version %(echo 'puts $tcl_version' | tclsh)}
I have searched for some version information inside tcllib and I have found none. 

So, I have submitted a bug to see if 1) is possible 
https://bugzilla.redhat.com/show_bug.cgi?id=408571
but for the moment the specfile should do the work

* Scriptlets
Fixed

* The location of icon
I have moved the icon to /usr/share/pixmaps/ds9 fixed

New SRPM and SPEC

SPEC: http://sergiopr.fedorapeople.org/ds9.spec
SRPM: http://sergiopr.fedorapeople.org/ds9-5.0-4.fc7.src.rpm
Comment 18 Mamoru TASAKA 2007-12-03 10:11:59 EST
One note:

(In reply to comment #16)
> * Version specific dependency
>    - Now rawhide tcllib is tcllib-1.10-1.fc9.
  - On F-8 and F-7, tcllib is still 1.9. You can handle this by
-------------------------------------------------------
if 0%{?fedora} >= 9
%define tcllibver 1.10
%else
%define tcllibver 1.9
%endif
--------------------------------------------------------
     , for example.

---------------------------------------------------------
     This package (ds9) is APPROVED by me
---------------------------------------------------------
Comment 19 Sergio Pascual 2007-12-03 10:26:24 EST
New Package CVS Request
=======================
Package Name: ds9
Short Description: Astronomical Data Visualization Application
Owners: sergiopr
Branches: F-8 F-7
InitialCC: 
Cvsextras Commits: yes
Comment 20 Kevin Fenzi 2007-12-03 14:13:26 EST
cvs done.
Comment 21 Wart 2007-12-03 20:30:14 EST
(In reply to comment #17)
> * Version specific dependency
> 
> I have patched some files and now the version number of tcllib has to written in
> the specfile. It's something like this
> 
> %define tcllibver 1.10
> Requires: tcllib = %{tcllibver}
> 
> The ideal would be:
> 1) To have a versionless tcllib directory
> OR
> 2) To have a way of obtaining the tcllib version, similar to this macro to
> obtain the tcl version:
> %{!?tcl_version: %define tcl_version %(echo 'puts $tcl_version' | tclsh)}
> I have searched for some version information inside tcllib and I have found none. 

Or option 3 (best solution):

Don't source the files directly, but instead use the 'package require' command
in Tcl to load these files.  For example, instead of:

source /usr/share/tcl8.4/msgcat1.3/msgcat.tcl

Use:

package require msgcat

...or if you require a specific version of the msgcat package because you know
an earlier one won't work:

package require msgcat 1.3.4

This will perform the equivalent of the source command, but succeed regardless
of the installation directory or version of tcllib.  In fact, the 'package
require' command was introduced in a much earlier version of Tcl to make things
like this possible, so that you don't have to hard code directory paths to
packages inside the application.
Comment 22 Sergio Pascual 2007-12-04 04:57:59 EST
I see. Originally ds9 is shipped as a statically compiled binary, and the tcl
files are included in the binary by means of a virtual zip-compressed mount point. 
As I'm not familiar with tcl, I thought that source is the standard way of
importing. 

I have followed you suggestion, thank you very match!
Comment 23 Sergio Pascual 2008-07-16 15:42:24 EDT
Package Change Request
======================
Package Name: ds9
New Branches: EL-5
Comment 24 Kevin Fenzi 2008-07-16 20:14:15 EDT
cvs done.
Comment 25 Orion Poplawski 2011-05-04 17:10:13 EDT
I'm not sure how this ever passed review.  This package bundles a large number of libraries, including an mpeg1 encoder which is forbidden.
Comment 26 Sergio Pascual 2011-05-04 17:53:30 EDT
This package has been always a nightmare. If it contains software that is forbidden in Fedora I think we should remove ds9. Or give it to someone else who wants to patch and unbundled libraries new libraries each new upstream release.
Comment 27 Orion Poplawski 2011-05-04 18:07:24 EDT
I may be willing to take it on.  I've been working today towards a patched 6.1 release.  I think I relearned a lot of stuff, but hopefully it will be all set.
Comment 28 Sergio Pascual 2011-05-04 18:35:25 EDT
In that case I'm going to orphan it. I will orphan also its dependencies

* funtools
* wcstools
* xpa

These are astronomical libraries, wcstools is particularly buggy


* tkimg

A Tcl/Tk module to handle images. It has problems of it's own, like bundled libraries

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