To build a release:

Make sure workspace revision matches what you want to release.

# Make the source tarball
# only if you didn't already do it for launchpad!
# Otherwise make sure the i2p-0.9.xx.orig.tar.bz2 file is
# in the dir above the source directory, and skip to next step
ant debian-release-tarball

# Following instructions (and filenames) are for unstable.
# Repeat for each target.

# Go to the source directory created by ant debian-release-tarball
# Fix up the changelog
cd i2p_0.9.xx-x-xxxxxxxx/
ant debchange
vi debian/changelog
   change i2p_0.9.xx-x-xxxxxxxx-1 to i2p_0.9.xx-1
   change UNRELEASED to stable
   change comment to "New upstream version 0.9.xx"
   fix your name and email
# fix up the control and rules files as necessary
# fix up the patches/ files as necessary

# build the binary packages:
ant debian-binary
This will make the following files in .:
  i2p-doc_0.9.xx-1_all.deb
  i2p-router_0.9.xx-1_all.deb
  i2p_0.9.xx-1_all.deb
  libjbigi-jni_0.9.xx-1_amd64.deb
Note that you won't have a libjbigi-jni_0.9.xx-1_i386.deb file,
or one for any other architecture. Oh well.

# copy up so they don't get deleted
cp *.deb ..
# remove symlink (fixme?)
rm apps/susidns/src/lib/standard.jar

# build the source package, which will be in ..
# do gpg --list-keys to find your subkey id
debuild -S -sa -kYOURSUBKEYID
  (note: no space allowed in -kkeyid)
This will make the following files in ..:
  i2p_0.9.XX-1.dsc            (the GPG signature)
  i2p_0.9.XX-1.debian.tar.xz  (basically the debian/ directory tarball)
  i2p_0.9.XX-1_source.changes (the changelog text file)
# now do the same for jessie and wheezy and precise (NO, don't, we will copy below)

# scp the following files to the reprepro server:
  i2p_0.9.XX-1.dsc            (the GPG signature)
  i2p_0.9.XX-1.tar.xz  (basically the debian/ directory tarball)
  i2p_0.9.XX-1_source.changes (the changelog text file)
  i2p_0.9.XX.orig.tar.bz2            (the source tarball)
  i2p-doc_0.9.xx-1_all.deb           (docs)
  i2p-router_0.9.xx-1_all.deb        (binary)
  i2p_0.9.xx-1_all.deb               (top-level package)
  libjbigi-jni_0.9.xx-1_amd64.deb    (binary)


ssh to reprepro server
sudo su kytv (he owns the reprepro directories)

reprepro includedeb stable i2p-doc_0.9.xx-1_all.deb
reprepro includedeb stable i2p-router_0.9.xx-1_all.deb
reprepro includedeb stable libjbigi-jni_0.9.xx-1_amd64.deb
reprepro includedeb stable i2p_0.9.xx-1_all.deb
# if you already got the source from launchpad
# with reprepro update, skip this.
reprepro includedsc stable i2p_0.9.XX-1.dsc

# copy built packages from launchpad
for i in precise trusty xenial bionic disco eoan focal
do
	reprepro -v update $i
done

# todo when set up
# To add or remove distributions, edit /var/www/debian/conf/distributions
# and /var/www/debian/conf/updates
# and then: reprepro -v export foo (for new foo)
# and then: reprepro -v update foo
# and:      reprepro -v copysrc foo buster i2p-keyring
# and:      reprepro -v copysrc foo buster syndie
# If you remove, you must do: reprepro clearvanished


# To copy precise to wheezy:
# Note that syntax is reprepro copysrc TO FROM package!
# No longer supported
reprepro -v copysrc wheezy precise i2p

# To copy trusty to jessie:
# Note that syntax is reprepro copysrc TO FROM package!
# No longer supported
reprepro -v copysrc jessie trusty i2p

# To copy trusty to stretch:
# Note that syntax is reprepro copysrc TO FROM package!
# WARNING bionic (now with jetty 9.4) is no longer compatible with stretch (with jetty 9.2)
# WARNING xenial is not compatible with stretch,
# see https://www.reddit.com/r/i2p/comments/bnvcn4/i2p_router_console_inaccessible_to_firefox_on/
# No longer supported
reprepro -v copysrc stretch trusty i2p

# To copy focal to sid and buster:
# Note that syntax is reprepro copysrc TO FROM package!
reprepro -v copysrc sid focal i2p
reprepro -v copysrc buster focal i2p

# check status
reprepro ls i2p
reprepro ls i2p-doc
reprepro ls i2p-router
reprepro ls libjbigi-jni
