97
Reproducible builds everywhere eg. in Debian and Fedora and everywhere Bit by bit identical binaries from a given source Dennis Gilmore Holger 'h01ger' Levsen DevConf.cz in Brno, Czech Republic 2017-01-27

Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Reproducible builds everywhereeg. in Debian and Fedora and everywhere

Bit by bit identical binariesfrom a given source

Dennis GilmoreHolger 'h01ger' Levsen

DevConf.cz in Brno, Czech Republic2017-01-27

Page 2: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

about Dennis

28CA D001 51E6 21DA 1F2D C13B 7EE5 B4E3 663C 50D1Fedora user since Fedora Core 1 (2003)Fedora contributor since fedora.usPlattform lead at Red HatDay job for the last 8 years is Fedora Release Engineering

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 2 / 58

Page 3: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

about h01gerB8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1CDebian user since 1995, contributor since 2001, official developer status since 2007DebConf organizer, founded the DebConf video team

I http://video.debian.netDebian-Edu (Debian for education)Debian QA (quality assurance)

I https://piuparts.debian.orgI https://jenkins.debian.net ( 1200 jobs continously testing Debian)

Debian Reproducible builds team memberI since April 2015 funded by the Linux Foundation

the Debian branding on these slides is obviously my fault…

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 3 / 58

Page 4: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

about h01gerB8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1CDebian user since 1995, contributor since 2001, official developer status since 2007DebConf organizer, founded the DebConf video team

I http://video.debian.netDebian-Edu (Debian for education)Debian QA (quality assurance)

I https://piuparts.debian.orgI https://jenkins.debian.net ( 1200 jobs continously testing Debian)

Debian Reproducible builds team memberI since April 2015 funded by the Linux Foundation

the Debian branding on these slides is obviously my fault…

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 3 / 58

Page 5: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian reproducible builds contributorsakiraAlexis BienvenüeAndrew AyerAsheesh LaroiaBoyuan YangCeridwenChris LambChris WestChristoph BergClint AdamsDafydd HarriesDaniel Kahn GillmorDaniel ShahafDaniel StenderDavid SuarezDholeDrew FisherEmmanuel Bourg

Emanuel BronshteinEsa PeuhaFabian WolffGuillem JoverHans-Christoph SteinerHarlan Lieberman-BergHelmut GrohneHolger LevsenHW42IntrigeriJelmer VernooijjoschJuan PiccaLunarMaria GlukhovaMathieu BridonMattia RizzoloNicolas BoulenguezNiels Thykier

Niko TyniPaul WisePeter De WachterPhilip RinnReiner HerrmannRobbie HarwoodSantiago VilaSascha SteinbissSatyam ZodeScarlett ClarkStefano RiveraStéphane GlonduSteven ChamberlainTom FitzhenryValerie YoungValentin LorentzWookeyXimin LuoDennis and h01ger Reproducible Builds and Fedora DevConf.cz 4 / 58

Page 6: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian reproducible builds contributorsakiraAlexis BienvenüeAndrew AyerAsheesh LaroiaBoyuan YangCeridwenChris LambChris WestChristoph BergClint AdamsDafydd HarriesDaniel Kahn GillmorDaniel ShahafDaniel StenderDavid SuarezDholeDrew FisherEmmanuel Bourg

Emanuel BronshteinEsa PeuhaFabian WolffGuillem JoverHans-Christoph SteinerHarlan Lieberman-BergHelmut GrohneHolger LevsenHW42IntrigeriJelmer VernooijjoschJuan PiccaLunarMaria GlukhovaMathieu BridonMattia RizzoloNicolas BoulenguezNiels Thykier

Niko TyniPaul WisePeter De WachterPhilip RinnReiner HerrmannRobbie HarwoodSantiago VilaSascha SteinbissSatyam ZodeScarlett ClarkStefano RiveraStéphane GlonduSteven ChamberlainTom FitzhenryValerie YoungValentin LorentzWookeyXimin LuoDennis and h01ger Reproducible Builds and Fedora DevConf.cz 4 / 58

Page 7: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Who are you?

Seen a talk about reproducible builds?Contributed to the effort?Uses Debian or a Debian based system?Uses Fedora, RHEL, CentOS or a Fedora derivative based system?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 5 / 58

Page 8: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Who are you?

Seen a talk about reproducible builds?

Contributed to the effort?Uses Debian or a Debian based system?Uses Fedora, RHEL, CentOS or a Fedora derivative based system?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 5 / 58

Page 9: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Who are you?

Seen a talk about reproducible builds?Contributed to the effort?

Uses Debian or a Debian based system?Uses Fedora, RHEL, CentOS or a Fedora derivative based system?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 5 / 58

Page 10: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Who are you?

Seen a talk about reproducible builds?Contributed to the effort?Uses Debian or a Debian based system?

Uses Fedora, RHEL, CentOS or a Fedora derivative based system?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 5 / 58

Page 11: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Who are you?

Seen a talk about reproducible builds?Contributed to the effort?Uses Debian or a Debian based system?Uses Fedora, RHEL, CentOS or a Fedora derivative based system?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 5 / 58

Page 12: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 13: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

The problem: we need to believe

Free Software is great: one can study, modify, share and use it!

We study, modify and share source code.We use binaries.We need to believe our binaries come from the source code they aresaid to made from.I don't want to believe.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 7 / 58

Page 14: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

The problem: we need to believe

Free Software is great: one can study, modify, share and use it!We study, modify and share source code.We use binaries.

We need to believe our binaries come from the source code they aresaid to made from.I don't want to believe.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 7 / 58

Page 15: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

The problem: we need to believe

Free Software is great: one can study, modify, share and use it!We study, modify and share source code.We use binaries.We need to believe our binaries come from the source code they aresaid to made from.

I don't want to believe.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 7 / 58

Page 16: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

The problem: we need to believe

Free Software is great: one can study, modify, share and use it!We study, modify and share source code.We use binaries.We need to believe our binaries come from the source code they aresaid to made from.I don't want to believe.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 7 / 58

Page 17: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

The problem in greater detail

Available on media.ccc.de, 31c3Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 8 / 58

Page 18: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

A few examples from that 31c3 talkCVE-2002-0083: remote root exploit in sshd, a single bit differencein the binary

31c3 talk had a live demo with a kernel module modifying sourcecode in memory onlyHow can you be sure what's running on your machine or on a builddaemon network connected to the net? Do you ever leave yourcomputers physically alone?How much do you pay your admins? Enough to withstand a multimillion dollar attack?Legal challanges. Could you be forced to backdoor (some of) yoursoftware (for some customers)?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 9 / 58

Page 19: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

A few examples from that 31c3 talkCVE-2002-0083: remote root exploit in sshd, a single bit differencein the binary31c3 talk had a live demo with a kernel module modifying sourcecode in memory only

How can you be sure what's running on your machine or on a builddaemon network connected to the net? Do you ever leave yourcomputers physically alone?How much do you pay your admins? Enough to withstand a multimillion dollar attack?Legal challanges. Could you be forced to backdoor (some of) yoursoftware (for some customers)?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 9 / 58

Page 20: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

A few examples from that 31c3 talkCVE-2002-0083: remote root exploit in sshd, a single bit differencein the binary31c3 talk had a live demo with a kernel module modifying sourcecode in memory onlyHow can you be sure what's running on your machine or on a builddaemon network connected to the net? Do you ever leave yourcomputers physically alone?

How much do you pay your admins? Enough to withstand a multimillion dollar attack?Legal challanges. Could you be forced to backdoor (some of) yoursoftware (for some customers)?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 9 / 58

Page 21: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

A few examples from that 31c3 talkCVE-2002-0083: remote root exploit in sshd, a single bit differencein the binary31c3 talk had a live demo with a kernel module modifying sourcecode in memory onlyHow can you be sure what's running on your machine or on a builddaemon network connected to the net? Do you ever leave yourcomputers physically alone?How much do you pay your admins? Enough to withstand a multimillion dollar attack?

Legal challanges. Could you be forced to backdoor (some of) yoursoftware (for some customers)?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 9 / 58

Page 22: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

A few examples from that 31c3 talkCVE-2002-0083: remote root exploit in sshd, a single bit differencein the binary31c3 talk had a live demo with a kernel module modifying sourcecode in memory onlyHow can you be sure what's running on your machine or on a builddaemon network connected to the net? Do you ever leave yourcomputers physically alone?How much do you pay your admins? Enough to withstand a multimillion dollar attack?Legal challanges. Could you be forced to backdoor (some of) yoursoftware (for some customers)?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 9 / 58

Page 23: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Another example from real lifeAt a CIA conference in 2012:

firstlook.org/theintercept/2015/03/10/ispy-cia-campaign-steal-apples-secrets/

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 10 / 58

Page 24: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

The solution

Promise that anyone can always and independentlygenerate identical binary packages from a given

source

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 11 / 58

Page 25: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

The solution

We call this:

“Reproducible builds”

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 12 / 58

Page 26: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian demo (skipped)

Build a package 5 times, get 5 .debs with different checksumsBuild a package 5 times, get 5 .debs with the same checksum

Yes, it's really this simple.And works the same with RPMs.Signed RPMs are a bit more complicated but the principle stays thesame.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 13 / 58

Page 27: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian demo (skipped)

Build a package 5 times, get 5 .debs with different checksumsBuild a package 5 times, get 5 .debs with the same checksumYes, it's really this simple.

And works the same with RPMs.Signed RPMs are a bit more complicated but the principle stays thesame.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 13 / 58

Page 28: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian demo (skipped)

Build a package 5 times, get 5 .debs with different checksumsBuild a package 5 times, get 5 .debs with the same checksumYes, it's really this simple.And works the same with RPMs.

Signed RPMs are a bit more complicated but the principle stays thesame.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 13 / 58

Page 29: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian demo (skipped)

Build a package 5 times, get 5 .debs with different checksumsBuild a package 5 times, get 5 .debs with the same checksumYes, it's really this simple.And works the same with RPMs.Signed RPMs are a bit more complicated but the principle stays thesame.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 13 / 58

Page 30: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

This should become thenorm.

We want to change the meaning of "free software":it's only free software if it's reproducible!

Page 31: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

This should become thenorm.

We want to change the meaning of "free software":it's only free software if it's reproducible!

Page 32: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

More benefits than "just" security…

Lots and lots of QA benefits - we've found so many subtile bugs.

Google does reproducible builds, to save time and money.Smaller deltas, thus faster updates possible (for packages andimages).Side effect: meaningful binary diff between two versions.…

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 15 / 58

Page 33: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

More benefits than "just" security…

Lots and lots of QA benefits - we've found so many subtile bugs.Google does reproducible builds, to save time and money.

Smaller deltas, thus faster updates possible (for packages andimages).Side effect: meaningful binary diff between two versions.…

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 15 / 58

Page 34: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

More benefits than "just" security…

Lots and lots of QA benefits - we've found so many subtile bugs.Google does reproducible builds, to save time and money.Smaller deltas, thus faster updates possible (for packages andimages).

Side effect: meaningful binary diff between two versions.…

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 15 / 58

Page 35: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

More benefits than "just" security…

Lots and lots of QA benefits - we've found so many subtile bugs.Google does reproducible builds, to save time and money.Smaller deltas, thus faster updates possible (for packages andimages).Side effect: meaningful binary diff between two versions.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 15 / 58

Page 36: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

More benefits than "just" security…

Lots and lots of QA benefits - we've found so many subtile bugs.Google does reproducible builds, to save time and money.Smaller deltas, thus faster updates possible (for packages andimages).Side effect: meaningful binary diff between two versions.…

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 15 / 58

Page 37: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 38: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

reproducible-builds.orghttps://reproducible-builds.orggit repositories, IRC channels, mailinglists, webspace

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 17 / 58

Page 39: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debugging problems:https://try.diffoscope.org

Examines differences in depth.Recursively unpacks archives, uncompresses PDFs, disassemblesbinaries, unpacks Gettext files, …Easy to extend to new file formats.Falls back to binary comparison.Outputs HTML or plain text with human readable differences.Available from git, PyPI, Debian,Arch Linux, Guix, Homebrew, Fedora. Works on BSD.Maintainers in other distros wanted.https://diffoscope.org/

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 18 / 58

Page 40: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

diffoscope example (HTML output)

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 19 / 58

Page 41: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

diffoscope is "just" for debugging

Reminder: diffoscope is for debugging"reproducible" according to our definition means: bit by bitidentical. So the tools for testing whether something is reproducibleare either diff or sha256sum!

https://try.diffoscope.org

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 20 / 58

Page 42: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

diffoscope is "just" for debugging

Reminder: diffoscope is for debugging"reproducible" according to our definition means: bit by bitidentical. So the tools for testing whether something is reproducibleare either diff or sha256sum!https://try.diffoscope.org

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 20 / 58

Page 43: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

tests.reproducible-builds.org

Continuously testing Debian testing, unstable andexperimentalAlso testing: coreboot, OpenWrt, LEDE, NetBSD, FreeBSD, ArchLinux, Fedora and soon F-Droid too44 nodes (amd64/i386/arm64/armhf), 200 cores and 1 TB RAM486 jenkins jobs running on jenkins.debian.net43 scripts in Python and Bash, 283 lines of code in average37 contributors for jenkins.debian.net.git

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 21 / 58

Page 44: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Variations (when testing Debian)variation first build second buildhostname jenkins i-capture-the-hostnamedomainname debian.net i-capture-the-domainnameenv TZ GMT+12 GMT-14env LANG C fr CH.UTF-8env LC ALL not set fr CH.UTF-8env USER pbuilder1 pbuilder2uid 1111 2222gid 1111 2222UTS namespace shared with the host modified using /usr/bin/unshare --utskernel version Linux 3.16 or 4.X on amd64 always varied, on armhf sometimesumask 0022 0002CPU type varied on i386

on armhf varied a bit, not on amd64filesystem same for both builds on amd64: (tmpfs), on armhf ext3/4

(and we have disorderfs, but the code is disabled)year, month, date on amd64: 398 days variation, on armhf not yethour, minute hour is usually the same… usually, the minute differs…everything else is likely the same…

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 22 / 58

Page 45: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Common problems

time stampstimezoneslocalesbuild pathseverything else (seperated into known issues and the blurry rest)

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 23 / 58

Page 46: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Documentation about common problemshttps://reproducible-builds.org/docsLunar's talk from CCCamp 2015 also on https://media.ccc.de

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 24 / 58

Page 47: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

SOURCE DATE EPOCH

Build date (timestamps) usually not useful for the userSOURCE DATE EPOCH is defined as the last modification of thesource, since the epoch (1970-01-01)can be used instead of current datecan also be used for random seeds etc.in Debian, set from the latest debian/changelog entrycan be set to the latest git commit too or the latest file modificationdate

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 25 / 58

Page 48: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

SOURCE DATE EPOCH

SOURCE DATE EPOCH spec available:https://reproducible-builds.org/specs/many upstreams support it alreadyhas been adopted by other distributions (openSUSE, OpenWrt,LEDE, NetBSD, FreeBSD, Arch Linux, coreboot, Guix, …) and manymany upstreams (GCC, dpkg, rpm, mkisofs, ghostscript, libxslt,sphinx, texlive-bin, …)

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 26 / 58

Page 49: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

two more tools

strip-nondeterminism

reprotest

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 27 / 58

Page 50: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

two more tools

strip-nondeterminismreprotest

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 27 / 58

Page 51: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 52: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Progress in Debian testing ("stretch")

23,405 (93.3%) out of 25,067 source packages are reproduciblein our test framework on amd64

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 29 / 58

Page 53: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Progress in Debian unstable

20,309 (78.9%) out of 25,734 source packages are reproduciblein our test framework on amd64 (difference due to build path variations)

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 30 / 58

Page 54: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Details on tests.reproducible-builds.org

https://reproducible.debian.net/$src48 package sets282 categorised distinct issues7,413 notes1,595 unreproducible packages in stretch/amd64 (testing), butonly 111 without a note (5,288 in unstable but also only 154without a note)maintained in notes.git by 49 contributorscurrently Debian only, but cross distro notes are planned

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 31 / 58

Page 55: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian .buildinfo files

Aggregates in the same file:I Sources (checksums)I Generated binaries (checksums)I Packages used to build (with specific version, checksums coming soon)

Can be later used to exactly recreate environmentFor Debian, all versions are available from snapshot.debian.org

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 32 / 58

Page 56: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Progress in the Debian bug tracker

As a rule, we file bugs with patches.There are very few exceptions.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 33 / 58

Page 57: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Sending progress upstream

So we filed a lot of bugs… with patches…!… but only in Debian and we rely on Debian maintainers sendingthem upstream.

Bernard Wiedemann (from openSUSE) thought that wasn't goodenough and created https://github.com/orgs/distropatches

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 34 / 58

Page 58: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Sending progress upstream

So we filed a lot of bugs… with patches…!… but only in Debian and we rely on Debian maintainers sendingthem upstream.Bernard Wiedemann (from openSUSE) thought that wasn't goodenough and created https://github.com/orgs/distropatches

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 34 / 58

Page 59: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian summary / What's left to do

This is/was a proof-of-concept, Debian is neither 93.3% reproduciblenor 78.9%. (and 10% > 2,500 sources packages!)

All our required changes are finally in Debian now!Debian 9, "stretch", will only be partially reproducible.Because, Debian does not (yet?) do full rebuilds before releasing… sostuff is in the archive which is not reproducible unless it's rebuild.And then we don't distribute .buildinfo files yet. That (and usertools) still needs more design and code.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 35 / 58

Page 60: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian summary / What's left to do

This is/was a proof-of-concept, Debian is neither 93.3% reproduciblenor 78.9%. (and 10% > 2,500 sources packages!)All our required changes are finally in Debian now!Debian 9, "stretch", will only be partially reproducible.Because, Debian does not (yet?) do full rebuilds before releasing… sostuff is in the archive which is not reproducible unless it's rebuild.

And then we don't distribute .buildinfo files yet. That (and usertools) still needs more design and code.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 35 / 58

Page 61: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian summary / What's left to do

This is/was a proof-of-concept, Debian is neither 93.3% reproduciblenor 78.9%. (and 10% > 2,500 sources packages!)All our required changes are finally in Debian now!Debian 9, "stretch", will only be partially reproducible.Because, Debian does not (yet?) do full rebuilds before releasing… sostuff is in the archive which is not reproducible unless it's rebuild.And then we don't distribute .buildinfo files yet. That (and usertools) still needs more design and code.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 35 / 58

Page 62: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian summary continued

Debian 9, "stretch", will only be partially reproducible.Canonical can take our work now and make Ubuntu 17.04 (partyl)reproducible…

Debian 10, "buster", will be partly reproducible in 2019.We hope will have debian-policy will mandate 100% reproduciblebuilds for Debian 11, "bullseye", in 2021.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 36 / 58

Page 63: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian summary continued

Debian 9, "stretch", will only be partially reproducible.Canonical can take our work now and make Ubuntu 17.04 (partyl)reproducible…Debian 10, "buster", will be partly reproducible in 2019.

We hope will have debian-policy will mandate 100% reproduciblebuilds for Debian 11, "bullseye", in 2021.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 36 / 58

Page 64: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Debian summary continued

Debian 9, "stretch", will only be partially reproducible.Canonical can take our work now and make Ubuntu 17.04 (partyl)reproducible…Debian 10, "buster", will be partly reproducible in 2019.We hope will have debian-policy will mandate 100% reproduciblebuilds for Debian 11, "bullseye", in 2021.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 36 / 58

Page 65: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Tell the world & collaborate"We don't care about Debian (only), we care about free and opensource software."

90 Weekly reports since May 2015First Reproducible World Summit in December 2015 (Athens,Greece)

I reproducible.debian.net has becometests.reproducible-builds.org

Second Reproducible World Summit in December 2016 in BerlinThird summit planned for 2017, probably a hackathon in spring 2017tooGSoC and Outreachy

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 37 / 58

Page 66: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Tell the world & collaborate"We don't care about Debian (only), we care about free and opensource software."90 Weekly reports since May 2015

First Reproducible World Summit in December 2015 (Athens,Greece)

I reproducible.debian.net has becometests.reproducible-builds.org

Second Reproducible World Summit in December 2016 in BerlinThird summit planned for 2017, probably a hackathon in spring 2017tooGSoC and Outreachy

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 37 / 58

Page 67: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Tell the world & collaborate"We don't care about Debian (only), we care about free and opensource software."90 Weekly reports since May 2015First Reproducible World Summit in December 2015 (Athens,Greece)

I reproducible.debian.net has becometests.reproducible-builds.org

Second Reproducible World Summit in December 2016 in BerlinThird summit planned for 2017, probably a hackathon in spring 2017too

GSoC and Outreachy

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 37 / 58

Page 68: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Tell the world & collaborate"We don't care about Debian (only), we care about free and opensource software."90 Weekly reports since May 2015First Reproducible World Summit in December 2015 (Athens,Greece)

I reproducible.debian.net has becometests.reproducible-builds.org

Second Reproducible World Summit in December 2016 in BerlinThird summit planned for 2017, probably a hackathon in spring 2017tooGSoC and Outreachy

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 37 / 58

Page 69: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 70: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Skipping some…https://tests.r-b.org/coreboothttps://tests.r-b.org/netbsdhttps://tests.r-b.org/freebsdpaused: https://tests.r-b.org/archlinuxnot yet: https://tests.r-b.org/f-droidhttps://tests.r-b.org/openwrthttps://tests.r-b.org/lede

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 39 / 58

Page 71: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Skipping some more…Cygnus.com (1992)Bitcoin (2011)Tor (2013)NixOS, GNU Guix, ElectroBSDopenSUSEQubes, Tails, webconvergerGoogle Bazilducible (build tool for Windows)very few commercial, propietary software

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 40 / 58

Page 72: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Detour: what, reproducible commercial Software???

Guess which

windows? (the source is available)medical devices in your body?arms?critical infrastructure like in nuclear powerplants?cars?Gambling machines!

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 41 / 58

Page 73: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Detour: what, reproducible commercial Software???

Guess whichwindows? (the source is available)medical devices in your body?arms?critical infrastructure like in nuclear powerplants?cars?

Gambling machines!

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 41 / 58

Page 74: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Detour: what, reproducible commercial Software???

Guess whichwindows? (the source is available)medical devices in your body?arms?critical infrastructure like in nuclear powerplants?cars?Gambling machines!

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 41 / 58

Page 75: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 76: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

reproducible openSUSE

https://build.opensuse.org/package/show/home:bmwiedemann:reproducible/rpm?expand=0Bernhard Wiedemann has built openSUSE twice (with some variations):

I build-succeeded: 3172I bit-by-bit-identical: 2117I not-bit-by-bit-identical: 1055

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 43 / 58

Page 77: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

tests.r-b.org/fedora

used to test Fedora 23, could be made working againor build elsewhere and machine readable exported

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 44 / 58

Page 78: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Fedora basics

diffoscope is available in Fedorayum and dnf might create non-identical environmentsrpm-4.13 has an option to override hostname via rpmmacrossigned RPMs -> re-apply signature, will match for identical builds

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 45 / 58

Page 79: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

TODO: design .buildinfo files fromkoji/mock/zypper

rfc822 format?needs to define the environmentneeds to define the sources (input)needs to define the binaries (output)

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 46 / 58

Page 80: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 81: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Future work

So far we mostly worked on making reproducible builds possible…

We'll need constant tests for future code.And then, this still needs tools, infrastructure and policies to becomemeaningful and to be used in practice.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 48 / 58

Page 82: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Future work

So far we mostly worked on making reproducible builds possible…We'll need constant tests for future code.

And then, this still needs tools, infrastructure and policies to becomemeaningful and to be used in practice.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 48 / 58

Page 83: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Future work

So far we mostly worked on making reproducible builds possible…We'll need constant tests for future code.And then, this still needs tools, infrastructure and policies to becomemeaningful and to be used in practice.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 48 / 58

Page 84: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Rebuilds and sharing signed checksums

Almost no work has been done here yet. We are just at the first step:being able to rebuild reproducibly…Different projects, different solutions?

I something like .buildinfo files (defining the environment, the input andthe output(s)) will be needed everywhere:

I implemented for Debian (both in sbuild and well as buildinfo.debian.net)I work has begun for coreboot, LEDE/OpenWrt and Fedora (mock/koji) and

maybe openSUSE (OpenBuildService)

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 49 / 58

Page 85: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Rebuilds and sharing signed checksums

Almost no work has been done here yet. We are just at the first step:being able to rebuild reproducibly…Different projects, different solutions?

I something like .buildinfo files (defining the environment, the input andthe output(s)) will be needed everywhere:

I implemented for Debian (both in sbuild and well as buildinfo.debian.net)I work has begun for coreboot, LEDE/OpenWrt and Fedora (mock/koji) and

maybe openSUSE (OpenBuildService)

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 49 / 58

Page 86: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Rebuilders and sharing signed checksums, cont.

Individuelly signed checksums (think web of trust) could work in theDebian case (we have a gpg web of trust), but IMO won't scale.Another idea: rebuilders, run by large organisations (ACLU, CCC,Deutsche Bank, Greenpeace, NASA, NSA, US-Army).Fedora rebuilds Debian, Debian rebuilds openSUSE, openSUSErebuilds NetBSD, etc…Big customers could just rebuild everything themselves.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 50 / 58

Page 87: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Integration in user tools

"Do you really want to install this unreproducible software (y/N)"

"Do you want to build those packages which have unconfirmedchecksums, before installing? (Y/n)""How many signed checksums do you require to call a package'reproducible'?" - and whom do you trust?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 51 / 58

Page 88: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Integration in user tools

"Do you really want to install this unreproducible software (y/N)""Do you want to build those packages which have unconfirmedchecksums, before installing? (Y/n)"

"How many signed checksums do you require to call a package'reproducible'?" - and whom do you trust?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 51 / 58

Page 89: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Integration in user tools

"Do you really want to install this unreproducible software (y/N)""Do you want to build those packages which have unconfirmedchecksums, before installing? (Y/n)""How many signed checksums do you require to call a package'reproducible'?" - and whom do you trust?

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 51 / 58

Page 90: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 91: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

As a software developer

Stop using build datesUse SOURCE DATE EPOCH insteadSee https://reproducible-builds.org/specs/

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 53 / 58

Page 92: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Form your reproducible builds team!

Why?I Every distribution should be reproducible!I Learn something new everydayI Change the (software) world!I https://tests.reproducible-builds.org/fedora needs your help

How to get started?I Build something twice, run diffoscope on the results.I Experiment - learning by doingI RTFM, there is lots of documentationI Talk to Dennis or h01ger here or talk to us on IRC or via mail.

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 54 / 58

Page 93: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

1 Motivation

2 Common ressources

3 Status Debian

4 Status Non-Debian World

5 Status RPM world: Fedora and openSUSE

6 Future work

7 Getting involved

8 Questions, comments, ideas?

Page 94: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Thanks to…! …and thank you, too!All “Reproducible Builds” contributors(you are just so awesome!)DevConf.cz

[email protected] 28CA D001 51E6 21DA 1F2DC13B 7EE5 B4E3 663C 50D1

[email protected] B8BF 5413 7B09 D35C F026FE9D 091A B856 069A AA1C

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 56 / 58

Page 95: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Questions, comments, ideas?

https://reproducible-builds.org/#reproducible-builds on irc.OFTC.nethttps://lists.reproducible-builds.orgtwitter: @ReproBuild

Mike and Seth's talk from 31c3 about motivationsLunar's talk about fixing reproducible issues from CCCamp 15

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 57 / 58

Page 96: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Questions, comments, ideas?

https://reproducible-builds.org/#reproducible-builds on irc.OFTC.nethttps://lists.reproducible-builds.orgtwitter: @ReproBuildMike and Seth's talk from 31c3 about motivationsLunar's talk about fixing reproducible issues from CCCamp 15

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 57 / 58

Page 97: Reproducible builds everywhere eg. in Debian and Fedora and ......2017/01/27  · Variations(whentestingDebian) variation firstbuild secondbuild hostname jenkins i-capture-the-hostname

Dennis and h01ger Reproducible Builds and Fedora DevConf.cz 58 / 58

Copyright © 2014--2017Holger Levsen [email protected] and others.

Copyright of images included in this document are held by their respective owners.

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 License. To view a copy of this license, visithttp://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300,San Francisco, California, 94105, USA.

The source of this document is available from https://anonscm.debian.org/git/reproducible/presentations.git.