Satyam Zode: Google Summer of Code 2016 : Final Report
Project Title : Improving diffoscope tool and reproducibility of Debian packages
- Project details
- Mentor and Co-Mentor
- Project Discussion
- Project Implementation
- Challenges and Work Left
- Future work
- Acknowledgement
.buildinfo feature. This project is a part of Reproducible Builds effort
Mentor and Co-Mentor
- J r my Bobbio (Lunar) : Mentor
- Reiner Herrmann (deki) : Co-Mentor
- Holger Levsen (h01ger) : Co-Mentor
- Mattia Rizzolo (mapreri) : Co-Mentor
- Introduction to Reproducible Builds in Debian
First time I came to know about Reproducible Builds was during Debconf 2015. I started to get involve from the start of March 2016. At the beginning Lunar suggested me to watch the talks given on Reproducible Builds wiki. I read documentation on Reproducible Builds site and started to participate in IRC discussions on
#debian-reproducible.
- Application Review Period During proposal discussion period we discussed the areas where work needs to be done. I wrote the proposal and got it reviewed by community on the mailing list. Simultaneously, I worked on bug #818111 and submitted patch for same. That not only helped me to understand the concept of Reproducible Builds but also helped me to setup testing environment required to check the reproducibility of Debian packages.
- Community Bonding Period During community bonding period I studied the codebase of diffoscope and also spent enough amount of time for learning Python3 metaprogramming and other OOP concepts. We also discussed more about hiding differences and options for same. I couldn t finish my project research work during this period since I had exams in May 2016 and it consumed almost half of community bonding period and week 1 of coding period.
- Coding Period
I continued my research regarding behaviour of diffoscope and Lunar suggested me to write specification for hiding options.
I spent most of the time researching differences present on
https://tests.reproducible-builds.org/debian/reproducible.html. Based on the work done, I came up with specification calledHide Profilefor allowing diffoscope to hide different profiles. Link to the specification: Later, I started to work on wish-list feature bug#826711. Links to commits:- https://anonscm.debian.org/cgit/reproducible/diffoscope.git/commit/?id=d733cb47903c54a3c4a699131e1b7bde3e492bbf
- https://anonscm.debian.org/cgit/reproducible/diffoscope.git/commit/?id=77dfd8d3e5e2e5d8ba31e606ef36cbd8f2315743
- https://anonscm.debian.org/cgit/reproducible/diffoscope.git/commit/?id=c15e6b5f74ae92462dee226a699e120d7017effb
- Build different Debian packages using prebuilder to study the output of diffoscope in different cases. Link : https://github.com/satyamz/buildinfo-cases/commits?author=satyamz
- Collected information regarding how other Free softwares implements ignore options/interfaces. Link: https://gist.github.com/satyamz/77d86e1fc78d104c784c0238a3a7c0e3
- Implementation of
Ignoring .buildinfo file while comparing .changes filesuse case.
- To understand the main purpose of diffoscope in the context of Reproducible Builds. I had to go through complete Reproducible Builds project. It consumed significant amount of time to understand what Reproducible Builds is, why it s necessary important for Free software to build reproducibly. Diffoscope is the last tool in Reproducible Builds toolchain. It was a big challenge for me to understand whole process and objective of diffoscope.
- Work Left:
- Implement important use cases given in the
Hide Profiles Specification.
- Implement important use cases given in the
- Based on the research work and implementation done during
Coding Periodmake diffoscope better and enhance ignoring capabilities of diffoscope. - Improve the parallel processing feature of diffoscope. This particular problem is hard to understand and implement.
- Make diffoscope better by solving
exsting bugs.
As you may already know, next DebConf will be held at Coll ge de Maisonneuve in Montreal from August 6 to August 12, 2017. We are already thinking about the conference schedule, and the content team is open to suggestions for invited speakers.
Priority will be given to speakers who are not regular DebConf attendees, who are more likely to bring diverse viewpoints to the conference.
Please keep in mind that some speakers may have very busy schedules and need to be booked far in advance. So, we would like to start inviting speakers in the middle of September 2016.
If you would like to suggest a speaker to invite, please follow the procedure described on the 




Hello dear readers,
It's been ages since I last blogged. Being far less active in Debian
than I've been in the past, I guess this is a logical consequence.
However, I'm still active as you may witness if you read the
debian-boot mailing list : I still consider myself part of the D-I
team and I'm maintaining a few sports-related packages.
Most know what has taken precedence over Debian development, namely
trail and ultra-trail running. And, well, it hasn't decreased, far
from that : I ran about 10 races already this year....6 of them being
above 50km and I ran my favourite 100km moutain race in early July for
the second year in a row.
So, the upcoming week, I'll be trying to reach what is usually
considered as the Grail of ultra-trail runners : the Ultra-Trail du
Mont-Blanc race in Chamonix.
The race is fairly simple : run all around the Mont-Blanc summits, for
a 160km race with a bit less than 10,000 meters positive climb. The
race itself takes place between 800 and 2700 meters (so no "high
mountain") and I expect to complete it (if I succeed) in about 40 hours.
I'm very confident (maybe too much?) as I successfully completed a
much more difficult race last year (only 144km, but over 11,000 meters
positive climb and a much more difficult path...it took me over 50
hours to complete it).
You can follow me
A few weeks ago, I hacked up
Executive summary
Since October 2015, I've been running a
FLOSS consulting company,
specialized on Debian, called 
not much to report but I got at least some RC bugs fixed in the last
weeks. again mostly perl stuff:
A couple of weeks ago I started looking into wrapping the 
A new upstream release 3.2.9 of
Traduction de l'article original anglais
