Bug 228960 - Review Request: java-1.5.0-gcj - JPackage compatibility layer for GCJ
Review Request: java-1.5.0-gcj - JPackage compatibility layer for GCJ
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Andrew Overholt
Fedora Package Reviews List
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-02-16 02:56 EST by Thomas Fitzsimmons
Modified: 2008-04-12 06:35 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-04-12 06:35:53 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
overholt: fedora‑review+
wtogami: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Thomas Fitzsimmons 2007-02-16 02:56:46 EST
Spec URL: http://fitzsim.org/packages/java-1.5.0-gcj.spec
SRPM URL: http://fitzsim.org/packages/java-1.5.0-gcj-1.5.0.0-1.src.rpm
Description: java-1.5.0-gcj installs directory structures, shell scripts and symbolic links to create a JPackage compatibility layer for GCJ.
Comment 1 Thomas Fitzsimmons 2007-02-16 03:15:47 EST
A few notes for the reviewer:

- this can't be built in mock until the GCJ with 1.5 support lands in Rawhide

- I simplified the name, removing the -compat since people have been confused by
  it (thinking that it was a legacy compatibility package similar to e.g.
  compat-libgcc-296)

- the rpmlint output is as clean as possible, but still claims some warnings
  and errors:

$ rpmlint SRPMS/java-1.5.0-gcj-1.5.0.0-1.src.rpm
E: java-1.5.0-gcj hardcoded-library-path in %{_prefix}/lib

  See comments in spec file -- this is needed to allow 64-bit JDK alternatives.

$ rpmlint RPMS/i386/java-1.5.0-gcj-1.5.0.0-1.i386.rpm
E: java-1.5.0-gcj only-non-binary-in-usr-lib

  These non-binaries are symlinks to binaries so they should be in /usr/lib.

W: java-1.5.0-gcj dangling-relative-symlink
/usr/share/java/gcj-endorsed/mx4j-remote.jar ../mx4j/mx4j-remote.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/bin/rmiregistry
../../../../../bin/grmiregistry
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/security/java.security
../../../../../security/classpath.security
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jaas-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jaas.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jdbc-stdext-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jdbc-stdext.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jsse-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jsse.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/bin/keytool ../../../../../bin/gkeytool
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jndi-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jndi.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/share/java/gcj-endorsed/mx4j.jar ../mx4j/mx4j.jar

  These are properly terminated by dependency packages.

W: java-1.5.0-gcj dangerous-command-in-%post ln
W: java-1.5.0-gcj dangerous-command-in-%trigger ln

  These are required to create compatibility symlinks.

$ rpmlint RPMS/i386/java-1.5.0-gcj-devel-1.5.0.0-1.i386.rpm
E: java-1.5.0-gcj-devel only-non-binary-in-usr-lib
W: java-1.5.0-gcj-devel no-documentation
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/jarsigner ../../../../bin/gjarsigner
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/java ../../../../bin/gij
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/jar ../../../../bin/fastjar
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/rmic ../../../../bin/grmic
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/rmiregistry ../../../../bin/grmiregistry
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/keytool ../../../../bin/gkeytool
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/javac ../../../../bin/ecj
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/javah ../../../../bin/gjavah
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/appletviewer ../../../../bin/gappletviewer
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj java-1.5.0-gcj-1.5.0.0
W: java-1.5.0-gcj-devel dangerous-command-in-%post ln
W: java-1.5.0-gcj-devel dangerous-command-in-%trigger ln

$ rpmlint RPMS/i386/java-1.5.0-gcj-javadoc-1.5.0.0-1.i386.rpm

$ rpmlint RPMS/i386/java-1.5.0-gcj-src-1.5.0.0-1.i386.rpm 
W: java-1.5.0-gcj-src no-documentation

  This is a sub-package; the documentation is in the base package.

W: java-1.5.0-gcj-src dangerous-command-in-%post ln
W: java-1.5.0-gcj-src dangerous-command-in-%postun rm
W: java-1.5.0-gcj-src dangerous-command-in-%trigger ln

  These are required to create and remove the src.zip compatibility symlink.
Comment 2 Andrew Overholt 2007-02-26 12:11:42 EST
I'll take this one.
Comment 3 Andrew Overholt 2007-03-07 16:55:08 EST
Initial review (more to come):

Comments:

 . I'd like to see a separate sinjdoc SRPM
 . around line 306 there are some "../../../../.." paths - can this be
   done in a less fragile manner?  If not, can we get a comment that
   specifies why/what we're doing?
 . I'm fine with the commented-out plugin sections but perhaps note why
   we've done this
 . why have the %define gccver 4.1.2 commented out?  is this due to the
   fact that it wasn't buildable until that version hit rawhide?

MUST:
* package is named appropriately
* it is legal for Fedora to distribute this
  . I guess my only concern here would be the use of the word java in
    the name but I guess that's okay?
? license field matches the actual license.
  . it would be nice if there were an actual webpage ... even just a
    simple page listing the license and with links to source drops
* license is open source-compatible.
* specfile name matches %{name}
* source and patches verified
  . it would be nice if the j-g-c patches could be rolled upstream; or
    commented if that's not possible
* summary and description okay
* correct buildroot
* %{?dist} used properly
* license text included in package and marked with %doc
? packages meets FHS (http://www.pathname.com/fhs/)
* rpmlint on <this package>.srpm gives no output
  E: java-1.5.0-gcj hardcoded-library-path in %{_prefix}/lib
  . justified in spec comments and in review request
* changelog fine
* Packager tag not used
* Vendor tag not used
* Distribution tag not used
* License and not Copyright used
* Summary tag does not end in a period
* if possible, replace PreReq with Requires(pre) and/or Requires(post)
* specfile is legible
* package successfully compiles and builds on at least x86
* BuildRequires are proper
* summary is a short and concise description of the package
* description expands upon summary
* make sure lines are <= 80 characters
  . just the first python macro line and a %files entry or two - fine
* specfile written in American English
* no -doc sub-package necessary
Comment 4 Andrew Overholt 2007-03-08 12:17:06 EST
A few more comments:

  . can you explain the need for the triggerins?  Is it just in case a
    newer set of gcc RPMs is installed and we need to have
    explicitly-versioned symlinks?
  . in %files javadoc, you have a comment that says that
    %{_javadocdir}/java will conflict with other packages owning it - is
    there no alternative entry for that directory?  Should there be?

* no static libs
* no rpath
* config files should marked with %config(noreplace)
* not a GUI app
* sub-packages fine (-devel, -src, etc.)
* macros used appropriately and consistently
 - ie. %{buildroot} and %{optflags} vs. $RPM_BUILD_ROOT and $RPM_OPT_FLAGS
* %makeinstall not used
* no locale data
* Requires(pre,post) fine
* package not relocatable
* package contains code
* package owns all directories and files
* no %files duplicates
* file permissions okay; %defattrs present
* %clean present
* %doc files do not affect runtime
* not a webapp
? verify the final provides and requires of the binary RPMs

Once we fix the GIJ_VERSION at the top of the specfile, I think the requires
will be okay (ie. the >= 4.0.0 will become the correct version).  Do you think
we should explicitly require the version and not have a >= for it?

$ rpm -qp --requires
/home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-1.5.0.0-1.i386.rpm
/bin/bash  
/bin/sh  
/bin/sh  
/bin/sh  
/usr/bin/gcj-dbtool  
/usr/bin/gcj-dbtool  
/usr/bin/gij  
/usr/bin/gij  
/usr/bin/rebuild-gcj-db  
/usr/bin/rebuild-gcj-db  
/usr/bin/rebuild-security-providers  
/usr/bin/rebuild-security-providers  
/usr/sbin/alternatives  
/usr/sbin/alternatives  
config(java-1.5.0-gcj) = 1.5.0.0-1
jpackage-utils >= 1.7.3
libgcj >= 4.0.0
mx4j >= 3.0.1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1

$ rpm -qp --requires
/home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-devel-1.5.0.0-1.i386.rpm
/bin/sh  
/bin/sh  
/bin/sh  
/bin/sh  
/usr/bin/env  
/usr/bin/gcj  
/usr/sbin/alternatives  
/usr/sbin/alternatives  
eclipse-ecj >= 3.2.1
gcc-java >= 4.0.0
java-1.5.0-gcj = 1.5.0.0-1
java_cup >= 0.10
python >= 2.5
python(abi) = 2.5
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1

$ rpm -qp --requires
/home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-src-1.5.0.0-1.i386.rpm
java-1.5.0-gcj = 1.5.0.0-1
libgcj-src >= 4.0.0
/usr/bin/gij  
rpmlib(VersionedDependencies) <= 3.0.3-1
/bin/sh  
/bin/sh  
/bin/sh  
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1

$ rpm -qp --requires
/home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-javadoc-1.5.0.0-1.i386.rpm
java-1.5.0-gcj = 1.5.0.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1

* run rpmlint on the binary RPMs

$ rpmlint /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-1.5.0.0-1.i386.rpm
E: java-1.5.0-gcj only-non-binary-in-usr-lib
W: java-1.5.0-gcj dangling-relative-symlink
/usr/share/java/gcj-endorsed/mx4j-remote.jar ../mx4j/mx4j-remote.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/bin/rmiregistry
../../../../../bin/grmiregistry
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/security/java.security
../../../../../security/classpath.security
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jaas-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jaas.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jdbc-stdext-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jdbc-stdext.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jsse-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jsse.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/bin/keytool ../../../../../bin/gkeytool
W: java-1.5.0-gcj dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jndi-1.5.0.0.jar
../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jndi.jar
W: java-1.5.0-gcj dangling-relative-symlink
/usr/share/java/gcj-endorsed/mx4j.jar ../mx4j/mx4j.jar
W: java-1.5.0-gcj dangerous-command-in-%post ln
W: java-1.5.0-gcj dangerous-command-in-%trigger ln

$ rpmlint /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-devel-1.5.0.0-1.i386.rpm 
E: java-1.5.0-gcj-devel only-non-binary-in-usr-lib
W: java-1.5.0-gcj-devel no-documentation
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/jarsigner ../../../../bin/gjarsigner
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/java ../../../../bin/gij
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/jar ../../../../bin/fastjar
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/rmic ../../../../bin/grmic
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/rmiregistry ../../../../bin/grmiregistry
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/keytool ../../../../bin/gkeytool
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/javac ../../../../bin/ecj
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/javah ../../../../bin/gjavah
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/appletviewer ../../../../bin/gappletviewer
W: java-1.5.0-gcj-devel dangling-relative-symlink
/usr/lib/jvm-exports/java-1.5.0-gcj java-1.5.0-gcj-1.5.0.0
W: java-1.5.0-gcj-devel dangerous-command-in-%post ln
W: java-1.5.0-gcj-devel dangerous-command-in-%trigger ln

$ rpmlint /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-javadoc-1.5.0.0-1.i386.rpm 
$ rpmlint /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-src-1.5.0.0-1.i386.rpm 
W: java-1.5.0-gcj-src no-documentation
W: java-1.5.0-gcj-src dangerous-command-in-%post ln
W: java-1.5.0-gcj-src dangerous-command-in-%postun rm
W: java-1.5.0-gcj-src dangerous-command-in-%trigger ln


SHOULD:
* package should include license text in the package and mark it with %doc
* package should build on i386
? package should build in mock
  I haven't tried
Comment 5 Thomas Fitzsimmons 2007-03-11 04:49:01 EDT
(In reply to comment #3)
> Initial review (more to come):
> 
> Comments:
> 
>  . I'd like to see a separate sinjdoc SRPM

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=231732

I added a bootstrap macro for use before sinjdoc is built.

>  . around line 306 there are some "../../../../.." paths - can this be
>    done in a less fragile manner?

The result is actually more robust, but I agree that counting ../'s is ugly.

> If not, can we get a comment that specifies why/what we're doing?

I added a new macro to make the absolute-to-relative conversion automatic and
documented it at the top of the spec file.

>  . I'm fine with the commented-out plugin sections but perhaps note why
>    we've done this

I uncommented those sections, wrapped them with an enable_plugin macro and added
a comment at the top of the spec file.

>  . why have the %define gccver 4.1.2 commented out?  is this due to the
>    fact that it wasn't buildable until that version hit rawhide?

Yes that was the reason.  I've uncommented it.

> 
> MUST:
> * package is named appropriately
> * it is legal for Fedora to distribute this
>   . I guess my only concern here would be the use of the word java in
>     the name but I guess that's okay?
> ? license field matches the actual license.
>   . it would be nice if there were an actual webpage ... even just a
>     simple page listing the license and with links to source drops

OK, probably a good idea -- I'll look into this, but let's not let it hold up
the review.

> * license is open source-compatible.
> * specfile name matches %{name}
> * source and patches verified
>   . it would be nice if the j-g-c patches could be rolled upstream;

Good point, done.

>     or commented if that's not possible
> * summary and description okay
> * correct buildroot
> * %{?dist} used properly
> * license text included in package and marked with %doc
> ? packages meets FHS (http://www.pathname.com/fhs/)

Yes, it does, except maybe tools.jar, which is architecture-independent data and
should therefore be installed under /usr/share.  That said, I'm currently
working upstream to replace tools.jar with a symbolic link to libgcj-tools.jar,
which will bring the package into full compliance.

> * rpmlint on <this package>.srpm gives no output
>   E: java-1.5.0-gcj hardcoded-library-path in %{_prefix}/lib
>   . justified in spec comments and in review request
> * changelog fine
> * Packager tag not used
> * Vendor tag not used
> * Distribution tag not used
> * License and not Copyright used
> * Summary tag does not end in a period
> * if possible, replace PreReq with Requires(pre) and/or Requires(post)
> * specfile is legible
> * package successfully compiles and builds on at least x86
> * BuildRequires are proper
> * summary is a short and concise description of the package
> * description expands upon summary
> * make sure lines are <= 80 characters
>   . just the first python macro line and a %files entry or two - fine
> * specfile written in American English
> * no -doc sub-package necessary

(In reply to comment #4)
> A few more comments:
> 
>   . can you explain the need for the triggerins?  Is it just in case a
>     newer set of gcc RPMs is installed and we need to have
>     explicitly-versioned symlinks?

Yes.  java-1.5.0-gcj maintains versionless symlinks to files in gcc's versioned
directories.  If gcc's version changes underneath java-1.5.0-gcj, then the
symlinks need to be recreated, since the old ones would point to non-existent
directories.

>   . in %files javadoc, you have a comment that says that
>     %{_javadocdir}/java will conflict with other packages owning it - is
>     there no alternative entry for that directory?  Should there be?

The original comment wasn't precise.  I wrote a new one to clarify:

# A JPackage that "provides" this directory will, in its %post script,
# remove the existing directory and install a new symbolic link to its
# versioned directory.  For Fedora we want clear file ownership so we
# make java-1.5.0-gcj-javadoc own this file.  Installing the
# corresponding JPackage over java-1.5.0-gcj-javadoc will work but
# will invalidate this file.
%doc %{_javadocdir}/java

> 
> * no static libs
> * no rpath
> * config files should marked with %config(noreplace)
> * not a GUI app
> * sub-packages fine (-devel, -src, etc.)
> * macros used appropriately and consistently
>  - ie. %{buildroot} and %{optflags} vs. $RPM_BUILD_ROOT and $RPM_OPT_FLAGS
> * %makeinstall not used
> * no locale data
> * Requires(pre,post) fine
> * package not relocatable
> * package contains code
> * package owns all directories and files
> * no %files duplicates
> * file permissions okay; %defattrs present
> * %clean present
> * %doc files do not affect runtime
> * not a webapp
> ? verify the final provides and requires of the binary RPMs
> 
> Once we fix the GIJ_VERSION at the top of the specfile, I think the requires
> will be okay (ie. the >= 4.0.0 will become the correct version).  Do you think
> we should explicitly require the version and not have a >= for it?

No, the >= is necessary.  Otherwise we'd have to release java-1.5.0-gcj in
lock-step with gcc releases.

> 
> $ rpm -qp --requires
> /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-1.5.0.0-1.i386.rpm
> /bin/bash  
> /bin/sh  
> /bin/sh  
> /bin/sh  
> /usr/bin/gcj-dbtool  
> /usr/bin/gcj-dbtool  
> /usr/bin/gij  
> /usr/bin/gij  
> /usr/bin/rebuild-gcj-db  
> /usr/bin/rebuild-gcj-db  
> /usr/bin/rebuild-security-providers  
> /usr/bin/rebuild-security-providers  
> /usr/sbin/alternatives  
> /usr/sbin/alternatives  
> config(java-1.5.0-gcj) = 1.5.0.0-1
> jpackage-utils >= 1.7.3
> libgcj >= 4.0.0
> mx4j >= 3.0.1
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(VersionedDependencies) <= 3.0.3-1
> 
> $ rpm -qp --requires
> /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-devel-1.5.0.0-1.i386.rpm
> /bin/sh  
> /bin/sh  
> /bin/sh  
> /bin/sh  
> /usr/bin/env  
> /usr/bin/gcj  
> /usr/sbin/alternatives  
> /usr/sbin/alternatives  
> eclipse-ecj >= 3.2.1
> gcc-java >= 4.0.0
> java-1.5.0-gcj = 1.5.0.0-1
> java_cup >= 0.10
> python >= 2.5
> python(abi) = 2.5
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(VersionedDependencies) <= 3.0.3-1
> 
> $ rpm -qp --requires
> /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-src-1.5.0.0-1.i386.rpm
> java-1.5.0-gcj = 1.5.0.0-1
> libgcj-src >= 4.0.0
> /usr/bin/gij  
> rpmlib(VersionedDependencies) <= 3.0.3-1
> /bin/sh  
> /bin/sh  
> /bin/sh  
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(CompressedFileNames) <= 3.0.4-1
> 
> $ rpm -qp --requires
> /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-javadoc-1.5.0.0-1.i386.rpm
> java-1.5.0-gcj = 1.5.0.0-1
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rpmlib(VersionedDependencies) <= 3.0.3-1
> 
> * run rpmlint on the binary RPMs
> 
> $ rpmlint /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-1.5.0.0-1.i386.rpm
> E: java-1.5.0-gcj only-non-binary-in-usr-lib
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/share/java/gcj-endorsed/mx4j-remote.jar ../mx4j/mx4j-remote.jar
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/bin/rmiregistry
> ../../../../../bin/grmiregistry
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/security/java.security
> ../../../../../security/classpath.security
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jaas-1.5.0.0.jar
> ../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jaas.jar
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jdbc-stdext-1.5.0.0.jar
> ../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jdbc-stdext.jar
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jsse-1.5.0.0.jar
> ../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jsse.jar
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre/bin/keytool ../../../../../bin/gkeytool
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/lib/jvm-exports/java-1.5.0-gcj-1.5.0.0/jndi-1.5.0.0.jar
> ../../jvm/java-1.5.0-gcj-1.5.0.0/jre/lib/jndi.jar
> W: java-1.5.0-gcj dangling-relative-symlink
> /usr/share/java/gcj-endorsed/mx4j.jar ../mx4j/mx4j.jar
> W: java-1.5.0-gcj dangerous-command-in-%post ln
> W: java-1.5.0-gcj dangerous-command-in-%trigger ln
> 
> $ rpmlint /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-devel-1.5.0.0-1.i386.rpm 
> E: java-1.5.0-gcj-devel only-non-binary-in-usr-lib
> W: java-1.5.0-gcj-devel no-documentation
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/jarsigner ../../../../bin/gjarsigner
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/java ../../../../bin/gij
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/jar ../../../../bin/fastjar
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/rmic ../../../../bin/grmic
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/rmiregistry ../../../../bin/grmiregistry
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/keytool ../../../../bin/gkeytool
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/javac ../../../../bin/ecj
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/javah ../../../../bin/gjavah
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/appletviewer ../../../../bin/gappletviewer
> W: java-1.5.0-gcj-devel dangling-relative-symlink
> /usr/lib/jvm-exports/java-1.5.0-gcj java-1.5.0-gcj-1.5.0.0
> W: java-1.5.0-gcj-devel dangerous-command-in-%post ln
> W: java-1.5.0-gcj-devel dangerous-command-in-%trigger ln
> 
> $ rpmlint
/home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-javadoc-1.5.0.0-1.i386.rpm 
> $ rpmlint /home/andrew/rpmbuild/RPMS/i386/java-1.5.0-gcj-src-1.5.0.0-1.i386.rpm 
> W: java-1.5.0-gcj-src no-documentation
> W: java-1.5.0-gcj-src dangerous-command-in-%post ln
> W: java-1.5.0-gcj-src dangerous-command-in-%postun rm
> W: java-1.5.0-gcj-src dangerous-command-in-%trigger ln
> 
> 
> SHOULD:
> * package should include license text in the package and mark it with %doc
> * package should build on i386
> ? package should build in mock
>   I haven't tried

I'll run a mock build and post the results.

The new spec and SRPM files are posted at the same URLs.
Comment 6 Thomas Fitzsimmons 2007-03-11 11:38:36 EDT
With bootstrap defined to 1 the mock build succeeded.
Comment 7 Rex Dieter 2007-03-11 12:33:11 EDT
(re)setting review flags, (re)assigned-to (to reviewer).
Comment 8 Andrew Overholt 2007-03-14 12:39:10 EDT
Thanks for the clarifications and comments, Tom.

APPROVED
Comment 9 Warren Togami 2007-03-14 15:22:24 EDT
http://fedoraproject.org/wiki/CVSAdminProcedure
Could you please use the standard template so it is explicitly clear what
exactly you want and where?  Set fedora-cvs back to ? when you do so.
Comment 10 Thomas Fitzsimmons 2007-03-14 15:59:59 EDT
New Package CVS Request
=======================
Package Name: java-1.5.0-gcj
Short Description: JPackage compatibility layer for GCJ
Owners: fitzsim@redhat.com
Branches:
InitialCC: overholt@redhat.com,aph@redhat.com
Comment 11 Jens Petersen 2007-03-15 02:33:38 EDT
done
Comment 12 Thomas Fitzsimmons 2007-03-21 09:20:28 EDT
Package Change Request
======================
Package Name: java-1.5.0-gcj

Remove from cvs.fedora.redhat.com:/cvs/extras, since this package has been added
to cvs.devel.redhat.com:/cvs/dist.
Comment 13 Jens Petersen 2007-03-21 23:54:29 EDT
Please see:
http://fedoraproject.org/wiki/PackageMaintainers/PackageEndOfLife
Comment 14 Warren Togami 2007-03-22 09:49:05 EDT
Jens, this package is a notable exception to the dead.package rule, because it
didn't live in Extras for very long.  Complete removal from /cvs/extras in this
case would make it simpler when the two CVS's merge.

I intend on dealing with this myself when I get back from the doctor later today.
Comment 15 Peter Lemenkov 2008-01-22 07:34:21 EST
Is it OK to close this Review Request?
Comment 16 Peter Lemenkov 2008-04-12 06:35:53 EDT
OK, closing this bug.

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