I have decided to extract the GCJ part into its own patch. I have created an interdiff between the last and the current version of the fosdem06 patch. I would have made an interdiff for the GCJ part as well, but it failed.
Matthias Klose wrote: > On 23.03.2010 11:54, Niels Thykier wrote: >> Sylvestre Ledru wrote: >>> Le mardi 23 mars 2010 =C3=A0 10:26 +0100, Niels Thykier a =C3=A9crit = : >>>>[...] >> >> Sure, what do you think of this: >> >> In the past gcj packages were added in order to improve >> performance of Java libraries and programs. However, this >> performance comes at the cost of size, extra compilation >> time and creates architecture dependent packages. >=20 > not only in the past. >=20 Added with the change above and the mention of its usefulness in the absence of a JVM with a JIT compiler. >> A request for permission to add gcj should packages should >> convince the Java Team that the performance boost of adding >> the gcj package or packages out-weights the disadvantages. Clause added without change. >=20 > this is always true for archs not having vm with a JIT. >=20 If that is the case, why are we not doing more than a handful of gcj-packages? Surely if the performance boost always out-weights the extra costs, then the policy ought to have a "should" or "must" on building these instead of a "only with permission". >> The request and the permission may be limited to certain >> architectures. Clause excluded. >=20 > that should be removed. there is a list of these archs in > /usr/share/gcj/debian_defaults which should be sourced in debian/rules.= > it's fine to build these packages on every arch. the empty package > doesn't hurt, and you won't have to make changes to the packaging if a > new architecture is added. >=20 I have not mentioned this in the policy yet. What do the team feel about this? Building empty gcj packages on architectures with a JIT compiler? > the packages do make sense for architectures which only come with the > ZeroVM in OpenJDK, and no JIT. >=20 Thanks, did not know that. Which architectures are we talking about here? All, all but i386 and amd64, or ...? I had a look in "/usr/share/gcj/debian_defaults" and it contains all architectures in "gcj_native_archs" (except m68k), but I was not sure if it reflected the architectures without a JIT compiler. > Matthias >=20 >=20 ~Niels --------------000204050406030207090607 Content-Type: text/plain; name="p2_fosdem_r2-r3.interdiff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="p2_fosdem_r2-r3.interdiff" ZGlmZiAtdSBwb2xpY3kueG1sIHBvbGljeS54bWwKLS0tIHBvbGljeS54bWwJMjAxMC0wMy0y MyAwMDozMDowMS43NzU0OTcwMjIgKzAxMDAKKysrIHBvbGljeS54bWwJMjAxMC0wMy0yNCAw ODo0NDo0Mi42OTU1MTMxMTkgKzAxMDAKQEAgLTEyOCwxMSArMTI4LDYgQEAKICAgICA8L3Bh cmE+CiAKICAgICA8cGFyYT4KLSAgICAgIFRoZSBKYXZhIGJ5dGVjb2RlICZtYXk7IGFkZGl0 aW9uYWxseSBiZSBzaGlwcGVkIGFzIG1hY2hpbmUgY29kZSwgYXMgcHJvZHVjZWQgZm9yIGV4 YW1wbGUKLSAgICAgIGJ5IHRoZSBHTlUgQ29tcGlsZXIgZm9yIEphdmEsIGluIGEgc2VwYXJh dGUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHBhY2thZ2UuCi0gICAgPC9wYXJhPgotCi0gICAg PHBhcmE+CiAgICAgICBQcm9ncmFtcyBhbmQgbGlicmFyaWVzICZzaG91bGQ7IGVuYWJsZSBK VW5pdCB0ZXN0cywgaWYgdGhlc2UgYXJlIHByZXNlbnQuCiAgICAgICBIb3dldmVyLCB0aGVz ZSB0ZXN0cyAmbXVzdG5vdDsgbGVhZCB0byBidWlsZCBmYWlsdXJlcy4KICAgICA8L3BhcmE+ CkBAIC0zMTYsNTAgKzMxMSw2IEBACiAgICAgICA8L3BhcmE+CiAgICAgPC9zZWN0MT4KIAot ICAgIDxzZWN0MSBpZD0icG9saWN5LWdjai1uYXRpdmUiPgotICAgICAgPHRpdGxlPk5hdGl2 ZSBKYXZhIEJ5dGVjb2RlIChnY2ogcGFja2FnZXMpPC90aXRsZT4KLQotICAgICAgPHBhcmE+ Ci0JSmF2YSBieXRlY29kZSBjb21waWxlZCBpbnRvIG5hdGl2ZSBjb2RlIGlzIHJlZmVycmVk IHRvIGFzCi0JZ2NqLWNvZGUgYW5kIHBhY2thZ2VzIGNvbnRhaW5pbmcgZ2NqLWNvZGUgYXMg Z2NqLXBhY2thZ2VzLgotICAgICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotIAlQYWNrYWdl cyAmbXVzdG5vdDsgc2hpcCBnY2otY29kZSB3aXRob3V0IHRoZSBwZXJtaXNzaW9uIG9mCi0g CXRoZSBKYXZhIHRlYW0gKDxlbWFpbD5kZWJpYW4tamF2YUBsaXN0cy5kZWJpYW4ub3JnPC9l bWFpbD4pLgotCVNvdXJjZSBwYWNrYWdlcyB0aGF0IHNoaXBwZWQgZ2NqLXBhY2thZ2VzIGFz IG9mIE1hcmNoIDIybmQsCi0JMjAxMCwgaGF2ZSBiZWVuIGdpdmVuIHRoaXMgcGVybWlzc2lv biB0aHJvdWdoIHRoZQotCXJhdGlmaWNhdGlvbiBvZiB0aGlzIHBvbGljeS4KLSAgICAgIDwv cGFyYT4KLQotICAgICAgPHBhcmE+Ci0gCVNvdXJjZSBwYWNrYWdlcyBjb21waWxpbmcgZ2Nq LXBhY2thZ2VzICZtdXN0OyBCdWlsZC1EZXBlbmQgb24KLQkmZC1qYmRlcDsuICBUaGUgZ2Nq LXBhY2thZ2VzICZzaG91bGQ7IG9ubHkgYmUgc2hpcHBlZCBmb3IgYSBzZWxlY3RlZAotIAlz ZXQgb2YgYXJjaGl0ZWN0dXJlcy4KLSAgICAgIDwvcGFyYT4KLQotICAgICAgPHBhcmE+Ci0g CVRoZSBnY2otY29kZSAmbXVzdDsgYmUgaW5zdGFsbGVkIGluIDxmaWxlbmFtZT4vdXNyL2xp Yi9nY2ovPC9maWxlbmFtZT4KLQlhbmQgc2hpcHBlZCBpbiBhIHNlcGFyYXRlbHkgZnJvbSB0 aGUgb3JpZ2luYWwgamFyIGZpbGUuIFRoZSBnY2otcGFja2FnZQotCSZtdXN0OyBhbHNvIGlu c3RhbGwgdGhlIGNsYXNzbWFwIGZpbGUgZ2VuZXJhdGVkIGJ5IGFvdC1jb21waWxlIGluCi0J PGZpbGVuYW1lPi91c3Ivc2hhcmUvZ2NqL2NsYXNzbWFwLmQvPC9maWxlbmFtZT4uCi0gICAg ICA8L3BhcmE+Ci0KLSAgICAgIDxwYXJhPgotCVRoZSBnY2otcGFja2FnZSAmbXVzdDsgY2Fs bCByZWJ1aWxkLWdjai1kYiBpbiB0aGUgcG9zdGluc3QgYW5kCi0JcG9zdHJtIHNjcmlwdCwg aWYgcmVidWlsZC1nY2otZGIgaXMgcHJlc2VudC4KLSAgICAgIDwvcGFyYT4KLQotICAgICAg PHBhcmE+Ci0JVGhlIGdjai1wYWNrYWdlICZtdXN0OyBkZXBlbmQgb24gdGhlIHBhY2thZ2Ug cHJvdmlkaW5nIHRoZSBqYXIKLQlmaWxlLCBpdCBpcyBhIG5hdGl2ZSBjb21waWxhdGlvbi4K LSAJVGhlIHBhY2thZ2UgY29udGFpbmluZyB0aGUgamFyIGZpbGUgJm11c3Q7IGRlY2xhcmUg ZWl0aGVyIGEKLQlTdWdnZXN0cyBvciBhIFJlY29tbWVuZHMgcmVsYXRpb25zaGlwIG9uIHRo ZSBnY2otcGFja2FnZS4KLQlUaGlzIHJlbGF0aW9uc2hpcCAmbWF5OyBiZSBkaWZmZXJlbnQg YmV0d2VlbiBhcmNoaXRlY3R1cmVzLgotICAgICA8L3BhcmE+Ci0KLSAgIDwvc2VjdDE+Ci0K ICAgICA8c2VjdDEgaWQ9InBvbGljeS1wb2xpdGljcyI+CiAgICAgICA8dGl0bGU+TWFpbiwg Y29udHJpYiBvciBub24tZnJlZTwvdGl0bGU+CiAgICAgICA8cGFyYT4K --------------000204050406030207090607 Content-Type: text/x-diff; name="p3_fosdem06-gcj.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="p3_fosdem06-gcj.patch" Description: Applies the GCJ part of the FOSDOM 2006 draft. The original proposals have been adapted to better fit the current time. . URL: http://wiki.debian.org/Java/Draft --- policy.xml.orig 2010-03-24 08:49:38.103512020 +0100 +++ policy.xml 2010-03-24 09:15:47.944514335 +0100 @@ -14,6 +14,8 @@ <!ENTITY d-jdk "<emphasis>default-jdk</emphasis>"> <!ENTITY d-jbdep "<emphasis>default-jdk-builddep</emphasis>"> <!ENTITY d-jdoc "<emphasis>default-jdk-doc</emphasis>"> +<!ENTITY JVM "<acronym>JVM</acronym>"> +<!ENTITY JIT "<acronym>JIT</acronym>"> ]> =20 <book> @@ -128,6 +130,11 @@ </para> =20 <para> + The Java bytecode &may; additionally be shipped as machine code, a= s produced for example + by the GNU Compiler for Java, in a separate architecture-specific = package. + </para> + + <para> Programs and libraries &should; enable JUnit tests, if these are p= resent. However, these tests &mustnot; lead to build failures. </para> @@ -311,6 +318,64 @@ </para> </sect1> =20 + <sect1 id=3D"policy-gcj-native"> + <title>Native Java Bytecode (gcj packages)</title> + + <para> + Java bytecode compiled into native code is referred to as + gcj-code and packages containing gcj-code as gcj-packages. + </para> + + <para> + gcj-packages has been added in order to improve + performance of Java libraries and programs. This is + particularly useful on architectures where the JVM + does not have a &JIT;. However, this performance comes=20 + at the cost of size, extra compilation time and + creates architecture dependent packages. + </para> + + <para> + Packages &mustnot; ship gcj-code without the permission of + the Java team (<email>debian-java@lists.debian.org</email>). + Source packages that shipped gcj-packages as of March 22nd, + 2010, have been given this permission through the + ratification of this policy. + </para> + + <para> + A request for permission to add gcj should packages should + convince the Java Team that the performance boost of adding + the gcj-packages out-weights the disadvantages. + </para> + + <para> + Source packages compiling gcj-packages &must; Build-Depend on + &d-jbdep;. The gcj-code &should; only be shipped for a selected + set of architectures. + </para> + + <para> + The gcj-code &must; be installed in <filename>/usr/lib/gcj/</filename>= + and shipped in a separately from the original jar file. The gcj-package= + &must; also install the classmap file generated by aot-compile in + <filename>/usr/share/gcj/classmap.d/</filename>. + </para> + + <para> + The gcj-package &must; call rebuild-gcj-db in the postinst and + postrm script, if rebuild-gcj-db is present. + </para> + + <para> + The gcj-package &must; depend on the package providing the jar + file, it is a native compilation. + The package containing the jar file &must; declare either a + Suggests or a Recommends relationship on the gcj-package. + </para> + + </sect1> + <sect1 id=3D"policy-politics"> <title>Main, contrib or non-free</title> <para> --------------000204050406030207090607 Content-Type: text/x-diff; name="p2_fosdem06_r3.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="p2_fosdem06_r3.patch" Description: Applies the FOSDOM 2006 draft. The original proposals have b= een adapted to better fit the current time. The GCJ changes have been moved = to a separate patch. . This excludes the "Java virtual machines" part based on feedback on #365= 408 URL: http://wiki.debian.org/Java/Draft Closes: #227587 --- policy.xml.orig 2010-03-22 20:04:35.248312944 +0100 +++ policy.xml 2010-03-24 08:44:42.695513119 +0100 @@ -11,6 +11,9 @@ <!ENTITY j2r "<emphasis>java2-runtime</emphasis>"> <!ENTITY jc "<emphasis>java-compiler</emphasis>"> <!ENTITY j2c "<emphasis>java2-compiler</emphasis>"> +<!ENTITY d-jdk "<emphasis>default-jdk</emphasis>"> +<!ENTITY d-jbdep "<emphasis>default-jdk-builddep</emphasis>"> +<!ENTITY d-jdoc "<emphasis>default-jdk-doc</emphasis>"> ]> =20 <book> @@ -119,15 +122,14 @@ <para> Both &must; be shipped as Java bytecode (<filename>*.class</filena= me> files, packaged in a <filename>*.jar</filename> archive) and with - an "Architecture: all". - It &may; additionally be shipped as machine code, as produced for = example - by the GNU Compiler for Java, in a separate architecture-specific - package. + an "Architecture: all". There are rare exceptions to this such as = Eclipse + SWT. Exceptions to this rule can only be granted by the Java Team.= + Requests &must; be sent to <email>debian-java@lists.debian.org</em= ail>. </para> =20 <para> - This policy does not yet address the issue of documentation (for i= nstance - HTML pages made with javadoc). + Programs and libraries &should; enable JUnit tests, if these are p= resent. + However, these tests &mustnot; lead to build failures. </para> =20 <sect1 id=3D"policy-vm"> @@ -257,9 +259,7 @@ </para> =20 <para> - Java libraries &must; depend on the needed runtime environment - (&j1r; and/or &j2r;) but &should; not depend (only suggest) - java-virtual-machine. + Class files in a java library &must; be built with debug symbols. </para> =20 <para> @@ -295,6 +295,20 @@ architecture-specific and follow the usual libXXX[version]-java naming convention. </para> + + <para> + Java library packages &should; compile the javadoc API of the + library. The API &must; link against the javadoc API of the + libraries it depends on. This includes the core java classes, + which are provided by &d-jdoc;. The API &must; be registered with + doc-base and &must; be installed in + <filename>/usr/share/doc/<package>/api/</filename> or + <filename>/usr/share/doc/<package>/api-<component>/</filena= me>. + </para> + <para> + The API &must; be place in a separate doc package. This package + &must; depend on the doc packages it was linked against. + </para> </sect1> =20 <sect1 id=3D"policy-politics"> @@ -322,6 +336,8 @@ url=3D"http://www.gnu.org/software/classpath">GNU-Classpath</ulink>= has a list of free versions), it cannot go to main. If your package itself is free, it &must; go to contrib. + Since java libraries do not have a runtime dependency, + this rule does not apply to them. </para> </listitem> =20 @@ -444,6 +460,11 @@ will be integrated in the policy, one day). </para> </listitem> + <listitem> + <para> + Java packages &should; be built with &d-jdk; if possible. + </para> + </listitem> </itemizedlist> =20 </chapter> --------------000204050406030207090607--
signature.asc
Description: OpenPGP digital signature