cryptonas-archive/v0.3.5/stuff/debian-package_policy.txt

116 lines
3.4 KiB
Text
Raw Normal View History

2009-07-18 06:12:08 +02:00
HOW TO UPLOAD A FRESH DEBIAN PACKAGE
1) tag the to-be-released version
Run:
svn cp BASE tags/v0.x.y
Replace 'BASE' with the version this release is based on (usually 'trunk').
Replace 'x' and 'y' with the numbers of your choosen release.
2) Apply the selected changes
This step is only suitable for releases that are not based on 'trunk', but are
just bugfix or language releases.
2a) Bugfix release
Apply the appropriate patch.
2b) Language release
Copy the choosen language files to the new tag directory.
Just an example for an update of the spanish ('es') translation:
cd branches/translation-base-x.y
find -type f -name \*.po | grep /intl/es/ | while read po_file
do svn cp "$po_file" "tags/v0.x.y/$po_file"
done
Add possible new languages to the "Languages" setting in
'conf-examples/cryptobox.conf'.
Add the acknowledgment for the contributor to the README file.
All changes must be merged into the 'trunk', too!
3) update the debian changelog
Run "debchange -i" to create a new changelog entry. Leave some useful notes.
BEWARE: all development releases must have the debian release no. "1" (the last
part of the version following the dash) - e.g.: 0.2.50-1.
You MUST increase the upstream version (before the dash) by one whenever you
want to upload a new debian package to the repository - otherwise you will
inevitably mess up the package repository - and you know, who will have to
figure out, how to fix this :)
4) create the package
Change to the tag directory of the new release and run the following:
../make-deb.sh x.y.z .
(do not forget the final dot)
The UPSTREAM_VERSION is the one, that you were using for the new debian
changelog entry (_before_ the hyphen, e.g. "0.3.4" instead of "0.3.4-1").
Again: _never_ upload two different debian packages with the same upstream
version number or you will surely go to hell!
The package files will get copied to ../tags/packages/debian/.
The version number in src/cryptobox/__init__.py gets updated automatically by
the make-deb.sh script.
5) double check the package
Run the two testing programs "lintian" and "linda" with the new
package.
lintian ../tags/packages/debian/cryptobox-server...deb
linda ../tags/packages/debian/cryptobox-server...deb
Try to install the new package on a system with dpkg and see if it went fine.
6) upload the package
You should use dupload - it is the preferred uploading program for debian
packages:
apt-get install dupload
See http://www.debian-administration.org/articles/286 for more details.
Create the following configuration file as ~/.dupload.conf:
package config;
$preupload{'changes'} = "";
$default_host = "sao";
$cfg{"sao"} = {
fqdn => "sao",
login => "uml-www",
method => "scpb",
incoming => "/data/deb-repo/incoming/unstable",
dinstall_runs => 1,
};
1;
Furthermore you need the following entry in your ~/.ssh/config:
Host sao
Hostname systemausfall.org
Port 2200
(otherwise it is impossible to change the ssh port in dupload)
To upload the latest debian package you could do the following:
dupload $(ls -tr ../tags/packages/debian/*.changes | tail -1)
(this will only use the latest changes-file)
7) import the package into the repository
It would be nice, if the web interface would work - but it does not.
Please wait for etch - then we will update reprepro.
For now you have to login to the www-uml:
ssh uml-www@sao
Switch to the deb-repo user:
su - deb-repo
Import all incoming packages:
scripts/import.sh
You did it!