Difference between revisions of "Basic Debian Packaging"
Jump to navigation
Jump to search
(→contents of a debian directory: example to search for copyright info) |
(→creating debian directory: example for dh_make) |
||
Line 31: | Line 31: | ||
====creating debian directory==== | ====creating debian directory==== | ||
* using dh_make (package dh-make) | * using dh_make (package dh-make) | ||
+ | dh_make -s -c gpl | ||
* dh-make-perl | * dh-make-perl | ||
+ | |||
====contents of a debian directory==== | ====contents of a debian directory==== | ||
* copyright | * copyright |
Revision as of 16:26, 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
environment variables
- DEBEMAIL
export DEBEMAIL=yourname@example.com
- DEBFULLNAME
export DEBFULLNAME="Your Name Here"
- EDITOR
export EDITOR=nano
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
dch -i
- version
- release
- 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