ant-tasks.eclass: cleanup and improvement
authorMiroslav Šulc <fordfrog@gentoo.org>
Mon, 21 Jan 2019 08:45:29 +0000 (09:45 +0100)
committerMiroslav Šulc <fordfrog@gentoo.org>
Mon, 21 Jan 2019 08:45:29 +0000 (09:45 +0100)
1) removed obsolete code
2) increased default jdk/jre version to the lowest available version 1.8
3) added support for patching build.xml along with the original build.xml replacement

Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
eclass/ant-tasks.eclass

index 31683e68243795c026b444f918b2f11feb0d67fb..f889a92aa3610d0cb07009d84867370369fa56f9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License, v2 or later
 
 # @ECLASS: ant-tasks.eclass
 # This eclass provides functionality and default ebuild variables for building
 # dev-java/ant-* packages easily.
 
+case "${EAPI:-0}" in
+       0|1|2|3|4)
+               die "ant-tasks.eclass: EAPI ${EAPI} is too old."
+               ;;
+       5|6|7)
+               ;;
+       *)
+               die "ant-tasks.eclass: EAPI ${EAPI} is not supported yet."
+               ;;
+esac
 
 # we set ant-core dep ourselves, restricted
 JAVA_ANT_DISABLE_ANT_CORE_DEP=true
 # rewriting build.xml for are the testcases has no reason atm
 JAVA_PKG_BSFIX_ALL=no
 inherit java-pkg-2 java-ant-2
-[[ ${EAPI:-0} == [0123456] ]] && inherit eapi7-ver
+[[ ${EAPI:-0} == [56] ]] && inherit eapi7-ver
 
 EXPORT_FUNCTIONS src_unpack src_compile src_install
 
 # @ECLASS-VARIABLE: ANT_TASK_JDKVER
 # @DESCRIPTION:
-# Affects the >=virtual/jdk version set in DEPEND string. Defaults to 1.5, can
+# Affects the >=virtual/jdk version set in DEPEND string. Defaults to 1.8, can
 # be overridden from ebuild BEFORE inheriting this eclass.
-ANT_TASK_JDKVER=${ANT_TASK_JDKVER-1.5}
+ANT_TASK_JDKVER=${ANT_TASK_JDKVER-1.8}
 
 # @ECLASS-VARIABLE: ANT_TASK_JREVER
 # @DESCRIPTION:
-# Affects the >=virtual/jre version set in DEPEND string. Defaults to 1.5, can
+# Affects the >=virtual/jre version set in DEPEND string. Defaults to 1.8, can
 # be overridden from ebuild BEFORE inheriting this eclass.
-ANT_TASK_JREVER=${ANT_TASK_JREVER-1.5}
+ANT_TASK_JREVER=${ANT_TASK_JREVER-1.8}
 
 # @ECLASS-VARIABLE: ANT_TASK_NAME
 # @DESCRIPTION:
@@ -56,31 +66,18 @@ ANT_TASK_DEPNAME=${ANT_TASK_DEPNAME-${ANT_TASK_NAME}}
 # Version of ant-core this task is intended to register and thus load with.
 ANT_TASK_PV="${PV}"
 
-# special care for beta/RC releases
-if [[ ${PV} == *beta2* ]]; then
-       MY_PV=${PV/_beta2/beta}
-       UPSTREAM_PREFIX="http://people.apache.org/dist/ant/v1.7.1beta2/src"
-       GENTOO_PREFIX="https://dev.gentoo.org/~caster/distfiles"
-       ANT_TASK_PV=$(ver_cut 1-3)
-elif [[ ${PV} == *_rc* ]]; then
-       MY_PV=${PV/_rc/RC}
-       UPSTREAM_PREFIX="https://dev.gentoo.org/~caster/distfiles"
-       GENTOO_PREFIX="https://dev.gentoo.org/~caster/distfiles"
-       ANT_TASK_PV=$(ver_cut 1-3)
-else
-       # default for final releases
-       MY_PV=${PV}
-       case ${PV} in
-       1.9.*)
-               UPSTREAM_PREFIX="https://archive.apache.org/dist/ant/source"
-               GENTOO_PREFIX="https://dev.gentoo.org/~tomwij/files/dist"
-               ;;
-       *)
-               UPSTREAM_PREFIX="mirror://apache/ant/source"
-               GENTOO_PREFIX="https://dev.gentoo.org/~caster/distfiles"
-               ;;
-       esac
-fi
+# default for final releases
+MY_PV=${PV}
+case ${PV} in
+1.9.2)
+       UPSTREAM_PREFIX="https://archive.apache.org/dist/ant/source"
+       GENTOO_PREFIX="https://dev.gentoo.org/~tomwij/files/dist"
+       ;;
+*)
+       UPSTREAM_PREFIX="mirror://apache/ant/source"
+       GENTOO_PREFIX="https://dev.gentoo.org/~fordfrog/distfiles"
+       ;;
+esac
 
 # source/workdir name
 MY_P="apache-ant-${MY_PV}"
@@ -101,11 +98,6 @@ if [[ -z "${ANT_TASK_DISABLE_VM_DEPS}" ]]; then
        DEPEND+=" >=virtual/jdk-${ANT_TASK_JDKVER}"
 fi
 
-# we need direct blockers with old ant-tasks for file collisions - bug #252324
-if ver_test -ge 1.7.1; then
-       DEPEND+=" !dev-java/ant-tasks"
-fi
-
 # Would run the full ant test suite for every ant task
 RESTRICT="test"
 
@@ -130,7 +122,15 @@ ant-tasks_src_unpack() {
                                cd "${S}"
 
                                # replace build.xml with our modified for split building
-                               mv -f "${WORKDIR}"/build.xml .
+                               if [ -e "${WORKDIR}"/${PV}-build.patch ] ; then
+                                       if [ ${EAPI:-0} -eq 5 ]; then
+                                               die "ant-tasks.eclass: build.xml patching not supported for EAPI 5 ebuilds"
+                                       fi
+
+                                       eapply "${WORKDIR}"/${PV}-build.patch
+                               else
+                                       mv -f "${WORKDIR}"/build.xml .
+                               fi
 
                                cd lib
                                # remove bundled xerces
@@ -168,8 +168,6 @@ ant-tasks_src_install() {
        java-pkg_register-ant-task --version "${ANT_TASK_PV}"
 
        # create the compatibility symlink
-       if ver_test -ge 1.7.1_beta2; then
-               dodir /usr/share/ant/lib
-               dosym /usr/share/${PN}/lib/${PN}.jar /usr/share/ant/lib/${PN}.jar
-       fi
+       dodir /usr/share/ant/lib
+       dosym /usr/share/${PN}/lib/${PN}.jar /usr/share/ant/lib/${PN}.jar
 }