# German translation of the Guix user manual. # Copyright (C) 2012-2020 the authors of Guix (msgids) and the following authors (msgstr) # This file is distributed under the same license as the guix manual package. # Mario Blättermann <mario.blaettermann@gmail.com>, 2018. # Florian Pelz <pelzflorian@pelzflorian.de>, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Jonathan Brielmaier <jonathan.brielmaier@web.de>, 2019, 2024. # Adina Wagner <adina.wagner@t-online.de>, 2021. # Ettore Atalan <atalanttore@googlemail.com>, 2021. # Xinglu Chen <public@yoctocell.xyz>, 2021. # Ricardo Wurmus <bugs@elephly.net>, 2022. # Jens Maucher <jensmaucher@gmail.com>, 2023. # Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>, 2024. msgid "" msgstr "" "Project-Id-Version: guix-manual 1.2.0-pre3\n" "Report-Msgid-Bugs-To: bug-guix@gnu.org\n" "POT-Creation-Date: 2024-06-27 03:18+0000\n" "PO-Revision-Date: 2024-08-31 15:40+0000\n" "Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n" "Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-manual/de/>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.7.1\n" "X-Bugs: Report translation errors to the Language-Team address.\n" #. #-#-#-#-# contributing.pot (guix manual checkout) #-#-#-#-# #. type: chapter #. #-#-#-#-# guix.pot (guix manual checkout) #-#-#-#-# #. type: menuentry #: guix-git/doc/contributing.texi:1 guix-git/doc/contributing.texi:2 #: guix-git/doc/guix.texi:218 #, no-wrap msgid "Contributing" msgstr "Mitwirken" #. type: Plain text #: guix-git/doc/contributing.texi:9 msgid "This project is a cooperative effort, and we need your help to make it grow! Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} on the Libera Chat IRC network. We welcome ideas, bug reports, patches, and anything that may be helpful to the project. We particularly welcome help on packaging (@pxref{Packaging Guidelines})." msgstr "Dieses Projekt basiert auf Kooperation, daher benötigen wir Ihre Hilfe, um es wachsen zu lassen! Bitte kontaktieren Sie uns auf @email{guix-devel@@gnu.org} und @code{#guix} im Libera-Chat-IRC-Netzwerk. Wir freuen uns auf Ihre Ideen, Fehlerberichte, Patches und alles, was hilfreich für das Projekt sein könnte. Besonders willkommen ist Hilfe beim Schreiben von Paketen (siehe @ref{Packaging Guidelines})." #. type: cindex #: guix-git/doc/contributing.texi:10 #, no-wrap msgid "code of conduct, of contributors" msgstr "Verhaltensregeln, für Mitwirkende" #. type: cindex #: guix-git/doc/contributing.texi:11 #, no-wrap msgid "contributor covenant" msgstr "Verhaltenskodex für Mitwirkende" #. type: Plain text #: guix-git/doc/contributing.texi:17 msgid "We want to provide a warm, friendly, and harassment-free environment, so that anyone can contribute to the best of their abilities. To this end our project uses a ``Contributor Covenant'', which was adapted from @url{https://contributor-covenant.org/}. You can find a local version in the @file{CODE-OF-CONDUCT} file in the source tree." msgstr "Wir möchten eine angenehme, freundliche und von Belästigungen freie Umgebung bereitstellen, so dass jeder Beiträge nach seinen Fähigkeiten leisten kann. Zu diesem Zweck verwendet unser Projekt einen „Verhaltenskodex für Mitwirkende“, der von @url{https://contributor-covenant.org/} übernommen wurde. Eine übersetzte Fassung finden Sie auf @url{https://www.contributor-covenant.org/de/version/1/4/code-of-conduct} sowie eine mitgelieferte, englische Fassung in der Datei @file{CODE-OF-CONDUCT} im Quellbaum." #. type: Plain text #: guix-git/doc/contributing.texi:21 msgid "Contributors are not required to use their legal name in patches and on-line communication; they can use any name or pseudonym of their choice." msgstr "Von Mitwirkenden wird nicht erwartet, dass sie in Patches oder in der Online-Kommunikation ihre echten Namen preisgeben. Sie können einen beliebigen Namen oder ein Pseudonym ihrer Wahl verwenden." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:41 #: guix-git/doc/contributing.texi:42 #, no-wrap msgid "Requirements" msgstr "Voraussetzungen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Software needed to build and run Guix." msgstr "Zum Erstellen und Benutzen von Guix nötige Software." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:129 #: guix-git/doc/contributing.texi:130 #, no-wrap msgid "Building from Git" msgstr "Erstellung aus dem Git" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "The latest and greatest." msgstr "Das Neueste und Beste." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:320 #: guix-git/doc/contributing.texi:321 #, no-wrap msgid "Running the Test Suite" msgstr "Den Testkatalog laufen lassen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Testing Guix." msgstr "Guix testen." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:431 #: guix-git/doc/contributing.texi:432 #, no-wrap msgid "Running Guix Before It Is Installed" msgstr "Guix vor der Installation ausführen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Hacker tricks." msgstr "Hacker-Tricks." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:521 #: guix-git/doc/contributing.texi:522 #, no-wrap msgid "The Perfect Setup" msgstr "Perfekt eingerichtet" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "The right tools." msgstr "Die richtigen Werkzeuge." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:698 #: guix-git/doc/contributing.texi:699 #, no-wrap msgid "Alternative Setups" msgstr "Alternativ eingerichtet" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Other possible tools that do the job." msgstr "Mit diesen Werkzeugen geht es auch." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:775 #: guix-git/doc/contributing.texi:776 #, no-wrap msgid "Source Tree Structure" msgstr "Aufbau des Quellbaums" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Source code guided tour." msgstr "Führung um den Quellbaum." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:1026 #: guix-git/doc/contributing.texi:1027 #, no-wrap msgid "Packaging Guidelines" msgstr "Paketrichtlinien" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Growing the distribution." msgstr "Die Distribution wachsen lassen." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:1747 #: guix-git/doc/contributing.texi:1748 #, no-wrap msgid "Coding Style" msgstr "Programmierstil" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Hygiene of the contributor." msgstr "Wie Mitwirkende hygienisch arbeiten." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:1854 #: guix-git/doc/contributing.texi:1855 #, no-wrap msgid "Submitting Patches" msgstr "Einreichen von Patches" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Share your work." msgstr "Teilen Sie Ihre Arbeit." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2262 #: guix-git/doc/contributing.texi:2263 #, no-wrap msgid "Tracking Bugs and Changes" msgstr "Überblick über gemeldete Fehler und Änderungen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Keeping it all organized." msgstr "Die Ordnung bewahren." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2667 #: guix-git/doc/contributing.texi:2668 #, no-wrap msgid "Commit Access" msgstr "Commit-Zugriff" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Pushing to the official repository." msgstr "Auf die offiziellen Repositorys pushen." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2901 #: guix-git/doc/contributing.texi:2902 #, no-wrap msgid "Reviewing the Work of Others" msgstr "Beiträge von anderen überprüfen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Some guidelines for sharing reviews." msgstr "Wie man für Reviews zusammenarbeitet." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:2996 #: guix-git/doc/contributing.texi:2997 #, no-wrap msgid "Updating the Guix Package" msgstr "Das Guix-Paket aktualisieren" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Updating the Guix package definition." msgstr "Die Paketdefinition für Guix erneuern." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:3034 #: guix-git/doc/contributing.texi:3035 #, no-wrap msgid "Writing Documentation" msgstr "Dokumentation schreiben" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Improving documentation in GNU Guix." msgstr "Die Dokumentation in GNU Guix verbessern." #. type: section #: guix-git/doc/contributing.texi:39 guix-git/doc/contributing.texi:3078 #: guix-git/doc/contributing.texi:3079 #, no-wrap msgid "Translating Guix" msgstr "Guix übersetzen" #. type: menuentry #: guix-git/doc/contributing.texi:39 msgid "Make Guix speak your native language." msgstr "Bring Guix deine Muttersprache bei." #. type: Plain text #: guix-git/doc/contributing.texi:46 msgid "You can easily hack on Guix itself using Guix and Git, which we use for version control (@pxref{Building from Git})." msgstr "Sie können Guix selbst problemlos anpassen, wenn Sie Guix und Git benutzen, was wir zur Versionskontrolle benutzen (siehe @ref{Building from Git})." #. type: Plain text #: guix-git/doc/contributing.texi:51 msgid "But when packaging Guix for foreign distros or when bootstrapping on systems without Guix, and if you decide to not just trust and install our readily made binary (@pxref{Binary Installation}), you can download a release version of our reproducible source tarball and read on." msgstr "Wenn Sie jedoch Guix für Fremddistributionen paketieren oder wenn Sie ein Bootstrapping auf Systemen ohne Guix durchführen und dabei nicht einfach unserer fertigen Binärdatei vertrauen möchten (siehe @ref{Binary Installation}, dann können Sie eine veröffentlichte Version unseres reproduzierbaren Quell-Tarballs herunterladen und weiterlesen." #. type: Plain text #: guix-git/doc/contributing.texi:56 msgid "This section lists requirements when building Guix from source. The build procedure for Guix is the same as for other GNU software, and is not covered here. Please see the files @file{README} and @file{INSTALL} in the Guix source tree for additional details." msgstr "Dieser Abschnitt listet Voraussetzungen auf, um Guix aus seinem Quellcode zu erstellen. Der Erstellungsprozess für Guix ist derselbe wie für andere GNU-Software und wird hier nicht beschrieben. Bitte lesen Sie die Dateien @file{README} und @file{INSTALL} im Guix-Quellbaum, um weitere Details zu erfahren." #. type: cindex #: guix-git/doc/contributing.texi:57 #, no-wrap msgid "official website" msgstr "Offizieller Webauftritt" #. type: Plain text #: guix-git/doc/contributing.texi:60 msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}." msgstr "GNU Guix kann von seinem Webauftritt unter @url{http://www.gnu.org/software/guix/} heruntergeladen werden." #. type: Plain text #: guix-git/doc/contributing.texi:62 msgid "GNU Guix depends on the following packages:" msgstr "GNU Guix hat folgende Pakete als Abhängigkeiten:" #. type: item #: guix-git/doc/contributing.texi:64 #, no-wrap msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x," msgstr "@url{https://gnu.org/software/guile/, GNU Guile}, Version 3.0.x," #. type: itemize #: guix-git/doc/contributing.texi:66 msgid "version 3.0.3 or later;" msgstr "Version 3.0.3 oder neuer," #. type: item #: guix-git/doc/contributing.texi:66 #, no-wrap msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version" msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, Version" #. type: itemize #: guix-git/doc/contributing.texi:68 msgid "0.1.0 or later;" msgstr "0.1.0 oder neuer," #. type: itemize #: guix-git/doc/contributing.texi:74 msgid "@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile})@footnote{The Guile bindings to @uref{https://gnutls.org/, GnuTLS} were distributed as part of GnuTLS until version 3.7.8 included.};" msgstr "@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (siehe die @ref{Guile Preparations, Installationsanleitung der GnuTLS-Anbindungen für Guile,, gnutls-guile, GnuTLS-Guile})@footnote{Bis einschließlich Version 3.7.8 wurden die Guile-Anbindungen für @uref{https://gnutls.org/, GnuTLS} bei GnuTLS mitgeliefert.}," #. type: itemize #: guix-git/doc/contributing.texi:77 msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;" msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, Version 0.1.0 oder neuer," #. type: item #: guix-git/doc/contributing.texi:77 #, no-wrap msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib}," msgstr "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib}," #. type: itemize #: guix-git/doc/contributing.texi:79 msgid "version 0.1.0 or later;" msgstr "Version 0.1.0 oder neuer," #. type: item #: guix-git/doc/contributing.texi:79 #, no-wrap msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};" msgstr "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib}," #. type: item #: guix-git/doc/contributing.texi:80 #, no-wrap msgid "@uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};" msgstr "@uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi}," #. type: itemize #: guix-git/doc/contributing.texi:84 msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0 or later;" msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, Version 0.5.0 oder neuer," #. type: item #: guix-git/doc/contributing.texi:84 #, no-wrap msgid "@uref{https://git-scm.com, Git} (yes, both!);" msgstr "@uref{https://git-scm.com, Git} (ja, beide!)," #. type: item #: guix-git/doc/contributing.texi:85 #, no-wrap msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}" msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}" #. type: itemize #: guix-git/doc/contributing.texi:87 msgid "4.3.0 or later;" msgstr "4.3.0 oder später," #. type: item #: guix-git/doc/contributing.texi:87 #, no-wrap msgid "@url{https://www.gnu.org/software/make/, GNU Make}." msgstr "@url{https://www.gnu.org/software/make/, GNU Make}." #. type: Plain text #: guix-git/doc/contributing.texi:91 msgid "The following dependencies are optional:" msgstr "Folgende Abhängigkeiten sind optional:" #. type: itemize #: guix-git/doc/contributing.texi:99 msgid "Support for build offloading (@pxref{Daemon Offload Setup}) and @command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.13.0 or later." msgstr "Unterstützung für das Auslagern von Erstellungen (siehe @ref{Daemon Offload Setup}) und @command{guix copy} (siehe @ref{Invoking guix copy}) hängt von @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, Version 0.13.0 oder neuer, ab." #. type: itemize #: guix-git/doc/contributing.texi:104 msgid "@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd compression and decompression in @command{guix publish} and for substitutes (@pxref{Invoking guix publish})." msgstr "@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, für die Kompression und Dekompression mit zstd in @command{guix publish} und für Substitute (siehe @ref{Invoking guix publish})." #. type: itemize #: guix-git/doc/contributing.texi:108 msgid "@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for the @code{crate} importer (@pxref{Invoking guix import})." msgstr "@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} für den @code{crate}-Importer (siehe @ref{Invoking guix import})." #. type: itemize #: guix-git/doc/contributing.texi:113 msgid "@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} for the @code{go} importer (@pxref{Invoking guix import}) and for some of the ``updaters'' (@pxref{Invoking guix refresh})." msgstr "@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} für den @code{go}-Importer (siehe @ref{Invoking guix import}) und für einige der Aktualisierungsprogramme (siehe @ref{Invoking guix refresh})." #. type: itemize #: guix-git/doc/contributing.texi:117 msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs." msgstr "Wenn @url{http://www.bzip.org, libbz2} verfügbar ist, kann @command{guix-daemon} damit Erstellungsprotokolle komprimieren." #. type: Plain text #: guix-git/doc/contributing.texi:121 msgid "Unless @option{--disable-daemon} was passed to @command{configure}, the following packages are also needed:" msgstr "Sofern nicht @option{--disable-daemon} beim Aufruf von @command{configure} übergeben wurde, benötigen Sie auch folgende Pakete:" #. type: item #: guix-git/doc/contributing.texi:123 #, no-wrap msgid "@url{https://gnupg.org/, GNU libgcrypt};" msgstr "@url{https://gnupg.org/, GNU libgcrypt}," #. type: item #: guix-git/doc/contributing.texi:124 #, no-wrap msgid "@url{https://sqlite.org, SQLite 3};" msgstr "@url{https://sqlite.org, SQLite 3}," #. type: item #: guix-git/doc/contributing.texi:125 #, no-wrap msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the" msgstr "@url{https://gcc.gnu.org, GCC's g++} mit Unterstützung für den" #. type: itemize #: guix-git/doc/contributing.texi:127 msgid "C++11 standard." msgstr "C++11-Standard." #. type: Plain text #: guix-git/doc/contributing.texi:134 msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:" msgstr "Wenn Sie an Guix selbst hacken wollen, ist es empfehlenswert, dass Sie die neueste Version aus dem Git-Softwarebestand verwenden:" #. type: example #: guix-git/doc/contributing.texi:137 #, no-wrap msgid "git clone https://git.savannah.gnu.org/git/guix.git\n" msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n" #. type: cindex #: guix-git/doc/contributing.texi:139 #, no-wrap msgid "authentication, of a Guix checkout" msgstr "Authentifizieren, eines Guix-Checkouts" #. type: Plain text #: guix-git/doc/contributing.texi:144 msgid "How do you ensure that you obtained a genuine copy of the repository? To do that, run @command{guix git authenticate}, passing it the commit and OpenPGP fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git authenticate}):" msgstr "Doch wie können Sie sichergehen, dass sie eine unverfälschte Kopie des Repositorys erhalten haben? Dazu müssen Sie @command{guix git authenticate} ausführen, wobei Sie den Commit und den OpenPGP-Fingerabdruck der @dfn{Kanaleinführung} angeben (siehe @ref{Invoking guix git authenticate}):" #. type: example #: guix-git/doc/contributing.texi:151 #, no-wrap msgid "" "git fetch origin keyring:keyring\n" "guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" msgstr "" "git fetch origin keyring:keyring\n" "guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:156 msgid "This command completes with exit code zero on success; it prints an error message and exits with a non-zero code otherwise." msgstr "Dieser Befehl gibt bei Erfolg am Ende null als Exit-Status zurück, ansonsten wird eine Fehlermeldung ausgegeben und ein anderer Exit-Status zurückgegeben." #. type: Plain text #: guix-git/doc/contributing.texi:163 msgid "As you can see, there is a chicken-and-egg problem: you first need to have Guix installed. Typically you would install Guix System (@pxref{System Installation}) or Guix on top of another distro (@pxref{Binary Installation}); in either case, you would verify the OpenPGP signature on the installation medium. This ``bootstraps'' the trust chain." msgstr "Wie Sie sehen können, liegt hier ein Henne-Ei-Problem vor: Sie müssen Guix zuvor bereits installiert haben. Üblicherweise würden Sie Guix System erst auf einem anderen System installieren (siehe @ref{System Installation}) oder Guix auf einer anderen Distribution installieren (siehe @ref{Binary Installation}); in beiden Fällen würden Sie die OpenPGP-Signatur auf dem Installationsmedium prüfen. Damit haben Sie ein „Bootstrapping“ der Vertrauenskette durchgeführt." #. type: Plain text #: guix-git/doc/contributing.texi:168 msgid "The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to hack on Guix:" msgstr "Der einfachste Weg, eine Entwicklungsumgebung für Guix einzurichten, ist natürlich, Guix zu benutzen! Der folgende Befehl startet eine neue Shell, in der alle Abhängigkeiten und Umgebungsvariablen bereits eingerichtet sind, um an Guix zu arbeiten:" #. type: example #: guix-git/doc/contributing.texi:171 #, no-wrap msgid "guix shell -D guix -CPW\n" msgstr "guix shell -D guix -CPW\n" #. type: Plain text #: guix-git/doc/contributing.texi:174 msgid "or even, from within a Git worktree for Guix:" msgstr "Oder kürzer, aus einem Git-Arbeitsverzeichnis von Guix heraus:" #. type: example #: guix-git/doc/contributing.texi:177 #, no-wrap msgid "guix shell -CPW\n" msgstr "guix shell -CPW\n" #. type: Plain text #: guix-git/doc/contributing.texi:182 msgid "If @option{-C} (short for @option{--container}) is not supported on your system, try @command{--pure} instead of @option{-CPW}. @xref{Invoking guix shell}, for more information on that command." msgstr "Wenn @option{-C} (die Kurzform von @option{--container}) auf Ihrem System nicht unterstützt wird, können Sie @command{--pure} statt @option{-CPW} schreiben. Siehe @ref{Invoking guix shell} für mehr Informationen, was Sie mit diesem Befehl tun." #. type: Plain text #: guix-git/doc/contributing.texi:186 msgid "If you are unable to use Guix when building Guix from a checkout, the following are the required packages in addition to those mentioned in the installation instructions (@pxref{Requirements})." msgstr "Wenn Sie Guix nicht benutzen können, wenn Sie es aus einem Checkout erstellen, werden die folgenden Pakete zusätzlich zu denen benötigt, die in den Installationsanweisungen angegeben sind (siehe @ref{Requirements})." #. type: item #: guix-git/doc/contributing.texi:188 #, no-wrap msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};" msgstr "@url{https://gnu.org/software/autoconf/, GNU Autoconf}," #. type: item #: guix-git/doc/contributing.texi:189 #, no-wrap msgid "@url{https://gnu.org/software/automake/, GNU Automake};" msgstr "@url{https://gnu.org/software/automake/, GNU Automake}," #. type: item #: guix-git/doc/contributing.texi:190 #, no-wrap msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};" msgstr "@url{https://gnu.org/software/gettext/, GNU Gettext}," #. type: item #: guix-git/doc/contributing.texi:191 #, no-wrap msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};" msgstr "@url{https://gnu.org/software/texinfo/, GNU Texinfo}," #. type: item #: guix-git/doc/contributing.texi:192 #, no-wrap msgid "@url{https://www.graphviz.org/, Graphviz};" msgstr "@url{https://www.graphviz.org/, Graphviz}," #. type: item #: guix-git/doc/contributing.texi:193 #, no-wrap msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}." msgstr "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}." #. type: Plain text #: guix-git/doc/contributing.texi:198 msgid "On Guix, extra dependencies can be added by instead running @command{guix shell}:" msgstr "Auf Guix können zusätzliche Abhängigkeiten hinzugefügt werden, indem Sie stattdessen @command{guix shell} ausführen:" #. type: example #: guix-git/doc/contributing.texi:201 #, no-wrap msgid "guix shell -D guix help2man git strace --pure\n" msgstr "guix shell -D guix help2man git strace --pure\n" #. type: Plain text #: guix-git/doc/contributing.texi:205 msgid "From there you can generate the build system infrastructure using Autoconf and Automake:" msgstr "Damit können Sie die Infrastruktur des Erstellungssystems mit Autoconf und Automake erzeugen." #. type: example #: guix-git/doc/contributing.texi:208 #, no-wrap msgid "./bootstrap\n" msgstr "./bootstrap\n" #. type: Plain text #: guix-git/doc/contributing.texi:211 msgid "If you get an error like this one:" msgstr "Möglicherweise erhalten Sie eine Fehlermeldung wie diese:" #. type: example #: guix-git/doc/contributing.texi:214 #, no-wrap msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n" msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n" #. type: Plain text #: guix-git/doc/contributing.texi:223 msgid "it probably means that Autoconf couldn’t find @file{pkg.m4}, which is provided by pkg-config. Make sure that @file{pkg.m4} is available. The same holds for the @file{guile.m4} set of macros provided by Guile. For instance, if you installed Automake in @file{/usr/local}, it wouldn’t look for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke the following command:" msgstr "Das bedeutet wahrscheinlich, dass Autoconf @file{pkg.m4} nicht finden konnte, welches von pkg-config bereitgestellt wird. Stellen Sie sicher, dass @file{pkg.m4} verfügbar ist. Gleiches gilt für den von Guile bereitgestellten Makrosatz @file{guile.m4}. Wenn Sie beispielsweise Automake in @file{/usr/local} installiert haben, würde in @file{/usr/share} nicht nach @file{.m4}-Dateien geschaut. In einem solchen Fall müssen Sie folgenden Befehl aufrufen:" #. type: example #: guix-git/doc/contributing.texi:226 #, no-wrap msgid "export ACLOCAL_PATH=/usr/share/aclocal\n" msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n" #. type: Plain text #: guix-git/doc/contributing.texi:230 msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information." msgstr "In @ref{Macro Search Path,,, automake, The GNU Automake Manual} finden Sie weitere Informationen." #. type: cindex #: guix-git/doc/contributing.texi:231 #, no-wrap msgid "state directory" msgstr "Zustandsverzeichnis" #. type: cindex #: guix-git/doc/contributing.texi:232 #, no-wrap msgid "localstatedir" msgstr "localstatedir" #. type: cindex #: guix-git/doc/contributing.texi:233 #, no-wrap msgid "system configuration directory" msgstr "Systemkonfigurationsverzeichnis" #. type: cindex #: guix-git/doc/contributing.texi:234 #, no-wrap msgid "sysconfdir" msgstr "sysconfdir" #. type: Plain text #: guix-git/doc/contributing.texi:236 msgid "Then, run:" msgstr "Anschließend führen Sie dies aus:" #. type: example #: guix-git/doc/contributing.texi:239 #, no-wrap msgid "./configure\n" msgstr "./configure\n" #. type: Plain text #: guix-git/doc/contributing.texi:248 msgid "... where @file{/var} is the normal @code{localstatedir} value (@pxref{The Store}, for information about this) and @file{/etc} is the normal @code{sysconfdir} value. Note that you will probably not run @command{make install} at the end (you don't have to) but it's still important to pass the right @code{localstatedir} and @code{sysconfdir} values, which get recorded in the @code{(guix config)} Guile module." msgstr "Dabei ist @file{/var} der normale @code{localstatedir}-Wert (weitere Informationen siehe @ref{The Store}) und @file{/etc} der normale @code{sysconfdir}-Wert. Denken Sie daran, dass Sie am Ende wahrscheinlich @emph{nicht} @command{make install} ausführen möchten (müssen Sie auch nicht), aber es ist dennoch wichtig, die richtige @code{localstatedir} und @code{sysconfdir} zu übergeben, welche im Guile-Modul @code{(guix config)} festgehalten werden." #. type: Plain text #: guix-git/doc/contributing.texi:251 msgid "Finally, you can build Guix and, if you feel so inclined, run the tests (@pxref{Running the Test Suite}):" msgstr "Schließlich können Sie Guix erstellen und, wenn Sie möchten, die Tests ausführen (siehe @ref{Running the Test Suite}):" #. type: example #: guix-git/doc/contributing.texi:255 #, no-wrap msgid "" "make\n" "make check\n" msgstr "" "make\n" "make check\n" #. type: Plain text #: guix-git/doc/contributing.texi:261 msgid "If anything fails, take a look at installation instructions (@pxref{Installation}) or send a message to the @email{guix-devel@@gnu.org, mailing list}." msgstr "Falls etwas fehlschlägt, werfen Sie einen Blick auf die Installationsanweisungen (siehe @ref{Installation}) oder senden Sie eine E-Mail an die @email{guix-devel@@gnu.org, Mailingliste}." #. type: Plain text #: guix-git/doc/contributing.texi:264 msgid "From there on, you can authenticate all the commits included in your checkout by running:" msgstr "Von da an können Sie alle Commits in Ihrem Checkout authentifizieren, indem Sie dies ausführen:" #. type: example #: guix-git/doc/contributing.texi:269 #, no-wrap msgid "" "guix git authenticate \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" msgstr "" "guix git authenticate \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:276 msgid "The first run takes a couple of minutes, but subsequent runs are faster. On subsequent runs, you can run the command without any arguments since the @dfn{introduction} (the commit ID and OpenPGP fingerprints above) will have been recorded@footnote{This requires a recent version of Guix, from May 2024 or more recent.}:" msgstr "" #. type: example #: guix-git/doc/contributing.texi:279 guix-git/doc/contributing.texi:2788 #, no-wrap msgid "guix git authenticate\n" msgstr "guix git authenticate\n" #. type: Plain text #: guix-git/doc/contributing.texi:286 msgid "When your configuration for your local Git repository doesn't match the default one, you can provide the reference for the @code{keyring} branch @i{via} the @option{-k} option. The following example assumes that you have a Git remote called @samp{myremote} pointing to the official repository:" msgstr "Für den Fall, dass die Konfiguration Ihres lokal verfügbaren Git-Repositorys nicht der voreingestellten entspricht, können Sie die Referenz für den @code{keyring}-Branch über die Option @option{-k} angeben. Im folgenden Beispiel nehmen wir an, Sie haben ein Remote-Repository namens @samp{myremote} eingerichtet, das auf das offizielle Guix-Repository verweist:" #. type: example #: guix-git/doc/contributing.texi:292 #, no-wrap msgid "" "guix git authenticate \\\n" " -k myremote/keyring \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" msgstr "" "guix git authenticate \\\n" " -k myremote/keyring \\\n" " 9edb3f66fd807b096b48283debdcddccfea34bad \\\n" " \"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:296 msgid "@xref{Invoking guix git authenticate}, for more information on this command." msgstr "Siehe @ref{Invoking guix git authenticate} für weitere Informationen zu diesem Befehl." #. type: quotation #: guix-git/doc/contributing.texi:297 guix-git/doc/contributing.texi:1485 #: guix-git/doc/contributing.texi:2097 guix-git/doc/contributing.texi:2142 #: guix-git/doc/contributing.texi:2165 guix-git/doc/contributing.texi:2761 #: guix-git/doc/guix.texi:803 guix-git/doc/guix.texi:829 #: guix-git/doc/guix.texi:1200 guix-git/doc/guix.texi:1225 #: guix-git/doc/guix.texi:1298 guix-git/doc/guix.texi:1685 #: guix-git/doc/guix.texi:1901 guix-git/doc/guix.texi:1976 #: guix-git/doc/guix.texi:2164 guix-git/doc/guix.texi:2386 #: guix-git/doc/guix.texi:3682 guix-git/doc/guix.texi:4087 #: guix-git/doc/guix.texi:4607 guix-git/doc/guix.texi:4621 #: guix-git/doc/guix.texi:4696 guix-git/doc/guix.texi:4711 #: guix-git/doc/guix.texi:4769 guix-git/doc/guix.texi:4999 #: guix-git/doc/guix.texi:5913 guix-git/doc/guix.texi:5942 #: guix-git/doc/guix.texi:6570 guix-git/doc/guix.texi:6849 #: guix-git/doc/guix.texi:6973 guix-git/doc/guix.texi:7002 #: guix-git/doc/guix.texi:7043 guix-git/doc/guix.texi:7098 #: guix-git/doc/guix.texi:8731 guix-git/doc/guix.texi:11048 #: guix-git/doc/guix.texi:11190 guix-git/doc/guix.texi:11260 #: guix-git/doc/guix.texi:13223 guix-git/doc/guix.texi:13263 #: guix-git/doc/guix.texi:13363 guix-git/doc/guix.texi:13588 #: guix-git/doc/guix.texi:13600 guix-git/doc/guix.texi:14492 #: guix-git/doc/guix.texi:16461 guix-git/doc/guix.texi:16991 #: guix-git/doc/guix.texi:17049 guix-git/doc/guix.texi:17082 #: guix-git/doc/guix.texi:17160 guix-git/doc/guix.texi:17561 #: guix-git/doc/guix.texi:18576 guix-git/doc/guix.texi:19139 #: guix-git/doc/guix.texi:19644 guix-git/doc/guix.texi:19705 #: guix-git/doc/guix.texi:22166 guix-git/doc/guix.texi:23080 #: guix-git/doc/guix.texi:23263 guix-git/doc/guix.texi:23324 #: guix-git/doc/guix.texi:23800 guix-git/doc/guix.texi:28824 #: guix-git/doc/guix.texi:29441 guix-git/doc/guix.texi:32886 #: guix-git/doc/guix.texi:37284 guix-git/doc/guix.texi:40655 #: guix-git/doc/guix.texi:42214 guix-git/doc/guix.texi:42288 #: guix-git/doc/guix.texi:42330 guix-git/doc/guix.texi:42676 #: guix-git/doc/guix.texi:42846 guix-git/doc/guix.texi:43014 #: guix-git/doc/guix.texi:43121 guix-git/doc/guix.texi:43167 #: guix-git/doc/guix.texi:43224 guix-git/doc/guix.texi:43251 #: guix-git/doc/guix.texi:43589 guix-git/doc/guix.texi:44999 #: guix-git/doc/guix.texi:45049 guix-git/doc/guix.texi:45105 #: guix-git/doc/guix.texi:45212 guix-git/doc/guix.texi:47305 #: guix-git/doc/guix.texi:47349 #, no-wrap msgid "Note" msgstr "Anmerkung" #. type: quotation #: guix-git/doc/contributing.texi:301 msgid "By default, hooks are installed such that @command{guix git authenticate} is invoked anytime you run @command{git pull} or @command{git push}." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:305 msgid "After updating the repository, @command{make} might fail with an error similar to the following example:" msgstr "Wenn Sie das Repository einmal aktualisieren, kann es passieren, dass @command{make} mit einer Fehlermeldung ähnlich wie dieser fehlschlägt:" #. type: example #: guix-git/doc/contributing.texi:309 #, no-wrap msgid "" "error: failed to load 'gnu/packages/linux.scm':\n" "ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed\n" msgstr "" "error: failed to load 'gnu/packages/linux.scm':\n" "ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed\n" #. type: Plain text #: guix-git/doc/contributing.texi:315 msgid "This means that one of the record types that Guix defines (in this example, the @code{origin} record) has changed, and all of guix needs to be recompiled to take that change into account. To do so, run @command{make clean-go} followed by @command{make}." msgstr "Das bedeutet, dass sich einer der in Guix definierten Verbundstypen (in diesem Beispiel der @code{origin}-Verbundstyp) geändert hat und alle Teile von Guix für diese Änderung neu kompiliert werden müssen. Um das zu veranlassen, führen Sie @command{make clean-go} aus, gefolgt von @command{make}." #. type: Plain text #: guix-git/doc/contributing.texi:319 msgid "Should @command{make} fail with an Automake error message after updating, you need to repeat the steps outlined in this section, commencing with @command{./bootstrap}." msgstr "Falls @command{make} mit einer Automake-Fehlermeldung fehlschlägt, nachdem Sie aktualisiert haben, müssen Sie die in diesem Abschnitt geschilderten Schritte wiederholen, angefangen mit @command{./bootstrap}." #. type: cindex #: guix-git/doc/contributing.texi:323 #, no-wrap msgid "test suite" msgstr "Testkatalog" #. type: Plain text #: guix-git/doc/contributing.texi:329 msgid "After a successful @command{configure} and @code{make} run, it is a good idea to run the test suite. It can help catch issues with the setup or environment, or bugs in Guix itself---and really, reporting test failures is a good way to help improve the software. To run the test suite, type:" msgstr "Nachdem @command{configure} und @code{make} erfolgreich durchgelaufen sind, ist es ratsam, den Testkatalog auszuführen. Er kann dabei helfen, Probleme mit der Einrichtung oder Systemumgebung zu finden, oder auch Probleme in Guix selbst@tie{}– und Testfehler zu melden ist eine wirklich gute Art und Weise, bei der Verbesserung von Guix mitzuhelfen. Um den Testkatalog auszuführen, geben Sie Folgendes ein:" #. type: example #: guix-git/doc/contributing.texi:332 #, no-wrap msgid "make check\n" msgstr "make check\n" #. type: Plain text #: guix-git/doc/contributing.texi:339 msgid "Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}make to speed things up. The first run may take a few minutes on a recent machine; subsequent runs will be faster because the store that is created for test purposes will already have various things in cache." msgstr "Testfälle können parallel ausgeführt werden. Sie können die Befehlszeiltenoption @code{-j} von GNU@tie{}make benutzen, damit es schneller geht. Der erste Durchlauf kann auf neuen Maschinen ein paar Minuten dauern, nachfolgende Ausführungen werden schneller sein, weil der für die Tests erstellte Store schon einige Dinge zwischengespeichert haben wird." #. type: Plain text #: guix-git/doc/contributing.texi:342 msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:" msgstr "Es ist auch möglich, eine Teilmenge der Tests laufen zu lassen, indem Sie die @code{TESTS}-Variable des Makefiles ähnlich wie in diesem Beispiel definieren:" #. type: example #: guix-git/doc/contributing.texi:345 #, no-wrap msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n" msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:350 msgid "By default, tests results are displayed at a file level. In order to see the details of every individual test cases, it is possible to define the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:" msgstr "Standardmäßig werden Testergebnisse pro Datei angezeigt. Um die Details jedes einzelnen Testfalls zu sehen, können Sie wie in diesem Beispiel die @code{SCM_LOG_DRIVER_FLAGS}-Variable des Makefiles definieren:" #. type: example #: guix-git/doc/contributing.texi:353 #, no-wrap msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n" msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:361 msgid "The underlying SRFI 64 custom Automake test driver used for the 'check' test suite (located at @file{build-aux/test-driver.scm}) also allows selecting which test cases to run at a finer level, via its @option{--select} and @option{--exclude} options. Here's an example, to run all the test cases from the @file{tests/packages.scm} test file whose names start with ``transaction-upgrade-entry'':" msgstr "Mit dem eigens geschriebenen SRFI-64-Testtreiber für Automake, über den der „@code{check}“-Testkatalog läuft (zu finden in @file{build-aux/test-driver.scm}), können auch die Testfälle genauer ausgewählt werden, die ausgeführt werden sollen. Dazu dienen dessen Befehlszeilenoptionen @option{--select} und @option{--exclude}. Hier ist ein Beispiel, um alle Testfälle aus der Testdatei @file{tests/packages.scm} auszuführen, deren Name mit „transaction-upgrade-entry“ beginnt:" #. type: example #: guix-git/doc/contributing.texi:365 #, no-wrap msgid "" "export SCM_LOG_DRIVER_FLAGS=\"--select=^transaction-upgrade-entry\"\n" "make check TESTS=\"tests/packages.scm\"\n" msgstr "" "export SCM_LOG_DRIVER_FLAGS=\"--select=^transaction-upgrade-entry\"\n" "make check TESTS=\"tests/packages.scm\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:371 msgid "Those wishing to inspect the results of failed tests directly from the command line can add the @option{--errors-only=yes} option to the @code{SCM_LOG_DRIVER_FLAGS} makefile variable and set the @code{VERBOSE} Automake makefile variable, as in:" msgstr "Möchte man die Ergebnisse fehlgeschlagener Tests direkt über die Befehlszeile einsehen, fügt man die Befehlszeilenoption @option{--errors-only=yes} in die Makefile-Variable @code{SCM_LOG_DRIVER_FLAGS} ein und setzt Automakes Makefile-Variable @code{VERBOSE}, etwa so:" #. type: example #: guix-git/doc/contributing.texi:374 #, no-wrap msgid "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --errors-only=yes\" VERBOSE=1\n" msgstr "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --errors-only=yes\" VERBOSE=1\n" #. type: Plain text #: guix-git/doc/contributing.texi:379 msgid "The @option{--show-duration=yes} option can be used to print the duration of the individual test cases, when used in combination with @option{--brief=no}:" msgstr "Sie können die Befehlszeilenoption @option{--show-duration=yes} benutzen, damit ausgegeben wird, wie lange jeder einzelne Testfall gebraucht hat, in Kombination mit @option{--brief=no}:" #. type: example #: guix-git/doc/contributing.texi:382 #, no-wrap msgid "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --show-duration=yes\"\n" msgstr "make check SCM_LOG_DRIVER_FLAGS=\"--brief=no --show-duration=yes\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:386 msgid "@xref{Parallel Test Harness,,,automake,GNU Automake} for more information about the Automake Parallel Test Harness." msgstr "Siehe @ref{Parallel Test Harness,,,automake,GNU Automake} für mehr Informationen über den parallelen Testrahmen von Automake." #. type: Plain text #: guix-git/doc/contributing.texi:391 msgid "Upon failure, please email @email{bug-guix@@gnu.org} and attach the @file{test-suite.log} file. Please specify the Guix version being used as well as version numbers of the dependencies (@pxref{Requirements}) in your message." msgstr "Kommt es zum Fehlschlag, senden Sie bitte eine E-Mail an @email{bug-guix@@gnu.org} und fügen Sie die Datei @file{test-suite.log} als Anhang bei. Bitte geben Sie dabei in Ihrer Nachricht die benutzte Version von Guix an sowie die Versionsnummern der Abhängigkeiten (siehe @ref{Requirements})." #. type: Plain text #: guix-git/doc/contributing.texi:395 msgid "Guix also comes with a whole-system test suite that tests complete Guix System instances. It can only run on systems where Guix is already installed, using:" msgstr "Guix wird auch mit einem Testkatalog für das ganze System ausgeliefert, der vollständige Instanzen des „Guix System“-Betriebssystems testet. Er kann nur auf Systemen benutzt werden, auf denen Guix bereits installiert ist, mit folgendem Befehl:" #. type: example #: guix-git/doc/contributing.texi:398 #, no-wrap msgid "make check-system\n" msgstr "make check-system\n" #. type: Plain text #: guix-git/doc/contributing.texi:402 msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:" msgstr "Oder, auch hier, indem Sie @code{TESTS} definieren, um eine Teilmenge der auszuführenden Tests anzugeben:" #. type: example #: guix-git/doc/contributing.texi:405 #, no-wrap msgid "make check-system TESTS=\"basic mcron\"\n" msgstr "make check-system TESTS=\"basic mcron\"\n" #. type: Plain text #: guix-git/doc/contributing.texi:413 msgid "These system tests are defined in the @code{(gnu tests @dots{})} modules. They work by running the operating systems under test with lightweight instrumentation in a virtual machine (VM). They can be computationally intensive or rather cheap, depending on whether substitutes are available for their dependencies (@pxref{Substitutes}). Some of them require a lot of storage space to hold VM images." msgstr "Diese Systemtests sind in den @code{(gnu tests …)}-Modulen definiert. Sie funktionieren, indem Sie das getestete Betriebssystem mitsamt schlichter Instrumentierung in einer virtuellen Maschine (VM) ausführen. Die Tests können aufwendige Berechnungen durchführen oder sie günstig umgehen, je nachdem, ob für ihre Abhängigkeiten Substitute zur Verfügung stehen (siehe @ref{Substitutes}). Manche von ihnen nehmen viel Speicherplatz in Anspruch, um die VM-Abbilder zu speichern." #. type: Plain text #: guix-git/doc/contributing.texi:415 msgid "If you encounter an error like:" msgstr "Wenn Sie eine Fehlermeldung wie diese sehen:" #. type: example #: guix-git/doc/contributing.texi:421 #, no-wrap msgid "" "Compiling Scheme modules...\n" "ice-9/eval.scm:142:16: In procedure compile-top-call:\n" "error: all-system-tests: unbound variable\n" "hint: Did you forget `(use-modules (gnu tests))'?\n" msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:427 msgid "there may be inconsistencies in the work tree from previous builds. To resolve this, try running @command{make clean-go} followed by @command{make}." msgstr "" #. type: Plain text #: guix-git/doc/contributing.texi:430 msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details." msgstr "Auch hier gilt: Falls Testfehler auftreten, senden Sie bitte alle Details an @email{bug-guix@@gnu.org}." #. type: Plain text #: guix-git/doc/contributing.texi:438 msgid "In order to keep a sane working environment, you will find it useful to test the changes made in your local source tree checkout without actually installing them. So that you can distinguish between your ``end-user'' hat and your ``motley'' costume." msgstr "Um eine gesunde Arbeitsumgebung zu erhalten, ist es hilfreich, die im lokalen Quellbaum vorgenommenen Änderungen zunächst zu testen, ohne sie tatsächlich zu installieren. So können Sie zwischen Ihrem Endnutzer-„Straßenanzug“ und Ihrem „Faschingskostüm“ unterscheiden." #. type: Plain text #: guix-git/doc/contributing.texi:448 msgid "To that end, all the command-line tools can be used even if you have not run @code{make install}. To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the top build tree of Guix; @pxref{Building from Git} to generate it). As an example, here is how you would build the @code{hello} package as defined in your working tree (this assumes @command{guix-daemon} is already running on your system; it's OK if it's a different version):" msgstr "Zu diesem Zweck können alle Befehlszeilenwerkzeuge auch schon benutzt werden, ohne dass Sie @code{make install} laufen lassen. Dazu müssen Sie sich in einer Umgebung befinden, in der alle Abhängigkeiten von Guix verfügbar sind (siehe @ref{Building from Git}) und darin einfach vor jeden Befehl @command{./pre-inst-env} schreiben (das Skript @file{pre-inst-env} befindet sich auf oberster Ebene im Verzeichnis, wo Guix erstellt wird; siehe @ref{Building from Git}, wo beschrieben ist, wie Sie es erzeugen). Zum Beispiel würden Sie so das Paket @code{hello} erstellen lassen, so wie es in der gegenwärtigen Kopie des Guix-Quellbaums definiert wurde (es wird angenommen, dass @command{guix-daemon} auf Ihrem System bereits läuft, auch wenn es eine andere Version ist):" #. type: example #: guix-git/doc/contributing.texi:451 #, no-wrap msgid "$ ./pre-inst-env guix build hello\n" msgstr "$ ./pre-inst-env guix build hello\n" #. type: Plain text #: guix-git/doc/contributing.texi:455 msgid "Similarly, an example for a Guile session using the Guix modules:" msgstr "Entsprechend würden Sie dies eingeben, um eine Guile-Sitzung zu öffnen, die die Guix-Module benutzt:" #. type: example #: guix-git/doc/contributing.texi:458 #, no-wrap msgid "" "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n" "\n" msgstr "" "$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n" "\n" #. type: example #: guix-git/doc/contributing.texi:460 #, no-wrap msgid ";;; (\"x86_64-linux\")\n" msgstr ";;; (\"x86_64-linux\")\n" #. type: cindex #: guix-git/doc/contributing.texi:463 #, no-wrap msgid "REPL" msgstr "REPL" #. type: cindex #: guix-git/doc/contributing.texi:464 #, no-wrap msgid "read-eval-print loop" msgstr "Lese-Auswerten-Schreiben-Schleife" #. type: Plain text #: guix-git/doc/contributing.texi:466 msgid "@dots{} and for a REPL (@pxref{Using Guix Interactively}):" msgstr "…@: und auf einer REPL (siehe @ref{Using Guix Interactively}):" #. type: example #: guix-git/doc/contributing.texi:481 #, no-wrap msgid "" "$ ./pre-inst-env guile\n" "scheme@@(guile-user)> ,use(guix)\n" "scheme@@(guile-user)> ,use(gnu)\n" "scheme@@(guile-user)> (define snakes\n" " (fold-packages\n" " (lambda (package lst)\n" " (if (string-prefix? \"python\"\n" " (package-name package))\n" " (cons package lst)\n" " lst))\n" " '()))\n" "scheme@@(guile-user)> (length snakes)\n" "$1 = 361\n" msgstr "" "$ ./pre-inst-env guile\n" "scheme@@(guile-user)> ,use(guix)\n" "scheme@@(guile-user)> ,use(gnu)\n" "scheme@@(guile-user)> (define snakes\n" " (fold-packages\n" " (lambda (package lst)\n" " (if (string-prefix? \"python\"\n" " (package-name package))\n" " (cons package lst)\n" " lst))\n" " '()))\n" "scheme@@(guile-user)> (length snakes)\n" "$1 = 361\n" #. type: Plain text #: guix-git/doc/contributing.texi:489 msgid "If you are hacking on the daemon and its supporting code or if @command{guix-daemon} is not already running on your system, you can launch it straight from the build tree@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}:" msgstr "Wenn Sie am Daemon und damit zu tun habendem Code hacken oder wenn @command{guix-daemon} nicht bereits auf Ihrem System läuft, können Sie ihn direkt aus dem Verzeichnis heraus starten, wo Sie Guix erstellen lassen@footnote{Die Befehlszeilenoption @option{-E} von @command{sudo} stellt sicher, dass @code{GUILE_LOAD_PATH} richtig gesetzt wird, damit @command{guix-daemon} und die davon benutzten Werkzeuge die von ihnen benötigten Guile-Module finden können.}:" #. type: example #: guix-git/doc/contributing.texi:492 #, no-wrap msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n" msgstr "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n" #. type: Plain text #: guix-git/doc/contributing.texi:496 msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}." msgstr "Das @command{pre-inst-env}-Skript richtet alle Umgebungsvariablen ein, die nötig sind, um dies zu ermöglichen, einschließlich @env{PATH} und @env{GUILE_LOAD_PATH}." #. type: Plain text #: guix-git/doc/contributing.texi:501 msgid "Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if you want to upgrade your local source tree." msgstr "Beachten Sie, dass @command{./pre-inst-env guix pull} den lokalen Quellbaum @emph{nicht} aktualisiert; es aktualisiert lediglich die symbolische Verknüpfung @file{~/.config/guix/current} (siehe @ref{Invoking guix pull}). Um Ihren lokalen Quellbaum zu aktualisieren, müssen Sie stattdessen @command{git pull} benutzen." #. type: Plain text #: guix-git/doc/contributing.texi:505 msgid "Sometimes, especially if you have recently updated your repository, running @command{./pre-inst-env} will print a message similar to the following example:" msgstr "Manchmal, insbesondere wenn Sie das Repository aktualisiert haben, wird beim Ausführen mit @command{./pre-inst-env} eine Nachricht ähnlich wie in diesem Beispiel erscheinen:" #. type: example #: guix-git/doc/contributing.texi:509 #, no-wrap msgid "" ";;; note: source file /home/user/projects/guix/guix/progress.scm\n" ";;; newer than compiled /home/user/projects/guix/guix/progress.go\n" msgstr "" ";;; note: source file /home/user/projects/guix/guix/progress.scm\n" ";;; newer than compiled /home/user/projects/guix/guix/progress.go\n" #. type: Plain text #: guix-git/doc/contributing.texi:515 msgid "This is only a note and you can safely ignore it. You can get rid of the message by running @command{make -j4}. Until you do, Guile will run slightly slower because it will interpret the code instead of using prepared Guile object (@file{.go}) files." msgstr "Es handelt sich lediglich um einen Hinweis und Sie können ihn getrost ignorieren. Los werden Sie die Nachricht, indem Sie @command{make -j4} ausführen. Bis dahin läuft Guile etwas langsamer als sonst, weil es den Quellcode interpretieren muss und nicht auf vorbereitete Guile-Objekt-Dateien (@file{.go}) zurückgreifen kann." #. type: Plain text #: guix-git/doc/contributing.texi:520 msgid "You can run @command{make} automatically as you work using @command{watchexec} from the @code{watchexec} package. For example, to build again each time you update a package file, run @samp{watchexec -w gnu/packages -- make -j4}." msgstr "Sie können @command{make} automatisch ausführen lassen, während Sie am Code arbeiten, nämlich mit @command{watchexec} aus dem Paket @code{watchexec}. Um zum Beispiel jedes Mal neu zu erstellen, wenn Sie etwas an einer Paketdatei ändern, führen Sie @samp{watchexec -w gnu/packages -- make -j4} aus." #. type: Plain text #: guix-git/doc/contributing.texi:529 msgid "The Perfect Setup to hack on Guix is basically the perfect setup used for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual}). First, you need more than an editor, you need @url{https://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run:" msgstr "Um perfekt für das Hacken an Guix eingerichtet zu sein, brauchen Sie an sich dasselbe wie um perfekt für das Hacken mit Guile (siehe @ref{Using Guile in Emacs,,, guile, Guile-Referenzhandbuch}). Zunächst brauchen Sie mehr als ein Textverarbeitungsprogramm, Sie brauchen @url{https://www.gnu.org/software/emacs, Emacs} zusammen mit den vom wunderbaren @url{https://nongnu.org/geiser/, Geiser} verliehenen Kräften. Um diese zu installieren, können Sie Folgendes ausführen:" #. type: example #: guix-git/doc/contributing.texi:532 #, no-wrap msgid "guix install emacs guile emacs-geiser emacs-geiser-guile\n" msgstr "guix install emacs guile emacs-geiser emacs-geiser-guile\n" #. type: Plain text #: guix-git/doc/contributing.texi:542 msgid "Geiser allows for interactive and incremental development from within Emacs: code compilation and evaluation from within buffers, access to on-line documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump to an object definition, a REPL to try out your code, and more (@pxref{Introduction,,, geiser, Geiser User Manual}). If you allow Emacs to load the @file{.dir-locals.el} file at the root of the project checkout, it will cause Geiser to automatically add the local Guix sources to the Guile load path." msgstr "Geiser ermöglicht interaktive und inkrementelle Entwicklung aus Emacs heraus: Code kann in Puffern kompiliert und ausgewertet werden. Zugang zu Online-Dokumentation (Docstrings) steht ebenso zur Verfügung wie kontextabhängige Vervollständigung, @kbd{M-.} um zu einer Objektdefinition zu springen, eine REPL, um Ihren Code auszuprobieren, und mehr (siehe @ref{Introduction,,, geiser, Geiser User Manual}). Wenn Sie Emacs die Erlaubnis erteilen, die Datei @file{.dir-locals.el} im obersten Verzeichnis Ihres Guix-Checkouts zu laden, wird Geiser die lokalen Guix-Quelldateien automatisch zu Guiles Ladepfad ergänzen." #. type: Plain text #: guix-git/doc/contributing.texi:549 msgid "To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss @url{https://www.emacswiki.org/emacs/ParEdit, Paredit}. It provides facilities to directly operate on the syntax tree, such as raising an s-expression or wrapping it, swallowing or rejecting the following s-expression, etc." msgstr "Um den Code tatsächlich zu bearbeiten, bietet Emacs schon einen netten Scheme-Modus. Aber Sie dürfen auch @url{https://www.emacswiki.org/emacs/ParEdit, Paredit} nicht verpassen. Es bietet Hilfsmittel, um direkt mit dem Syntaxbaum zu arbeiten, und kann so zum Beispiel einen S-Ausdruck hochheben oder ihn umhüllen, ihn verschlucken oder den nachfolgenden S-Ausdruck verwerfen, etc." #. type: cindex #: guix-git/doc/contributing.texi:550 #, no-wrap msgid "code snippets" msgstr "Code-Schnipsel" #. type: cindex #: guix-git/doc/contributing.texi:551 #, no-wrap msgid "templates" msgstr "Vorlagen" #. type: cindex #: guix-git/doc/contributing.texi:552 #, no-wrap msgid "reducing boilerplate" msgstr "Tipparbeit sparen" #. type: Plain text #: guix-git/doc/contributing.texi:562 msgid "We also provide templates for common git commit messages and package definitions in the @file{etc/snippets} directory. These templates can be used to expand short trigger strings to interactive text snippets. If you use @url{https://joaotavora.github.io/yasnippet/, YASnippet}, you may want to add the @file{etc/snippets/yas} snippets directory to the @var{yas-snippet-dirs} variable. If you use @url{https://github.com/minad/tempel/, Tempel}, you may want to add the @file{etc/snippets/tempel/*} path to the @var{tempel-path} variable in Emacs." msgstr "Wir bieten auch Vorlagen an für häufige Git-Commit-Nachrichten und Paketdefinitionen im Verzeichnis @file{etc/snippets}. Diese Vorlagen können benutzt werden, um kurze Auslöse-Zeichenketten zu interaktiven Textschnipseln umzuschreiben. Wenn Sie dazu @url{https://joaotavora.github.io/yasnippet/, YASnippet} verwenden, möchten Sie vielleicht das Schnipselverzeichnis @file{etc/snippets/yas} zu Ihrer @var{yas-snippet-dirs}-Variablen in Emacs hinzufügen. Wenn Sie @url{https://github.com/minad/tempel/, Tempel} verwenden, fügen Sie stattdessen den Pfad @file{etc/snippets/tempel/*} zur Emacs-Variablen @var{tempel-path} hinzu." #. type: lisp #: guix-git/doc/contributing.texi:574 #, no-wrap msgid "" ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n" ";; @r{Yasnippet configuration}\n" "(with-eval-after-load 'yasnippet\n" " (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets/yas\"))\n" ";; @r{Tempel configuration}\n" "(with-eval-after-load 'tempel\n" " ;; Ensure tempel-path is a list -- it may also be a string.\n" " (unless (listp 'tempel-path)\n" " (setq tempel-path (list tempel-path)))\n" " (add-to-list 'tempel-path \"~/src/guix/etc/snippets/tempel/*\"))\n" msgstr "" ";; @r{Angenommen das Guix-Checkout ist in ~/src/guix.}\n" ";; @r{Yasnippet-Konfiguration}\n" "(with-eval-after-load 'yasnippet\n" " (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets/yas\"))\n" ";; @r{Tempel-Konfiguration}\n" "(with-eval-after-load 'tempel\n" " ;; Wenn tempel-path noch keine Liste ist, sondern eine Zeichenkette\n" " (unless (listp 'tempel-path)\n" " (setq tempel-path (list tempel-path)))\n" " (add-to-list 'tempel-path \"~/src/guix/etc/snippets/tempel/*\"))\n" #. type: Plain text #: guix-git/doc/contributing.texi:582 msgid "The commit message snippets depend on @url{https://magit.vc/, Magit} to display staged files. When editing a commit message type @code{add} followed by @kbd{TAB} to insert a commit message template for adding a package; type @code{update} followed by @kbd{TAB} to insert a template for updating a package; type @code{https} followed by @kbd{TAB} to insert a template for changing the home page URI of a package to HTTPS." msgstr "Die Schnipsel für Commit-Nachrichten setzen @url{https://magit.vc/, Magit} voraus, um zum Commit vorgemerkte Dateien anzuzeigen. Wenn Sie eine Commit-Nachricht bearbeiten, können Sie @code{add} gefolgt von @kbd{TAB} eintippen, um eine Commit-Nachrichten-Vorlage für das Hinzufügen eines Pakets zu erhalten; tippen Sie @code{update} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Aktualisieren eines Pakets zu bekommen; tippen Sie @code{https} gefolgt von @kbd{TAB} ein, um eine Vorlage zum Ändern der Homepage-URI eines Pakets auf HTTPS einzufügen." #. type: Plain text #: guix-git/doc/contributing.texi:588 msgid "The main snippet for @code{scheme-mode} is triggered by typing @code{package...} followed by @kbd{TAB}. This snippet also inserts the trigger string @code{origin...}, which can be expanded further. The @code{origin} snippet in turn may insert other trigger strings ending on @code{...}, which also can be expanded further." msgstr "Das Hauptschnipsel für @code{scheme-mode} wird ausgelöst, indem Sie @code{package...} gefolgt von @kbd{TAB} eintippen. Dieses Snippet fügt auch die Auslöse-Zeichenkette @code{origin...} ein, die danach weiter umgeschrieben werden kann. Das @code{origin}-Schnipsel kann wiederum andere Auslöse-Zeichenketten einfügen, die alle auf @code{...} enden, was selbst wieder weiter umgeschrieben werden kann." #. type: cindex #: guix-git/doc/contributing.texi:589 #, no-wrap msgid "insert or update copyright" msgstr "Copyright einfügen oder aktualisieren" #. type: code{#1} #: guix-git/doc/contributing.texi:590 #, no-wrap msgid "M-x guix-copyright" msgstr "M-x guix-copyright" #. type: code{#1} #: guix-git/doc/contributing.texi:591 #, no-wrap msgid "M-x copyright-update" msgstr "M-x copyright-update" #. type: Plain text #: guix-git/doc/contributing.texi:595 msgid "We additionally provide insertion and automatic update of a copyright in @file{etc/copyright.el}. You may want to set your full name, mail, and load a file." msgstr "Außerden stellen wir automatisches Einfügen und Aktualisieren von Urheberrechtsinformationen („Copyright“) über @file{etc/copyright.el} zur Verfügung. Dazu müssten Sie Ihren vollständigen Namen mit E-Mail-Adresse festlegen und eine Datei laden." #. type: lisp #: guix-git/doc/contributing.texi:601 #, no-wrap msgid "" "(setq user-full-name \"Alice Doe\")\n" "(setq user-mail-address \"alice@@mail.org\")\n" ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n" "(load-file \"~/src/guix/etc/copyright.el\")\n" msgstr "" "(setq user-full-name \"Alice Doe\")\n" "(setq user-mail-address \"alice@@mail.org\")\n" ";; @r{Assuming the Guix checkout is in ~/src/guix.}\n" "(load-file \"~/src/guix/etc/copyright.el\")\n" #. type: Plain text #: guix-git/doc/contributing.texi:604 msgid "To insert a copyright at the current line invoke @code{M-x guix-copyright}." msgstr "Um an der aktuellen Zeile Copyright-Informationen einzufügen, rufen Sie @code{M-x guix-copyright} auf." #. type: Plain text #: guix-git/doc/contributing.texi:606 msgid "To update a copyright you need to specify a @code{copyright-names-regexp}." msgstr "Um Copyright-Informationen aktualisieren zu können, müssen Sie einen regulären Ausdruck @code{copyright-names-regexp} angeben." #. type: lisp #: guix-git/doc/contributing.texi:610 #, no-wrap msgid "" "(setq copyright-names-regexp\n" " (format \"%s <%s>\" user-full-name user-mail-address))\n" msgstr "" "(setq copyright-names-regexp\n" " (format \"%s <%s>\" user-full-name user-mail-address))\n" #. type: Plain text #: guix-git/doc/contributing.texi:616 msgid "You can check if your copyright is up to date by evaluating @code{M-x copyright-update}. If you want to do it automatically after each buffer save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs." msgstr "Sie können prüfen, ob Ihre Urheberrechtsinformationen aktuell sind, indem Sie @code{M-x copyright-update} auswerten. Wenn Sie möchten, dass dies automatisch nach jedem Speichern des Puffers geschieht, fügen Sie @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs hinzu." #. type: subsection #: guix-git/doc/contributing.texi:617 guix-git/doc/contributing.texi:618 #, no-wrap msgid "Viewing Bugs within Emacs" msgstr "Bugs mit Emacs anschauen" #. type: Plain text #: guix-git/doc/contributing.texi:628 msgid "Emacs has a nice minor mode called @code{bug-reference}, which, when combined with @samp{emacs-debbugs} (the Emacs package), can be used to open links such as @samp{<https://bugs.gnu.org/58697>} or @samp{<https://issues.guix.gnu.org/58697>} as bug report buffers. From there you can easily consult the email thread via the Gnus interface, reply or modify the bug status, all without leaving the comfort of Emacs! Below is a sample configuration to add to your @file{~/.emacs} configuration file:" msgstr "Emacs hat einen nützlichen Minor-Mode namens @code{bug-reference}, mit dem man, zusammen mit @samp{emacs-debbugs} (dem Paket für Emacs), URLs wie @samp{<https://bugs.gnu.org/58697>} oder @samp{<https://issues.guix.gnu.org/58697>} als Buffer mit dem Fehlerbericht öffnen kann. Von diesem aus kann man leicht den E-Mail-Thread in Gnus lesen, antworten oder den Status des Bugs ändern ohne Emacs zu verlassen! Sie sehen im Folgenden eine Beispielkonfiguration, die Sie in Ihre @file{~/.emacs}-Konfigurationsdatei übernehmen können:" #. type: lisp #: guix-git/doc/contributing.texi:637 #, no-wrap msgid "" ";;; Bug references.\n" "(require 'bug-reference)\n" "(add-hook 'prog-mode-hook #'bug-reference-prog-mode)\n" "(add-hook 'gnus-mode-hook #'bug-reference-mode)\n" "(add-hook 'erc-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-summary-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-article-mode-hook #'bug-reference-mode)\n" "\n" msgstr "" ";;; Verweise auf Bugs.\n" "(require 'bug-reference)\n" "(add-hook 'prog-mode-hook #'bug-reference-prog-mode)\n" "(add-hook 'gnus-mode-hook #'bug-reference-mode)\n" "(add-hook 'erc-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-summary-mode-hook #'bug-reference-mode)\n" "(add-hook 'gnus-article-mode-hook #'bug-reference-mode)\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:669 #, no-wrap msgid "" ";;; This extends the default expression (the top-most, first expression\n" ";;; provided to 'or') to also match URLs such as\n" ";;; <https://issues.guix.gnu.org/58697> or <https://bugs.gnu.org/58697>.\n" ";;; It is also extended to detect \"Fixes: #NNNNN\" git trailers.\n" "(setq bug-reference-bug-regexp\n" " (rx (group (or (seq word-boundary\n" " (or (seq (char \"Bb\") \"ug\"\n" " (zero-or-one \" \")\n" " (zero-or-one \"#\"))\n" " (seq (char \"Pp\") \"atch\"\n" " (zero-or-one \" \")\n" " \"#\")\n" " (seq (char \"Ff\") \"ixes\"\n" " (zero-or-one \":\")\n" " (zero-or-one \" \") \"#\")\n" " (seq \"RFE\"\n" " (zero-or-one \" \") \"#\")\n" " (seq \"PR \"\n" " (one-or-more (char \"a-z+-\")) \"/\"))\n" " (group (one-or-more (char \"0-9\"))\n" " (zero-or-one\n" " (seq \"#\" (one-or-more\n" " (char \"0-9\"))))))\n" " (seq (? \"<\") \"https://bugs.gnu.org/\"\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))\n" " (seq (? \"<\") \"https://issues.guix.gnu.org/\"\n" " (? \"issue/\")\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))))))\n" "(setq bug-reference-url-format \"https://issues.guix.gnu.org/%s\")\n" "\n" msgstr "" ";;; Dies erweitert die „default expression“ (den obersten, ersten\n" ";;; Ausdruck für 'or') so, dass er auch auf URLs wie\n" ";;; <https://issues.guix.gnu.org/58697> oder\n" ";;; <https://bugs.gnu.org/58697> passt.\n" ";;; Auch werden so \"Fixes: #NNNNN\" in Git-Anhangszeilen erkannt.\n" "(setq bug-reference-bug-regexp\n" " (rx (group (or (seq word-boundary\n" " (or (seq (char \"Bb\") \"ug\"\n" " (zero-or-one \" \")\n" " (zero-or-one \"#\"))\n" " (seq (char \"Pp\") \"atch\"\n" " (zero-or-one \" \")\n" " \"#\")\n" " (seq (char \"Ff\") \"ixes\"\n" " (zero-or-one \":\")\n" " (zero-or-one \" \") \"#\")\n" " (seq \"RFE\"\n" " (zero-or-one \" \") \"#\")\n" " (seq \"PR \"\n" " (one-or-more (char \"a-z+-\")) \"/\"))\n" " (group (one-or-more (char \"0-9\"))\n" " (zero-or-one\n" " (seq \"#\" (one-or-more\n" " (char \"0-9\"))))))\n" " (seq (? \"<\") \"https://bugs.gnu.org/\"\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))\n" " (seq (? \"<\") \"https://issues.guix.gnu.org/\"\n" " (? \"issue/\")\n" " (group-n 2 (one-or-more (char \"0-9\")))\n" " (? \">\"))))))\n" "(setq bug-reference-url-format \"https://issues.guix.gnu.org/%s\")\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:674 #, no-wrap msgid "" "(require 'debbugs)\n" "(require 'debbugs-browse)\n" "(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode)\n" "(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode)\n" "\n" msgstr "" "(require 'debbugs)\n" "(require 'debbugs-browse)\n" "(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode)\n" "(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode)\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:685 #, no-wrap msgid "" ";; The following allows Emacs Debbugs user to open the issue directly within\n" ";; Emacs.\n" "(setq debbugs-browse-url-regexp\n" " (rx line-start\n" " \"http\" (zero-or-one \"s\") \"://\"\n" " (or \"debbugs\" \"issues.guix\" \"bugs\")\n" " \".gnu.org\" (one-or-more \"/\")\n" " (group (zero-or-one \"cgi/bugreport.cgi?bug=\"))\n" " (group-n 3 (one-or-more digit))\n" " line-end))\n" "\n" msgstr "" ";; Mit folgendem Code kann man mit Emacs Debbugs Fehlerberichte direkt\n" ";; in Emacs öffnen.\n" "(setq debbugs-browse-url-regexp\n" " (rx line-start\n" " \"http\" (zero-or-one \"s\") \"://\"\n" " (or \"debbugs\" \"issues.guix\" \"bugs\")\n" " \".gnu.org\" (one-or-more \"/\")\n" " (group (zero-or-one \"cgi/bugreport.cgi?bug=\"))\n" " (group-n 3 (one-or-more digit))\n" " line-end))\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:688 #, no-wrap msgid "" ";; Change the default when run as 'M-x debbugs-gnu'.\n" "(setq debbugs-gnu-default-packages '(\"guix\" \"guix-patches\"))\n" "\n" msgstr "" ";; Ändern, welche Fehlerberichte uns 'M-x debbugs-gnu' anzeigt.\n" "(setq debbugs-gnu-default-packages '(\"guix\" \"guix-patches\"))\n" "\n" #. type: lisp #: guix-git/doc/contributing.texi:692 #, no-wrap msgid "" ";; Show feature requests.\n" "(setq debbugs-gnu-default-severities\n" " '(\"serious\" \"important\" \"normal\" \"minor\" \"wishlist\"))\n" msgstr "" ";; Auch Bitten um neue Funktionalität zeigen.\n" "(setq debbugs-gnu-default-severities\n" " '(\"serious\" \"important\" \"normal\" \"minor\" \"wishlist\"))\n" #. type: Plain text #: guix-git/doc/contributing.texi:697 msgid "For more information, refer to @ref{Bug Reference,,, emacs, The GNU Emacs Manual} and @ref{Minor Mode,,, debbugs-ug, The Debbugs User Guide}." msgstr "Mehr Informationen finden Sie im @ref{Bug Reference,,, emacs, Handbuch zu GNU Emacs} und in der @ref{Minor Mode,,, debbugs-ug, Bedienungsanleitung zu Debbugs}." #. type: Plain text #: guix-git/doc/contributing.texi:704 msgid "Alternative setups than Emacs may let you work on Guix with a similar development experience and they might work better with the tools you currently use or help you make the transition to Emacs." msgstr "Andere Entwicklungswerkzeuge als Emacs sind zum Entwickeln an Guix ähnlich gut nutzbar und sie gliedern sich vielleicht besser in Ihren bisherigen Werkzeugkasten ein. Vielleicht helfen sie Ihnen auch beim Wechsel auf Emacs." #. type: Plain text #: guix-git/doc/contributing.texi:710 msgid "The options listed below only provide the alternatives to the Emacs based setup, which is the most widely used in the Guix community. If you want to really understand how is the perfect setup for Guix development supposed to work, we encourage you to read the section before this regardless the editor you choose to use." msgstr "Die folgend aufgelisteten Programme sind die Alternativen zu einer Emacs-basierten Programmierumgebung, die die am häufigsten benutzte Wahl unter Guix-Nutzern ist. Wenn Sie wirklich verstehen wollen, wie perfekt eingerichtetes Arbeiten mit Guix aussehen soll, möchten wir dazu anhalten, den vorherigen Abschnitt trotzdem zu lesen, auch wenn Sie sich lieber für einen anderen Editor entscheiden." #. type: subsection #: guix-git/doc/contributing.texi:714 guix-git/doc/contributing.texi:716 #: guix-git/doc/contributing.texi:717 #, no-wrap msgid "Guile Studio" msgstr "Guile Studio" #. type: menuentry #: guix-git/doc/contributing.texi:714 msgid "First step in your transition to Emacs." msgstr "Ein erster Schritt in Richtung Emacs." #. type: subsection #: guix-git/doc/contributing.texi:714 guix-git/doc/contributing.texi:729 #: guix-git/doc/contributing.texi:730 #, no-wrap msgid "Vim and NeoVim" msgstr "Vim und NeoVim" #. type: menuentry #: guix-git/doc/contributing.texi:714 msgid "When you are evil to the root." msgstr "Völlig indiskutabel (Scherz)." #. type: Plain text #: guix-git/doc/contributing.texi:722 msgid "Guile Studio is a pre-configured Emacs with mostly everything you need to start hacking in Guile. If you are not familiar with Emacs it makes the transition easier for you." msgstr "Guile Studio ist ein voreingestellter Emacs mit ziemlich allem, um in Guile loszulegen. Wenn Sie Emacs nicht kennen, ist es ein leichterer Einstieg." #. type: example #: guix-git/doc/contributing.texi:725 #, no-wrap msgid "guix install guile-studio\n" msgstr "guix install guile-studio\n" #. type: Plain text #: guix-git/doc/contributing.texi:728 msgid "Guile Studio comes with Geiser preinstalled and prepared for action." msgstr "In Guile Studio ist Geiser vorinstalliert und einsatzbereit." #. type: Plain text #: guix-git/doc/contributing.texi:735 msgid "Vim (and NeoVim) are also packaged in Guix, just in case you decided to go for the evil path." msgstr "Für Vim (und NeoVim) gibt es Pakete in Guix, falls Sie sich dem Bösen verschrieben haben." #. type: example #: guix-git/doc/contributing.texi:738 #, no-wrap msgid "guix install vim\n" msgstr "guix install vim\n" #. type: Plain text #: guix-git/doc/contributing.texi:746 msgid "If you want to enjoy a similar development experience to that in the perfect setup, you should install several plugins to configure the editor. Vim (and NeoVim) have the equivalent to Paredit, @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}, that will help you with the structural editing of Scheme files (the support for very large files is not great, though)." msgstr "Wenn Sie ähnlich bequem wie in der perfekten Einrichtung arbeiten möchten, empfehlen wir einige Plugins zur Konfiguration des Editors. Vim (und NeoVim) haben ein Gegenstück zu Paredit, nämlich @uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}, mit dem Sie beim Bearbeiten von Scheme-Dateien deren Struktur einhalten können (bei sehr großen Dateien funktioniert es jedoch nicht gut)." #. type: example #: guix-git/doc/contributing.texi:749 #, no-wrap msgid "guix install vim-paredit\n" msgstr "guix install vim-paredit\n" #. type: Plain text #: guix-git/doc/contributing.texi:753 msgid "We also recommend that you run @code{:set autoindent} so that your code is automatically indented as you type." msgstr "Wir raten auch dazu, dass Sie @code{:set autoindent} ausführen, wodurch Ihr Code beim Tippen automatisch eingerückt wird." #. type: Plain text #: guix-git/doc/contributing.texi:757 msgid "For the interaction with Git, @uref{https://www.vim.org/scripts/script.php?script_id=2975, @code{fugitive.vim}} is the most commonly used plugin:" msgstr "Zur Interaktion mit Git ist @uref{https://www.vim.org/scripts/script.php?script_id=2975, @code{fugitive.vim}} das beliebteste Plugin:" #. type: example #: guix-git/doc/contributing.texi:760 #, no-wrap msgid "guix install vim-fugitive\n" msgstr "guix install vim-fugitive\n" #. type: Plain text #: guix-git/doc/contributing.texi:765 msgid "And of course if you want to interact with Guix directly from inside of vim, using the built-in terminal emulator, we have our very own @code{guix.vim} package!" msgstr "Und selbstverständlich haben wir zum direkten Arbeiten mit Guix in Vim mit dem eingebauten Terminal-Emulator unser @code{guix.vim}-Paket im Angebot!" #. type: example #: guix-git/doc/contributing.texi:768 #, no-wrap msgid "guix install vim-guix-vim\n" msgstr "guix install vim-guix-vim\n" #. type: Plain text #: guix-git/doc/contributing.texi:773 msgid "In NeoVim you can even make a similar setup to Geiser using @url{https://conjure.fun/, Conjure} that lets you connect to a running Guile process and inject your code there live (sadly it's not packaged in Guix yet)." msgstr "Für NeoVim können Sie sogar ähnliche Funktionen wie Geiser bekommen mit @url{https://conjure.fun/, Conjure}, wodurch Sie sich mit einem laufenden Guile-Prozess verbinden und Ihren Code dort live einschleusen können (leider fehlt Conjure noch unter den Paketen von Guix)." #. type: cindex #: guix-git/doc/contributing.texi:778 #, no-wrap msgid "structure, of the source tree" msgstr "Struktur, des Quellbaums" #. type: Plain text #: guix-git/doc/contributing.texi:782 msgid "If you're willing to contribute to Guix beyond packages, or if you'd like to learn how it all fits together, this section provides a guided tour in the code base that you may find useful." msgstr "Wenn Sie zu Guix etwas anderes als Pakete beitragen möchten oder um sich besser auszukennen, wie alles zusammenhält, führt Sie dieser Abschnitt im Quellcode herum, was Ihnen helfen kann." #. type: Plain text #: guix-git/doc/contributing.texi:786 msgid "Overall, the Guix source tree contains almost exclusively Guile @dfn{modules}, each of which can be seen as an independent library (@pxref{Modules,,, guile, GNU Guile Reference Manual})." msgstr "Allgemein enthält Guix’ Quellbaum fast ausschließlich @dfn{Guile-Module}, von denen jedes für sich als eine Bibliothek aufgefasst werden kann (siehe @ref{Modules,,, guile, Referenzhandbuch zu GNU Guile})." #. type: Plain text #: guix-git/doc/contributing.texi:791 msgid "The following table gives an overview of the main directories and what they contain. Remember that in Guile, each module name is derived from its file name---e.g., the module in file @file{guix/packages.scm} is called @code{(guix packages)}." msgstr "Die folgende Tabelle bietet einen Überblick über die wichtigsten Verzeichnisse und was jeweils dort untergebracht ist. Denken Sie daran, dass sich in Guile der Modulname aus dem Dateinamen ableitet. Zum Beispiel heißt das Modul in der Datei @file{guix/packages.scm} folglich @code{(guix packages)}." #. type: item #: guix-git/doc/contributing.texi:793 guix-git/doc/contributing.texi:3156 #: guix-git/doc/guix.texi:11219 #, no-wrap msgid "guix" msgstr "guix" #. type: table #: guix-git/doc/contributing.texi:797 msgid "This is the location of core Guix mechanisms. To illustrate what is meant by ``core'', here are a few examples, starting from low-level tools and going towards higher-level tools:" msgstr "An diesem Ort liegen die Mechanismen im Kern von Guix. Um klarzumachen, was wir mit Kern meinen, sind hier ein paar Beispiele, angefangen mit grundlegenden Werkzeugen bis hin zu abstrahierenden, hochsprachlichen Werkzeugen:" #. type: item #: guix-git/doc/contributing.texi:799 #, no-wrap msgid "(guix store)" msgstr "(guix store)" #. type: table #: guix-git/doc/contributing.texi:801 msgid "Connecting to and interacting with the build daemon (@pxref{The Store})." msgstr "Verbinden und kommunizieren mit dem Erstellungs-Daemon (siehe @ref{The Store})." #. type: item #: guix-git/doc/contributing.texi:801 #, no-wrap msgid "(guix derivations)" msgstr "(guix derivations)" #. type: table #: guix-git/doc/contributing.texi:803 msgid "Creating derivations (@pxref{Derivations})." msgstr "Ableitungen erzeugen (siehe @ref{Derivations})." #. type: item #: guix-git/doc/contributing.texi:803 #, no-wrap msgid "(guix gexps)" msgstr "(guix gexps)" #. type: table #: guix-git/doc/contributing.texi:805 msgid "Writing G-expressions (@pxref{G-Expressions})." msgstr "G-Ausdrücke schreiben (siehe @ref{G-Expressions})." #. type: item #: guix-git/doc/contributing.texi:805 #, no-wrap msgid "(guix packages)" msgstr "(guix packages)" #. type: table #: guix-git/doc/contributing.texi:807 msgid "Defining packages and origins (@pxref{package Reference})." msgstr "Pakete und Paketursprünge (@code{origin}) definieren (siehe @ref{package Reference})." #. type: item #: guix-git/doc/contributing.texi:807 #, no-wrap msgid "(guix download)" msgstr "(guix download)" #. type: itemx #: guix-git/doc/contributing.texi:808 #, no-wrap msgid "(guix git-download)" msgstr "(guix git-download)" #. type: table #: guix-git/doc/contributing.texi:811 msgid "The @code{url-fetch} and @code{git-fetch} origin download methods (@pxref{origin Reference})." msgstr "Die Methoden @code{url-fetch} und @code{git-fetch}, mit denen für Paketursprünge etwas heruntergeladen wird (siehe @ref{origin Reference})." #. type: item #: guix-git/doc/contributing.texi:811 #, no-wrap msgid "(guix swh)" msgstr "(guix swh)" #. type: table #: guix-git/doc/contributing.texi:814 msgid "Fetching source code from the @uref{https://archive.softwareheritage.org,Software Heritage archive}." msgstr "Quellcode aus dem @uref{https://archive.softwareheritage.org,Software-Heritage-Archiv} herunterladen." #. type: item #: guix-git/doc/contributing.texi:814 #, no-wrap msgid "(guix search-paths)" msgstr "(guix search-paths)" #. type: table #: guix-git/doc/contributing.texi:816 msgid "Implementing search paths (@pxref{Search Paths})." msgstr "Suchpfade implementieren (siehe @ref{Search Paths})." #. type: item #: guix-git/doc/contributing.texi:816 #, no-wrap msgid "(guix build-system)" msgstr "(guix build-system)" #. type: table #: guix-git/doc/contributing.texi:818 msgid "The build system interface (@pxref{Build Systems})." msgstr "Die Schnittstelle für Erstellungssysteme (siehe @ref{Build Systems})." #. type: item #: guix-git/doc/contributing.texi:818 #, no-wrap msgid "(guix profiles)" msgstr "(guix profiles)" #. type: table #: guix-git/doc/contributing.texi:820 msgid "Implementing profiles." msgstr "Profile implementieren." #. type: cindex #: guix-git/doc/contributing.texi:822 #, no-wrap msgid "build system, directory structure" msgstr "Erstellungssystem, Verzeichnisstruktur" #. type: item #: guix-git/doc/contributing.texi:823 #, no-wrap msgid "guix/build-system" msgstr "guix/build-system" #. type: table #: guix-git/doc/contributing.texi:826 msgid "This directory contains specific build system implementations (@pxref{Build Systems}), such as:" msgstr "Dieses Verzeichnis enthält die einzelnen Implementierungen jedes Erstellungssystems (siehe @ref{Build Systems}), etwa:" #. type: item #: guix-git/doc/contributing.texi:828 #, no-wrap msgid "(guix build-system gnu)" msgstr "(guix build-system gnu)" #. type: table #: guix-git/doc/contributing.texi:830 msgid "the GNU build system;" msgstr "das GNU-Erstellungssystem," #. type: item #: guix-git/doc/contributing.texi:830 #, no-wrap msgid "(guix build-system cmake)" msgstr "(guix build-system cmake)" #. type: table #: guix-git/doc/contributing.texi:832 msgid "the CMake build system;" msgstr "das CMake-Erstellungssystem," #. type: item #: guix-git/doc/contributing.texi:832 #, no-wrap msgid "(guix build-system pyproject)" msgstr "(guix build-system pyproject)" #. type: table #: guix-git/doc/contributing.texi:834 msgid "The Python ``pyproject'' build system." msgstr "für Python das „pyproject“-Erstellungssystem." #. type: item #: guix-git/doc/contributing.texi:836 #, no-wrap msgid "guix/build" msgstr "guix/build" #. type: table #: guix-git/doc/contributing.texi:841 msgid "This contains code generally used on the ``build side'' (@pxref{G-Expressions, strata of code}). This includes code used to build packages or other operating system components, as well as utilities:" msgstr "Hier ist Code zu finden, der allgemein auf der „Erstellungsseite“ verwendet wird (siehe @ref{G-Expressions, Schichten von Code}). Dazu gehört Code zum Erstellen von Paketen oder anderen Bestandteilen von Betriebssystemen sowie Werkzeuge:" #. type: item #: guix-git/doc/contributing.texi:843 #, no-wrap msgid "(guix build utils)" msgstr "(guix build utils)" #. type: table #: guix-git/doc/contributing.texi:845 msgid "Utilities for package definitions and more (@pxref{Build Utilities})." msgstr "Werkzeuge, die in Paketdefinitionen und mehr helfen können (siehe @ref{Build Utilities})." #. type: item #: guix-git/doc/contributing.texi:845 #, no-wrap msgid "(guix build gnu-build-system)" msgstr "(guix build gnu-build-system)" #. type: itemx #: guix-git/doc/contributing.texi:846 #, no-wrap msgid "(guix build cmake-build-system)" msgstr "(guix build cmake-build-system)" #. type: itemx #: guix-git/doc/contributing.texi:847 #, no-wrap msgid "(guix build pyproject-build-system)" msgstr "(guix build pyproject-build-system)" #. type: table #: guix-git/doc/contributing.texi:850 msgid "Implementation of build systems, and in particular definition of their build phases (@pxref{Build Phases})." msgstr "Implementierungen von Erstellungssystemen, insbesondere die Definition der Erstellungsphasen (siehe @ref{Build Phases})." #. type: item #: guix-git/doc/contributing.texi:850 #, no-wrap msgid "(guix build syscalls)" msgstr "(guix build syscalls)" #. type: table #: guix-git/doc/contributing.texi:852 msgid "Interface to the C library and to Linux system calls." msgstr "Schnittstelle zur C-Bibliothek und zu Linux-Betriebssystemaufrufen." #. type: cindex #: guix-git/doc/contributing.texi:854 #, no-wrap msgid "command-line tools, as Guile modules" msgstr "Befehlszeilenwerkzeuge, als Guile-Module" #. type: cindex #: guix-git/doc/contributing.texi:855 #, no-wrap msgid "command modules" msgstr "Befehlsmodule" #. type: item #: guix-git/doc/contributing.texi:856 #, no-wrap msgid "guix/scripts" msgstr "guix/scripts" #. type: table #: guix-git/doc/contributing.texi:861 msgid "This contains modules corresponding to @command{guix} sub-commands. For example, the @code{(guix scripts shell)} module exports the @code{guix-shell} procedure, which directly corresponds to the @command{guix shell} command (@pxref{Invoking guix shell})." msgstr "Hierin sind Module enthalten, die Unterbefehlen des @command{guix}-Befehls entsprechen. Zum Beispiel exportiert das Modul @code{(guix scripts shell)} die Prozedur @code{guix-shell}, die direkt dem Befehl @command{guix shell} entspricht (siehe @ref{Invoking guix shell})." #. type: cindex #: guix-git/doc/contributing.texi:862 #, no-wrap msgid "importer modules" msgstr "Importer-Module" #. type: item #: guix-git/doc/contributing.texi:863 #, no-wrap msgid "guix/import" msgstr "guix/import" #. type: table #: guix-git/doc/contributing.texi:868 msgid "This contains supporting code for the importers and updaters (@pxref{Invoking guix import}, and @pxref{Invoking guix refresh}). For example, @code{(guix import pypi)} defines the interface to PyPI, which is used by the @code{guix import pypi} command." msgstr "Hierin ist unterstützender Code für die Importer und Aktualisierungsprogramme enthalten (siehe @ref{Invoking guix import} und @ref{Invoking guix refresh}). Zum Beispiel definiert @code{(guix import pypi)} die Schnittstelle zu PyPI, die der Befehl @code{guix import pypi} benutzt." #. type: Plain text #: guix-git/doc/contributing.texi:883 msgid "The directories we have seen so far all live under @file{guix/}. The other important place is the @file{gnu/} directory, which contains primarily package definitions as well as libraries and tools for Guix System (@pxref{System Configuration}) and Guix Home (@pxref{Home Configuration}), all of which build upon functionality provided by @code{(guix @dots{})} modules@footnote{For this reason, @code{(guix @dots{})} modules must generally not depend on @code{(gnu @dots{})} modules, with notable exceptions: @code{(guix build-system @dots{})} modules may look up packages at run time---e.g., @code{(guix build-system cmake)} needs to access the @code{cmake} variable at run time---, @code{(guix scripts @dots{})} often rely on @code{(gnu @dots{})} modules, and the same goes for some of the @code{(guix import @dots{})} modules.}." msgstr "Die bisher vorgestellten Verzeichnisse befinden sich allesamt in @file{guix/}. Der andere wichtige Platz ist das Verzeichnis @file{gnu/}, an dem in erster Linie Paketdefinitionen sowie Bibliotheken und Werkzeuge für Guix System (siehe @ref{System Configuration}) und Guix Home (siehe @ref{Home Configuration}) liegen, die alle auf von @code{(guix …)}-Modulen verfügbar gemachten Funktionalitäten aufbauen@footnote{Aus diesem Grund dürfen @code{(guix …)}-Module allgemein @emph{nicht} von @code{(gnu …)}-Modulen abhängen, mit nennenswerten Ausnahmen: @code{(guix build-system …)}-Module dürfen Pakete zur Laufzeit auflösen, z.B.@: benötigt @code{(guix build-system cmake)} zur Laufzeit Zugriff auf die Variable @code{cmake}, und @code{(guix scripts …)} brauchen oft @code{(gnu …)}-Module, genau wie manche @code{(guix import …)}-Module.}." #. type: cindex #: guix-git/doc/contributing.texi:885 #, no-wrap msgid "package modules" msgstr "Paketmodule" #. type: item #: guix-git/doc/contributing.texi:886 #, no-wrap msgid "gnu/packages" msgstr "gnu/packages" #. type: table #: guix-git/doc/contributing.texi:890 msgid "This is by far the most crowded directory of the source tree: it contains @dfn{package modules} that export package definitions (@pxref{Package Modules}). A few examples:" msgstr "In diesem Verzeichnis kommen bei weitem die meisten Module zusammen, nämlich sind hier @dfn{Paketmodule}, die Paketdefinitionen exportieren (siehe @ref{Package Modules}). Einige Beispiele:" #. type: item #: guix-git/doc/contributing.texi:892 #, no-wrap msgid "(gnu packages base)" msgstr "(gnu packages base)" #. type: table #: guix-git/doc/contributing.texi:895 msgid "Module providing ``base'' packages: @code{glibc}, @code{coreutils}, @code{grep}, etc." msgstr "Module, die grundlegende Pakete bereitstellen: @code{glibc}, @code{coreutils}, @code{grep}, etc." #. type: item #: guix-git/doc/contributing.texi:895 #, no-wrap msgid "(gnu packages guile)" msgstr "(gnu packages guile)" #. type: table #: guix-git/doc/contributing.texi:897 msgid "Guile and core Guile packages." msgstr "Guile und zentrale Guile-Pakete." #. type: item #: guix-git/doc/contributing.texi:897 #, no-wrap msgid "(gnu packages linux)" msgstr "(gnu packages linux)" #. type: table #: guix-git/doc/contributing.texi:899 msgid "The Linux-libre kernel and related packages." msgstr "Der Linux-libre-Kernel und damit zusammenhängende Pakete." #. type: item #: guix-git/doc/contributing.texi:899 #, no-wrap msgid "(gnu packages python)" msgstr "(gnu packages python)" #. type: table #: guix-git/doc/contributing.texi:901 msgid "Python and core Python packages." msgstr "Python und zentrale Python-Pakete." #. type: item #: guix-git/doc/contributing.texi:901 #, no-wrap msgid "(gnu packages python-xyz)" msgstr "(gnu packages python-xyz)" #. type: table #: guix-git/doc/contributing.texi:903 msgid "Miscellaneous Python packages (we were not very creative)." msgstr "Sonstige Python-Pakete (wir waren wenig einfallsreich)." #. type: table #: guix-git/doc/contributing.texi:908 msgid "In any case, you can jump to a package definition using @command{guix edit} (@pxref{Invoking guix edit}) and view its location with @command{guix show} (@pxref{Invoking guix package})." msgstr "Jedenfalls können Sie direkt zu beliebigen Paketdefinitionen navigieren, indem Sie @command{guix edit} benutzen (siehe @ref{Invoking guix edit}), und Sie können die Stelle mit einem Paket finden, indem Sie @command{guix show} aufrufen (siehe @ref{Invoking guix package})." #. type: findex #: guix-git/doc/contributing.texi:909 #, no-wrap msgid "search-patches" msgstr "search-patches" #. type: item #: guix-git/doc/contributing.texi:910 #, no-wrap msgid "gnu/packages/patches" msgstr "gnu/packages/patches" #. type: table #: guix-git/doc/contributing.texi:913 msgid "This directory contains patches applied against packages and obtained using the @code{search-patches} procedure." msgstr "In diesem Verzeichnis befinden sich Patches, die auf Pakete angewandt werden. Auf sie wird mit der Prozedur @code{search-patches} Bezug genommen." #. type: item #: guix-git/doc/contributing.texi:914 #, no-wrap msgid "gnu/services" msgstr "gnu/services" #. type: table #: guix-git/doc/contributing.texi:918 msgid "This contains service definitions, primarily for Guix System (@pxref{Services}) but some of them are adapted and reused for Guix Home as we will see below. Examples:" msgstr "In diesem sind Dienstdefinitionen, vor allem für Guix System (siehe @ref{Services}), wobei manche auch für Guix Home angepasst und wiederverwendet werden, wie wir weiter unten sehen werden. Beispiele:" #. type: item #: guix-git/doc/contributing.texi:920 #, no-wrap msgid "(gnu services)" msgstr "(gnu services)" #. type: table #: guix-git/doc/contributing.texi:923 msgid "The service framework itself, which defines the service and service type data types (@pxref{Service Composition})." msgstr "Der eigentliche Rahmen für Dienste. Dazu werden die Datentypen für Dienst und Diensttyp definiert (siehe @ref{Service Composition})." #. type: item #: guix-git/doc/contributing.texi:923 #, no-wrap msgid "(gnu services base)" msgstr "(gnu services base)" #. type: table #: guix-git/doc/contributing.texi:925 msgid "``Base'' services (@pxref{Base Services})." msgstr "Grundlegende Dienste (siehe @ref{Base Services})." #. type: item #: guix-git/doc/contributing.texi:925 #, no-wrap msgid "(gnu services desktop)" msgstr "(gnu services desktop)" #. type: table #: guix-git/doc/contributing.texi:927 msgid "``Desktop'' services (@pxref{Desktop Services})." msgstr "„Desktop“-Dienste (siehe @ref{Desktop Services})." #. type: item #: guix-git/doc/contributing.texi:927 #, no-wrap msgid "(gnu services shepherd)" msgstr "(gnu services shepherd)" #. type: table #: guix-git/doc/contributing.texi:929 msgid "Support for Shepherd services (@pxref{Shepherd Services})." msgstr "Unterstützung für Shepherd-Dienste (siehe @ref{Shepherd Services})." #. type: table #: guix-git/doc/contributing.texi:934 msgid "You can jump to a service definition using @command{guix system edit} and view its location with @command{guix system search} (@pxref{Invoking guix system})." msgstr "Sie können direkt zu Dienstdefinitionen navigieren, indem Sie @command{guix system edit} benutzen, und Sie können die Stelle mit einem Dienst finden, indem Sie @command{guix system search} aufrufen (siehe @ref{Invoking guix system})." #. type: item #: guix-git/doc/contributing.texi:935 #, no-wrap msgid "gnu/system" msgstr "gnu/system" #. type: table #: guix-git/doc/contributing.texi:937 msgid "These are core Guix System modules, such as:" msgstr "Dort sind für Guix System zentrale Module wie:" #. type: item #: guix-git/doc/contributing.texi:939 #, no-wrap msgid "(gnu system)" msgstr "(gnu system)" #. type: table #: guix-git/doc/contributing.texi:941 msgid "Defines @code{operating-system} (@pxref{operating-system Reference})." msgstr "Definiert @code{operating-system} (siehe @ref{operating-system Reference})." #. type: item #: guix-git/doc/contributing.texi:941 #, no-wrap msgid "(gnu system file-systems)" msgstr "(gnu system file-systems)" #. type: table #: guix-git/doc/contributing.texi:943 msgid "Defines @code{file-system} (@pxref{File Systems})." msgstr "Definiert @code{file-system} (siehe @ref{File Systems})." #. type: item #: guix-git/doc/contributing.texi:943 #, no-wrap msgid "(gnu system mapped-devices)" msgstr "(gnu system mapped-devices)" #. type: table #: guix-git/doc/contributing.texi:945 msgid "Defines @code{mapped-device} (@pxref{Mapped Devices})." msgstr "Definiert @code{mapped-device} (siehe @ref{Mapped Devices})." #. type: item #: guix-git/doc/contributing.texi:947 #, no-wrap msgid "gnu/build" msgstr "gnu/build" #. type: table #: guix-git/doc/contributing.texi:951 msgid "These are modules that are either used on the ``build side'' when building operating systems or packages, or at run time by operating systems." msgstr "Diese Module werden entweder auf „Erstellungsseite“ beim Erstellen von Betriebssystemen oder Paketen benutzt oder zur Laufzeit durch Betriebssysteme." #. type: item #: guix-git/doc/contributing.texi:953 #, no-wrap msgid "(gnu build accounts)" msgstr "(gnu build accounts)" #. type: table #: guix-git/doc/contributing.texi:956 msgid "Creating @file{/etc/passwd}, @file{/etc/shadow}, etc. (@pxref{User Accounts})." msgstr "Erzeugen von @file{/etc/passwd}, @file{/etc/shadow}, etc.@: (siehe @ref{User Accounts})." #. type: item #: guix-git/doc/contributing.texi:956 #, no-wrap msgid "(gnu build activation)" msgstr "(gnu build activation)" #. type: table #: guix-git/doc/contributing.texi:958 msgid "Activating an operating system at boot time or reconfiguration time." msgstr "Ein Betriebssystem aktivieren, wenn der Rechner gestartet oder rekonfiguriert wird." #. type: item #: guix-git/doc/contributing.texi:958 #, no-wrap msgid "(gnu build file-systems)" msgstr "(gnu build file-systems)" #. type: table #: guix-git/doc/contributing.texi:960 msgid "Searching, checking, and mounting file systems." msgstr "Dateisysteme suchen, prüfen und einbinden." #. type: item #: guix-git/doc/contributing.texi:960 #, no-wrap msgid "(gnu build linux-boot)" msgstr "(gnu build linux-boot)" #. type: itemx #: guix-git/doc/contributing.texi:961 #, no-wrap msgid "(gnu build hurd-boot)" msgstr "(gnu build hurd-boot)" #. type: table #: guix-git/doc/contributing.texi:963 msgid "Booting GNU/Linux and GNU/Hurd operating systems." msgstr "Booten von GNU/Linux- und GNU/Hurd-Betriebssystemen." #. type: item #: guix-git/doc/contributing.texi:963 #, no-wrap msgid "(gnu build linux-initrd)" msgstr "(gnu build linux-initrd)" #. type: table #: guix-git/doc/contributing.texi:965 msgid "Creating a Linux initial RAM disk (@pxref{Initial RAM Disk})." msgstr "Erzeugen einer initialen RAM-Disk für Linux (siehe @ref{Initial RAM Disk})." #. type: item #: guix-git/doc/contributing.texi:967 #, no-wrap msgid "gnu/home" msgstr "gnu/home" #. type: table #: guix-git/doc/contributing.texi:970 msgid "This contains all things Guix Home (@pxref{Home Configuration}); examples:" msgstr "Hier ist alles, was mit Guix Home zu tun hat (siehe @ref{Home Configuration}). Beispiele:" #. type: item #: guix-git/doc/contributing.texi:972 #, no-wrap msgid "(gnu home services)" msgstr "(gnu home services)" #. type: table #: guix-git/doc/contributing.texi:974 msgid "Core services such as @code{home-files-service-type}." msgstr "Dienste im Kern von Guix Home wie @code{home-files-service-type}." #. type: item #: guix-git/doc/contributing.texi:974 #, no-wrap msgid "(gnu home services ssh)" msgstr "(gnu home services ssh)" #. type: table #: guix-git/doc/contributing.texi:976 msgid "SSH-related services (@pxref{Secure Shell})." msgstr "Mit SSH zu tun habende Dienste (siehe @ref{Secure Shell})." #. type: item #: guix-git/doc/contributing.texi:978 #, no-wrap msgid "gnu/installer" msgstr "gnu/installer" #. type: table #: guix-git/doc/contributing.texi:981 msgid "This contains the text-mode graphical system installer (@pxref{Guided Graphical Installation})." msgstr "Dies enthält das textuelle grafische Systeminstallationsprogramm (siehe @ref{Guided Graphical Installation})." #. type: item #: guix-git/doc/contributing.texi:982 #, no-wrap msgid "gnu/machine" msgstr "gnu/machine" #. type: table #: guix-git/doc/contributing.texi:985 msgid "These are the @dfn{machine abstractions} used by @command{guix deploy} (@pxref{Invoking guix deploy})." msgstr "Dies sind die @dfn{Maschinenabstraktionen}, die von @command{guix deploy} benutzt werden (siehe @ref{Invoking guix deploy})." #. type: item #: guix-git/doc/contributing.texi:986 #, no-wrap msgid "gnu/tests" msgstr "gnu/tests" #. type: table #: guix-git/doc/contributing.texi:989 msgid "This contains system tests---tests that spawn virtual machines to check that system services work as expected (@pxref{Running the Test Suite})." msgstr "Hier sind Systemtests enthalten, also Tests, die virtuelle Maschinen anlegen, mit denen Sie prüfen, dass sich Systemdienste wie erwartet verhalten (siehe @ref{Running the Test Suite})." #. type: Plain text #: guix-git/doc/contributing.texi:993 msgid "Last, there's also a few directories that contain files that are @emph{not} Guile modules:" msgstr "Zu guter Letzt gibt es noch ein paar Verzeichnisse, in denen Dateien zu finden sind, die @emph{keine} Guile-Module sind:" #. type: item #: guix-git/doc/contributing.texi:995 #, no-wrap msgid "nix" msgstr "nix" #. type: table #: guix-git/doc/contributing.texi:998 msgid "This is the C++ implementation of @command{guix-daemon}, inherited from Nix (@pxref{Invoking guix-daemon})." msgstr "Dies ist die in C++ geschriebene Implementierung des @command{guix-daemon}, die wir von Nix geerbt haben (siehe @ref{Invoking guix-daemon})." #. type: item #: guix-git/doc/contributing.texi:999 #, no-wrap msgid "tests" msgstr "tests" #. type: table #: guix-git/doc/contributing.texi:1003 msgid "These are unit tests, each file corresponding more or less to one module, in particular @code{(guix @dots{})} modules (@pxref{Running the Test Suite})." msgstr "Hier sind Modultests („Unit Tests“), wobei jede Datei ungefähr einem Modul entspricht, insbesondere bei @code{(guix …)}-Modulen (siehe @ref{Running the Test Suite})." #. type: item #: guix-git/doc/contributing.texi:1004 #, no-wrap msgid "doc" msgstr "doc" #. type: table #: guix-git/doc/contributing.texi:1008 msgid "This is the documentation in the form of Texinfo files: this manual and the Cookbook. @xref{Writing a Texinfo File,,, texinfo, GNU Texinfo}, for information on Texinfo markup language." msgstr "Dort befindet sich die Dokumentation in Form von Texinfo-Dateien, d.h.@: dieses Handbuch hier und das Kochbuch. Siehe @ref{Writing a Texinfo File,,, texinfo, GNU Texinfo} für Informationen zur Texinfo-Auszeichnungssprache." #. type: item #: guix-git/doc/contributing.texi:1009 #, no-wrap msgid "po" msgstr "po" #. type: table #: guix-git/doc/contributing.texi:1014 msgid "This is the location of translations of Guix itself, of package synopses and descriptions, of the manual, and of the cookbook. Note that @file{.po} files that live here are pulled directly from Weblate (@pxref{Translating Guix})." msgstr "An diesem Ort sind die Übersetzungen von Guix selbst, von Zusammenfassungen und Beschreibungen der Pakete, vom Handbuch und vom Kochbuch. Beachten Sie, dass die @file{.po}-Dateien hier direkt von Weblate heruntergeladen werden (siehe @ref{Translating Guix})." #. type: item #: guix-git/doc/contributing.texi:1015 #, no-wrap msgid "etc" msgstr "etc" #. type: table #: guix-git/doc/contributing.texi:1018 msgid "Miscellaneous files: shell completions, support for systemd and other init systems, Git hooks, etc." msgstr "Verschiedene Dateien: Shell-Komplettierungen, Dateien zur Unterstützung von systemd und anderen init-Systemen, Git-Hooks usw." #. type: Plain text #: guix-git/doc/contributing.texi:1025 msgid "With all this, a fair chunk of your operating system is at your fingertips! Beyond @command{grep} and @command{git grep}, @pxref{The Perfect Setup} on how to navigate code from your editor, and @pxref{Using Guix Interactively} for information on how to use Scheme modules interactively. Enjoy!" msgstr "Mit diesem Wissen sind Sie in der Lage, ein beachtliches Stück Ihres Betriebssystems anzupassen! Siehe neben @command{grep} und @command{git grep} auch den Abschnitt @ref{The Perfect Setup}, um zu lernen, wie Sie mit Ihrem Editor den Code anpassen, und siehe @ref{Using Guix Interactively}, um zu erfahren, wie Sie mit Scheme-Modulen interaktiv umgehen. Ein Genuss!" #. type: cindex #: guix-git/doc/contributing.texi:1029 #, no-wrap msgid "packages, creating" msgstr "Pakete definieren" #. type: Plain text #: guix-git/doc/contributing.texi:1033 msgid "The GNU distribution is nascent and may well lack some of your favorite packages. This section describes how you can help make the distribution grow." msgstr "Die GNU-Distribution ist noch sehr jung und einige Ihrer Lieblingspakete könnten noch fehlen. Dieser Abschnitt beschreibt, wie Sie dabei helfen können, die Distribution wachsen zu lassen." #. type: Plain text #: guix-git/doc/contributing.texi:1041 msgid "Free software packages are usually distributed in the form of @dfn{source code tarballs}---typically @file{tar.gz} files that contain all the source files. Adding a package to the distribution means essentially two things: adding a @dfn{recipe} that describes how to build the package, including a list of other packages required to build it, and adding @dfn{package metadata} along with that recipe, such as a description and licensing information." msgstr "Pakete mit freier Software werden normalerweise in Form von @dfn{Tarballs mit dem Quellcode} angeboten@tie{}– typischerweise in @file{tar.gz}-Archivdateien, in denen alle Quelldateien enthalten sind. Ein Paket zur Distribution hinzuzufügen, bedeutet also zweierlei Dinge: Zum einen fügt man ein @dfn{Rezept} ein, das beschreibt, wie das Paket erstellt werden kann, einschließlich einer Liste von anderen Paketen, die für diese Erstellung gebraucht werden, zum anderen fügt man @dfn{Paketmetadaten} zum Rezept hinzu, wie zum Beispiel eine Beschreibung und Lizenzinformationen." #. type: Plain text #: guix-git/doc/contributing.texi:1050 msgid "In Guix all this information is embodied in @dfn{package definitions}. Package definitions provide a high-level view of the package. They are written using the syntax of the Scheme programming language; in fact, for each package we define a variable bound to the package definition, and export that variable from a module (@pxref{Package Modules}). However, in-depth Scheme knowledge is @emph{not} a prerequisite for creating packages. For more information on package definitions, @pxref{Defining Packages}." msgstr "In Guix sind all diese Informationen ein Teil der @dfn{Paketdefinitionen}. In Paketdefinitionen hat man eine abstrahierte, hochsprachliche Sicht auf das Paket. Sie werden in der Syntax der Scheme-Programmiersprache verfasst; tatsächlich definieren wir für jedes Paket eine Variable und binden diese an dessen Definition, um die Variable anschließend aus einem Modul heraus zu exportieren (siehe @ref{Package Modules}). Allerdings ist @emph{kein} tiefgehendes Wissen über Scheme erforderlich, um Pakete zu erstellen. Mehr Informationen über Paketdefinitionen finden Sie im Abschnitt @ref{Defining Packages}." #. type: Plain text #: guix-git/doc/contributing.texi:1056 msgid "Once a package definition is in place, stored in a file in the Guix source tree, it can be tested using the @command{guix build} command (@pxref{Invoking guix build}). For example, assuming the new package is called @code{gnew}, you may run this command from the Guix build tree (@pxref{Running Guix Before It Is Installed}):" msgstr "Eine fertige Paketdefinition kann, nachdem sie in eine Datei im Quell-Verzeichnisbaum von Guix eingesetzt wurde, mit Hilfe des Befehls @command{guix build} getestet werden (siehe @ref{Invoking guix build}). Wenn das Paket zum Beispiel den Namen @code{gnew} trägt, können Sie folgenden Befehl aus dem Erstellungs-Verzeichnisbaum von Guix heraus ausführen (siehe @ref{Running Guix Before It Is Installed}):" #. type: example #: guix-git/doc/contributing.texi:1059 #, no-wrap msgid "./pre-inst-env guix build gnew --keep-failed\n" msgstr "./pre-inst-env guix build gnew --keep-failed\n" #. type: Plain text #: guix-git/doc/contributing.texi:1065 msgid "Using @code{--keep-failed} makes it easier to debug build failures since it provides access to the failed build tree. Another useful command-line option when debugging is @code{--log-file}, to access the build log." msgstr "Wenn Sie @code{--keep-failed} benutzen, ist es leichter, fehlgeschlagene Erstellungen zu untersuchen, weil dann der Verzeichnisbaum der fehlgeschlagenen Erstellung zugänglich bleibt. Eine andere nützliche Befehlszeilenoption bei der Fehlersuche ist @code{--log-file}, womit das Erstellungsprotokoll eingesehen werden kann." #. type: Plain text #: guix-git/doc/contributing.texi:1070 msgid "If the package is unknown to the @command{guix} command, it may be that the source file contains a syntax error, or lacks a @code{define-public} clause to export the package variable. To figure it out, you may load the module from Guile to get more information about the actual error:" msgstr "Wenn der @command{guix}-Befehl das Paket nicht erkennt, kann es daran liegen, dass die Quelldatei einen Syntaxfehler hat oder ihr eine @code{define-public}-Klausel fehlt, die die Paketvariable exportiert. Um das herauszufinden, können Sie das Modul aus Guile heraus laden, um mehr Informationen über den tatsächlichen Fehler zu bekommen:" #. type: example #: guix-git/doc/contributing.texi:1073 #, no-wrap msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n" msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n" #. type: Plain text #: guix-git/doc/contributing.texi:1080 msgid "Once your package builds correctly, please send us a patch (@pxref{Submitting Patches}). Well, if you need help, we will be happy to help you too. Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by @url{https://@value{SUBSTITUTE-SERVER-1}, our continuous integration system}." msgstr "Sobald Ihr Paket erfolgreich erstellt werden kann, schicken Sie uns bitte einen Patch (siehe @ref{Submitting Patches}). Wenn Sie dabei Hilfe brauchen sollten, helfen wir gerne. Ab dem Zeitpunkt, zu dem der Patch als Commit ins Guix-Repository eingepflegt wurde, wird das neue Paket automatisch durch @url{https://@value{SUBSTITUTE-SERVER-1}, unser System zur Kontinuierlichen Integration} auf allen unterstützten Plattformen erstellt." #. type: cindex #: guix-git/doc/contributing.texi:1081 #, no-wrap msgid "substituter" msgstr "Substituierer" #. type: Plain text #: guix-git/doc/contributing.texi:1088 msgid "Users can obtain the new package definition simply by running @command{guix pull} (@pxref{Invoking guix pull}). When @code{@value{SUBSTITUTE-SERVER-1}} is done building the package, installing the package automatically downloads binaries from there (@pxref{Substitutes}). The only place where human intervention is needed is to review and apply the patch." msgstr "Benutzern steht die neue Paketdefinition zur Verfügung, nachdem sie das nächste Mal @command{guix pull} ausgeführt haben (siehe @ref{Invoking guix pull}). Wenn @code{@value{SUBSTITUTE-SERVER-1}} selbst damit fertig ist, das Paket zu erstellen, werden bei der Installation automatisch Binärdateien von dort heruntergeladen (siehe @ref{Substitutes}). Menschliches Eingreifen muss nur stattfinden, um den Patch zu überprüfen und anzuwenden." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1106 #: guix-git/doc/contributing.texi:1107 #, no-wrap msgid "Software Freedom" msgstr "Software-Freiheit" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "What may go into the distribution." msgstr "Was in die Distribution aufgenommen werden darf." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1134 #: guix-git/doc/contributing.texi:1135 #, no-wrap msgid "Package Naming" msgstr "Paketbenennung" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "What's in a name?" msgstr "Was macht einen Namen aus?" #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1167 #: guix-git/doc/contributing.texi:1168 #, no-wrap msgid "Version Numbers" msgstr "Versionsnummern" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "When the name is not enough." msgstr "Wenn der Name noch nicht genug ist." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1274 #: guix-git/doc/contributing.texi:1275 #, no-wrap msgid "Synopses and Descriptions" msgstr "Zusammenfassungen und Beschreibungen" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Helping users find the right package." msgstr "Den Nutzern helfen, das richtige Paket zu finden." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1353 #: guix-git/doc/contributing.texi:1354 #, no-wrap msgid "Snippets versus Phases" msgstr "„Snippets“ oder Phasen" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Whether to use a snippet, or a build phase." msgstr "Benutzt man Code-Schnipsel oder eine Erstellungsphase?" #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1368 #: guix-git/doc/contributing.texi:1369 #, no-wrap msgid "Cyclic Module Dependencies" msgstr "Zyklische Modulabhängigkeiten" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Going full circle." msgstr "Sich selbst erkennen lassen." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1423 #: guix-git/doc/contributing.texi:1424 guix-git/doc/guix.texi:1882 #, no-wrap msgid "Emacs Packages" msgstr "Emacs-Pakete" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Your Elisp fix." msgstr "Für Ihren Elisp-Bedarf." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1463 #: guix-git/doc/contributing.texi:1464 #, no-wrap msgid "Python Modules" msgstr "Python-Module" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "A touch of British comedy." msgstr "Ein Touch britischer Comedy." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1558 #: guix-git/doc/contributing.texi:1559 #, no-wrap msgid "Perl Modules" msgstr "Perl-Module" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Little pearls." msgstr "Kleine Perlen." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1574 #: guix-git/doc/contributing.texi:1575 #, no-wrap msgid "Java Packages" msgstr "Java-Pakete" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Coffee break." msgstr "Kaffeepause." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1594 #: guix-git/doc/contributing.texi:1595 #, no-wrap msgid "Rust Crates" msgstr "Rust-Crates" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Beware of oxidation." msgstr "Umgang mit Oxidation." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1628 #: guix-git/doc/contributing.texi:1629 #, no-wrap msgid "Elm Packages" msgstr "Elm-Pakete" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Trees of browser code" msgstr "Bäume aus Browser-Code." #. type: subsection #: guix-git/doc/contributing.texi:1104 guix-git/doc/contributing.texi:1709 #: guix-git/doc/contributing.texi:1710 #, no-wrap msgid "Fonts" msgstr "Schriftarten" #. type: menuentry #: guix-git/doc/contributing.texi:1104 msgid "Fond of fonts." msgstr "Schriften verschriftlicht." #. type: cindex #: guix-git/doc/contributing.texi:1110 #, no-wrap msgid "free software" msgstr "freie Software" #. type: Plain text #: guix-git/doc/contributing.texi:1118 msgid "The GNU operating system has been developed so that users can have freedom in their computing. GNU is @dfn{free software}, meaning that users have the @url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to run the program, to study and change the program in source code form, to redistribute exact copies, and to distribute modified versions. Packages found in the GNU distribution provide only software that conveys these four freedoms." msgstr "Das GNU-Betriebssystem wurde entwickelt, um Menschen Freiheit zu ermöglichen, wie sie ihre Rechengeräte benutzen. GNU ist @dfn{freie Software}, was bedeutet, dass Benutzer die @url{https://www.gnu.org/philosophy/free-sw.de.html,vier wesentlichen Freiheiten} haben: das Programm auszuführen, es zu untersuchen, das Programm in Form seines Quellcodes anzupassen und exakte Kopien ebenso wie modifizierte Versionen davon an andere weiterzugeben. Die Pakete, die Sie in der GNU-Distribution finden, stellen ausschließlich solche Software zur Verfügung, die Ihnen diese vier Freiheiten gewährt." #. type: Plain text #: guix-git/doc/contributing.texi:1124 msgid "In addition, the GNU distribution follow the @url{https://www.gnu.org/distros/free-system-distribution-guidelines.html,free software distribution guidelines}. Among other things, these guidelines reject non-free firmware, recommendations of non-free software, and discuss ways to deal with trademarks and patents." msgstr "Außerdem befolgt die GNU-Distribution die @url{https://www.gnu.org/distros/free-system-distribution-guidelines.de.html,Richtlinien für freie Systemverteilungen}. Unter anderem werden unfreie Firmware sowie Empfehlungen von unfreier Software abgelehnt und Möglichkeiten zum Umgang mit Markenzeichen und Patenten werden diskutiert." #. type: Plain text #: guix-git/doc/contributing.texi:1132 msgid "Some otherwise free upstream package sources contain a small and optional subset that violates the above guidelines, for instance because this subset is itself non-free code. When that happens, the offending items are removed with appropriate patches or code snippets in the @code{origin} form of the package (@pxref{Defining Packages}). This way, @code{guix build --source} returns the ``freed'' source rather than the unmodified upstream source." msgstr "Ansonsten freier Paketquellcode von manchen Anbietern enthält einen kleinen und optionalen Teil, der diese Richtlinien verletzt. Zum Beispiel kann dieser Teil selbst unfreier Code sein. Wenn das vorkommt, wird der sie verletzende Teil mit angemessenen Patches oder Code-Schnipseln innerhalb der @code{origin}-Form des Pakets entfernt (siehe @ref{Defining Packages}). Dadurch liefert Ihnen @code{guix build --source} nur den „befreiten“ Quellcode und nicht den unmodifizierten Quellcode des Anbieters." #. type: cindex #: guix-git/doc/contributing.texi:1137 #, no-wrap msgid "package name" msgstr "Paketname" #. type: Plain text #: guix-git/doc/contributing.texi:1145 msgid "A package actually has two names associated with it. First, there is the name of the @emph{Scheme variable}, the one following @code{define-public}. By this name, the package can be made known in the Scheme code, for instance as input to another package. Second, there is the string in the @code{name} field of a package definition. This name is used by package management commands such as @command{guix package} and @command{guix build}." msgstr "Tatsächlich sind mit jedem Paket zwei Namen assoziiert: Zum einen gibt es den Namen der @emph{Scheme-Variablen}, der direkt nach @code{define-public} im Code steht. Mit diesem Namen kann das Paket im Scheme-Code nutzbar gemacht und zum Beispiel als Eingabe eines anderen Pakets benannt werden. Zum anderen gibt es die Zeichenkette im @code{name}-Feld einer Paketdefinition. Dieser Name wird von Paketverwaltungsbefehlen wie @command{guix package} und @command{guix build} benutzt." #. type: Plain text #: guix-git/doc/contributing.texi:1150 msgid "Both are usually the same and correspond to the lowercase conversion of the project name chosen upstream, with underscores replaced with hyphens. For instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-net}." msgstr "Meistens sind die beiden identisch und ergeben sich aus einer Umwandlung des vom Anbieter verwendeten Projektnamens in Kleinbuchstaben, bei der Unterstriche durch Bindestriche ersetzt werden. Zum Beispiel wird GNUnet unter dem Paketnamen @code{gnunet} angeboten und SDL_net als @code{sdl-net}." #. type: Plain text #: guix-git/doc/contributing.texi:1158 msgid "A noteworthy exception to this rule is when the project name is only a single character, or if an older maintained project with the same name already exists---regardless of whether it has already been packaged for Guix. Use common sense to make such names unambiguous and meaningful. For example, Guix's package for the shell called ``s'' upstream is @code{s-shell} and @emph{not} @code{s}. Feel free to ask your fellow hackers for inspiration." msgstr "Es gibt eine nennenswerte Ausnahme zu dieser Regel, nämlich wenn der Projektname nur ein einzelnes Zeichen ist oder auch wenn es bereits ein älteres, aktives Projekt mit demselben Namen gibt, egal ob es schon für Guix verpackt wurde. Lassen Sie Ihren gesunden Menschenverstand einen eindeutigen und sprechenden Namen auswählen. Zum Beispiel wurde die Shell, die bei ihrem Anbieter „s“ heißt, @code{s-shell} genannt und @emph{nicht} @code{s}. Sie sind eingeladen, Ihre Hackerkollegen um Inspiration zu bitten." #. type: Plain text #: guix-git/doc/contributing.texi:1163 msgid "We do not add @code{lib} prefixes for library packages, unless these are already part of the official project name. But @pxref{Python Modules} and @ref{Perl Modules} for special rules concerning modules for the Python and Perl languages." msgstr "An Bibliothekspakete hängen wir vorne kein @code{lib} als Präfix an, solange es nicht Teil des offiziellen Projektnamens ist. Beachten Sie aber die Abschnitte @ref{Python Modules} und @ref{Perl Modules}, in denen Sonderregeln für Module der Programmiersprachen Python und Perl beschrieben sind." #. type: Plain text #: guix-git/doc/contributing.texi:1165 msgid "Font package names are handled differently, @pxref{Fonts}." msgstr "Auch Pakete mit Schriftarten werden anders behandelt, siehe @ref{Fonts}." #. type: cindex #: guix-git/doc/contributing.texi:1170 #, no-wrap msgid "package version" msgstr "Paketversion" #. type: Plain text #: guix-git/doc/contributing.texi:1179 msgid "We usually package only the latest version of a given free software project. But sometimes, for instance for incompatible library versions, two (or more) versions of the same package are needed. These require different Scheme variable names. We use the name as defined in @ref{Package Naming} for the most recent version; previous versions use the same name, suffixed by @code{-} and the smallest prefix of the version number that may distinguish the two versions." msgstr "Normalerweise stellen wir nur für die neueste Version eines Freie-Software-Projekts ein Paket bereit. Manchmal gibt es allerdings Fälle wie zum Beispiel untereinander inkompatible Bibliotheksversionen, so dass zwei (oder mehr) Versionen desselben Pakets angeboten werden müssen. In diesem Fall müssen wir verschiedene Scheme-Variablennamen benutzen. Wir benutzen dann für die neueste Version den Namen, wie er im Abschnitt @ref{Package Naming} festgelegt wird, und geben vorherigen Versionen denselben Namen mit einem zusätzlichen Suffix aus @code{-} gefolgt vom kürzesten Präfix der Versionsnummer, mit dem noch immer zwei Versionen unterschieden werden können." #. type: Plain text #: guix-git/doc/contributing.texi:1182 msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number." msgstr "Der Name innerhalb der Paketdefinition ist hingegen derselbe für alle Versionen eines Pakets und enthält keine Versionsnummer." #. type: Plain text #: guix-git/doc/contributing.texi:1184 msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:" msgstr "Zum Beispiel können für GTK in den Versionen 2.24.20 und 3.9.12 Pakete wie folgt geschrieben werden:" #. type: lisp #: guix-git/doc/contributing.texi:1196 #, no-wrap msgid "" "(define-public gtk+\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.9.12\")\n" " ...))\n" "(define-public gtk+-2\n" " (package\n" " (name \"gtk+\")\n" " (version \"2.24.20\")\n" " ...))\n" msgstr "" "(define-public gtk+\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.9.12\")\n" " …))\n" "(define-public gtk+-2\n" " (package\n" " (name \"gtk+\")\n" " (version \"2.24.20\")\n" " …))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1198 msgid "If we also wanted GTK+ 3.8.2, this would be packaged as" msgstr "Wenn wir auch GTK 3.8.2 wollten, würden wir das Paket schreiben als" #. type: lisp #: guix-git/doc/contributing.texi:1204 #, no-wrap msgid "" "(define-public gtk+-3.8\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.8.2\")\n" " ...))\n" msgstr "" "(define-public gtk+-3.8\n" " (package\n" " (name \"gtk+\")\n" " (version \"3.8.2\")\n" " …))\n" #. type: cindex #: guix-git/doc/contributing.texi:1208 #, no-wrap msgid "version number, for VCS snapshots" msgstr "Versionsnummer, bei Snapshots aus Versionskontrolle" #. type: Plain text #: guix-git/doc/contributing.texi:1214 msgid "Occasionally, we package snapshots of upstream's version control system (VCS) instead of formal releases. This should remain exceptional, because it is up to upstream developers to clarify what the stable release is. Yet, it is sometimes necessary. So, what should we put in the @code{version} field?" msgstr "Gelegentlich fügen wir auch Pakete für Snapshots aus dem Versionskontrollsystem des Anbieters statt formaler Veröffentlichungen zur Distribution hinzu. Das sollte die Ausnahme bleiben, weil die Entwickler selbst klarstellen sollten, welche Version als die stabile Veröffentlichung gelten sollte, ab und zu ist es jedoch notwendig. Was also sollten wir dann im @code{version}-Feld eintragen?" #. type: Plain text #: guix-git/doc/contributing.texi:1222 msgid "Clearly, we need to make the commit identifier of the VCS snapshot visible in the version string, but we also need to make sure that the version string is monotonically increasing so that @command{guix package --upgrade} can determine which version is newer. Since commit identifiers, notably with Git, are not monotonically increasing, we add a revision number that we increase each time we upgrade to a newer snapshot. The resulting version string looks like this:" msgstr "Offensichtlich muss der Bezeichner des Commits, den wir als Snapshot aus dem Versionskontrollsystem nehmen, in der Versionszeichenkette zu erkennen sein, aber wir müssen auch sicherstellen, dass die Version monoton steigend ist, damit @command{guix package --upgrade} feststellen kann, welche Version die neuere ist. Weil Commit-Bezeichner, insbesondere bei Git, nicht monoton steigen, müssen wir eine Revisionsnummer hinzufügen, die wir jedes Mal erhöhen, wenn wir das Paket auf einen neueren Snapshot aktualisieren. Die sich ergebende Versionszeichenkette sieht dann so aus:" #. type: example #: guix-git/doc/contributing.texi:1231 #, no-wrap msgid "" "2.0.11-3.cabba9e\n" " ^ ^ ^\n" " | | `-- upstream commit ID\n" " | |\n" " | `--- Guix package revision\n" " |\n" "latest upstream version\n" msgstr "" "2.0.11-3.cabba9e\n" " ^ ^ ^\n" " | | `-- Commit-ID beim Anbieter\n" " | |\n" " | `--- Revisionsnummer des Guix-Pakets\n" " |\n" "die neueste Version, die der Anbieter veröffentlicht hat\n" #. type: Plain text #: guix-git/doc/contributing.texi:1241 msgid "It is a good idea to strip commit identifiers in the @code{version} field to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics have a role to play here) as well as problems related to OS limits such as the maximum shebang length (127 bytes for the Linux kernel). There are helper functions for doing this for packages using @code{git-fetch} or @code{hg-fetch} (see below). It is best to use the full commit identifiers in @code{origin}s, though, to avoid ambiguities. A typical package definition may look like this:" msgstr "Es ist eine gute Idee, die Commit-Bezeichner im @code{version}-Feld auf, sagen wir, 7 Ziffern zu beschränken. Das sieht besser aus (wenn das hier eine Rolle spielen sollte) und vermeidet Probleme, die mit der maximalen Länge von Shebangs zu tun haben (127 Bytes beim Linux-Kernel). Bei Paketen, die @code{git-fetch} oder @code{hg-fetch} benutzen, können Sie dafür Hilfsfunktionen nutzen (siehe unten). Am besten benutzen Sie in @code{origin}s jedoch den vollständigen Commit-Bezeichner, um Mehrdeutigkeiten zu vermeiden. Eine typische Paketdefinition könnte so aussehen:" #. type: lisp #: guix-git/doc/contributing.texi:1258 #, no-wrap msgid "" "(define my-package\n" " (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n" " (revision \"1\")) ;Guix package revision\n" " (package\n" " (version (git-version \"0.9\" revision commit))\n" " (source (origin\n" " (method git-fetch)\n" " (uri (git-reference\n" " (url \"git://example.org/my-package.git\")\n" " (commit commit)))\n" " (sha256 (base32 \"1mbikn@dots{}\"))\n" " (file-name (git-file-name name version))))\n" " ;; @dots{}\n" " )))\n" msgstr "" "(define mein-paket\n" " (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n" " (revision \"1\")) ;Guix-Paketrevision\n" " (package\n" " (version (git-version \"0.9\" revision commit))\n" " (source (origin\n" " (method git-fetch)\n" " (uri (git-reference\n" " (url \"git://example.org/mein-paket.git\")\n" " (commit commit)))\n" " (sha256 (base32 \"1mbikn…\"))\n" " (file-name (git-file-name name version))))\n" " ;; …\n" " )))\n" #. type: deffn #: guix-git/doc/contributing.texi:1260 #, no-wrap msgid "{Procedure} git-version @var{VERSION} @var{REVISION} @var{COMMIT}" msgstr "{Prozedur} git-version @var{VERSION} @var{REVISION} @var{COMMIT}" #. type: deffn #: guix-git/doc/contributing.texi:1262 msgid "Return the version string for packages using @code{git-fetch}." msgstr "Liefert die Zeichenkette für die Version bei Paketen, die @code{git-fetch} benutzen." #. type: lisp #: guix-git/doc/contributing.texi:1266 #, no-wrap msgid "" "(git-version \"0.2.3\" \"0\" \"93818c936ee7e2f1ba1b315578bde363a7d43d05\")\n" "@result{} \"0.2.3-0.93818c9\"\n" msgstr "" "(git-version \"0.2.3\" \"0\" \"93818c936ee7e2f1ba1b315578bde363a7d43d05\")\n" "@result{} \"0.2.3-0.93818c9\"\n" #. type: deffn #: guix-git/doc/contributing.texi:1269 #, no-wrap msgid "{Procedure} hg-version @var{VERSION} @var{REVISION} @var{CHANGESET}" msgstr "{Prozedur} hg-version @var{VERSION} @var{REVISION} @var{ÄNDERUNGSSATZ}" #. type: deffn #: guix-git/doc/contributing.texi:1272 msgid "Return the version string for packages using @code{hg-fetch}. It works in the same way as @code{git-version}." msgstr "Liefert die Zeichenkette für die Version bei Paketen, die @code{hg-fetch} benutzen.<" #. type: cindex #: guix-git/doc/contributing.texi:1277 #, no-wrap msgid "package description" msgstr "Paketbeschreibung" #. type: cindex #: guix-git/doc/contributing.texi:1278 #, no-wrap msgid "package synopsis" msgstr "Paketzusammenfassung" #. type: Plain text #: guix-git/doc/contributing.texi:1285 msgid "As we have seen before, each package in GNU@tie{}Guix includes a synopsis and a description (@pxref{Defining Packages}). Synopses and descriptions are important: They are what @command{guix package --search} searches, and a crucial piece of information to help users determine whether a given package suits their needs. Consequently, packagers should pay attention to what goes into them." msgstr "Wie wir bereits gesehen haben, enthält jedes Paket in GNU@tie{}Guix eine (im Code englischsprachige) Zusammenfassung (englisch: Synopsis) und eine Beschreibung (englisch: Description; siehe @ref{Defining Packages}). Zusammenfassungen und Beschreibungen sind wichtig: Sie werden mit @command{guix package --search} durchsucht und stellen eine entscheidende Informationsquelle für Nutzer dar, die entscheiden wollen, ob das Paket Ihren Bedürfnissen entspricht, daher sollten Paketentwickler achtgeben, was sie dort eintragen." #. type: Plain text #: guix-git/doc/contributing.texi:1293 msgid "Synopses must start with a capital letter and must not end with a period. They must not start with ``a'' or ``the'', which usually does not bring anything; for instance, prefer ``File-frobbing tool'' over ``A tool that frobs files''. The synopsis should say what the package is---e.g., ``Core GNU utilities (file, text, shell)''---or what it is used for---e.g., the synopsis for GNU@tie{}grep is ``Print lines matching a pattern''." msgstr "Zusammenfassungen müssen mit einem Großbuchstaben beginnen und dürfen nicht mit einem Punkt enden. Sie dürfen nicht mit den Artikeln „a“ oder „the“ beginnen, die meistens ohnehin nichts zum Verständnis beitragen. Zum Beispiel sollte „File-frobbing tool“ gegenüber „A tool that frobs files“ vorgezogen werden. Die Zusammenfassung sollte aussagen, um was es sich beim Paket handelt@tie{}– z.B.@: „Core GNU utilities (file, text, shell)“@tie{}–, oder aussagen, wofür es benutzt wird@tie{}– z.B.@: ist die Zusammenfassung für GNU@tie{}grep „Print lines matching a pattern“." #. type: Plain text #: guix-git/doc/contributing.texi:1303 msgid "Keep in mind that the synopsis must be meaningful for a very wide audience. For example, ``Manipulate alignments in the SAM format'' might make sense for a seasoned bioinformatics researcher, but might be fairly unhelpful or even misleading to a non-specialized audience. It is a good idea to come up with a synopsis that gives an idea of the application domain of the package. In this example, this might give something like ``Manipulate nucleotide sequence alignments'', which hopefully gives the user a better idea of whether this is what they are looking for." msgstr "Beachten Sie, dass die Zusammenfassung für eine sehr große Leserschaft einen Sinn ergeben muss. Zum Beispiel würde „Manipulate alignments in the SAM format“ vielleicht von einem erfahrenen Forscher in der Bioinformatik verstanden, könnte für die Nicht-Spezialisten in Guix’ Zielgruppe aber wenig hilfreich sein oder würde diesen sogar eine falsche Vorstellung geben. Es ist eine gute Idee, sich eine Zusammenfassung zu überlegen, die eine Vorstellung von der Anwendungsdomäne des Pakets vermittelt. Im Beispiel hier würden sich die Nutzer mit „Manipulate nucleotide sequence alignments“ hoffentlich ein besseres Bild davon machen können, ob das Paket ist, wonach sie suchen." #. type: Plain text #: guix-git/doc/contributing.texi:1311 msgid "Descriptions should take between five and ten lines. Use full sentences, and avoid using acronyms without first introducing them. Please avoid marketing phrases such as ``world-leading'', ``industrial-strength'', and ``next-generation'', and avoid superlatives like ``the most advanced''---they are not helpful to users looking for a package and may even sound suspicious. Instead, try to be factual, mentioning use cases and features." msgstr "Beschreibungen sollten zwischen fünf und zehn Zeilen lang sein. Benutzen Sie vollständige Sätze und vermeiden Sie Abkürzungen, die Sie nicht zuvor eingeführt haben. Vermeiden Sie bitte Marketing-Phrasen wie „world-leading“ („weltweit führend“), „industrial-strength“ („industrietauglich“) und „next-generation“ („der nächsten Generation“) ebenso wie Superlative wie „the most advanced“ („das fortgeschrittenste“)@tie{}– davon haben Nutzer nichts, wenn sie ein Paket suchen, und es könnte sogar verdächtig klingen. Versuchen Sie stattdessen, bei den Fakten zu bleiben und dabei Anwendungszwecke und Funktionalitäten zu erwähnen." #. type: cindex #: guix-git/doc/contributing.texi:1312 #, no-wrap msgid "Texinfo markup, in package descriptions" msgstr "Texinfo-Auszeichnungen, in Paketbeschreibungen" #. type: Plain text #: guix-git/doc/contributing.texi:1321 msgid "Descriptions can include Texinfo markup, which is useful to introduce ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful when using some characters for example @samp{@@} and curly braces which are the basic special characters in Texinfo (@pxref{Special Characters,,, texinfo, GNU Texinfo}). User interfaces such as @command{guix show} take care of rendering it appropriately." msgstr "Beschreibungen können wie bei Texinfo ausgezeichneten Text enthalten. Das bedeutet, Text kann Verzierungen wie @code{@@code} oder @code{@@dfn}, Auflistungen oder Hyperlinks enthalten (siehe @ref{Overview,,, texinfo, GNU Texinfo}). Sie sollten allerdings vorsichtig sein, wenn Sie bestimmte Zeichen wie @samp{@@} und geschweifte Klammern schreiben, weil es sich dabei um die grundlegenden Sonderzeichen in Texinfo handelt (siehe @ref{Special Characters,,, texinfo, GNU Texinfo}). Benutzungsschnittstellen wie @command{guix show} kümmern sich darum, solche Auszeichnungen angemessen darzustellen." #. type: Plain text #: guix-git/doc/contributing.texi:1327 msgid "Synopses and descriptions are translated by volunteers @uref{https://translate.fedoraproject.org/projects/guix/packages, at Weblate} so that as many users as possible can read them in their native language. User interfaces search them and display them in the language specified by the current locale." msgstr "Zusammenfassungen und Beschreibungen werden von Freiwilligen @uref{https://translate.fedoraproject.org/projects/guix/packages, bei Weblate} übersetzt, damit so viele Nutzer wie möglich sie in ihrer Muttersprache lesen können. Mit Schnittstellen für Benutzer können sie in der von der aktuell eingestellten Locale festgelegten Sprache durchsucht und angezeigt werden." #. type: Plain text #: guix-git/doc/contributing.texi:1332 msgid "To allow @command{xgettext} to extract them as translatable strings, synopses and descriptions @emph{must be literal strings}. This means that you cannot use @code{string-append} or @code{format} to construct these strings:" msgstr "Damit @command{xgettext} sie als übersetzbare Zeichenketten extrahieren kann, @emph{müssen} Zusammenfassungen und Beschreibungen einfache Zeichenketten-Literale sein. Das bedeutet, dass Sie diese Zeichenketten nicht mit Prozeduren wie @code{string-append} oder @code{format} konstruieren können:" #. type: lisp #: guix-git/doc/contributing.texi:1338 #, no-wrap msgid "" "(package\n" " ;; @dots{}\n" " (synopsis \"This is translatable\")\n" " (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n" msgstr "" "(package\n" " ;; …\n" " (synopsis \"This is translatable\")\n" " (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1346 msgid "Translation is a lot of work so, as a packager, please pay even more attention to your synopses and descriptions as every change may entail additional work for translators. In order to help them, it is possible to make recommendations or instructions visible to them by inserting special comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):" msgstr "Übersetzen ist viel Arbeit, also passen Sie als Paketentwickler bitte umso mehr auf, wenn Sie Ihre Zusammenfassungen und Beschreibungen formulieren, weil jede Änderung zusätzliche Arbeit für Übersetzer bedeutet. Um den Übersetzern zu helfen, können Sie Empfehlungen und Anweisungen für diese sichtbar machen, indem Sie spezielle Kommentare wie in diesem Beispiel einfügen (siehe @ref{xgettext Invocation,,, gettext, GNU Gettext}):" #. type: lisp #: guix-git/doc/contributing.texi:1351 #, no-wrap msgid "" ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n" "(description \"ARandR is designed to provide a simple visual front end\n" "for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n" msgstr "" ";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n" "(description \"ARandR is designed to provide a simple visual front end\n" "for the X11 resize-and-rotate (RandR) extension. …\")\n" #. type: cindex #: guix-git/doc/contributing.texi:1356 #, no-wrap msgid "snippets, when to use" msgstr "snippet-Feld, wann man es benutzt" #. type: Plain text #: guix-git/doc/contributing.texi:1367 msgid "The boundary between using an origin snippet versus a build phase to modify the sources of a package can be elusive. Origin snippets are typically used to remove unwanted files such as bundled libraries, nonfree sources, or to apply simple substitutions. The source derived from an origin should produce a source that can be used to build the package on any system that the upstream package supports (i.e., act as the corresponding source). In particular, origin snippets must not embed store items in the sources; such patching should rather be done using build phases. Refer to the @code{origin} record documentation for more information (@pxref{origin Reference})." msgstr "Die Grenze, wann man Code-Schnipsel im @code{origin}-„@code{snippet}“-Feld gegenüber einer Erstellungsphase für Änderungen an den Quelldateien eines Pakets bevorzugen sollte, ist fließend. Schnipsel im Paketursprung werden meistens dazu benutzt, unerwünschte Dateien wie z.B.@: gebündelte Bibliotheken oder unfreie Quelldateien zu entfernen, oder um einfache Textersetzungen durchzuführen. Die Quelle, die sich aus einem Paketursprung ableitet, sollte Quellcode erzeugen, um das Paket auf jedem vom Anbieter unterstützten System zu erstellen (d.h.@: um als dessen „corresponding source“, „korrespondierender Quelltext“, herzuhalten). Insbesondere dürfen Snippets im Paketursprung keine Store-Objekte in den Quelldateien einbetten; solche Anpassungen sollten besser in Erstellungsphasen stattfinden. Schauen Sie in die Dokumentation des @code{origin}-Verbundsobjekts für weitere Informationen (siehe @ref{origin Reference})." #. type: Plain text #: guix-git/doc/contributing.texi:1375 msgid "While there cannot be circular dependencies between packages, Guile's lax module loading mechanism allows circular dependencies between Guile modules, which doesn't cause problems as long as the following conditions are followed for two modules part of a dependency cycle:" msgstr "Es darf zwar keine zyklischen Abhängigkeiten zwischen Paketen geben, aber weil Guile Module erst bei Bedarf lädt, können Sie durchaus zyklische Abhängigkeiten zwischen Guile-Modulen herstellen, ohne Probleme zu verursachen, solange Sie sich an die folgenden Bedingungen für zwei Module in einem Abhängigkeitszyklus halten:" #. type: cindex #: guix-git/doc/contributing.texi:1376 #, no-wrap msgid "rules to cope with circular module dependencies" msgstr "Regeln beim Umgang mit zyklischen Modulabhängigkeiten" #. type: enumerate #: guix-git/doc/contributing.texi:1380 msgid "Macros are not shared between the co-dependent modules" msgstr "Makros von anderen gegenseitig abhängigen Modulen werden @emph{nicht} benutzt." #. type: enumerate #: guix-git/doc/contributing.texi:1384 msgid "Top-level variables are only referenced in delayed (@i{thunked}) package fields: @code{arguments}, @code{native-inputs}, @code{inputs}, @code{propagated-inputs} or @code{replacement}" msgstr "Variable auf oberster Ebene werden nur in verzögert ausgewerteten („delayed“, „thunked“) Paketfeldern eingesetzt, wie: @code{arguments}, @code{native-inputs}, @code{inputs}, @code{propagated-inputs} oder @code{replacement}." #. type: enumerate #: guix-git/doc/contributing.texi:1387 msgid "Procedures referencing top-level variables from another module are not called at the top level of a module themselves." msgstr "Prozeduren, die auf Variable auf der obersten Ebene eines anderen Moduls verweisen, dürfen @emph{nicht} selbst auf oberster Ebene eines Moduls aufgerufen werden." #. type: Plain text #: guix-git/doc/contributing.texi:1393 msgid "Straying away from the above rules may work while there are no dependency cycles between modules, but given such cycles are confusing and difficult to troubleshoot, it is best to follow the rules to avoid introducing problems down the line." msgstr "Jegliches Abweichen von den obigen Regeln kann funktionieren, solange es keine Abhängigkeitszyklen gibt, aber weil solche Zyklen verwirrend sind und die Fehlersuche schwierig ist, befolgt man die Regeln besser grundsätzlich, um uns allen später keine Probleme einzuhandeln." #. type: Plain text #: guix-git/doc/contributing.texi:1396 msgid "Here is a common trap to avoid:" msgstr "Hier sehen Sie eine solche Tücke:" #. type: lisp #: guix-git/doc/contributing.texi:1402 #, no-wrap msgid "" "(define-public avr-binutils\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" msgstr "" "(define-public avr-binutils\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1411 msgid "In the above example, the @code{avr-binutils} package was defined in the module @code{(gnu packages avr)}, and the @code{cross-binutils} procedure in @code{(gnu packages cross-base)}. Because the @code{inherit} field is not delayed (thunked), it is evaluated at the top level at load time, which is problematic in the presence of module dependency cycles. This could be resolved by turning the package into a procedure instead, like:" msgstr "Im Beispiel oben wurde das Paket @code{avr-binutils} im Modul @code{(gnu packages avr)} definiert und die Prozedur @code{cross-binutils} in @code{(gnu packages cross-base)}. Weil das @code{inherit}-Feld @emph{nicht} verzögert (delayed, thunked) ist, wird es auf oberster Ebene ausgewertet, sobald es geladen wird, und das ist problematisch, wenn die Module einen Abhängigkeitszyklus bilden. Stattdessen kann man das Paket als Prozedur definieren, etwa so:" #. type: lisp #: guix-git/doc/contributing.texi:1417 #, no-wrap msgid "" "(define (make-avr-binutils)\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" msgstr "" "(define (make-avr-binutils)\n" " (package\n" " (inherit (cross-binutils \"avr\"))\n" " (name \"avr-binutils\")))\n" #. type: Plain text #: guix-git/doc/contributing.texi:1422 msgid "Care would need to be taken to ensure the above procedure is only ever used in a package delayed fields or within another procedure also not called at the top level." msgstr "Vorsicht wäre dann geboten, dass die obige Prozedur ebenfalls nur in verzögert ausgewerteten Feldern oder in Prozeduren benutzt werden darf, die auch @emph{nicht} auf oberster Ebene aufgerufen werden." #. type: cindex #: guix-git/doc/contributing.texi:1426 #, no-wrap msgid "emacs, packaging" msgstr "emacs, Pakete dafür schreiben" #. type: cindex #: guix-git/doc/contributing.texi:1427 #, no-wrap msgid "elisp, packaging" msgstr "elisp, Pakete dafür schreiben" #. type: Plain text #: guix-git/doc/contributing.texi:1439 msgid "Emacs packages should preferably use the Emacs build system (@pxref{emacs-build-system}), for uniformity and the benefits provided by its build phases, such as the auto-generation of the autoloads file and the byte compilation of the sources. Because there is no standardized way to run a test suite for Emacs packages, tests are disabled by default. When a test suite is available, it should be enabled by setting the @code{#:tests?} argument to @code{#true}. By default, the command to run the test is @command{make check}, but any command can be specified via the @code{#:test-command} argument. The @code{#:test-command} argument expects a list containing a command and its arguments, to be invoked during the @code{check} phase." msgstr "Für Emacs-Pakete sollte man bevorzugt das Emacs-Erstellungssystem benutzen (siehe @ref{emacs-build-system}), wegen der Einheitlichkeit und der Vorteile durch seine Erstellungsphasen. Dazu gehören das automatische Erzeugen der Autoloads-Datei und das Kompilieren des Quellcodes zu Bytecode (Byte Compilation). Weil es keinen Standard gibt, wie ein Testkatalog eines Emacs-Pakets ausgeführt wird, sind Tests nach Vorgabe abgeschaltet. Wenn es einen Testkatalog gibt, sollte er aktiviert werden, indem Sie das Argument @code{#:tests?} auf @code{#true} setzen. Vorgegeben ist, die Tests mit dem Befehl @command{make check} auszuführen, aber mit dem Argument @code{#:test-command} kann ein beliebiger anderer Befehl festgelegt werden. Für das Argument @code{#:test-command} wird eine Liste aus dem Befehl und den Argumenten an den Befehl erwartet. Er wird während der @code{check}-Phase aufgerufen." #. type: Plain text #: guix-git/doc/contributing.texi:1444 msgid "The Elisp dependencies of Emacs packages are typically provided as @code{propagated-inputs} when required at run time. As for other packages, build or test dependencies should be specified as @code{native-inputs}." msgstr "Die Elisp-Abhängigkeiten von Emacs-Paketen werden typischerweise als @code{propagated-inputs} bereitgestellt, wenn sie zur Laufzeit benötigt werden. Wie bei anderen Paketen sollten Abhängigkeiten zum Erstellen oder Testen als @code{native-inputs} angegeben werden." #. type: Plain text #: guix-git/doc/contributing.texi:1453 msgid "Emacs packages sometimes depend on resources directories that should be installed along the Elisp files. The @code{#:include} argument can be used for that purpose, by specifying a list of regexps to match. The best practice when using the @code{#:include} argument is to extend rather than override its default value (accessible via the @code{%default-include} variable). As an example, a yasnippet extension package typically include a @file{snippets} directory, which could be copied to the installation directory using:" msgstr "Manchmal hängen Emacs-Pakete von Ressourcenverzeichnissen ab, die zusammen mit den Elisp-Dateien installiert werden sollten. Diese lassen sich mit dem Argument @code{#:include} kennzeichnen, indem eine Liste dazu passender regulärer Ausdrücke angegeben wird. Idealerweise ergänzen Sie den Vorgabewert des @code{#:include}-Arguments (aus der Variablen @code{%default-include}), statt ihn zu ersetzen. Zum Beispiel enthält ein yasnippet-Erweiterungspaket typischerweise ein @file{snippets}-Verzeichnis, das wie folgt in das Installationsverzeichnis kopiert werden könnte:" #. type: lisp #: guix-git/doc/contributing.texi:1456 #, no-wrap msgid "#:include (cons \"^snippets/\" %default-include)\n" msgstr "#:include (cons \"^snippets/\" %default-include)\n" #. type: Plain text #: guix-git/doc/contributing.texi:1462 msgid "When encountering problems, it is wise to check for the presence of the @code{Package-Requires} extension header in the package main source file, and whether any dependencies and their versions listed therein are satisfied." msgstr "Wenn Sie auf Probleme stoßen, ist es ratsam, auf eine Kopfzeile @code{Package-Requires} in der Hauptquellcodedatei des Pakets zu achten, ob allen Abhängigkeiten und deren dort gelisteten Versionen genügt wird." #. type: cindex #: guix-git/doc/contributing.texi:1466 #, no-wrap msgid "python" msgstr "python" #. type: Plain text #: guix-git/doc/contributing.texi:1472 msgid "We currently package Python 2 and Python 3, under the Scheme variable names @code{python-2} and @code{python} as explained in @ref{Version Numbers}. To avoid confusion and naming clashes with other programming languages, it seems desirable that the name of a package for a Python module contains the word @code{python}." msgstr "Zurzeit stellen wir ein Paket für Python 2 und eines für Python 3 jeweils über die Scheme-Variablen mit den Namen @code{python-2} und @code{python} zur Verfügung, entsprechend der Erklärungen im Abschnitt @ref{Version Numbers}. Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, erscheint es als wünschenswert, dass der Name eines Pakets für ein Python-Modul auch das Wort @code{python} enthält." #. type: Plain text #: guix-git/doc/contributing.texi:1478 msgid "Some modules are compatible with only one version of Python, others with both. If the package Foo is compiled with Python 3, we name it @code{python-foo}. If it is compiled with Python 2, we name it @code{python2-foo}. Python 2 packages are being removed from the distribution; please do no not submit any new Python 2 packages." msgstr "Manche Module sind nur mit einer Version von Python kompatibel, andere mit beiden. Wenn das Paket Foo mit Python 3 kompiliert wird, geben wir ihm den Namen @code{python-foo}. Wenn es mit Python 2 kompiliert wird, wählen wir den Namen @code{python2-foo}. Wir sind dabei, Python-2-Pakete aus der Distribution zu entfernen; bitte reichen Sie keine neuen Python-2-Pakete mehr ein." #. type: Plain text #: guix-git/doc/contributing.texi:1484 msgid "If a project already contains the word @code{python}, we drop this; for instance, the module python-dateutil is packaged under the names @code{python-dateutil} and @code{python2-dateutil}. If the project name starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as described above." msgstr "Wenn ein Projekt bereits das Wort @code{python} im Namen hat, lassen wir es weg; zum Beispiel ist das Modul python-dateutil unter den Namen @code{python-dateutil} und @code{python2-dateutil} verfügbar. Wenn der Projektname mit @code{py} beginnt (z.B.@: @code{pytz}), behalten wir ihn bei und stellen das oben beschriebene Präfix voran." #. type: quotation #: guix-git/doc/contributing.texi:1498 msgid "Currently there are two different build systems for Python packages in Guix: @var{python-build-system} and @var{pyproject-build-system}. For the longest time, Python packages were built from an informally specified @file{setup.py} file. That worked amazingly well, considering Python's success, but was difficult to build tooling around. As a result, a host of alternative build systems emerged and the community eventually settled on a @url{https://peps.python.org/pep-0517/, formal standard} for specifying build requirements. @var{pyproject-build-system} is Guix's implementation of this standard. It is considered ``experimental'' in that it does not yet support all the various PEP-517 @emph{build backends}, but you are encouraged to try it for new Python packages and report any problems. It will eventually be deprecated and merged into @var{python-build-system}." msgstr "Im Moment sind gleich zwei verschiedene Erstellungssysteme für Python-Pakete in Guix in Umlauf: @var{python-build-system} und @var{pyproject-build-system}. Lange Zeit hat man sein Python-Paket aus einer Datei @file{setup.py} heraus erstellt, deren gewachsene Struktur @emph{nicht} formell festgelegt war. Das lief überraschend gut, wenn man sich den Erfolg von Python anschaut, allerdings ließen sich nur schwer Werkzeuge zur Handhabung schreiben. Daraus ergab sich eine Vielzahl alternativer Erstellungssysteme, bis sich die Gemeinschaft auf einen @url{https://peps.python.org/pep-0517/, formellen Standard} zum Festlegen der Erstellungsanforderungen geeinigt hatte. @var{pyproject-build-system} ist die Implementierung dieses Standards in Guix. Wir stufen es als „experimentell“ ein, insofern als dass es noch nicht all die @emph{Build Backends} für PEP-517 unterstützt. Dennoch würden wir es begrüßen, wenn Sie es für neue Python-Pakete verwenden und Probleme melden würden. Schlussendlich wird es für veraltet erklärt werden und in @var{python-build-system} aufgehen." #. type: subsubsection #: guix-git/doc/contributing.texi:1500 #, no-wrap msgid "Specifying Dependencies" msgstr "Abhängigkeiten angeben" #. type: cindex #: guix-git/doc/contributing.texi:1501 #, no-wrap msgid "inputs, for Python packages" msgstr "Eingaben, für Python-Pakete" #. type: Plain text #: guix-git/doc/contributing.texi:1508 msgid "Dependency information for Python packages is usually available in the package source tree, with varying degrees of accuracy: in the @file{pyproject.toml} file, the @file{setup.py} file, in @file{requirements.txt}, or in @file{tox.ini} (the latter mostly for test dependencies)." msgstr "Informationen über Abhängigkeiten von Python-Paketen, welche mal mehr und mal weniger stimmen, finden sich normalerweise im Verzeichnisbaum des Paketquellcodes: in der Datei @file{pyproject.toml}, der Datei @file{setup.py}, in @file{requirements.txt} oder in @file{tox.ini} (letztere beherbergt hauptsächlich Abhängigkeiten für Tests)." #. type: Plain text #: guix-git/doc/contributing.texi:1514 msgid "Your mission, when writing a recipe for a Python package, is to map these dependencies to the appropriate type of ``input'' (@pxref{package Reference, inputs}). Although the @code{pypi} importer normally does a good job (@pxref{Invoking guix import}), you may want to check the following check list to determine which dependency goes where." msgstr "Wenn Sie ein Rezept für ein Python-Paket schreiben, lautet Ihr Auftrag, diese Abhängigkeiten auf angemessene Arten von „Eingaben“ abzubilden (siehe @ref{package Reference, Eingaben}). Obwohl der @code{pypi}-Importer hier normalerweise eine gute Arbeit leistet (siehe @ref{Invoking guix import}), könnten Sie die folgende Prüfliste durchgehen wollen, um zu bestimmen, wo welche Abhängigkeit eingeordnet werden sollte." #. type: itemize #: guix-git/doc/contributing.texi:1521 msgid "We currently package Python with @code{setuptools} and @code{pip} installed per default. This is about to change, and users are encouraged to use @code{python-toolchain} if they want a build environment for Python." msgstr "Derzeit ist unser Python-Paket so geschrieben, dass es @code{setuptools} und @code{pip} mitinstalliert. Das wird sich bald ändern und wir möchten unseren Nutzern nahelegen, für Python-Entwicklungsumgebungen @code{python-toolchain} zu verwenden." #. type: itemize #: guix-git/doc/contributing.texi:1524 msgid "@command{guix lint} will warn if @code{setuptools} or @code{pip} are added as native-inputs because they are generally not necessary." msgstr "@command{guix lint} wird Sie mit einer Warnung darauf aufmerksam machen, wenn @code{setuptools} oder @code{pip} zu den nativen Eingaben hinzugefügt wurden, weil man im Allgemeinen keines der beiden anzugeben braucht." #. type: itemize #: guix-git/doc/contributing.texi:1530 msgid "Python dependencies required at run time go into @code{propagated-inputs}. They are typically defined with the @code{install_requires} keyword in @file{setup.py}, or in the @file{requirements.txt} file." msgstr "Python-Abhängigkeiten, die zur Laufzeit gebraucht werden, stehen im @code{propagated-inputs}-Feld. Solche werden typischerweise mit dem Schlüsselwort @code{install_requires} in @file{setup.py} oder in der Datei @file{requirements.txt} definiert." #. type: itemize #: guix-git/doc/contributing.texi:1539 msgid "Python packages required only at build time---e.g., those listed under @code{build-system.requires} in @file{pyproject.toml} or with the @code{setup_requires} keyword in @file{setup.py}---or dependencies only for testing---e.g., those in @code{tests_require} or @file{tox.ini}---go into @code{native-inputs}. The rationale is that (1) they do not need to be propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want." msgstr "Python-Pakete, die nur zur Erstellungszeit gebraucht werden@tie{}– z.B.@: jene, die in @file{pyproject.toml} unter @code{build-system.requires} stehen oder die mit dem Schlüsselwort @code{setup_requires} in @file{setup.py} aufgeführt sind@tie{}– oder Abhängigkeiten, die nur zum Testen gebraucht werden@tie{}– also die in @code{tests_require} oder in der @file{tox.ini}@tie{}–, schreibt man in @code{native-inputs}. Die Begründung ist, dass (1) sie nicht propagiert werden müssen, weil sie zur Laufzeit nicht gebraucht werden, und (2) wir beim Cross-Kompilieren die „native“ Eingabe des Wirtssystems wollen." #. type: itemize #: guix-git/doc/contributing.texi:1543 msgid "Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks. Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}." msgstr "Beispiele sind die Testrahmen @code{pytest}, @code{mock} und @code{nose}. Wenn natürlich irgendeines dieser Pakete auch zur Laufzeit benötigt wird, muss es doch in @code{propagated-inputs} stehen." #. type: itemize #: guix-git/doc/contributing.texi:1548 msgid "Anything that does not fall in the previous categories goes to @code{inputs}, for example programs or C libraries required for building Python packages containing C extensions." msgstr "Alles, was nicht in die bisher genannten Kategorien fällt, steht in @code{inputs}, zum Beispiel Programme oder C-Bibliotheken, die zur Erstellung von Python-Paketen mit enthaltenen C-Erweiterungen gebraucht werden." #. type: itemize #: guix-git/doc/contributing.texi:1554 msgid "If a Python package has optional dependencies (@code{extras_require}), it is up to you to decide whether to add them or not, based on their usefulness/overhead ratio (@pxref{Submitting Patches, @command{guix size}})." msgstr "Wenn ein Python-Paket optionale Abhängigkeiten hat (@code{extras_require}), ist es Ihnen überlassen, sie hinzuzufügen oder nicht hinzuzufügen, je nachdem wie es um deren Verhältnis von Nützlichkeit zu anderen Nachteilen steht (siehe @ref{Submitting Patches, @command{guix size}})." #. type: cindex #: guix-git/doc/contributing.texi:1561 #, no-wrap msgid "perl" msgstr "perl" #. type: Plain text #: guix-git/doc/contributing.texi:1572 msgid "Perl programs standing for themselves are named as any other package, using the lowercase upstream name. For Perl packages containing a single class, we use the lowercase class name, replace all occurrences of @code{::} by dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} becomes @code{perl-xml-parser}. Modules containing several classes keep their lowercase upstream name and are also prepended by @code{perl-}. Such modules tend to have the word @code{perl} somewhere in their name, which gets dropped in favor of the prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}." msgstr "Eigenständige Perl-Programme bekommen einen Namen wie jedes andere Paket, unter Nutzung des Namens beim Anbieter in Kleinbuchstaben. Für Perl-Pakete, die eine einzelne Klasse enthalten, ersetzen wir alle Vorkommen von @code{::} durch Striche und hängen davor das Präfix @code{perl-} an. Die Klasse @code{XML::Parser} wird also zu @code{perl-xml-parser}. Module, die mehrere Klassen beinhalten, behalten ihren Namen beim Anbieter, in Kleinbuchstaben gesetzt, und auch an sie wird vorne das Präfix @code{perl-} angehängt. Es gibt die Tendenz, solche Module mit dem Wort @code{perl} irgendwo im Namen zu versehen, das wird zu Gunsten des Präfixes weggelassen. Zum Beispiel wird aus @code{libwww-perl} bei uns @code{perl-libwww}." #. type: cindex #: guix-git/doc/contributing.texi:1577 #, no-wrap msgid "java" msgstr "java" #. type: Plain text #: guix-git/doc/contributing.texi:1580 msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name." msgstr "Eigenständige Java-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter." #. type: Plain text #: guix-git/doc/contributing.texi:1586 msgid "To avoid confusion and naming clashes with other programming languages, it is desirable that the name of a package for a Java package is prefixed with @code{java-}. If a project already contains the word @code{java}, we drop this; for instance, the package @code{ngsjava} is packaged under the name @code{java-ngs}." msgstr "Um Verwirrungen und Namenskollisionen mit anderen Programmiersprachen zu vermeiden, ist es wünschenswert, dass dem Namem eines Pakets zu einem Java-Paket das Präfix @code{java-} vorangestellt wird. Wenn ein Projekt bereits das Wort @code{java} im Namen trägt, lassen wir es weg; zum Beispiel befindet sich das Java-Paket @code{ngsjava} in einem Paket namens @code{java-ngs}." #. type: Plain text #: guix-git/doc/contributing.texi:1592 msgid "For Java packages containing a single class or a small class hierarchy, we use the lowercase class name, replace all occurrences of @code{.} by dashes and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} becomes package @code{java-apache-commons-cli}." msgstr "Bei Java-Paketen, die eine einzelne Klasse oder eine kleine Klassenhierarchie enthalten, benutzen wir den Klassennamen in Kleinbuchstaben und ersetzen dabei alle Vorkommen von @code{.} durch Striche und setzen das Präfix @code{java-} davor. Die Klasse @code{apache.commons.cli} wird also zum Paket @code{java-apache-commons-cli}." #. type: cindex #: guix-git/doc/contributing.texi:1597 #, no-wrap msgid "rust" msgstr "rust" #. type: Plain text #: guix-git/doc/contributing.texi:1600 msgid "Rust programs standing for themselves are named as any other package, using the lowercase upstream name." msgstr "Eigenständige Rust-Programme werden wie jedes andere Paket benannt, d.h.@: mit ihrem in Kleinbuchstaben geschriebenen Namen beim Anbieter." #. type: Plain text #: guix-git/doc/contributing.texi:1604 msgid "To prevent namespace collisions we prefix all other Rust packages with the @code{rust-} prefix. The name should be changed to lowercase as appropriate and dashes should remain in place." msgstr "Um Namensraumkollisionen vorzubeugen, versehen wir alle anderen Rust-Pakete mit dem Präfix @code{rust-}. Der Name sollte wie sonst in Kleinbuchstaben geschrieben werden und Bindestriche dort bleiben, wo sie sind." #. type: Plain text #: guix-git/doc/contributing.texi:1610 msgid "In the rust ecosystem it is common for multiple incompatible versions of a package to be used at any given time, so all package definitions should have a versioned suffix. The versioned suffix is the left-most non-zero digit (and any leading zeros, of course). This follows the ``caret'' version scheme intended by Cargo. Examples@: @code{rust-clap-2}, @code{rust-rand-0.6}." msgstr "Im Rust-Ökosystem werden oft mehrere inkompatible Versionen desselben Pakets gleichzeitig benutzt, daher sollte allen Paketdefinitionen ein die Version angebendes Suffix gegeben werden. Das Versionssuffix besteht aus der am weitesten links stehenden Ziffer, die @emph{nicht} null ist (natürlich mit allen führenden Nullen). Dabei folgen wir dem von Cargo gewollten „Caret“-Versionsschema. Beispiele: @code{rust-clap-2}, @code{rust-rand-0.6}." #. type: Plain text #: guix-git/doc/contributing.texi:1620 msgid "Because of the difficulty in reusing rust packages as pre-compiled inputs for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-development-inputs} keywords as build system arguments. It would be helpful to think of these as similar to @code{propagated-inputs} and @code{native-inputs}. Rust @code{dependencies} and @code{build-dependencies} should go in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:cargo-development-inputs}. If a Rust package links to other libraries then the standard placement in @code{inputs} and the like should be used." msgstr "Weil die Verwendung von Rust-Paketen als vorab kompilierte Eingaben für andere Pakete besondere Schwierigkeiten macht, gibt es im Cargo-Erstellungssystem (siehe @ref{Build Systems, @code{cargo-build-system}}) die Schlüsselwörter @code{#:cargo-inputs} und @code{#:cargo-development-inputs} als Argumente an das Erstellungssystem. Es ist hilfreich, sie sich ähnlich wie @code{propagated-inputs} und @code{native-inputs} vorzustellen. Was in Rust @code{dependencies} und @code{build-dependencies} sind, sollte unter @code{#:cargo-inputs} aufgeführt werden, während @code{dev-dependencies} zu den @code{#:cargo-development-inputs} gehören. Wenn ein Rust-Paket andere Bibliotheken einbindet, gilt die normale Einordnung in @code{inputs} usw.@: wie anderswo auch." #. type: Plain text #: guix-git/doc/contributing.texi:1626 msgid "Care should be taken to ensure the correct version of dependencies are used; to this end we try to refrain from skipping the tests or using @code{#:skip-build?} when possible. Of course this is not always possible, as the package may be developed for a different Operating System, depend on features from the Nightly Rust compiler, or the test suite may have atrophied since it was released." msgstr "Man sollte aufpassen, dass man die richtige Version von Abhängigkeiten benutzt. Deswegen versuchen wir, Tests nicht mit @code{#:skip-build?} zu überspringen, wenn es möglich ist. Natürlich geht das nicht immer, vielleicht weil das Paket für ein anderes Betriebssystem entwickelt wurde, Funktionalitäten der allerneuesten „Nightly“-Version des Rust-Compilers voraussetzt oder weil der Testkatalog seit seiner Veröffentlichung verkümmert ist." #. type: cindex #: guix-git/doc/contributing.texi:1631 #, no-wrap msgid "Elm" msgstr "Elm" #. type: Plain text #: guix-git/doc/contributing.texi:1634 msgid "Elm applications can be named like other software: their names need not mention Elm." msgstr "Sie dürfen Elm-Anwendungen Namen geben wie bei anderer Software: Elm muss @emph{nicht} im Namen vorkommen." #. type: Plain text #: guix-git/doc/contributing.texi:1640 msgid "Packages in the Elm sense (see @code{elm-build-system} under @ref{Build Systems}) are required use names of the format @var{author}@code{/}@var{project}, where both the @var{author} and the @var{project} may contain hyphens internally, and the @var{author} sometimes contains uppercase letters." msgstr "Die Namen dessen, was bei Elm als Paket bekannt ist (siehe @code{elm-build-system} im Unterabschnitt @ref{Build Systems}), müssen dagegen diesem Format folgen: @var{Autor}@code{/}@var{Projekt}, wo sowohl im @var{Autor} als auch im @var{Projekt} Bindestriche vorkommen können, und manchmal im @var{Autor} sogar Großbuchstaben enthalten sind." #. type: Plain text #: guix-git/doc/contributing.texi:1644 msgid "To form the Guix package name from the upstream name, we follow a convention similar to Python packages (@pxref{Python Modules}), adding an @code{elm-} prefix unless the name would already begin with @code{elm-}." msgstr "Um daraus einen Guix-Paketnamen zu bilden, folgen wir einer ähnlichen Konvention wie bei Python-Paketen (siehe @ref{Python Modules}), d.h.@: vorne kommt ein Präfix @code{elm-}, außer der Name beginnt ohnehin mit @code{elm-}." #. type: Plain text #: guix-git/doc/contributing.texi:1651 msgid "In many cases we can reconstruct an Elm package's upstream name heuristically, but, since conversion to a Guix-style name involves a loss of information, this is not always possible. Care should be taken to add the @code{'upstream-name} property when necessary so that @samp{guix import elm} will work correctly (@pxref{Invoking guix import}). The most notable scenarios when explicitly specifying the upstream name is necessary are:" msgstr "In vielen Fällen lässt sich der Name eines Elm-Pakets, den es beim Anbieter trägt, heuristisch rekonstruieren, aber @emph{nicht} immer, denn bei der Umwandlung in einen Namen im Guix-Stil geht Information verloren. Also achten Sie darauf, in solchen Fällen eine Eigenschaft @code{'upstream-name} anzugeben, damit @samp{guix import elm} funktionieren kann (siehe @ref{Invoking guix import}). Insbesondere ist es nötig, den Namen beim Anbieter ausdrücklich anzugeben, wenn:" #. type: enumerate #: guix-git/doc/contributing.texi:1656 msgid "When the @var{author} is @code{elm} and the @var{project} contains one or more hyphens, as with @code{elm/virtual-dom}; and" msgstr "Der @var{Autor} gleich @code{elm} ist und in @var{Projekt} ein oder mehrere Bindestriche auftauchen, wie bei @code{elm/virtual-dom}, oder wenn" #. type: enumerate #: guix-git/doc/contributing.texi:1663 msgid "When the @var{author} contains hyphens or uppercase letters, as with @code{Elm-Canvas/raster-shapes}---unless the @var{author} is @code{elm-explorations}, which is handled as a special case, so packages like @code{elm-explorations/markdown} do @emph{not} need to use the @code{'upstream-name} property." msgstr "In @var{Autor} Bindestriche oder Großbuchstaben auftauchen, z.B.@: @code{Elm-Canvas/raster-shapes}@tie{}– sofern @var{Autor} nicht @code{elm-explorations} ist, was eine Sonderbehandlung bekommt, so dass Pakete wie @code{elm-explorations/markdown} die Eigenschaft @code{'upstream-name} @emph{nicht} zu haben brauchen." #. type: Plain text #: guix-git/doc/contributing.texi:1667 msgid "The module @code{(guix build-system elm)} provides the following utilities for working with names and related conventions:" msgstr "Im Modul @code{(guix build-system elm)} finden Sie folgende Werkzeuge, mit denen Sie mit den Konventionen für Namen und Ähnliches umgehen können:" #. type: deffn #: guix-git/doc/contributing.texi:1668 #, no-wrap msgid "{Procedure} elm-package-origin @var{elm-name} @var{version} @" msgstr "{Prozedur} elm-package-origin @var{Elm-Name} @var{Version} @" #. type: deffn #: guix-git/doc/contributing.texi:1673 msgid "@var{hash} Returns a Git origin using the repository naming and tagging regime required for a published Elm package with the upstream name @var{elm-name} at version @var{version} with sha256 checksum @var{hash}." msgstr "@var{Hash} Liefert einen Git-Paketursprung nach den Regeln für Repository-Name und Tags, die für öffentliche Elm-Pakete vorgeschrieben sind. Der Name für den Paketursprung ergibt sich aus @var{Elm-Name}, das ist der Name beim Anbieter, mit der Version @var{Version} und SHA256-Prüfsumme @var{Hash}." #. type: deffn #: guix-git/doc/contributing.texi:1675 guix-git/doc/guix.texi:37141 #: guix-git/doc/guix.texi:41339 msgid "For example:" msgstr "Zum Beispiel:" #. type: lisp #: guix-git/doc/contributing.texi:1685 #, no-wrap msgid "" "(package\n" " (name \"elm-html\")\n" " (version \"1.0.0\")\n" " (source\n" " (elm-package-origin\n" " \"elm/html\"\n" " version\n" " (base32 \"15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a\")))\n" " ...)\n" msgstr "" "(package\n" " (name \"elm-html\")\n" " (version \"1.0.0\")\n" " (source\n" " (elm-package-origin\n" " \"elm/html\"\n" " version\n" " (base32 \"15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a\")))\n" " …)\n" #. type: deffn #: guix-git/doc/contributing.texi:1688 #, no-wrap msgid "{Procedure} elm->package-name @var{elm-name}" msgstr "{Prozedur} elm->package-name @var{Elm-Name}" #. type: deffn #: guix-git/doc/contributing.texi:1691 msgid "Returns the Guix-style package name for an Elm package with upstream name @var{elm-name}." msgstr "Liefert den Paketnamen im Guix-Stil für ein Elm-Paket, das dort @var{Elm-Name} heißt." #. type: deffn #: guix-git/doc/contributing.texi:1694 msgid "Note that there is more than one possible @var{elm-name} for which @code{elm->package-name} will produce a given result." msgstr "Achtung, @code{elm->package-name} kann unterschiedliche @var{Elm-Name} auf dasselbe Ergebnis abbilden." #. type: deffn #: guix-git/doc/contributing.texi:1696 #, no-wrap msgid "{Procedure} guix-package->elm-name @var{package}" msgstr "{Prozedur} guix-package->elm-name @var{Paket}" #. type: deffn #: guix-git/doc/contributing.texi:1700 msgid "Given an Elm @var{package}, returns the possibly-inferred upstream name, or @code{#f} the upstream name is not specified via the @code{'upstream-name} property and can not be inferred by @code{infer-elm-package-name}." msgstr "Für ein Elm-Paket @var{Paket} wird ermittelt, welchen Namen es beim Anbieter trägt, oder @code{#f}, wenn dieser Anbietername weder in den unter @var{properties} aufgeführten Paketeigenschaften steht noch sich mit @code{infer-elm-package-name} ableiten lässt." #. type: deffn #: guix-git/doc/contributing.texi:1702 #, no-wrap msgid "{Procedure} infer-elm-package-name @var{guix-name}" msgstr "{Prozedur} infer-elm-package-name @var{guix-name}" #. type: deffn #: guix-git/doc/contributing.texi:1707 msgid "Given the @var{guix-name} of an Elm package, returns the inferred upstream name, or @code{#f} if the upstream name can't be inferred. If the result is not @code{#f}, supplying it to @code{elm->package-name} would produce @var{guix-name}." msgstr "Liefert für den @var{guix-name} eines Elm-Pakets den daraus abgeleiteten Namen beim Anbieter oder @code{#f}, wenn er sich nicht ableiten lässt. Wenn das Ergebnis etwas anderes als @code{#f} ist, können wir es an @code{elm->package-name} übergeben und bekommen wieder @var{guix-name} heraus." #. type: cindex #: guix-git/doc/contributing.texi:1712 guix-git/doc/guix.texi:1817 #, no-wrap msgid "fonts" msgstr "Schriftarten" #. type: Plain text #: guix-git/doc/contributing.texi:1718 msgid "For fonts that are in general not installed by a user for typesetting purposes, or that are distributed as part of a larger software package, we rely on the general packaging rules for software; for instance, this applies to the fonts delivered as part of the X.Org system or fonts that are part of TeX Live." msgstr "Wenn Schriftarten in der Regel nicht von Nutzern zur Textbearbeitung installiert werden oder als Teil eines größeren Software-Pakets mitgeliefert werden, gelten dafür die allgemeinen Paketrichtlinien für Software. Zum Beispiel trifft das auf als Teil des X.Org-Systems ausgelieferte Schriftarten zu, oder auf Schriftarten, die ein Teil von TeX Live sind." #. type: Plain text #: guix-git/doc/contributing.texi:1722 msgid "To make it easier for a user to search for fonts, names for other packages containing only fonts are constructed as follows, independently of the upstream package name." msgstr "Damit es Nutzer leichter haben, nach Schriftarten zu suchen, konstruieren wir die Namen von anderen Paketen, die nur Schriftarten enthalten, nach dem folgenden Schema, egal was der Paketname beim Anbieter ist." #. type: Plain text #: guix-git/doc/contributing.texi:1730 msgid "The name of a package containing only one font family starts with @code{font-}; it is followed by the foundry name and a dash @code{-} if the foundry is known, and the font family name, in which spaces are replaced by dashes (and as usual, all upper case letters are transformed to lower case). For example, the Gentium font family by SIL is packaged under the name @code{font-sil-gentium}." msgstr "Der Name eines Pakets, das nur eine Schriftfamilie enthält, beginnt mit @code{font-}. Darauf folgt der Name des Schriftenherstellers und ein Strich @code{-}, sofern bekannt ist, wer der Schriftenhersteller ist, und dann der Name der Schriftfamilie, in dem Leerzeichen durch Striche ersetzt werden (und wie immer mit Großbuchstaben statt Kleinbuchstaben). Zum Beispiel befindet sich die von SIL hergestellte Gentium-Schriftfamilie im Paket mit dem Namen @code{font-sil-gentium}." #. type: Plain text #: guix-git/doc/contributing.texi:1739 msgid "For a package containing several font families, the name of the collection is used in the place of the font family name. For instance, the Liberation fonts consist of three families, Liberation Sans, Liberation Serif and Liberation Mono. These could be packaged separately under the names @code{font-liberation-sans} and so on; but as they are distributed together under a common name, we prefer to package them together as @code{font-liberation}." msgstr "Wenn ein Paket mehrere Schriftfamilien enthält, wird der Name der Sammlung anstelle des Schriftfamiliennamens benutzt. Zum Beispiel umfassen die Liberation-Schriftarten drei Familien: Liberation Sans, Liberation Serif und Liberation Mono. Man könnte sie getrennt voneinander mit den Namen @code{font-liberation-sans} und so weiter in Pakete einteilen. Da sie aber unter einem gemeinsamen Namen angeboten werden, packen wir sie lieber zusammen in ein Paket mit dem Namen @code{font-liberation}." #. type: Plain text #: guix-git/doc/contributing.texi:1745 msgid "In the case where several formats of the same font family or font collection are packaged separately, a short form of the format, prepended by a dash, is added to the package name. We use @code{-ttf} for TrueType fonts, @code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts." msgstr "Für den Fall, dass mehrere Formate derselben Schriftfamilie oder Schriftartensammlung in separate Pakete kommen, wird ein Kurzname für das Format mit einem Strich vorne zum Paketnamen hinzugefügt. Wir benutzen @code{-ttf} für TrueType-Schriftarten, @code{-otf} für OpenType-Schriftarten und @code{-type1} für PostScript-Typ-1-Schriftarten." #. type: Plain text #: guix-git/doc/contributing.texi:1753 msgid "In general our code follows the GNU Coding Standards (@pxref{Top,,, standards, GNU Coding Standards}). However, they do not say much about Scheme, so here are some additional rules." msgstr "Im Allgemeinen folgt unser Code den GNU Coding Standards (siehe @ref{Top,,, standards, GNU Coding Standards}). Da diese aber nicht viel über Scheme zu sagen haben, folgen hier einige zusätzliche Regeln." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1761 #: guix-git/doc/contributing.texi:1762 #, no-wrap msgid "Programming Paradigm" msgstr "Programmierparadigmen" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "How to compose your elements." msgstr "Wie Sie Ihre Elemente zusammenstellen." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1768 #: guix-git/doc/contributing.texi:1769 #, no-wrap msgid "Modules" msgstr "Module" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "Where to store your code?" msgstr "Wo Sie Ihren Code unterbringen." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1784 #: guix-git/doc/contributing.texi:1785 #, no-wrap msgid "Data Types and Pattern Matching" msgstr "Datentypen und Mustervergleich" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "Implementing data structures." msgstr "Implementierung von Datenstrukturen." #. type: subsection #: guix-git/doc/contributing.texi:1759 guix-git/doc/contributing.texi:1815 #: guix-git/doc/contributing.texi:1816 #, no-wrap msgid "Formatting Code" msgstr "Formatierung von Code" #. type: menuentry #: guix-git/doc/contributing.texi:1759 msgid "Writing conventions." msgstr "Schreibkonventionen." #. type: Plain text #: guix-git/doc/contributing.texi:1767 msgid "Scheme code in Guix is written in a purely functional style. One exception is code that involves input/output, and procedures that implement low-level concepts, such as the @code{memoize} procedure." msgstr "Scheme-Code wird in Guix auf rein funktionale Weise geschrieben. Eine Ausnahme ist Code, der mit Ein- und Ausgabe zu tun hat, und Prozeduren, die grundlegende Konzepte implementieren, wie zum Beispiel die Prozedur @code{memoize}." #. type: cindex #: guix-git/doc/contributing.texi:1770 #, no-wrap msgid "build-side modules" msgstr "erstellungsseitige Module" #. type: cindex #: guix-git/doc/contributing.texi:1771 #, no-wrap msgid "host-side modules" msgstr "wirtsseitige Module" #. type: Plain text #: guix-git/doc/contributing.texi:1780 msgid "Guile modules that are meant to be used on the builder side must live in the @code{(guix build @dots{})} name space. They must not refer to other Guix or GNU modules. However, it is OK for a ``host-side'' module to use a build-side module. As an example, the @code{(guix search-paths)} module should not be imported and used by a package since it isn't meant to be used as a ``build-side'' module. It would also couple the module with the package's dependency graph, which is undesirable." msgstr "Guile-Module, die beim Erstellen nutzbar sein sollen, müssen im Namensraum @code{(guix build …)} leben. Sie dürfen auf keine anderen Guix- oder GNU-Module Bezug nehmen. Jedoch ist es in Ordnung, wenn ein „wirtsseitiges“ Modul ein erstellungsseitiges Modul benutzt. Zum Beispiel darf das Modul @code{(guix search-paths)} @emph{nicht} in einem Paket importiert und benutzt werden, weil es @emph{nicht} dazu gedacht ist, als „erstellungsseitiges“ Modul zu fungieren, und weil das Modul ein Teil des Abhängigkeitsgraphen des Pakets werden würde, und so eine Kopplung wollen wir nicht." #. type: Plain text #: guix-git/doc/contributing.texi:1783 msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}." msgstr "Module, die mit dem weiteren GNU-System zu tun haben, sollten im Namensraum @code{(gnu …)} und nicht in @code{(guix …)} stehen." #. type: Plain text #: guix-git/doc/contributing.texi:1792 msgid "The tendency in classical Lisp is to use lists to represent everything, and then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, and co. There are several problems with that style, notably the fact that it is hard to read, error-prone, and a hindrance to proper type error reports." msgstr "Im klassischen Lisp gibt es die Tendenz, Listen zur Darstellung von allem zu benutzen, und diese dann „händisch“ zu durchlaufen mit @code{car}, @code{cdr}, @code{cadr} und so weiter. Dieser Stil ist aus verschiedenen Gründen problematisch, insbesondere wegen der Tatsache, dass er schwer zu lesen, schnell fehlerbehaftet und ein Hindernis beim Melden von Typfehlern ist." #. type: findex #: guix-git/doc/contributing.texi:1793 #, no-wrap msgid "define-record-type*" msgstr "define-record-type*" #. type: findex #: guix-git/doc/contributing.texi:1794 #, no-wrap msgid "match-record" msgstr "match-record" #. type: cindex #: guix-git/doc/contributing.texi:1795 #, no-wrap msgid "pattern matching" msgstr "Mustervergleich" #. type: Plain text #: guix-git/doc/contributing.texi:1803 msgid "Guix code should define appropriate data types (for instance, using @code{define-record-type*}) rather than abuse lists. In addition, it should use pattern matching, via Guile’s @code{(ice-9 match)} module, especially when matching lists (@pxref{Pattern Matching,,, guile, GNU Guile Reference Manual}); pattern matching for records is better done using @code{match-record} from @code{(guix records)}, which, unlike @code{match}, verifies field names at macro-expansion time." msgstr "Guix-Code sollte angemessene Datentypen definieren (zum Beispiel mit @code{define-record-type*}), statt Listen zu missbrauchen. Außerdem sollte er das @code{(ice-9 match)}-Modul von Guile zum Mustervergleich benutzen, besonders mit Listen (siehe @ref{Pattern Matching,,, guile, Referenzhandbuch zu GNU Guile}), während bei Verbundstypen @code{match-record} aus dem Modul @code{(guix records)} angemessener ist, womit, anders als bei @code{match}, bereits bei der Makroumschreibung sichergestellt wird, dass die Feldnamen richtig sind." #. type: Plain text #: guix-git/doc/contributing.texi:1814 msgid "When defining a new record type, keep the @dfn{record type descriptor} (RTD) private (@pxref{Records,,, guile, GNU Guile Reference Manual}, for more on records and RTDs). As an example, the @code{(guix packages)} module defines @code{<package>} as the RTD for package records but it does not export it; instead, it exports a type predicate, a constructor, and field accessors. Exporting RTDs would make it harder to change the application binary interface (because code in other modules might be matching fields by position) and would make it trivial for users to forge records of that type, bypassing any checks we may have in the official constructor (such as ``field sanitizers'')." msgstr "Wenn Sie einen neuen Verbundstyp definieren, sollten Sie den Deskriptor des Verbundstyps (@abbr{RTD, Record Type Descriptor}) privat stellen (siehe @ref{Records,,, guile, Referenzhandbuch zu GNU Guile}, für nähere Informationen zu Verbundstypen und RTDs). Zum Beispiel wird durch das Modul @code{(guix packages)} der RTD @code{<package>} für den @code{package}-Verbundstyp definiert, aber @emph{nicht} exportiert. Stattdessen werden ein Typprädikat, ein Konstruktor und Prozeduren zum Zugriff auf die Felder exportiert. Wenn der RTD exportiert würde, könnte man die Binärschnittstelle (@abbr{ABI, Application Binary Interface}) schwer ändern (weil der Code anderer Module mit @code{match} passende Felder anhand deren Position abgleichen könnte) und es würde Nutzer verleiten, Verbundsobjekte dieses Typs falsch zu erzeugen, ohne dass die Überprüfungen im offiziellen Konstruktur laufen können (etwa „Feldsanitisierer“)." #. type: cindex #: guix-git/doc/contributing.texi:1818 #, no-wrap msgid "formatting code" msgstr "Formatierung von Code" #. type: cindex #: guix-git/doc/contributing.texi:1819 #, no-wrap msgid "coding style" msgstr "Code-Stil" #. type: Plain text #: guix-git/doc/contributing.texi:1826 msgid "When writing Scheme code, we follow common wisdom among Scheme programmers. In general, we follow the @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules}. This document happens to describe the conventions mostly used in Guile’s code too. It is very thoughtful and well written, so please do read it." msgstr "Beim Schreiben von Scheme-Code halten wir uns an die üblichen Gepflogenheiten unter Scheme-Programmierern. Im Allgemeinen bedeutet das, dass wir uns an @url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp Style Rules} halten. Es hat sich ergeben, dass dieses Dokument auch die Konventionen beschreibt, die im Code von Guile hauptsächlich verwendet werden. Es ist gut durchdacht und schön geschrieben, also lesen Sie es bitte." #. type: Plain text #: guix-git/doc/contributing.texi:1833 msgid "Some special forms introduced in Guix, such as the @code{substitute*} macro, have special indentation rules. These are defined in the @file{.dir-locals.el} file, which Emacs automatically uses. Also note that Emacs-Guix provides @code{guix-devel-mode} mode that indents and highlights Guix code properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference Manual})." msgstr "Ein paar in Guix eingeführte Sonderformen, wie zum Beispiel das @code{substitute*}-Makro, haben abweichende Regeln für die Einrückung. Diese sind in der Datei @file{.dir-locals.el} definiert, die Emacs automatisch benutzt. Beachten Sie auch, dass Emacs-Guix einen Modus namens @code{guix-devel-mode} bereitstellt, der Guix-Code richtig einrückt und hervorhebt (siehe @ref{Development,,, emacs-guix, Referenzhandbuch von Emacs-Guix})." #. type: cindex #: guix-git/doc/contributing.texi:1834 #, no-wrap msgid "indentation, of code" msgstr "Einrückung, Code-" #. type: cindex #: guix-git/doc/contributing.texi:1835 #, no-wrap msgid "formatting, of code" msgstr "Formatierung, Code-" #. type: Plain text #: guix-git/doc/contributing.texi:1838 msgid "If you do not use Emacs, please make sure to let your editor knows these rules. To automatically indent a package definition, you can also run:" msgstr "Falls Sie nicht Emacs verwenden, sollten Sie sicherstellen, dass Ihr Editor diese Regeln kennt. Um eine Paketdefinition automatisch einzurücken, können Sie auch Folgendes ausführen:" #. type: example #: guix-git/doc/contributing.texi:1841 #, no-wrap msgid "./pre-inst-env guix style @var{package}\n" msgstr "./pre-inst-env guix style @var{Paket}\n" #. type: Plain text #: guix-git/doc/contributing.texi:1845 msgid "@xref{Invoking guix style}, for more information." msgstr "Siehe @ref{Invoking guix style} für weitere Informationen." #. type: Plain text #: guix-git/doc/contributing.texi:1849 msgid "We require all top-level procedures to carry a docstring. This requirement can be relaxed for simple private procedures in the @code{(guix build @dots{})} name space, though." msgstr "Wir fordern von allen Prozeduren auf oberster Ebene, dass sie über einen Docstring verfügen. Diese Voraussetzung kann jedoch bei einfachen, privaten Prozeduren im Namensraum @code{(guix build …)} aufgeweicht werden." #. type: Plain text #: guix-git/doc/contributing.texi:1852 msgid "Procedures should not have more than four positional parameters. Use keyword parameters for procedures that take more than four parameters." msgstr "Prozeduren sollten nicht mehr als vier positionsbestimmte Parameter haben. Benutzen Sie Schlüsselwort-Parameter für Prozeduren, die mehr als vier Parameter entgegennehmen." #. type: Plain text #: guix-git/doc/contributing.texi:1866 msgid "Development is done using the Git distributed version control system. Thus, access to the repository is not strictly necessary. We welcome contributions in the form of patches as produced by @code{git format-patch} sent to the @email{guix-patches@@gnu.org} mailing list (@pxref{Submitting patches to a project,,, git, Git User Manual}). Contributors are encouraged to take a moment to set some Git repository options (@pxref{Configuring Git}) first, which can improve the readability of patches. Seasoned Guix developers may also want to look at the section on commit access (@pxref{Commit Access})." msgstr "Die Entwicklung wird mit Hilfe des verteilten Versionskontrollsystems Git durchgeführt. Daher ist eine ständige Verbindung zum Repository nicht unbedingt erforderlich. Wir begrüßen Beiträge in Form von Patches, die mittels @code{git format-patch} erstellt und an die Mailingliste @email{guix-patches@@gnu.org} geschickt werden (siehe @ref{Submitting patches to a project,,, git, Git-Benutzerhandbuch}). In diesem Fall möchten wir Ihnen nahelegen, zunächst einige Git-Repository-Optionen festzulegen (siehe @ref{Configuring Git}), damit Ihr Patch leichter lesbar wird. Erfahrene Guix-Entwickler möchten vielleicht auch einen Blick auf den Abschnitt über Commit-Zugriff werfen (siehe @ref{Commit Access})." #. type: Plain text #: guix-git/doc/contributing.texi:1873 msgid "This mailing list is backed by a Debbugs instance, which allows us to keep track of submissions (@pxref{Tracking Bugs and Changes}). Each message sent to that mailing list gets a new tracking number assigned; people can then follow up on the submission by sending email to @code{@var{ISSUE_NUMBER}@@debbugs.gnu.org}, where @var{ISSUE_NUMBER} is the tracking number (@pxref{Sending a Patch Series})." msgstr "Diese Mailing-Liste setzt auf einer Debbugs-Instanz auf, wodurch wir den Überblick über Eingereichtes behalten können (siehe @ref{Tracking Bugs and Changes}). Jede an diese Mailing-Liste gesendete Nachricht bekommt eine neue Folgenummer zugewiesen, so dass man eine Folge-E-Mail zur Einreichung an @code{@var{FEHLERNUMMER}@@debbugs.gnu.org} senden kann, wobei @var{FEHLERNUMMER} für die Folgenummer steht (siehe @ref{Sending a Patch Series})." #. type: Plain text #: guix-git/doc/contributing.texi:1877 msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples." msgstr "Bitte schreiben Sie Commit-Logs im ChangeLog-Format (siehe @ref{Change Logs,,, standards, GNU Coding Standards}); dazu finden Sie Beispiele unter den bisherigen Commits." #. type: Plain text #: guix-git/doc/contributing.texi:1887 msgid "You can help make the review process more efficient, and increase the chance that your patch will be reviewed quickly, by describing the context of your patch and the impact you expect it to have. For example, if your patch is fixing something that is broken, describe the problem and how your patch fixes it. Tell us how you have tested your patch. Will users of the code changed by your patch have to adjust their workflow at all? If so, tell us how. In general, try to imagine what questions a reviewer will ask, and answer those questions in advance." msgstr "Sie können dabei helfen, dass die Überprüfung Ihres Patches schneller vonstattengeht und die Wahrscheinlichkeit erhöhen, dass sich bald jemand den Patch anschaut: Beschreiben Sie die Umstände des Patches und wie er sich auswirken dürfte. Zum Beispiel, wenn etwas kaputt ist und der Patch das behebt, dann beschreiben Sie das Problem und wie es in Ihrem Patch behoben wird. Müssen die Verwender des betroffenen Codes dazu ihre Arbeitsweise ändern oder nicht? Wenn doch, schreiben Sie wie. Allgemein sollten Sie sich vorstellen, welche Fragen ein Überprüfender stellen würde, und diese im Voraus beantworten." #. type: Plain text #: guix-git/doc/contributing.texi:1890 msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:" msgstr "Bevor Sie einen Patch einreichen, der eine Paketdefinition hinzufügt oder verändert, gehen Sie bitte diese Prüfliste durch:" #. type: enumerate #: guix-git/doc/contributing.texi:1897 msgid "If the authors of the packaged software provide a cryptographic signature for the release tarball, make an effort to verify the authenticity of the archive. For a detached GPG signature file this would be done with the @code{gpg --verify} command." msgstr "Wenn die Autoren der verpackten Software eine kryptografische Signatur bzw. Beglaubigung für den Tarball der Veröffentlichung anbieten, so machen Sie sich bitte die Mühe, die Echtheit des Archivs zu überprüfen. Für eine abgetrennte GPG-Signaturdatei würden Sie das mit dem Befehl @code{gpg --verify} tun." #. type: enumerate #: guix-git/doc/contributing.texi:1901 msgid "Take some time to provide an adequate synopsis and description for the package. @xref{Synopses and Descriptions}, for some guidelines." msgstr "Nehmen Sie sich die Zeit, eine passende Zusammenfassung und Beschreibung für das Paket zu verfassen. Unter @ref{Synopses and Descriptions} finden Sie dazu einige Richtlinien." #. type: enumerate #: guix-git/doc/contributing.texi:1906 msgid "Run @code{guix lint @var{package}}, where @var{package} is the name of the new or modified package, and fix any errors it reports (@pxref{Invoking guix lint})." msgstr "Verwenden Sie @code{guix lint @var{Paket}}, wobei @var{Paket} das neue oder geänderte Paket bezeichnet, und beheben Sie alle gemeldeten Fehler (siehe @ref{Invoking guix lint})." #. type: enumerate #: guix-git/doc/contributing.texi:1910 msgid "Run @code{guix style @var{package}} to format the new package definition according to the project's conventions (@pxref{Invoking guix style})." msgstr "Verwenden Sie @code{guix style @var{Paket}}, um die neue Paketdefinition gemäß den Konventionen des Guix-Projekts zu formatieren (siehe @ref{Invoking guix style})." #. type: enumerate #: guix-git/doc/contributing.texi:1914 msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}." msgstr "Stellen Sie sicher, dass das Paket auf Ihrer Plattform erstellt werden kann, indem Sie @code{guix build @var{Paket}} ausführen." #. type: enumerate #: guix-git/doc/contributing.texi:1922 msgid "We recommend you also try building the package on other supported platforms. As you may not have access to actual hardware platforms, we recommend using the @code{qemu-binfmt-service-type} to emulate them. In order to enable it, add the @code{virtualization} service module and the following service to the list of services in your @code{operating-system} configuration:" msgstr "Wir empfehlen, dass Sie auch versuchen, das Paket auf anderen unterstützten Plattformen zu erstellen. Da Sie vielleicht keinen Zugang zu echter Hardware für diese Plattformen haben, empfehlen wir, den @code{qemu-binfmt-service-type} zu benutzen, um sie zu emulieren. Um ihn zu aktivieren, fügen Sie @code{virtualization} zu @code{use-service-modules} und den folgenden Dienst in die Liste der Dienste („services“) in Ihrer @code{operating-system}-Konfiguration ein:" #. type: lisp #: guix-git/doc/contributing.texi:1927 #, no-wrap msgid "" "(service qemu-binfmt-service-type\n" " (qemu-binfmt-configuration\n" " (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n" msgstr "" "(service qemu-binfmt-service-type\n" " (qemu-binfmt-configuration\n" " (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n" #. type: enumerate #: guix-git/doc/contributing.texi:1930 msgid "Then reconfigure your system." msgstr "Rekonfigurieren Sie anschließend Ihr System." #. type: enumerate #: guix-git/doc/contributing.texi:1935 msgid "You can then build packages for different platforms by specifying the @code{--system} option. For example, to build the \"hello\" package for the armhf or aarch64 architectures, you would run the following commands, respectively:" msgstr "Sie können Pakete für andere Plattformen erstellen lassen, indem Sie die Befehlszeilenoption @code{--system} angeben. Um zum Beispiel das Paket „hello“ für die Architekturen armhf oder aarch64 erstellen zu lassen, würden Sie jeweils die folgenden Befehle angeben:" #. type: example #: guix-git/doc/contributing.texi:1938 #, no-wrap msgid "" "guix build --system=armhf-linux --rounds=2 hello\n" "guix build --system=aarch64-linux --rounds=2 hello\n" msgstr "" "guix build --system=armhf-linux --rounds=2 hello\n" "guix build --system=aarch64-linux --rounds=2 hello\n" #. type: cindex #: guix-git/doc/contributing.texi:1941 #, no-wrap msgid "bundling" msgstr "gebündelt" #. type: enumerate #: guix-git/doc/contributing.texi:1944 msgid "Make sure the package does not use bundled copies of software already available as separate packages." msgstr "Achten Sie darauf, dass im Paket keine Software gebündelt mitgeliefert wird, die bereits in separaten Paketen zur Verfügung steht." #. type: enumerate #: guix-git/doc/contributing.texi:1953 msgid "Sometimes, packages include copies of the source code of their dependencies as a convenience for users. However, as a distribution, we want to make sure that such packages end up using the copy we already have in the distribution, if there is one. This improves resource usage (the dependency is built and stored only once), and allows the distribution to make transverse changes such as applying security updates for a given software package in a single place and have them affect the whole system---something that bundled copies prevent." msgstr "Manchmal enthalten Pakete Kopien des Quellcodes ihrer Abhängigkeiten, um Nutzern die Installation zu erleichtern. Als eine Distribution wollen wir jedoch sicherstellen, dass solche Pakete die schon in der Distribution verfügbare Fassung benutzen, sofern es eine gibt. Dadurch wird sowohl der Ressourcenverbrauch optimiert (die Abhängigkeit wird so nur einmal erstellt und gespeichert) als auch der Distribution die Möglichkeit gegeben, ergänzende Änderungen durchzuführen, um beispielsweise Sicherheitsaktualisierungen für ein bestimmtes Paket an nur einem Ort einzuspielen, die aber das gesamte System betreffen@tie{}– gebündelt mitgelieferte Kopien würden dies verhindern." #. type: enumerate #: guix-git/doc/contributing.texi:1962 msgid "Take a look at the profile reported by @command{guix size} (@pxref{Invoking guix size}). This will allow you to notice references to other packages unwillingly retained. It may also help determine whether to split the package (@pxref{Packages with Multiple Outputs}), and which optional dependencies should be used. In particular, avoid adding @code{texlive} as a dependency: because of its extreme size, use @code{texlive-updmap.cfg} procedure instead." msgstr "Schauen Sie sich das von @command{guix size} ausgegebene Profil an (siehe @ref{Invoking guix size}). Dadurch können Sie Referenzen auf andere Pakete finden, die ungewollt vorhanden sind. Dies kann auch dabei helfen, zu entscheiden, ob das Paket aufgespalten werden sollte (siehe @ref{Packages with Multiple Outputs}) und welche optionalen Abhängigkeiten verwendet werden sollten. Dabei sollten Sie es wegen seiner enormen Größe insbesondere vermeiden, @code{texlive} als eine Abhängigkeit hinzuzufügen; benutzen Sie stattdessen die Prozedur @code{texlive-updmap.cfg}." #. type: enumerate #: guix-git/doc/contributing.texi:1967 msgid "Check that dependent packages (if applicable) are not affected by the change; @code{guix refresh --list-dependent @var{package}} will help you do that (@pxref{Invoking guix refresh})." msgstr "Achten Sie darauf, dass abhängige Pakete (falls vorhanden) nicht von der Änderung beeinträchtigt werden; @code{guix refresh --list-dependent @var{Paket}} hilft Ihnen dabei (siehe @ref{Invoking guix refresh})." #. type: cindex #: guix-git/doc/contributing.texi:1969 #, no-wrap msgid "determinism, of build processes" msgstr "Determinismus, von Erstellungsprozessen" #. type: cindex #: guix-git/doc/contributing.texi:1970 #, no-wrap msgid "reproducible builds, checking" msgstr "Reproduzierbare Erstellungen, Überprüfung" #. type: enumerate #: guix-git/doc/contributing.texi:1974 msgid "Check whether the package's build process is deterministic. This typically means checking whether an independent build of the package yields the exact same result that you obtained, bit for bit." msgstr "Überprüfen Sie, ob der Erstellungsprozess deterministisch ist. Dazu prüfen Sie typischerweise, ob eine unabhängige Erstellung des Pakets genau dasselbe Ergebnis wie Ihre Erstellung hat, Bit für Bit." #. type: enumerate #: guix-git/doc/contributing.texi:1977 msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):" msgstr "Dies können Sie leicht tun, indem Sie dasselbe Paket mehrere Male hintereinander auf Ihrer Maschine erstellen (siehe @ref{Invoking guix build}):" #. type: example #: guix-git/doc/contributing.texi:1980 #, no-wrap msgid "guix build --rounds=2 my-package\n" msgstr "guix build --rounds=2 mein-paket\n" #. type: enumerate #: guix-git/doc/contributing.texi:1984 msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result." msgstr "Dies reicht aus, um eine ganze Klasse häufiger Ursachen von Nichtdeterminismus zu finden, wie zum Beispiel Zeitstempel oder zufallsgenerierte Ausgaben im Ergebnis der Erstellung." #. type: enumerate #: guix-git/doc/contributing.texi:1994 msgid "Another option is to use @command{guix challenge} (@pxref{Invoking guix challenge}). You may run it once the package has been committed and built by @code{@value{SUBSTITUTE-SERVER-1}} to check whether it obtains the same result as you did. Better yet: Find another machine that can build it and run @command{guix publish}. Since the remote build machine is likely different from yours, this can catch non-determinism issues related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files." msgstr "Eine weitere Möglichkeit ist, @command{guix challenge} (siehe @ref{Invoking guix challenge}) zu benutzen. Sie können es ausführen, sobald ein Paket commitet und von @code{@value{SUBSTITUTE-SERVER-1}} erstellt wurde, um zu sehen, ob dort dasselbe Ergebnis wie bei Ihnen geliefert wurde. Noch besser: Finden Sie eine andere Maschine, die das Paket erstellen kann, und führen Sie @command{guix publish} aus. Da sich die entfernte Erstellungsmaschine wahrscheinlich von Ihrer unterscheidet, können Sie auf diese Weise Probleme durch Nichtdeterminismus erkennen, die mit der Hardware zu tun haben@tie{}– zum Beispiel die Nutzung anderer Befehlssatzerweiterungen@tie{}– oder mit dem Betriebssystem-Kernel@tie{}– zum Beispiel, indem @code{uname} oder @file{/proc}-Dateien verwendet werden." # Hier gehe ich mal davon aus, dass Dokumentation generell zuerst in Englisch geschrieben wird, daher, werden solche Begriffe auch hier nicht übersetzt. #. type: enumerate #: guix-git/doc/contributing.texi:2000 msgid "When writing documentation, please use gender-neutral wording when referring to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth." msgstr "Beim Schreiben von Dokumentation achten Sie bitte auf eine geschlechtsneutrale Wortwahl, wenn Sie sich auf Personen beziehen, wie @uref{https://en.wikipedia.org/wiki/Singular_they, „they“@comma{} „their“@comma{} „them“ im Singular} und so weiter." #. type: enumerate #: guix-git/doc/contributing.texi:2004 msgid "Verify that your patch contains only one set of related changes. Bundling unrelated changes together makes reviewing harder and slower." msgstr "Stellen Sie sicher, dass Ihr Patch nur einen Satz zusammengehöriger Änderungen umfasst. Das Zusammenfassen nicht zusammengehöriger Änderungen erschwert und bremst das Durchsehen Ihres Patches." #. type: enumerate #: guix-git/doc/contributing.texi:2007 msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package." msgstr "Beispiele für nicht zusammengehörige Änderungen sind das Hinzufügen mehrerer Pakete auf einmal, oder das Aktualisieren eines Pakets auf eine neue Version zusammen mit Fehlerbehebungen für das Paket." #. type: enumerate #: guix-git/doc/contributing.texi:2012 msgid "Please follow our code formatting rules, possibly running @command{guix style} script to do that automatically for you (@pxref{Formatting Code})." msgstr "Bitte befolgen Sie unsere Richtlinien für die Code-Formatierung; womöglich wollen Sie dies automatisch tun lassen durch das Skript @command{guix style} (siehe @ref{Formatting Code})." #. type: enumerate #: guix-git/doc/contributing.texi:2020 msgid "When possible, use mirrors in the source URL (@pxref{Invoking guix download}). Use reliable URLs, not generated ones. For instance, GitHub archives are not necessarily identical from one generation to the next, so in this case it's often better to clone the repository. Don't use the @command{name} field in the URL: it is not very useful and if the name changes, the URL will probably be wrong." msgstr "Benutzen Sie, wenn möglich, Spiegelserver (Mirrors) in der Quell-URL (siehe @ref{Invoking guix download}). Verwenden Sie verlässliche URLs, keine automatisch generierten. Zum Beispiel sind Archive von GitHub nicht immer identisch von einer Generation auf die nächste, daher ist es in diesem Fall besser, als Quelle einen Klon des Repositorys zu verwenden. Benutzen Sie @emph{nicht} das @command{name}-Feld beim Angeben der URL; er hilft nicht wirklich und wenn sich der Name ändert, stimmt die URL nicht mehr." #. type: enumerate #: guix-git/doc/contributing.texi:2024 msgid "Check if Guix builds (@pxref{Building from Git}) and address the warnings, especially those about use of undefined symbols." msgstr "Überprüfen Sie, ob Guix erstellt werden kann (siehe @ref{Building from Git}) und kümmern Sie sich um die Warnungen, besonders um solche über nicht definierte Symbole." #. type: enumerate #: guix-git/doc/contributing.texi:2027 msgid "Make sure your changes do not break Guix and simulate a @code{guix pull} with:" msgstr "Stellen Sie sicher, dass Ihre Änderungen Guix nicht beeinträchtigen, und simulieren Sie eine Ausführung von @code{guix pull} über den Befehl:" #. type: example #: guix-git/doc/contributing.texi:2029 #, no-wrap msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n" msgstr "guix pull --url=/pfad/zu/ihrem/checkout --profile=/tmp/guix.master\n" #. type: Plain text #: guix-git/doc/contributing.texi:2037 msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject, if your patch is to be applied on a branch other than @code{master}, say @code{core-updates}, specify it in the subject like @samp{[PATCH core-updates] @dots{}}." msgstr "Bitte benutzen Sie @samp{[PATCH] …} als Betreff, wenn Sie einen Patch an die Mailing-Liste schicken. Soll Ihr Patch auf einen anderen Branch als @code{master} angewandt werden, z.B.@: @code{core-updates}, geben Sie dies im Betreff an als @samp{[PATCH core-updates] …}." #. type: Plain text #: guix-git/doc/contributing.texi:2044 #, fuzzy #| msgid "You may use your email client or the @command{git send-email} command (@pxref{Sending a Patch Series}). We prefer to get patches in plain text messages, either inline or as MIME attachments. You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches." msgid "You may use your email client, the @command{git send-email} command (@pxref{Sending a Patch Series}) or the @command{mumi send-email} command (@pxref{Debbugs User Interfaces}). We prefer to get patches in plain text messages, either inline or as MIME attachments. You are advised to pay attention if your email client changes anything like line breaks or indentation which could potentially break the patches." msgstr "Sie können dazu Ihr E-Mail-Programm oder den Befehl @command{git send-email} benutzen (siehe @ref{Sending a Patch Series}). Wir bevorzugen es, Patches als reine Textnachrichten zu erhalten, entweder eingebettet (inline) oder als MIME-Anhänge. Sie sind dazu angehalten, zu überprüfen, ob Ihr Mail-Programm solche Dinge wie Zeilenumbrüche oder die Einrückung verändert, wodurch die Patches womöglich nicht mehr funktionieren." #. type: Plain text #: guix-git/doc/contributing.texi:2049 msgid "Expect some delay when you submit your very first patch to @email{guix-patches@@gnu.org}. You have to wait until you get an acknowledgement with the assigned tracking number. Future acknowledgements should not be delayed." msgstr "Rechnen Sie damit, dass es etwas dauert, bis Ihr erster Patch an @email{guix-patches@@gnu.org} zu sehen ist. Sie werden warten müssen, bis Sie eine Bestätigung mit der zugewiesenen Folgenummer bekommen. Spätere Bestätigungen sollten sofort kommen." #. type: Plain text #: guix-git/doc/contributing.texi:2052 msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{ISSUE_NUMBER}-done@@debbugs.gnu.org}." msgstr "Wenn dadurch ein Fehler behoben wurde, schließen Sie bitte den Thread, indem Sie eine E-Mail an @email{@var{FEHLERNUMMER}-done@@debbugs.gnu.org} senden." #. type: subsection #: guix-git/doc/contributing.texi:2057 guix-git/doc/contributing.texi:2059 #: guix-git/doc/contributing.texi:2060 #, no-wrap msgid "Configuring Git" msgstr "Git einrichten" #. type: subsection #: guix-git/doc/contributing.texi:2057 guix-git/doc/contributing.texi:2083 #: guix-git/doc/contributing.texi:2084 #, no-wrap msgid "Sending a Patch Series" msgstr "Senden einer Patch-Reihe" #. type: subsection #: guix-git/doc/contributing.texi:2057 guix-git/doc/contributing.texi:2224 #: guix-git/doc/contributing.texi:2225 #, no-wrap msgid "Teams" msgstr "Teams" #. type: cindex #: guix-git/doc/contributing.texi:2061 #, no-wrap msgid "git configuration" msgstr "Git-Konfiguration" #. type: code{#1} #: guix-git/doc/contributing.texi:2062 guix-git/doc/contributing.texi:2087 #, no-wrap msgid "git format-patch" msgstr "git format-patch" #. type: code{#1} #: guix-git/doc/contributing.texi:2063 guix-git/doc/contributing.texi:2086 #, no-wrap msgid "git send-email" msgstr "git send-email" #. type: Plain text #: guix-git/doc/contributing.texi:2071 msgid "If you have not done so already, you may wish to set a name and email that will be associated with your commits (@pxref{telling git your name, , Telling Git your name, git, Git User Manual}). If you wish to use a different name or email just for commits in this repository, you can use @command{git config --local}, or edit @file{.git/config} in the repository instead of @file{~/.gitconfig}." msgstr "Wenn es noch nicht geschehen ist, wollen Sie vielleicht den Namen und die E-Mail-Adresse festlegen, mit der Ihre Commits ausgestellt werden (siehe @ref{telling git your name, , Telling Git your name, git, Git-Benutzerhandbuch}). Wenn Sie einen anderen Namen oder eine andere E-Mail-Adresse nur für Commits in diesem Repository verwenden möchten, können Sie @command{git config --local} benutzen oder Änderungen in der Datei @file{.git/config} im Repository statt in @file{~/.gitconfig} durchführen." #. type: cindex #: guix-git/doc/contributing.texi:2072 #, no-wrap msgid "commit-msg hook" msgstr "commit-msg, Hook" #. type: Plain text #: guix-git/doc/contributing.texi:2082 msgid "Other important Git configuration will automatically be configured when building the project (@pxref{Building from Git}). A @file{.git/hooks/commit-msg} hook will be installed that embeds @samp{Change-Id} Git @emph{trailers} in your commit messages for traceability purposes. It is important to preserve these when editing your commit messages, particularly if a first version of your proposed changes was already submitted for review. If you have a @file{commit-msg} hook of your own you would like to use with Guix, you can place it under the @file{.git/hooks/commit-msg.d/} directory." msgstr "Weitere wichtige Git-Einstellungen werden automatisch vorgenommen, wenn Sie das Projekt kompilieren (siehe @ref{Building from Git}). Ein Hook @file{.git/hooks/commit-msg} wird installiert, durch den die Git-Anhangszeile @samp{Change-Id} in Ihre Commit-Nachrichten eingefügt wird, um den Zusammenhang nachvollziehen zu können. Bitte behalten Sie diese bei, wenn Sie Ihre Commit-Nachrichten nachbearbeiten, vor allem, wenn Sie bereits eine erste Fassung der von Ihnen vorgeschlagenen Änderungen zur Überprüfung eingereicht haben. Wenn Sie einen eigenen @file{commit-msg}-Hook mit Guix verwenden möchten, können Sie ihn im Verzeichnis @file{.git/hooks/commit-msg.d/} unterbringen." #. type: cindex #: guix-git/doc/contributing.texi:2085 #, no-wrap msgid "patch series" msgstr "Patch-Reihe" #. type: anchor{#1} #: guix-git/doc/contributing.texi:2089 guix-git/doc/contributing.texi:2096 #, no-wrap msgid "Single Patches" msgstr "Einzelne Patches" #. type: Plain text #: guix-git/doc/contributing.texi:2096 msgid "The @command{git send-email} command is the best way to send both single patches and patch series (@pxref{Multiple Patches}) to the Guix mailing list. Sending patches as email attachments may make them difficult to review in some mail clients, and @command{git diff} does not store commit metadata." msgstr "Der Befehl @command{git send-email} ist die beste Art, wie Sie sowohl einzelne Patches als auch Patch-Reihen (siehe @ref{Multiple Patches}) an die Guix-Mailing-Liste schicken können. Würden Sie Patches als E-Mail-Anhänge schicken, wäre es in manchen Mailprogrammen umständlich, diese zu überprüfen. Und wenn Sie aus @command{git diff} kopierten, würden die Metadaten des Commits fehlen." #. type: quotation #: guix-git/doc/contributing.texi:2100 msgid "The @command{git send-email} command is provided by the @code{send-email} output of the @code{git} package, i.e. @code{git:send-email}." msgstr "Der Befehl @command{git send-email} ist in der Ausgabe namens @code{send-email} des @code{git}-Pakets enthalten, also @code{git:send-email}." #. type: Plain text #: guix-git/doc/contributing.texi:2107 msgid "The following command will create a patch email from the latest commit, open it in your @var{EDITOR} or @var{VISUAL} for editing, and send it to the Guix mailing list to be reviewed and merged. Assuming you have already configured Git according to @xref{Configuring Git}, you can simply use:" msgstr "Mit dem folgenden Befehl erzeugen Sie eine E-Mail mit dem Patch aus dem neuesten Commit, öffnen diese in Ihrem gewählten @var{EDITOR} oder @var{VISUAL}, um sie zu bearbeiten, und schicken sie an die Guix-Mailing-Liste, damit jemand sie überprüft und merget. Vorausgesetzt Sie haben Git bereits so eingerichtet wie in Abschnitt @ref{Configuring Git} beschrieben, können Sie einfach dies benutzen:" #. type: example #: guix-git/doc/contributing.texi:2110 #, no-wrap msgid "$ git send-email --annotate -1\n" msgstr "$ git send-email --annotate -1\n" #. type: quotation #: guix-git/doc/contributing.texi:2112 guix-git/doc/guix.texi:10488 #: guix-git/doc/guix.texi:20444 guix-git/doc/guix.texi:20452 #: guix-git/doc/guix.texi:34615 #, no-wrap msgid "Tip" msgstr "Tipp" #. type: quotation #: guix-git/doc/contributing.texi:2118 msgid "To add a prefix to the subject of your patch, you may use the @option{--subject-prefix} option. The Guix project uses this to specify that the patch is intended for a branch or repository other than the @code{master} branch of @url{https://git.savannah.gnu.org/cgit/guix.git}." msgstr "Wenn Sie in der Betreffzeile zu Ihrem Patch ein zusätzliches Präfix mitgeben möchten, können Sie die Befehlszeilenoption @option{--subject-prefix} benutzen. Beim Guix-Projekt wird so angegeben, dass der Patch für einen bestimmten Branch oder ein anderes Repository bestimmt ist, statt für den @code{master}-Branch von @url{https://git.savannah.gnu.org/cgit/guix.git}." #. type: example #: guix-git/doc/contributing.texi:2121 #, no-wrap msgid "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n" msgstr "git send-email --annotate --subject-prefix='PATCH core-updates' -1\n" #. type: Plain text #: guix-git/doc/contributing.texi:2128 msgid "The patch email contains a three-dash separator line after the commit message. You may ``annotate'' the patch with explanatory text by adding it under this line. If you do not wish to annotate the email, you may drop the @option{--annotate} option." msgstr "In der Patch-E-Mail finden Sie eine Trennlinie aus drei Bindestrichen unter der Commit-Nachricht. Sie dürfen erklärende Bemerkungen zum Patch unterhalb dieser Linie anbringen. Wenn Sie keine solchen Annotationen in der E-Mail schreiben möchten, können Sie oben auf die Befehlszeilenoption @option{--annotate} verzichten." #. type: Plain text #: guix-git/doc/contributing.texi:2135 msgid "If you need to send a revised patch, don't resend it like this or send a ``fix'' patch to be applied on top of the last one; instead, use @command{git commit --amend} or @url{https://git-rebase.io, @command{git rebase}} to modify the commit, and use the @email{@var{ISSUE_NUMBER}@@debbugs.gnu.org} address and the @option{-v} flag with @command{git send-email}." msgstr "Wenn Sie einen überarbeiteten Patch schicken müssen, geht das anders. Machen Sie es @emph{nicht} so und schicken Sie @emph{keinen} Patch mit einem „Fix“, der als Nächstes angewandt werden müsste, sondern verwenden Sie stattdessen @command{git commit --amend} oder @url{https://git-rebase.io, @command{git rebase}}, um den alten Commit zu verändern, und schicken den an die Adresse @email{@var{FEHLERNUMMER}@@debbugs.gnu.org}, wobei Sie außerdem die Befehlszeilenoption @option{-v} von @command{git send-email} angeben." #. type: example #: guix-git/doc/contributing.texi:2140 #, no-wrap msgid "" "$ git commit --amend\n" "$ git send-email --annotate -v@var{REVISION} \\\n" " --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -1\n" msgstr "" "$ git commit --amend\n" "$ git send-email --annotate -v@var{REVISION} \\\n" " --to=@var{FEHLERNUMMER}@@debbugs.gnu.org -1\n" #. type: quotation #: guix-git/doc/contributing.texi:2146 msgid "Due to an apparent bug in @command{git send-email}, @option{-v @var{REVISION}} (with the space) will not work; you @emph{must} use @option{-v@var{REVISION}}." msgstr "Offenbar gibt es einen Fehler in @command{git send-email}, wodurch Sie @emph{nicht} @option{-v @var{REVISION}} (mit einem Leerzeichen) schreiben dürfen; lediglich @option{-v@var{REVISION}} funktioniert." #. type: Plain text #: guix-git/doc/contributing.texi:2152 msgid "You can find out @var{ISSUE_NUMBER} either by searching on the mumi interface at @url{https://issues.guix.gnu.org} for the name of your patch or reading the acknowledgement email sent automatically by Debbugs in reply to incoming bugs and patches, which contains the bug number." msgstr "Die @var{FEHLERNUMMER} finden Sie heraus, indem Sie entweder auf der Mumi-Oberfläche auf @url{https://issues.guix.gnu.org} nach dem Namen Ihres Patches suchen oder indem Sie in Ihren E-Mails auf die Eingangsbestätigung schauen, die Debbugs Ihnen automatisch als Antwort auf eingehende Fehlerberichte (Bugs) und Patches hat zukommen lassen. Darin finden Sie die Fehlernummer." #. type: anchor{#1} #: guix-git/doc/contributing.texi:2153 guix-git/doc/contributing.texi:2155 #, no-wrap msgid "Notifying Teams" msgstr "Teams ansprechen" #. type: cindex #: guix-git/doc/contributing.texi:2155 guix-git/doc/contributing.texi:2226 #, no-wrap msgid "teams" msgstr "Teams" #. type: Plain text #: guix-git/doc/contributing.texi:2164 msgid "If your git checkout has been correctly configured (@pxref{Configuring Git}), the @command{git send-email} command will automatically notify the appropriate team members, based on the scope of your changes. This relies on the @file{etc/teams.scm} script, which can also be invoked manually if you do not use the preferred @command{git send-email} command to submit patches. To list the available actions of the script, you can invoke it via the @command{etc/teams.scm help} command. For more information regarding teams, @pxref{Teams}." msgstr "Wenn Ihr Git-Ckeckout richtig eingerichtet ist (siehe @ref{Configuring Git}), wird der Befehl @command{git send-email} automatisch die Mitglieder des zuständigen Teams benachrichtigen. Dazu analysiert das Skript @file{etc/teams.scm} Ihre Änderungen. Sie können es auch selbst aufrufen, wenn Sie den zum Einreichen von Patches bevorzugten Befehl @command{git send-email} meiden. Um die verfügbaren Aktionen für dieses Skript zu lesen, können Sie es mit dem Befehl @command{etc/teams.scm help} aufrufen. Für weitere Informationen über Teams siehe den Abschnitt @ref{Teams}." #. type: quotation #: guix-git/doc/contributing.texi:2168 msgid "On foreign distros, you might have to use @command{./pre-inst-env git send-email} for @file{etc/teams.scm} to work." msgstr "Auf Fremddistributionen müssen Sie vielleicht stattdessen @command{./pre-inst-env git send-email} aufrufen, damit Sie @file{etc/teams.scm} benutzen können." #. type: anchor{#1} #: guix-git/doc/contributing.texi:2170 guix-git/doc/contributing.texi:2172 #, no-wrap msgid "Multiple Patches" msgstr "Mehrere Patches" #. type: cindex #: guix-git/doc/contributing.texi:2172 #, no-wrap msgid "cover letter" msgstr "Deckblatt (Cover Letter)" #. type: Plain text #: guix-git/doc/contributing.texi:2178 msgid "While @command{git send-email} alone will suffice for a single patch, an unfortunate flaw in Debbugs means you need to be more careful when sending multiple patches: if you send them all to the @email{guix-patches@@gnu.org} address, a new issue will be created for each patch!" msgstr "Obwohl @command{git send-email} allein für einen einzelnen Patch genügt, führt eine Unzulänglichkeit in Debbugs dazu, dass Sie beim Versenden mehrerer Patches achtgeben müssen: Wenn Sie alle auf einmal an die Adresse @email{guix-patches@@gnu.org} schicken würden, würde für jeden Patch jeweils ein Fehlerbericht eröffnet!" #. type: Plain text #: guix-git/doc/contributing.texi:2184 msgid "When sending a series of patches, it's best to send a Git ``cover letter'' first, to give reviewers an overview of the patch series. We can create a directory called @file{