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.

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

$ cd /tmp
$ mkdir icedtea6-release
$ cd icedtea6-release
$ <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