This is a detailed instruction to reproduce the log4j distribution either to verify that the release is reproducable or to prepare a hot-fix.
The log4j build is platform dependent. The best is to setup a VM using virtualbox (or similar), install Ubuntu and follow the steps here.
$> sudo sed 's/restricted/restricted universe multiverse/' -i /etc/apt/sources.list $> sudo apt-get update && sudo apt-get -y update $> sudo apt-get install openjdk-6-jdk
$> sudo apt-get install maven2 subversion mingw32 xemacs21 openssh-server
c:\>cd "\Program Files\Java\jdk_1.6.0_16\include\win32 c:\>scp jni_md.h username@hostname: $> export JNI_WIN32_INCLUDE_DIR=/home/username
Create a local ssh key with no passphrase to enable "deployment" of site back to the local machine using scp.
$> ssh-keygen $> cd ~/.ssh $> cat id_rsa.pub >> authorized_keys $> ssh localhost $> exit
It's important to add localhost and people.a.o to the list of permanent allowed hosts. Besides the above, this should have been runned at least once:
$> ssh people.apache.org
If you intended to deploy jars to the repo or update the site, you need to set up ssh to use private keys to access people.apache.org and create or modify ~/.m2/settings.xml to specify user name and key location.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>logging.repo</id> <username>USERNAME for people.apache.org</username> <privateKey>/home/username/.ssh/id_rsa</privateKey> <passphrase></passphrase> </server> </servers> </settings>
You should test your ssh connection to people.apache.org and localhost before attempting a deployment like:
$ ssh -l USERNAME people.apache.org $ ssh localhost
Before you build, please make sure you have a nonblocking editor set as SVN editor. Like:
$ export SVN_EDITOR=xemacs
Other checks:
The release artifacts were originally built by:
$> svn co http://svn.apache.org/repos/asf/logging/log4j/trunk log4j $> cd log4j $> mvn package release:prepare $> mvn release:perform
Note: you'll be ask for a SVN tagname. Please use the following pattern: v1.2.17-RC1.
Attention: this is an non-interactive build. In some cases it is necessary to add: -Dusername=paouser -Dpassword=paopassword to the release plugin commands. This is surely not safe because your password can be seen clearly.
The release artifacts can be rebuilt by:
$ mvn release:perform -DconnectionUrl=scm:svn:https://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_16
Building site and artifacts from a tag:
$ svn co https://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_16 $ cd v1_2_16 $ mvn site assembly:assembly
TODO: the following section describes site staging. This must be altered: the staging must not happen in SVN.
The website content will automatically be staged to the ASF SVN repo by "mvn site-deploy". This phase checks out https://svn.apache.org/repos/asf/logging/site/trunk/docs/log4j/1.2 into target/site-deploy, copys the generated documentation to that directory using scp to localhost and then commits the changed content. You will be prompted for an SVN commit message using the configured SVN_EDITOR. A commit message must be entered or the site commit will be aborted.
The staged content can be tested by opening http://svn.apache.org/repos/asf/logging/site/trunk/docs/1.2/index.html, however some links may be broken due to the staged location. The staged version can be published to the main public site by executing "svn update" in /www/logging.apache.org/log4j/1.2 on people.apache.org.