115 lines
3.4 KiB
Text
115 lines
3.4 KiB
Text
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!
|
|
|