README (4501B)
1 ============= 2 GNU ANASTASIS 3 ============= 4 5 This package includes the Anastasis core logic. The code is released 6 under the GNU Affero General Public License (v3 or later). See 7 COPYING for details. 8 9 Description 10 =========== 11 12 GNU Anastasis is a key backup and recovery tool from the GNU project. 13 This package includes the backend run by the Anastasis providers as 14 well as libraries for clients and a command-line interface. 15 16 Installation instructions can be found in INSTALL and 17 also in the handbook at https://docs.anastasis.lu/ which 18 is also in the doc/ folder. Please note that you must run 19 'make install' before you can run the testsuite using 20 'make check'. 21 22 23 Dependencies 24 ============ 25 26 Build tools for compiling Anastasis from source: 27 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28 29 Anastasis is built with Meson and Ninja. The './configure' script in 30 the top-level directory is a thin wrapper that runs 'meson setup build', 31 and the generated 'Makefile' is a wrapper around 'ninja -C build'; you 32 can equally invoke meson and ninja directly. 33 34 - gcc or clang 35 - meson >= 1.1.0 36 - ninja 37 - pkgconf or pkg-config 38 39 Optional, enabling additional build targets or tests: 40 41 - make (to use the generated Makefile 42 wrapper instead of ninja) 43 - makeinfo >= 4.8 (to build the Texinfo manual) 44 - gettext (to build translations) 45 - python3 (to run the database naming 46 convention test) 47 48 Only needed when regenerating files that are checked into git, not to 49 build the package: 50 51 - recutils >= 1.0 used by contrib/gana-update.sh to 52 regenerate the error codes 53 - sphinx used by contrib/update-tos.sh and 54 - sphinx-rtd-theme contrib/update-pp.sh to regenerate 55 - sphinx-multiversion the terms of service and privacy 56 policy 57 58 59 Direct dependencies 60 ~~~~~~~~~~~~~~~~~~~ 61 62 These are the direct dependencies for building and running Anastasis: 63 64 - GNU Taler exchange >= 1.5.0 65 - GNU Taler merchant >= 1.5.0 66 - GNUnet >= 0.27.0 67 - PostgreSQL >= 15.0 68 - GNU libmicrohttpd 69 - libgcrypt >= 1.6.1 70 - libsodium >= 1.0.18 71 - libcurl >= 7.34.0 72 - jansson 73 - zlib 74 75 The Taler exchange and merchant packages supply the libtaler* libraries 76 (libtalerutil, libtalerexchange, libtalermerchant, libtalerjson, 77 libtalerpq, libtalermhd, libtalercurl and the testing libraries), and 78 GNUnet supplies libgnunetutil, libgnunetjson, libgnunetcurl and 79 libgnunetpq. All of them are found via pkg-config. 80 81 82 Directory structure 83 =================== 84 85 src/include/ includes installed (public) headers 86 src/util/ implements helper and crypto routines 87 src/backend/ contains the REST service 88 src/stasis/ implements the database logic for the backend 89 src/authorization/ contains various authorization plugins 90 src/restclient/ implements a REST client for the backend 91 src/lib/ implements the main client-side backup and recovery logic 92 src/testing/ contains test cases for 'src/restclient/' and 'src/lib/' 93 src/reducer/ implements a reducer API on top of 'src/lib/' 94 src/cli/ includes a reducer-based command-line interface 95 contrib/ contains resource files, like what identity attributes to ask for 96 doc/ contains documentation files, like TeXinfo 97 po/ internationalization via GNU gettext 98 99 100 Development note 101 ================ 102 103 To test against a local development service, add 104 105 { 106 "code" : "xx", 107 "name" : "Testland", 108 "continent" : "Demoworld", 109 "call_code" : "+00" 110 } 111 112 to contrib/redux.countries.json, and also append something like 113 114 { 115 "url" : "http://localhost:8086/", 116 "restricted" : "xx" 117 }, 118 { 119 "url" : "http://localhost:8087/", 120 "restricted" : "xx" 121 }, 122 { 123 "url" : "http://localhost:8088/", 124 "restricted" : "xx" 125 }, 126 { 127 "url" : "http://localhost:8089/", 128 "restricted" : "xx" 129 } 130 131 to contrib/provider-list.json. Then the reducer will use these 132 providers on loopback for the "testland" country. 133 134 135 Experimental providers 136 ====================== 137 138 We hope to have another provider running soon. Once it is operational, 139 we should add 140 141 { 142 "url" : "https://v1.anastasis.openw3b.org/", 143 "name" : "Openw3b Foundation, India" 144 }, 145 146 to the contrib/provider-list.json.