[[!meta title="Updating pkgsrc/lang/openjdk7"]]

openjdk uses hgforest extension of mercurial (hg).
hgforest works with mercurial-1.x only.
You should install latest 1.x branch of mecurial, 1.2.1 from
http://mercurial.selenic.com/release/mercurial-1.2.1.tar.gz .
mercurial-1.2.1 is used first fclone only.


# Install prerequisitic packages.

    $ cd /usr/pkgsrc/devel/gmake
    $ make install
    $ cd /usr/pkgsrc/devel/mercurial
    $ make install
    $ cd /usr/pkgsrc/lang/openjdk7
    $ make depends


# Creating working directory.

    $ cd ~/
    $ mkdir -p repos/openjdk7
    $ cd repos/openjdk7


# Install mercurial-1.2.1.
2.x branch of mercurial may be used for daily works.
mercurial-1.2.1 should be installed in your working directory.

    $ ftp http://mercurial.selenic.com/release/mercurial-1.2.1.tar.gz
    $ tar zxvf mercurial-1.2.1.tar.gz
    $ cd mercurial-1.2.1
    $ gmake PREFIX=~/repos/openjdk7/hg PYTHON=/usr/pkg/bin/python2.7 install


# hg clone hgforest extansion.

    $ PYTHONPATH=~/repos/openjdk7/hg/lib/python2.7/site-packages ~/repos/openjdk7/hg/bin/hg clone https://bitbucket.org/gxti/hgforest

Installation is not needed.


# fclone openjdk7 source code.

    $ cat ~/.hgrc
    [extensions]
    forest=~/repos/openjdk7/hgforest/forest.py
    $ PYTHONPATH=~/repos/openjdk7/hg/lib/python2.7/site-packages ~/repos/openjdk7/hg/bin/hg fclone http://hg.openjdk.java.net/bsd-port/bsd-port/ 

You have gotten bsd-port directory, ~/repos/openjdk7/bsd-port.

    $ ls -F bsd-port
    ASSEMBLY_EXCEPTION
    LICENSE
    Makefile
    README
    README-builds.html
    THIRD_PARTY_README
    corba/
    get_source.sh
    hotspot/
    jaxp/
    jaxws/
    jdk/
    langtools/
    make/
    test/

And remove forest= line from your ~/.hgrc.
It is problematic for mercurial-2.x.


# checkout latest tagged version.
fcheckout command does not work properly for my tree at least.
You should enter each directory, and check tha status of each tree
using mercurial-2.x.

For example,

    $ cd jdk
    $ hg pull && hg update

You should do in each directory in bsd-port/.

In this case, I will use tip version.


# Creating source tarball.

    $ cd ..
    $ cp -a bsd-port openjdk
    $ find openjdk -type d -name .hg | xargs rm -rf
    $ tar jvfc openjdk-1.7.25-20130626.tar.bz2 openjdk


# Put the tarball to openjdk7 directory of ${DISTDIR}.

    $ cp openjdk-1.7.25-20130626.tar.bz2 /ust/distfiles/openjdk7


# Upload the tarball to ${MASTER_SITE_LOCAL:=openjdk7/}

Using scp, for example, upload the tarball.


# Creating bootstrap binaries.
I have no idea...


# Follow usual package updating procedure.