Subject: Re: openoffice2-bin and java
To: None <tech-pkg@netbsd.org>
From: Antoine Reilles <Antoine.Reilles@loria.fr>
List: tech-pkg
Date: 10/21/2005 14:00:44
On Oct 21, 2005, at 1:54 PM, Geert Hendrickx wrote:
> I already discussed this with Michael, but we didn't reach consensus;
>
> OpenOffice 2 needs a Java Runtime Environment for some features
> (e.g. the
> documents wizard in Writer, the media player, ...), but works
> without one,
> too.
>
> Right now, the files/soffice startup script adds all /usr/pkg/java/*
> subdirectories to the PATH when starting OpenOffice, so it will
> look for
> JRE's there. However, this gives a few problems. Only Linux
> binary JRE's
> will work, since OOo links to them. But the JRE detection can't
> seem to
> make this distinction, so you can e.g. add a native JRE (wip/jdk14)
> to the
> list, but you will get an error when you try to use the Java-dependent
> features. Also, when you have lang/kaffe installed (in /usr/pkg/
> java),
> this causes long delays in OOo's Java detection, it is probably
> confused by
> Kaffe not behaving as it expected. Anyway, to make a long story
> short, I
> would like to do this: make the admin choose _one_ (Linux) JRE at
> install
> time, and make the startup script only add that one directory to
> the PATH.
> Implementation would look like this:
>
> ===>
> Index: Makefile
> ===================================================================
> RCS file: /pub/NetBSD-CVS/pkgsrc/misc/openoffice2-bin/Makefile,v
> retrieving revision 1.4
> diff -u -r1.4 Makefile
> --- Makefile 20 Oct 2005 14:05:39 -0000 1.4
> +++ Makefile 21 Oct 2005 11:50:40 -0000
> @@ -86,14 +85,21 @@
> DISTNAME= # Dummy to prevent error from missing DISTNAME
> .endif
>
> +.include "options.mk"
> +
> do-install:
> ${RM} -f ${WRKDIR}/PLIST.nouniq
> ${RPM2PKG} ${RPM2PKGARGS} ${WRKSRC}/*.rpm
> uniq ${WRKDIR}/PLIST.nouniq >${WRKDIR}/PLIST
> +.if !empty(JRE)
> ${RM} -f ${PREFIX}/bin/soffice
> ${SED} -e "s|@@PREFIX@@|${PREFIX}|g" -e "s|@@OO_VER@@|$
> {OO_VER}|g" \
> + -e "s|@@JRE@@|${JRE}|g" \
> < ${FILESDIR}/soffice > ${PREFIX}/bin/soffice
> ${CHMOD} +x ${PREFIX}/bin/soffice
> +.else
> + ${LN} -sf ../openoffice.org${OO_VER}/program/soffice ${PREFIX}/
> bin/soffice
> +.endif
> .for i in scalc sdraw simpress swriter
> ${LN} -sf ../openoffice.org${OO_VER}/program/${i} ${PREFIX}/
> bin/${i}
> .endfor
> Index: files/soffice
> ===================================================================
> RCS file: /pub/NetBSD-CVS/pkgsrc/misc/openoffice2-bin/files/soffice,v
> retrieving revision 1.2
> diff -u -r1.2 soffice
> --- files/soffice 10 Oct 2005 20:08:49 -0000 1.2
> +++ files/soffice 21 Oct 2005 11:50:40 -0000
> @@ -7,16 +7,10 @@
> # make sure we can find `whoami` on solaris
> PATH=${PATH}:/usr/ucb
>
> -# add an existing java directory to $PATH to allow OOo to
> +# add the chosen java directory to $PATH to allow OOo to
> # automatically find it
> -#
> -if [ -d "@@PREFIX@@/java" ]; then
> - for i in @@PREFIX@@/java/*; do
> - if [ -f "$i/bin/java" ]; then
> - export PATH=$PATH:$i/bin
> - fi
> - done
> -fi
> +PATH=${PATH}:@@JRE@@
> +
> # default data seg size is too small for java
> ulimit -d `ulimit -H -d`
> <===
>
> i.e. a run-time dependency on zero or one Linux JRE. This solves
> all the
> problems above.
>
> A slightly different alternative options.mk could look like this:
>
> ===>
> # $NetBSD
>
> PKG_OPTIONS_VAR= PKG_OPTIONS.openoffice2-bin
> PKG_OPTIONS_OPTIONAL_GROUPS= jre
> PKG_OPTIONS_GROUP.jre= sun-jre13 sun-jre14 sun-jre15
>
> .include "../../mk/bsd.options.mk"
>
> .if !empty(PKG_OPTIONS:Msun-jre13)
> .include "../../lang/sun-jre13/buildlink3.mk"
> JRE= ${BUILDLINK_JAVA_PREFIX.sun-jre13}
> .endif
>
> .if !empty(PKG_OPTIONS:Msun-jre14)
> .include "../../lang/sun-jre14/buildlink3.mk"
> JRE= ${BUILDLINK_JAVA_PREFIX.sun-jre14}
> .endif
>
> .if !empty(PKG_OPTIONS:Msun-jre15)
> .include "../../lang/sun-jre15/buildlink3.mk"
> JRE= ${BUILDLINK_JAVA_PREFIX.sun-jre15}
> .endif
> <===
>
> i.e., an OPTIONAL_GROUP containin only JRE's (not the option "no-
> jre"),
> defaulting to none (with the same result as "no-jre"). I prefer the
> REQUIRED_GROUP though, to make it more clear that no-jre is an actual
> option. :-)
>
> What do you think?
Why not include mk/java-vm.mk, and use ${PKG_JAVA_HOME} to let
openoffice ind it's java implementation/classes ?
antoine