This file is indexed.

/usr/share/doc/svn-buildpackage/html/re01.html is in svn-buildpackage 0.8.6.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>svn-buildpackage</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"><link rel="home" href="index.html" title="svn-buildpackage - maintaining Debian packages with Subversion"><link rel="up" href="ch05.html" title="Chapter 5. Command reference"><link rel="prev" href="ch05.html" title="Chapter 5. Command reference"><link rel="next" href="re02.html" title="svn-inject"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">svn-buildpackage</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch05.html">Prev</a> </td><th width="60%" align="center">Chapter 5. Command reference</th><td width="20%" align="right"> <a accesskey="n" href="re02.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="sbman"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>svn-buildpackage &#8212; build Debian packages from SVN repository</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">svn-buildpackage</code>  [[ <em class="replaceable"><code>OPTIONS</code></em>... ]
            [ <em class="replaceable"><code>OPTIONS</code></em> for
              <span class="command"><strong>dpkg-buildpackage</strong></span> ]
          ]</p></div></div><div class="refsect1"><a name="idm513"></a><h2>DESCRIPTION</h2><p>Builds a Debian package from a Subversion repository. The source code
 repository must be in the format created by
      <span class="command"><strong>svn-inject</strong></span>, and this script must be executed from the
      working directory (<code class="filename">trunk/<em class="replaceable"><code>package</code></em></code>).
      </p><p>By default, the working directory is used as the main source directory
      (assuming the whole upstream source is being stored in the repository).
      The alternative is so called "merge mode". With this method, only the
      <code class="filename">debian</code> directory (and maybe some other modified files) are stored in
      the repository.  At build time, the contents of the svn trunk are
      copied to the extracted tarball contents (and can overwrite parts of
      it). To choose this working model, set the <span class="command"><strong>svn</strong></span> property
      <span class="emphasis"><em>mergeWithUpstream</em></span> on the <code class="filename">debian</code> directory
      </p><pre class="programlisting">
$ svn propset mergeWithUpstream 1 debian
      </pre><p><span class="emphasis"><em>mergeWithUpstream</em></span> requires that the build
      system can prepare a tarball, typically using <span class="command"><strong>make dist</strong></span>
      and autotools. All upstream packages will have some form of tarball
      creation support and native packages that use autotools or which have
      internal tarball support can use <span class="emphasis"><em>mergeWithUpstream</em></span>
      to handle generated files that are needed to build the package but
      are not present in SVN. See the HOWTO guide for examples of how this
      can be done. Native packages that do not use autotools and do not
      have internal tarball support can still add generated files to the
      source package tarball using the <span class="emphasis"><em>useNativeDist</em></span>
      make target in the top level <code class="filename">Makefile</code>. This
      custom target must be idempotent and only modify / generate the
      desired files using only the exported SVN source and build
      dependencies. To allow <span class="command"><strong>svn-buildpackage</strong></span> to
      use an <span class="command"><strong>make native-dist</strong></span> target in your top level
      <code class="filename">Makefile</code>, set the  
      <span class="emphasis"><em>useNativeDist</em></span> property on the
      <code class="filename">./debian/</code> directory:
      </p><pre class="programlisting">
$ svn propset useNativeDist 1 debian
      </pre><p>
      The default behaviour of <span class="command"><strong>svn-buildpackage</strong></span> is
      as follows:
      </p><p>Check the working directory, complain on uncommited files (also
      see <code class="option">--svn-ignore-new</code>)
      </p><p>Copy the orig tarball to the build area if necessary (also
        see <code class="option">--svn-no-links</code>)
        </p><p>Extract the tarball (in merge mode) or export the svn work
        directory to the build directory (also see below and
        <code class="option">--svn-no-links</code>)
        </p><p>Build with <span class="command"><strong>dpkg-buildpackage</strong></span> (also see
        <code class="option">--svn-builder</code>,
        <code class="option">--svn-lintian</code>, etc.)
        </p><p>Create a changelog entry for the future version</p></div><div class="refsect1"><a name="idm550"></a><h2>OPTIONS</h2><p><span class="command"><strong>svn-buildpackage</strong></span> accepts the following options
        on the command-line:
        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
              <code class="option">--svn-builder=COMMAND</code>
            </span></dt><dd><p>Specifies  alternative  build  command instead of
              <span class="command"><strong>dpkg-buildpackage</strong></span>, eg.
              <span class="command"><strong>debuild</strong></span>, <span class="command"><strong>pdebuild</strong></span>,
              etc. Every parameter that <span class="command"><strong>svn-buildpackage</strong></span>
              doesn't know (<span class="emphasis"><em>--svn-*</em></span>) is passed to
              <code class="option">COMMAND</code>. There is no difference between the
              command line and config file parameters . They are used at
              the same time.
              </p><p>WARNING: shell quotation rules do not completely apply
              here, better use wrappers for complex constructs. Using this
              option may break <span class="emphasis"><em>--svn-lintian</em></span> and
              <span class="emphasis"><em>--svn-move</em></span> functionality. Some functions
              may be disabled when a custom build command is used because
              the output file location is not predictable.</p><p>Default: use <span class="command"><strong>dpkg-buildpackage</strong></span>.</p></dd><dt><span class="term">
               <code class="option">--svn-ignore-new</code> |
               <code class="option">--svn-ignore</code>
            </span></dt><dd><p>Don't stop on svn conflicts or new/changed files.
              To set this behaviour for single files set the
              <strong class="userinput"><code>deb:ignoreM</code></strong> property to 1 on them.
              Also see documentation of the svn:ignore property in the
              SVN book.
              </p><p>Default: Stop on conflicts or new/changed files.</p></dd><dt><span class="term">
              <code class="option">--svn-dont-clean</code>
            </span></dt><dd><p>Don't run debian/rules clean.</p><p>Default: clean first</p></dd><dt><span class="term">
              <code class="option">--svn-no-links</code>
            </span></dt><dd><p>Don't use file links but try to export or do hard copies
              of the working directory. This is useful if your package
              fails to build because some files, empty directories,
              broken links, ...  cannot be transported with in the
              default link-copy mode.
              </p><p>Default: use links where possible.</p></dd><dt><span class="term">
              <code class="option">--svn-dont-purge</code>
            </span></dt><dd><p>Don't remove the build directory when the build is
              done.</p><p>Default: remove after successful build.
              </p></dd><dt><span class="term">
              <code class="option">--svn-reuse</code>
            </span></dt><dd><p>If possible, reuse an existing build directory in
              subsequent builds. The build directory is not purged after
              the build, it is not renamed when a build starts and the
              files are just copied over into it. Useful in
              <span class="emphasis"><em>mergeWithUpstream</em></span> mode with large
              packages.
              </p><p>Default: build directory is removed.</p></dd><dt><span class="term">
              <code class="option">--svn-rm-prev-dir</code>
            </span></dt><dd><p>If a previous build directory is found, remove it
              before building instead of renaming it. If
              <span class="emphasis"><em>--svn-reuse</em></span> is also given in the same
              line, the reuse behaviour occurs.
              </p><p>Default: rename old directories with a
              '<code class="option">obsolete</code>' suffix.</p></dd><dt><span class="term">
              <code class="option">--svn-export</code>
            </span></dt><dd><p>Just export the working directory and do necessary
              code merge operations, then exit.
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-tag</code>
            </span></dt><dd><p>Final build: Tag, export, build cleanly &amp; make
              new changelog entry.
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-tag-only</code> |
              <code class="option">--svn-only-tag</code>
            </span></dt><dd><p>Don't build the package, do only the tag copy.</p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-retag</code>
            </span></dt><dd><p>If an existing target directory has been found while
              trying to create the tag copy, remove the target directory first.
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-noautodch</code>
            </span></dt><dd><p>No new Debian changelog entry is added automatically.
              </p><p>Default: A new <span class="emphasis"><em>UNRELEASED</em></span>
              changelog entry is set via <span class="command"><strong>dch</strong></span>.
              </p></dd><dt><span class="term">
              <code class="option">--svn-lintian</code>
            </span></dt><dd><p>Run lintian on the resulting changes file when done.
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-move</code>
            </span></dt><dd><p>When done, move the created files (as listed in
              <code class="filename">.changes</code>) to the parent directory,
              relative to the one where <span class="command"><strong>svn-buildpackage</strong></span> was started.
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-move-to=...</code>
            </span></dt><dd><p>Specifies the target directory to which to move the
              generated files.
              </p><p>Default: Off. (Files are left where the build command
              puts them.)</p></dd><dt><span class="term">
              <code class="option">--svn-pkg=packagename</code>
            </span></dt><dd><p>Overrides the detected package name. Use with caution
              since it could be set too late during the processing (eg.
              still have the old value when expanding shell variables).
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-arch=ARCH</code>
            </span></dt><dd><p>Allows specifying the build architecture (e.g.
              i386 build on an amd64 machine).
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-override=var=value,anothervar=value</code>
            </span></dt><dd><p>Overrides any config variable that has been
              autodetected or found in <span class="emphasis"><em>.svn/deb-layout</em></span>.
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-prebuild</code> |
              <code class="option">--svn-postbuild</code> |
              <code class="option">--svn-pretag</code> |
              <code class="option">--svn-posttag</code>
            </span></dt><dd><p>Commands (hooks) to be executed before/after the build/tag
             command invocations, e.g. to download the orig tarballs from the
             archive. Shell code can be emdded here though it is not
             recommended. Various helping variables are available in the
             environment, see ENVIRONMENT VARIABLES below for detailed explanation.
             </p><p>Please note that the prebuild and postbuild hooks
             replace the normal prebuild and postbuild actions of
             <span class="command"><strong>svn-buildpackage</strong></span>. For prebuild, this means
             that the build dependencies will not be checked. For postbuild,
             this means that the resulting files won't be moved, and lintian
             will not be run.
             </p><p>Defaults: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-noninteractive</code>
            </span></dt><dd><p>With this parameter <span class="command"><strong>svn-buildpackage</strong></span> will not interact
              with the user.
              </p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-savecfg</code>
            </span></dt><dd><p>By default, <span class="command"><strong>svn-buildpackage</strong></span> used to create
              <code class="filename">.svn/deb-layout</code> on every invocation.
              Since version 0.6.22 this behaviour is deprecated.
              </p><p>With this parameter <span class="command"><strong>svn-buildpackage</strong></span>
              will (partly) replicate the old behaviour. In contrast to the
              deprecated behaviour, the <span class="emphasis"><em>.svn/deb-layout</em></span>
              is regarded as a local override; the old behaviour simply
              ignored any versioned layout information if it found
              <span class="emphasis"><em>.svn/deb-layout</em></span>.
              </p><p>This option was provided since it can be useful when
              creating a local override file.</p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-download-orig</code>
            </span></dt><dd><p>This option makes <span class="command"><strong>svn-buildpackage</strong></span> try to download the upstream tarball using <span class="command"><strong>apt</strong></span> and
              <span class="command"><strong>uscan</strong></span>.</p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">--svn-verbose</code>
            </span></dt><dd><p>More verbose program output.</p><p>Default: Off.</p></dd><dt><span class="term">
              <code class="option">-h</code> |
              <code class="option">--help</code>
            </span></dt><dd><p>Show the help message.</p></dd></dl></div></div><div class="refsect1"><a name="idm736"></a><h2>EXAMPLES</h2><p>
        For more detailed information on how to use <span class="command"><strong>svn-buildpackage</strong></span>,
        see the HOWTO <a class="ulink" href="http://svn-bp.alioth.debian.org/" target="_top">
        http://svn-bp.alioth.debian.org/</a>.
        </p><p>
        To start working with existing native Debian package from a
        <code class="filename">*.dsc</code> file, import it into the repository with command:
        </p><pre class="screen">
svn-inject package_0.1.dsc svn://host/debian/devel/packages
        </pre><p>
        To start working with existing upstream package in Debian from a
        <code class="filename">*.dsc</code> file, import it into the repository with command:
        </p><pre class="screen">
svn-inject -o package_0.1-2.dsc svn://host/debian/devel/packages
        </pre><p>
        Before building an upstream package, ensure the original source
        is available, e.g. if <span class="command"><strong>uscan</strong></span> is working:
        </p><pre class="screen">
svn mkdir ../tarballs
svn propset svn:ignore "*" ../tarballs
uscan --force-download --destdir ../tarballs
        </pre><p>
        To test building the package from Subversion repository, use command below. Refer
        to <span class="citerefentry"><span class="refentrytitle">dpkg-buildpackage</span>(1)</span>
        manual page for the <code class="option">-us</code> etc. options:
        </p><pre class="screen">
svn-buildpackage --svn-lintian -us -uc -rfakeroot
        </pre><p>
        To check that package build in a clean state, test it with <span class="citerefentry"><span class="refentrytitle">pbuilder</span>(1)</span>:
        </p><pre class="screen">
svn mkdir ../build-area  # To store results
svn propset svn:ignore "*" ../build-area
svn-buildpackage --svn-ignore-new --svn-builder=pdebuild
        </pre><p>
        When a new upstream release becomes available, commit all changes and
        have the working tree in clean state. Then use <span class="citerefentry"><span class="refentrytitle">svn-upgrade</span>(1)</span>
        to import the new release:
        </p><pre class="screen">
svn status   # Check that there are no uncommited changes
svn-upgrade --verbose ../package-2.0.tar.gz
        </pre></div><div class="refsect1"><a name="idm766"></a><h2>CONFIGURATION FILE</h2><p><span class="command"><strong>svn-buildpackage</strong></span>'s behaviour can be modified
       using the file <code class="filename">~/.svn-buildpackage.conf</code>. Additional
       parts can be added in each package working directory using the file
       <code class="filename">.svn/svn-buildpackage.conf</code>. It is
       essentially a list of the long command line options (without leading
       minus signs), one argument per line (without quotes surrounding
       multi-word arguments). The variables are expanded with the system shell
       if shell variables are found there. Avoid ~ sign because of unreliable
       expansion: it is better to use $HOME instead.  Example:</p><pre class="screen">
svn-builder=debuild -EPATH
svn-no-links
svn-override=origDir=$HOME/debian/upstream/$PACKAGE
# svn-ignore-new
#svn-lintian
        </pre></div><div class="refsect1"><a name="idm773"></a><h2>DIRECTORY LAYOUT HANDLING</h2><p>By default, <span class="command"><strong>svn-buildpackage</strong></span> expects
        a configuration file with path/url declaration,
        <code class="filename">.svn/deb-layout</code>. The values there can be
        overridden with the <code class="option">--svn-override</code>  option,
        see above. If a config file could not be found, the settings are
        autodetected following the usual assumptions about local directories
        and repository layout.  In addition, the contents of a custom file
        <code class="filename">debian/svn-deblayout</code> will be imported during the
        initial configuration. Package maintainers can store this file in
        the repository to pass correct defaults to new <span class="command"><strong>svn-buildpackage</strong></span>
        users. The format is the same as in the file
        <code class="filename">.svn/deb-layout</code>. As an alternative to the
        <code class="filename">debian/svn-deblayout</code> file, maintainers can
        set Subversion properties for the <code class="filename">debian/</code>
        directory; any properties of <code class="filename">debian/</code> which
        have a name of the form <span class="emphasis"><em>svn-bp:<em class="replaceable"><code>PROP</code></em></em></span> will be
        the source of a <em class="replaceable"><code>PROP</code></em> setting which has the value indicated by the
        first line of the property value. If a full svn URL is not
        given, the repository root will be prepended to this value.
        </p></div><div class="refsect1"><a name="idm788"></a><h2>ENVIRONMENT VARIABLES</h2><p>The following environment variables are exported by
        <span class="command"><strong>svn-buildpackage</strong></span> and can be used in hook
        commands or the package build system.
        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">PACKAGE, </span><span class="term">package</span></dt><dd><p>The source package name.</p></dd><dt><span class="term">SVN_BUILDPACKAGE</span></dt><dd><p>Version of <span class="command"><strong>svn-buildpackage</strong></span>.</p></dd><dt><span class="term">TAG_VERSION, </span><span class="term">debian_version</span></dt><dd><p>The complete Debian version string, also used for the
              tag copy.
              </p></dd><dt><span class="term">non_epoch_version</span></dt><dd><p>Same as <code class="option">debian_version</code> but without any epoch strings.</p></dd><dt><span class="term">upstream_version</span></dt><dd><p>Same as debian_version but without Debian extensions</p></dd><dt><span class="term">guess_loc</span></dt><dd><p>Guessed upstream source package name in the pool,
              something like
              <code class="filename">libm/libmeta-html-perl_3.2.1.0.orig.tar.gz</code>
              </p></dd><dt><span class="term">DIFFSRC</span></dt><dd><p>(experimental) shows the location of generated diff file</p></dd></dl></div><p>All the layout properties are exported to the environment, too.
        The following ones have meaning to <span class="command"><strong>svn-buildpackage</strong></span>.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">buildArea</span></dt><dd><p>the location of build area directory</p></dd><dt><span class="term">trunkUrl</span></dt><dd><p>the URL of the trunk directory for the current package.</p></dd><dt><span class="term">tagsUrl</span></dt><dd><p>the URL of the tags base directory for the current package.</p></dd><dt><span class="term">origDir</span></dt><dd><p>the local directory where the orig tarball should be
              located.
              </p></dd><dt><span class="term">origUrl</span></dt><dd><p>the URL from where the orig tarball for the current
              package can be pulled from.
              </p></dd></dl></div><p>The following variables are understood by <span class="command"><strong>svn-buildpackage</strong></span>:
        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">FORCETAG</span></dt><dd><p>Ignore the signs of an incomplete changelog and tag
              the repository anyway.
              </p></dd><dt><span class="term">FORCEEXPORT</span></dt><dd><p>Export upstream source from the repository even if
              <strong class="userinput"><code>mergeWithUpstream</code></strong> property is set.
              </p></dd><dt><span class="term">DEBIAN_FRONTEND</span></dt><dd><p>If <code class="option">DEBIAN_FRONTEND</code> is set to 'noninteractive'
              <code class="option">--svn-noninteractive</code> is called silently.
              </p></dd></dl></div></div><div class="refsect1"><a name="idm867"></a><h2>RECOMMENDATIONS</h2><p>Use shell aliases. Here are some examples for Bash:</p><pre class="programlisting">
alias svn-b="svn-buildpackage -us -uc -rfakeroot --svn-ignore"
alias svn-br="svn-b --svn-dont-purge --svn-reuse"
alias svn-bt="svn-buildpackage --svn-tag -rfakeroot"
        </pre><p>Those commands have respective meanings: build regardless
        of new or changed files; build regardless of new or changed
        files and reuse the build directory; build (for upload) and tag.
        </p><p>SSH is the easiest way to access remote repositories,
        although it usually requires entering a password more frequently
        with <span class="command"><strong>svn-buildpackage</strong></span>.  Workarounds include
        using an ssh key without a passphrase (although this is insecure
        and still relatively slow), or the SSH connection caching feature
        present in recent versions of SSH. For details, see the
        <span class="command"><strong>svn-buildpackage</strong></span> manual.
        </p><p>Another way to get a remote link is using the Subversion
        DAV module (with SSL and Apache user authentication), see the
        <span class="command"><strong>svn-buildpackage</strong></span> HOWTO manual for details.
        </p></div><div class="refsect1"><a name="idm877"></a><h2>SEE ALSO</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">
              <span class="citerefentry"><span class="refentrytitle">/usr/share/doc/svn-buildpackage/</span></span>
            </span></dt><dd><p>The svn-buildpackage HOWTO manual</p></dd><dt><span class="term">
              <span class="citerefentry"><span class="refentrytitle">svn-inject</span>(1)</span>
            </span></dt><dd><p>puts a Debian source package into Subversion repository</p></dd><dt><span class="term">
              <span class="citerefentry"><span class="refentrytitle">svn-upgrade</span>(1)</span>
            </span></dt><dd><p>upgrade source package from a new upstream revision</p></dd><dt><span class="term">
              <span class="citerefentry"><span class="refentrytitle">svn</span>(1)</span>
            </span></dt><dd><p>Subversion command line client tool</p></dd><dt><span class="term">
              <span class="citerefentry"><span class="refentrytitle">dpkg-buildpackage</span>(1)</span>
            </span></dt><dd><p>Debian source package tools</p></dd><dt><span class="term">
              <span class="citerefentry"><span class="refentrytitle">lintian</span>(1)</span>
            </span></dt><dd><p>Debian package checker</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch05.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="re02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. Command reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> svn-inject</td></tr></table></div></body></html>