Bug 208613 - Review Request: libgcj - separate libgcj srpm
Summary: Review Request: libgcj - separate libgcj srpm
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2006-09-29 17:26 UTC by Tom Tromey
Modified: 2014-08-11 05:46 UTC (History)
9 users (show)

Clone Of:
Last Closed: 2007-02-16 01:39:30 UTC

Attachments (Terms of Use)

Description Tom Tromey 2006-09-29 17:26:12 UTC
Spec URL: http://people.redhat.com/~tromey/libgcj-srpm/libgcj41.spec
SRPM URL: http://people.redhat.com/~tromey/libgcj-srpm/libgcj-4.1.1-20.src.rpm


This is a separate source RPM for libgcj.  The idea is to allow pushing
libgcj updates separately from GCC updates, enabling faster bug fix

There's a separate patch for the GCC spec file.  I've sent a version of it
to Jakub, but it needs an update.  This patch reduces the build requirements
of GCC; for instance we no longer need gtk to build the GCC rpms.

There is a helper script in the libgcj SRPM to create the initial source
tar from the gcc srpm.  I think maintenance-wise the best approach is to
start with the current gcc sources and then apply libgcj patchese as needed.
Rebasing to a new gcc is simply and automated with the script.

With my patch the gcc spec file still builds libgcj.  This lets us continue
to run 'make check' to verify that compiler changes don't break the libgcj
build.  However, the libgcj built here has reduced functionality (e.g., 
no AWT peers -- this is why we can remove build requirements) and is not

With this change, fastjar and grepjar move from the libgcj RPM into the
gcc RPM.

Comment 1 Bill Nottingham 2006-09-29 17:53:46 UTC
I presume this is targeted at FC-7?

Comment 2 Thomas Fitzsimmons 2006-09-29 19:58:19 UTC
(In reply to comment #1)
> I presume this is targeted at FC-7?

No, Jesse wanted this for FC-6.

Comment 3 Bill Nottingham 2006-09-29 20:05:31 UTC
Huh? It seems way late in the game for this.

Comment 4 Tom Tromey 2006-12-18 20:05:28 UTC
I'd like to request a review for this for FC-7.

Comment 5 Jesse Keating 2006-12-18 20:19:10 UTC
With our intent to move all packages externally, can this split wait until then?

Comment 6 Andrew Overholt 2007-01-12 18:45:36 UTC
It would be nice if it could happen before the split so that we can start
testing the libgcj bits sooner rather than later.

Comment 7 Andrew Overholt 2007-02-14 19:21:05 UTC
Is this going to happen?  From my perspective, the pros/cons are:

. no need to bug Jakub on libgcj requests
  -> this is the biggie IMO.  I know I feel bad when I want one small class
library fix and it requires getting Jakub to spend time spinning all of gcc
. no need to wait for entire gcc test suite to complete
. can potentially push java-gcj-compat directly into libgcj SRPM
. distro compiler changes independently of java class library => can lead to
more bugfixes for the latter without potentially destabilizing the former

. skew between the two SRPMS?
. no real upstream source for the libgcj SRPM's Source as it's derived from the
gcc SRPM
. will patches need to be maintained in multiple places?
. will we be duplicating test suite running?

Comment 8 Thomas Fitzsimmons 2007-02-14 19:29:52 UTC
I think this should happen so that we have faster turnaround time for pure-class
library libgcj bugs.  Jakub, do you think this is reasonable?  As Andrew said,
it doesn't seem reasonable to ask Jakub to do a multi-hour respin of the gcc
rpms for the backport of a single patch from GNU Classpath.

That said, if this is going to happen for Fedora 7 I'm saying right now that
we'll need an extension past the February 20th freeze.  Jesse, is there a
procedure for requesting such an extension?

Comment 9 Jesse Keating 2007-02-14 19:41:46 UTC
Nothing official :/

Comment 10 Thomas Fitzsimmons 2007-02-14 22:05:14 UTC
I talked this over with Jakub, Tom Tromey and Andrew Overholt, and we came up
with an alternate proposal.

The main goal of splitting libgcj was to get class library fixes out to Fedora
users faster.  Jakub has explained to me that there are problems with that goal
for Fedora updates: 1) we don't want to force users to download megabytes of
updates very often (35M for a libgcj update (no debuginfo), 78M for a full gcc
update (no debuginfo) and 2) we don't want to force re-prelinking more often
than necessary (a libgcj update forces re-prelinking of all libraries linked to
it (uses up to 10 minutes of CPU time according to Jakub).

He has suggested that we instead use updates-testing as a channel for fast
delivery of libgcj updates to users.  In this arrangement, the process for
getting a class library fix out to Fedora users would be:

1) fix GNU Classpath upstream
2) backport the fix to redhat/gcc-4_1-branch in the GCC SVN repository
3) send mail to Jakub requesting a new gcc build in Fedora 7 updates-testing

Normal users would get the fix in the next gcc update, which would happen at a
frequency of once every one or two months.

Users who want a fix immediately could do:

yum --enablerepo=updates-testing update libgcj

Jakub would be prepared to do these updates-testing gcc builds as long as they
weren't needed more often than once per week.

The remaining concerns are:

1) Jakub is too busy on a given week to build a requested fix into

Jakub, if this were the case, would it be possible for one of us from the Java
group to do the build, after you've approved the proposed changes?

2) A class library bug that should be fixed for all libgcj users (not just those
   aware of/able-to-use updates-testing) is found early in the one-to-two month
   gcc update cycle

I don't have a good answer for this one.  Those users will have to wait the one
or two months for that update.

3) gcc will still have the same large set of BuildRequires

Does releng still consider this an issue?

4) The potential for merging java-1.5.0-gcj into libgcj

Jakub tells me he's open to accepting java-1.5.0-gcj constructs into the libgcj
sub-rpm of the gcc spec file (alternatives, new SourceNs, etc.) so this merge
can be done independent of the libgcj split.

Do people think this approach is acceptable/better than the split libgcj approach?

Comment 11 Dennis Gilmore 2007-02-14 22:09:43 UTC
in the new world we were not going to let packages linger in updates-testing 
for that long.  I guess we could exclude glibc for longer time periods. 

Comment 12 Thomas Fitzsimmons 2007-02-14 23:02:12 UTC
(In reply to comment #11)
> in the new world we were not going to let packages linger in updates-testing 
> for that long.  I guess we could exclude glibc for longer time periods.

What about gcc?

Comment 13 Jakub Jelinek 2007-02-15 15:41:41 UTC
Wrt concerns:
1) yes, I guess it would be possible if we come up with some simple rules,
e.g. such builds would be possible only if there weren't any changes checked
in on the branch other than in libjava/ since the last gcc rpm built by myself
and it used a release tag with dot inside (the former because things being
checked there means a new gcc from me is in the works, the latter e.g. to not
get out of sync e.g. with rawhide gcc)
3) even with separate libgcj the BuildRequires of gcc couldn't be trimmed down,
as building untested gcj/jc1 is not an option - even with separate libgcj gcc
build would need to build libgcj itself and run tests against it, only it
wouldn't be installed by gcc subpackages.

Comment 14 Thomas Fitzsimmons 2007-02-16 01:39:30 UTC
OK, I think that settles it.  Though it would be nice to satisfy concern 2) as
well, the simplicity of this compromise probably outweighs the downsides of a
split libgcj.  I'm closing this WONTFIX.

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