| 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
|