[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Thoughts about tdebs


I just read the specs drafted at the meeting this WE and I'm not really
excited about the prospective implementation of TDebs.

IMO we're heading in the wrong direction by focussing only on translation
and by special casing everything to meet this expected usage.

I'd like to suggest something simpler: partial .deb. The idea is that we
would provide debian packages (.pdeb?) that contain only some parts of the
original package (the part that we want to update), in our case the
translation. Each partial package would state on which original version he
can be applied and would have an identifier that define the part that it
touches (with a version number so that we can have several updates of the
same part). We could apply updates coming from several partial packages
(security update, translation update, misc data update, …).

Optionaly the package update could specify if his application should
change the version of the package once installed. This is particularly
important for security updates where the update need to change the version
number so that users can track if they are up-to-date. This also means
that we might want to be able to say that a translation update could apply
on top of several versions.

Installed updates would be tracked in a new field in /v/l/dpkg/status,
maybe like this:
Installed-Updates: security (1), translation (3)

Installing a full package would clear the Installed-Updates field.

Each partial .deb would be a normal .deb but without any configuration
script. The preinst/postinst of the package (already stored on the system)
would still be ran during installation of the update because the package
effectively changes and daemon might need to be restarted or new
documentation might need to be registered.

The partial .deb would have some special control fields:
Partial: 1
Version: 1.4-2
Target-Version: -
Supports-Versions: (>= 1.4-2), (<< 1.4-3)

"Partial: 1" states: the package is partial and thus files of the package can replace
existing files, but deletion of removed files should not happen since this
doesn't contain all files.

"Version: 1.4-2" states: the update has been created based on this specific

"Target-Version: -" states: the version should not be modified once the update
has been installed.

"Supports-Versions: (>= 1.4-2), (<< 1.4-3)" states: the update can be
applied on top of any version in that range.

I guess you understand better the idea by now. This needs more thoughts
but I wanted to share it so that you can think about it too.

Raphaël Hertzog

Le best-seller français mis à jour pour Debian Etch :

Reply to: