package.env VM variable

Alistair Bush <[email protected]>
Newsgroups gmane.linux.gentoo.java
Message-ID <[email protected]>
Firstly I will ask a question

*****QUESTION*********

Basically, I want to know what it is for.  What does it mean? what is it
meant to tell us?

**********************

And now I will ramble on....

****RAMBLE************

java-config-2 doesn't seem to use the VM var at all.

basically the reason I ask is that I want to (and already have a proof
of concept for) update java-config-2 to use the package.env VM var
instead of TARGET to figure out the virtual machine a package requires.

to explain.

java-config currently does this:
	1) Find the highest target of package and dep's
	2) Find VM that matches >=virtual/[jre|jdk]-${highest_target}

I have implemented a java-config that

	1) Finds a Set of packages (and deps) VM package.env vars. *
	2) Finds a VM that satisfies the Set. *

(see * for further explaination)

This actually allows us to (by just using RDEPEND) have a packages VM as
<virtual/jre-1.6 for example. (or possible =virtual/jre-1.5
=virtual/jre-1.4 )  In both situations the package will not use a 1.6 vm.

What is the use for this?  Well I have think of one package, jdictrayapi
(i believe) that can't run on java6 at least.  Are there any more?

Now to completely lose everyone

Currently java-util-2.eclass does
echo "VM=\"$(echo ${RDEPEND} ${DEPEND} | sed -e 's/ /\n/g' | sed -n -e
'/virtual\/\(jre\|jdk\)/ { p;q }')\""

to calculate the VM var.  basically that will just find the first
virtual/[jre|jdk] listed in RDEPEND/DEPEND.  I will need this to be
1) use flag aware.
2) and any other combo of || ( .. )  !flag? () etc etc.

That will have to be implemented within java-config-2.  I think most if
not all of that is already exists.  There are also some packages will be
effected by the eclass change. **

Anyway.  Feedback ppl.  Have I gone mad?

ali_bush

ps.
* This is meant as an explanation of how/what im doing, read only if
your interested.

If we assume that we have a package and 1 dep with the following VM var
set in there package.env files

package: VM=">=virtual/jre-1.4"
dep:	 VM="=virtual/jre-1.5 =virtual/jre-1.4" being derived from a
RDEPEND of "|| ( =virtual/jre-1.5 =virtual/jre-1.4 )"

In step 1 above the following set is created

Set('>=virtual/jre-1.4', Set('=virtual/jre-1.5', '=virtual/jre-1.4'))

which corresponds logically to in step 2 to..

Find a VM that meets the following
'>=virtual/jre-1.4' AND (=virtual/jre-1.5 OR =virtual/jre-1.4 )

This also make is possible to have a RDEPEND=">=virtual/jdk-1.5" and
have java-config only pick jdk's for the package. (whether there is a
situation have calls for this but doesn't require a java-virtual.  Im
not sure).

** By using !rdep virtual/jre and !rdep virtual/jdk
and running the following on the resulting lists

cat duplicate-jre.txt duplicate-jdk.txt | sort | uniq -d

I get the following list of ebuilds with duplicate virtual/[jdk|jre]
RDEPENDS.

dev-db/monetdb-5.2.0:java
dev-db/xindice-1.0-r4
dev-java/axion-1.0_rc2-r3
dev-java/jmp-0.51
dev-util/subversion-1.3.2-r3:java
net-analyzer/neti-2.0:java
net-misc/tightvnc-1.3.9:java
net-misc/tightvnc-1.3.9-r1:java

I believe that list to be correct
-- 
[email protected] mailing list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.