diff options
author | Marius Bakke <marius@gnu.org> | 2021-05-09 21:29:46 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2021-05-09 21:29:46 +0200 |
commit | f03426420497cd9839f5fb3cb547dbecd8d6053b (patch) | |
tree | 220cdbab5b58b27c63d2df3ee711ad4bfdda074b /doc | |
parent | 3cf1afb7e7249992b2db2f4f00899fd22237e89a (diff) | |
parent | 069399ee9dbf75b7c89583f03346a63b2cfe4ac6 (diff) | |
download | guix-f03426420497cd9839f5fb3cb547dbecd8d6053b.tar.gz guix-f03426420497cd9839f5fb3cb547dbecd8d6053b.zip |
Merge branch 'master' into core-updat2020-12-11 install: Discover local substitute servers.... Mathieu Othacehe
2020-11-17 installer: Fix device synchronization. -rw-r--r-- doc/build.scm 6
-rw-r--r-- doc/contributing.texi 270
-rw-r--r-- doc/guix.texi 189
-rw-r--r-- doc/htmlxref.cnf 10
-rw-r--r-- doc/local.mk 30
5 files changed, 454 insertions, 51 deletions
diff --git a/doc/build.scm b/doc/build.scm index 63d8fd65de..564b0e1591 100644 --- a/doc/build.scm +++ b/doc/build.scm @@ -63,9 +63,9 @@ "guix")) (define %languages - ;; The cookbook is currently only translated into German. + ;; The cookbook is not translated in the same languages as the manual (if (string=? %manual "guix-cookbook") - '("de" "en") + '("de" "en" "fr") '("de" "en" "es" "fr" "ru" "zh_CN"))) (define (texinfo-manual-images source) @@ -948,7 +948,7 @@ from SOURCE." (div (ul (li (a (@ (href "html_node")) - "HTML, with one page per node")) + "HTML, with a separate page per node")) (li (a (@ (href ,(string-append #$manual diff --git a/doc/contributing.texi b/doc/contributing.texi index 9a09de93e6..ffa57e7cdf 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -29,6 +29,7 @@ choice. * Tracking Bugs and Patches:: Using Debbugs. * Commit Access:: Pushing to the official repository. * Updating the Guix Package:: Updating the Guix package definition. +* Translating Guix:: Make Guix speak your native language. @end menu @node Building from Git @@ -1079,12 +1080,14 @@ rebuilding induced, commits go to different branches, along these lines: @code{staging} branch (non-disruptive changes). This branch is intended to be merged in @code{master} every 6 weeks or so. Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch -(say, @code{gnome-updates}). +(say, @code{gnome-updates}). This branch is not expected to be +buildable or usable until late in its development process. @item more than 1,800 dependent packages @code{core-updates} branch (may include major and potentially disruptive changes). This branch is intended to be merged in @code{master} every -6 months or so. +6 months or so. This branch is not expected to be buildable or usable +until late in its development process. @end table All these branches are @uref{@value{SUBSTITUTE-URL}, @@ -1429,3 +1432,266 @@ This check can be disabled, @emph{at your own peril}, by setting the @code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable. When this variable is set, the updated package source is also added to the store. This is used as part of the release process of Guix. + +@cindex translation +@cindex l10n +@cindex i18n +@cindex native language support +@node Translating Guix +@section Translating Guix + +Writing code and packages is not the only way to provide a meaningful +contribution to Guix. Translating to a language you speak is another +example of a valuable contribution you can make. This section is designed +to describe the translation process. It gives you advice on how you can +get involved, what can be translated, what mistakes you should avoid and +what we can do to help you! + +Guix is a big project that has multiple components that can be translated. +We coordinate the translation effort on a +@uref{https://translate.fedoraproject.org/projects/guix/,Weblate instance} +hosted by our friends at Fedora. You will need an account to submit +translations. + +Some of the software packaged in Guix also contain translations. We do not +host a translation platform for them. If you want to translate a package +provided by Guix, you should contact their developers or find the information +on their website. As an example, you can find the homepage of the +@code{hello} package by typing @code{guix show hello}. On the ``homepage'' +line, you will see @url{https://www.gnu.org/software/hello/} as the homepage. + +Many GNU and non-GNU packages can be translated on the +@uref{https://translationproject.org,Translation Project}. Some projects +with multiple components have their own platform. For instance, GNOME has +its own platform, @uref{https://l10n.gnome.org/,Damned Lies}. + +Guix has five components hosted on Weblate. + +@itemize +@item @code{guix} contains all the strings from the Guix software (the + guided system installer, the package manager, etc), excluding packages. +@item @code{packages} contains the synopsis (single-sentence description + of a package) and description (longer description) of packages in Guix. +@item @code{website} contains the official Guix website, except for + blog posts and multimedia content. +@item @code{documentation-manual} corresponds to this manual. +@item @code{documentation-cookbook} is the component for the cookbook. +@end itemize + +@subsubheading General Directions + +Once you get an account, you should be able to select a component from +@uref{https://translate.fedoraproject.org/projects/guix/,the guix project}, +and select a language. If your language does not appear in the list, go +to the bottom and click on the ``Start new translation'' button. Select +the language you want to translate to from the list, to start your new +translation. + +Like lots of other free software packages, Guix uses +@uref{https://www.gnu.org/software/gettext,GNU Gettext} for its translations, +with which translatable strings are extracted from the source code to so-called +PO files. + +Even though PO files are text files, changes should not be made with a text +editor but with PO editing software. Weblate integrates PO editing +functionality. Alternatively, translators can use any of various +free-software tools for filling in translations, of which +@uref{https://poedit.net/,Poedit} is one example, and (after logging in) +@uref{https://docs.weblate.org/en/latest/user/files.html,upload} the changed +file. There is also a special +@uref{https://www.emacswiki.org/emacs/PoMode,PO editing mode} for users of GNU +Emacs. Over time translators find out what software they are happy with and +what features they need. + +On Weblate, you will find various links to the editor, that will show various +subsets (or all) of the strings. Have a look around and at the +@uref{https://docs.weblate.org/en/latest/,documentation} to familiarize +yourself with the platform. + +@subsubheading Translation Components + +In this section, we provide more detailed guidance on the translation +process, as well as details on what you should or should not do. When in +doubt, please contact us, we will be happy to help! + +@table @asis +@item guix +Guix is written in the Guile programming language, and some strings contain +special formating that is interpreted by Guile. These special formating +should be highlighted by Weblate. They start with @code{~} followed by one +or more characters. + +When printing the string, Guile replaces the special formating symbols with +actual values. For instance, the string @samp{ambiguous package specification +`~a'} would be substituted to contain said package specification instead of +@code{~a}. To properly translate this string, you must keep the formating +code in your translation, although you can place it where it makes sense in +your language. For instance, the French translation says @samp{spécification +du paquet « ~a » ambiguë} because the adjective needs to be placed in the +end of the sentence. + +If there are multiple formating symbols, make sure to respect the order. +Guile does not know in which order you intended the string to be read, so it +will substitute the symbols in the same order as the English sentence. + +As an example, you cannot translate @samp{package '~a' has been superseded by +'~a'} by @samp{'~a' superseeds package '~a'}, because the meaning would be +reversed. If @var{foo} is superseded by @var{bar}, the translation would read +@samp{'foo' superseeds package 'bar'}. To work around this problem, it +is possible to use more advanced formating to select a given piece of data, +instead of following the default English order. @xref{Formatted Output,,, +guile, GNU Guile Reference Manual}, for more information on formating in Guile. + +@item packages + +Package descriptions occasionally contain Texinfo markup (@pxref{Synopses +and Descriptions}). Texinfo markup looks like @samp{@@code@{rm -rf@}}, +@samp{@@emph@{important@}}, etc. When translating, please leave markup as is. + +The characters after ``@@'' form the name of the markup, and the text between +``@{'' and ``@}'' is its content. In general, you should not translate the +content of markup like @code{@@code}, as it contains literal code that do not +change with language. You can translate the content of formating markup such +as @code{@@emph}, @code{@@i}, @code{@@itemize}, @code{@@item}. However, do +not translate the name of the markup, or it will not be recognized. Do +not translate the word after @code{@@end}, it is the name of the markup that +is closed at this position (e.g.@: @code{@@itemize ... @@end itemize}). + +@item documentation-manual and documentation-cookbook + +The first step to ensure a successful translation of the manual is to find +and translate the following strings @emph{first}: + +@itemize +@item @code{version.texi}: Translate this string as @code{version-xx.texi}, + where @code{xx} is your language code (the one shown in the URL on + weblate). +@item @code{contributing.texi}: Translate this string as + @code{contributing.xx.texi}, where @code{xx} is the same language code. +@item @code{Top}: Do not translate this string, it is important for Texinfo. + If you translate it, the document will be empty (missing a Top node). + Please look for it, and register @code{Top} as its translation. +@end itemize + +Translating these strings first ensure we can include your translation in +the guix repository without breaking the make process or the +@command{guix pull} machinery. + +The manual and the cookbook both use Texinfo. As for @code{packages}, please +keep Texinfo markup as is. There are more possible markup types in the manual +than in the package descriptions. In general, do not translate the content +of @code{@@code}, @code{@@file}, @code{@@var}, @code{@@value}, etc. You +should translate the content of formating markup such as @code{@@emph}, +@code{@@i}, etc. + +The manual contains sections that can be refered to by name by @code{@@ref}, +@code{@@xref} and @code{@@pxref}. We have a mechanism in place so you do +not have to translate their content. If you keep the English title, we will +automatically replace it with your translation of that title. This ensures +that Texinfo will always be able to find the node. If you decide to change +the translation of the title, the references will automatically be updated +and you will not have to update them all yourself. + +When translating references from the cookbook to the manual, you need to +replace the name of the manual and the name of the section. For instance, +to translate @code{@@pxref@{Defining Packages,,, guix, GNU Guix Reference +Manual@}}, you would replace @code{Defining Packages} with the title of that +section in the translated manual @emph{only} if that title is translated. +If the title is not translated in your language yet, do not translate it here, +or the link will be broken. Replace @code{guix} with @code{guix.xx} where +@code{xx} is your language code. @code{GNU Guix Reference Manual} is the +text of the link. You can translate it however you wish. + +@item website + +The website pages are written using SXML, an s-expression version of HTML, +the basic language of the web. We have a process to extract translatable +strings from the source, and replace complex s-expressions with a more familiar +XML markup, where each markup is numbered. Translators can arbitrarily change +the ordering, as in the following example. + +@example +#. TRANSLATORS: Defining Packages is a section name +#. in the English (en) manual. +#: apps/base/templates/about.scm:64 +msgid "Packages are <1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native <2>Guile</2> modules." +msgstr "Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>." +@end example + +Note that you need to include the same markups. You cannot skip any. +@end table + +In case you make a mistake, the component might fail to build properly with your +language, or even make guix pull fail. To prevent that, we have a process +in place to check the content of the files before pushing to our repository. +We will not be able to update the translation for your language in Guix, so +we will notify you (through weblate and/or by email) so you get a chance to +fix the issue. + +@subsubheading Outside of Weblate + +Currently, some parts of Guix cannot be translated on Weblate, help wanted! + +@itemize +@item @command{guix pull} news can be translated in @file{news.scm}, but is not + available from Weblate. If you want to provide a translation, you + can prepare a patch as described above, or simply send us your + translation with the name of the news entry you translated and your + language. @xref{Writing Channel News}, for more information about + channel news. +@item Guix blog posts cannot currently be translated. +@item The installer script (for foreign distributions) is entirely in English. +@item Some of the libraries Guix uses cannot be translated or are translated + outside of the Guix project. Guile itself is not internationalized. +@item Other manuals linked from this manual or the cookbook might not be + translated. +@end itemize + +@subsubheading Translation Infrastructure + +Weblate is backed by a git repository from which it discovers new strings to +translate and pushes new and updated translations. Normally, it would be +enough to give it commit access to our repositories. However, we decided +to use a separate repository for two reasons. First, we would have to give +Weblate commit access and authorize its signing key, but we do not trust it +in the same way we trust guix developers, especially since we do not manage +the instance ourselves. Second, if translators mess something up, it can +break the generation of the website and/or guix pull for all our users, +independently of their language. + +For these reasons, we use a dedicated repository to host translations, and we +synchronize it with our guix and artworks repositories after checking no issue +was introduced in the translation. + +Developers can download the latest PO files from weblate in the Guix +repository by runnig the @command{make download-po} target. It will +automatically download the latest files from weblate, reformat them to a +canonical form, and check they do not contain issues. The manual needs to be +built again to check for additional issues that might crash Texinfo. + +Before pushing new translation files, developers should add them to the +make machinery so the translations are actually available. The process +differs for the various components. + +@itemize +@item New po files for the @code{guix} and @code{packages} components must + be registered by adding the new language to @file{po/guix/LINGUAS} or + @file{po/packages/LINGUAS}. +@item New po files for the @code{documentation-manual} component must be + registered by adding the file name to @code{DOC_PO_FILES} in + @file{po/doc/local.mk}, the generated @file{%D%/guix.xx.texi} manual to + @code{info_TEXINFOS} in @file{doc/local.mk} and the generated + @file{%D%/guix.xx.texi} and @file{%D%/contributing.xx.texi} to + @code{TRANSLATED_INFO} also in @file{doc/local.mk}. +@item New po files for the @code{documentation-cookbook} component must be + registered by adding the file name to @code{DOC_COOKBOOK_PO_FILES} in + @file{po/doc/local.mk}, the generated @file{%D%/guix-cookbook.xx.texi} + manual to @code{info_TEXINFOS} in @file{doc/local.mk} and the generated + @file{%D%/guix-cookbook.xx.texi} to @code{TRANSLATED_INFO} also + in @file{doc/local.mk}. +@item New po files for the @code{website} component must be added to the + @code{guix-artwork} repository, in @file{website/po/}. + @file{website/po/LINGUAS} and @file{website/po/ietf-tags.scm} must + be updated accordingly (see @file{website/i18n-howto.txt} for more + information on the process). +@end itemize diff --git a/doc/guix.texi b/doc/guix.texi index a89701dd68..b6df0dcb64 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -36,7 +36,7 @@ Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan Nieuwenhuizen@* -Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien Lepiller@* +Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines@* Copyright @copyright{} 2017, 2018, 2019 Clément Lassieur@* @@ -68,7 +68,7 @@ Copyright @copyright{} 2019 Ivan Petkov@* Copyright @copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle Andrews@* Copyright @copyright{} 2019 Alex Griffin@* -Copyright @copyright{} 2019, 2020 Guillaume Le Vaillant@* +Copyright @copyright{} 2019, 2020, 2021 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} 2020 Wiktor Żelazny@* @@ -88,6 +88,7 @@ Copyright @copyright{} 2020 John Soo@* Copyright @copyright{} 2020 Jonathan Brielmaier@* Copyright @copyright{} 2020 Edgar Vincent@* Copyright @copyright{} 2021 Maxime Devos@* +Copyright @copyright{} 2021 B. Wilson@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -146,7 +147,7 @@ Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}). If you would like to translate it in your native language, consider joining @uref{https://translate.fedoraproject.org/projects/guix/documentation-manual, -Weblate}. +Weblate} (@pxref{Translating Guix}). @menu * Introduction:: What is Guix about? @@ -11427,36 +11428,6 @@ and outputs a package expression: guix import json hello.json @end example -@item nix -Import metadata from a local copy of the source of the -@uref{https://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This -relies on the @command{nix-instantiate} command of -@uref{https://nixos.org/nix/, Nix}.}. Package definitions in Nixpkgs are -typically written in a mixture of Nix-language and Bash code. This -command only imports the high-level package structure that is written in -the Nix language. It normally includes all the basic fields of a -package definition. - -When importing a GNU package, the synopsis and descriptions are replaced -by their canonical upstream variant. - -Usually, you will first need to do: - -@example -export NIX_REMOTE=daemon -@end example - -@noindent -so that @command{nix-instantiate} does not try to open the Nix database. - -As an example, the command below imports the package definition of -LibreOffice (more precisely, it imports the definition of the package -bound to the @code{libreoffice} top-level attribute): - -@example -guix import nix ~/path/to/nixpkgs libreoffice -@end example - @item hackage @cindex hackage Import metadata from the Haskell community's central package archive @@ -19958,6 +19929,9 @@ Socket file to use for local (non-network) connections. @item @code{extra-content} (default: @code{""}) Additional settings for the @file{my.cnf} configuration file. +@item @code{extra-environment} (default: @code{#~'()}) +List of environment variables passed to the @command{mysqld} process. + @item @code{auto-upgrade?} (default: @code{#t}) Whether to automatically run @command{mysql_upgrade} after starting the service. This is necessary to upgrade the @dfn{system schema} after @@ -20106,6 +20080,38 @@ This is used by imap (for shared users) and lda. It defaults to @samp{"/var/run/dovecot/auth-userdb"}. @end deftypevr +@deftypevr {@code{protocol-configuration} parameter} boolean imap-metadata? +Whether to enable the @code{IMAP METADATA} extension as defined in +@uref{https://tools.ietf.org/html/rfc5464,RFC@tie{}5464}, which provides +a means for clients to set and retrieve per-mailbox, per-user metadata +and annotations over IMAP. + +If this is @samp{#t}, you must also specify a dictionary @i{via} the +@code{mail-attribute-dict} setting. + +Defaults to @samp{#f}. + +@end deftypevr + +@deftypevr {@code{protocol-configuration} parameter} space-separated-string-list managesieve-notify-capabilities +Which NOTIFY capabilities to report to clients that first connect to +the ManageSieve service, before authentication. These may differ from the +capabilities offered to authenticated users. If this field is left empty, +report what the Sieve interpreter supports by default. + +Defaults to @samp{()}. +@end deftypevr + +@deftypevr {@code{protocol-configuration} parameter} space-separated-string-list managesieve-sieve-capability +Which SIEVE capabilities to report to clients that first connect to +the ManageSieve service, before authentication. These may differ from the +capabilities offered to authenticated users. If this field is left empty, +report what the Sieve interpreter supports by default. + +Defaults to @samp{()}. + +@end deftypevr + @deftypevr {@code{protocol-configuration} parameter} space-separated-string-list mail-plugins Space separated list of plugins to load. @end deftypevr @@ -20804,6 +20810,17 @@ could allow a user to delete others' mailboxes, or @code{ln -s @samp{""}. @end deftypevr +@deftypevr {@code{dovecot-configuration} parameter} string mail-attribute-dict +The location of a dictionary used to store @code{IMAP METADATA} +as defined by @uref{https://tools.ietf.org/html/rfc5464, RFC@tie{}5464}. + +The IMAP METADATA commands are available only if the ``imap'' +protocol configuration's @code{imap-metadata?} field is @samp{#t}. + +Defaults to @samp{""}. + +@end deftypevr + @deftypevr {@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access? Allow full file system access to clients. There's no access checks other than what the operating system does for the active UID/GID@. It @@ -27039,6 +27056,12 @@ The peer public-key represented as a base64 string. A list of IP addresses from which incoming traffic for this peer is allowed and to which incoming traffic for this peer is directed. +@item @code{keep-alive} (default: @code{#f}) +An optional time interval in seconds. A packet will be sent to the +server endpoint once per time interval. This helps receiving +incoming connections from this peer when you are behind a NAT or +a firewall. + @end table @end deftp @@ -29061,10 +29084,11 @@ By default, it produces @lisp '("--device" "rtl8139,netdev=net0" - "--netdev" "user,id=net0\ - ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\ - ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\ - ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900") + "--netdev" (string-append + "user,id=net0," + "hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004," + "hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222," + "hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900")) @end lisp with forwarded ports: @@ -31189,6 +31213,15 @@ will use the current system it's running on as the default. @item @code{max-parallel-builds} (default: @code{1}) The number of builds to perform in parallel. +@item @code{max-1min-load-average} (default: @code{#f}) +Load average value to look at when considering starting new builds, if +the 1 minute load average exceeds this value, the agent will wait before +starting new builds. + +This will be unspecified if the value is @code{#f}, and the agent will +use the number of cores reported by the system as the max 1 minute load +average. + @item @code{derivation-substitute-urls} (default: @code{#f}) URLs from which to attempt to fetch substitutes for derivations, if the derivations aren't already available. @@ -31292,7 +31325,7 @@ The Guix Build Coordinator package to use. @item @code{user} (default: @code{"guix-build-coordinator-queue-builds"}) The system user to run the service as. -@item @code{coordinator} (default: @code{"http://localhost:8745"}) +@item @code{coordinator} (default: @code{"http://localhost:8746"}) The URI to use when connecting to the coordinator. @item @code{systems} (default: @code{#f}) @@ -31467,6 +31500,86 @@ parameters, can be done as follow: @end lisp @end deffn +@cindex rasdaemon +@cindex Platform Reliability, Availability and Serviceability daemon +@subsubheading Rasdaemon Service + +The Rasdaemon service provides a daemon which monitors platform +@acronym{RAS, Reliability@comma{} Availability@comma{} and Serviceability} reports from +Linux kernel trace events, logging them to syslogd. + +Reliability, Availability and Serviceability is a concept used on servers meant +to measure their robustness. + +@strong{Relability} is the probability that a system will produce correct +outputs: + +@itemize @bullet +@item Generally measured as Mean Time Between Failures (MTBF), and +@item Enhanced by features that help to avoid, detect and repair hardware +faults +@end itemize + +@strong{Availability} is the probability that a system is operational at a +given time: + +@itemize @bullet +@item Generally measured as a percentage of downtime per a period of time, and +@item Often uses mechanisms to detect and correct hardware faults in runtime. +@end itemize + +@strong{Serviceability} is the simplicity and speed with which a system can be +repaired or maintained: + +@itemize @bullet +@item Generally measured on Mean Time Between Repair (MTBR). +@end itemize + + +Among the monitoring measures, the most usual ones include: + +@itemize @bullet +@item CPU – detect errors at instruction execution and at L1/L2/L3 caches; +@item Memory – add error correction logic (ECC) to detect and correct errors; +@item I/O – add CRC checksums for transferred data; +@item Storage – RAID, journal file systems, checksums, Self-Monitoring, +Analysis and Reporting Technology (SMART). +@end itemize + +By monitoring the number of occurrences of error detections, it is possible to +identify if the probability of hardware errors is increasing, and, on such +case, do a preventive maintenance to replace a degraded component while those +errors are correctable. + +For detailed information about the types of error events gathered and how to +make sense of them, see the kernel administrator's guide at +@url{https://www.kernel.org/doc/html/latest/admin-guide/ras.html}. + +@defvr {Scheme Variable} rasdaemon-service-type +Service type for the @command{rasdaemon} service. It accepts a +@code{rasdaemon-configuration} object. Instantiating like + +@lisp +(service rasdaemon-service-type) +@end lisp + +will load with a default configuration, which monitors all events and logs to +syslogd. +@end defvr + +@deftp {Data Type} rasdaemon-configuration +The data type representing the configuration of @command{rasdaemon}. + +@table @asis +@item @code{record?} (default: @code{#f}) + +A boolean indicating whether to record the events in an SQLite database. This +provides a more structured access to the information contained in the log file. +The database location is hard-coded to @file{/var/lib/rasdaemon/ras-mc_event.db}. + +@end table +@end deftp + @cindex zram @cindex compressed swap @cindex Compressed RAM-based block devices diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index 960f0f08fe..c1589453ed 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -397,15 +397,15 @@ guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/ guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html guile-rpc node ${GS}/guile-rpc/manual/html_node/ -guix.de mono ${GS}/guix/manual/de/guix.html +guix.de mono ${GS}/guix/manual/de/guix.de.html guix.de node ${GS}/guix/manual/de/html_node/ -guix.es mono ${GS}/guix/manual/es/guix.html +guix.es mono ${GS}/guix/manual/es/guix.es.html guix.es node ${GS}/guix/manual/es/html_node/ -guix.fr mono ${GS}/guix/manual/fr/guix.html +guix.fr mono ${GS}/guix/manual/fr/guix.fr.html guix.fr node ${GS}/guix/manual/fr/html_node/ -guix.ru mono ${GS}/guix/manual/ru/guix.html +guix.ru mono ${GS}/guix/manual/ru/guix.ru.html guix.ru node ${GS}/guix/manual/ru/html_node/ -guix.zh_CN mono ${GS}/guix/manual/zh-cn/guix.html +guix.zh_CN mono ${GS}/guix/manual/zh-cn/guix.zh_CN.html guix.zh_CN node ${GS}/guix/manual/zh-cn/html_node/ guix mono ${GS}/guix/manual/en/guix.html guix node ${GS}/guix/manual/en/html_node/ diff --git a/doc/local.mk b/doc/local.mk index 97122c737d..d69a2feabd 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -24,11 +24,20 @@ info_TEXINFOS = %D%/guix.texi \ %D%/guix.de.texi \ %D%/guix.es.texi \ + %D%/guix.fa.texi \ %D%/guix.fr.texi \ + %D%/guix.it.texi \ + %D%/guix.ko.texi \ + %D%/guix.pt_BR.texi \ %D%/guix.ru.texi \ + %D%/guix.sk.texi \ %D%/guix.zh_CN.texi \ %D%/guix-cookbook.texi \ - %D%/guix-cookbook.de.texi + %D%/guix-cookbook.de.texi \ + %D%/guix-cookbook.fa.texi \ + %D%/guix-cookbook.fr.texi \ + %D%/guix-cookbook.ko.texi \ + %D%/guix-cookbook.zh_Hans.texi %C%_guix_TEXINFOS = \ %D%/contributing.texi \ @@ -61,18 +70,33 @@ OS_CONFIG_EXAMPLES_TEXI = \ %D%/os-config-desktop.texi \ %D%/os-config-lightweight-desktop.texi +# Do not forget to update these, when updating info_TEXINFOS TRANSLATED_INFO = \ %D%/guix.de.texi \ %D%/guix.es.texi \ + %D%/guix.fa.texi \ %D%/guix.fr.texi \ + %D%/guix.it.texi \ + %D%/guix.ko.texi \ + %D%/guix.pt_BR.texi \ %D%/guix.ru.texi \ + %D%/guix.sk.texi \ %D%/guix.zh_CN.texi \ %D%/contributing.de.texi \ %D%/contributing.es.texi \ + %D%/contributing.fa.texi \ %D%/contributing.fr.texi \ + %D%/contributing.it.texi \ + %D%/contributing.ko.texi \ + %D%/contributing.pt_BR.texi \ %D%/contributing.ru.texi \ + %D%/contributing.sk.texi \ %D%/contributing.zh_CN.texi \ - %D%/guix-cookbook.de.texi + %D%/guix-cookbook.de.texi \ + %D%/guix-cookbook.fa.texi \ + %D%/guix-cookbook.fr.texi \ + %D%/guix-cookbook.ko.texi \ + %D%/guix-cookbook.zh_Hans.texi # Bundle this file so that makeinfo finds it in out-of-source-tree builds. BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO) @@ -100,7 +124,7 @@ cat "$@.tmp" | egrep '@p?x?ref' -A1 | sed 'N;s|--\n||g;P;D' | sed 's|^| |g' | \ line=$$(grep -n "^msgid \"$$e\"" "$<" | cut -f1 --delimiter=":") ;\ ((line++)) ;\ if [ "$$line" != "1" ]; then \ - translation=$$(head -n "$$line" "$<" | tail -1 | grep msgstr | sed 's|msgstr "\(.*\)"|\1|') ;\ + translation=$$(head -n "$$line" "$<" | tail -1 | grep msgstr | sed 's|msgstr "\([^"]*\)"|\1|') ;\ if [ "$$translation" != "" ]; then \ sed "N;s@\(p\?x\?ref\){$$(echo $$e | sed 's| |[\\n ]|g')\(,\|}\)@\1{$$translation\2@g;P;D" -i "$@.tmp" ;\ fi ;\ |