/[pkg-kde]/kde-extras/README
ViewVC logotype

Contents of /kde-extras/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 16647 - (show annotations) (download)
Mon Jan 18 14:15:25 2010 UTC (3 years, 4 months ago) by curan-guest
File size: 11730 byte(s)
[kde-extras] Fix minor error in README.
1 Debian kde-extras Team
2 ======================
3
4 1. Contacts
5 -----------
6 General help requests
7 <debian-kde@lists.debian.org> mailing list
8 #debian-kde on irc.debian.org
9
10 Packaging queries
11 <debian-qt-kde@lists.debian.org> mailing list
12 #debian-qt-kde on irc.debian.org
13
14 Maintainers
15 <pkg-kde-extras@lists.alioth.debian.org> mailing list
16
17
18 2. Subversion repository
19 ------------------------
20 You can browse it online at:
21
22 http://svn.debian.org/wsvn/pkg-kde/kde-extras/
23
24 To "checkout" the repository use these commands:
25
26 * If you want a read-only copy, use:
27
28 svn co svn://svn.alioth.debian.org/svn/pkg-kde/kde-extras
29
30 * If you are a developer with an account at Alioth, you can also use:
31
32 svn co svn+ssh://${ALIOTH_USERNAME}@svn.debian.org/svn/pkg-kde/kde-extras
33
34 Authorised SSH keys are controlled at https://alioth.debian.org/account/
35
36 The repository layout is:
37
38 kde-extras/$package/{branches,tags,trunk}
39
40 - packagename/
41 - trunk/
42 - branches/
43 - tags/
44 - 0.7.2-1/
45 - 0.7.2-2/
46 - 0.7.2-2ubuntu1/
47 - 0.7.2-2ubuntu2/
48 - 0.7.2-2ubuntu3/
49 - 0.8.0/
50 - packagename2/
51 ...
52
53 If only one version of the package is available at the time, development must
54 be made at trunk/ dir, copying the dir to tags/'pkg-version' each time a new
55 release is made.
56
57 When, at some point, the need to have two different versions at the same time
58 arises (for example, if we need a version to be in unstable and a different one
59 to be in experimental), experimental development will be made in trunk/ and
60 if a new unstable package needs to be cooked, copying tag/'latest_version_in_sid'
61 to tag/'latest_version_in_sid'+1 will make the trick.
62
63 The according Vcs-Svn and Vcs-Browser stanzas in debian/control have the following
64 syntax:
65
66 Vcs-Svn: svn://svn.debian.org/pkg-kde/kde-extras/$PACKAGE/trunk/
67 Vcs-Browser: http://svn.debian.org/wsvn/pkg-kde/kde-extras/$PACKAGE/?op=log
68
69 where of course $PACKAGE is the name of the SVN path (which should be identical
70 to the source name).
71
72 Homepage fields should be added to all kde-extras packages to the Source part
73 unless really useful to have Source and Package point to different URLs.
74 The Homepage field is supported by dpkg-dev (>= 1.14.6).
75
76 If in doubt, sort the targets in debian/rules like this:
77 1. headers, variable definitions
78 2. includes (like dpatch, cdbs etc.)
79 3. "build/build-arch/build-indep" targets including config.status and autotools/patch
80 4. clean target (including unpatch)
81 5. binnary target
82 6. get-orig-source and print-version target
83 7. .PHONY definitions
84
85 3. Using svn-buildpackage
86 --------------------------
87 Packages with an upstream tarball will require you to set the mergeWithUpstream
88 property first (from the package root) so that svn-buildpackage will look for
89 the .orig.tar.gz in the ../tarballs directory.
90
91 % svn propset mergeWithUpstream 1 debian
92
93 Please note that this only works for packages which have only the debian/
94 directory committed. Consequently, you must modify upstream sources indirectly
95 using some patch system like CDBS's simple-patchsys.mk, CDBS + patchsys-quilt or
96 dpatch.
97
98 To download the *.orig.tar.gz to the ../tarballs directory, most of the
99 kde-extras packages have a "get-orig-source" target in their debian/rules.
100 Further, there is a "print-version" target showing the upstream version used for
101 the current packaging. You can run the get-orig-source directly from trunk/ or
102 tags/$version/.
103
104 After you have finished and committed your Debian patches via
105
106 % svn commit [PACKAGE]
107
108 as well as copying the orig.tar.gz to ../tarballs/ if necessary, you may build
109 your package with the following commands:
110
111 % svn-buildpackage -rfakeroot
112
113 You might want to add --svn-ignore-new to the flags if you do not want to
114 commit before having finished your testbuild. Further, if you use debuild and
115 edited /etc/devscripts.conf to use fakeroot by default, there is no need to add
116 this to svn-buildpackage.
117
118 svn-buildpackage provides svn-do, which you may find useful:
119 % /usr/share/svn-buildpackage/contrib/svn-do
120 It executes svn-buildpackage --svn-export and enters that directory. After
121 you change the tree as you like, exit the shell; your changes will be copied
122 back to your working tree.
123 Note, however, that it doesn't automatically "svn add" the new files that you
124 may have created (e.g. debian/patches/foo); you'll have to do this manually.
125 You may also want to edit the script and add --svn-ignore to the
126 svn-buildpackage options.
127
128 Don't commit tarballs/ or build-area/ directory contents to SVN! They would be
129 wasting loads of bandwidth and there is no point.
130
131 What you may find useful is setting these two:
132 -------------------------------------------------
133 $ cat >> ~/.devscripts <<EOF
134 DEBCHANGE_RELEASE_HEURISTIC=changelog
135 DEBCHANGE_MULTIMAINT_MERGE=yes
136 DEBUILD_ROOTCMD=fakeroot
137 DEBUILD_DPKG_BUILDPACKAGE_OPTS="-us -uc"
138 DEBUILD_LINTIAN=yes
139 DEBUILD_LINDA=yes
140 DEFAULT_DEBRELEASE_DEBS_DIR=../build-area/
141 EOF
142
143 cat >> ~/.svn-buildpackage.conf <<EOF
144 svn-builder=debuild
145 svn-noautodch
146 EOF
147
148 -------------------------------------------------
149
150 to make using "dch" just do the RightThing(TM).
151
152 Common conventions for debian/changelog are:
153 * "New upstream release" goes on top without having the Changed-By name
154 referring to it.
155 * "NOT YET RELEASED" doesn't need to be added no more since "svn-noautodch" and
156 "DEBCHANGE_RELEASE_HEURISTIC=changelog"
157 * distribution needs to be UNRELEASED for all pending patches and one of
158 unstable, proposed-updates, testing-proposed-updates etc. for uploaded
159 packages.
160 * Grouping of Changed-By is largely appreciated. If there is only one editor,
161 the preamble with the name should be removed if it was added accidentally.
162 (use DEBCHANGE_MULTIMAINT_MERGE=yes will help a lot here)
163 * Try to be verbose about what the change is and prefer "debcommit" to not have
164 different wordings for the same action. If SVN log and changelog match as
165 close as possible, it's easier to spot a change.
166 * when releasing, use the text "Releasing $SOURCE ($VERSION) to $DIST." as SVN
167 commit message to make finding these updates more easy (and eventually allow
168 for a hold-back through IRC).
169
170 To have a broader understanding of what problems are already assigned, use the
171 "tagpending" whenever you think your fix is ready to solve the problem. For all
172 the other manipulation like bug forwarding etc. using the "bts" commandline tool
173 may come in handy.
174
175
176 4. Tarballs and Build-area directories
177 ------------------------------------
178 During pkg development before uploaded to debian the tarballs can be found at:
179
180 http://pkg-kde.alioth.debian.org/kde-extra/orig.tar.gz/
181
182 You need to place those dirs in the parent directory of the one from which you're
183 running svn-buildpackage. Usually this means placing tarballs/ and build-area/ dirs
184 in 'pkgname'/ dir, at the same level as trunk/
185
186 For the existing projects these are preset as symlinks to a central hierarchy
187 under the SVN root. This is to facilitate the building of subsequent
188 packages when having the full tree checked out.
189
190 If you want to compile inside one version in tags/ dir, you'll need to place those
191 dirs inside that dir. Also for most of the tags dirs there should be ready to
192 use symlinks.
193
194 With DEFAULT_DEBRELEASE_DEBS_DIR pointing to ../build-area you can just use the
195 "debrelease" command from the trunk/ directory after running svn-buildpackage
196 --svn-tag.
197
198 5. Using svn-inject
199 -------------------
200 To inject a new package into the Debian KDE Extras svn archive you should use svn-inject(1)
201 as follows:
202
203 svn-inject -o <package>.dsc svn+ssh://${ALIOTH_USERNAME}@svn.debian.org/svn/pkg-kde/kde-extras
204
205 Type in your alioth password a few hundred times :-) and your package should be
206 uploaded to the archive. Note you will also need to manually copy the
207 package.orig.tar.gz to your tarballs directory. The -o option is important as
208 this ensures that we 'Only keep modified files under SVN control'
209
210 6. Patch management systems
211 ---------------------------
212 Since all of our packages use mergeWithUpstream (we only keep debian/ in the
213 repository) a patch management system should be used to make changes to
214 upstream files.
215 Most of the packages use dpatch, except a few that use quilt. The latter is
216 recommended for big patch-sets, even though it could be used for small ones, if
217 the maintainer prefers it.
218
219 6.1. dpatch
220 ~~~~~~~~~~~
221 Using dpatch is as easy as putting
222 -------------------------------------------------
223 include /usr/share/dpatch/dpatch.make
224 -------------------------------------------------
225 to your debian/rules. This creates three new targets, "patch" and "unpatch"
226 which are phony and patch-stamp that's not phony which can be used as depends
227 upon on configure and clean respectively. For clean you'll need to make sure
228 unpatch is run after the regular cleanup or rerun builds will fail in clean.
229
230 6.2. quilt
231 ~~~~~~~~~~
232 Similarly, using quilt is as easy as putting
233 -------------------------------------------------
234 include /usr/share/quilt/quilt.make
235 -------------------------------------------------
236 to your debian/rules. This creates three new targets, "patch" and "unpatch"
237 which are phony and patch-stamp that's not phony which can be used as depends
238 upon on configure and clean respectively. For clean you'll need to make sure
239 unpatch is run after the regular cleanup or rerun builds will fail in clean.
240
241
242 It is recommended to use these settings so that you can move around on your
243 series with quilt:
244 -------------------------------------------------
245 cat >> ~/.quiltrc <<EOF
246 QUILT_PATCHES="debian/patches"
247
248 QUILT_PATCH_OPTS="--unified-reject-files"
249 QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
250 QUILT_DIFF_OPTS="--show-c-function"
251 QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"
252 EOF
253
254 -------------------------------------------------
255 Consult quilt(1) for more information of what these options do.
256
257 7. Versioning
258 -------------
259 As the auto-builder and fellow developers will need to differentiate between
260 versions that are uploaded into debian already and those which will be at a
261 later point, do use the UNRELEASED distribution until the time you actually do
262 upload to incoming. Whoever is not a DD himself should let the sponsor do that
263 final step if that sponsor has SVN commit rights to the kde-extras archive.
264
265 9. Commit Policy
266 ----------------
267 In general, people with commit access are allowed to commit everywhere and
268 should make sure that they are in the Uploaders field and make sure to also
269 note the changes in the changelog. Major changes should be discussed with
270 existing people in Uploaders Field.
271
272 If some packages should be restricted, the people in uploaders field can add a
273 file called kde-extras/$package/commit-policy where commit policies can be
274 described in free form text, and can also include policies for uploading the
275 package.
276
277 10. Building from debcheckout
278 ----------------------------
279 This section is for someone who does not normally build kde-extras
280 packages and wants to build the latest version of a certain package
281 without all the extra setup mentioned above.
282
283 Required packages (beyond the build requirements of the package)
284 * svn-buildpackage (and subversion itself, of course)
285 * devscripts
286
287 Here is an example build of the package libkexiv2:
288
289 # apt-get build-dep libkexiv2
290
291 $ debcheckout libkexiv2
292 $ cd libkexiv2
293 $ ./debian/rules get-orig-source
294 $ svn-buildpackage -uc -us
295
296 If all worked well, svn-buildpackage will print out the locations of the
297 binary packages it has generated. They will be built in the directory
298 ../build-area/ .
299
300
301 -(snip)-
302
303 In case any of the above is unclear to you or seems outdated, please drop us a
304 note to the maintainers list.
305
306 pkg-kde-extras@lists.alioth.debian.org

  ViewVC Help
Powered by ViewVC 1.1.5