summaryrefslogtreecommitdiff
path: root/README.md
blob: a9583cd3991897a43d8973dcfb5b5bd8f1cbb42e (plain)
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
# Obnam — a backup system

Obnam2 is a project to develop a backup system.

For installation instructions and a quick start guide, see
[tutorial.md][]. For more details on goals, requirements, and
implementation details, see the [obnam.md][] subplot file.

[tutorial.md]: https://doc.obnam.org/tutorial.html
[obnam.md]: https://doc.obnam.org/obnam.html

# Dependencies for build and test

The up-to-date, tested list of dependencies for building and testing
Obnam are listed in the file [debian/control](debian/control), in
terms of Debian packages, and in [Cargo.toml](Cargo.toml) for Rust.
The Rust dependencies are handled automatically by the Cargo tool on
all platforms. The other dependencies are, not including ones needed
merely for building Debian packages:

* [Rust](https://www.rust-lang.org/tools/install) — the
  programming implementation. This can be installed via the standard
  Rust installer, `rustup`, or any other way. Obnam does not currently
  specify an explicit minimum version of Rust it requires, but its
  developers use whatever is the current stable version of the
  language.
  
  On Debian, the `build-essential` package also needs to be installed
  to build Rust programs.

* [daemonize](http://software.clapper.org/daemonize/) — a tool
  for running a command as a daemon in the background; needed for
  testing, so that the Obnam server can be started and stopped by the
  Obnam test suite.

* [SQLite](https://sqlite.org), specifically its development library
  component — an SQL database engine that stores the whole
  database in a file and can be used as a library rather then run as a
  service.

* [OpenSSL](https://www.openssl.org), specifically its development
  library component known as `libssl-dev` — a library that
  implments TLS, which Obnam uses for communication between its client
  and server parts.

* [moreutils](https://joeyh.name/code/moreutils/) — a collection
  of handy utilities, of which the Obnam test suite uses the `chronic`
  tool to hide output of successful commands. This is optional, but
  nice to have.

* [pkg-config](http://pkg-config.freedesktop.org) — a tool for
  managing compile and link time flags; needed so that the OpenSSL
  library can be linked into the Obnam binaries.

* [Python 3](https://www.python.org/),
  [Requests](http://python-requests.org),
  [PYYAML](https://github.com/yaml/pyyaml) — programming
  language and libraries for it, used by the Obnam test suite.

* [Subplot](https://subplot.liw.fi) — a tool for documenting
  acceptance criteria and verifying that they are met.

* [TeX Live](http://www.tug.org/texlive/) — a typesetting system
  for generating PDF versions of documentation. The LaTeX
  implementation and fonts are needed, not the full suite. None of Tex
  Live is needed, if PDFs aren't needed, but `./check` does not
  currently have a way to be told not to generate PDFs.

* [Summain](https://summain.liw.fi) — a tool for generating
  manifests of files. Used by the Obnam test suite to verify restored
  data matches the original data.

## Legalese


Copyright 2020-2021  Lars Wirzenius and others

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.