Binary package for icedtea6

Quite a few people have reported problems building icedtea6 or needed dependencies on our IRC channel and as the build is quite resource intensive, Caster has now made binary builds for icedtea6. The package is available via layman using:

layman -a java-overlay
emerge icedtea6-bin

The binary package should also make it easier to bootstrap the from source build. The binaries are built in stable chroots so they should run for our stable users too. Please report any problems to https://bugs.gentoo.org with [java-overlay] in the subject. For amd64 users this should be the easiest way to get a 64 bit browser plugin.

Stable Candidates Feed Now With Bug Counts

http://gentoo.petteriraty.eu/stable.rss

I updated the Stable Candidates bug feed to have open bug numbers for ${CATEGORY}/${PN} and ${PN}. It will of course be a little behind actual bugzilla data as the feed is updated daily but that’s good enough in my opinion. I think the next item for the feed is to add a link you can use to file the actual bug. That should make it dead simple for you to file stable bugs on stuff you use.

RSS feed for stable candidates

In the comments of my last blog post someone asked for an automatically generated list of stable candidates. I have now created a RSS2 feed that shows ebuilds that have only ~arch keywords and have been in the tree for a month. The feed is updated daily and it keep entries for 7 days. It does not currently work in Thunderbird because Thunderbird seems to be buggy with feed items that don’t link to anything. Improvement suggestions are welcome. I should at least parse the bugzilla open bugs page to show how many bugs match category/pn.

You can find the feed here:
http://gentoo.petteriraty.eu/stable.rss

Challenge to all users

Have you ever been thinking about how you could contribute to Gentoo? Here’s a quick and easy way. If you are using stable, take a look at your package.keywords file and file stable request bugs for all the entries there that satisfy the requirements for being marked stable. Meaning there are no open regressions in http://bugs.gentoo.org and the ebuild has been in the tree for at least a month. Even better is if you make filing these bugs a regular habit. I would imagine that most developers are running ~arch so packages that are not that actively maintained might start to fall behind in stable.

Broke java-utils-2.eclass sourcing for a couple minutes

If you see something like:

 * ebuild.sh, line 1239:  Called qa_source '/usr/portage/eclass/java-pkg-2.eclass'                    
 * ebuild.sh, line   37:  Called source '/usr/portage/eclass/java-pkg-2.eclass'                       
 * java-pkg-2.eclass, line   10:  Called inherit 'java-utils-2'                                       
 * ebuild.sh, line 1239:  Called die                                                                  
 * The specific snippet of code:                                                                      
 * qa_source "$location" || die "died sourcing $location in inherit()"                                
 * The die message:                                                                                   
 * died sourcing /usr/portage/eclass/java-utils-2.eclass in inherit() 

Then it was me. It seems emerge doesn’t like if $? is set to something else than 0 after an eclass has been sourced. If you use /usr/bin/ebuild then Portage doesn’t die. I filed https://bugs.gentoo.org/show_bug.cgi?id=239253 for this inconsistency. So because of this an eclass can’t end with some conditional like

[[ ${FOO} ]] && FOO=laa

Migrating to EAPI 2 and econf

Just a reminder to everyone that when you migrate to EAPI 2 in order to use use dependencies remember to migrate your src_compile function too or you will be running econf twice if you have a custom src_compile function. econf will first be run by the default src_configure function and then by your custom src_compile function. Hopefully we will get a QA check for this in the near future.

Java virtuals

Currently we have packages like sun-jaf that are reference implementations for a JSR and have since been incorporated into the JRE (>=1.6). So before introducing Java virtuals ebuild developers had to either depend on sun-jaf or a new enough JDK version. Tomcat used the java5 use flag to select between the two options. This of course is not ideal for users and as such we added support for virtuals into java-config. We are still in the early stages of converting stuff to virtuals and let’s see how it takes as the work is quite boring. Any way here is a demonstration of the jaf virtual in use:

betelgeuse@pena ~ $ GENTOO_VM="sun-jdk-1.5" java-config -p jaf
/usr/share/sun-jaf/lib/activation.jar
betelgeuse@pena ~ $ GENTOO_VM="sun-jdk-1.6" java-config -p jaf

betelgeuse@pena ~ $

jaf was introduced in 1.6 so in the first case you need the separate package and in the second case there is no point in polluting the classpath with extra stuff as we already have it in the JDK. On the ebuild side you use the same functions as with normal packages but you have to add the –virtual parameter to java-pkg_jar-from and java-pkg_getjar calls so that they don’t record individual jars.

FOSS Java status on Gentoo

As the Gentoo Java lead I should probably comment on a couple of recent blog entries by Andrew John Hughes.

http://blog.fuseyism.com/index.php/2008/04/18/gentoo-and-free-java/

I have been trying to recruit a maintainer for FOSS Java stack for ages but no-one has stepped up. Unfortunate state of affairs but such is life with volunteer based distributions. I guess the fact that no-one has stepped up somewhat reflects on the needs of our users too. But any way gnu-classpath-0.97 has been stable for a while for x86 and amd64 in contrast to the 0.90 version stated in his blog.

http://blog.fuseyism.com/index.php/2008/04/27/releases-releases/

“The Java Gentoo developers seem to be on a strange mission to support only the proprietary Java solutions”

Well geki ( https://overlays.gentoo.org/proj/java/log/java-overlay/dev-java/icedtea ) is not a Gentoo developer so I don’t know who you are referring to and him being the maintainer of the GCJ overlay I don’t think he fits the bill either. If someone provided an ebuild for IcedTea that passed our QA standards, it could go in today. Otherwise it will get done after I have finished other stuff on my Gentoo work queue. I just finished adding a couple new virtuals for jaf and jmx. When packages are switched to use the virtuals it will remove the need to have sun-* or gnu-* packages installed for stuff that the JRE provides when using the latest JDKs.

Going to FOSDEM

I will be at FOSDEM again this year. If you want to meet me in person your best bet is the Free Java devroom http://www.fosdem.org/2008/schedule/devroom/freejava. I will also give a short talk Sunday morning about Java packaging on Gentoo so if you are interested in that, come listen. I will be arriving Saturday morning so you won’t find me at the beer event tomorrow.

Becoming Gentoo staff

Just a reminder to all the Gentoo users out there that you don’t have to know anything about ebuild writing to become a Gentoo developer. To become Gentoo staff for things like GMN, PR and Devrel you only need to take the staff quiz and of course in general you don’t even need to be developer to help out. If you feel like helping out just contact the projects/developers in question by mail for example. If you don’t get any response or don’t find out who to contact from our project pages, just mail recruiters (at) gentoo (dot) org and we will get you in touch with the right people.