# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-07-11 20:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: en_US\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: Title # #: citests.md #, markdown-text, no-wrap msgid "Continuous tests" msgstr "" #. type: Plain text #: citests.md #, markdown-text, 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 #, markdown-text, 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 #, markdown-text, no-wrap msgid "External tests" msgstr "" #. type: Plain text #: citests.md #, markdown-text, no-wrap msgid "" "
\n" "The following projects are being tested outside the reproducible test infrastructure.\n" "
\n" msgstr "" #. type: Plain text #: citests.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "Disabled tests" msgstr "" #. type: Plain text #: citests.md #, markdown-text, 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 #, markdown-text, 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 #, markdown-text msgid "Getting reproducible builds for your software or distribution might be easier than you think." msgstr "" #. type: Plain text #: docs.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Help the Reproducible Builds effort!" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text msgid "[![Software Freedom Conservancy]({{ \"/assets/images/sponsor/conservancy.png#left\" | relative_url }})](https://sfconservancy.org/)" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text msgid "See [who is currently supporting]({{ \"sponsors\" | relative_url }}) the Reproducible Builds project. {: .lead}" msgstr "" #. type: Title ### #: donate.md #, markdown-text, no-wrap msgid "About the project" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Past work" msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Future work" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Benefits of sponsorship" msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text msgid "You (or your company) are contributing to a renowned and respected free/open source project." msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "Contributions are tax-deductible to the extent permitted by law." msgstr "" #. type: Plain text #: donate.md #, markdown-text, no-wrap msgid "**Please see our list of [current sponsors]({{ \"sponsors\" | relative_url }}).**\n" msgstr "" #. type: Title ### #: donate.md #, markdown-text, no-wrap msgid "Logos" msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Levels" msgstr "" #. type: Plain text #: donate.md #, markdown-text msgid "Below are the names and amounts associated with levels of sponsorship (all values in USD and per year):" msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text msgid "Platinum: $300,000" msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text msgid "Gold: $125,000" msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text msgid "Silver: $75,000" msgstr "" #. type: Bullet: '* ' #: donate.md #, markdown-text msgid "Bronze: $30,000" msgstr "" #. type: Title ## #: donate.md #, markdown-text, no-wrap msgid "Non-monetary Donations" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Contact" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Paypal" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "
\n" " \n" " \n" " \n" "
\n" msgstr "" #. type: Title ## #: donate.md #, markdown-text, no-wrap msgid "Other methods" msgstr "" #. type: Plain text #: donate.md #, markdown-text 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 #, markdown-text, 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 #, markdown-text, 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 #, markdown-text msgid "![]({{ \"/assets/images/sponsor/team.jpg\" | relative_url }})" msgstr "" #. type: Title # #: events.md #, markdown-text, no-wrap msgid "Events" msgstr "" #. type: Plain text #: events.md #, markdown-text, no-wrap 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 "" #. type: Plain text #: events.md #, markdown-text 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 #, markdown-text, no-wrap msgid "{{ page.title }}" msgstr "" #. type: Plain text #: events.md #, markdown-text, no-wrap msgid "*{{ page.event_date_string }}* — {{ page.event_location }}\n" msgstr "" #. type: Plain text #: events.md #, markdown-text msgid "{{ page.event_summary }}" msgstr "" #. type: Plain text #: events.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "
\n" "
\n" "
\n" " \n" " \"Reproducible\n" " \n" msgstr "" #. type: Plain text #: index.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "" " \n" " (more)\n" " \n" "

\n" "
\n" "
\n" "
\n" msgstr "" #. type: Plain text #: index.md #, markdown-text msgid "{% include nav_buttons.html %}" msgstr "" #. type: Title ## #: index.md #, markdown-text, no-wrap msgid "Why does it matter?" msgstr "" #. type: Plain text #: index.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "[Several free software projects]({{ \"/who/\" | relative_url }}) already, or will soon, provide reproducible builds." msgstr "" #. type: Title ## #: index.md #, markdown-text, no-wrap msgid "How?" msgstr "" #. type: Plain text #: index.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "Learn more about [how to make your software build reproducibly…]({{ \"/docs\" | relative_url }})" msgstr "" #. type: Title ## #: index.md #, markdown-text, no-wrap msgid "Recent monthly reports" msgstr "" #. type: Plain text #: index.md #, markdown-text, no-wrap msgid "" "
    \n" " {% assign reports = site.reports | sort: 'year, month' | where: 'draft', 'false' | reverse %}\n" " {% for x in reports limit: 3 %}\n" "
  • \n" " {{ x.date | date: \"%b %-d, %Y\" }}:\n" " {{ x.title }}\n" "
  • \n" " {% endfor %}\n" "
\n" msgstr "" #. type: Plain text #: index.md #, markdown-text msgid "([See all reports…]({{ \"/news/\" | relative_url }}))" msgstr "" #. type: Title ## #: index.md #, markdown-text, no-wrap msgid "Recent news" msgstr "" #. type: Plain text #: index.md #, markdown-text, no-wrap msgid "" "
    \n" " {% assign posts = site.posts | where: 'draft', 'false' %}\n" " {% for x in posts limit: 3 %}\n" "
  • \n" " {{ x.date | date: \"%b %-d, %Y\" }}:\n" " {{ x.title }}\n" "
  • \n" " {% endfor %}\n" "
\n" msgstr "" #. type: Plain text #: index.md #, markdown-text msgid "([See all…]({{ \"/news/\" | relative_url }}))" msgstr "" #. type: Plain text #: index.md #, markdown-text msgid "{% assign sponsors = site.data.sponsors.platinum | sort: 'name' %} {% if sponsors.size != 0 %}" msgstr "" #. type: Title ## #: index.md #, markdown-text, no-wrap msgid "Sponsors" msgstr "" #. type: Plain text #: index.md #, markdown-text msgid "We are proud to be [sponsored by]({{ \"/sponsors/\" | relative_url }}):" msgstr "" #. type: Plain text #: index.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "
\n" msgstr "" #. type: Yaml Front Matter Hash Value: title #: newstyle.md #, no-wrap msgid "Test" msgstr "" #. type: Title # #: newstyle.md #, markdown-text, no-wrap msgid "h1 Heading 8-)" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "h2 Heading" msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, no-wrap msgid "h3 Heading" msgstr "" #. type: Title #### #: newstyle.md #, markdown-text, no-wrap msgid "h4 Heading" msgstr "" #. type: Title ##### #: newstyle.md #, markdown-text, no-wrap msgid "h5 Heading" msgstr "" #. type: Title ###### #: newstyle.md #, markdown-text, no-wrap msgid "h6 Heading" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "Horizontal Rules" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "Typographic replacements" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Enable typographer option to see result." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "(c) (C) (r) (R) (tm) (TM) (p) (P) +-" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "test.. test... test..... test?..... test!...." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "!!!!!! ???? ,, -- ---" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "\"Smartypants, double quotes\" and 'single quotes'" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "Emphasis" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid "**This is bold text**\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "__This is bold text__" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid "*This is italic text*\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "_This is italic text_" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "~~Strikethrough~~" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "Blockquotes" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "Lists" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Unordered" msgstr "" #. type: Bullet: '+ ' #: newstyle.md #, markdown-text msgid "Create a list by starting a line with `+`, `-`, or `*`" msgstr "" #. type: Bullet: '+ ' #: newstyle.md #, markdown-text msgid "Sub-lists are made by indenting 2 spaces:" msgstr "" #. type: Bullet: ' - ' #: newstyle.md #, markdown-text msgid "Marker character change forces new list start:" msgstr "" #. type: Bullet: ' * ' #: newstyle.md #, markdown-text msgid "Ac tristique libero volutpat at" msgstr "" #. type: Bullet: ' + ' #: newstyle.md #, markdown-text msgid "Facilisis in pretium nisl aliquet" msgstr "" #. type: Bullet: ' - ' #: newstyle.md #, markdown-text msgid "Nulla volutpat aliquam velit" msgstr "" #. type: Bullet: '+ ' #: newstyle.md #, markdown-text msgid "Very easy!" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Ordered" msgstr "" #. type: Bullet: '1. ' #: newstyle.md #, markdown-text msgid "Lorem ipsum dolor sit amet" msgstr "" #. type: Bullet: '2. ' #: newstyle.md #, markdown-text msgid "Consectetur adipiscing elit" msgstr "" #. type: Bullet: '3. ' #: newstyle.md #, markdown-text msgid "Integer molestie lorem at massa" msgstr "" #. type: Bullet: '1. ' #: newstyle.md #, markdown-text msgid "You can use sequential numbers..." msgstr "" #. type: Bullet: '1. ' #: newstyle.md #, markdown-text msgid "...or keep all the numbers as `1.`" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Start numbering with offset:" msgstr "" #. type: Bullet: '57. ' #: newstyle.md #, markdown-text msgid "foo" msgstr "" #. type: Bullet: '1. ' #: newstyle.md #, markdown-text msgid "bar" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "Code" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Inline `code`" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Indented code" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, 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 #, markdown-text msgid "Block code \"fences\"" msgstr "" #. type: Fenced code block #: newstyle.md #, no-wrap msgid "Sample text here...\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Tables" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, 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 #, markdown-text msgid "Right aligned columns" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "Links" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "[link text](http://dev.nodeca.com)" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "[link with title](http://nodeca.github.io/pica/demo/ \"title text!\")" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Autoconverted link https://github.com/nodeca/pica (enable linkify to see)" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "Images" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text 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 #, markdown-text msgid "Like links, Images also have a footnote style syntax" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "![Alt text][id]" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "With a reference later in the document defining the URL location:" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "[id]: https://octodex.github.com/images/dojocat.jpg \"The Dojocat\"" msgstr "" #. type: Title ## #: newstyle.md #, markdown-text, no-wrap msgid "Plugins" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text 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 #, markdown-text, no-wrap msgid "[Emojies](https://github.com/markdown-it/markdown-it-emoji)" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid "" "> Classic markup: :wink: :crush: :cry: :tear: :laughing: :yum:\n" ">\n" "> Shortcuts (emoticons): :-) :-( 8-) ;)\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "see [how to change output](https://github.com/markdown-it/markdown-it-emoji#change-output) with twemoji." msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, 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 #, markdown-text msgid "19^th^" msgstr "" #. type: Bullet: '- ' #: newstyle.md #, markdown-text msgid "H~2~O" msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, no-wrap msgid "[\\](https://github.com/markdown-it/markdown-it-ins)" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "++Inserted text++" msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, no-wrap msgid "[\\](https://github.com/markdown-it/markdown-it-mark)" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "==Marked text==" msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, no-wrap msgid "[Footnotes](https://github.com/markdown-it/markdown-it-footnote)" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Footnote 1 link[^first]." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Footnote 2 link[^second]." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Inline footnote^[Text of inline footnote] definition." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Duplicated footnote reference[^second]." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "[^first]: Footnote **can have markup**" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid " and multiple paragraphs.\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "[^second]: Footnote text." msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, no-wrap msgid "[Definition lists](https://github.com/markdown-it/markdown-it-deflist)" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Term 1" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid "" ": Definition 1\n" "with lazy continuation.\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "Term 2 with *inline markup*" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid ": Definition 2\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid " { some code, part of Definition 2 }\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid " Third paragraph of definition 2.\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "_Compact style:_" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid "" "Term 1\n" " ~ Definition 1\n" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid "" "Term 2\n" " ~ Definition 2a\n" " ~ Definition 2b\n" msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, no-wrap msgid "[Abbreviations](https://github.com/markdown-it/markdown-it-abbr)" msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "This is HTML abbreviation example." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text msgid "It converts \"HTML\", but keep intact partial entries like \"xxxHTMLyyy\" and so on." msgstr "" #. type: Plain text #: newstyle.md #, markdown-text, no-wrap msgid "*[HTML]: Hyper Text Markup Language\n" msgstr "" #. type: Title ### #: newstyle.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "Source for the reproducible-builds.org website" msgstr "" #. type: Plain text #: README.md #, markdown-text 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 #, markdown-text msgid "[Jekyll]: https://jekyllrb.com/" msgstr "" #. type: Title - #: README.md #, markdown-text, no-wrap msgid "Viewing the website" msgstr "" #. type: Plain text #: README.md #, markdown-text msgid "It's possible to view the website while making changes:" msgstr "" #. type: Plain text #: README.md #, markdown-text, no-wrap msgid " $ jekyll serve --watch\n" msgstr "" #. type: Plain text #: README.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Build the website" msgstr "" #. type: Plain text #: README.md #, markdown-text 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 #, markdown-text msgid "The result will be available in the `_site` directory." msgstr "" #. type: Plain text #: README.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "Dependencies" msgstr "" #. type: Plain text #: README.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Talks" msgstr "" #. type: Title # #: resources.md #, markdown-text, no-wrap msgid "Talks & Resources" msgstr "" #. type: Title # #: resources.md contribute/index.md #, markdown-text, no-wrap msgid "Contribute" msgstr "" #. type: Plain text #: resources.md #, markdown-text msgid "Find out how to contribute on our [Contribute]({{ \"/contribute/\" | relative_url }}) page." msgstr "" #. type: Plain text #: resources.md #, markdown-text msgid "{% for x in site.data.presentations %}" msgstr "" #. type: Plain text #: resources.md #, markdown-text msgid "{% assign slug = x.title | append: \"-\" | append: x.event.date | slugify %}" msgstr "" #. type: Plain text #: resources.md #, markdown-text, no-wrap msgid "" "
\n" "

{{ x.title }}

\n" msgstr "" #. type: Plain text #: resources.md #, markdown-text, no-wrap msgid "{{ x.event.name }} • {{ x.event.location }}\n" msgstr "" #. type: Plain text #: resources.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "
\n" msgstr "" #. type: Plain text #: resources.md #, markdown-text, no-wrap msgid "" "{% if x.video.youtube %}\n" "YouTube\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, markdown-text, no-wrap msgid "" "{% if x.video.url %}\n" "Video\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, markdown-text, no-wrap msgid "" "{% if x.video.subtitles %}\n" "Subtitles\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, markdown-text, no-wrap msgid "" "{% if x.slides %}\n" "Slides\n" "{% endif %}\n" msgstr "" #. type: Plain text #: resources.md #, markdown-text, no-wrap msgid "" "
\n" "
\n" "{% endfor %}\n" msgstr "" #. type: Title ## #: resources.md #, markdown-text, no-wrap msgid "Slides" msgstr "" #. type: Plain text #: resources.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Tools" msgstr "" #. type: Plain text #: tools.md #, markdown-text, no-wrap msgid "

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

\n" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "diffoscope" msgstr "" #. type: Plain text #: tools.md #, markdown-text 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 #, markdown-text, 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 #, markdown-text, no-wrap msgid "rebuilderd" msgstr "" #. type: Plain text #: tools.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "Homepage\n" "Issues\n" "Arch Linux Documentation\n" "Arch Linux Results\n" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "archlinux-repro" msgstr "" #. type: Plain text #: tools.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "Homepage\n" "Issues\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "trydiffoscope" msgstr "" #. type: Plain text #: tools.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "Homepage\n" "Git\n" "Merge requests\n" "Debian package\n" "PyPI\n" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "disorderfs" msgstr "" #. type: Plain text #: tools.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "Git\n" "Merge requests\n" "Debian package\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "strip-nondeterminism" msgstr "" #. type: Plain text #: tools.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "Git\n" "Issues\n" "Merge requests\n" "Debian package\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "reprotest" msgstr "" #. type: Plain text #: tools.md #, markdown-text 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 #, markdown-text, no-wrap msgid "" "Git\n" "Merge requests\n" "Debian package\n" "Arch Linux package\n" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "Other tools" msgstr "" #. type: Bullet: '* ' #: tools.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "[diffoci](https://github.com/reproducible-containers/diffoci): diff for Docker and OCI (Open Container Initiative) container images" msgstr "" #. type: Title ## #: tools.md #, markdown-text, no-wrap msgid "Misc" msgstr "" #. type: Bullet: '* ' #: tools.md #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Task suggestions for Arch Linux" msgstr "" #. type: Bullet: '1. ' #: contribute/archlinux.md #, markdown-text msgid "Join #archlinux-reproducible on irc.libera.chat." msgstr "" #. type: Bullet: '1. ' #: contribute/archlinux.md #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "Report packaging issues which cause unreproducible packages on the [bugtracker](https://bugs.archlinux.org)." msgstr "" #. type: Title ## #: contribute/archlinux.md contribute/debian.md #, markdown-text, no-wrap msgid "External links" msgstr "" #. type: Bullet: '* ' #: contribute/archlinux.md #, markdown-text msgid "[Arch Linux reproducible builds status](https://reproducible.archlinux.org/)" msgstr "" #. type: Bullet: '* ' #: contribute/archlinux.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Task suggestions for Debian" msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text 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 #, markdown-text msgid "[Inventory issues](#inventorying-issues) found by the continuous integration platform." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text 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 #, markdown-text, 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 #, markdown-text 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 #, markdown-text msgid "Redesign [reproducible.debian.net](https://reproducible.debian.net/) status pages using a CSS toolkit like Bootstrap." msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text 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 #, markdown-text, no-wrap msgid "How to report bugs in Debian" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "To usertag a bug after it has been submitted use:" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text, no-wrap msgid " bts user reproducible-builds@lists.alioth.debian.org . usertag XXXXXX + timestamps toolchain\n" msgstr "" #. type: Title ### #: contribute/debian.md #, markdown-text, no-wrap msgid "Usertags" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**toolchain**: affects a tool used by other package build systems" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**infrastructure**: affects the whole Debian infrastructure or policies" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**timestamps**: time of build in recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**fileordering**: build output varies with readdir() order" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**buildpath**: path of sources is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**username**: username is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**hostname**: hostname is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**uname**: uname output is recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**environment**: environment variables are recorded during the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**randomness**: some build aspects are dependent on (pseudo-)randomness" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**cpu**: some build aspects are dependent on CPU features or computation speed" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**signatures**: uses a cryptographic signatures as part of the build process" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**umask**: permissions depend on current umask" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**buildinfo**: issues related to .buildinfo control files" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**ftbfs**: fails to build from source" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "**locale**: varying locales lead to differing behavior (e.g. sorting)" msgstr "" #. type: Title ### #: contribute/debian.md #, markdown-text, 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 #, markdown-text, no-wrap msgid "Inventorying issues" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Fixing issues" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Fixing a single package" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text msgid "The usual steps are:" msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text msgid "Use `debcheckout` or `apt-get source` to retrieve the source code." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text 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 #, markdown-text msgid "Update `debian/changelog`. New version is usually original version with `.0~reproducible1`." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text msgid "Use `dpkg-buildpackage -S` to create source package." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text 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 #, markdown-text msgid "Use `debdiff` or `git format-patch` to create patches." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Fixing a toolchain package" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text 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 #, markdown-text msgid "Use `pdebuild` or `gbp buildpackage` to build the package." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text msgid "Backup `base-reproducible.tgz`." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text msgid "Use `pbuilder --login --save-after-exec --basetgz base-reproducible.tgz` to install the newly built package." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "Document the changes on the [wiki](https://wiki.debian.org/ReproducibleBuilds/ExperimentalToolchain#Modified_packages)." msgstr "" #. type: Bullet: '1. ' #: contribute/debian.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Continuous integration platform" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Working on installation media or live systems" msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text msgid "Having installation and live systems which can be built reproducibly would also be great." msgstr "" #. type: Plain text #: contribute/debian.md #, markdown-text 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 #, markdown-text msgid "[Reproducible installs](https://wiki.debian.org/ReproducibleBuilds/ReproducibleInstalls)" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text 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 #, markdown-text msgid "[Whonix Verifiable Builds](https://www.whonix.org/wiki/Verifiable_Builds)" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text msgid "[Tails reproducible builds blueprint](https://tails.boum.org/blueprint/reproducible_builds/)" msgstr "" #. type: Bullet: '* ' #: contribute/debian.md #, markdown-text 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 #, markdown-text msgid "This page explains how you can contribute to reproducible builds in [GNU Guix](https://guix.gnu.org)." msgstr "" #. type: Title ## #: contribute/guix.md #, markdown-text, no-wrap msgid "Finding reproducibility issues" msgstr "" #. type: Plain text #: contribute/guix.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Reporting issues" msgstr "" #. type: Plain text #: contribute/guix.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "There are many ways to contribute to the Reproducible Builds project:" msgstr "" #. type: Bullet: '* ' #: contribute/index.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Reproducible Builds cares about all the distributions and projects out there" msgstr "" #. type: Plain text #: contribute/index.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Contribute to distributions" msgstr "" #. type: Plain text #: contribute/index.md #, markdown-text msgid "Various distributions have efforts to become more reproducible:" msgstr "" #. type: Bullet: '* ' #: contribute/index.md #, markdown-text msgid "[Arch Linux]({{ \"/contribute/archlinux/\" | relative_url }} )" msgstr "" #. type: Bullet: '* ' #: contribute/index.md #, markdown-text msgid "[Debian]({{ \"/contribute/debian/\" | relative_url }})" msgstr "" #. type: Bullet: '* ' #: contribute/index.md #, markdown-text msgid "[GNU Guix]({{ \"/contribute/guix/\" | relative_url }})" msgstr "" #. type: Bullet: '* ' #: contribute/index.md #, markdown-text msgid "[NixOS]({{ \"/contribute/nixos/\" | relative_url }})" msgstr "" #. type: Bullet: '* ' #: contribute/index.md #, markdown-text msgid "[openSUSE]({{ \"/contribute/opensuse/\" | relative_url }})" msgstr "" #. type: Title ## #: contribute/index.md #, markdown-text, no-wrap msgid "Donate" msgstr "" #. type: Plain text #: contribute/index.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Community Discussion" msgstr "" #. type: Plain text #: contribute/nixos.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Project Status" msgstr "" #. type: Bullet: '- ' #: contribute/nixos.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Reporting Issues" msgstr "" #. type: Plain text #: contribute/nixos.md #, markdown-text 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 #, markdown-text, no-wrap msgid "Additional Projects" msgstr "" #. type: Bullet: '- ' #: contribute/nixos.md #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "See the tracking bug linked in the next section." msgstr "" #. type: Plain text #: contribute/opensuse.md #, markdown-text 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 #, markdown-text 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 #, markdown-text 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 #, markdown-text, no-wrap msgid "Sending changes" msgstr "" #. type: Plain text #: contribute/opensuse.md #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "Patches can also be attached to Bugzilla issues." msgstr "" #. type: Title # #: contribute/salsa.md #, markdown-text, no-wrap msgid "How to join the Salsa group" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "To [contribute to the Reproducible Builds project](/contribute), please follow the following instructions:" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "1. Visit the \"Sign in\" page" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text 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 #, markdown-text msgid "![](/images/contribute/salsa/01.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "2. Create account" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "Next, create your account:" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "![](/images/contribute/salsa/02.png)" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "After registering, you should see the following screen:" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "![](/images/contribute/salsa/03.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "3. Check your email" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text 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 #, markdown-text msgid "![](/images/contribute/salsa/04.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "4. Log in to your new account" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "Next, log in to your new account." msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "![](/images/contribute/salsa/05.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "5. Join the *Reproducible Builds* group" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text 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 #, markdown-text 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 #, markdown-text msgid "![](/images/contribute/salsa/06.png)" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "After requesting access, you should see the following message:" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text msgid "![](/images/contribute/salsa/07.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "6. Wait for confirmation" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text 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 #, markdown-text msgid "![](/images/contribute/salsa/08.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "7. Add an SSH key" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text 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 #, markdown-text msgid "![](/images/contribute/salsa/09.png)" msgstr "" #. type: Title ### #: contribute/salsa.md #, markdown-text, no-wrap msgid "8. Congratulations!" msgstr "" #. type: Plain text #: contribute/salsa.md #, markdown-text 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 ""