[ Copyright Notice ] [ Contents ] [ next ]

Debian New Maintainers' Guide
Chapter 1 Getting started "The Right Way"


This document will try to describe building of a Debian GNU/Linux package to the common Debian user (and wannabe developer) in common language, and well covered with working examples. There is an old Roman saying, Longum iter est per preaecepta, breve et efficax per exempla! (It's a long way by the rules, but short and efficient with examples!).

One of the things that makes Debian such a top-notch Linux distribution is its package system. While there is a vast quantity of software already in the Debian format, sometimes you need to install software that isn't. You may be wondering how you can make your own packages and perhaps you think it is a very difficult task. Well, if you are a real novice on Linux, it is hard, but if you were rookie, you wouldn't be reading this doc now. :-) You do need to know a little about Unix programming but you certainly don't need to be a wizard.

Newer versions of this document should always be available online at http://www.debian.org/doc/maint-guide and in the `maint-guide' package.


1.1 Programs you need for development

Before you start anything, you should make sure that you have properly installed some additional packages needed for development. Note that the list doesn't contain any packages marked `essential' or `required' - we expect that you have those installed already.

This document has been written while the 2.1 `slink' distribution was the officially stable release of Debian, and the 2.2 `potato' was being created, thus the packages named here are mostly those from `potato'.

The following packages come with standard installation of Debian 2.1, so you probably have them (and additional packages they depend on) already. Still, you should check with `dpkg -s <package>`.

From the `devel' section of the distribution you'll probably need to install these yourself:

Finally, these very important packages are in the doc section of the distribution:

You will also need the encryption package, either PGP (the pgp-* packages) or GPG (the gnupg package), to digitally sign your package. This is especially important if you want to distribute it to other people (and you will certainly be doing that when your work gets included in the Debian distribution). However, due to a rather wacky U.S. export law, you cannot simply download this from your nearest Debian FTP site. But Debian does provide these packages through a site that is not physically located in the US, called non-US.debian.org (ftp://non-us.debian.org/debian-non-US/). Your FTP site will have a file called README.non-US, which will tell you how to find a closer mirror of that site.

The short descriptions that are given above only serve to introduce you to what each package does. Before continuing please thoroughly read how to the documentation of each program, at least the standard usage. It may seem like heavy going now, but later on you'll be very glad you read it. Note: debmake is a package that contains some programs that function similar to dh-make, but its specific use is not covered in this document. Refer to the Debmake manual for more information.


1.2 Other information

There are two types of packages you can make, source and binary. A source package contains code which you can compile into a program. A binary package contains just the finished program. Don't mix terms like source of the program and the source package of the program! Please read the other manuals if you need more details on terminology.

In Debian, the term `maintainer' is used for the person who makes packages, `upstream author' for the person that made the program, and `upstream maintainer' for the person who currently maintains that program, outside of Debian. Usually author and the upstream maintainer are the same person - and sometimes even the maintainer is the same person. If you made a program, and want it to get in Debian, feel free to submit your application to become a maintainer.

After you build your package (or while doing that), you will have to become an official Debian maintainer if you wish your program to get into the next distribution (if the program is useful, why not?). That process is explained in Developer's Reference. Please read it.


[ Copyright Notice ] [ Contents ] [ next ]
Debian New Maintainers' Guide
version 1.0.2, 10 June 2001.
Josip Rodin jrodin@jagor.srce.hr