* [gentoo-java] Changes to java-util-2.eclass to support virtuals
@ 2007-10-02 0:38 Alistair Bush
2007-10-02 9:36 ` Petteri Räty
0 siblings, 1 reply; 2+ messages in thread
From: Alistair Bush @ 2007-10-02 0:38 UTC (permalink / raw
To: gentoo-java
[-- Attachment #1.1: Type: text/plain, Size: 773 bytes --]
Ok, so what is going on in this patch, simply :) both
java-pkg_jar-from
java-pkg_getjar
get a new option
--virtual
when passed to these functions they will record the package as a whole
(ie not the individual jars). The rational for this is that virtuals
may provide/package functionality within multiple jars, we should
therefore never depend on an individual jar from a virtual.
A few more paths in java-pkg_init_paths
A function java-pkg_do_virtuals_write() that is called _ONLY_ by the
java-virtuals-2.eclass. It installs the virtuals "environment" file.
Is everyone happy with the --virtual option, This could be conceivably
used for 'normal' packages so maybe there is a better
verb/noun/adjective/adverb/etc/etc/etc
Alistair
[-- Attachment #1.2: java-utils-2.eclass.virtual-support --]
[-- Type: text/plain, Size: 5244 bytes --]
--- cvs/gentoo-x86/eclass/java-utils-2.eclass 2007-09-28 18:26:27.000000000 +1200
+++ overlays/java-virtuals/eclass/java-utils-2.eclass 2007-10-02 12:56:28.000000000 +1300
@@ -840,6 +840,8 @@
# (assumed automatically when called inside src_test)
# --with-dependencies - get jars also from requested package's dependencies
# transitively.
+# --virtual - Packages passed to this function are to be handled as virtuals
+# and will not have individual jar dependencies recorded.
# --into $dir - symlink jar(s) into $dir (must exist) instead of .
# @param $1 - Package to get jars from, or comma-separated list of packages in
# case other parameters are not used.
@@ -854,6 +856,7 @@
local build_only=""
local destdir="."
local deep=""
+ local virtual=""
[[ "${EBUILD_PHASE}" == "test" ]] && build_only="build"
@@ -862,6 +865,8 @@
build_only="build"
elif [[ "${1}" = "--with-dependencies" ]]; then
deep="--with-dependencies"
+ elif [[ "${1}" = "--virtual" ]]; then
+ virtual="true"
elif [[ "${1}" = "--into" ]]; then
destdir="${2}"
shift
@@ -897,6 +902,14 @@
java-pkg_ensure-dep "${build_only}" "${target_pkg}"
fi
+ # Record the entire virtual as a dependency so that
+ # no jars are missed.
+ if [[ -z "${build_only}" && -n "${virtual}" ]]; then
+ java-pkg_record-jar_ "${target_pkg}"
+ # setting this disables further record-jars_ calls later
+ build_only="build"
+ fi
+
pushd ${destdir} > /dev/null \
|| die "failed to change directory to ${destdir}"
@@ -1028,6 +1041,8 @@
#
# @param $opt
# --build-only - makes the jar not added into package.env DEPEND line.
+# --virtual - Packages passed to this function are to be handled as virtuals
+# and will not have individual jar dependencies recorded.
# @param $1 - package to use
# @param $2 - jar to get
# ------------------------------------------------------------------------------
@@ -1035,12 +1050,15 @@
debug-print-function ${FUNCNAME} $*
local build_only=""
+ local virtual=""
[[ "${EBUILD_PHASE}" == "test" ]] && build_only="build"
while [[ "${1}" == --* ]]; do
if [[ "${1}" = "--build-only" ]]; then
build_only="build"
+ elif [[ "${1}" == --* ]]; then
+ virtual="true"
else
die "java-pkg_jar-from called with unknown parameter: ${1}"
fi
@@ -1060,6 +1078,13 @@
java-pkg_ensure-dep "${build_only}" "${pkg}"
+ # Record the package(Virtual) as a dependency and then set build_only
+ # So that individual jars are not recorded.
+ if [[ -n "${virtual}" ]]; then
+ java-pkg_record-jar_ "${pkg}"
+ build_only="true"
+ fi
+
for jar in ${classpath//:/ }; do
if [[ ! -f "${jar}" ]] ; then
die "Installation problem with jar ${jar} in ${pkg} - is it installed?"
@@ -2054,6 +2079,9 @@
java-pkg_announce-qa-violation "Using old ant_src_unpack. Should be src_unpack"
fi
+ # Initializing the JAVA_PKG_VNEED var from DEPEND
+ java-pkg_parse-virtuals
+
java-pkg_init_paths_
java-pkg_switch-vm
PATH=${JAVA_HOME}/bin:${PATH}
@@ -2074,6 +2102,21 @@
unset ANT_OPTS
}
+# -----------------------------------------------------------------------------
+# @function-internal java-pkg_parse-virtuals
+#
+# -----------------------------------------------------------------------------
+
+java-pkg_parse-virtuals() {
+ debug-print-function ${FUNCNAME} $*
+
+ for dep in ${DEPEND}; do
+ if [[ -n "$(grep java-virtuals/* <<< ${dep})" ]]; then
+ JAVA_PKG_VNEED="${JAVA_PKG_VNEED} ${dep}"
+ fi
+ done
+}
+
# ------------------------------------------------------------------------------
# @function-internal java-pkg-init-compiler_
#
@@ -2203,6 +2246,8 @@
JAVA_PKG_SHAREPATH="${DESTTREE}/share/${JAVA_PKG_NAME}"
JAVA_PKG_SOURCESPATH="${JAVA_PKG_SHAREPATH}/sources/"
JAVA_PKG_ENV="${D}${JAVA_PKG_SHAREPATH}/package.env"
+ JAVA_PKG_VIRTUALS_PATH="${DESTTREE}/share/java-config-2/virtuals"
+ JAVA_PKG_VIRTUAL_PROVIDER="${D}/${JAVA_PKG_VIRTUALS_PATH}/${JAVA_PKG_NAME}"
[[ -z "${JAVA_PKG_JARDEST}" ]] && JAVA_PKG_JARDEST="${JAVA_PKG_SHAREPATH}/lib"
[[ -z "${JAVA_PKG_LIBDEST}" ]] && JAVA_PKG_LIBDEST="${DESTTREE}/$(get_libdir)/${JAVA_PKG_NAME}"
@@ -2218,6 +2263,33 @@
}
# ------------------------------------------------------------------------------
+# @internal-function java-pkg_do_virtuals_write
+#
+# Writes the package.env out to disk.
+#
+# ------------------------------------------------------------------------------
+java-pkg_do_virtuals_write() {
+ java-pkg_init_paths_
+
+ dodir "${JAVA_PKG_VIRTUALS_PATH}"
+ if [[ -n "${JAVA_VIRTUAL_PROVIDES}" ]]; then
+ echo "PROVIDERS=\"${JAVA_VIRTUAL_PROVIDES}\"" \
+ >> ${JAVA_PKG_VIRTUAL_PROVIDER}
+ fi
+
+ if [[ -n "${JAVA_VIRTUAL_VM}" ]]; then
+ echo "VM=\"${JAVA_VIRTUAL_VM}\"" \
+ >> ${JAVA_PKG_VIRTUAL_PROVIDER}
+ fi
+
+ if [[ -n "${JAVA_VIRTUAL_VM_CLASSPATH}" ]]; then
+ echo "VM_CLASSPATH=\"${JAVA_VIRTUAL_VM_CLASSPATH}\"" \
+ >> ${JAVA_PKG_VIRTUAL_PROVIDER}
+ fi
+}
+
+
+# ------------------------------------------------------------------------------
# @internal-function java-pkg_do_write_
#
# Writes the package.env out to disk.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [gentoo-java] Changes to java-util-2.eclass to support virtuals
2007-10-02 0:38 [gentoo-java] Changes to java-util-2.eclass to support virtuals Alistair Bush
@ 2007-10-02 9:36 ` Petteri Räty
0 siblings, 0 replies; 2+ messages in thread
From: Petteri Räty @ 2007-10-02 9:36 UTC (permalink / raw
To: gentoo-java
[-- Attachment #1: Type: text/plain, Size: 253 bytes --]
Alistair Bush kirjoitti:
>
> A function java-pkg_do_virtuals_write() that is called _ONLY_ by the
> java-virtuals-2.eclass. It installs the virtuals "environment" file.
>
So let's put it to java-virtuals-2.eclass then.
Regards,
Petteri
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-10-02 9:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-02 0:38 [gentoo-java] Changes to java-util-2.eclass to support virtuals Alistair Bush
2007-10-02 9:36 ` Petteri Räty
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox