diff options
Diffstat (limited to 'tickets/8e2695e055c1477eabf43b18db2b8578/Maildir/new/1457028906.M804487P4151Q5.hrun')
-rw-r--r-- | tickets/8e2695e055c1477eabf43b18db2b8578/Maildir/new/1457028906.M804487P4151Q5.hrun | 950 |
1 files changed, 950 insertions, 0 deletions
diff --git a/tickets/8e2695e055c1477eabf43b18db2b8578/Maildir/new/1457028906.M804487P4151Q5.hrun b/tickets/8e2695e055c1477eabf43b18db2b8578/Maildir/new/1457028906.M804487P4151Q5.hrun new file mode 100644 index 0000000..79b161f --- /dev/null +++ b/tickets/8e2695e055c1477eabf43b18db2b8578/Maildir/new/1457028906.M804487P4151Q5.hrun @@ -0,0 +1,950 @@ +Return-Path: <obnam-dev-bounces@obnam.org> +X-Original-To: distix@pieni.net +Delivered-To: distix@pieni.net +Received: from bagpuss.pepperfish.net (bagpuss.pepperfish.net [148.251.8.16]) + (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) + (No client certificate requested) + by pieni.net (Postfix) with ESMTPS id 74BEA2E113 + for <distix@pieni.net>; Thu, 3 Mar 2016 19:13:14 +0100 (CET) +Received: from platypus.pepperfish.net (unknown [10.112.100.20]) + by bagpuss.pepperfish.net (Postfix) with ESMTP id 1BA7FED4; + Thu, 3 Mar 2016 18:13:14 +0000 (GMT) +Received: from ip6-localhost ([::1] helo=platypus.pepperfish.net) + by platypus.pepperfish.net with esmtp (Exim 4.80 #2 (Debian)) + id 1abXkP-0006gV-TC; Thu, 03 Mar 2016 18:13:13 +0000 +Received: from inmail0 ([10.112.100.10] helo=mx0.pepperfish.net) + by platypus.pepperfish.net with esmtp (Exim 4.80 #2 (Debian)) + id 1abXkN-0006fo-Sb + for <obnam-dev@obnam.org>; Thu, 03 Mar 2016 18:13:11 +0000 +Received: from mail-qg0-f53.google.com ([209.85.192.53]) + by mx0.pepperfish.net with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128) + (Exim 4.80) (envelope-from <remirampin@gmail.com>) + id 1abXkJ-0006QG-Nz + for obnam-dev@obnam.org; Thu, 03 Mar 2016 18:13:11 +0000 +Received: by mail-qg0-f53.google.com with SMTP id w104so23732137qge.1 + for <obnam-dev@obnam.org>; Thu, 03 Mar 2016 10:13:02 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; + h=from:to:cc:subject:date:message-id:in-reply-to:references + :in-reply-to:references; + bh=VwvE5uzCWq62tMVrb0UDgHBehjL57d3j4csJZymRhMM=; + b=FaZNC1xg1UC4r2SpH9JUWcW6pbzYe71/V2FfCPiE8kG88fhN+vH3a7RajFxWOlgyO6 + +MRvPgTtF30pbBILiT+9WffhLseGuj7RS1AsOeigC0R9cC3bJRGyTFegrpc6gRijGCrA + cuHb6sr9jhvoHQgA0medm8q1C3kxniKKnErMxXY8goFkloE8+b0IugX+sNgHjhn4753E + IOi++r/vwg4zTJ2T1EQGXH65PqWo1A8Ju9gZz384FpfWxJP5m8DdgamKBiTznlElYU0X + WS6+ltyELy8PJTxvargDBgydog/ZxNdHTcLt6eqlCSc4wRItPxrFTeEqLh+e3dIw0Vqt + 1DvA== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20130820; + h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to + :references:in-reply-to:references; + bh=VwvE5uzCWq62tMVrb0UDgHBehjL57d3j4csJZymRhMM=; + b=iB5tMvvIlbO9mhpmjnBL4t9+LMx6cz9fKfLjLKOko4+O2idxze/mDBVGKbQgvnODf0 + jwWx8+d9KJyTRJAZRW6XxeOncpVMOXzkqBlftcqqnsf9qeubNHE4eo44/MhWU5+nfsT9 + 8TjqewMKBtQ+dnTZm02wLJqhX46Jql/VHDKoM6i9Saf/A1uZNMAgztvKMFhxyyRoJMuJ + WCaCBzO0B3KQVUiGof8EySPkVSA+RRdHzV3jJqBT4KstFvcA42XrAjZq9loDJmVQpf2o + iwsvIPLKoZbe1cuY3JlRRe8otgA8IgADtAeO4H2In70VOih0aXustT+ey4vyHyBTRUJL + M78Q== +X-Gm-Message-State: AD7BkJJwodM9otrDG8hCxl0NhKEfQTI5inD586q/IoLrFzBxQ0anJ7dd6pvpmBkTDAonsg== +X-Received: by 10.140.42.39 with SMTP id b36mr4792516qga.4.1457028776135; + Thu, 03 Mar 2016 10:12:56 -0800 (PST) +Received: from randy.nyu.edu (NYUFWA-WLESSAUTHCLIENTS-03.NATPOOL.NYU.EDU. + [216.165.95.74]) + by smtp.gmail.com with ESMTPSA id d64sm17391811qgd.9.2016.03.03.10.12.55 + (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); + Thu, 03 Mar 2016 10:12:55 -0800 (PST) +From: Remi Rampin <remirampin@gmail.com> +To: obnam-dev@obnam.org +Date: Thu, 3 Mar 2016 13:12:45 -0500 +Message-Id: <e98d668267a30a19b287b728ba674191c52613a4.11457028091.git.remirampin@gmail.com> +X-Mailer: git-send-email 2.7.2 +In-Reply-To: <cover.11457028091.git.remirampin@gmail.com> +References: <cover.11457028091.git.remirampin@gmail.com> +In-Reply-To: <cover.1457028091.git.remirampin@gmail.com> +References: <cover.1457028091.git.remirampin@gmail.com> +X-Spam-Score: 0.2 +X-Spam-Score-int: 2 +X-Spam-Bar: / +X-Scanned-By: pepperfish.net, Thu, 03 Mar 2016 18:13:11 +0000 +X-Spam-Report: Content analysis details: (0.2 points) + pts rule name description + ---- ---------------------- -------------------------------------------------- + 1.0 PPF_FROM_CONTAINS_MAIL The From header contains 'mail' + 1.2 FREEMAIL_FROM Sender email is commonly abused enduser mail provider + (remirampin[at]gmail.com) + -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low + trust [209.85.192.53 listed in list.dnswl.org] + -0.0 SPF_PASS SPF: sender matches SPF record + -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% + [score: 0.0000] + 0.8 PPF_SUBSCRIBE_SPLIT RAW: Contains the text 'subscribe' with optional + whitespace + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's + domain + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily valid + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature +X-ACL-Warn: message may be spam +X-Scan-Signature: c7c007cbd50c36c3acd0264c8a1b1a00 +Cc: Remi Rampin <remirampin@gmail.com> +Subject: [PATCH 1/4] Sync French translation with English reference +X-BeenThere: obnam-dev@obnam.org +X-Mailman-Version: 2.1.5 +Precedence: list +List-Id: Obnam development discussions <obnam-dev-obnam.org> +List-Unsubscribe: <http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-dev-obnam.org>, + <mailto:obnam-dev-request@obnam.org?subject=unsubscribe> +List-Archive: <http://listmaster.pepperfish.net/pipermail/obnam-dev-obnam.org> +List-Post: <mailto:obnam-dev@obnam.org> +List-Help: <mailto:obnam-dev-request@obnam.org?subject=help> +List-Subscribe: <http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-dev-obnam.org>, + <mailto:obnam-dev-request@obnam.org?subject=subscribe> +Sender: obnam-dev-bounces@obnam.org +Errors-To: obnam-dev-bounces@obnam.org + +--- + manual/fr/020-concepts.mdwn | 2 +- + manual/fr/060-backing-up.mdwn | 48 ++++--- + manual/fr/070-restoring.mdwn | 28 +++- + manual/fr/110-encryption.mdwn | 10 ++ + manual/fr/120-misc.mdwn | 16 +++ + manual/fr/140-troubleshooting.mdwn | 75 +++++++++++ + manual/fr/155-repo.mdwn | 19 +++ + manual/fr/160-tuning.mdwn | 41 +++++- + manual/fr/700-contrib.mdwn | 181 +++++++++++++++++++++++++ + manual/fr/800-errors.mdwn | 10 ++ + manual/fr/801-errors.mdwn | 269 +++++++++++++++++++++++++++++++++++++ + 11 files changed, 679 insertions(+), 20 deletions(-) + create mode 100644 manual/fr/155-repo.mdwn + create mode 100644 manual/fr/700-contrib.mdwn + create mode 100644 manual/fr/800-errors.mdwn + create mode 100644 manual/fr/801-errors.mdwn + +diff --git a/manual/fr/020-concepts.mdwn b/manual/fr/020-concepts.mdwn +index 46cb5d5..c367bc1 100644 +--- a/manual/fr/020-concepts.mdwn ++++ b/manual/fr/020-concepts.mdwn +@@ -277,7 +277,7 @@ Glossary + * **off-site backup**: a backup repository stored physically far away + from the live data + * **precious data**: all the data you care about; cf. live data +-* **repository**: the location where are backups are stored ++* **repository**: the location where backup data is stored + * **restore**: retrieving data from a backup repository + * **root**, **backup root**: a directory that is to be backed up, + including all files in it, and all its subdirectories +diff --git a/manual/fr/060-backing-up.mdwn b/manual/fr/060-backing-up.mdwn +index 16ccc5d..ee28d6e 100644 +--- a/manual/fr/060-backing-up.mdwn ++++ b/manual/fr/060-backing-up.mdwn +@@ -137,8 +137,8 @@ protocol (part of SSH). You need the following to achieve this: + exchange for having one of their machines at your place, so that you + both can backup remotely. + +-* An **ssh key** for logging into the server. You _can_ log in using +- passwords too, but it is quite cumbersome. ++* An **ssh key** for logging into the server. Obnam does not currently ++ support logging in via passwords. + + * Enough disk space on the server to hold your backups. + +@@ -356,6 +356,29 @@ duplicate data is quite coarse (see the `--chunk-size` setting), and + so Obnam often doesn't find duplication when it exists, when the + changes are small. + ++De-duplication isn't useful in the following scenarios: ++ ++* A file changes such that things move around within the file. The ++ (current) Obnam de-duplication is based on non-overlapping chunks ++ from the beginning of a file. If some data is inserted, Obnam won't ++ notice that the chunks have shifted around. This can happen, for ++ example, for disk or ISO images. ++ ++* Files with duplicate data that is not on a chunk boundary. For ++ example, emails with large attachments. Each email recipient gets ++ different `Received` headers, which shifts the body and attachments ++ by different amounts. As a result, Obnam won't notice the ++ duplication. ++ ++* Data in compressed files, such as `.zip` or `.tar.xz` files. Obnam ++ doesn't know about the file compression, and only sees the ++ compressed version of the data. Thus, Obnam won'd de-duplicate it. ++ ++A future version of Obnam will hopefully improve the de-duplication ++algorithms. If you see this optimistic paragraph in a version of Obnam ++released in 2017 or later, please notify the maintainers. Thank you. ++ ++ + De-duplication and safety against checksum collisions + ----------------------------------------------------- + +@@ -428,27 +451,18 @@ happen if Obnam is interrupted by the user before it's finished. + + The Obnam command `force-lock` deals with this situation. It is + dangerous, though. If you force open a lock that is in active use by +-a running Obnam instance, there will likely to be some stepping of +-toes. The result may, in extreme cases, even result in repository +-corruption. So be careful. ++any running Obnam instance, on any client machine using that ++repository, there will likely to be some stepping of toes. The result ++may, in extreme cases, even result in repository corruption. So be ++careful. + + If you've decided you can safely do it, this is an example of how to + do it: + + obnam -r /media/backups/tomjon-repo force-lock + +-Note that some of the locks are per-client, to prevent you from +-accidentally running Obnam twice for the same client, which would +-result in standing on your own toes: kind of impressive, but +-uncomfortable and not recommended. +- +-If you need to force open a lock for specific client, you can specify +-the client name explicitly: +- +- obnam --client-name magrat \ +- -r /media/backups/tomjon-repo force-lock +- +-(Long line broken to two for typographical reasons.) ++It is not currently possibly to only break locks related to one ++client. + + Consistency of live data + ------------------------ +diff --git a/manual/fr/070-restoring.mdwn b/manual/fr/070-restoring.mdwn +index 378b071..b56bd9f 100644 +--- a/manual/fr/070-restoring.mdwn ++++ b/manual/fr/070-restoring.mdwn +@@ -5,7 +5,7 @@ The worst has happened! Your cat got confused between its litter box + and your hard drive! Your goat deleted your most important document + ever! Woe be you! + +-Let's stay calm. This is why you have backups. There's on need for ++Let's stay calm. This is why you have backups. There's no need for + exclamation marks. Take a deep breath, have a cup of tea, and all will + be well. + +@@ -90,6 +90,32 @@ restored files. If you do want replace your live data with restored + files, you should restore to a temporary location first, and then move + the files to where you want them to be. + ++An actual example of a restoration ++---------------------------------- ++ ++I had a corrupted gnus file, and this is how I restored it from backup. ++ ++ obnam --config=/home/foobar/cron/conf/obnam.conf generations>~/cron/upload/obgen.txt ++ ++This copies all generations for the main obnam backup to obgen.txt, and this ++is part of that file. ++ ++ 1207586 2014-08-25 08:00:43 .. 2014-08-25 08:08:24 (385163 files, 175029819657 bytes) ++ 1208367 2014-08-25 12:00:42 .. 2014-08-25 12:08:31 (385965 files, 175057598863 bytes) ++ 1209313 2014-08-25 16:00:12 .. 2014-08-25 16:07:33 (386537 files, 175076976590 bytes) ++ 1210254 2014-08-25 20:00:15 .. 2014-08-25 20:09:41 (386896 files, 175086483254 bytes) ++ ++And I decided to restore from generation 1208367. ++ ++This is the actual restore command. ++ ++ obnam --config=/home/foobar/cron/conf/obnam.conf --generation=1208367 restore ~/News/rss/nnrss.el --to=/home/foobar/cron/upload/ ++ ++This restores 'nnrss.el' to ~/cron/upload/ from where I was able to copy it ++back to its proper place in ~/News/rss/ ++ ++Obviously you replace your user-name for foobar. ++ + Practice makes prestores painless + --------------------------------- + +diff --git a/manual/fr/110-encryption.mdwn b/manual/fr/110-encryption.mdwn +index 74a959b..94a4426 100644 +--- a/manual/fr/110-encryption.mdwn ++++ b/manual/fr/110-encryption.mdwn +@@ -112,6 +112,16 @@ them. Run the following command and pick your key from the list. + + gpg --list-keys + ++The output will look something like this: ++ ++ pub 4096R/5E8511F9 2009-07-22 ++ uid Lars Wirzenius <liw@liw.fi> ++ sub 2048R/9BE35AE6 2011-08-05 ++ ++That's the output for one key; there may be many keys. The key ++identifier is on the line staring with `pub`, in the second column ++after the slash. Above, it's 5E8511F9. ++ + In the rest of the examples in this chapter, we'll assume your key + identifier is CAFEFACE. + +diff --git a/manual/fr/120-misc.mdwn b/manual/fr/120-misc.mdwn +index 0ed6c7f..d80e823 100644 +--- a/manual/fr/120-misc.mdwn ++++ b/manual/fr/120-misc.mdwn +@@ -3,3 +3,19 @@ Other stuff + + This chapter discusses topics that do not warrant a chapter of their + own, such as compressing backups and running Obnam from cron. ++ ++k4dirstat cache files ++--------------------- ++ ++[k4dirstat] is a utility for visualising the disk space used by a ++directory tree. Obnam's `kdirstat` command can be used to produce a ++listing of the contents of a generation in a format which can be read ++by k4dirstat using `File`, `Read Cache File` from the k4dirstat ++menu. e.g. ++ ++ $ obnam kdirstat --client CLIENT --generation GENID > CLIENT.kdirstat.cache ++ $ gzip -v9 CLIENT.kdirstat.cache # OPTIONAL ++ ++`CLIENT.kdirstat.cache[.gz]` can now be read by `k4dirstat`. ++ ++[k4dirstat]: https://bitbucket.org/jeromerobert/k4dirstat/wiki/Home +diff --git a/manual/fr/140-troubleshooting.mdwn b/manual/fr/140-troubleshooting.mdwn +index 1d4b377..02d8188 100644 +--- a/manual/fr/140-troubleshooting.mdwn ++++ b/manual/fr/140-troubleshooting.mdwn +@@ -5,3 +5,78 @@ This chapter discusses how to debug problems with Obnam. It covers + things such as log files, various levels of logging and tracing, and + common problems with Obnam use. It also explains what things go where + in an Obnam backup repository. ++ ++ ++Turning on full logging ++----------------------- ++ ++Obnam can write a log file. There are several options controlling ++that. Knowing these can help get out the most information when there's ++a problem that needs to be investigated. ++ ++* `--log=obnam.log` tells Obnam where to log. The log is a simple text ++ file. ++* `--log-level=debug` tells Obnam to log at the most detailed level. ++ The default level is `info`, which excludes most debug information. ++* `--trace=obnamlib --trace=larch` tells Obnam to log additional debug ++ information. The two arguments match all filenames in Obnam and the ++ Larch library Obnam uses. This additional information is mostly ++ useful to someone who can read and understand the program source ++ code. ++ ++Note that these settings can make log files be quite large, in the ++order of tens of megabytes. The size depends on how many files and how ++much data your live data has. ++ ++ ++Reporting problems ("bugs") ++--------------------------- ++ ++If you have a problem with Obnam, and you want to report it (please ++do!), including the following information is helpful and makes it ++easier to figure out what the problem is. ++ ++* You should report problems to the `obnam-support@obnam.org` mailing ++ list. This is a publically archived mailing list where various ++ people help others use Obnam. ++ ++* What is the problem? What did you try to achieve? What actually ++ happened? ++ ++* The version of Obnam and Larch you're using, and how you installed ++ it. ++ - On Debian, run `dpkg -l obnam python-larch` on the command line ++ and include the output. ++ ++* The exact command line you used. Copy-paste it instead of ++ typing it again into the mail. Sometimes the problem can be hidden ++ if you don't copy the command line exactly. Also, copying by typing ++ is boring, and we should avoid boring things in life. ++ ++* If there's an error message, copy-paste that into the mail. ++ ++* The output of `obnam --dump-config`, which includes the full ++ configuration. Include it as an attachment to your mail to ++ `obnam-support`. If you have some secret information, such as ++ filenames or hostnames, you can replace those with XXXX. ++ ++* If you can reproduce the problem while running with ++ `--log-level=debug`, `--log=obnam.log` and `--trace=obnamlib ++ --trace=larch` options, include a suitable amount from the end of ++ the log file. The suitable amount may depend on the situation, but ++ if you give the last two hundred lines, and it's not enough, we'll ++ ask for more. Again, feel free to replace any sensitive filenames, ++ etc, with XXXX. ++ ++* The output of the `env` command, in the same terminal window in ++ which you ran Obnam. (Again, as an attachment.) ++ ++* If your bug is about performance, please run Obnam under profiling, ++ and attach the profiling file. To run Obnam under profiling, install ++ the Python profile (`python-profiler` package in Debian/Ubuntu), and ++ set the `OBNAM_PROFILE` environment variable to the name of the file ++ with the profiling output (that's the file you should send by mail). ++ For example: `OBNAM_PROFILE=obnam.prof obnam backup` would run the ++ backup under the profiler, and write the result to `obnam.prof`. ++ ++Thank you for your help in making Obnam better. +diff --git a/manual/fr/155-repo.mdwn b/manual/fr/155-repo.mdwn +new file mode 100644 +index 0000000..c99d675 +--- /dev/null ++++ b/manual/fr/155-repo.mdwn +@@ -0,0 +1,19 @@ ++The backup repository internals ++=============================== ++ ++This chapter describes what the Obnam backup repository looks like. ++Unless you're interested in that, you can skip that entirely. ++ ++For now, look at the Obnam website at <http://obnam.org/development/>. ++ ++ ++Repository file permissions ++--------------------------- ++ ++Obnam sets the permissions of all files it creates in the repository ++such that only the owner of the files can read or write them. ++(Technically, 0600 for files, 0700 for directories.) ++ ++This is to prevent backups from leaking because someone else has read ++access to the repository. There is no setting in Obnam to control ++this. +diff --git a/manual/fr/160-tuning.mdwn b/manual/fr/160-tuning.mdwn +index bcca7f0..160caab 100644 +--- a/manual/fr/160-tuning.mdwn ++++ b/manual/fr/160-tuning.mdwn +@@ -2,7 +2,46 @@ + + This chapter discusses ways to tune Obnam performance for various + situations. It covers the various options that can affect CPU and +-memory consumptions, as well as ways to experiment to find a good set ++memory consumption, as well as ways to experiment to find a good set + of values. + + See <http://obnam.org/faq/tuning/> for a start. ++ ++ ++## Running Obnam under the Python profiler ++ ++A **profiler** is a program that measures where another program spends ++its time. This can be very useful for finding out why the other ++program is slow. ++ ++Obnam can easily be run under the Python profiler. You need to have ++the profiler installed. Check with your operating system or Python ++installation how to achieve that. To see if you have it installed, run ++the following command on the command line: ++ ++ python -c 'import cProfile' ++ ++If this outputs nothing, all is well. If it outputs an error such as ++the following, you have not got the profiler installed: ++ ++ Traceback (most recent call last): ++ File "<string>", line 1, in <module> ++ ImportError: No module named cProfiler ++ ++Once you have the profiler installed, run Obnam like this: ++ ++ OBNAM_PROFILE=backup.prof obnam bsckup ++ ++This will cause the profiling data to be written to the file ++`backup.prof`. You can do this for any Obnam command, and write it to ++any file. ++ ++The profiling data is in binary form. Obnam comes with a little helper ++program to transform it to a human-readable form: ++ ++ obnam-viewprof backup.prof | less ++ ++If you run the above command, you'll see that the humans to whom this ++is readable are programmers and circus clowns. If you can understand ++the output, great! If not, it's still useful to send that to the Obnam ++developers to report a performance problem. +diff --git a/manual/fr/700-contrib.mdwn b/manual/fr/700-contrib.mdwn +new file mode 100644 +index 0000000..efdcd9a +--- /dev/null ++++ b/manual/fr/700-contrib.mdwn +@@ -0,0 +1,181 @@ ++Participating in Obnam development ++================================== ++ ++The Obnam project is quite small, as far as software projects go. ++There is one main developer, plus a few others who sometimes help out. ++It would be nice to have more people involved, and this chapter is an ++introduction for that. ++ ++It is a common misunderstanding that only code matters in a software ++project. On the contrary, without a number of other things, code is ++useless, particularly so in a free software project, including Obnam. ++Examples of necessary things in almost any serious software project: ++ ++* writing and updating documentation, which includes manuals and ++ websites ++* translating documentation, and the software's user interface ++* providing support to users with questions or problems ++* reporting actionable bugs ++* processing bug reports: asking for clarifications, reproducing the ++ reported problem, finding the cause of the problem, and developing a ++ suitable fix ++* porting the software to various platforms, including different ++ operating systems, different versions of said operating systems, ++ different versions of the languages and libraries the software uses, ++ different hardware, etc ++* quality assurance: developing and performing manual and automated ++ tests and benchmarks, and analysing results ++* hosting and operating web sites, mailing lists, IRC channels, other ++ communication channels ++* handling project governance, which includes dealing with conflicts ++ between people ++* managing the project in general, including making sure things don't ++ stall ++* finally, writing the code itself, which is a necessary, but not ++ sufficient part of having a project that people other than the ++ developers can use it ++ ++This list is insufficient; additions are welcome. See the rest of this ++chapter for suggestions on how to contribute to the list. ++ ++ ++Helping support users ++--------------------- ++ ++Perhaps the easiest way to participate in the project is to help ++support other users of the software. This is easy, and doesn't ++necessarily require more than being able to use the software oneself. ++Yet it is quite valuable, as it frees others from doing that. Even ++with the highest quality, easiest to use software, there's always some ++need for user support: ++ ++* Code can be wrong, and a user may experience this. Analysing the ++ situation and isolating the bug is an important part of the software ++ development process. ++ ++* Documentation can be wrong, or out of date, or written in ++ anticipation of a feature that doesn't exist yet. ++ ++* Some people have misunderstandings, due to whatever reason, which ++ leads them to have problems when using the software. Figuring out ++ what the actual problem and its cause are can be a time consuming ++ process, but often does not require any special skills, except for ++ patience and a willingness to ask a lot of questions. ++ ++In the Obnam project, the best way to help out with this is to ++subscribe to the `obnam-support@obnam.org` mailing list or join the ++`#obnam` (irc.oftc.net) IRC channel, and start answering questions. ++ ++It's OK to not be an expert. Helping others is a great way to learn. ++If you make it clear you're not an expert, but are trying to help ++anyway, usually makes others appreciate your help even more. ++ ++Some suggestions on doing support work: ++ ++* Try to understand what the person needing help is actually trying to ++ achieve, rather than answering their literal question. Better yet, ++ do both. ++ ++* You don't need to have the solution to respond. A quick, but ++ incomplete answer that nevertheless moves the discussion forward is ++ helpful. Even if you don't know the correct answer, it's good to ask ++ a question that results in the person needing help providing more ++ information, or finding the solution themselves, or inspires someone ++ else to discover the solution, ++ ++* Always be helpful and polite. Never respond with things such as ++ "read the fine manual" (or RTFM for short). It's OK to say that the ++ answer is in the manual, but then provide a link, and possibly also ++ a quote. ++ ++* People who need help are often frustrated, and sometimes desperate, ++ because they've tried and tried to solve the problem on their own, ++ but have failed. This can leak through their messages. Ignore it, ++ unless they actually become impolite, at which point its probably ++ best to escalate the situation. Avoid getting into a quarrel about ++ who's right or who said what and what did they mean by it. ++ ++* It's better to not respond at all, than respond while irritated, ++ annoyed, or angry. It's more important for the project to maintain a ++ polite and helpful atmosphere in the long run than to solve any ++ current technical problem. ++ ++In short, if you do your best to be polite, friendly, and helpful, go ++ahead and respond. ++ ++ ++Writing and updating documentation ++---------------------------------- ++ ++The project has various kinds of documentation. ++ ++* The `obnam.org` website. ++* The manual page. ++* The manual (which is what you're reading now). ++* Various blog posts around the web. ++ ++Writing documentation is fairly easy. Updating it takes a bit more ++effort, since it requires reviewing existing documentation to make ++sure it's up to date. The main goals of Obnam documentation are: ++ ++* Accuracy. ++* Clarity. ++* Completeness. ++* A bit of dry humour in places. ++ ++Any help you can give here is most welcome. ++ ++* Read through existing documentation. ++* If you find anything that's wrong, inaccurate, incomplete, missing, ++ or unclear, send a note to the developer mailing list. ++* If you can include a new wording, all the better. It's not required. ++* If you can provide an actual patch, perfect, since it makes it ++ easiest to incorporate your suggestion. Again, it's not required. ++ ++You don't need to be a good writer. As part of the process, others ++will review what you send, and will point out anything they feel can ++be improved. For example, suppose you notice that a paragraph in this ++manual is unclear, but you don't know what it actually should say. If ++you send a mail saying this, others can then come up with a better ++wording. ++ ++Translating documentation ++------------------------- ++ ++The Obnam manual and manual page are written in English, and have been ++translated to German. More languages are most welcome. ++ ++The author of this manual is not particularly familiar with the ++process of translation, and so wishes someone else would fill in this ++section. ++ ++The Obnam user interface is not currently translatable, and making it ++so will require code changes. Helping make those code changes would be ++nice. ++ ++Developing the code ++------------------- ++ ++Assuming you already know how to program, it's fairly straightforward ++to work on the Obnam code base. At least it's meant to be so: if you ++have trouble, please ask and point out what's unclear or wrong. ++ ++Check out the source from the git server, and read the `README` file ++for details on how to get started, and how to run the automated test ++suite, and how to send patches. See the website for some development ++documentation, including explanations of the on-disk data structures. ++ ++Code changes that are not very trivial should be sent in a form that ++can be handled by git. This can be actual patches sent to the mailing ++list, or a URL from which changes can be merged. ++ ++Project governance ++------------------ ++ ++The Obnam project has a very informal form of governance: the founder ++of the project, Lars Wirzenius, has all the power, and everyone else ++has no power. As the project grows, this will change. ++ ++If there's a social problem somewhere, for example someone is ++misbehaving, it's best to report it to Lars directly. If Lars is the ++problem, it's best to call him out directly. +diff --git a/manual/fr/800-errors.mdwn b/manual/fr/800-errors.mdwn +new file mode 100644 +index 0000000..e42580c +--- /dev/null ++++ b/manual/fr/800-errors.mdwn +@@ -0,0 +1,10 @@ ++Appendix: Error messages ++======================== ++ ++This appendix lists all Obnam error messages and their explanations. ++It is possible you'll see other error messages while running Obnam. ++These are not listed here, as Obnam doesn't know about them. ++ ++The errors are listed twice: briefly, in order of their unique ++error, and then more fully, in alphabetical order. ++ +diff --git a/manual/fr/801-errors.mdwn b/manual/fr/801-errors.mdwn +new file mode 100644 +index 0000000..084f279 +--- /dev/null ++++ b/manual/fr/801-errors.mdwn +@@ -0,0 +1,269 @@ ++## By error code ++ ++* `R018FCX ToplevelIsFileError` ++* `R01F56X RepositorySettingMissingError` ++* `R02C17X HardlinkError` ++* `R0B15DX RepositoryGenerationDoesNotExist` ++* `R0BE94X RepositoryClientNotLocked` ++* `R0C79EX GpgError` ++* `R0F22CX URLSchemeAlreadyRegisteredError` ++* `R0FC21X SetMetadataError` ++* `R169C6X MissingFilterError` ++* `R173AEX NoFilterTagError` ++* `R1A025X RepositoryClientKeyNotAllowed` ++* `R1CA00X ClientDoesNotExistError` ++* `R22E66X SizeSyntaxError` ++* `R24424X RepositoryClientDoesNotExist` ++* `R283A6X UnitNameError` ++* `R2FA37X WrongNumberOfGenerationSettingsError` ++* `R338F2X BackupRootMissingError` ++* `R3B42AX WrongNumberOfGenerationsForVerify` ++* `R3E151X RepositoryFileDoesNotExistInGeneration` ++* `R3E1C1X RestoreTargetNotEmpty` ++* `R41CE6X RepositoryClientAlreadyExists` ++* `R43272X RepositoryChunkDoesNotExist` ++* `R45B50X DuplicatePeriodError` ++* `R47416X WrongHostKeyError` ++* `R4C3BCX BackupErrors` ++* `R57207X RepositoryClientGenerationUnfinished` ++* `R5914DX InvalidPortError` ++* `R5F98AX NoHostKeyError` ++* `R681AEX LockFail` ++* `R6A098X RepositoryGenerationKeyNotAllowed` ++* `R6C1C8X RepositoryClientListNotLocked` ++* `R6EAF2X RepositoryClientLockingFailed` ++* `R7137EX BagIdNotSetError` ++* `R79699X RepositoryFileKeyNotAllowed` ++* `R79ED6X BackupRootDoesNotExist` ++* `R7B8D0X FileNotFoundError` ++* `R826A1X UnknownVFSError` ++* `R8AAC1X NoHostKeyOfWantedTypeError` ++* `R8F974X RepositoryChunkIndexesLockingFailed` ++* `R91CA1X ShowFirstGenerationError` ++* `R9808DX ForgetPolicySyntaxError` ++* `RA4F35X RootIsNotADirectory` ++* `RA5942X WrongNumberOfGenerationsForDiffError` ++* `RA7D64X UnknownRepositoryFormatWanted` ++* `RA881CX RepositoryChunkContentNotInIndexes` ++* `RA920EX NotARepository` ++* `RABC26X FuseModuleNotFoundError` ++* `RB1048X RepositoryClientListLockingFailed` ++* `RB4324X GAImmutableError` ++* `RB8E98X WrongURLSchemeError` ++* `RB927BX SeparatorError` ++* `RBF6DDX RepositoryAccessError` ++* `RCB0CAX KeyAuthenticationError` ++* `RCE08AX ObnamIOError` ++* `RCEF5CX MallocError` ++* `RD5FA4X ObnamSystemError` ++* `RD6259X RestoreErrors` ++* `RDF30DX Fail` ++* `RE187FX RepositoryChunkIndexesNotLocked` ++* `REFB32X RepositoryClientHasNoGenerations` ++* `RF4EFDX UnknownRepositoryFormat` ++ ++ ++## By name ++ ++`BackupErrors` (`R4C3BCX`) ++: There were errors during the backup ++ ++`BackupRootDoesNotExist` (`R79ED6X`) ++: Backup root does not exist or is not a directory: {root} ++ ++`BackupRootMissingError` (`R338F2X`) ++: No backup roots specified ++ ++`BagIdNotSetError` (`R7137EX`) ++: Bag id not set: cannot append a blob (programming error) ++ ++`ClientDoesNotExistError` (`R1CA00X`) ++: Client {client} does not exist in repository {repo} ++ ++`DuplicatePeriodError` (`R45B50X`) ++: Forget policy may not duplicate period ({period}): {policy} ++ ++`Fail` (`RDF30DX`) ++: {filename}: {reason} ++ ++`FileNotFoundError` (`R7B8D0X`) ++: FUSE: File not found: {filename} ++ ++`ForgetPolicySyntaxError` (`R9808DX`) ++: Forget policy syntax error: {policy} ++ ++`FuseModuleNotFoundError` (`RABC26X`) ++: Failed to load module "fuse", try installing python-fuse ++ ++`GAImmutableError` (`RB4324X`) ++: Attempt to modify an immutable GADirectory ++ ++`GpgError` (`R0C79EX`) ++: gpg failed with exit code {returncode}: {stderr} ++ ++`HardlinkError` (`R02C17X`) ++: Cannot hardlink on SFTP; sorry ++ ++ This is due to a limitation in the Python paramiko library that ++ Obnam uses for SSH/SFTP access. ++ ++`InvalidPortError` (`R5914DX`) ++: Invalid port number {port} in {url}: {error} ++ ++`KeyAuthenticationError` (`RCB0CAX`) ++: Can't authenticate to SSH server using key ++ ++`LockFail` (`R681AEX`) ++: Couldn't create lock {lock_name}: {reason} ++ ++`MallocError` (`RCEF5CX`) ++: malloc out of memory while calling {function} ++ ++`MissingFilterError` (`R169C6X`) ++: Unknown filter tag: {tagname} ++ ++`NoFilterTagError` (`R173AEX`) ++: No filter tag found ++ ++`NoHostKeyError` (`R5F98AX`) ++: No known host key for {hostname} ++ ++`NoHostKeyOfWantedTypeError` (`R8AAC1X`) ++: No known type {key_type} host key for {hostname} ++ ++`NotARepository` (`RA920EX`) ++: {url} does not seem to be an Obnam repository ++ ++`ObnamIOError` (`RCE08AX`) ++: I/O error: {filename}: {errno}: {strerror} ++ ++`ObnamSystemError` (`RD5FA4X`) ++: System error: {filename}: {errno}: {strerror} ++ ++`RepositoryAccessError` (`RBF6DDX`) ++: Repository does not exist or cannot be accessed: {error} ++ ++`RepositoryChunkContentNotInIndexes` (`RA881CX`) ++: Repository chunk indexes do not contain content ++ ++`RepositoryChunkDoesNotExist` (`R43272X`) ++: Repository doesn't contain chunk {chunk_id}. It is expected at ++ {filename} ++ ++`RepositoryChunkIndexesLockingFailed` (`R8F974X`) ++: Repository chunk indexes are already locked ++ ++`RepositoryChunkIndexesNotLocked` (`RE187FX`) ++: Repository chunk indexes are not locked ++ ++`RepositoryClientAlreadyExists` (`R41CE6X`) ++: Repository client {client_name} already exists ++ ++`RepositoryClientDoesNotExist` (`R24424X`) ++: Repository client {client_name} does not exist ++ ++`RepositoryClientGenerationUnfinished` (`R57207X`) ++: Cannot start new generation for {client_name}: previous one is not ++ finished yet (programming error) ++ ++`RepositoryClientHasNoGenerations` (`REFB32X`) ++: Client {client_name} has no generations ++ ++`RepositoryClientKeyNotAllowed` (`R1A025X`) ++: Client {client_name} uses repository format {format} which does ++ not allow the key {key_name} to be use for clients ++ ++`RepositoryClientListLockingFailed` (`RB1048X`) ++: Repository client list could not be locked ++ ++`RepositoryClientListNotLocked` (`R6C1C8X`) ++: Repository client list is not locked ++ ++`RepositoryClientLockingFailed` (`R6EAF2X`) ++: Repository client {client_name} could not be locked ++ ++`RepositoryClientNotLocked` (`R0BE94X`) ++: Repository client {client_name} is not locked ++ ++`RepositoryFileDoesNotExistInGeneration` (`R3E151X`) ++: Client {client_name}, generation {genspec} does not have file ++ {filename} ++ ++`RepositoryFileKeyNotAllowed` (`R79699X`) ++: Client {client_name} uses repository format {format} which does ++ not allow the key {key_name} to be use for files ++ ++`RepositoryGenerationDoesNotExist` (`R0B15DX`) ++: Cannot find requested generation {gen_id!r} for client ++ {client_name} ++ ++`RepositoryGenerationKeyNotAllowed` (`R6A098X`) ++: Client {client_name} uses repository format {format} which does ++ not allow the key {key_name} to be used for generations ++ ++`RepositorySettingMissingError` (`R01F56X`) ++: No --repository setting. You need to specify it on the command ++ line or a configuration file ++ ++`RestoreErrors` (`RD6259X`) ++: There were errors when restoring ++ ++ See previous error messages for details. ++ ++`RestoreTargetNotEmpty` (`R3E1C1X`) ++: The restore --to directory ({to}) is not empty. ++ ++`RootIsNotADirectory` (`RA4F35X`) ++: {baseurl} is not a directory, but a VFS root must be a directory ++ ++`SeparatorError` (`RB927BX`) ++: Forget policy must have rules separated by commas, see position ++ {position}: {policy} ++ ++`SetMetadataError` (`R0FC21X`) ++: {filename}: Couldn't set metadata {metadata}: {errno}: {strerror} ++ ++`ShowFirstGenerationError` (`R91CA1X`) ++: Can't show first generation. Use 'obnam ls' instead ++ ++`SizeSyntaxError` (`R22E66X`) ++: "{size}" is not a valid size ++ ++`ToplevelIsFileError` (`R018FCX`) ++: File at repository root: {filename} ++ ++`URLSchemeAlreadyRegisteredError` (`R0F22CX`) ++: VFS URL scheme {scheme} already registered ++ ++`UnitNameError` (`R283A6X`) ++: "{unit}" is not a valid unit ++ ++`UnknownRepositoryFormat` (`RF4EFDX`) ++: Unknown format {format} at {url} ++ ++`UnknownRepositoryFormatWanted` (`RA7D64X`) ++: Unknown format {format} requested ++ ++`UnknownVFSError` (`R826A1X`) ++: Unknown VFS type: {url} ++ ++`WrongHostKeyError` (`R47416X`) ++: SSH server {hostname} offered wrong public key ++ ++ Note that this may due to an obsolete host key in your "known ++ hosts" file. If so, use "ssh-key -R" to remove it. However, it can ++ also be a sign that someone is trying to hijack your connection to ++ your server, and you should be careful. ++ ++`WrongNumberOfGenerationSettingsError` (`R2FA37X`) ++: The restore command wants exactly one generation option ++ ++`WrongNumberOfGenerationsForDiffError` (`RA5942X`) ++: Need one or two generations ++ ++`WrongNumberOfGenerationsForVerify` (`R3B42AX`) ++: verify must be given exactly one generation ++ ++`WrongURLSchemeError` (`RB8E98X`) ++: SftpFS used with non-sftp URL: {url} ++ +-- +2.7.2 + + +_______________________________________________ +obnam-dev mailing list +obnam-dev@obnam.org +http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/obnam-dev-obnam.org |