REPORT 5 - 21st August 2011
This is the fifth and last report for declarative diversions for Debian as part
of Google Summer of Code.
The goal of this project was to enable declarative diversions within dpkg
This was intended to be fully implemented by the end of the project. However,
it has not been completed fully. There is still a todo list which I
will be staying around
WHAT HAS HAPPENED SINCE LAST TIME
The last two weeks have been a rush. The amount of work has piled up
quite a bit. This happened for a number of reasons.
1) There was a lot of refactoring that was done in "lib/dpkg/parse.c"
that was needed for the project to be successful. guillem did all of
this for us which was a massive help
2) I was sick last week and had a hard time concentrating on code so
progress was slow
However the last three days has been extremely productive. Myself and
vorlon have been working well to fix issues with the code. We have
replicated a lot of code contained within parse.c
to keep the code as closely related to the existing codebase as possible.
Our general program flowchart (as of now) goes like this:
divert_parse_ci() * * * * * * * Called once for each file
parse_stanza() * * * * *Called once for each stanza. parse_EOF() tells us
there are no more
diversion_parse_field() * * * * Called once for each field in the stanza
We had to remove the ability to place comments within the diversions
file. Because as of right now it will break the parser.
This evening (21st August 2011) the code builds successfully. The
parser works and creates a linked list successfully
Unfortunatley the code still has a bit of doing and will not be
completed in time. I plan on staying around either way and the project
be finished off. There is a todo list
PLANS FOR THE COMING FUTURE
Finish off everything on the todo list:
* If a field occurs more than once in a stance throw an error
* Fix diversion_ctor to not use static arrays for our strings
* Handle the case of a declarative diversion with no "To:" specified,
by filling in the default value based on the from field
* Check if there is a difference in old and new diversions "To" field
when calculating diversions
* Function to free the lists we allocate
* Integrate with processarc.c
* Drop testing main() function
* Makefile.am: add divert.c and divert.h into the list of dpkg sources
Stay on with Debian with the aim to become a Debian developer
WHAT I FOUND HARD
Throughout the project the whole concept of data structures has been
challenging as it was completely new to me. However vorlon has
explained a lot of what I need to know extremely well and I am
confident that I know far far more than I did 3 months ago on the
WHAT HAS GONE WELL
In short, the Debian family
Anyone who wishes to discuss the project with me can either mail me through
the mailing list, catch me on IRC (SCD[Eire]) or email me at
My blog: * *http://blog.sam-dunne.com
My Github: *https://github.com/samdunne/dpkg-diversions
My code is located in '/lib/dpkg' in the 'testing' branch of my code. The files
are 'divert.c' and 'divert.h'
*Note* - You will have to also checkout '/lib/dpkg/div_test/' folder for my code
A final thanks as a GSoC Student
BSc Computer Science, UCD Dublin.
BSc Computer Science, UCD Dublin.
To UNSUBSCRIBE, email to debian-dpkg-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact firstname.lastname@example.org