1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
Debian package building hints
Building a new Debian package from the CVS Tree
-----------------------------------------------
The debian related files and packaging are in the debian_branch branch
of the CVS tree. When a debian package is released the complete source
tree of the corresponding mifluz release is merged into the debian_branch
branch and tagged.
In addition a debian specific tag must be added to the regular version
tag of the main branch. It has the following form:
mifluz-0-22-0 must be tagged upstream_version_0_22_0
In command line style, just after tagging the main mifluz release you
should do the following:
#
# Tag upstream version
#
cvs co mifluz
( cd mifluz ; cvs tag upstream_version_X_X_X )
#
# Copy the tarbal of the distribution to upper directory (make dist if
# necessary) and note that it must be renamed with an UNDERSCORE after
# the alpha name (mifluz- becomes mifluz_)
#
( cd mifluz ; make dist ; cp mifluz-X.X.X.tar.gz ../mifluz_X.X.X.orig.tar.gz )
#
# Extract the debian branch.
# Name the directory according to upstream version otherwise debuild
# is confused
#
cvs co -r debian_branch -d mifluz-X.X.X mifluz
cd mifluz-X.X.X
#
# Untar the distribution in the Debian branch. That will override
# files and add new ones. Using merge (cvs update -j) is not fit
# for this purpose because, for instance, the .version and the
# ChangeLog files will always conflict.
#
tar -zxvf unac_X.X.X.orig.tar.gz
#
# Now we want to work within the cvs tree
#
cd mifluz-X.X.X
#
# See which files have been removed from the upstream
#
diff --exclude=CVS --exclude='.#*' --brief -r . ../mifluz
#
# Remove the files manualy by
# cvs delete -f file
# one by one.
#
cvs delete -f ...
#
# At that point a cvs update will show files with a question mark,
# those files were added since the last distribution and must also
# be added to the debian branch.
#
cvs add ...
#
# Update the changelog and review the other files
#
debchange --newversion X.X.X-1 "New upstream version"
#
# Finaly attempt to build the packages (binary + sources)
# The -i asks debuild to ignore CVS related files
# CHECK THE WARNINGS IN THE OUTPUT !!!!
#
debuild -uc -us -i'CVS|\.#|.cvsignore|reference.texinfo|scripts|.gdbinit'
#
# Upload to debian or (if not debian dev) upload to ftp space and ring
# the bell of the debian developer (igenibel@debian.org or check
# http://packages.debian.org/unstable/devel/libmifluz-dev.html to get
# the name of the current debian developer)
#
cvs commit -m 'New upstream version X.X.X'
cvs tag debian_version_X_X_X-1
#
# For paranoid checking, do the package building as instructed below
#
Package building
----------------
Make sure $HOME/local exists.
For savannah users:
CVS_RSH=ssh CVSROOT=login@subversions.gnu.org:/cvsroot/mifluz cvs-buildpackage -W$HOME/local/ports/tmp -us -uc -i'CVS|\.#|.cvsignore|reference.texinfo|scripts|.gdbinit' -Mmifluz -Pmifluz -VX.X.X-X -rfakeroot
For anonymous users:
% export CVSROOT=:pserver:anoncvs@subversions.gnu.org:/cvsroot/mifluz
% cvs login
% cvs-buildpackage -W$HOME/local/ports/tmp -us -uc -i'CVS|\.#|.cvsignore|reference.texinfo|scripts|.gdbinit' -Mmifluz -Pmifluz -VX.X.X-X -rfakeroot
% cvs logout
The resulting debian distribution is made of 2 debian packages (*.deb),
a .diff file that shows the differences between the debian CVS branch and
the main branch, a .dsc file, a .changes file. All are in $HOME/local.
The .deb and .diff files must be distributed all together, the .dsc and
.changes must be published on the debian page
(see http://www.genibel.org/debian for examples of Debian packages files).
|