Bug 191014 - Review Request: ganymed-ssh2
Review Request: ganymed-ssh2
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Jason Tibbitts
Fedora Package Reviews List
:
Depends On:
Blocks: FE-ACCEPT 191015 191016 191017
  Show dependency treegraph
 
Reported: 2006-05-07 23:35 EDT by Robert Marcano
Modified: 2007-11-30 17:11 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-07-02 22:12:31 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Robert Marcano 2006-05-07 23:35:59 EDT
Spec URL: http://www.marcanoonline.com/downloads/fedora/package_submissions/subclipse/ganymed.spec
SRPM URL: http://www.marcanoonline.com/downloads/fedora/package_submissions/subclipse/ganymed-209-1.src.rpm
Description: Ganymed SSH-2 for Java is a library which implements the SSH-2 protocol in pure Java
(tested on J2SE 1.4.2 and 5.0). It allows one to connect to SSH servers from within
Java programs. It supports SSH sessions (remote command execution and shell access),
local and remote port forwarding, local stream forwarding, X11 forwarding and SCP.
There are no dependencies on any JCE provider, as all crypto functionality is included

Note:
This package is required by subclipse, a Subversion plugin for eclipse
Comment 1 Anthony Green 2006-05-08 00:17:48 EDT
Hi Robert - this is cool, thanks.

I'm no expert, but here are some comments based on the feedback I've received
from my review experiences...

* Why have all those macro definitions, conditional and otherwise, at the top
instead of just...
%define gcj_support     1
?

* I've been using %{?dist} in Release tags, like
Release:    1%{?dist}

* There's a preference to not use macros in Source0.  It's something somebody
should be able to wget directly.

* Missing '.' at the end of %description.

* Single line %post[un] bits should look like this...
%post -p %{_bindir}/rebuild-gcj-db
%postun -p %{_bindir}/rebuild-gcj-db
(rpmlint will complain about this)

Thanks!
Comment 2 Robert Marcano 2006-05-08 10:39:02 EDT
(In reply to comment #1)

> * Why have all those macro definitions, conditional and otherwise, at the top
> instead of just...
> %define gcj_support     1
> ?

umm Ben Konrath added that part to my initial SPEC, I just thougth it was just
to make easy to package it for RHEL

https://www.redhat.com/archives/fedora-devel-java-list/2006-April/msg00048.html

> 
> * I've been using %{?dist} in Release tags, like
> Release:    1%{?dist}
> 
> * There's a preference to not use macros in Source0.  It's something somebody
> should be able to wget directly.

umm then i need to update my other packages already on extras, 

> 
> * Missing '.' at the end of %description.
> 
> * Single line %post[un] bits should look like this...
> %post -p %{_bindir}/rebuild-gcj-db
> %postun -p %{_bindir}/rebuild-gcj-db
> (rpmlint will complain about this)
> 
> Thanks!
> 

The other ones are easy to do :-)
Comment 3 Ben Konrath 2006-05-26 13:01:43 EDT
(In reply to comment #2)
> (In reply to comment #1)
> 
> > * Why have all those macro definitions, conditional and otherwise, at the top
> > instead of just...
> > %define gcj_support     1
> > ?
> 
> umm Ben Konrath added that part to my initial SPEC, I just thougth it was just
> to make easy to package it for RHEL

I just copied what our other eclipse packages do. Andrew, do you have any
thoughts here?
Comment 4 Andrew Overholt 2006-05-26 13:11:40 EDT
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> > 
> > > * Why have all those macro definitions, conditional and otherwise, at the top
> > > instead of just...
> > > %define gcj_support     1
> > > ?
> > 
> > umm Ben Konrath added that part to my initial SPEC, I just thougth it was just
> > to make easy to package it for RHEL
> 
> I just copied what our other eclipse packages do. Andrew, do you have any
> thoughts here?

Yeah, I added that stuff so that we could do the gcj_support conditionally but
also for other RHEL-specific stuff.  Outside of the Eclipse SDK we probably
don't need it, though.  gcj_support itself should be enough.  Sorry.
Comment 6 Ben Konrath 2006-06-14 00:33:48 EDT
It seems we lost a bunch of useful comments here. It would be great if people
could re-post. Thanks.
Comment 7 Jason Tibbitts 2006-06-14 10:44:54 EDT
I have a complete archive; I will be making the status changes and adding the
comments back in.
Comment 8 Jason Tibbitts 2006-06-14 10:47:01 EDT
------- Additional Comments From tibbs@math.uh.edu  2006-06-11 01:56 EST -------
I was able to fix the debuginfo generation by adding the following to the end of
the %build section:

# Move source files to fix -debuginfo generation.
mv src/* .

It seems the file locations stored in the debug information didn't match the
actual locations of the files, so I just moved them so that they'd be found. 
There are still some errors lile:

cpio: ganymed-ssh2-build209/ch/ethz/ssh2/Connection$1$TimeoutState.java: No such
file or directory

Each of the errors mentions a file with a dollar sign; no such files exist in
the source.

One other thing to note: the page http://fedoraproject.org/wiki/NativeJava,
which I'm taking as the packaging guidelines here, mentions that the %post and
%postun scripts should look like:

if [ -x %{_bindir}/rebuild-gcj-db ]
then
  %{_bindir}/rebuild-gcj-db
fi

I don't really see the difference if the package that provides rebuild-gcj-db is
explicitly kept in with Require(post) and Require(postun), and the way this
package does things is simpler and matches what the core eclipse packages do.

So really the only issues I see are the documentation and the changelog revision
format.

------- Additional Comments From ville.skytta@iki.fi  2006-06-11 02:10 EST -------
(In reply to comment #7)
> [...] end of the %build section:
> 
> # Move source files to fix -debuginfo generation.
> mv src/* .

That sounds like something that is very likely to break --short-circuit builds.
 cp -pR would sound better than mv (but that's not a real fix either).

------- Additional Comments From tibbs@math.uh.edu  2006-06-11 02:38 EST -------
Good point.  Unfortunately I really have no idea what's really going on here; I
guess find-debuginfo.sh is extracting the full set of debug symbols from the
single .so file and trying to copy any referenced files into the -debuginfo
package.  But it's assuming some link between those filenames and the actual
pathnames in the build directory that it probably shoudn't be.  It doesn't break
for all packages, but it seems like it should break on any package that puts the
source tree in a subdirectory.

This seems on point:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=153247

The fix there is nastier, and exists but is commented out in the current Eclipse
-devel spec.

In any case, this seems simpler, doesn't copy the whole source tree and
shouldn't break short-circuit builds:

# Link source files to fix -debuginfo generation.
rm -f ch
ln -s src/ch

------- Additional Comments From bkonrath@redhat.com  2006-06-11 14:31 EST -------
(In reply to comment #9)
> # Link source files to fix -debuginfo generation.
> rm -f ch
> ln -s src/ch

Yeah that should work. find-debuginfo.sh seems to be broken for java packages
right now. It's on my list of things to investigate for FC6 but if someone wants
to help out here that would be great.

------- Additional Comments From robert@marcanoonline.com  2006-06-11 19:03 EST
-------
updated

http://www.marcanoonline.com/downloads/fedora/package_submissions/subclipse/ganymed.spec
http://www.marcanoonline.com/downloads/fedora/package_submissions/subclipse/ganymed-209-3.src.rpm

I applied the debuginfo workaround, (there are still warnings for the java inner
classes, maybe find-debuginfo.sh must ignore class with $ in their names)

Checked rpmlint warnings, the only no fixed warnings are
"wrong-file-end-of-line-encoding" for HTML files.

------- Additional Comments From tibbs@math.uh.edu  2006-06-13 00:26 EST -------
Generally we fix the line endings of HTML files as well.  You can just add it to
your sed call.

There is one issue I'd like to discuss, which is the package name.  Upstream
calls this "ganymed-ssh2", and their web site implies that they are actually
developing a software project entitled "ganymed".  I have no idea whether this
will be released to the public or whether we'd eventually package it, but I am
concerned that perhaps it would be a good idea to just name this package
"ganymed-ssh2" and avoid the potentential for confusion and future conflicts.

A full review turned up a couple more minor issues:

This package places files in %libdir/gcj/ganymed but doesn't own it.

You use the %{__sed} macro, but don't use %{__rm}, %{__ln_s}, or %{__install}. 
Consistency is important, so you should either switch to plain "sed" or
macrotize the rest of the spec.

* package meets naming and packaging guidelines.
X specfile is properly named and is cleanly written but does not use macros
consistently.
* dist tag is present.
* build root is correct.
* license field matches the actual license.
* license is open source-compatible.  License text included in package.
* source files match upstream:
   b0ee2f0feeb5f4ae02c2d5269fe6e1e0  ganymed-ssh2-build209.zip
* latest version is being packaged.
* BuildRequires are proper.
* package builds in mock (development, x86_64).
X rpmlint complains (eol encoding for faq/FAQ.html)
* final provides and requires are sane:
  ganymed-209-3.fc6.x86_64.rpm
   ganymed-209.jar.so()(64bit)
   ganymed = 209-3.fc6
  =
   /usr/bin/rebuild-gcj-db
   java-gcj-compat >= 1.0.33
   libgcj.so.7()(64bit)
   libz.so.1()(64bit)
* no shared libraries are present.
* package is not relocatable.
X owns the directories it creates.
* doesn't own any directories it shouldn't.
* no duplicates in %files.
* file permissions are appropriate.
* %clean is present.
* %check is not present; no test suite upstream.
* scriptlets present and are OK.
* code, not content.
* documentation is relatively small (30% of the package), so no -docs subpackage
is necessary.
* %docs are not necessary for the proper functioning of the package.
* no headers.
* no pkgconfig files.
* no libtool .la droppings.
* not a GUI app.

Comment 9 Jason Tibbitts 2006-06-21 13:59:46 EDT
Just to re-iterate: this package is really close.  First, we should settle the
issue of the name; a bit of consultation with upstream wouldn't be a bad idea.

Then this package needs to own %{_libdir}/gcj/%{name}.

Finally there's the %{__sed} macro issue, which is really more of a nitpick.
Comment 10 Robert Marcano 2006-06-21 15:24:25 EDT
I am ok with the name change, even the jar is named ganymed-ssh2*

i have noticed that Fedora Java packages separates javadoc to a different
package. *-javadoc and not *-doc. is this the convention?
Comment 11 Jason Tibbitts 2006-06-21 21:48:06 EDT
There is indeed plenty of prededent for packaging the contents of
/usr/share/javadoc/%{name}-${version} in a -javadoc subpackage.
Comment 12 Robert Marcano 2006-06-25 23:19:51 EDT
renamed and updated to ganymed-ssh2
fixed the remaining issues
created javadoc subpackage using the same Group that lucene-javadoc uses, but
rpmlint stills complain for "ganymed-ssh2-javadoc non-standard-group
Development/Documentation"

http://www.marcanoonline.com/downloads/fedora/package_submissions/subclipse/ganymed-ssh2.spec
http://www.marcanoonline.com/downloads/fedora/package_submissions/subclipse/ganymed-ssh2-209-4.src.rpm
Comment 13 Jason Tibbitts 2006-06-26 11:02:25 EDT
At this point I'm inclined to ignore rpmlint's whining about the Group.  A
survey of what's currently in Fedora shows most javadoc packages using
Development/Documentation, A few using Development/Java and two in Extras using
Documentation.  (Two more in Extras use Development/Documentation.)

The issues I had are fixed.  I hope to move on to the other packages which
depend on this one soon.

APPROVED


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