[ 
https://issues.apache.org/jira/browse/HBASE-13887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Purtell updated HBASE-13887:
-----------------------------------
    Description: 
The build instructions in the online manual do not describe the extra steps we 
need to take to build 0.98. Add a section on this.

A quick enumeration of the differences:

1. Source assemblies will be missing the hbase-hadoop1-compat module. This 
should be fixed in the POM somehow. What I do now is untar the src tarball, cp 
-a the module over, then tar up the result. (It's a hack in a release script.)

2. We must munge POMs for building hadoop1 and hadoop2 variants and then 
execute two builds pointing Maven at each munged POM. The 
generate-hadoop-X-poms script requires bash
{noformat}
$ bash dev-support/generate-hadoopX-poms.sh $version $version-hadoop1
$ bash dev-support/generate-hadoopX-poms.sh $version $version-hadoop2
{noformat}
Build Hadoop 1
{noformat}
  $ mvn -f pom.xml.hadoop1 clean install -DskipTests -Prelease && \
      mvn -f pom.xml.hadoop1 install -DskipTests site assembly:single \
        -Prelease && \
      mvn -f pom.xml.hadoop1 deploy -DskipTests -Papache-release
  $ cp hbase-assembly/target/hbase*-bin.tar.gz $release_dir
{noformat}
Build Hadoop 2
{noformat}
  $ mvn -f pom.xml.hadoop2 clean install -DskipTests -Prelease && \
      mvn -f pom.xml.hadoop2 install -DskipTests site assembly:single \
        -Prelease && \
      mvn -f pom.xml.hadoop2 deploy -DskipTests -Papache-release
  $ cp hbase-assembly/target/hbase*-bin.tar.gz $release_dir
{noformat}

3. Current HEAD of 0.98 branch enforces a requirement that the release be built 
with a JDK no more recent than the compile language level. For 0.98, that is 
1.6, therefore the ancient 6u45 JDK. This JDK suffers from 
[JDK-6521495|http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6521495] so 
the following workaround is required in order to deploy artifacts to Apache's 
Nexus:
3.a. Download https://www.bouncycastle.org/download/bcprov-jdk15on-152.jar and 
https://www.bouncycastle.org/download/bcprov-ext-jdk15on-152.jar into 
$JAVA_HOME/lib/ext.
3.b. Edit $JAVA_HOME/lib/security/java.security and add the BouncyCastle 
provider as the first provider: 
{noformat}
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
{noformat}



  was:
The build instructions in the online manual do not describe the extra steps we 
need to take to build 0.98. Add a section on this.

A quick enumeration of the differences:

1. Source assemblies will be missing the hbase-hadoop1-compat module. This 
should be fixed in the POM somehow. What I do now is untar the src tarball, cp 
-a the module over, then tar up the result. (It's a hack in a release script.)

2. We must munge POMs for building hadoop1 and hadoop2 variants and then 
execute two builds pointing Maven at each munged POM. 

3. Current HEAD of 0.98 branch enforces a requirement that the release be built 
with a JDK no more recent than the compile language level. For 0.98, that is 
1.6, therefore the ancient 6u45 JDK. This JDK suffers from 
[JDK-6521495|http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6521495] so 
the following workaround is required in order to deploy artifacts to Apache's 
Nexus:
3.a. Download https://www.bouncycastle.org/download/bcprov-jdk15on-152.jar and 
https://www.bouncycastle.org/download/bcprov-ext-jdk15on-152.jar into 
$JAVA_HOME/lib/ext.
3.b. Edit $JAVA_HOME/lib/security/java.security and add the BouncyCastle 
provider as the first provider: 
{noformat}
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
{noformat}




> Document 0.98 release build differences
> ---------------------------------------
>
>                 Key: HBASE-13887
>                 URL: https://issues.apache.org/jira/browse/HBASE-13887
>             Project: HBase
>          Issue Type: Bug
>          Components: documentation, site
>            Reporter: Andrew Purtell
>             Fix For: 2.0.0
>
>
> The build instructions in the online manual do not describe the extra steps 
> we need to take to build 0.98. Add a section on this.
> A quick enumeration of the differences:
> 1. Source assemblies will be missing the hbase-hadoop1-compat module. This 
> should be fixed in the POM somehow. What I do now is untar the src tarball, 
> cp -a the module over, then tar up the result. (It's a hack in a release 
> script.)
> 2. We must munge POMs for building hadoop1 and hadoop2 variants and then 
> execute two builds pointing Maven at each munged POM. The 
> generate-hadoop-X-poms script requires bash
> {noformat}
> $ bash dev-support/generate-hadoopX-poms.sh $version $version-hadoop1
> $ bash dev-support/generate-hadoopX-poms.sh $version $version-hadoop2
> {noformat}
> Build Hadoop 1
> {noformat}
>   $ mvn -f pom.xml.hadoop1 clean install -DskipTests -Prelease && \
>       mvn -f pom.xml.hadoop1 install -DskipTests site assembly:single \
>         -Prelease && \
>       mvn -f pom.xml.hadoop1 deploy -DskipTests -Papache-release
>   $ cp hbase-assembly/target/hbase*-bin.tar.gz $release_dir
> {noformat}
> Build Hadoop 2
> {noformat}
>   $ mvn -f pom.xml.hadoop2 clean install -DskipTests -Prelease && \
>       mvn -f pom.xml.hadoop2 install -DskipTests site assembly:single \
>         -Prelease && \
>       mvn -f pom.xml.hadoop2 deploy -DskipTests -Papache-release
>   $ cp hbase-assembly/target/hbase*-bin.tar.gz $release_dir
> {noformat}
> 3. Current HEAD of 0.98 branch enforces a requirement that the release be 
> built with a JDK no more recent than the compile language level. For 0.98, 
> that is 1.6, therefore the ancient 6u45 JDK. This JDK suffers from 
> [JDK-6521495|http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6521495] so 
> the following workaround is required in order to deploy artifacts to Apache's 
> Nexus:
> 3.a. Download https://www.bouncycastle.org/download/bcprov-jdk15on-152.jar 
> and https://www.bouncycastle.org/download/bcprov-ext-jdk15on-152.jar into 
> $JAVA_HOME/lib/ext.
> 3.b. Edit $JAVA_HOME/lib/security/java.security and add the BouncyCastle 
> provider as the first provider: 
> {noformat}
> security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to