[patch] Install a desktop icon for the jdk15 Control Panel
Greg Lewis
glewis at eyesbeyond.com
Wed Sep 28 15:27:20 PDT 2005
Hi Panagiotis,
On Thu, Sep 29, 2005 at 12:09:16AM +0300, Panagiotis Astithas wrote:
> I cooked up this patch to fix something that has been annoying me for a
> long time. When we install the jdk we don't fix the provided
> sun_java.desktop file, or install it in a suitable place for desktop
> environments to pick up. This patch is for jdk15 and creates the
> necessary menu entry for Gnome and KDE (although I haven't tested on the
> latter). It should be trivial to make the same changes for jdk14, by
> using MINIMAL instead of WITHOUT_WEB.
Thanks working this up. Can you please send-pr it? I'm worried that
it will get lost otherwise since I'm currently tracking some other patches
as well.
It would be good if someone could test your changes against KDE as well.
I have some minor comments on the patch.
> --- /usr/ports/java/jdk15/Makefile Tue Sep 20 23:00:08 2005
> +++ jdk15/Makefile Wed Sep 28 23:57:17 2005
> @@ -43,6 +43,7 @@
> MAKE_ENV+= BROWSER=mozilla
> .endif
> USE_ICONV= yes
> +USE_GNOME= desktopfileutils
Does this pull in any extra dependencies other than desktop-file-utils?
the jdk is already pretty fat with dependencies, and I particularly don't
want to pull in a bunch of KDE and/or Gnome dependencies.
> MAKE_ENV+= ALT_MOZILLA_HEADERS_PATH="${X11BASE}/include"
> .endif
>
> @@ -118,6 +119,9 @@
>
> PLIST_FILES= jdk${JDK_VERSION}/jre/.systemPrefs/.system.lock \
> jdk${JDK_VERSION}/jre/.systemPrefs/.systemRootModFile
> +.if !defined(WITHOUT_WEB)
> +PLIST_FILES+= share/applications/sun_java15.desktop
> +.endif
> PLIST_DIRS= jdk${JDK_VERSION}/jre/.systemPrefs
>
> .if (${ARCH} == amd64)
> @@ -284,9 +288,20 @@
> ${MKDIR} ${PREFIX}/jdk${JDK_VERSION}
> cd ${JDKIMAGEDIR} && ${FIND} . \
> | ${CPIO} -pdmu -R ${LIBOWN}:${LIBGRP} ${PREFIX}/jdk${JDK_VERSION}
> +.if !defined(WITHOUT_WEB)
> + @${SED} -e 's#Exec=INSTALL_DIR/JRE_NAME_VERSION/bin/ControlPanel#Exec=${PREFIX}/jdk${JDK_VERSION}/bin/ControlPanel#' \
> + -e 's#Icon=INSTALL_DIR/JRE_NAME_VERSION/plugin/desktop/sun_java.png#Icon=${PREFIX}/jdk${JDK_VERSION}/jre/plugin/desktop/sun_java.png#' \
> + < ${JDKIMAGEDIR}/jre/plugin/desktop/sun_java.desktop \
> + > ${JDKIMAGEDIR}/jre/plugin/desktop/sun_java.desktop.tmp
> + ${INSTALL_DATA} ${JDKIMAGEDIR}/jre/plugin/desktop/sun_java.desktop.tmp ${PREFIX}/share/applications/sun_java15.desktop
> +.endif
It feels like maybe it would be more appropriate to have a patch for the
source file and then use REINPLACE_CMD on it in post-patch and simply
install the icon here.
> @${ECHO_MSG} "@unexec ${LOCALBASE}/bin/unregistervm ${PREFIX}/jdk${JDK_VERSION}/bin/java" >> ${TMPPLIST}
> @${FIND} -s ${JDKIMAGEDIR} -not -type d | \
> ${SED} -ne 's#^${JDKIMAGEDIR}#jdk${JDK_VERSION}#p' >> ${TMPPLIST}
> +.if !defined(WITHOUT_WEB)
> + @-update-desktop-database
You may want to consider using ${LOCALBASE}/bin/update-desktop-database
here. Also, it seems more appropriate to do this in the post-install step.
> + @${ECHO_MSG} '@exec ${PREFIX}/bin/update-desktop-database > /dev/null || /usr/bin/true' >> ${TMPPLIST}
This should use LOCALBASE rather than PREFIX.
> +.endif
> .if defined(WITH_DEBUG)
> cd ${JDKIMAGEDIR_G} && ${FIND} . \
> | ${CPIO} -pdmu -R ${LIBOWN}:${LIBGRP} ${PREFIX}/jdk${JDK_VERSION}
> @@ -296,6 +311,9 @@
> @${FIND} -s -d ${PREFIX}/jdk${JDK_VERSION} -type d | \
> ${SED} -ne 's#^${PREFIX}/#@dirrm #p' >> ${TMPPLIST}
> @${ECHO_MSG} "@exec ${LOCALBASE}/bin/registervm ${PREFIX}/jdk${JDK_VERSION}/bin/java # FREEBSD-JDK${JDK_VERSION}" >> ${TMPPLIST}
> +.if !defined(WITHOUT_WEB)
> + @${ECHO_MSG} '@unexec ${PREFIX}/bin/update-desktop-database > /dev/null || /usr/bin/true' >> ${TMPPLIST}
Ditto with PREFIX -> LOCALBASE.
> +.endif
>
> # XXX: put unregistervm into install script ?
> post-install:
--
Greg Lewis Email : glewis at eyesbeyond.com
Eyes Beyond Web : http://www.eyesbeyond.com
Information Technology FreeBSD : glewis at FreeBSD.org
More information about the freebsd-java
mailing list