From ace34c1a63d2023b28ff447b8f2f73f81b4b4a83 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Sun, 28 Oct 2012 02:11:29 +0000 Subject: [PATCH] - Ignore bootstrap-openjdk when we automatically register existing JVMs. - Make sure to destroy all symlinks pointing to ${PREFIX}/bin/javavm and ${PREFIX}/etc/javavms when we deinstall the package. Reviewed by: glewis (maintainer) Feature safe: yes --- java/javavmwrapper/Makefile | 11 ++++------- java/javavmwrapper/files/pkg-install.in | 11 ++++++++--- java/javavmwrapper/pkg-deinstall | 25 +++++++------------------ 3 files changed, 19 insertions(+), 28 deletions(-) diff --git a/java/javavmwrapper/Makefile b/java/javavmwrapper/Makefile index d2a85c17f49a..77d6450b46ec 100644 --- a/java/javavmwrapper/Makefile +++ b/java/javavmwrapper/Makefile @@ -1,14 +1,11 @@ -# New ports collection makefile for: javavmwrapper -# Date created: 10 June 2000 -# Whom: Maxim Sobolev -# +# Created by: Maxim Sobolev # $FreeBSD$ # # This port is self contained in the src directory. -# PORTNAME= javavmwrapper PORTVERSION= 2.4 +PORTREVISION= 1 CATEGORIES= java MASTER_SITES= # none DISTFILES= # none @@ -53,10 +50,10 @@ do-configure: do-install: ${INSTALL_SCRIPT} ${WRKDIR}/classpath.sh ${PREFIX}/bin/classpath ${INSTALL_SCRIPT} ${WRKDIR}/javavmwrapper.sh ${PREFIX}/bin/javavm - ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/registervm - ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/unregistervm ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/checkvms ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/manvm + ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/registervm + ${LN} -sf ${PREFIX}/bin/javavm ${PREFIX}/bin/unregistervm .for _man in checkvms.1 javavm.1 manvm.1 registervm.1 ${INSTALL_MAN} ${WRKDIR}/${_man} ${MAN1PREFIX}/man/man1 .endfor diff --git a/java/javavmwrapper/files/pkg-install.in b/java/javavmwrapper/files/pkg-install.in index 92a7d10b9e97..a978b3f5abf6 100644 --- a/java/javavmwrapper/files/pkg-install.in +++ b/java/javavmwrapper/files/pkg-install.in @@ -21,9 +21,14 @@ else fi # Ensure all JDKs and JREs are installed -for jvm in "${LOCALBASE}"/*jdk* "${LOCALBASE}"/*jre*; do - if [ -x "${jvm}/bin/java" ]; then - "${PKG_PREFIX}"/bin/registervm "${jvm}/bin/java" > /dev/null 2>&1 +_excl_dirs='bootstrap-openjdk' +_find_expr='-depth 2 -regex .*/bin/java' +for dir in ${_excl_dirs}; do + _find_expr="${_find_expr} ! -regex ${dir}/bin/java" +done +for jvm in `cd "${LOCALBASE}" && find *jdk* *jre* ${_find_expr}`; do + if [ -x "${LOCALBASE}/${jvm}" ]; then + "${PKG_PREFIX}"/bin/registervm "${LOCALBASE}/${jvm}" > /dev/null 2>&1 fi done diff --git a/java/javavmwrapper/pkg-deinstall b/java/javavmwrapper/pkg-deinstall index dfac4ee292df..fd351f3b8246 100644 --- a/java/javavmwrapper/pkg-deinstall +++ b/java/javavmwrapper/pkg-deinstall @@ -21,6 +21,11 @@ if [ -f "${OPTION_CONF}" -a -f "${OPTION_CONF}.dist" ]; then fi fi +# Destroy the symbolic links that were created for every executable for a VM. +find -L ${PKG_PREFIX}/bin -samefile ${PKG_PREFIX}/bin/javavm \ + \! -name checkvms \! -name javavm \! -name manvm \ + \! -name registervm \! -name unregistervm | xargs rm -f + # The configuration file CONF="${PKG_PREFIX}/etc/javavms" @@ -35,23 +40,7 @@ if [ ! -r "${CONF}" ]; then exit 1 fi -# Destroy the symbolic links that were created for every executable for a VM. -cat "${CONF}" | \ -( -while read JAVAVM; do - VM=`echo "${JAVAVM}" | sed -E 's|[[:space:]]*#.*||' 2>/dev/null` - JAVA_HOME=`dirname "${VM}"` - JAVA_HOME=`dirname "${JAVA_HOME}"` - for exe in "${JAVA_HOME}"/bin/* "${JAVA_HOME}"/jre/bin/*; do - exe=`basename "${exe}"` - if [ -L "${PKG_PREFIX}/bin/${exe}" -a \ - "`ls -ld "${PKG_PREFIX}/bin/${exe}" 2>/dev/null | \ - awk '/->/{print $NF;exit 0}END{exit 1}'`" = \ - "${PKG_PREFIX}/bin/javavm" ]; then - rm "${PKG_PREFIX}/bin/${exe}" - fi - done; -done; -) +# Remove the configuration file. +rm -f "${CONF}" exit 0