Index: java-utils-2.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/java-utils-2.eclass,v retrieving revision 1.100 diff -u -r1.100 java-utils-2.eclass --- java-utils-2.eclass 28 Nov 2007 02:03:48 -0000 1.100 +++ java-utils-2.eclass 16 Dec 2007 01:57:29 -0000 @@ -293,7 +295,6 @@ java-pkg_do_write_ } - # ------------------------------------------------------------------------------ # @internal-function depend-java-query # @@ -833,6 +830,30 @@ } # ------------------------------------------------------------------------------ +# @eclass-pkg_preinst +# +# Checks jars in the image for problems. +# +# ------------------------------------------------------------------------------ + +java-utils-2_pkg_preinst() { + debug-print-function ${FUNCNAME} "${@}" + is-java-strict || return + + for jar in $(find "${D}" -name "*.jar"); do + for dep in $(unzip -p "${jar}" META-INF/MANIFEST.MF | egrep "^Class-Path:" | cut -d ":" -f 2); do + local dir=$(dirname "${jar}") + einfo "${dir}/${dep}" "${ROOT}${dir#${D}}/${dep}" + if [[ ! -e "${dir}/${dep}" && ! -e "${ROOT}${dir#${D}}/${dep}" ]]; then + eerror "${jar}" + eerror "has Class-Path entry in Manifest pointing at ${dep}" + eerror "but that file does not exist in image or ROOT=${ROOT}" + fi + done + done +} + +# ------------------------------------------------------------------------------ # @section-end install # ------------------------------------------------------------------------------ @@ -2729,6 +2760,8 @@ return $? } +EXPORT_FUNCTIONS pkg_preinst + # ------------------------------------------------------------------------------ # @eclass-end # ------------------------------------------------------------------------------