# German translations for PACKAGE package # Copyright (C) 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # Automatically generated, 2020. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-07-11 20:48+0000\n" "PO-Revision-Date: 2020-04-24 11:25+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\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" #. type: Title # #: citests.md #, no-wrap msgid "Continuous tests" msgstr "" #. type: Plain text #: citests.md #, no-wrap msgid "" "
\n" "The following projects are tested within the reproducible test infrastructure.\n" "Click the different links to see current tests and results.\n" "
\n" msgstr "" #. type: Plain text #: citests.md #, no-wrap msgid "" "
\n" " {% for project in site.data.projects %}\n" " {% if project.tests and project.tests_disabled != true and project.tests_external != true %}\n" "
\n" "
\n" " \n" "
\n" "
\n" " {% endif %}\n" " {% endfor %}\n" "
\n" msgstr "" #. type: Title # #: citests.md #, no-wrap msgid "External tests" msgstr "Externe Tests" #. type: Plain text #: citests.md #, no-wrap msgid "" "
\n" "The following projects are being tested outside the reproducible test infrastructure.\n" "
\n" msgstr "" "
\n" "Die folgenden Projekte werden außerhalb der Reproducible-Tests Infrastruktur getestet.\n" "
\n" #. type: Plain text #: citests.md #, no-wrap msgid "" "
\n" " {% for project in site.data.projects %}\n" " {% if project.tests and project.tests_external == true %}\n" "
\n" "
\n" " \n" "
\n" "
\n" " {% endif %}\n" " {% endfor %}\n" "
\n" msgstr "" #. type: Title # #: citests.md #, no-wrap msgid "Disabled tests" msgstr "Deaktivierte Tests" #. type: Plain text #: citests.md #, no-wrap msgid "" "
\n" "The following projects were once tested within the reproducible test infrastructure, though now this tests\n" "are disabled as they became unmaintained. Please contact us if you want to revive them.\n" "
\n" msgstr "" #. type: Plain text #: citests.md #, no-wrap msgid "" "
\n" " {% for project in site.data.projects %}\n" " {% if project.tests and project.tests_disabled == true %}\n" "
\n" "
\n" " \n" "
\n" "
\n" " {% endif %}\n" " {% endfor %}\n" "
\n" msgstr "" #. type: Yaml Front Matter Hash Value: title #: docs.md #, no-wrap msgid "Documentation" msgstr "" #. type: Plain text #: docs.md msgid "Getting reproducible builds for your software or distribution might be easier than you think." msgstr "" #. type: Plain text #: docs.md msgid "However, it might require small changes to your build system and a strategy on how to enable others to recreate an environment in which the builds can be reproduced." msgstr "" #. type: Yaml Front Matter Array Element: redirect_from #: donate.md #, no-wrap msgid "/funding/" msgstr "" #. type: Title # #: donate.md #, no-wrap msgid "Help the Reproducible Builds effort!" msgstr "" #. type: Plain text #: donate.md msgid "{: .lead .pb-3} The not-for-profit Reproducible Builds effort needs your help to continue its work towards ensuring the security of computer systems of all shapes and sizes around the world. We use any and all donated funds to ensure focused and intense work on ensuring this mission." msgstr "" #. type: Plain text #: donate.md msgid "[![Software Freedom Conservancy]({{ \"/assets/images/sponsor/conservancy.png#left\" | relative_url }})](https://sfconservancy.org/)" msgstr "" #. type: Plain text #: donate.md msgid "The Reproducible Builds project is a member of the [Software Freedom Conservancy](https://sfconservancy.org/), a [501(c)3](https://en.wikipedia.org/wiki/501(c)(3)_organization) non-profit organisation. Conservancy has allowed us to pool organisational resources with other projects, such as Selenium, Inkscape, Samba, and Wine, in order to reduce the management overhead associated with creating our own, dedicated legal entity." msgstr "" #. type: Plain text #: donate.md msgid "See [who is currently supporting]({{ \"sponsors\" | relative_url }}) the Reproducible Builds project. {: .lead}" msgstr "" #. type: Title ### #: donate.md #, no-wrap msgid "About the project" msgstr "" #. type: Plain text #: donate.md msgid "Whilst anyone may inspect the source code of free and open source software for malicious flaws, most software is distributed pre-compiled to end users." msgstr "" #. type: Plain text #: donate.md msgid "The motivation behind the Reproducible Builds project is to permit verification that no flaws have been introduced during the compilation process—either maliciously or accidentally—by promising identical results are always generated from a given source, thus allowing multiple third-parties to come to a consensus on whether a system is compromised." msgstr "" #. type: Plain text #: donate.md msgid "Your continued support will be key in solving this important problem which affects systems of all sizes, from embedded microcontrollers to the largest government and corporate systems." msgstr "" #. type: Title #### #: donate.md #, no-wrap msgid "Past work" msgstr "" #. type: Bullet: '* ' #: donate.md msgid "94% of packages in [Debian](https://debian.org/) are reproducible in our tests, and [Debian Policy](https://www.debian.org/doc/debian-policy/) now recommends that builds are reproducible. Support for our build metadata format (`.buildinfo`) has been merged into the official toolchain." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Large amount of cross-distribution collaboration — [Tails](https://tails.boum.org/) and [Coreboot](https://www.coreboot.org/) now offer reproducible ISO images based heavily on our work, and [NetBSD](https://www.netbsd.org/) offer a reproducible base system to complement considerable progress from [F-Droid](https://f-droid.org/en/), [openSUSE](https://www.opensuse.org/) and [ArchLinux](https://www.archlinux.org/). In addition, we are also providing continuous reproducible builds testing for eight Linux distributions." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Core patches written and submitted for GCC, R and Go, Rust introduced \"file maps\" in support of reproducibility after our feedback." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "A number of highly lauded presentations (LCA, Embedded Linux onference, LibrePlanet, Scale15x, CCC, OSSE, LinuxCon China, Open Compliance Summit, etc.) as well highly-productive meetups in \"real life\"." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Countless features in [diffoscope](https://diffoscope.org/) and other tools; 1000s of lines changed with extensive use outside of a reproducibility context." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Mentoring in [Outreachy](https://www.outreachy.org/) and [GSoC](https://summerofcode.withgoogle.com/) to ease inclusion of new contributors especially ones from under-represented groups in technology." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Almost 3 years of regular weekly newsletters as well as IRC-based meetings. Friendly communications have ensured that newcomers from all backgrounds feel involved and welcome." msgstr "" #. type: Title #### #: donate.md #, no-wrap msgid "Future work" msgstr "" #. type: Plain text #: donate.md msgid "The Reproducible Builds team has demonstrated that it is, in principle, possible to build a Linux distribution in a reproducible manner and have solved many of the issues in doing so." msgstr "" #. type: Plain text #: donate.md msgid "However, the next release of Debian is currently not yet 100% reproducible and funding to support on-going maintenance of critical infrastructure will be absolutely essential to reach this goal." msgstr "" #. type: Plain text #: donate.md msgid "This not only includes the administration of around 42 build nodes across multiple architectures, it requires continuous and patient work with package maintainers and upstreams to merge reproducibility-related patches. It also includes extending the scope of [our testing framework](https://tests.reproducible-builds.org/) to even more projects, as well as improving the existing tests and reports." msgstr "" #. type: Plain text #: donate.md msgid "In addition, there are currently no tools that let a user know whether packages that they are installing are reproducible or not, required to \"close the loop\" and allow end-users to finally truly validate the software they are running on their machines." msgstr "" #. type: Plain text #: donate.md msgid "Furthermore, maintaining momentum — both in terms of public perception and in private — around the various related projects such as *diffoscope*, etc. will be key in ensuring reproducible builds become a reality." msgstr "" #. type: Title ### #: donate.md #, no-wrap msgid "Benefits of sponsorship" msgstr "" #. type: Bullet: '* ' #: donate.md msgid "You (or your company) are contributing to a renowned and respected free/open source project." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Community consciousness of your company (and its promotion of Reproducible Builds) will be increased in the minds of the wider ecosystem." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "For corporate donations that equal or are more than the Bronze level, your logo will be placed on our site for one year." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "People find out about Reproducible Builds first from our website; having a link from our website therefore will associate you and/or your company as a supporter of the well-known and respected Reproducible Builds project." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Contributions are tax-deductible to the extent permitted by law." msgstr "" #. type: Plain text #: donate.md #, no-wrap msgid "**Please see our list of [current sponsors]({{ \"sponsors\" | relative_url }}).**\n" msgstr "" #. type: Title ### #: donate.md #, no-wrap msgid "Logos" msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Placement on the front page of `https://reproducible-builds.org` will be for donations that equal or are more than the *Platinum* level." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "For donations that are equal to the *Gold* level, your logo will be placed on each page of the documentation hosted at `https://reproducible-builds.org/docs/`." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Logo placement is alphabetically ordered within each category. Position will be maintained as long as sponsorship is continued each year." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Logos on the front page will only be there for a year starting from when your logo is put up on the page." msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Logos may be up to 468 pixels wide and 165 pixels tall. Platinum-level sponsors may be up to 600 pixels wide and 250 pixels tall." msgstr "" #. type: Title ### #: donate.md #, no-wrap msgid "Levels" msgstr "" #. type: Plain text #: donate.md msgid "Below are the names and amounts associated with levels of sponsorship (all values in USD and per year):" msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Platinum: $300,000" msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Gold: $125,000" msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Silver: $75,000" msgstr "" #. type: Bullet: '* ' #: donate.md msgid "Bronze: $30,000" msgstr "" #. type: Title ## #: donate.md #, no-wrap msgid "Non-monetary Donations" msgstr "" #. type: Plain text #: donate.md msgid "The Reproducible Builds project will naturally consider non-monetary donations to the project such as hardware or hosting where we will set a sponsorship level appropriately. (Please note that non-monetary donations may not be tax-deductible; to confirm, you should seek the advice of a qualified tax professional. In general, we suggest cash donations, as that process is much simpler.)" msgstr "" #. type: Title ## #: donate.md #, no-wrap msgid "Contact" msgstr "" #. type: Plain text #: donate.md msgid "Please contact us ([info@reproducible-builds.org](mailto:info@reproducible-builds.org)) for more information. Thank you for your consideration and we thank you in advance for your support." msgstr "" #. type: Title ## #: donate.md #, no-wrap msgid "Paypal" msgstr "" #. type: Plain text #: donate.md msgid "The easiest way to individually donate to the project is through [PayPal](https://www.paypal.com). You can use this button to donate to us:" msgstr "" #. type: Plain text #: donate.md #, no-wrap msgid "" "
\n" " \n" " \n" " \n" "
\n" msgstr "" #. type: Title ## #: donate.md #, no-wrap msgid "Other methods" msgstr "" #. type: Plain text #: donate.md msgid "We can accept check donations drawn in USD from banks in the USA. Donations from banks outside of the US or not in USD should be handled by wire transfer. Please make your check payable to \"Software Freedom Conservancy, Inc.\" and to place \"Directed donation: Reproducible Builds\" in the memo field. Checks should then be mailed to:" msgstr "" #. type: Plain text #: donate.md #, no-wrap msgid "" " Software Freedom Conservancy, Inc.\n" " 137 Montague ST STE 380\n" " BROOKLYN, NY 11201\n" " USA\n" msgstr "" #. type: Plain text #: donate.md #, no-wrap msgid "" "Conservancy also accepts other\n" "methods to receive donations, including US cheques and wire transfers.\n" "If you are interested please get in touch with us!\n" msgstr "" #. type: Plain text #: donate.md msgid "![]({{ \"/assets/images/sponsor/team.jpg\" | relative_url }})" msgstr "" #. type: Title # #: events.md #, no-wrap msgid "Events" msgstr "Events" #. type: Plain text #: events.md #, fuzzy, no-wrap #| msgid "Events are organized to exchange ideas about reproducible builds, get a better understanding or cooperate on improving code or specifications." msgid "" "Events are organized to exchange ideas about reproducible builds, get a better\n" "understanding and cooperate, be it on improving code or specifications or something new, which noone saw coming in retrospect.\n" "
\n" "(Due to the unprecedented events of 2020 and following, there were no in-person events during two years.)\n" msgstr "Events werden zum Ideenaustausch über Reproducible-Builds, Verbesserung des Verständnisses, der Zusammenarbeit und Verbsesserung von Programmcode und Spezifikationen organisiert." #. type: Plain text #: events.md msgid "{% assign sorted_events = site.events | sort: 'event_date' | reverse %} {% for page in sorted_events %} {% if page.event_date_string and page.event_hide != true %}" msgstr "" #. type: Title ## #: events.md #, no-wrap msgid "{{ page.title }}" msgstr "" #. type: Plain text #: events.md #, no-wrap msgid "*{{ page.event_date_string }}* — {{ page.event_location }}\n" msgstr "" #. type: Plain text #: events.md msgid "{{ page.event_summary }}" msgstr "" #. type: Plain text #: events.md msgid "[Read more…]({{ page.permalink | relative_url }}) {% endif %} {% endfor %}" msgstr "" #. type: Yaml Front Matter Hash Value: title #: index.md #, no-wrap msgid "Home" msgstr "" #. type: Yaml Front Matter Hash Value: title_head #: index.md #, no-wrap msgid "Reproducible Builds — a set of software development practices that create an independently-verifiable path from source to binary code" msgstr "" #. type: Plain text #: index.md #, no-wrap msgid "" "
\n" "
\n" "
\n" " \n" " \"Reproducible\n" " \n" msgstr "" #. type: Plain text #: index.md #, no-wrap msgid "" "

\n" " Reproducible builds are a set of software development\n" " practices that create an independently-verifiable path from source\n" " to binary code.\n" msgstr "" #. type: Plain text #: index.md #, no-wrap msgid "" " \n" " (more)\n" " \n" "

\n" "
\n" "
\n" "
\n" msgstr "" #. type: Plain text #: index.md msgid "{% include nav_buttons.html %}" msgstr "" #. type: Title ## #: index.md #, no-wrap msgid "Why does it matter?" msgstr "" #. type: Plain text #: index.md msgid "Whilst anyone may inspect the source code of free and open source software for malicious flaws, most software is distributed pre-compiled with no method to confirm whether they correspond." msgstr "" #. type: Plain text #: index.md msgid "This incentivises attacks on developers who release software, not only via traditional exploitation, but also in the forms of political influence, blackmail or even threats of violence." msgstr "" #. type: Plain text #: index.md msgid "This is particularly a concern for developers collaborating on privacy or security software: attacking these typically result in compromising particularly politically-sensitive targets such as dissidents, journalists and whistleblowers, as well as anyone wishing to communicate securely under a repressive regime." msgstr "" #. type: Plain text #: index.md msgid "Whilst individual developers are a natural target, it additionally encourages attacks on build infrastructure as a successful attack would provide access to a large number of downstream computer systems. By modifying the generated binaries here instead of modifying the upstream source code, illicit changes are essentially invisible to its original authors and users alike." msgstr "" #. type: Plain text #: index.md msgid "The motivation behind the **Reproducible Builds** project is therefore to allow verification that no vulnerabilities or backdoors have been introduced during this compilation process. By promising identical results are always generated from a given source, this allows multiple third parties to come to a consensus on a \"correct\" result, highlighting any deviations as suspect and worthy of scrutiny." msgstr "" #. type: Plain text #: index.md msgid "This ability to notice if a developer or build system has been compromised then prevents such threats or attacks occurring in the first place, as any compromise can be quickly detected. As a result, front-liners cannot be threatened/coerced into exploiting or exposing their colleagues." msgstr "" #. type: Plain text #: index.md msgid "[Several free software projects]({{ \"/who/\" | relative_url }}) already, or will soon, provide reproducible builds." msgstr "" #. type: Title ## #: index.md #, no-wrap msgid "How?" msgstr "" #. type: Plain text #: index.md msgid "First, the **build system** needs to be made entirely deterministic: transforming a given source must always create the same result. For example, the current date and time must not be recorded and output always has to be written in the same order." msgstr "" #. type: Plain text #: index.md msgid "Second, the set of tools used to perform the build and more generally the **build environment** should either be recorded or pre-defined." msgstr "" #. type: Plain text #: index.md msgid "Third, users should be given a way to recreate a close enough build environment, perform the build process, and **validate** that the output matches the original build." msgstr "" #. type: Plain text #: index.md msgid "Learn more about [how to make your software build reproducibly…]({{ \"/docs\" | relative_url }})" msgstr "" #. type: Title ## #: index.md #, no-wrap msgid "Recent monthly reports" msgstr "" #. type: Plain text #: index.md #, no-wrap msgid "" "\n" msgstr "" #. type: Plain text #: index.md msgid "([See all reports…]({{ \"/news/\" | relative_url }}))" msgstr "" #. type: Title ## #: index.md #, no-wrap msgid "Recent news" msgstr "" #. type: Plain text #: index.md #, no-wrap msgid "" "\n" msgstr "" #. type: Plain text #: index.md msgid "([See all…]({{ \"/news/\" | relative_url }}))" msgstr "" #. type: Plain text #: index.md msgid "{% assign sponsors = site.data.sponsors.platinum | sort: 'name' %} {% if sponsors.size != 0 %}" msgstr "" #. type: Title ## #: index.md #, no-wrap msgid "Sponsors" msgstr "" #. type: Plain text #: index.md msgid "We are proud to be [sponsored by]({{ \"/sponsors/\" | relative_url }}):" msgstr "" #. type: Plain text #: index.md #, no-wrap msgid "" "
\n" " {% for x in sponsors %}\n" "
\n" "
\n" " \n" " \"{{\n" " \n" "
\n" "
\n" " {% endfor %}\n" "
\n" "{% else %}\n" "{% endif %}\n" msgstr "" #. type: Plain text #: index.md contribute/salsa.md #, no-wrap msgid "
\n" msgstr "" #. type: Yaml Front Matter Hash Value: title #: newstyle.md #, no-wrap msgid "Test" msgstr "" #. type: Title # #: newstyle.md #, no-wrap msgid "h1 Heading 8-)" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "h2 Heading" msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "h3 Heading" msgstr "" #. type: Title #### #: newstyle.md #, no-wrap msgid "h4 Heading" msgstr "" #. type: Title ##### #: newstyle.md #, no-wrap msgid "h5 Heading" msgstr "" #. type: Title ###### #: newstyle.md #, no-wrap msgid "h6 Heading" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Horizontal Rules" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Typographic replacements" msgstr "" #. type: Plain text #: newstyle.md msgid "Enable typographer option to see result." msgstr "" #. type: Plain text #: newstyle.md msgid "(c) (C) (r) (R) (tm) (TM) (p) (P) +-" msgstr "" #. type: Plain text #: newstyle.md msgid "test.. test... test..... test?..... test!...." msgstr "" #. type: Plain text #: newstyle.md msgid "!!!!!! ???? ,, -- ---" msgstr "" #. type: Plain text #: newstyle.md msgid "\"Smartypants, double quotes\" and 'single quotes'" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Emphasis" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "**This is bold text**\n" msgstr "" #. type: Plain text #: newstyle.md msgid "__This is bold text__" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "*This is italic text*\n" msgstr "" #. type: Plain text #: newstyle.md msgid "_This is italic text_" msgstr "" #. type: Plain text #: newstyle.md msgid "~~Strikethrough~~" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Blockquotes" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" "> Blockquotes can also be nested...\n" ">> ...by using additional greater-than signs right next to each other...\n" "> > > ...or with spaces between arrows.\n" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Lists" msgstr "" #. type: Plain text #: newstyle.md msgid "Unordered" msgstr "" #. type: Bullet: '+ ' #: newstyle.md msgid "Create a list by starting a line with `+`, `-`, or `*`" msgstr "" #. type: Bullet: '+ ' #: newstyle.md msgid "Sub-lists are made by indenting 2 spaces:" msgstr "" #. type: Bullet: ' - ' #: newstyle.md msgid "Marker character change forces new list start:" msgstr "" #. type: Bullet: ' * ' #: newstyle.md msgid "Ac tristique libero volutpat at" msgstr "" #. type: Bullet: ' + ' #: newstyle.md msgid "Facilisis in pretium nisl aliquet" msgstr "" #. type: Bullet: ' - ' #: newstyle.md msgid "Nulla volutpat aliquam velit" msgstr "" #. type: Bullet: '+ ' #: newstyle.md msgid "Very easy!" msgstr "" #. type: Plain text #: newstyle.md msgid "Ordered" msgstr "" #. type: Bullet: '1. ' #: newstyle.md msgid "Lorem ipsum dolor sit amet" msgstr "" #. type: Bullet: '2. ' #: newstyle.md msgid "Consectetur adipiscing elit" msgstr "" #. type: Bullet: '3. ' #: newstyle.md msgid "Integer molestie lorem at massa" msgstr "" #. type: Bullet: '1. ' #: newstyle.md msgid "You can use sequential numbers..." msgstr "" #. type: Bullet: '1. ' #: newstyle.md msgid "...or keep all the numbers as `1.`" msgstr "" #. type: Plain text #: newstyle.md msgid "Start numbering with offset:" msgstr "" #. type: Bullet: '57. ' #: newstyle.md msgid "foo" msgstr "" #. type: Bullet: '1. ' #: newstyle.md msgid "bar" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Code" msgstr "" #. type: Plain text #: newstyle.md msgid "Inline `code`" msgstr "" #. type: Plain text #: newstyle.md msgid "Indented code" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" " // Some comments\n" " line 1 of code\n" " line 2 of code\n" " line 3 of code\n" msgstr "" #. type: Plain text #: newstyle.md msgid "Block code \"fences\"" msgstr "" #. type: Fenced code block #: newstyle.md #, no-wrap msgid "Sample text here...\n" msgstr "" #. type: Plain text #: newstyle.md msgid "Syntax highlighting" msgstr "" #. type: Fenced code block (js) #: newstyle.md #, no-wrap msgid "" "var foo = function (bar) {\n" " return bar++;\n" "};\n" "\n" "console.log(foo(5));\n" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Tables" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" "| Option | Description |\n" "| ------ | ----------- |\n" "| data | path to data files to supply the data that will be passed into templates. |\n" "| engine | engine to be used for processing templates. Handlebars is the default. |\n" "| ext | extension to be used for dest files. |\n" msgstr "" #. type: Plain text #: newstyle.md msgid "Right aligned columns" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" "| Option | Description |\n" "| ------:| -----------:|\n" "| data | path to data files to supply the data that will be passed into templates. |\n" "| engine | engine to be used for processing templates. Handlebars is the default. |\n" "| ext | extension to be used for dest files. |\n" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Links" msgstr "" #. type: Plain text #: newstyle.md msgid "[link text](http://dev.nodeca.com)" msgstr "" #. type: Plain text #: newstyle.md msgid "[link with title](http://nodeca.github.io/pica/demo/ \"title text!\")" msgstr "" #. type: Plain text #: newstyle.md msgid "Autoconverted link https://github.com/nodeca/pica (enable linkify to see)" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Images" msgstr "" #. type: Plain text #: newstyle.md msgid "![Minion](https://octodex.github.com/images/minion.png) ![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg \"The Stormtroopocat\")" msgstr "" #. type: Plain text #: newstyle.md msgid "Like links, Images also have a footnote style syntax" msgstr "" #. type: Plain text #: newstyle.md msgid "![Alt text][id]" msgstr "" #. type: Plain text #: newstyle.md msgid "With a reference later in the document defining the URL location:" msgstr "" #. type: Plain text #: newstyle.md msgid "[id]: https://octodex.github.com/images/dojocat.jpg \"The Dojocat\"" msgstr "" #. type: Title ## #: newstyle.md #, no-wrap msgid "Plugins" msgstr "" #. type: Plain text #: newstyle.md msgid "The killer feature of `markdown-it` is very effective support of [syntax plugins](https://www.npmjs.org/browse/keyword/markdown-it-plugin)." msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[Emojies](https://github.com/markdown-it/markdown-it-emoji)" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" "> Classic markup: :wink: :crush: :cry: :tear: :laughing: :yum:\n" ">\n" "> Shortcuts (emoticons): :-) :-( 8-) ;)\n" msgstr "" #. type: Plain text #: newstyle.md msgid "see [how to change output](https://github.com/markdown-it/markdown-it-emoji#change-output) with twemoji." msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[Subscript](https://github.com/markdown-it/markdown-it-sub) / [Superscript](https://github.com/markdown-it/markdown-it-sup)" msgstr "" #. type: Bullet: '- ' #: newstyle.md msgid "19^th^" msgstr "" #. type: Bullet: '- ' #: newstyle.md msgid "H~2~O" msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[\\](https://github.com/markdown-it/markdown-it-ins)" msgstr "" #. type: Plain text #: newstyle.md msgid "++Inserted text++" msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[\\](https://github.com/markdown-it/markdown-it-mark)" msgstr "" #. type: Plain text #: newstyle.md msgid "==Marked text==" msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[Footnotes](https://github.com/markdown-it/markdown-it-footnote)" msgstr "" #. type: Plain text #: newstyle.md msgid "Footnote 1 link[^first]." msgstr "" #. type: Plain text #: newstyle.md msgid "Footnote 2 link[^second]." msgstr "" #. type: Plain text #: newstyle.md msgid "Inline footnote^[Text of inline footnote] definition." msgstr "" #. type: Plain text #: newstyle.md msgid "Duplicated footnote reference[^second]." msgstr "" #. type: Plain text #: newstyle.md msgid "[^first]: Footnote **can have markup**" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid " and multiple paragraphs.\n" msgstr "" #. type: Plain text #: newstyle.md msgid "[^second]: Footnote text." msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[Definition lists](https://github.com/markdown-it/markdown-it-deflist)" msgstr "" #. type: Plain text #: newstyle.md msgid "Term 1" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" ": Definition 1\n" "with lazy continuation.\n" msgstr "" #. type: Plain text #: newstyle.md msgid "Term 2 with *inline markup*" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid ": Definition 2\n" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid " { some code, part of Definition 2 }\n" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid " Third paragraph of definition 2.\n" msgstr "" #. type: Plain text #: newstyle.md msgid "_Compact style:_" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" "Term 1\n" " ~ Definition 1\n" msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "" "Term 2\n" " ~ Definition 2a\n" " ~ Definition 2b\n" msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[Abbreviations](https://github.com/markdown-it/markdown-it-abbr)" msgstr "" #. type: Plain text #: newstyle.md msgid "This is HTML abbreviation example." msgstr "" #. type: Plain text #: newstyle.md msgid "It converts \"HTML\", but keep intact partial entries like \"xxxHTMLyyy\" and so on." msgstr "" #. type: Plain text #: newstyle.md #, no-wrap msgid "*[HTML]: Hyper Text Markup Language\n" msgstr "" #. type: Title ### #: newstyle.md #, no-wrap msgid "[Custom containers](https://github.com/markdown-it/markdown-it-container)" msgstr "" #. type: Fenced div block (warning) #: newstyle.md #, no-wrap msgid "*here be dragons*\n" msgstr "" #. type: Title = #: README.md #, no-wrap msgid "Source for the reproducible-builds.org website" msgstr "" #. type: Plain text #: README.md msgid "The website for reproducible-builds.org is made with [Jekyll]. It has been initially created and tested with version 2.2.0 in Debian unstable available in the `jekyll` package, though nowadays it also needs the `ruby-jekyll-redirect-from` and `ruby-jekyll-polyglot` packages from buster-backports or later." msgstr "" #. type: Plain text #: README.md msgid "[Jekyll]: https://jekyllrb.com/" msgstr "" #. type: Title - #: README.md #, no-wrap msgid "Viewing the website" msgstr "" #. type: Plain text #: README.md msgid "It's possible to view the website while making changes:" msgstr "" #. type: Plain text #: README.md #, no-wrap msgid " $ jekyll serve --watch\n" msgstr "" #. type: Plain text #: README.md msgid "A local webserver will be started which can be accessed using a browser to see changes as they are made." msgstr "" #. type: Title - #: README.md #, no-wrap msgid "Build the website" msgstr "" #. type: Plain text #: README.md msgid "Building the website is made by running:" msgstr "" #. type: Fenced code block (console) #: README.md #, no-wrap msgid "" "$ ./bin/i18n.sh # optional, includes all the translations\n" "$ jekyll build\n" msgstr "" #. type: Plain text #: README.md msgid "The result will be available in the `_site` directory." msgstr "" #. type: Plain text #: README.md #, no-wrap msgid "" "(Note: `./bin/i18n.sh` requires `po4a` >= v0.58, which is available in\n" "buster-backports)\n" msgstr "" #. type: Fenced code block (console) #: README.md #, no-wrap msgid "$ sudo apt install po4a/buster-backports\n" msgstr "" #. type: Title - #: README.md #, no-wrap msgid "Dependencies" msgstr "" #. type: Plain text #: README.md msgid "You can install the required tools and plugins and for building the website like this:" msgstr "" #. type: Fenced code block (console) #: README.md #, no-wrap msgid "$ sudo apt install jekyll git ruby-jekyll-redirect-from ruby-jekyll-polyglot/buster-backports po4a/buster-backports\n" msgstr "" #. type: Title ## #: resources.md #, no-wrap msgid "Talks" msgstr "" #. type: Title # #: resources.md #, no-wrap msgid "Talks & Resources" msgstr "" #. type: Title # #: resources.md contribute/index.md #, no-wrap msgid "Contribute" msgstr "" #. type: Plain text #: resources.md msgid "Find out how to contribute on our [Contribute]({{ \"/contribute/\" | relative_url }}) page." msgstr "" #. type: Plain text #: resources.md msgid "{% for x in site.data.presentations %}" msgstr "" #. type: Plain text #: resources.md msgid "{% assign slug = x.title | append: \"-\" | append: x.event.date | slugify %}" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "" "
\n" "

{{ x.title }}

\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "{{ x.event.name }} • {{ x.event.location }}\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "" "

by {{ x.presented_by }}\n" "{% if x.event.date %}\n" " on {{ x.event.date }}\n" "{% endif %}\n" "

\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "
\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "" "{% if x.video.youtube %}\n" "YouTube\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "" "{% if x.video.url %}\n" "Video\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "" "{% if x.video.subtitles %}\n" "Subtitles\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "" "{% if x.slides %}\n" "Slides\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, no-wrap msgid "" "
\n" "
\n" "{% endfor %}\n" msgstr "" #. type: Title ## #: resources.md #, no-wrap msgid "Slides" msgstr "" #. type: Plain text #: resources.md msgid "We store all of our presentations in PDF or HTML form [here](/_lfs/presentations). We also have [the original sources available in Git](https://salsa.debian.org/reproducible-builds/reproducible-presentations)." msgstr "" #. type: Title # #: tools.md #, no-wrap msgid "Tools" msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "

Several tools are available to make your life easier when working on reproducible builds.

\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "diffoscope" msgstr "" #. type: Plain text #: tools.md msgid "[diffoscope](https://diffoscope.org/) will try to get to the bottom of what makes files or directories different. It will recursively unpack archives of many kinds and transform various binary formats into more human-readable forms for comparison. It can compare two tarballs, ISO images, or PDFs just as easily. See an example [HTML](https://diffoscope.org/examples/https-everywhere-5.0.6_vs_5.0.7.html) and [text](https://diffoscope.org/examples/igerman98_20131206-5.txt) output." msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "" "Homepage\n" "Git\n" "Issues\n" "Merge requests\n" "Debian package\n" "PyPI\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "rebuilderd" msgstr "" #. type: Plain text #: tools.md msgid "[rebuilderd](https://github.com/kpcyrd/rebuilderd) monitors the package repository of a linux distribution and uses rebuilder backends like archlinux-repro to verify the provided binary packages can be reproduced from the published source code." msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "" "Homepage\n" "Issues\n" "Arch Linux Documentation\n" "Arch Linux Results\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "archlinux-repro" msgstr "" #. type: Plain text #: tools.md msgid "[repro](https://github.com/archlinux/archlinux-repro) is a rebuilder backend that verifies a given Arch Linux package. It uses the embedded `.BUILDINFO` file to reconstruct an identical build environment and repeats the build from source, then compares the input package with the package generated during the verification build." msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "" "Homepage\n" "Issues\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "trydiffoscope" msgstr "" #. type: Plain text #: tools.md msgid "If you wish to just experiment with [diffoscope](https://diffoscope.org/) without installing a large number of run-time dependencies, you can use the [try.diffoscope.org](https://try.diffoscope.org/) service directly from your web browser. A lightweight client is also available as the `trydiffoscope` command-line utility." msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "" "Homepage\n" "Git\n" "Merge requests\n" "Debian package\n" "PyPI\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "disorderfs" msgstr "" #. type: Plain text #: tools.md msgid "Problems with [unstable order of inputs](/docs/stable-inputs/) or other variations introduced by filesystems can sometimes be hard to track down. disorderfs is an overlay FUSE filesystem that deliberately introduces non-determinism into filesystem metadata. For example, it can randomize the order in which directory entries are read." msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "" "Git\n" "Merge requests\n" "Debian package\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "strip-nondeterminism" msgstr "" #. type: Plain text #: tools.md msgid "Some tools used in build systems might introduce non-determinism in ways difficult to fix at the source, which requires post-processing. `strip-nondeterminism` knows how to normalise various file formats such as gzipped files, ZIP archives, and Jar files. It is written in Perl with extensibility in mind." msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "" "Git\n" "Issues\n" "Merge requests\n" "Debian package\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "reprotest" msgstr "" #. type: Plain text #: tools.md msgid "reprotest builds the same source code in different environments and then checks the binaries produced by the builds to see if changing the environment, without changing the source code, changed the generated binaries." msgstr "" #. type: Plain text #: tools.md #, no-wrap msgid "" "Git\n" "Merge requests\n" "Debian package\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "Other tools" msgstr "" #. type: Bullet: '* ' #: tools.md msgid "[reproducible-build-maven-plugin](https://zlika.github.io/reproducible-build-maven-plugin) for the [Apache Maven](https://maven.apache.org) build tool, popular with Java projects." msgstr "" #. type: Bullet: '* ' #: tools.md msgid "[sbt-reproducible-builds](https://github.com/raboof/sbt-reproducible-builds#readme) plugin for the [sbt](https://www.scala-sbt.org/) build tool, popular with [Scala](https://www.scala-lang.org/) projects." msgstr "" #. type: Bullet: '* ' #: tools.md msgid "[apksigcopier](https://github.com/obfusk/apksigcopier) and [reproducible-apk-tools](https://github.com/obfusk/reproducible-apk-tools) for creating reproducible Android APKs and comparing APK (meta)data." msgstr "" #. type: Bullet: '* ' #: tools.md msgid "[diffoci](https://github.com/reproducible-containers/diffoci): diff for Docker and OCI (Open Container Initiative) container images" msgstr "" #. type: Title ## #: tools.md #, no-wrap msgid "Misc" msgstr "" #. type: Bullet: '* ' #: tools.md msgid "[Style guide for reproducible-builds.org](https://reproducible-builds.org/style/) - this guide aims to provide standards, principles and components to design consistent views related to the Reproducible Builds project." msgstr "" #. type: Plain text #: tools.md msgid "[Signed tarballs are available](https://reproducible-builds.org/_lfs/releases/) for our tools." msgstr "" #. type: Yaml Front Matter Hash Value: title #: contribute/archlinux.md #, no-wrap msgid "Contribute to Arch Linux" msgstr "" #. type: Title ## #: contribute/archlinux.md #, no-wrap msgid "Task suggestions for Arch Linux" msgstr "" #. type: Bullet: '1. ' #: contribute/archlinux.md msgid "Join #archlinux-reproducible on irc.libera.chat." msgstr "" #. type: Bullet: '1. ' #: contribute/archlinux.md msgid "Check the unreproducible packages on your system with `arch-repro-status -f BAD`. Additionally adding `-i` to that command allows you to interactively browse the build logs and diffoscope output per package." msgstr "" #. type: Bullet: '1. ' #: contribute/archlinux.md msgid "If you maintain packages in Arch Linux the [Developer Dashboard](https://archlinux.org/devel/) has a report with your unreproducible packages." msgstr "" #. type: Bullet: '1. ' #: contribute/archlinux.md msgid "Report packaging issues which cause unreproducible packages on the [bugtracker](https://bugs.archlinux.org)." msgstr "" #. type: Title ## #: contribute/archlinux.md contribute/debian.md #, no-wrap msgid "External links" msgstr "" #. type: Bullet: '* ' #: contribute/archlinux.md msgid "[Arch Linux reproducible builds status](https://reproducible.archlinux.org/)" msgstr "" #. type: Bullet: '* ' #: contribute/archlinux.md msgid "[arch-repro-status](https://gitlab.archlinux.org/archlinux/arch-repro-status)" msgstr "" #. type: Yaml Front Matter Hash Value: title #: contribute/debian.md #, no-wrap msgid "Contribute to Debian" msgstr "" #. type: Title ## #: contribute/debian.md #, no-wrap msgid "Task suggestions for Debian" msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "If you maintain a package for Debian, you can make sure that your package uses a [modern debhelper style](https://salsa.debian.org/debian/debhelper/blob/main/dh) (e.g. one-liner `debian/rules` with overrides as needed). We aim to fix many causes of non-deterministic builds in the debhelper suite directly, so packages that use debhelper will be much easier to make reproducible with just an upgrade of the toolchain." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "[Inventory issues](#inventorying-issues) found by the continuous integration platform." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "[Fix known reproducibility issues](#fixing-issues). See the [inventory of identified issues](https://reproducible.debian.net/index_issues.html)." msgstr "" #. type: Plain text #: contribute/debian.md #, no-wrap msgid "" "1. [Do responsible NMUs of packages with existing patches](https://udd.debian.org/dev/bugs.cgi?release=any&patch=only&merged=ign&reproducible=1&sortby=id&sorto=asc&format=html#results)\n" " by uploading to DELAYED/15.\n" msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Improve our common [tools]({{ \"/tools/\" | relative_url }}): [diffoscope](https://tracker.debian.org/diffoscope), [strip-nondeterminism](https://tracker.debian.org/strip-nondeterminism), [disorderfs](https://tracker.debian.org/disorderfs)." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Redesign [reproducible.debian.net](https://reproducible.debian.net/) status pages using a CSS toolkit like Bootstrap." msgstr "" #. type: Plain text #: contribute/debian.md msgid "To get help, feel free to ask on the IRC channel or the mailing list. We want to be friendly, supportive, and have fun experimenting together." msgstr "" #. type: Title ## #: contribute/debian.md #, no-wrap msgid "How to report bugs in Debian" msgstr "" #. type: Plain text #: contribute/debian.md msgid "[Overview of all bug reports concerning reproducible builds](https://bugs.debian.org/cgi-bin/pkgreport.cgi?usertag=reproducible-builds@lists.alioth.debian.org)" msgstr "" #. type: Plain text #: contribute/debian.md msgid "All bugs relevant to the reproducible builds project should use [usertags](https://bugs.debian.org/usertags) with user `reproducible-builds@lists.alioth.debian.org`. Also use `X-Debbugs-Cc` to notify the list, but please use our `reproducible-bugs@lists.alioth.debian.org` list for this header." msgstr "" #. type: Plain text #: contribute/debian.md msgid "To usertag a bug after it has been submitted use:" msgstr "" #. type: Plain text #: contribute/debian.md #, no-wrap msgid " bts user reproducible-builds@lists.alioth.debian.org . usertag XXXXXX + timestamps toolchain\n" msgstr "" #. type: Title ### #: contribute/debian.md #, no-wrap msgid "Usertags" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**toolchain**: affects a tool used by other package build systems" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**infrastructure**: affects the whole Debian infrastructure or policies" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**timestamps**: time of build in recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**fileordering**: build output varies with readdir() order" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**buildpath**: path of sources is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**username**: username is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**hostname**: hostname is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**uname**: uname output is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**environment**: environment variables are recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**randomness**: some build aspects are dependent on (pseudo-)randomness" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**cpu**: some build aspects are dependent on CPU features or computation speed" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**signatures**: uses a cryptographic signatures as part of the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**umask**: permissions depend on current umask" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**buildinfo**: issues related to .buildinfo control files" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**ftbfs**: fails to build from source" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "**locale**: varying locales lead to differing behavior (e.g. sorting)" msgstr "" #. type: Title ### #: contribute/debian.md #, no-wrap msgid "Example email to submit a patch:" msgstr "" #. type: Fenced code block #: contribute/debian.md #, no-wrap msgid "" "From: J. Random Hacker \n" "To: submit@bugs.debian.org\n" "Subject:\n" "\n" "Source:\n" "Version: \n" "Severity: wishlist\n" "Tags: patch\n" "User: reproducible-builds@lists.alioth.debian.org\n" "Usertags: timestamps fileordering\n" "X-Debbugs-Cc: reproducible-bugs@lists.alioth.debian.org\n" "\n" "Hi!\n" "\n" "While working on the “reproducible builds” effort [1], we have noticed\n" "that\n" "\n" "The attached patch removes extra timestamps from the build system and\n" "ensure a stable file order when creating the source archive. Once applied,\n" "it can be built reproducibly in our current experimental framework.\n" "\n" "\n" " [1]: https://wiki.debian.org/ReproducibleBuilds\n" msgstr "" #. type: Title ## #: contribute/debian.md #, no-wrap msgid "Inventorying issues" msgstr "" #. type: Plain text #: contribute/debian.md msgid "The easiest way to find issues is to examine the list of [packages failing to build reproducibly](https://reproducible.debian.net/index_FTBR.html) as found by continuous integration. The first packages in the list are the one who have been tried most recently." msgstr "" #. type: Plain text #: contribute/debian.md msgid "Notes about packages are kept in the [notes](https://salsa.debian.org/reproducible-builds/reproducible-notes). Git repository in `packages.yml`. The list of [known common issues](https://reproducible.debian.net/index_issues.html) is kept in the `issues.yml` file." msgstr "" #. type: Plain text #: contribute/debian.md msgid "The page for a given package should open on the [diffoscope](https://tracker.debian.org/diffoscope) output. Read the list of known issues to get an idea of what you may found. Here is some more advice:" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "When a binary has mismatching mtimes for files in `control.tar.gz`, it means that they are [not adjusted before creating the binary package](https://reproducible.debian.net/issues/not_using_dh_builddeb_issue.html)." msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "[Timestamps in gzip headers](https://reproducible.debian.net/issues/timestamps_in_gzip_headers_issue.html) are a no-brainer." msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "When there's a mismatching `Build ID` in an executable, it means a variation happens during the compilation. Investigation can be done using [sources.debian.org](https://sources.debian.org/) (see link at the top)." msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "First step should be a search for the [`__DATE__`, `__TIME__` or `__TIMESTAMP__`](https://reproducible.debian.net/issues/timestamps_from_cpp_macros_issue.html) using [codesearch](https://codesearch.debian.net/). Otherwise, try to locate calls to `date` in `configure.ac`, `Makefile.am`, etc." msgstr "" #. type: Plain text #: contribute/debian.md msgid "The [clean-notes](https://salsa.debian.org/reproducible-builds/reproducible-misc/blob/master/clean-notes) script in the `misc` repository will detect outdated notes and re-order packages by alphabetical order. It should be run before committing changes to the `notes` repository." msgstr "" #. type: Title ## #: contribute/debian.md #, no-wrap msgid "Fixing issues" msgstr "" #. type: Plain text #: contribute/debian.md msgid "Fixing reproducibility issues falls into two categories: either the problem is specific to a single package or the cause is the output of another package (then referenced as \"toolchain\" package)." msgstr "" #. type: Title ### #: contribute/debian.md #, no-wrap msgid "Fixing a single package" msgstr "" #. type: Plain text #: contribute/debian.md msgid "The usual steps are:" msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Use `debcheckout` or `apt-get source` to retrieve the source code." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Do the changes. With packages using the `3.0 (quilt)` format, `dpkg-source --commit` can be useful." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Update `debian/changelog`. New version is usually original version with `.0~reproducible1`." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Use `dpkg-buildpackage -S` to create source package." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Use [reprotest]({{ \"/tools/\" | relative_url }}) to test reproducibility. If the package is not reproducible, examine the diffoscope output `logs/PACKAGE.diffoscope.html` or compare build logs `logs/PACKAGE.build1` and `logs/PACKAGE.build2`, then repeat from step 2 unless the issue comes from another package. In that case, see about \"toolchain\" packages below." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Use `debdiff` or `git format-patch` to create patches." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "[Create a new bug report](https://wiki.debian.org/ReproducibleBuilds/Contribute#How_to_report_bugs), and don't forget to attach the patch!" msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Add an entry or reference the bug in `packages.yml` in [reproducible-notes](https://salsa.debian.org/reproducible-builds/reproducible-notes)." msgstr "" #. type: Title ### #: contribute/debian.md #, no-wrap msgid "Fixing a toolchain package" msgstr "" #. type: Plain text #: contribute/debian.md msgid "Fixing an issue in a package that affects the reproducibility of other packages requires some more steps, but the general process is the same:" msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Use `pdebuild` or `gbp buildpackage` to build the package." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Backup `base-reproducible.tgz`." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Use `pbuilder --login --save-after-exec --basetgz base-reproducible.tgz` to install the newly built package." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Test a package affected with `reprotest`. If the issue is still not fixed, repeat from step 2." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "If the package is in Git, create a new repository on [salsa.debian.org](https://salsa.debian.org/reproducible-builds/packages). Push your changes to a (rebasable) `pu/reproducible_builds` branch." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Subscribe to the `upload-source` notification for the package on the [Package Tracking System](https://tracker.debian.org/). This is needed so you don't forget to update the custom package when a new version hits the archive." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "[Upload](https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain#Adding_a_package_to_the_APT_archive) the package to the reproducible APT repository." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Document the changes on the [wiki](https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain#Modified_packages)." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Reference the bug in `issues.yml` in [reproducible-notes](https://salsa.debian.org/reproducible-builds/reproducible-notes) and on the wiki page about the issue if there is one." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "Everybody with a [Debian SSO](https://sso.debian.org) client certificate (both DDs and guests) can schedule source packages to be rebuilt by using the authenticated endpoint at . There are handy icons (`♻`)in every package page that links to that cgi-bin script with the correct parameters. If you don't have a valid client certificate or have any other trouble you can find somebody in the #debian-reproducible IRC channel to help you. Also, if you need to mass schedule many packages (even over the daily limit imposed by the public scheduling script described here), you can find the jenkins administrators in that channel that can do mass scheduling for you." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md msgid "If the changes don't break anything, [create a new bug report](https://wiki.debian.org/ReproducibleBuilds/Contribute#How_to_report_bugs). Don't forget to attach patches and to use the `toolchain` usertag." msgstr "" #. type: Title ## #: contribute/debian.md #, no-wrap msgid "Continuous integration platform" msgstr "" #. type: Plain text #: contribute/debian.md msgid "Several jobs have been created to regularly test packages (from `main/sid`) on [jenkins.debian.net](https://jenkins.debian.net). As a result there is the [reproducible build overview of packages](https://reproducible.debian.net)." msgstr "" #. type: Plain text #: contribute/debian.md msgid "The setup is explained [in this blog post](http://layer-acht.org/thinking/blog/20140925-reproducible-builds/) only, but this post is somewhat outdated by now and needs to be amended." msgstr "" #. type: Plain text #: contribute/debian.md msgid "See the various `reproducible_*` scripts in the [Jenkins Git repository](https://salsa.debian.org/qa/jenkins.debian.net/tree/master/bin/)" msgstr "" #. type: Title ## #: contribute/debian.md #, no-wrap msgid "Working on installation media or live systems" msgstr "" #. type: Plain text #: contribute/debian.md msgid "Having installation and live systems which can be built reproducibly would also be great." msgstr "" #. type: Plain text #: contribute/debian.md msgid "In Debian, [#900918](https://bugs.debian.org/900918) is being used to track the progress of reproducible installation images. There is an [analyze_image](https://github.com/adrelanos/Whonix/blob/master/help-steps/analyze_image) Bash script that creates sha512 hashes of all files included within an image, access rights, symlinks, partition table, bootloader and more. Doing this with two images that should match and comparing the reports the script creates can help to identify sources of non-determinism in images. It does not have iso support yet. The author (Patrick Schleizer) is interested to generalize the script for more generic, Debian use cases" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "[Reproducible installs](https://wiki.debian.org/ReproducibleBuilds/ReproducibleInstalls)" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "[Announcing Whonix's First Implementation of Verifiable Builds](https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20131209/000009.html)" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "[Whonix Verifiable Builds](https://www.whonix.org/wiki/Verifiable_Builds)" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "[Tails reproducible builds blueprint](https://tails.boum.org/blueprint/reproducible_builds/)" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md msgid "[reproducible debootstrap](https://github.com/lamby/debootstrap/commits/pu/source-date-epoch)" msgstr "" #. type: Yaml Front Matter Hash Value: title #: contribute/guix.md #, no-wrap msgid "Contribute to reproducible builds in GNU Guix" msgstr "" #. type: Plain text #: contribute/guix.md msgid "This page explains how you can contribute to reproducible builds in [GNU Guix](https://guix.gnu.org)." msgstr "" #. type: Title ## #: contribute/guix.md #, no-wrap msgid "Finding reproducibility issues" msgstr "" #. type: Plain text #: contribute/guix.md msgid "You can monitor reproducibility issues by running [`guix challenge`](https://guix.gnu.org/manual/en/html_node/Invoking-guix-challenge.html). To further investigate, you can specify one or more packages on the command line, and ask it to invoke Diffoscope upon failure:" msgstr "" #. type: Fenced code block #: contribute/guix.md #, no-wrap msgid "" "guix challenge git \\\n" " --diff=diffoscope \\\n" " --substitute-urls=\"https://ci.guix.gnu.org https://guix.example.org\"\n" msgstr "" #. type: Plain text #: contribute/guix.md msgid "Another option is to rebuild packages locally. For example, assuming you already installed Git on your machine, you can force a rebuild [with `--check`](https://guix.gnu.org/manual/en/html_node/Additional-Build-Options.html#build_002dcheck):" msgstr "" #. type: Fenced code block #: contribute/guix.md #, no-wrap msgid "guix build git --check --no-grafts --keep-failed\n" msgstr "" #. type: Plain text #: contribute/guix.md msgid "If the new build result differs from the one that was already in store, the failed build is kept as `/gnu/store/…-git-1.2.3-check`, allowing you to compare it with the original one (without the `-check` suffix)." msgstr "" #. type: Title ## #: contribute/guix.md #, no-wrap msgid "Reporting issues" msgstr "" #. type: Plain text #: contribute/guix.md msgid "Please report issues by sending email to `bug-guix@gnu.org`. Each message opens a new issues visible in the [bug tracker](https://issues.guix.gnu.org)." msgstr "" #. type: Plain text #: contribute/guix.md msgid "When investigating, be sure to check [Debian’s reproducibility issue inventory](https://tests.reproducible-builds.org/debian/index_issues.html) for known problems and solutions." msgstr "" #. type: Plain text #: contribute/guix.md msgid "You can also discuss these issues with other developers on [the Guix development mailing list and on the IRC channel](https://guix.gnu.org/en/contact)." msgstr "" #. type: Plain text #: contribute/index.md msgid "There are many ways to contribute to the Reproducible Builds project:" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "**In the first instance, please join the [`rb-general` mailing-list](https://lists.reproducible-builds.org/listinfo/rb-general).**" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "Our [Gitlab group](http://salsa.debian.org/reproducible-builds) is on [Salsa](https://salsa.debian.org/): submiting issues and opening pull requests is welcome! ([**Full signup instructions**]({{ \"/contribute/salsa/\" | relative_url }}))" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "Subscribe to the [reproducible-builds@lists.alioth.debian.org mailing list](https://lists.alioth.debian.org/mailman/listinfo/reproducible-builds) and/or other [reproducible builds](https://lists.reproducible-builds.org/) oriented lists." msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "Join the [#reproducible-builds IRC channel on irc.oftc.net](https://webchat.oftc.net/?channels=#reproducible-builds) and possibly [#reproducible-changes](https://webchat.oftc.net/?channels=#reproducible-changes) too. For Debian there is also [#debian-reproducible](https://webchat.oftc.net/?channels=#debian-reproducible) and [#debian-reproducible-changes](https://webchat.oftc.net/?channels=#debian-reproducible-changes), and for Arch Linux there is [#archlinux-reproducible on irc.libera.chat](https://web.libera.chat/?channels=#archlinux-reproducible)" msgstr "" #. type: Plain text #: contribute/index.md msgid "You can also subscribe to [commit notifications](https://lists.reproducible-builds.org/listinfo/rb-commits) to keep track of contributions." msgstr "" #. type: Title ### #: contribute/index.md #, no-wrap msgid "Reproducible Builds cares about all the distributions and projects out there" msgstr "" #. type: Plain text #: contribute/index.md msgid "Reproducible Builds is distro agnostic, which means we care about all the distributions and projects out there. Please send patches to this page if your project is not listed here." msgstr "" #. type: Title ## #: contribute/index.md #, no-wrap msgid "Contribute to distributions" msgstr "" #. type: Plain text #: contribute/index.md msgid "Various distributions have efforts to become more reproducible:" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "[Arch Linux]({{ \"/contribute/archlinux/\" | relative_url }} )" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "[Debian]({{ \"/contribute/debian/\" | relative_url }})" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "[GNU Guix]({{ \"/contribute/guix/\" | relative_url }})" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "[NixOS]({{ \"/contribute/nixos/\" | relative_url }})" msgstr "" #. type: Bullet: '* ' #: contribute/index.md msgid "[openSUSE]({{ \"/contribute/opensuse/\" | relative_url }})" msgstr "" #. type: Title ## #: contribute/index.md #, no-wrap msgid "Donate" msgstr "" #. type: Plain text #: contribute/index.md msgid "Another way to help is to financially support our project. We welcome any kind of donation, of any size. Please see our [donation page]({{ \"/donate/\" | relative_url }}) for more information." msgstr "" #. type: Yaml Front Matter Hash Value: title #: contribute/nixos.md #, no-wrap msgid "Contribute to NixOS" msgstr "" #. type: Title ## #: contribute/nixos.md contribute/opensuse.md #, no-wrap msgid "Community Discussion" msgstr "" #. type: Plain text #: contribute/nixos.md msgid "For real-time conversations, join the [`#reproducible-builds:nixos.org`](https://matrix.to/#/#reproducible-builds:nixos.org) channel on Matrix." msgstr "" #. type: Title ## #: contribute/nixos.md contribute/opensuse.md #, no-wrap msgid "Project Status" msgstr "" #. type: Bullet: '- ' #: contribute/nixos.md msgid "**Project Board**: To keep track of ongoing tasks and open issues concerning reproducible builds, view our [GitHub Project Board](https://github.com/orgs/NixOS/projects/30)." msgstr "" #. type: Bullet: '- ' #: contribute/nixos.md msgid "**Pull Requests & Issues**: Browse current [pull requests](https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+is%3Apr+label%3A%226.topic%3A+reproducible+builds%22) and [issues](https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aissue+label%3A%226.topic%3A+reproducible+builds%22) labeled with \"reproducible builds.\"" msgstr "" #. type: Bullet: '- ' #: contribute/nixos.md msgid "**Internal Resources**: Our internal website, [reproducible.nixos.org](https://reproducible.nixos.org), provides additional information and status updates. More details on specific problems can be found on [this pad](https://pad.sfconservancy.org/p/nixos-reproducible-builds-progress)." msgstr "" #. type: Title ## #: contribute/nixos.md contribute/opensuse.md #, no-wrap msgid "Reporting Issues" msgstr "" #. type: Plain text #: contribute/nixos.md msgid "Use the [issue template](https://github.com/NixOS/nixpkgs/issues/new?assignees=&labels=0.kind%3A+enhancement%2C6.topic%3A+reproducible+builds&template=unreproducible_package.md&title=) on GitHub to report your issues and hopefully, your solution." msgstr "" #. type: Title ## #: contribute/nixos.md #, no-wrap msgid "Additional Projects" msgstr "" #. type: Bullet: '- ' #: contribute/nixos.md msgid "[trustix](https://github.com/nix-community/trustix)" msgstr "" #. type: Yaml Front Matter Hash Value: title #: contribute/opensuse.md #, no-wrap msgid "Contribute to openSUSE" msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "For real-time conversations, join the [`#reproducible-builds:opensuse.org`](https://matrix.to/#/#reproducible-builds:opensuse.org) channel on Matrix." msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "See the tracking bug linked in the next section." msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "[The openSUSE r-b CI graph has package counts.](http://rb.zq1.de/compare.factory/graph.png)" msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "[Status reports of reproducible builds in openSUSE can be found on the openSUSE Factory mailinglist.](https://lists.opensuse.org/archives/search?q=reproducible-builds&page=1&mlist=factory%40lists.opensuse.org&sort=date-desc)" msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "Report your issue on [the openSUSE Bugzilla](https://bugzilla.opensuse.org/enter_bug.cgi?classification=openSUSE) and ensure the Blocks field has a bug in the dependency tree of the [openSUSE reproducible builds tracking issue](https://bugzilla.opensuse.org/show_bug.cgi?id=1081754)." msgstr "" #. type: Title ## #: contribute/opensuse.md #, no-wrap msgid "Sending changes" msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "The [overview of the openSUSE workflow of submitting changes links to detailed documentation on how to submit changes](https://en.opensuse.org/openSUSE:Fixing_bugs)." msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "[The openSUSE specific r-b page has documentation on how to rebuild packages reproducibly.](https://en.opensuse.org/openSUSE:Reproducible_Builds)" msgstr "" #. type: Plain text #: contribute/opensuse.md msgid "Patches can also be attached to Bugzilla issues." msgstr "" #. type: Title # #: contribute/salsa.md #, no-wrap msgid "How to join the Salsa group" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "[Salsa](https://salsa.debian.org) is the name of the collaborative development server for [Debian](https://debian.org/) based on [GitLab](https://gitlab.com/). *Salsa* provides the necessary tools for package maintainers, packaging teams and other individuals and groups for collaborative development." msgstr "" #. type: Plain text #: contribute/salsa.md msgid "The Reproducible Builds project is using *Salsa* to host most of its infrastructure and Git repositories and you can find out more information about Salsa on the [Salsa](https://wiki.debian.org/Salsa) page of the [Debian Wiki](https://wiki.debian.org/)." msgstr "" #. type: Plain text #: contribute/salsa.md msgid "To [contribute to the Reproducible Builds project](/contribute), please follow the following instructions:" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "1. Visit the \"Sign in\" page" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "First, visit **[the sign in / register page](https://salsa.debian.org/users/sign_in)** and select the **Register** tab:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/01.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "2. Create account" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "Next, create your account:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/02.png)" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "After registering, you should see the following screen:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/03.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "3. Check your email" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "You will have to confirm your email address to proceed. Check your email inbox and follow the link provided:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/04.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "4. Log in to your new account" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "Next, log in to your new account." msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/05.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "5. Join the *Reproducible Builds* group" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "On *Salsa*, development is split into groups. You will need to join the [reproducible-builds](https://salsa.debian.org/reproducible-builds) group before you can commit directly to our Git repositories. You can, however, submit [merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/) without this step." msgstr "" #. type: Plain text #: contribute/salsa.md msgid "To join the *Reproducible Builds* group, ensure you are logged into *Salsa*, visit **[salsa.debian.org/reproducible-builds](https://salsa.debian.org/reproducible-builds)** and then select **Request Access**:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/06.png)" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "After requesting access, you should see the following message:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/07.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "6. Wait for confirmation" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "Unfortunately you currently have to wait for someone already on the Reproducible Builds community to accept your request. You should receive an email once this occurs:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/08.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "7. Add an SSH key" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "Finally, to push directly to our Git repositories you will need to add your SSH key to your *Salsa* account settings. You can do this by visiting **[salsa.debian.org/profile/keys](https://salsa.debian.org/profile/keys)**:" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "![](/images/contribute/salsa/09.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, no-wrap msgid "8. Congratulations!" msgstr "" #. type: Plain text #: contribute/salsa.md msgid "Congratulations, you are now part of the *Reproducible Builds* group on *Salsa* and you should now be able to clone and push to our repositories via Git." msgstr ""