Difference between revisions of "Basic Debian Packaging"
Jump to navigation
Jump to search
(→contents of a debian directory: place dch example better) |
|||
Line 21: | Line 21: | ||
** sourceforge.net | ** sourceforge.net | ||
** google.com | ** google.com | ||
+ | |||
+ | ====grab and unpack your tarball==== | ||
+ | * gnu hello: | ||
+ | wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz | ||
+ | tar xvzf hello-2.1.1.tar.gz | ||
+ | |||
====environment variables==== | ====environment variables==== | ||
* DEBEMAIL | * DEBEMAIL |
Revision as of 16:42, 24 March 2006
overview
this class should give a basic understanding of how to build a debian package from some common types of source tarballs or repositories, with the assistance of several helper utilities.
background
prerequisites
- basic familiarity with commandline
- basic familiarity with linux
- Command Line 2
- basic understanding of apt and dpkg
suggested background
- rudimentary understanding of building and compiling software
- basic understanding of cvs or subversion
topics covered
finding software
- is it already packaged:
- packages.debian.org
- other sources of software:
- freshmeat.net
- sourceforge.net
- google.com
grab and unpack your tarball
- gnu hello:
wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz tar xvzf hello-2.1.1.tar.gz
environment variables
- DEBEMAIL
- DEBFULLNAME
- EDITOR
DEBEMAIL=yourname@example.com EDITOR=nano DEBFULLNAME="Your Name Here" export DEBEMAIL DEBFULLNAME EDITOR
creating debian directory
- using dh_make (package dh-make)
dh_make -s -c gpl
- dh-make-perl
contents of a debian directory
- copyright
- add copyright holder's name and relevent copyright
egrep -ri copyright * | less
- changelog
- dch
- version
- release
dch -i
- control
- rules
- other files
- *.install
- *.manpages
- *.examples
- *.init
- *.postinst
- other examples: *.ex and *.EX files
cdbs basics:
- magic snippet for a complete debian/rules file:
#!/usr/bin/make -f # uncomment the next line if using a makefile-based source #include /usr/share/cdbs/1/class/makefile.mk # uncomment the next line if using a autotools-based source #include /usr/share/cdbs/1/class/autotools.mk include /usr/share/cdbs/1/rules/debhelper.mk
- add cdbs to build-depends or build-depends-indep debian/control
debuild
- commandline arguments: -uc -us
basic troubleshooting
- lesspipe
lesspipe ../hello_2.1.1_i386.deb | less
- build dependencies
- package dependencies
- install in a clean debian base-install
- pbuilder/sbuild
lintian
- debian policy checker
lintian -i ../hello_2.1.1_i386.deb