Replace old libgps-2.90-fix patch with the new one
[navit-package] / debian / README.source
1 This file is used to keep track of packaging choices, known issues and TO-DOs.
2
3 ==================================================
4 1- HOW THE SOURCE PACKAGE IS HANDLED USING SVN/GIT
5 ==================================================
6
7 The work on this package takes place on the alioth git repository.
8 It requires an alioth account with grant to the collab-maint group.
9
10 Cloning the repository:
11
12  $ git clone <my-alioth-login>@alioth.debian.org:/git/collab-maint/navit.git
13
14 The repository has 3 remote branches:
15 * origin/upstream-svn
16 * origin/upstream
17 * origin/master
18
19 HEAD is binded to master. 
20 master fetched localy by the clone:
21
22  $ git branch
23  * master
24
25 A daily cronjob managed by bzed syncs origin/upstream-svn with upstream's SVN
26 repository (<https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit>).
27
28 A packaging cycle starts by merging origin/upstream-svn with upstream. It
29 requires having checked out origin/upstream localy (need to be done once):
30
31  $ git checkout -b upstream origin/upstream
32
33 Then we can do the merge:
34
35  $ git merge origin/upstream-svn
36
37 It can leads to conflicts since some parts of pristine upstream tree have
38 been removed in our upstream branch. These removed parts are listed below:
39 * navit/android*
40   - unused android port.
41 * navit/fonts/*:
42   - ttf-liberation is in Debian
43 * navit/map/poi_geodownload/libmdb/*:
44   - libmbdtools is available in Debian, no need to duplicate the code
45 * navit/support/glib/*:
46 * navit/support/espeak/*:
47   - embedded libespeak1; not used.
48 * navit/support/ezxml/*:
49   - embedded glib; not used.
50 * navit/support/libc/*:
51   - setenv, getenv. No copyright statement; not used.
52 * navit/support/libpng
53   - embedded libpng; not used.
54 * navit/support/zlib/*:
55   - embedded zlib; not used.
56 * navit/support/wordexp/*:
57   - not used.
58 * navit/support/Makefile.am
59   - unused makefile
60 * navit/script/*:
61 * navit/tools/*:
62   - not needed/used
63 * navit/support/win32/*:
64 * navit/gui/win32/*:
65 * navit/graphics/win32/*:
66
67 When the merge is completed and committed we then switch to the master branch
68 to merge upstream:
69
70   $ git checkout master
71   $ git merge upstream
72
73 Then we can work on the packaging, still in the master branch.
74
75 See below how to patch upstream source code.
76
77 The package is built using git-buildpackage. See
78 <http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html>
79
80 To build using cowbuilder consider using Russ Allberry's git-pbuilder
81 <http://www.eyrie.org/~eagle/software/scripts/git-pbuilder.html>:
82
83 $ DIST=sid git-buildpackage --git-builder=/usr/bin/git-pbuilder
84
85 Warning: when modifying upstream branch (such as removing parts) you'll need
86 to rm .orig.tar.gz before building the package again.
87
88 ====================================
89 2- HOW TO PATCH UPSTREAM SOURCE CODE
90 ====================================
91
92 This package uses quilt to manage all modifications to the upstream
93 source.  Changes are stored in the source package as diffs in
94 debian/patches and applied during the build.
95
96 To configure quilt to use debian/patches instead of patches, you want
97 either to export QUILT_PATCHES=debian/patches in your environment
98 or use this snippet in your ~/.quiltrc:
99
100     for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do
101         if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then
102                 export QUILT_PATCHES=debian/patches
103         fi
104     done
105
106 To get the fully patched source after unpacking the source package, cd to
107 the root level of the source package and run:
108
109     quilt push -a
110
111 The last patch listed in debian/patches/series will become the current
112 patch.
113
114 To add a new set of changes, first run quilt push -a, and then run:
115
116     quilt new <patch>
117
118 where <patch> is a descriptive name for the patch, used as the filename in
119 debian/patches.  Then, for every file that will be modified by this patch,
120 run:
121
122     quilt add <file>
123
124 before editing those files.  You must tell quilt with quilt add what files
125 will be part of the patch before making changes or quilt will not work
126 properly.  After editing the files, run:
127
128     quilt refresh
129
130 to save the results as a patch.
131
132 Alternately, if you already have an external patch and you just want to
133 add it to the build system, run quilt push -a and then:
134
135     quilt import -P <patch> /path/to/patch
136     quilt push -a
137
138 (add -p 0 to quilt import if needed). <patch> as above is the filename to
139 use in debian/patches.  The last quilt push -a will apply the patch to
140 make sure it works properly.
141
142 To remove an existing patch from the list of patches that will be applied,
143 run:
144
145     quilt delete <patch>
146
147 You may need to run quilt pop -a to unapply patches first before running
148 this command.
149
150
151 ========
152 3- TO-DO
153 ========
154
155 * Have gypsy packaged into debian?
156
157 * Solve missing copyright statement issues
158
159 * --enable-graphics-gd: currently broken + unclear status
160 * --enable-graphics-sdl: currently broken
161
162
163 =========
164 4- ISSUES
165 =========
166
167 * Tons of gcc warnings
168
169 * Missing copyright statements
170   + navit/font/freetype/*