NAME foo - A template project WTF? You may use this project in order to build your own Debian package for your own project. This has been tested with Debian GNU/Linux Squeeze and Debian GNU/Linux Wheezy. Feel free to modify any aspects. This project is just an empty example foo. Follow these steps: Install required packages Run the following: sudo aptitude install lintian devscripts dpkg-dev make perl Todo: Ensure this are the correct packages. In order to test that I would have to setup a blank Debian system. Compile the project Go to the to level directory and run make To test run ./bin/foo It should print out the version number of the project. Create a Debian package Go to the to level directory and run make deb It will create the files like: ../foo_0.0.0.0_all.deb ../foo_0.0.0.0.dsc ../foo_0.0.0.0_amd64.changes ../foo_0.0.0.0.tar.gz It should create a debian package in ../. Check and install it, e.g: lintian --pedantic ../foo_0.0.0.0_all.deb sudo dpkg -i ../foo_0.0.0.0_all.deb Run dpkg -L foo to see whats in there. You can now run /usr/bin/foo or for example man foo Read the Makefile Read the Makefile in order to understand what's going on. Customize Now, since you understood everything feel free to customize everything the way you want it. E.g.: Don't use POD for documentation but LaTeX Compile a C program Include a ./lib dir, add it to the 'install' Makefile rule etc etc. You should also consider the following: Manual page This template is using POD for creating manual pages. Edit ./docs/foo.pod and run make documentation in order to build ./docs/foo.1. The page will be included in the resulting debian package automatically. You can review the page with man ./docs/foo.1 Renaming foo into your project name Rename all files which have *foo* included into your own new package name. You can find them with find . -name \*foo\* Search all content and rename *foo* into your own new package name. You can find all files with grep -R foo . | grep -v .git Updating ./debian Edit the following files accordingly to your new project (e.g. with vim): ./debian/control ./debian/copyright ./debian/README Update changelog Go to the to level directory and run dch -i