harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nathan Beyer <ndbe...@apache.org>
Subject Re: [general] How I created the Linux binaries for the M10 release
Date Fri, 19 Jun 2009 23:44:23 GMT
On Fri, Jun 19, 2009 at 1:12 AM, Mark Hindess
<mark.hindess@googlemail.com>wrote:

>
> In message <3b3f27c60906181932w57bd3a0fm9c56c1ec3ccf4ef3@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.hindess@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--
> >
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message