Debian: Update launchpad instructions

Add debian build instructions
This commit is contained in:
zzz
2016-04-02 13:30:15 +00:00
parent a834cef1f4
commit f867a9d4ce
2 changed files with 113 additions and 7 deletions

View File

@@ -0,0 +1,66 @@
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 unstable
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.
# 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
# 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 unstable i2p-doc_0.9.xx-1_all.deb
reprepro includedeb unstable i2p-router_0.9.xx-1_all.deb
reprepro includedeb unstable i2p_0.9.xx-1_all.deb
reprepro includedeb unstable libjbigi-jni_0.9.xx-1_amd64.deb
# if you already got the source from launchpad
# with reprepro update, skip this?
reprepro includedsc unstable i2p_0.9.XX-1.dsc

View File

@@ -0,0 +1,168 @@
Instructions to upload to launchpad PPA
You must have a GPG key already uploaded to the
usual public key servers, where launchpad can find it.
Prep
----
- Make a launchpad account
- Log into launchpad
- Get your GPG fingerprint (gpg -K --fingerprint)
- Add your GPG fingerprint at the form on
https://launchpad.net/~/+editpgpkeys
- Wait for the encrypted email response
- Decrypt and click the confirmation link in the email
- Click confirm on the page
- Make a PPA, lets call it 'test'
- OPTIONAL: Go to i2p.packages PPA and copy over existing I2P to your PPA:
(select "copy existing binaries")
trusty, vivid, wily, xenial
not precise (only if building for precise which you probably aren't)
not utopic (obsolete, disabled by launchpad)
- Go to i2p.packages PPA and copy over service-wrapper-java to your PPA.
This is required for the build.
(select "copy existing binaries")
trusty
not precise (only if building for precise which you probably aren't)
not vivid, wily, xenial (more recent versions 3.5.25-2 or 3.5.26-3 are in official launchpad)
not utopic (obsolete, disabled by launchpad)
- you need the following packages
sudo apt-get install devscripts dput dh_systemd
- check out clean copy of release:
mtn co -d i2p.mtn -b i2p.i2p i2p.i2p.foobar -r t:i2p-0.9.xx
Generate files to upload
------------------------
- export TZ=UTC
- cd i2p.i2p.foobar
- edit debian/changelog to add the release at the top
* version MUST be 0.9.XX-1ubuntu1
next version for fixes would be 0.9.XX-2ubunutu1
* series MUST be trusty
* name and email MUST EXACTLY match what's in your GPG keyring
or the signing will fail.
(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
- edit debian/control to uncomment libservice-wrapper-java line
- ant debian-release-tarball
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/
- cd ../i2p-0.9.XX-0-xxxxxxxx/
- Build the *1ubuntu1* files:
If you have NOT done a successful dput for this release yet:
debuild -S -sa -kkeyid
otherwise, if just fixing up the control files, patches, etc:
debuild -S -sd -kkeyid
(note: no space allowed in -kkeyid)
- If patches fail, you must fix them up, either manually or with quilt
(quilt instructions go here)
- You will now have the following files in ..:
i2p_0.9.XX-1ubuntu1.debian.tar.xz
i2p_0.9.XX-1ubuntu1.dsc
i2p_0.9.XX-1ubuntu1_source.changes
i2p_0.9.XX-1ubuntu1_source.build
- And from the copy above:
i2p_0.9.XX.orig.tar.bz2
Upload to launchpad
-------------------
- cd ..
- Upload to launchpad:
dput ppa:your-lp-id/your-ppa-name i2p_0.9.XX-1ubuntu1_source.changes
This will upload the following files:
i2p_0.9.XX-1ubuntu1.dsc (the GPG signature)
i2p_0.9.XX-1ubuntu1.debian.tar.xz (basically the debian/ directory tarball)
i2p_0.9.XX-1ubuntu1_source.changes (the changelog text file)
i2p_0.9.XX.orig.tar.bz2 (the source tarball)
Note: If you didn't add your GPG fingerprint to your launchpad account
way up there above in step 2 or so, the upload will work,
but you will get no email back, and it will never build or show up on
the pending-build page.
Wait for it to build and be published.
Could be minutes to hours.
The amd64 build produces one deb:
libjbigi-jni (amd64)
The i386 build produces three debs:
i2p-doc (arch-independent), i2p-router (arch-independent), and libjbigi-jni (i386)
So the build isn't done until both arch builds are complete.
Don't
If it works, copy trusty to vivid, wily, and xenial in your PPA
(select "copy existing binaries")
Wait a few minutes for that to happen
Test
----
Add your PPA following the instructions at http://i2p-projekt.i2p/en/download/debian:
sudo apt-add-repository ppa:your-lp-id/your-ppa-name
sudo apt-get update
sudo apt-get install i2p
mv ~/.i2p ~/.i2p-save
i2prouter start
(test...)
stop router
sudo dpkg-reconfigure i2p
(reconfigure as a service)
(i2p should start as a service. test...)
Release
-------
Then copy trusty, vivid, wily, and xenial from your PPA to the i2p-maintainers PPA
(select "copy existing binaries")
Copy trusty first and wait for it to be published in i2p-maintainers or the others will fail.
Creating milestone, release, and uploading files
----------------------------------------------
You must first create a milestone, then create a release
and attach it to the milestone.
Go to https://launchpad.net/i2p/trunk
Down at bottom, click 'create milestone'
Name: 0.9.xx (NOT i2p 0.9.xx)
Code name: empty
Date targeted: Actual release date
Tags: empty
Summary: empty
Click 'register milestone'
Now you are back on https://launchpad.net/i2p/trunk
At your milestone, 'release now'
Date released: Actual release date
Release notes: empty
Changelog: empty
Click 'create release'
Now you on the page for that milestone
Click 'add download file'
For each of the four files
i2psource_0.9.xx.tar.bz2
Description: I2P 0.9.xx Source Code
Sig: i2psource_0.9.xx.tar.bz2.sig
File Content Type: Code Release Tarball
i2pinstall_0.9.xx_windows.exe
Description: I2P 0.9.xx Installer for Windows
Sig: i2pinstall_0.9.xx_windows.exe.sig
File Content Type: Installer File
i2pinstall_0.9.xx.jar
Description: I2P 0.9.xx Installer (Linux / OSX / FreeBSD / Solaris)
Sig: i2pinstall_0.9.xx.jar.sig
File Content Type: Installer File
i2pupdate_0.9.xx.zip
Description: I2P 0.9.xx Update
Sig: i2pupdate_0.9.xx.zip.sig
File Content Type: Installer File