There appear to be several (non-functional) changes needed to fix the
two remaining JIRA for M10.  I'd like to commit the attached patch.  Do
any other committers approve this?

The patch fixes:

* Rewrite working_vm/make/resources/readme.txt to include the text from the
  generic README I sent to the list earlier.

* Fix the tag replacement during the existing copy for the above readme.txt
  such that:
  - it is copied to README to be more consistent with the LICENSE/NOTICE files
  - replaces the tags in the target (not the source!) so we don't accidentally
    check in/release a windows x86 specific version this time.

* Make sure the jdk/jre/README file is included at (only) the top-level
  in the hdk and jdk artifacts.

* Create a README in the source of the federation build.  (It might
  be less confusing if the README for svn source was different than the
  README for tar source since the build instructions are different but we
  can discuss that for M11 perhaps.)

* Make sure LICENSE/NOTICE files are added to kernel jars.

* Make sure LICENSE/NOTICE files are added to the test support.jar
  (including re-ordering hy.hdk property to make sure it is defined before
  the common properties.xml is imported.)

* Fix various things to make sure the top-level LICENSE/NOTICE files
  take priority over those from components - mostly to avoid getting the
  classlib LICENSE file which doesn't cover ICU4C.

Checking this means doing something like:

  ant bundle-src
  # untar/unzip the target/apache-harmony-src... artifact
  cd apache-harmony-src-r780017
  # check the LICENSE/NOTICE/README [0]
  ant fetch-depends build bundle-hdk bundle-jdk bundle-jre
  # for each of the three (hdk/jdk/jre) archives created in target check:
  #   1) They contain correct LICENSE/NOTICE/README [0]
  #   2) Any of our jars within the archive contain correct NOTICE/LICENSE

Hopefully this covers both the outstanding JIRA for M10.  Can someone
please sanity check this[1]?

Regards,
 Mark.

[0] Be sure to check that the LICENSE file covers ICU4C since I managed to
    find several ways in which the classlib LICENSE (which doesn't need
    ICU4C) was getting used in the wrong place.

[1] As Oli could confirm I've spent all day cursing about the many ways
    to get this wrong so it really would not surprise me if someone finds
    yet another one.
Index: working_vm/make/resources/readme.txt
===================================================================
--- working_vm/make/resources/readme.txt	(revision 780017)
+++ working_vm/make/resources/readme.txt	(working copy)
@@ -1,31 +1,55 @@
+Apache Harmony - Open Source Java SE
+http://harmony.apache.org/
+Binary Release for @{hy.os}/@{hy.arch} with DRLVM
 
-    Apache Harmony JRE with DRLVM
-    Binary Release for windows*/x86
 
+Apache Harmony is the Java SE project of the Apache Software Foundation.
 
-CONTENTS
----------
+The aim of the project is to produce a large and healthy community of
+those interested in runtime platforms tasked with creation of:
 
-The JRE contains the following directories
+ * A compatible, independent implementation of the Java SE JDK under
+   the Apache License v2
 
+ * A community-developed modular runtime (VM and class library)
+   architecture.
 
-  bin         - Main DRL executable file and set of dynamic libraries
-                needed for running
-  doc         - Getting Started guide
-  include     - Set of header files containing an external specification
-  lib         - Compiled classes and other resources
+For more information about using Apache Harmony see:
 
+  http://harmony.apache.org/quickhelp_users.html
 
-SYSTEM REQUIREMENTS
--------------------
+Please send any feedback to:
 
-This distribution was build for  the x86 architecture and
-the windows operating system.
+  [email protected]
 
 
-JIT EXECUTION MODE
-------------------
+Export Notice
+-------------
 
-By default, the VM runs with the just-in-time compiler enabled.
-To start the VM with the interpreter, supply the -Xint command-line option
-right after the executable name.
+This distribution includes cryptographic software.  The country in
+which you currently reside may have restrictions on the import,
+possession, use, and/or re-export to another country, of
+encryption software.  BEFORE using any encryption software, please
+check your country's laws, regulations and policies concerning the
+import, possession, or use, and re-export of encryption software, to
+see if this is permitted.  See http://www.wassenaar.org/ for more
+information.
+
+The U.S. Government Department of Commerce, Bureau of Industry and
+Security (BIS), has classified this software as Export Commodity
+Control Number (ECCN) 5D002.C.1, which includes information security
+software using or performing cryptographic functions with asymmetric
+algorithms.  The form and manner of this Apache Software Foundation
+distribution makes it eligible for export under the License Exception
+ENC Technology Software Unrestricted (TSU) exception (see the BIS
+Export Administration Regulations, Section 740.13) for both object
+code and source code.
+
+The following provides more details on the included cryptographic
+software:
+
+Apache Harmony contains code that is specifically designed to enable
+cryptography.  In particular Apache Harmony contains an implementation
+the Java cryptographic extensions.  In addition, binary distributions
+of Apache Harmony may contain cryptographic functionality provided by
+The Legion of the Bouncy Castle (http://www.bouncycastle.org).
Index: working_vm/make/build-java.xml
===================================================================
--- working_vm/make/build-java.xml	(revision 780017)
+++ working_vm/make/build-java.xml	(working copy)
@@ -19,6 +19,12 @@
 
     <dirname property="bj.imported.basedir" file="${ant.file.build-java}"/>
     <import file="${bj.imported.basedir}/properties.xml"/>
+
+    <!-- During packaging, these files must be copied into the meta-inf dir -->
+    <fileset id="hy.required.metainf-files" dir="${hy.hdk}">
+        <include name="NOTICE" />
+        <include name="LICENSE" />
+    </fileset>
     
     <macrodef name="compile-java">
         <attribute name="src"/>
@@ -46,9 +52,11 @@
             <mkdir dir="${drlvm.bin.dir}"/>
             <jar jarfile="${drlvm.bin.dir}/@{component}.jar" manifest="@{manifest}">
                 <fileset dir="${drlvm.semi.dir}/@{component}/classes"/>
+                <metainf refid="hy.required.metainf-files"/>
             </jar>
             <jar jarfile="${drlvm.bin.dir}/@{component}-src.jar" manifest="@{manifest}">
                 <fileset dir="@{src}" includes="**/*.java"/>
+                <metainf refid="hy.required.metainf-files"/>
             </jar>
         </sequential>
     </macrodef>
Index: working_vm/build.xml
===================================================================
--- working_vm/build.xml	(revision 780017)
+++ working_vm/build.xml	(working copy)
@@ -223,12 +223,12 @@
             todir="${drlvm.bin.dir}"/>
 
         <copy file="${drlvm.base.dir}/make/resources/readme.txt" 
-            todir="${drlvm.deploy.dir}/jdk/jre"/>
-        <replace file="${drlvm.base.dir}/make/resources/readme.txt">
+              tofile="${drlvm.deploy.dir}/jdk/jre/README"/>
+        <replace file="${drlvm.deploy.dir}/jdk/jre/README" >
             <replacefilter token="@{hy.os}" value="${hy.os}"/>
             <replacefilter token="@{hy.arch}" value="${hy.arch}"/>
         </replace>
-        <fixcrlf srcDir="${drlvm.deploy.dir}/jdk/jre/" includes="readme.txt" />
+        <fixcrlf srcDir="${drlvm.deploy.dir}/jdk/jre" includes="README" />
         
         <chmod file="${drlvm.deploy.dir}/jdk/jre/bin/java*" perm="ugo+x" />
     </target>
Index: working_classlib/make/build-test.xml
===================================================================
--- working_classlib/make/build-test.xml	(revision 780017)
+++ working_classlib/make/build-test.xml	(working copy)
@@ -21,14 +21,15 @@
 
     <description> Tests for classlib package</description>
 
+    <property name="hy.hdk" location="deploy" />
+    <property name="hy.jdk" location="${hy.hdk}/jdk" />
+
     <!-- import common properties -->
     <import file="${basedir}/make/properties.xml" />
 
     <!-- set global properties for this build. -->
 
     <property name="tests.output" location="build/test_report" />
-    <property name="hy.hdk" location="deploy" />
-    <property name="hy.jdk" location="${hy.hdk}/jdk" />
 
     <property name="tests.build.output" location="build/tests" />
     <property name="tests.support.output" location="build/test_support" />
@@ -96,6 +97,7 @@
         <jar destfile="${hy.hdk}/build/test/support.jar"
              manifest="support/META-INF/MANIFEST.MF">
             <fileset dir="${tests.support.output}" />
+            <metainf refid="hy.required.metainf-files"/>
         </jar>
         <copy todir="${hy.hdk}/build/test"> 
         <fileset dir="${jetty.dir}">
Index: README
===================================================================
--- README	(revision 0)
+++ README	(revision 0)
@@ -0,0 +1,65 @@
+Apache Harmony - Open Source Java SE
+http://harmony.apache.org/
+
+Apache Harmony is the Java SE project of the Apache Software Foundation.
+
+The aim of the project is to produce a large and healthy community of
+those interested in runtime platforms tasked with creation of:
+
+ * A compatible, independent implementation of the Java SE JDK under
+   the Apache License v2
+
+ * A community-developed modular runtime (VM and class library)
+   architecture.
+
+This source can be built from a tar/zip using:
+
+  ant fetch-depends build
+
+To build from a subversion checkout it is necessary to fetch the
+component source with:
+
+  ant populate-src
+
+For information, including details of the prerequisites, see:
+
+  http://harmony.apache.org/quickhelp_contributors.html
+
+For more information about using Apache Harmony see:
+
+  http://harmony.apache.org/quickhelp_users.html
+
+Please send any feedback to:
+
+  [email protected]
+
+Export Notice
+-------------
+
+This distribution includes cryptographic software.  The country in
+which you currently reside may have restrictions on the import,
+possession, use, and/or re-export to another country, of
+encryption software.  BEFORE using any encryption software, please
+check your country's laws, regulations and policies concerning the
+import, possession, or use, and re-export of encryption software, to
+see if this is permitted.  See http://www.wassenaar.org/ for more
+information.
+
+The U.S. Government Department of Commerce, Bureau of Industry and
+Security (BIS), has classified this software as Export Commodity
+Control Number (ECCN) 5D002.C.1, which includes information security
+software using or performing cryptographic functions with asymmetric
+algorithms.  The form and manner of this Apache Software Foundation
+distribution makes it eligible for export under the License Exception
+ENC Technology Software Unrestricted (TSU) exception (see the BIS
+Export Administration Regulations, Section 740.13) for both object
+code and source code.
+
+The following provides more details on the included cryptographic
+software:
+
+Apache Harmony contains code that is specifically designed to enable
+cryptography.  In particular Apache Harmony contains an implementation
+the Java cryptographic extensions.  In addition, binary distributions
+of Apache Harmony may contain cryptographic functionality provided by
+The Legion of the Bouncy Castle (http://www.bouncycastle.org).

Property changes on: README
___________________________________________________________________
Added: svn:eol-style
   + native

Index: build.xml
===================================================================
--- build.xml	(revision 780017)
+++ build.xml	(working copy)
@@ -156,7 +156,12 @@
                 <include name="**"/>
                 <exclude name="jdk/jre/bin/java"/>
                 <exclude name="jdk/bin/*"/>
+                <exclude name="jdk/jre/README"/>
             </tarfileset>
+            <tarfileset dir="${target.dir}/hdk/jdk/jre"
+                        prefix="harmony-hdk-${harmony.version}">
+                <include name="README"/>
+            </tarfileset>
         </tar>
 
         <chksum dir="${target.dir}" file="${deploy.hdk.tar}" />
@@ -178,7 +183,12 @@
                 <exclude name="jdk/jre/bin/java.exe"/>
                 <exclude name="jdk/jre/bin/javaw.exe"/>
                 <exclude name="jdk/bin/*"/>
+                <exclude name="jdk/jre/README"/>
             </zipfileset>
+            <zipfileset dir="${target.dir}/hdk/jdk/jre"
+                        prefix="harmony-hdk-${harmony.version}">
+                <include name="README"/>
+            </zipfileset>
         </zip>
 
         <chksum dir="${target.dir}" file="${deploy.hdk.zip}" />
@@ -204,7 +214,12 @@
                 <include name="**"/>
                 <exclude name="jre/bin/java"/>
                 <exclude name="bin/*"/>
+                <exclude name="jre/README"/>
             </tarfileset>
+            <tarfileset dir="${target.dir}/hdk/jdk/jre"
+                        prefix="harmony-jdk-${harmony.version}">
+                <include name="README"/>
+            </tarfileset>
         </tar>
 
         <chksum dir="${target.dir}" file="${deploy.jdk.tar}" />
@@ -224,7 +239,12 @@
                 <exclude name="jre/bin/java.exe"/>
                 <exclude name="jre/bin/javaw.exe"/>
                 <exclude name="bin/*"/>
+                <exclude name="jre/README"/>
             </zipfileset>
+            <zipfileset dir="${target.dir}/hdk/jdk/jre"
+                        prefix="harmony-jdk-${harmony.version}">
+                <include name="README"/>
+            </zipfileset>
         </zip>
         <chksum dir="${target.dir}" file="${deploy.jdk.zip}" />
         <chksum dir="${target.dir}" file="${deploy.jdk.zip}" type="sha" />
@@ -350,7 +370,7 @@
     <!-- ============================================================== -->
     <target name="assemble-hdk-doc">
 
-        <copy todir="${target.dir}/hdk">
+        <copy todir="${target.dir}/hdk" overwrite="true">
             <fileset dir="./">
                 <include name="LICENSE" />
                 <include name="NOTICE" />
@@ -364,7 +384,7 @@
     <!-- ============================================================== -->
     <target name="assemble-jre-doc">
 
-        <copy todir="${target.dir}/hdk/jdk/jre">
+        <copy todir="${target.dir}/hdk/jdk/jre" overwrite="true">
             <fileset dir="./">
                 <include name="LICENSE" />
                 <include name="NOTICE" />
@@ -373,7 +393,7 @@
     </target>
 
     <target name="assemble-jdk-doc">
-        <copy todir="${target.dir}/hdk/jdk/">
+        <copy todir="${target.dir}/hdk/jdk/" overwrite="true">
             <fileset dir="./">
                 <include name="LICENSE" />
                 <include name="NOTICE" />
@@ -398,6 +418,15 @@
             <property name="svn.revision" value="${harmony.version}"/>
             <property name="keep.working" value="true" />
         </ant>
+        <!-- hack to make sure the vm doesn't use the classlib
+             LICENSE/NOTICE files as they don't cover ICU4C
+          -->
+        <copy todir="working_classlib/deploy" overwrite="true">
+            <fileset dir=".">
+                <include name="LICENSE" />
+                <include name="NOTICE" />
+            </fileset>
+        </copy>                                                             
     </target>
 
     <target name="auto-fetch-classlib-libs" if="auto.fetch">

Reply via email to