Build: add xenial release target, it will be our 4th launchpad flavor.

build.xml cleanups
doc updates
This commit is contained in:
zzz
2017-11-26 15:27:06 +00:00
parent fb4fb47ee3
commit 6a48910935
4 changed files with 137 additions and 45 deletions

149
build.xml
View File

@ -432,10 +432,22 @@
<!-- end of sub-build.xml targets -->
<!-- monotone targets -->
<target name="checkForMtn" >
<available property="mtn.available" file="_MTN" type="dir" />
</target>
<target name="failIfNoMtn" depends="checkForMtn">
<fail message="This target cannot be used without Monotone! Use &quot;fakeroot debian/rules get-orig-source&quot; instead.">
<condition>
<not>
<isset property="mtn.available" />
</not>
</condition>
</fail>
</target>
<target name="getMtnRev" depends="checkForMtn" if="mtn.available" >
<exec executable="mtn" outputproperty="workspace.version" errorproperty="mtn.error1" failifexecutionfails="false" >
<arg value="automate" />
@ -490,6 +502,10 @@
match='(^\s+public\s+final\s+static\s+long\s+BUILD\s+=\s+)[0-9]+;' replace='\1${new.i2p.build.number};'/>
</target>
<!-- end monotone targets -->
<!-- launch4j targets -->
<condition property="noExe">
<not>
<!-- We only have launch4j binaries for the following systems -->
@ -533,6 +549,8 @@
classpath="${basedir}/installer/lib/launch4j/launch4j.jar:${basedir}/installer/lib/launch4j/lib/xstream.jar" />
</target>
<!-- end launch4j targets -->
<!--
the files are now copied to the build directory
in the build* targets
@ -546,6 +564,8 @@
<copy file="apps/susidns/src/lib/standard.jar" todir="build/" />
</target>
<!-- jbigi targets -->
<target name="jbigi-list-changes" depends="checkForMtn" if="mtn.available">
<exec executable="mtn" outputproperty="workspace.changes.jbigi" errorproperty="mtn.error.jbigi" failifexecutionfails="false" >
<arg value="list" />
@ -677,6 +697,8 @@
</jar>
</target>
<!-- end jbigi targets -->
<!-- the apps need to compile the jsps to poupdate -->
<target name="poupdate" depends="buildRouter, buildStreaming, buildSystray, buildJetty, buildDesktopGui, buildJrobin" >
<echo message="Setting environment variable LG2 to a lang code (eg: de,zh,nl etc)" />
@ -932,7 +954,7 @@
</fail>
</target>
<target name="-pre-release" depends="-pre-sign">
<target name="-pre-release" depends="-pre-sign, failIfNoMtn">
<echo message="================================================================" />
<echo message="Did you update these files?" />
<exec executable="ls" failonerror="true">
@ -2031,17 +2053,27 @@
</target>
<target name="mavenCentral.deps" depends="buildRouter, buildStreaming">
<ant dir="core/java/" target="javadocJar" />
<ant dir="core/java/" target="sourcesJar" />
<ant dir="router/java/" target="javadocJar" />
<ant dir="router/java/" target="sourcesJar" />
<ant dir="apps/ministreaming/java/" target="javadocJar" />
<ant dir="apps/ministreaming/java/" target="sourcesJar" />
<ant dir="apps/streaming/java/" target="javadocJar" />
<ant dir="apps/streaming/java/" target="sourcesJar" />
<ant dir="apps/jetty/" target="servletJar" />
<ant dir="apps/jetty/" target="servletJavadocJar" />
<ant dir="apps/jetty/" target="servletSourcesJar" />
<ant dir="core/java/">
<target name="javadocJar" />
<target name="sourcesJar" />
</ant>
<ant dir="router/java/">
<target name="javadocJar" />
<target name="sourcesJar" />
</ant>
<ant dir="apps/ministreaming/java/">
<target name="javadocJar" />
<target name="sourcesJar" />
</ant>
<ant dir="apps/streaming/java/">
<target name="javadocJar" />
<target name="sourcesJar" />
</ant>
<ant dir="apps/jetty/">
<target name="servletJar" />
<target name="servletJavadocJar" />
<target name="servletSourcesJar" />
</ant>
</target>
<target name="mavenCentral" depends="verifyReleaseBuildNumbers, -pre-release, distclean, testscripts, mavenCentral.deps">
@ -2242,15 +2274,9 @@
<delete dir="./.pc" />
</target>
<target name="debian-tarball" depends="getExtendedVersion">
<!-- stretch+, zesty+ -->
<target name="debian-tarball" depends="getExtendedVersion, failIfNoMtn">
<!-- this will use the monotonerc file in the current workspace -->
<fail message="This target cannot be used without Monotone! Use &quot;fakeroot debian/rules get-orig-source&quot; instead.">
<condition>
<not>
<isset property="mtn.available" />
</not>
</condition>
</fail>
<property name="debian.tarball.name" value="i2p_${Extended.Version}.orig.tar.bz2" />
<echo message="Checking out fresh copy into ../i2p-${Extended.Version} for tarballing:" />
<delete dir="../i2p-${Extended.Version}" />
@ -2312,15 +2338,7 @@
- We add a 'p' to the release name and tarball since the source package is different;
- Launchpad does not allow different source packages with the same name.
-->
<target name="precise-release-tarball" depends="getExtendedVersion">
<!-- this will use the monotonerc file in the current workspace -->
<fail message="This target cannot be used without Monotone! Use &quot;fakeroot debian/rules get-orig-source&quot; instead.">
<condition>
<not>
<isset property="mtn.available" />
</not>
</condition>
</fail>
<target name="precise-release-tarball" depends="getExtendedVersion, failIfNoMtn">
<property name="debian.tarball.name" value="i2p_${release.number}p.orig.tar.bz2" />
<echo message="Checking out fresh copy into ../i2p-${Extended.Version} for tarballing:" />
<delete dir="../i2p-${Extended.Version}" />
@ -2387,16 +2405,71 @@
</tar>
</target>
<!-- xenial/yakkety only -->
<!-- same as debian-release-tarball but with bundled jstl.jar
(there's no libtaglibs-standard-* packages)
- We add a 'x' to the release name and tarball since the source package is different;
- Launchpad does not allow different source packages with the same name.
-->
<target name="xenial-release-tarball" depends="getExtendedVersion, failIfNoMtn">
<property name="debian.tarball.name" value="i2p_${release.number}x.orig.tar.bz2" />
<echo message="Checking out fresh copy into ../i2p-${Extended.Version} for tarballing:" />
<delete dir="../i2p-${Extended.Version}" />
<exec executable="mtn" failonerror="true">
<arg value="co" />
<!-- w: is the revision of the current workspace -->
<arg value="-r" />
<arg value="w:" />
<arg value="-b" />
<arg value="i2p.i2p" />
<arg value="../i2p-${Extended.Version}" />
</exec>
<delete includeemptydirs="true" quiet="false" failonerror="false">
<fileset dir="../i2p-${Extended.Version}/debian-alt/" />
<fileset dir="../i2p-${Extended.Version}/installer/lib/" />
<fileset dir="../i2p-${Extended.Version}/Slackware" />
<fileset dir="../i2p-${Extended.Version}/_MTN" />
<fileset dir="../i2p-${Extended.Version}/core/java/src/gnu/gettext" />
<fileset dir="../i2p-${Extended.Version}/core/java/src/gnu/getopt" />
<!--
<fileset dir="../i2p-${Extended.Version}/core/java/src/org/apache/http" />
-->
<file name="../i2p-${Extended.Version}/installer/resources/geoip.txt" />
<file name="../i2p-${Extended.Version}/installer/resources/geoipv6.dat.gz" />
<fileset dir="../i2p-${Extended.Version}/apps/jetty/jetty-distribution-9.2.22.v20170606" />
<fileset dir="../i2p-${Extended.Version}/apps/jetty/apache-tomcat-8.5.23" />
<!--
<file name="../i2p-${Extended.Version}/apps/susidns/src/lib/jstl.jar" />
-->
<file name="../i2p-${Extended.Version}/apps/susidns/src/lib/standard.jar" />
<!-- anything added above, add in debian-tarball also -->
</delete>
<tar longfile="gnu" destfile="../${debian.tarball.name}" compression="bzip2">
<tarfileset dir="../i2p-${Extended.Version}" prefix="/i2p-${release.number}">
<include name="**/**" />
<exclude name="debian/**"/>
<exclude name="debian-alt/**"/>
<exclude name="**/*.sh"/>
<exclude name="installer/resources/geoip.txt"/>
<exclude name="installer/resources/geoipv6.dat.gz"/>
<exclude name="apps/jetty/jetty-distribution-*/**"/>
<exclude name="apps/jetty/apache-tomcat-*/**"/>
<!--
<exclude name="apps/susidns/src/lib/jstl.jar" />
-->
<exclude name="apps/susidns/src/lib/standard.jar" />
<!-- anything added above, add in debian-tarball also -->
</tarfileset>
<tarfileset dir="../i2p-${Extended.Version}" prefix="/i2p-${release.number}" filemode="755">
<exclude name="debian/**" />
<include name="**/*.sh" />
</tarfileset>
</tar>
</target>
<!-- stretch+, zesty+ -->
<!-- same as debian-tarball but with a release tar.bz2 file name and tar prefix -->
<target name="debian-release-tarball" depends="getExtendedVersion">
<!-- this will use the monotonerc file in the current workspace -->
<fail message="This target cannot be used without Monotone! Use &quot;fakeroot debian/rules get-orig-source&quot; instead.">
<condition>
<not>
<isset property="mtn.available" />
</not>
</condition>
</fail>
<target name="debian-release-tarball" depends="getExtendedVersion, failIfNoMtn">
<property name="debian.tarball.name" value="i2p_${release.number}.orig.tar.bz2" />
<echo message="Checking out fresh copy into ../i2p-${Extended.Version} for tarballing:" />
<delete dir="../i2p-${Extended.Version}" />

View File

@ -93,9 +93,9 @@ reprepro -v copysrc wheezy precise i2p
# Note that syntax is reprepro copysrc TO FROM package!
reprepro -v copysrc jessie trusty i2p
# To copy xenial to stretch:
# To copy zesty to stretch:
# Note that syntax is reprepro copysrc TO FROM package!
reprepro -v copysrc stretch xenial i2p
reprepro -v copysrc stretch zesty i2p
# install in the architectures not copied from ubuntu
# 'flood' should do this but forgot how, can't make it work any more

View File

@ -49,7 +49,9 @@ Generate files to upload
(or add -kkeyid argument to debuild, which you must do
if you want to sign with a subkey)
run gpg -K to list your private keys
- ant debian-release-tarball (ant precise-release-tarball for precise/trusty)
- ant debian-release-tarball (this is currently for zesty and higher)
(ant precise-release-tarball for precise thru wily... only do this once for both the precise and trusty build)
(ant xenial-release-tarball for xenial and yakkety)
this will make a directory ../i2p-0.9.XX-0-xxxxxxxx/
and a tarball ../i2p_0.9.XX.orig.tar.bz2
- cp debian/changelog ../i2p-0.9.XX-0-xxxxxxxx/debian/

View File

@ -1,4 +1,4 @@
# Release checklist
# Release checklist and process
## One week before
@ -26,6 +26,11 @@
- Review Google Play crash reports, fix any related issues
- Initial review: Review the complete diff from the last release, fix any issues
- Trial Debian build: Build and test a preliminary Debian build
with 'ant debian' and fix any issues
## A day or two before
@ -236,6 +241,15 @@
2. Upload the bundles to Maven Central via https://oss.sonatype.org
### Android build
1. See branch i2p.android.base for build instructions
2. Upload to Google Play, F-Droid, and website
3. Announce on Twitter
### Notify release
1. Upload files to launchpad release (download mirror)
@ -256,15 +270,18 @@
4. Announce on:
- #i2p, #i2p-dev (also on Freenode side)
- forum.i2p
- IRC
- Twitter
5. Launchpad builds
(see debian-alt/doc/launchpad.txt for instructions)
6. Debian builds
6. Copy launchpad files to our Debian repo,
or build Debian packages and upload them
(see debian-alt/doc/debian-build.txt for instructions)
7. Announce Launchpad and Debian builds on Twitter
8. Notify Tails that new Debian builds are available
8. Notify downstream Debian maintainer
9. (if we get back into Tails) Notify Tails that new Debian builds are available