Hi,

I've tried to create a binary package descriptor of M2 stable snapshot for 
Gentoo/x86
(as it is simpler than building from source, and the source snapshot is not 
available anyway).
It seems to install and work nicely, at least I am now trying to run the build 
process using
harmony jre, and it hasn't failed yet. I will see how long I can use it :)

Instruction on how to try out:

0) configure portage overlay

        $ echo 'PORTDIR_OVERLAY="/usr/local/portage"' >> /etc/make.conf

1) put the ebuild files in place

        $ mkdir -p /usr/local/portage/dev-java/harmony-jre-bin/files
        $ mv harmony-jre-bin-0.02.ebuild 
/usr/local/portage/dev-java/harmony-jre-bin
        $ mv harmony-jre-bin.env 
/usr/local/portage/dev-java/harmony-jre-bin/files

2) regenerate the ebuild manifest and digest files

        $ ebuild 
/usr/local/portage/dev-java/harmony-jre-bin/harmony-jre-bin-0.02.ebuild digest

3) configure keywords to accept unstable package

        $ echo 'dev-java/harmony-jre-bin ~x86' >> /etc/portage/package.keywords

4) install the package
        
        $ emerge harmony-jre-bin

5) make sure that the harmony-jre is in the list of installed VMs, and choose 
it as default

        $ java-config -L
        $ java-config --set-system-vm=harmony-jre-bin
        $ java -version



Some questions

Where would be the best to check in the Gentoo ebuild files?


Minor nits, that can confuse potential end users

1) ant complains that it cannot find tools.jar
This is probably because it is JRE snapshot rather than JDK

2) each run java prints
'The GC did not provide gc_add_weak_root_set_entry()'
This is trivial issue, and AFAIK weak root support is scheduled for GC_v5,
but anyway, we'd better make sure such trivial issues are fixed in packaged 
builds.

3) 'java -version' output is somewhat noisy, and has some not-to-the-point 
information,
e.g. end user is unlikely to want to know that launcher is separate component 
in Harmony

4) Gentoo is not keen to have a version identifier 'M2', so I changed it to 
'0.02'. It would be nice
if our release numbering would be compatible with packaging systems without 
such changes,
to reduce confusion.

# in public domain

inherit java-vm-2

DESCRIPTION="Java SE 5 JDK under the Apache License v2"

HOMEPAGE="http://harmony.apache.org";
SRC_URI="http://people.apache.org/builds/harmony/milestones/M2/apache-harmony-jre-r551077-linux-x86-32-snapshot.tar.gz";

LICENSE="Apache-2"
SLOT="0"
KEYWORDS="-* ~x86"
IUSE=""

DEPEND=""
RDEPEND=""

src_unpack() {
        tar xfz "${DISTDIR}/${A}"
}

src_install() {
        dodir "/opt/${P}"
        cp -a "${WORKDIR}"/harmony-jre-*/* "${D}/opt/${P}"

        # create the VM handle file in /usr/share/java-config-2/vm
        set_java_env
}

pkg_postinst() {
        java-vm-2_pkg_postinst
}
# in public domain

VERSION="Apache Harmony JRE @PV@"
JAVA_HOME=/opt/@P@
PATH="${JAVA_HOME}/bin"
PROVIDES_TYPE="JRE"
PROVIDES_VERSION="1.5"
GENERATION="2"
ENV_VARS="JAVA_HOME PATH"

Reply via email to