Gentoo Archives: gentoo-java

From: Alistair Bush <ali_bush@g.o>
To: gentoo-java@l.g.o
Subject: [gentoo-java] package.env VM variable
Date: Wed, 14 Nov 2007 09:26:51
Message-Id: 473ABF4F.3030609@gentoo.org
1 Firstly I will ask a question
2
3 *****QUESTION*********
4
5 Basically, I want to know what it is for. What does it mean? what is it
6 meant to tell us?
7
8 **********************
9
10 And now I will ramble on....
11
12 ****RAMBLE************
13
14 java-config-2 doesn't seem to use the VM var at all.
15
16 basically the reason I ask is that I want to (and already have a proof
17 of concept for) update java-config-2 to use the package.env VM var
18 instead of TARGET to figure out the virtual machine a package requires.
19
20 to explain.
21
22 java-config currently does this:
23 1) Find the highest target of package and dep's
24 2) Find VM that matches >=virtual/[jre|jdk]-${highest_target}
25
26 I have implemented a java-config that
27
28 1) Finds a Set of packages (and deps) VM package.env vars. *
29 2) Finds a VM that satisfies the Set. *
30
31 (see * for further explaination)
32
33 This actually allows us to (by just using RDEPEND) have a packages VM as
34 <virtual/jre-1.6 for example. (or possible =virtual/jre-1.5
35 =virtual/jre-1.4 ) In both situations the package will not use a 1.6 vm.
36
37 What is the use for this? Well I have think of one package, jdictrayapi
38 (i believe) that can't run on java6 at least. Are there any more?
39
40 Now to completely lose everyone
41
42 Currently java-util-2.eclass does
43 echo "VM=\"$(echo ${RDEPEND} ${DEPEND} | sed -e 's/ /\n/g' | sed -n -e
44 '/virtual\/\(jre\|jdk\)/ { p;q }')\""
45
46 to calculate the VM var. basically that will just find the first
47 virtual/[jre|jdk] listed in RDEPEND/DEPEND. I will need this to be
48 1) use flag aware.
49 2) and any other combo of || ( .. ) !flag? () etc etc.
50
51 That will have to be implemented within java-config-2. I think most if
52 not all of that is already exists. There are also some packages will be
53 effected by the eclass change. **
54
55 Anyway. Feedback ppl. Have I gone mad?
56
57 ali_bush
58
59 ps.
60 * This is meant as an explanation of how/what im doing, read only if
61 your interested.
62
63 If we assume that we have a package and 1 dep with the following VM var
64 set in there package.env files
65
66 package: VM=">=virtual/jre-1.4"
67 dep: VM="=virtual/jre-1.5 =virtual/jre-1.4" being derived from a
68 RDEPEND of "|| ( =virtual/jre-1.5 =virtual/jre-1.4 )"
69
70 In step 1 above the following set is created
71
72 Set('>=virtual/jre-1.4', Set('=virtual/jre-1.5', '=virtual/jre-1.4'))
73
74 which corresponds logically to in step 2 to..
75
76 Find a VM that meets the following
77 '>=virtual/jre-1.4' AND (=virtual/jre-1.5 OR =virtual/jre-1.4 )
78
79 This also make is possible to have a RDEPEND=">=virtual/jdk-1.5" and
80 have java-config only pick jdk's for the package. (whether there is a
81 situation have calls for this but doesn't require a java-virtual. Im
82 not sure).
83
84 ** By using !rdep virtual/jre and !rdep virtual/jdk
85 and running the following on the resulting lists
86
87 cat duplicate-jre.txt duplicate-jdk.txt | sort | uniq -d
88
89 I get the following list of ebuilds with duplicate virtual/[jdk|jre]
90 RDEPENDS.
91
92 dev-db/monetdb-5.2.0:java
93 dev-db/xindice-1.0-r4
94 dev-java/axion-1.0_rc2-r3
95 dev-java/jmp-0.51
96 dev-util/subversion-1.3.2-r3:java
97 net-analyzer/neti-2.0:java
98 net-misc/tightvnc-1.3.9:java
99 net-misc/tightvnc-1.3.9-r1:java
100
101 I believe that list to be correct
102 --
103 gentoo-java@g.o mailing list