blob: bf913ac03c02965e86a21edb9749eca2e11ab0e0 (
plain)
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
108
109
110
111
112
113
114
115
116
|
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 do that with:
PROJECTNAME=yourproject
find . -name \*foo\* |
while read foo; do git mv $foo ${foo/foo/$PROJECTNAME}; done
Search all content and rename *foo* into your own new package name. You
can do that with:
grep -R foo . | grep -v .git |
cut -d: -f1 | uniq | xargs sed -i "s/foo/$PROJECTNAME/g"
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
|