1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
\r
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
\r
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
\r
6 <meta name="generator" content="AsciiDoc 8.2.2" />
\r
7 <style type="text/css">
\r
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
\r
11 border: 1px solid red;
\r
16 margin: 1em 5% 1em 5%;
\r
21 text-decoration: underline;
\r
39 h1, h2, h3, h4, h5, h6 {
\r
41 font-family: sans-serif;
\r
43 margin-bottom: 0.5em;
\r
48 border-bottom: 2px solid silver;
\r
51 border-bottom: 2px solid silver;
\r
61 border: 1px solid silver;
\r
66 margin-bottom: 0.5em;
\r
76 font-family: sans-serif;
\r
83 font-family: sans-serif;
\r
87 font-family: sans-serif;
\r
89 border-top: 2px solid silver;
\r
95 padding-bottom: 0.5em;
\r
99 padding-bottom: 0.5em;
\r
103 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
\r
104 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
\r
105 div.admonitionblock {
\r
108 margin-bottom: 1.5em;
\r
110 div.admonitionblock {
\r
112 margin-bottom: 2.5em;
\r
115 div.content { /* Block element content. */
\r
119 /* Block element titles. */
\r
120 div.title, caption.title {
\r
121 font-family: sans-serif;
\r
125 margin-bottom: 0.5em;
\r
131 td div.title:first-child {
\r
134 div.content div.title:first-child {
\r
137 div.content + div.title {
\r
141 div.sidebarblock > div.content {
\r
142 background: #ffffee;
\r
143 border: 1px solid silver;
\r
150 div.listingblock > div.content {
\r
151 border: 1px solid silver;
\r
152 background: #f4f4f4;
\r
156 div.quoteblock > div.content {
\r
157 padding-left: 2.0em;
\r
163 div.verseblock + div.attribution {
\r
167 div.admonitionblock .icon {
\r
168 vertical-align: top;
\r
171 text-decoration: underline;
\r
173 padding-right: 0.5em;
\r
175 div.admonitionblock td.content {
\r
176 padding-left: 0.5em;
\r
177 border-left: 2px solid silver;
\r
180 div.exampleblock > div.content {
\r
181 border-left: 2px solid silver;
\r
185 div.verseblock div.content {
\r
189 div.imageblock div.content { padding-left: 0; }
\r
190 div.imageblock img { border: 1px solid silver; }
\r
191 span.image img { border-style: none; }
\r
195 margin-bottom: 0.8em;
\r
200 font-style: italic;
\r
202 dd > *:first-child {
\r
207 list-style-position: outside;
\r
210 list-style-type: lower-alpha;
\r
213 div.tableblock > table {
\r
214 border: 3px solid #527bbd;
\r
217 font-family: sans-serif;
\r
226 margin-bottom: 0.8em;
\r
229 padding-bottom: 5px;
\r
232 vertical-align: top;
\r
233 font-style: italic;
\r
234 padding-right: 0.8em;
\r
237 vertical-align: top;
\r
241 div#footer-badges { display: none; }
\r
246 font-family: sans-serif;
\r
250 margin-bottom: 0.1em;
\r
253 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
\r
269 /* Workarounds for IE6's broken and incomplete CSS2. */
\r
271 div.sidebar-content {
\r
272 background: #ffffee;
\r
273 border: 1px solid silver;
\r
276 div.sidebar-title, div.image-title {
\r
277 font-family: sans-serif;
\r
280 margin-bottom: 0.5em;
\r
283 div.listingblock div.content {
\r
284 border: 1px solid silver;
\r
285 background: #f4f4f4;
\r
289 div.quoteblock-content {
\r
290 padding-left: 2.0em;
\r
293 div.exampleblock-content {
\r
294 border-left: 2px solid silver;
\r
295 padding-left: 0.5em;
\r
298 /* IE6 sets dynamically generated links as visited. */
\r
299 div#toc a:visited { color: blue; }
\r
301 <title>HG-BUILDPACKAGE(1)</title>
\r
305 <h1>HG-BUILDPACKAGE(1)</h1>
\r
306 <span id="author">Michael Gebetsroither</span><br />
\r
307 <span id="email"><tt><<a href="mailto:michael.geb@gmx.at">michael.geb@gmx.at</a>></tt></span><br />
\r
310 <div class="sectionbody">
\r
311 <p>hg-buildpackage - helper program to maintain Debian packages with mercurial</p>
\r
314 <div class="sectionbody">
\r
315 <p><strong>hg-buildpackage</strong> [ -mq / -mqd / tag ] [ <options_for_dpkg-buildpackage> ]</p>
\r
317 <h2>DESCRIPTION</h2>
\r
318 <div class="sectionbody">
\r
319 <p>This manual page documents briefly the <strong>hg-buildpackage</strong> command.</p>
\r
320 <p><strong>hg-buildpackage</strong> is a simple wrapper script to maintain Debian packages with mercurial (AKA hg).</p>
\r
323 <div class="sectionbody">
\r
326 <strong>-mq</strong>
\r
330 If upstream sources are not found in upstream directory, try to get it out of the repos itself (version must been tagged).
\r
334 <strong>-mqd</strong>
\r
338 Additionally to -mq use the available mercurial patch queue (from the default location .hg/patches) for the package and convert it to dpatch for easier package contributions for external developers.
\r
342 <strong>tag</strong>
\r
346 This tags the repos, increments the changelog by 1 and sets distribution to unreleased.
\r
351 <h2>USAGE WITH MQ</h2>
\r
352 <div class="sectionbody">
\r
353 <p>The options -mq and -mqd are intended for non nativ debian package which have a tracking repos and a versioned mercurial patch queue.</p>
\r
354 <h3>Prerequisites</h3>
\r
355 <p>To keep hg-buildpackage as simple as possible there is a number of prerequisites in this build mode.</p>
\r
356 <p>The first patch in the queue should be the debian patch, and it should be applied before execution of hg-buildpackage.</p>
\r
357 <p>If commandline option -mpd is given, all patches in the queue which are not allready applied are converted to the dpatch system. The necessarry infrastructure for dpatch should allready be available (best from the allready applied debian patch).</p>
\r
358 <p>All patches touching files from upstream should be handled through dpatch (thats the reason why the debian patch should be the first patch in the queue).</p>
\r
360 <h2>Semi-Automatic tagging</h2>
\r
361 <div class="sectionbody">
\r
362 <p>If you use <strong>hg-buildpackage</strong> tag some things will happen:</p>
\r
366 Tag the repository with the package version from the changelog
\r
371 Increase debian release by 1
\r
376 Set distribution to unreleased
\r
382 <div class="sectionbody">
\r
383 <p><strong>~/.hgbuildpackage</strong></p>
\r
384 <p>When executing hg-buildpackage it sources the file ~/.hgbuildpackage if it exists. You can overwrite all environment variables used inside
\r
385 hg-buildpackage and used for BUILD_COMMAND this way. What you might want to set and adjust are the variables UPSTREAM and BUILD_COMMAND.</p>
\r
386 <p>You can use pbuilder or cowbuilder for building packages. If you set
\r
387 BUILD_MODE to "pbuilder" or "cowbuilder" the one you choosed will be used, if
\r
388 set to "local" dpkg-buildpackage will be used. Per default sudo will be used
\r
389 to call pbuilder and cowbuilder, if you don't like this set ROOT_COMMAND
\r
390 to the one you like.</p>
\r
391 <p>Example for ~/.hgbuildpackage:</p>
\r
392 <div class="listingblock">
\r
393 <div class="content">
\r
394 <pre><tt> # where the upstream sources are
\r
395 UPSTREAM=/home/mika/grml/hg/upstream/
\r
397 # define the build command
\r
398 BUILD_COMMAND="dpkg-buildpackage -k37E272E8 -sa -rfakeroot"
\r
401 BUILD_MODE="cowbuilder"
\r
403 # use sudo for getting root (this is the default)
\r
404 ROOT_COMMAND="sudo"
\r
406 # call lintian after building
\r
407 LINTIAN="true"</tt></pre>
\r
410 <h2>EXAMPLES WITH MQ</h2>
\r
411 <div class="sectionbody">
\r
412 <p>Short command sequence to modify a patch from a package (eg. zzuf)</p>
\r
413 <div class="listingblock">
\r
414 <div class="content">
\r
415 <pre><tt> hg clone http://hg.grml.org/zzuf
\r
416 hg clone http://hg.grml.org/zzuf zzuf/.hg/patches
\r
420 [make some changes]
\r
422 hg qcommit -m 'made some modifications to debian/rules'
\r
428 <div class="sectionbody">
\r
429 <p>hg(1), hgmergevim(1), hgr(1), hg-mirror(1), hg-cleantree(1)</p>
\r
432 <div class="sectionbody">
\r
433 <p>hg-buildpackage was written by Alexander Wirt <formorer@grml.org>, with mq support from Michael Gebetsroither <gebi@grml.org></p>
\r
434 <p>This manual page was original written by Michael Prokop <mika@grml.org> and converted to asciidoc from Michael Gebetsroither <gebi@grml.org></p>
\r
437 <div id="footer-text">
\r
438 Last updated 27-Jul-2008 04:31:32 CEST
\r