ReleasingIcedTea
From IcedTea
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

