On Thu, Oct 24, 2013 at 11:11 AM, Jon VanAlten <jvanalte@redhat.com> wrote:
Hi Java folks,

The current netty in Fedora is 3.6.3.  There are newer updates to 3.X series
upstream but also for some time now 4.X series has been available.  In the
spirit of keeping the most up to date version in our distro, I aim/plan to
update this in rawhide in the coming weeks.  However, there have been some
changes upstream that any maintainers of packages which depend on netty will
need to be aware of.  Those packages are:

async-http-client
bookkeeper
eclipse-m2e-core
hadoop
hornetq
littleproxy
resteasy
thermostat
zookeeper

In addition, we currently have a compat netty31 package, which is used only
by the eucalyptus package.  I'd also like to encourage the maintainer of
eucalyptus to look into porting to the newer netty, so this longstanding
compat package can be retired.  (Well, there are other packages that
"repoquery --whatrequires netty31" returns, but inspection of .spec shows
that they only Require: netty without a version; only eucalyptus has an
explicit requirement for netty31.)

So, what are the implications of this update?  Well, upstream netty has
moved from being a jboss project to being independent at netty.io, and has
changed their package namespace accordingly.  In addition, some key API
classes have slightly changed names.  Finally, and I haven't looked deep at
this part yet, but it seems there are some other incompatible API changes.
Any package currently using netty will *at least* require a search-and-
replace for package/class name changes, and may require more indepth fixes
in order to work with the most recent upstream releases.

The bulk of the changes came with the 4.0 release, and conveniently enough
upstream made a single commit updating most of their example code at once[1]
which is likely to be a good reference for anyone porting an application.

I'll be starting on this work around mid-November.  My plan is to first
create package of the newest netty release at the time but not push to
rawhide just yet, rather make srpm available to interested maintainers via
other means.  Then, as co-maintainer of thermostat, I will help to port that
package to the new netty API.  I hope around this same time maintainers of
other packages will do same.  To me, this will act as "sanity check" for the
updated netty package, and if this check is successful, I'll then push the
netty changes to rawhide.  If all goes well, this should be done by the end
of November (modulo a week or so).

Please, if you have any concerns with this plan, speak up!  Otherwise, wait
for my email in a few weeks with .srpm to play with :)

cheers,
jon

P.S. I *really* hope that at the end of all this we are not left with *two*
compat packages for netty, ie I hope that either eucalyptus is able to port
or that all of the others are able to port, or even better both of the
above.

I'm currently working on making Eucalyptus 3.3.2 available in Fedora 18/19, and this version still requires the netty31 compat package. Version 3.4.0 of Eucalyptus, which was just released, had its dependency on netty updated to 3.6.6. It required a fair amount of internal changes to make that update possible, so updating yet again to netty 4.0 may be difficult. I'll be starting work on Eucalyptus 3.4.0 in rawhide soon and can try using your srpm when available. So, netty 4.0 is a maybe and netty31 won't be needed for Eucalyptus in rawhide.
 

[1] https://github.com/netty/netty/commit/8237afff64509520865c08bf4f5fd130e06aed92
--
java-devel mailing list
java-devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/java-devel