# 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.
# 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
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
* [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/),
[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.
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/>.