Visualizing Debian packages upload
Ultimate Debian Database provide a way to get information about all packages upload on Debian repositories accros time. After a discussion with Lucas Nussbaum at Distro Recipes, he made available a webpage to access to a gource compatible file format of packages upload.
Using this I was able to create videos of Debian evolution over time. I’ve generated two videos showing on month of packages upload in 2000 and to compare one month in 2012.
The first video is really peaceful even if the lack of activity cause gource to do some jump in time:
The second video is made with exactly the same time scale and the rhythm is completely crazy:
More info about video generation
The raw data are the following: udd.gource.log.bz2. I’ve transformed them to add section information to package name by using the following script:
#!/usr/bin/python import fileinput import apt cache = apt.Cache() for line in fileinput.input(): [date, user, mode, package] = line.split("|") pack = package.rstrip() if len(user) == 0: continue try: pkg = cache[pack] # Access the Package object for python-apt package = pkg.section + "/" + pack except KeyError: package = "undef" + "/" + pack print date + "|" + user + "|" + mode + "|" + package
The result is the following file: udd.gource-section.log.bz2. Once extracted, it can be visualized in gource:
gource --log-format custom udd.gource-section.log
Next step was to extract the upload at start (in 2000) and the latest upload (in 2012). I’ve simply used tail and head to do so. The generation of the videos was made using indication given on gource website:
gource -1920x1080 -o - udd.gource-end.log | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libvpx -b 13000K debian-2012.webm