On Fri, Jun 19, 2009 at 1:12 AM, Mark Hindess <mark.hind...@googlemail.com>wrote:
> > In message <3b3f27c60906181932w57bd3a0fm9c56c1ec3ccf4...@mail.gmail.com>, > Nathan Beyer writes: > > > > Nice doc. Are you going to put that on the wiki as well? > > I was planning to. However, my thought process in going to do this was: > > 1) Where should it go? > 2) Probably it should be linked to from the same process page as the > BranchMerge doc. > 3) Where is the BranchMerge doc linked from? > 4) Tried looking for a link to the BranchMerge doc but didn't find one. > 5) Wondered how many other wiki pages might be not linked. > 6) Decided there was too much to fix for the time I had alloted to this > task. > 7) Added trying to tidy up the wiki to my todo list. > > Maybe I was wrong about 4-6. I can probably get google to give me an > answer to 4. Not sure how to get the wiki to tell me about 5 though. > > Regards, > Mark. This might be a slight be off-topic, but personally I think this is because the wiki software we're using sucks. I'd like to move over to the Confluence wiki at http://cwiki.apache.org/ - it works so much better and we could also use it to back our site at http://harmony.apache.org/ like http://directory.apache.org/ and other projects do. -Nathan > > > > > On Thu, Jun 18, 2009 at 8:13 AM, Mark Hindess > > <mark.hind...@googlemail.com>wrote: > > > > > > > > I built the Linux binaries for the M10 release using a clean minimal > > > build environment. I created the clean environment using the > > > copy-on-write builder (cowbuilder) on Debian. I'd like the process > > > for generating the release binaries from the source to be as "open" as > > > possible so I've appended a rough description of what I did. > > > > > > (I used cowbuilder rather than debootstrap/chroot because the tree > > > remains clean for re-use and because it handles mounting /proc, etc for > > > you.) > > > > > > Regards, > > > Mark. > > > > > > # install the copy-on-write builder (intended for use by pdebuild when > > > # creating debian packages > > > sudo apt-get install cowbuilder > > > > > > # cd to temporary directory on the same filesystem as > /var/cache/pbuilder > > > # create a pristine debian etch environment (etch because the lenny > version > > > # of libc is too new with respect to some enterprise distributions) > > > sudo cowbuilder --create --basepath etch-amd64.cow --distribution etch > \ > > > --debootstrap debootstrap > > > > > > # get login shell in new environment > > > sudo cowbuilder --login --basepath etch-amd64.cow > > > > > > # set $HOME to /tmp > > > cd /tmp > > > HOME=/tmp > > > export HOME > > > > > > # install wget > > > apt-get install wget > > > > > > # fetch the harmony KEYS file > > > wget -q -O- http://svn.apache.org/repos/asf/harmony/KEYS | gpg > --import > > > > > > # install a jre to bootstrap building the M10 snapshots > > > # (M10 debian packages as I built the M9 packages with lenny not etch) > > > for f in jre classlib drlvm ; do > > > # fetch package and check signature > > > wget > > > > http://my.server.example.com/deb/harmony-5.0-${f}_0.0r782693-1_amd64.deb<http://my.server.example.com/deb/harmony-5.0-$%7Bf%7D_0.0r782693-1_amd64.deb> > <ht > > tp:// > my.server.example.com/deb/harmony-5.0-$%7Bf%7D_0.0r782693-1_amd64.deb> > > > wget $_.asc > > > gpg --verify harmony-5.0-${f}_0.0r782693-1_amd64.deb.asc > > > # check the output to make sure it is good > > > done > > > > > > # (attempt to) install the bootstrap jre > > > dpkg -i harmony-5.0*.deb > > > > > > # this fails due to missing dependencies so ask apt-get to fix the > missing > > > # dependencies > > > apt-get install -f > > > > > > # install the other build dependencies > > > apt-get install ant subversion ant-optional liblcms1-dev libjpeg62-dev > \ > > > libpng-dev libxft-dev libxml2-dev libxtst-dev > > > libxext-dev > > > > > > # create a user to perform the build > > > useradd -d /tmp build > > > > > > # make the harmony keys we've imported available to the new user > > > chown -R build /tmp/.gnupg > > > > > > # become the build user > > > su - build > > > > > > # fetch the harmony source and check the signature > > > wget > > > > http://people.apache.org/~hindessm/m10/apache-harmony-src-r782693-snapshot<http://people.apache.org/%7Ehindessm/m10/apache-harmony-src-r782693-snapshot> > . > > tar.gz< > http://people.apache.org/%7Ehindessm/m10/apache-harmony-src-r782693-sn > > apshot.tar.gz> > > > wget $_.asc > > > gpg --verify apache-harmony-src-r782693-snapshot.tar.gz.asc > > > # check the output to make sure it is good > > > > > > # unpack the sources > > > tar xzf apache-harmony-src-r782693-snapshot.tar.gz > > > cd apache-harmony-src-r782693 > > > > > > # fetch the dependencies > > > ant fetch-depends > > > > > > # un-become the build user so root can work some magic > > > exit > > > > > > # cd to build tree > > > cd /tmp/apache-harmony-src-r782693 > > > > > > # copy some dependencies to ant lib > > > cat common_resources/depends/jars/ecj_3.4.2/ecj-3.4.2.jar \ > > > >/usr/share/ant/lib/ecj.jar > > > cat working_classlib/depends/jars/junit_4.4/junit.jar \ > > > >/usr/share/ant/lib/junit.jar # only needed to run tests > > > > > > # become the build user > > > su - build > > > > > > # cd to build tree > > > cd apache-harmony-src-r782693 > > > > > > # build and create bundles > > > ant build bundle-hdk bundle-jdk bundle-jre > > > > > > # copy target/* to host > > > # hint: outside of the cowbuilder shell the files will be in: > > > # /var/cache/pbuilder/build/cow.NNNNN/tmp/apache.../target > > > # use lsof as follows to find the correct value for NNNNN: > > > # lsof +d /var/cache/pbuilder/build > > > > > > # repeat for i386 > > > sudo cowbuilder --create --debootstrapopts --arch=i386 \ > > > --basepath etch-i386.cow --distribution etch \ > > > --debootstrap debootstrap > > > > > > # use linux32 to get a suitable (fake) i386 environment > > > linux32 sudo cowbuilder --login --basepath etch-i386.cow > > > # continue as before but with x86 / i386 instead of x86_64 / amd64 > > > > > > > > > > > > > --001636163eb5ba576b046caa56df-- > > > > >