So earlier on I posted about my work on�declarative diversions�. I felt I needed to clarify a few things as a few people asked me different questions and I don't think I made the post clear enough and I also left out an important piece of information.
The new control file will be located in control.tar.gz and it's syntax will be
One diversion per line
Blank lines and lines with # are comments
Two fields per diversion seperated by whitespace (SOURCE DESTINATION)
Now people have asked be about updating and removing diversions and how that will be accomplished.�
All diversions will be listed in this control file. If a diversion isn't listed in the control file on upgrade dpkg will automatically remove the diversion because it will see it is no longer needed. The same goes for changing diversions, i.i. list them just as though they're new and it will update them.
This project will infer --add, --remove and --package and will not allow you to specify them.
The same is goes for --rename, it is being made default and not optional (for now, I am aware of some special cases).
--divert will not be specifiable and will take the default format "file.divert-$package".
Now, there are a number of things still left to do this week before a full draft is prepared.�
There is an email�here by Ian Jackson�which talks about ordering unpack in such a way to delay the the actual renaming of the file. If anyone has any suggestions for this process it would be greatly appreciated.
Another two things that need to be done is the proper handling of diversions to non-existant directories and also escaping spaces within filenames for the control file.
I should have another update tomorrow evening.
Until then,
--
Sam Dunne