[Soc-coordination] Debdelta APT Integration - Report 5

Ishan Jayawardena udeshike at gmail.com
Sun Aug 21 17:55:55 UTC 2011


During this period mainly I concentrated on two major tasks. The first
task was to revise the class design of pkgAcqDebdelta and
pkgAcqArchive so that the code common to both classes are properly
isolated to prevent duplication. The main duplications I had was in
the constructors and in the QueueNext() methods. Initially, since I
wrote the pkgAcqDebdelta class by copying the code of pkgAcqArchive,
this duplication occurred. Since that was for the initial
implementation, I had the plan to revise the design. But Michael also
asked me to complete that task before we move on to the next stage of
the implementation. As he pointed out, it improved the readability and
the design and will make the maintenance and debug easier. To solve
this, I added a new class; pkgAcqIntermediate from which both
pkgAcqArchive and pkgAcqDebdelta derived. In the pkgAcqIntermediate
class (which is a subclass of pkgAcquire::Item), I put all the common
methods.

After finishing that task, I worked on the debdelta suite to add index
files for debdeltas. I wrote a python module by using existed code of
debdelta suite. It can generate an index file for a set of deltas
including the fields; Package, SourceVersion, TargetVersion, FileName,
Size, MD5sum, SHA1, SHA256. Since I have already added support for
'debdelta' fields in the sources.list file in APT, now the remaining
work is to complete the update of debdelta indexes and use their data
correctly in the upgrade processes.

I also started to implement the progress details generation from
debdelta by adding the --status-fd option. But, currently I am not
working on it since the progress reporting with debdeltas in upgrade
processes is not as synchronous as with normal debs since there is an
additional parallel step involved with debdeltas to patch them to
create debs. These asynchronous progress details can be easily shown
in a GUI. But that is difficult in a terminal.

Currently, even if my project work has not been fully completed,
debdelta integration of APT can be tested without using index files or
progress reporting. I would like to continue working on these two
tasks and complete the integration as soon as possible, although today
is the firm pencils down date.

My APT branch in Launchpad: https://code.launchpad.net/~udeshike/apt/apt-ishan
-- 
Regards,
Ishan Jayawardena.



More information about the Soc-coordination mailing list