Can your diff(1) do this?! Can your diff(1) do this?! Improving - - PowerPoint PPT Presentation

can your diff 1 do this can your diff 1 do this
SMART_READER_LITE
LIVE PREVIEW

Can your diff(1) do this?! Can your diff(1) do this?! Improving - - PowerPoint PPT Presentation

Can your diff(1) do this?! Can your diff(1) do this?! Improving soware review & QA with diffoscope Improving soware review & QA with diffoscope Chris Lamb Chris Lamb foss-north.se foss-north.se @lolamby @lolamby April 2018


slide-1
SLIDE 1

Can your diff(1) do this?! Can your diff(1) do this?!

Improving soware review & QA with diffoscope Improving soware review & QA with diffoscope Chris Lamb Chris Lamb @lolamby @lolamby Debian Project Leader Debian Project Leader foss-north.se foss-north.se April 2018 April 2018 Gothenburg, Sweden Gothenburg, Sweden

slide-2
SLIDE 2

Hallå! Hallå!

slide-3
SLIDE 3

Open source developer for 10+ years Debian Project Leader

  • pensource.org board member

Freelance soware developer

slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7

Why? Why?

slide-8
SLIDE 8

Source code available for free soware… … everyone runs binaries Do they correspond?

slide-9
SLIDE 9

Build farms Developer's machines Blackmail, law-enforcement…

slide-10
SLIDE 10
  • 1. Ensure build have identical results
  • 2. Multiple parties compare results
  • 3. Attacker must infect everybody simultaneously
slide-11
SLIDE 11

Identical results? Identical results?

slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19
slide-20
SLIDE 20
slide-21
SLIDE 21

Archive formats Archive formats

slide-22
SLIDE 22

Compressed formats Compressed formats

slide-23
SLIDE 23

Recursive Recursive

slide-24
SLIDE 24

Line ordering Line ordering

slide-25
SLIDE 25

HTML output HTML output

slide-26
SLIDE 26

Android boot ROMs, Android APKs, ar archives, bzip2 files, Coreboot cbfs, CPIO archives, Dalvik dex file, Debian packages, device (mknod), device tree globs, directories, docx, ELF binaries, ext filesystem images, fontconfig cache dirs, fonts, gettext catalogues, GIF images, Git repositories, GZip files, Haskell binaries, ICC colour profiles, ISO images, Java, bytecode, Javascript, JSON, LLVM binaries, Macho binaries, Mono executables, odt documentens, Ogg borbis, OpenSSH keys, Pascal binaries, PDF files, PGP/GPG keys, PNG images, PostScript, RPM images, R statistical data, Rust binaries, SQLite databases, squashfs images, symlinks, tar archives, tcpdump dumps, text files, XML documents, XZ files, ZIP archives …

slide-27
SLIDE 27

Android images Android images

slide-28
SLIDE 28

Berkeley DB databases Berkeley DB databases

slide-29
SLIDE 29
slide-30
SLIDE 30

Microso Word Microso Word .docx .docx

slide-31
SLIDE 31

Ebooks Ebooks

slide-32
SLIDE 32
slide-33
SLIDE 33

Mono binaries Mono binaries

slide-34
SLIDE 34

git(1) git(1) repositories

repositories

slide-35
SLIDE 35

Gnumeric spreadsheets Gnumeric spreadsheets

slide-36
SLIDE 36

ISO images ISO images

slide-37
SLIDE 37
slide-38
SLIDE 38
slide-39
SLIDE 39
slide-40
SLIDE 40

JSON JSON

slide-41
SLIDE 41

OpenDocument text documents OpenDocument text documents

slide-42
SLIDE 42

Ogg audio files Ogg audio files

slide-43
SLIDE 43
slide-44
SLIDE 44

tcpdump(1) tcpdump(1) capture files

capture files

slide-45
SLIDE 45
slide-46
SLIDE 46

PDF PDF

slide-47
SLIDE 47
slide-48
SLIDE 48

XML documents XML documents

slide-49
SLIDE 49

Using diffoscope for QA Using diffoscope for QA

slide-50
SLIDE 50

Just see changes you expect Just see changes you expect

slide-51
SLIDE 51

Seeing "no" changes Seeing "no" changes

slide-52
SLIDE 52

Security releases Security releases

slide-53
SLIDE 53
slide-54
SLIDE 54

Security "releases" Security "releases"

slide-55
SLIDE 55
slide-56
SLIDE 56

Getting started Getting started

slide-57
SLIDE 57

try.diffoscope.org try.diffoscope.org

slide-58
SLIDE 58
slide-59
SLIDE 59

Current status Current status

slide-60
SLIDE 60
slide-61
SLIDE 61
slide-62
SLIDE 62
slide-63
SLIDE 63

Parallel processing Parallel processing

Multiple previous attempts… … Juliana Oliveira working on this now

slide-64
SLIDE 64

diffoscope.org diffoscope.org

slide-65
SLIDE 65

Tack! Tack!

@lolamby @lolamby lamby@debian.org lamby@debian.org diffoscope.org diffoscope.org chris-lamb.co.uk chris-lamb.co.uk

slide-66
SLIDE 66

@lolamby @lolamby lamby@debian.org lamby@debian.org diffoscope.org diffoscope.org chris-lamb.co.uk chris-lamb.co.uk