ReleasingIcedTea

From IcedTea

Jump to: navigation, search

Contents

Create the branch

When any IcedTea release is made, you must make it from the appropriate release branch. For a major release, create a new branch by cloning the Mercurial repository with a command like

 ssh icedtea.classpath.org hg-remote-clone /hg/icedtea6 /hg/release/icedtea6-1.6

which copies from the IcedTea trunk to a new release branch called, in this case, icedtea6-1.6.

Tagging

Once this is done, tag the trunk at the point from which the release branch was made:

 $ cd icedtea6
 $ hg tag -r 9420faca6468 icedtea6-1.6-branchpoint

Make sure you use an explicit Revision ID here, as there may have been a commit to the trunk since you made the branch.

While you're on the trunk, update the version to the next release version by editing the first line of configure.ac:

--- a/configure.ac	Thu Aug 13 15:53:39 2009 +0100
+++ b/configure.ac	Thu Aug 13 16:23:44 2009 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea6], [1.6pre], [distro-pkg-dev@openjdk.java.net])
+AC_INIT([icedtea6], [1.7pre], [distro-pkg-dev@openjdk.java.net])
 AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
 AC_CONFIG_FILES([Makefile])

Tag the branch:

 $ hg clone ssh://icedtea.classpath.org/hg/release/icedtea6-1.6/
 $ cd icedtea6-1.6
 $ hg tag icedtea6-1.6-branch

Update the branch version:

--- a/configure.ac      Fri Aug 07 11:58:27 2009 +0200
+++ b/configure.ac      Thu Aug 13 12:26:57 2009 +0100
@@ -1,4 +1,4 @@
-AC_INIT([icedtea6], [1.6pre], [distro-pkg-dev@openjdk.java.net])
+AC_INIT([icedtea6], [1.6], [distro-pkg-dev@openjdk.java.net])
 AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
 AC_CONFIG_FILES([Makefile])

And send out an email that the branch is ready for commits.

Releasing

Send a message to distro-pkg-dev to the effect that the release branch is now frozen.

Update the NEWS file in the top level IcedTea directory.

Make sure that the autogenerated files in the checkout are updated:

$ cd <location of icedtea hg checkout>
$ ./autogen.sh

Create the tarball in a fresh build directory e.g.:

$ cd /tmp
$ mkdir icedtea6-release
$ cd icedtea6-release
$ <absolute path to location of icedtea hg checkout>/configure
$ make dist

Ensure that the new tarball builds and the result is sane e.g.:

$ cd /tmp
$ tar xzf icedtea6-release/icedtea6-1.6.tar.gz
$ cd icedtea6-1.6
$ ./configure
$ make

Copy the tarball to icedtea.classpath.org:

scp icedtea6-1.6.tar.gz icedtea.classpath.org:/var/lib/public-download/source/

Commit any outstanding changes used in the release, tag and push the release.

$ hg commit
$ hg tag icedtea6-1.6
$ hg push

Send the announcement to distro-pkg-dev: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2009-September/007137.html. But, unlike this example, please try to get the release version right. Finally: update the versions on http://icedtea.classpath.org and http://en.wikipedia.org/wiki/Icedtea.

Make an RPM for Fedora

If you're releasing a nosrc.rpm for Fedora, check out java-1.6.0-openjdk using fedora-cvs:

 cvs -d :pserver:anonymous@cvs.fedoraproject.org:/cvs/pkgs co java-1.6.0-openjdk
 cd java-1.6.0-openjdk/F-11

Update the icedteaver, bump the release, add a "NoSource:1" line:

 Index: java-1.6.0-openjdk.spec
 ===================================================================
 RCS file: /cvs/pkgs/rpms/java-1.6.0-openjdk/F-11/java-1.6.0-openjdk.spec,v
 retrieving revision 1.126
 diff -u -r1.126 java-1.6.0-openjdk.spec
 --- java-1.6.0-openjdk.spec     5 Aug 2009 14:11:41 -0000       1.126
 +++ java-1.6.0-openjdk.spec     11 Sep 2009 13:15:58 -0000
 @@ -6,7 +6,7 @@
 # If runtests is 0 test suites will not be run.
 %define runtests 1
 
-%define icedteaver 1.5
+%define icedteaver 1.6
 %define icedteasnapshot %{nil}
 %define openjdkver b16
 %define openjdkdate 24_apr_2009
@@ -61,6 +61,7 @@
 %ifnarch %{jit_arches}
 %define runtests 0
 %endif
+%define runtests 0
 
 %define buildoutputdir openjdk/build/linux-%{archbuild}
 
@@ -138,7 +139,7 @@
 
 Name:    java-%{javaver}-%{origin}
 Version: %{javaver}.%{buildver}
-Release: 27.%{openjdkver}%{?dist}
+Release: 28.%{openjdkver}%{?dist}
 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons,
 # and this change was brought into RHEL-4.  java-1.5.0-ibm packages
 # also included the epoch in their virtual provides.  This created a
@@ -156,6 +157,7 @@
 URL:      http://icedtea.classpath.org/
 Source0:  %{url}download/source/icedtea6-%{icedteaver}%{icedteasnapshot}.tar.gz
 Source1:  %{fedorazip}
+NoSource: 1
 Source2:  %{accessurl}%{accessmajorver}/java-access-bridge-%{accessver}.tar.gz
 Source3:  %{genurl}generate-fedora-zip.sh
 Source4:  README.src

Open "sources" and delete the line that refers to the old icedtea tarball. Update ".cvsignore":

Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/java-1.6.0-openjdk/F-11/sources,v
retrieving revision 1.64
diff -u -r1.64 sources
--- sources     29 May 2009 14:05:20 -0000      1.64
+++ sources     11 Sep 2009 13:24:58 -0000
@@ -1,7 +1,6 @@
 7a0c160c03012cd40957a7a112e25038  mauve_tests
 1db4280d3228f20ad39ad22382ce2b00  java-access-bridge-1.23.0.tar.gz
 a9cdc5f050eb6e97c1b15ddd39978710  mauve-2008-10-22.tar.gz
-a67303675a53781c4e42bdb02ec78e40  icedtea6-1.5.tar.gz
 dbd7aca5544d1aeebf0eadd45d29d08e  hotspot.tar.gz
 a6756a62291ebea5c0e2431389b31380  netbeans-profiler-visualvm_release65_mod.tar.gz
 547db20e170c2a2566a56455b196aef7  openjdk-6-src-b16-24_apr_2009-fedora.tar.gz
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/java-1.6.0-openjdk/F-11/.cvsignore,v
retrieving revision 1.57
diff -u -r1.57 .cvsignore
--- .cvsignore  29 May 2009 14:05:20 -0000      1.57
+++ .cvsignore  11 Sep 2009 13:24:58 -0000
@@ -1,7 +1,7 @@
 mauve_tests
 java-access-bridge-1.23.0.tar.gz
 mauve-2008-10-22.tar.gz
-icedtea6-1.5.tar.gz
+icedtea6-1.6.tar.gz
 hotspot.tar.gz
 netbeans-profiler-visualvm_release65_mod.tar.gz
 openjdk-6-src-b16-24_apr_2009-fedora.tar.gz

Now copy the tarball you just made into the F-11 directory and try a build:

cp /local/icedtea6-1.6/icedtea6-1.6.tar.gz .
make local

You may have to adjust some of the patches in java-1.6.0-openjdk.spec if they are not appropriate for the new release.

Once make local has completed you'll have a full set of test RPMs and a .nosrc RPM to copy to icedtea.classpath.org:

scp java-1.6.0-openjdk-1.6.0.0-28.b16.fc11.nosrc.rpm icedtea.classpath.org:/var/lib/public-download/fedora

Personal tools