File: README.source

package info (click to toggle)
borgbackup 1.0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 3,572 kB
  • ctags: 5,885
  • sloc: python: 11,127; ansic: 628; makefile: 129; sh: 70
file content (101 lines) | stat: -rw-r--r-- 3,721 bytes parent folder | download | duplicates (2)
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
borgbackup for Debian - information regarding the packaging
===========================================================



How upstream sources end up in the Debian source package
--------------------------------------------------------

The borgbackup source is managed in a GIT repository by upstream. Their
release process publishes tar-balls on [1] and PyPi packages on [2]. While
the former corresponds exactly to signed tags from the upstream
repository, the latter are created and gpg-signed by the upstream
maintainer and include several files which are created during a release
build and are not contained in the upstream GIT repo (mainly
Cython-generated *.c files, see below).

This Debian source package is maintained in a GIT repo as well, however it
is not a direct clone of the upstream sources. Instead we use
  `gbp import-orig --upstream-vcs-tag=TAG`
to import the tar-balls published on [2]. This allows for working with
official releases as advertised in the upstream documentation, while
maintaining the link to upstream version control.

[1] http://github.com/borgbackup/borg/releases
[2] https://pypi.python.org/pypi/borgbackup/



Building the package
--------------------

Please note that a simple "debuild" does not necessary build the
Debian package correctly, *when called in a git clone*.

This is because upstream uses python-setuptools-scm to generate
version numbers, which can produce unexpected results when parsing
the debian tags.  If called outside a git clone, it will fall back
to reading the (upstream-provided) metadata files, which works fine.

It is therefore recommended to build from outside a git clone.

Git-buildpackage includes an "export" feature which will transfer
the files to a scratchpad directory and call debuild/cowbuilder in
that directory; read gbp-buildpackage(1) for details.  The included
debian/gbp.conf file by default activates exporting and uses
"../build-dir/" as a scratchpad.

tl,dr:
1. use "gbp buildpackage" instead of debuild
2. to incrementally work on changes, use a command like
    git add -u && gbp buildpackage --git-ignore-new --git-export=INDEX



Auto-generated files that are included in upstream tarball
----------------------------------------------------------

The upstream tarball contains some files that can be automatically
generated, mainly the Cython-processed *.c files.

After discussion at #792096, it was agreed that we should rebuild
the cython *.c files during build.  This is currently done by deleting
them using the debian/clean file, and letting the upstream build-system
automatically regenerate them as needed.

When updating the package, please check whether files have been added
or removed from this set and update debian/clean accordingly.



Manpage generation
------------------

The manpage included in this package is created using the upstream Sphinx
build system, which includes a "make man" command.

See also upstream issue 208 about manpages:
https://github.com/borgbackup/borg/issues/208



Python3-msgpack dependency
--------------------------

When updating the package, please also check whether the explicitly
given versioned runtime dependency on python3-msgpack is still
necessary.

When building without it, python3:Depends may only pick up a non-versioned
dependency for the binary package, resulting in an installable, yet not
runnable binary package in a backport situation.
(At the time of writing, stable/jessie only has 0.4.2)



Priority extra because of lz4 dependency
----------------------------------------

Keep an eye on liblz4 (source package lz4), which is currently (Jan 2016)
priority extra.  If it gets increased to optional, we can re-include
borgbackup in the optional set.