diff options
Diffstat (limited to 'eclass/java-pkg.eclass')
-rw-r--r-- | eclass/java-pkg.eclass | 496 |
1 files changed, 0 insertions, 496 deletions
diff --git a/eclass/java-pkg.eclass b/eclass/java-pkg.eclass deleted file mode 100644 index 6a1d28f04f1d..000000000000 --- a/eclass/java-pkg.eclass +++ /dev/null @@ -1,496 +0,0 @@ -# Copyright 1999-2004 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/java-pkg.eclass,v 1.52 2007/04/25 18:24:37 robbat2 Exp $ - -inherit multilib - -EXPORT_FUNCTIONS pkg_setup - -# We need to do a few things to add compatibility between -# generation-1 and generation-2. - -# First we make sure java-config-1 will be used -export WANT_JAVA_CONFIG="1" - -# We can't depend on java-config directly because some packages use this eclass -# only with the java use flag. -# http://bugs.gentoo.org/show_bug.cgi?id=137971 -#DEPEND=" -# =dev-java/java-config-1.3* -# =dev-java/java-config-2*" - -# During pkg_setup, we need to do a few extra things to ensure things work in a -# mixed generation-1/generation-2 environment -# TODO need to make sure everything that inherits java-pkg and has a pkg_setup -# uses java-pkg_pkg_setup -java-pkg_pkg_setup() { - java-pkg_announce-qa-violation "using deprecated eclass java-pkg" - - # We need to do a little magic if java-config-2 is around - if has_version "=dev-java/java-config-2*"; then - # we only want to enable the Java stuff if - # there isn't a Java use flag (means its a pure Java pckage) - # or if there is a Java use flag and it is enabled - if ! hasq java ${IUSE} || use java; then - initialize-java-environment - if [[ -n ${GENTOO_VM} ]]; then - einfo "Using Generation-1 System VM: ${GENTOO_VM}" - else - echo - eerror "There was a problem determining which VM to use for generation-1" - eerror "This is because the way Java is handled on Gentoo has drastically changed." - if ! has_version "=virtual/jdk-1.4*" || ! has_version "=virtual/jdk-1.3*"; then - ewarn "There does not seem to be a 1.4 or 1.3 JDK installed." - ewarn "You should probably install =virtual/jdk-1.4* or =virtual/jdk-1.3*" - ewarn "It is important to have either a 1.4 or 1.3 JDK installed" - ewarn "in order for the old and new Java systems to coexist" - ewarn "Details about this can be found at:" - ewarn "\thttp://overlays.gentoo.org/proj/java/wiki/Why_We_Need_Java14" - ewarn "If you wonder why we can't just depend on the needed JDK version," - ewarn "then read https://bugs.gentoo.org/show_bug.cgi?id=144240" - echo - fi - - eerror "You should run, and follow the advice of:" - eerror "\t/usr/bin/java-check-environment" - - eerror "You will also likely want to follow the Java Upgrade Guide:" - eerror "\thttp://www.gentoo.org/proj/en/java/java-upgrade.xml" - eerror "If you have problems with the guide, please see:" - eerror "\thttp://overlays.gentoo.org/proj/java/wiki/Common_Problems" - die "Expected VMHANDLE to be defined in the env" - fi - fi - fi -} - -initialize-java-environment() { - if has_version "=dev-java/java-config-2*"; then - # VMHANDLE is the variable in an env file that identifies how java-config-2 - # knows a VM. With each VM, we have a 'compatible' env file installed to - # /etc/env.d/java, so java-config-1 can work. - # - # So, here we set GENTOO_VM to be VMHANDLE, and thus to the - # generation-1 system VM. - export GENTOO_VM=$(java-config-1 -g VMHANDLE) - - # use java-config-2, with GENTOO_VM set to generation-1 system vm, to - # setup JAVA_HOME - export JAVA_HOME=$(java-config-2 --jdk-home) - export JDK_HOME=$(java-config-2 --jdk-home) - # make sure JAVAC and JAVA are set correctly - export JAVAC=$(java-config-2 --javac) - export JAVA=$(java-config-2 --java) - fi - # Otherwise, JAVA_HOME should be defined already -} - -# These are pre hooks to make sure JAVA_HOME is set properly. -# note: don't need pkg_setup, since we define it here -# FIXME remove these hooks after portage-2.1.1 is stable, as -# it has proper env saving -pre_src_unpack() { - initialize-java-environment -} - -pre_src_compile() { - initialize-java-environment -} - -pre_src_install() { - initialize-java-environment -} - -pre_src_test() { - initialize-java-environment -} - -pre_pkg_preinst() { - initialize-java-environment -} - -pre_pkg_postinst() { - initialize-java-environment -} - - -pkglistpath="${T}/java-pkg-list" - -java-pkg_doclass() -{ - debug-print-function ${FUNCNAME} $* - java-pkg_dojar $* -} - -java-pkg_do_init_() -{ - debug-print-function ${FUNCNAME} $* - - if [ -z "${JARDESTTREE}" ] ; then - JARDESTTREE="lib" - SODESTTREE=$(get_libdir) - fi - - # Set install paths - sharepath="${DESTTREE}/share" - if [ "$SLOT" == "0" ] ; then - pkg_name="${PN}" - else - pkg_name="${PN}-${SLOT}" - fi - - shareroot="${sharepath}/${pkg_name}" - - if [ -z "${jardest}" ] ; then - jardest="${shareroot}/${JARDESTTREE}" - fi - - if [ -z "${sodest}" ] ; then - sodest="/opt/${pkg_name}/${SODESTTREE}" - fi - - package_env="${D}${shareroot}/package.env" - - debug-print "JARDESTTREE=${JARDESTTREE}" - debug-print "SODESTTREE=${SODESTTREE}" - debug-print "sharepath=${sharepath}" - debug-print "shareroot=${shareroot}" - debug-print "jardest=${jardest}" - debug-print "sodest=${sodest}" - debug-print "package_env=${package_env}" - -} - -java-pkg_do_write_() -{ - debug-print-function ${FUNCNAME} $* - # Create directory for package.env - dodir "${shareroot}" - - # Create package.env - echo "DESCRIPTION=${DESCRIPTION}" > "${package_env}" - echo "GENERATION=1" >> "${package_env}" - if [ -n "${cp_pkg}" ]; then - debug-print "cp_prepend: ${cp_prepend}" - debug-print "cp_pkg: ${cp_pkg}" - debug-print "cp_append: ${cp_append}" - echo "CLASSPATH=${cp_prepend}:${cp_pkg}:${cp_append}" >> "${package_env}" - fi - if [ -n "${lp_pkg}" ]; then - echo "LIBRARY_PATH=${lp_prepend}:${lp_pkg}:${lp_append}" >> "${package_env}" - fi - if [ -f ${pkglistpath} ] ; then - pkgs=$(cat ${pkglistpath} | tr '\n' ':') - echo "DEPEND=${pkgs}" >> "${package_env}" - fi - - # Strip unnecessary leading and trailing colons - sed -e "s/=:/=/" -e "s/:$//" -i "${package_env}" -} - -java-pkg_do_getsrc_() -{ - # Check for symlink - if [ -L "${i}" ] ; then - cp "${i}" "${T}" - echo "${T}"/`/usr/bin/basename "${i}"` - - # Check for directory - elif [ -d "${i}" ] ; then - echo "java-pkg: warning, skipping directory ${i}" - continue - else - echo "${i}" - fi -} - - -java-pkg_doso() -{ - debug-print-function ${FUNCNAME} $* - [ -z "$1" ] - - java-pkg_do_init_ - - # Check for arguments - if [ -z "$*" ] ; then - die "at least one argument needed" - fi - - # Make sure directory is created - if [ ! -d "${D}${sodest}" ] ; then - install -d "${D}${sodest}" - fi - - for i in $* ; do - mysrc=$(java-pkg_do_getsrc_) - - # Install files - install -m 0755 "${mysrc}" "${D}${sodest}" || die "${mysrc} not found" - done - lp_pkg="${sodest}" - - java-pkg_do_write_ -} - -java-pkg_dojar() -{ - debug-print-function ${FUNCNAME} $* - [ -z "$1" ] - - java-pkg_do_init_ - - if [ -n "${DEP_PREPEND}" ] ; then - for i in ${DEP_PREPEND} - do - if [ -f "${sharepath}/${i}/package.env" ] ; then - debug-print "${i} path: ${sharepath}/${i}" - if [ -z "${cp_prepend}" ] ; then - cp_prepend=`grep "CLASSPATH=" "${sharepath}/${i}/package.env" | sed "s/CLASSPATH=//"` - else - cp_prepend="${cp_prepend}:"`grep "CLASSPATH=" "${sharepath}/${i}/package.env" | sed "s/CLASSPATH=//"` - fi - else - debug-print "Error: Package ${i} not found." - debug-print "${i} path: ${sharepath}/${i}" - die "Error in DEP_PREPEND." - fi - debug-print "cp_prepend=${cp_prepend}" - - done - fi - - if [ -n "${DEP_APPEND}" ] ; then - for i in ${DEP_APPEND} - do - if [ -f "${sharepath}/${i}/package.env" ] ; then - debug-print "${i} path: ${sharepath}/${i}" - # Before removing the quotes this caused - # https://bugs.gentoo.org/show_bug.cgi?id=155590 - # There was also an extra quote in the else that could also be - # the cause. - if [ -z "${cp_append}" ] ; then - cp_append=$(grep "CLASSPATH=" "${sharepath}/${i}/package.env" \ - | sed -e "s/CLASSPATH=//" -e 's/"//g') - else - cp_append="${cp_append}:$(grep "CLASSPATH=" \ - "${sharepath}/${i}/package.env" \ - | sed -e "s/CLASSPATH=//" -e 's/"//g')" - fi - else - debug-print "Error: Package ${i} not found." - debug-print "${i} path: ${sharepath}/${i}" - die "Error in DEP_APPEND." - fi - debug-print "cp_append=${cp_append}" - done - fi - - # Check for arguments - if [ -z "$*" ] ; then - die "at least one argument needed" - fi - - # Make sure directory is created - dodir ${jardest} - - for i in $* ; do - mysrc=$(java-pkg_do_getsrc_) - - # Install files - install -m 0644 "${mysrc}" "${D}${jardest}" || die "${mysrc} not found" - - # Build CLASSPATH - if [ -z "${cp_pkg}" ] ; then - cp_pkg="${jardest}"/`/usr/bin/basename "${i}"` - else - cp_pkg="${cp_pkg}:${jardest}/"`/usr/bin/basename "${i}"` - fi - done - - java-pkg_do_write_ -} - -java-pkg_newjar() -{ - if [ -z "${T}" ] || [ -z "${2}" ] ; then - die "java-pkg_newjar: Nothing defined to do" - fi - - rm -rf "${T}/${2}" - cp "${1}" "${T}/${2}" - java-pkg_dojar "${T}/${2}" -} - -java-pkg_dowar() -{ - debug-print-function ${FUNCNAME} $* - [ -z "$1" ] - - # Check for arguments - if [ -z "$*" ] ; then - die "at least one argument needed" - fi - - if [ -z "${WARDESTTREE}" ] ; then - WARDESTTREE="webapps" - fi - - sharepath="${DESTTREE}/share" - shareroot="${sharepath}/${PN}" - wardest="${shareroot}/${WARDESTTREE}" - - debug-print "WARDESTTREE=${WARDESTTREE}" - debug-print "sharepath=${sharepath}" - debug-print "shareroot=${shareroot}" - debug-print "wardest=${wardest}" - - # Patch from Joerg Schaible <joerg.schaible@gmx.de> - # Make sure directory is created - if [ ! -d "${D}${wardest}" ] ; then - install -d "${D}${wardest}" - fi - - for i in $* ; do - # Check for symlink - if [ -L "${i}" ] ; then - cp "${i}" "${T}" - mysrc="${T}"/`/usr/bin/basename "${i}"` - - # Check for directory - elif [ -d "${i}" ] ; then - echo "dowar: warning, skipping directory ${i}" - continue - else - mysrc="${i}" - fi - - # Install files - install -m 0644 "${mysrc}" "${D}${wardest}" - done -} - -java-pkg_dozip() -{ - debug-print-function ${FUNCNAME} $* - java-pkg_dojar $* -} - -_record-jar() -{ - echo "$(basename $2)@$1" >> ${pkglistpath} -} - -java-pkg_jarfrom() { - java-pkg_jar-from "$@" -} - -java-pkg_jar-from() -{ - debug-print-function ${FUNCNAME} $* - - local pkg=$1 - local jar=$2 - local destjar=$3 - - if [ -z "${destjar}" ] ; then - destjar=${jar} - fi - - for x in $(java-config --classpath=${pkg} | tr ':' ' '); do - if [ ! -f ${x} ] ; then - die "Installation problems with jars in ${pkg} - is it installed?" - return 1 - fi - _record-jar ${pkg} ${x} - if [ -z "${jar}" ] ; then - [[ -f $(basename ${x}) ]] && rm $(basename ${x}) - ln -snf ${x} $(basename ${x}) - elif [ "$(basename ${x})" == "${jar}" ] ; then - [[ -f ${destjar} ]] && rm ${destjar} - ln -snf ${x} ${destjar} - return 0 - fi - done - if [ -z "${jar}" ] ; then - return 0 - else - die "failed to find ${jar}" - fi -} - -java-pkg_getjar() -{ - - debug-print-function ${FUNCNAME} $* - - local pkg=$1 - local jar=$2 - - for x in $(java-config --classpath=${pkg} | tr ':' ' '); do - - if [ ! -f ${x} ] ; then - die "Installation problems with jars in ${pkg} - is it installed?" - fi - - _record-jar ${pkg} ${x} - - if [ "$(basename ${x})" == "${jar}" ] ; then - echo ${x} - return 0 - fi - done - die "Could not find $2 in $1" -} - -java-pkg_getjars() -{ - java-config --classpath=$1 -} - - - -java-pkg_dohtml() -{ - dohtml -f package-list $@ -} - -java-pkg_jarinto() -{ - jardest=$1 -} - -java-pkg_sointo() -{ - sodest=$1 -} - -java-pkg_dosrc() { - java-pkg_do_init_ - - [ $# -lt 1 ] && die "${FUNCNAME[0]}: at least one argument needed" - - local target="${shareroot}/source/" - - local files - local startdir=$(pwd) - for x in ${@}; do - cd $(dirname ${x}) - zip -q -r ${T}/${PN}-src.zip $(basename ${x}) -i '*.java' - local res=$? - if [[ ${res} != 12 && ${res} != 0 ]]; then - die "zip failed" - fi - - cd ${startdir} - done - - dodir ${target} - install ${INSOPTIONS} "${T}/${PN}-src.zip" "${D}${target}" \ - || die "failed to install sources" -} - - -java-pkg_announce-qa-violation() { - [[ "${JAVA_PKG_STRICT}" ]] && ewarn "Java QA Notice: $@" -} |