Re: Thoughts about tdebs

2008-12-03 Thread Neil Williams
On Wed, 3 Dec 2008 16:32:17 +0100
Raphael Hertzog <[EMAIL PROTECTED]> wrote:

(I'm subscribed, no need to CC me)

> Anyway, having translation outside of the original package also
> represent a cost: 
> - manually installing a software requires download of 2 packages with
> the risk of badly mixing them
> - in term of preparation for the packager, he has to say what's part
> of the tdeb and what's not
> - in term of administration for the repository manager

True, but the Debian repository manager (ftp-master) is already happy
with the benefits of having translations completely outside the
original package. (Yes, ftp-master recognises the TDebs are a lot of
work and I got quite a few complaints from Joerg and Mark about how
much work was involved but still, after all that, TDebs are still
worthwhile for ftp-master.)

With regard to NEW, I'm sure we can arrange that during Squeeze+1,
uploads that merely add a TDeb have a fast-track through NEW -
as long as that this track is clearly identified and not abused. Plenty
of time to arrange this.
http://people.debian.org/~codehelp/tdeb/ch9.html#s9.1

In terms of the packager, dh_gentdeb includes sufficient support for
95% of all packages using gettext to not have to care about what goes
into the tdeb, it is done automatically. This has been done
specifically to remove the need to modify the source package. See
http://people.debian.org/~codehelp/tdeb/ch6.html 
http://git.debian.org/?p=users/codehelp/debhelper.git;a=summary

The other support can be developed during Squeeze. The intention is
that migrating any package to TDeb support is mostly trivial:
http://people.debian.org/~codehelp/tdeb/ch6.html#s6.3

(Just noticed that there is a typo there, the first two list items need
to be collapsed into one.)

Manually installing is not the way it will work. Think about debconf
templates - the translations need to exist before the package is
configured, therefore tdeb support implicitly means that apt will need
to be taught to get the TDeb alongside the package so that
apt-extracttemplates (from debconf) can locate the templates file and
use it with the maintainer scripts that are retained in the original
package. That is a relatively simple change - the TDeb is already
listed in debian/control and apt just needs to understand that
Package-Type: tdeb means "get this TDeb alongside anything else from
this source package". Whether untranslated debconf questions are
retained in the original package is a matter to be decided (for dpkg -i
support). "Badly mixing them?" - that is a matter for apt to reconcile
and dependencies to resolve. I don't see how the current spec would
allow for packages to be badly mixed but there is plenty of time to
find the corner cases as TDebs themselves will not arrive in the
archive until after the release of Squeeze. Quite a lot of work was
done on how the packages would combine during Extremadura. I don't
foresee any problems that the existing support cannot resolve.

(Is that not in the spec? If it isn't, I'll need to add something on
that.)

http://people.debian.org/~codehelp/tdeb/ch7.html#s7.2
If that is unclear, please tell me what might need to be added for
clarification.

> So while I agree that it would be good to resolve the problem of the
> translators, I don't think that it should be done at all costs. 

ftp-master agrees, as do I. However, TDebs are still desirable, as
outlined in the spec.

> In
> particular when the Emdebian-specific size-problem gets less and less
> real over the years (for my own semi-embedded projects, I have been
> forced to buy larger and larger DOM over the years as the smaller
> capacity are simply not produced any more).

I come across this sentiment a lot but it just isn't true. The NSLU2
has 6.4Mb available for the operating system so that it can finally
have the ability to change the external hard drive without rebooting
and also being able to use external storage that has not had to be
(extensively) reconfigured to support the OS. There are always
situations where the size of the installed OS is critical - hence
Emdebian Crush. Other devices out there do exist and there are
developers on the embedded mailing lists who are crying out for Debian
to support their machines - machines with generally between 10Mb and
64Mb available storage and *no* way of extending that storage without
completely redesigning the board. Debian is not the universal OS until
it can be adapted to such systems. Current Debian packaging insists
that the hardware be expanded to meet the requirements of the software
which, to me, is a Microsoft approach. I cannot meet the demands of
these users and developers currently because of the Lenny freeze -
TDebs are a small but vital part of this solution.

For intermediate installations, Emdebian Grip is more suitable -
anything with more than about 250Mb total storage. What you might call
semi-embedded, again using TDebs as the key instrument to reduce the
installation size and download s

Re: Thoughts about tdebs

2008-12-03 Thread Raphael Hertzog
On Wed, 03 Dec 2008, Neil Williams wrote:
> On Wed, 3 Dec 2008 14:28:58 +
> Mark Brown <[EMAIL PROTECTED]> wrote:
> 
> > > >From what I understand of your idea, you seem to think about
> > > translations mainly as updates. While it is one of the goals to
> > > enable translation-only updates, it is not quite obvious to me what
> > > your proposal has to offer in terms of splitting translations out
> > > of the debs, which is an explicit goal. Also, the proposal
> > > specifically aims at limiting the amount of data that the archive
> > > and apt have to handle.
> > 
> > Surely translations can be modeled as updates to translationless .deb
> > files (ie, you have a .deb with no translations and then patch that
> > package to add the translations)?
> 
> Why patch the package? Why not simply put a TDeb alongside the
> "translationless" Debian package? The internal layout of the TDeb is
> important to the overall usefulness of TDebs in general. 

Why? If you have rules to generate the internal layout, you can most
certainly adapt those rules to apply them at some other point of the
distribution mechanism.

Anyway, having translation outside of the original package also represent a 
cost: 
- manually installing a software requires download of 2 packages with the
  risk of badly mixing them
- in term of preparation for the packager, he has to say what's part of
  the tdeb and what's not
- in term of administration for the repository manager

So while I agree that it would be good to resolve the problem of the
translators, I don't think that it should be done at all costs. In
particular when the Emdebian-specific size-problem gets less and less
real over the years (for my own semi-embedded projects, I have been forced
to buy larger and larger DOM over the years as the smaller capacity are
simply not produced any more).

Whatever experiment you might have done within Emdebian, I will not trust
any design decision that lacks a (serious) rationale and explanations
of why the alternatives are not viable.

(That said, it's only my opinion and I'm not the one that maintains the C
part of dpkg)

Cheers,
-- 
Raphaël Hertzog

Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Thoughts about tdebs

2008-12-03 Thread Neil Williams
On Wed, 3 Dec 2008 14:28:58 +
Mark Brown <[EMAIL PROTECTED]> wrote:

> > >From what I understand of your idea, you seem to think about
> > translations mainly as updates. While it is one of the goals to
> > enable translation-only updates, it is not quite obvious to me what
> > your proposal has to offer in terms of splitting translations out
> > of the debs, which is an explicit goal. Also, the proposal
> > specifically aims at limiting the amount of data that the archive
> > and apt have to handle.
> 
> Surely translations can be modeled as updates to translationless .deb
> files (ie, you have a .deb with no translations and then patch that
> package to add the translations)?

Why patch the package? Why not simply put a TDeb alongside the
"translationless" Debian package? The internal layout of the TDeb is
important to the overall usefulness of TDebs in general. Updates to the
TDeb then simply replace the previous TDeb, leaving the .dsc and the
rest of the (signed) Debian files completely unchanged. AFAICT it is
not possible to "patch" a binary debian package - you lose all the
benefit of signing the .dsc in the first place.

-- 


Neil Williams
=
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/



pgpxlqSVXll3i.pgp
Description: PGP signature


Re: Thoughts about tdebs

2008-12-03 Thread Mark Brown
On Tue, Dec 02, 2008 at 05:51:30PM +0100, Thomas Viehmann wrote:
> Raphael Hertzog wrote:

> > 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.

> >From what I understand of your idea, you seem to think about
> translations mainly as updates. While it is one of the goals to enable
> translation-only updates, it is not quite obvious to me what your
> proposal has to offer in terms of splitting translations out of the
> debs, which is an explicit goal. Also, the proposal specifically aims at
> limiting the amount of data that the archive and apt have to handle.

Surely translations can be modeled as updates to translationless .deb
files (ie, you have a .deb with no translations and then patch that
package to add the translations)?

-- 
"You grabbed my hand and we fell into it, like a daydream - or a fever."


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Thoughts about tdebs

2008-12-03 Thread Neil Williams
On Wed, 3 Dec 2008 09:12:46 +0100
Raphael Hertzog <[EMAIL PROTECTED]> wrote:

BTW, it was Eddy Petrisor, not Eric - typo. Sorry Eddy.
(Thanks, Christian.)

> On Tue, 02 Dec 2008, Neil Williams wrote:
> > > It is a very sizable special case, though, and growing thanks to
> > > the tireless translation efforts within and beyond Debian. This
> > > is why the consensus at the meeting seemed to be to get this
> > > right even if it means having to implement some special casing.
> > 
> > Raphael - I think you've missed some of the purpose behind TDebs
> > and if that is a fault of the current draft TDeb spec, then I would
> > value your comments on how to fix it.
> 
> I hear the size problem that Emdebian is facing but Tdeb is not the
> right solution for this either IMO. We should rather aim at having
> some DEB_BUILD_OPTIONS or something similar to instruct the build
> process to create the minimalist package that you need instead of
> dropping the translation entirely from the original .deb.

We already have DEB_BUILD_OPTIONS to instruct the build process to
create the minimalist package but those don't meet the need for TDebs.

It isn't "the translation" it is dozens of translations per package - a
single package can contain 30 or 40 .mo files, between 7k and 30kb each.
An embedded device does not need all the translations, it needs one,
two, maybe four or five at most, carefully matched against the locales
supported on that one specific device. The rest are a complete waste of
storage because storage space is not cheap. Emdebian users need control
over which translations are installed - absolute control - without
bloating the download sizes of the packages themselves. Therefore,
Emdebian Crush splits out each .mo file into a dedicated .tdeb package
and provides tools to match the package against the supported locales
and the installed package list. No other component of a Debian package
needs as much specialised code - manpages, other docs, all those can be
dumped out of the package without any other considerations. Package
names can be changed to reflect changes in --enable-foo to
--disable-foo using DEB_BUILD_OPTIONS to attain reductions in the sizes
of the actual binaries and (more importantly) the dependency chain of
those binaries, other DEB_BUILD_OPTIONS can drop README and TODO etc.,
but translations are special.

The current TDeb specification also allows for Debian users to have a
similar level of control over what actually gets installed - albeit
without the ability to reduce the size of the total download. That's OK
because Debian doesn't need to care about the size of the download via
apt-get etc. - Emdebian does.

TDebs are a specialised solution to one side of the need for smaller
packages but Emdebian has other ways of reducing the size of the rest
of the package. I don't want to handle translations as "just another
component of a package", I want a solution that works as a translator.
I have a host of other methods for reducing the package size, that is
only part of the goal for tdebs.

> You can always continue to use Tdebs to distribute the translation
> that you need while installing the minimalistic .deb.

That is precisely what we already provide. Minimalised .debs (rebuilt
using cross-build support or repackaged using dpkg support) with TDebs
in a separate repository and tools that allow users to manage the
actual translations that get installed.

TDebs are a solution for translations, not for the creation of the
minimalistic .deb - however, once you have a set of TDebs for a
package, it makes no sense to retain any .mo files in the .deb.
Actually making the remainder of the .deb smaller then comes down to
use of DEB_BUILD_OPTIONS.

> > If the idea becomes separated from translations, automated creation
> > of TDebs by translation review teams would be compromised,
> > difficulties in re-assembling the source to ensure that subsequent
> > uploads retain the intervening translation updates become even more
> > complex and the drive to deliver TDebs starts to wane. (Personally,
> > I am also not at all convinced that ftp-master would consider
> > partial debs as a viable option.)
> 
> I'm sorry but the technical choice has little to do with the ability
> of translation teams to create .tdeb.

Then what is the point? TDebs are all about the translation teams
creating .tdeb - without that the whole thing is pointless.

The technical choice must rely on the needs of the translation teams.
A significant reason for adopting TDebs in Debian is to make it easier
and less intrusive for translations to be updated in a release freeze -
to allow Christian a better method than doing source NMU's on every
package using debconf when everything else is meant to be frozen. It
isn't a good idea to keep rebuilding binaries just to update the
templates file - TDebs solve that problem. It is a specialised problem
and TDebs are a specialised solution.

If the technical choice does not consider the needs of t

Re: Thoughts about tdebs

2008-12-03 Thread Raphael Hertzog
On Tue, 02 Dec 2008, Neil Williams wrote:
> > It is a very sizable special case, though, and growing thanks to the
> > tireless translation efforts within and beyond Debian. This is why the
> > consensus at the meeting seemed to be to get this right even if it
> > means having to implement some special casing.
> 
> Raphael - I think you've missed some of the purpose behind TDebs and if
> that is a fault of the current draft TDeb spec, then I would value
> your comments on how to fix it.

I hear the size problem that Emdebian is facing but Tdeb is not the right
solution for this either IMO. We should rather aim at having some
DEB_BUILD_OPTIONS or something similar to instruct the build process
to create the minimalist package that you need instead of dropping the
translation entirely from the original .deb.

You can always continue to use Tdebs to distribute the translation that
you need while installing the minimalistic .deb.

> If the idea becomes separated from translations, automated creation of
> TDebs by translation review teams would be compromised, difficulties in
> re-assembling the source to ensure that subsequent uploads retain the
> intervening translation updates become even more complex and the drive
> to deliver TDebs starts to wane. (Personally, I am also not at all
> convinced that ftp-master would consider partial debs as a viable
> option.)

I'm sorry but the technical choice has little to do with the ability of
translation teams to create .tdeb.

> A key point of agreement with ftp-master is that the TDeb can be
> updated entirely separately from the rest of the package - this is
> absolutely essential to all concerned. If the idea gets diluted to
> include security updates (which almost inevitably change the compiled
> binaries of any compiled package involved in a security bug) then this
> update method becomes impossible and we start talking about binary
> patches or mass-replacement of binaries by partial debs. I find that
> idea more than a little insane. ;-) It would be a sizeable regression
> even from where we are now with binNMUs and source NMUs. This is about
> removing the code churn from i18n updates pre-release, it is about
> preventing translation updates during a release freeze from
> ever rebuilding any binaries.

You're making assumptions that you shouldn't do at this point. Whatever
you manage to do with .tdeb can be done with partial .deb… 

I propose an idea so that people can think about it and you're trying to
argue that it can't work and that it's insane and that we shouldn't even
think about it.

> However, updates to existing packages is only half the story - the
> drive for TDebs has come from Emdebian. Emdebian must have TDebs in
> order to meet any of the objectives for Emdebian itself. Partial debs
> are not a solution, embedded systems need intelligently handled
> translations and lots of smaller packages. The Emdebian solution
> for TDebs cannot work within Debian unmodified, everyone accepts this,
> but the Emdebian requirements do need to be achievable directly from the
> Debian implementation.

And can you explain why "Partial debs are not a solution" ? I see no
justification in your paragraph. Partial .deb could be used to add
translations to any package in theory.

> The current specification supports this - partially via the premise
> that TDeb updates only contain changes to translations and partially
> because the individual localisations can be easily split out to create
> the extra packages for Emdebian (as described on the Emdebian website
> at the link above).

You could do the same with the set of partial deb dedicated to
localization. Don't mix technical choices with policy choices.

> There are use-cases for such things but I am not the one to take on
> that task.

Well, when someone ask me to modify dpkg, I try to look at the bigger
picture because that's what makes sense.

I know that you have a lot of energy and enthusiasim for Emdebian and
related projects but please do not use that energy to reject outright any
suggestion that you don't like at first sight.

> Actually, from my perspective, your idea is far from simple and seems
> to be a lot more complex than anything so far agreed with ftp-master.

>From a dpkg point of view, I find my idea simpler. :) We all have biases
but we should try to step back and see further in general.

Cheers,
-- 
Raphaël Hertzog

Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Thoughts about tdebs

2008-12-02 Thread Neil Williams
On Tue, 02 Dec 2008 17:51:30 +0100
Thomas Viehmann <[EMAIL PROTECTED]> wrote:

(I'm subscribed to the dpkg list, Thomas, thanks for the prompt though.)

> Raphael Hertzog wrote:
> > I just read the specs drafted at the meeting this WE and I'm not
> > really excited about the prospective implementation of TDebs.
> 
> Thanks for your appreciation and taking the time to comment.

I've been wondering for a while about just when this should get more
people involved. So far, it has been very gradual and I'm very
cautious about taking this to a high volume/high membership list like
debian-devel until Lenny is released. It's fair enough to discuss it
here (and on debian-embedded).

> > IMO we're heading in the wrong direction by focussing only on
> > translation and by special casing everything to meet this expected
> > usage.
> 
> It is a very sizable special case, though, and growing thanks to the
> tireless translation efforts within and beyond Debian. This is why the
> consensus at the meeting seemed to be to get this right even if it
> means having to implement some special casing.

Raphael - I think you've missed some of the purpose behind TDebs and if
that is a fault of the current draft TDeb spec, then I would value
your comments on how to fix it.

TDebs need to remain focused on l10n support to remain useful to the
i18n teams and to the embedded developers.

If the idea becomes too generalised, I would not be able to use it as
the basis for Emdebian TDebs which are a level on from Debian TDebs due
to scalability issues.

http://www.emdebian.org/emdebian/langupdate.html

If the idea becomes separated from translations, automated creation of
TDebs by translation review teams would be compromised, difficulties in
re-assembling the source to ensure that subsequent uploads retain the
intervening translation updates become even more complex and the drive
to deliver TDebs starts to wane. (Personally, I am also not at all
convinced that ftp-master would consider partial debs as a viable
option.)

A key point of agreement with ftp-master is that the TDeb can be
updated entirely separately from the rest of the package - this is
absolutely essential to all concerned. If the idea gets diluted to
include security updates (which almost inevitably change the compiled
binaries of any compiled package involved in a security bug) then this
update method becomes impossible and we start talking about binary
patches or mass-replacement of binaries by partial debs. I find that
idea more than a little insane. ;-) It would be a sizeable regression
even from where we are now with binNMUs and source NMUs. This is about
removing the code churn from i18n updates pre-release, it is about
preventing translation updates during a release freeze from
ever rebuilding any binaries.

However, updates to existing packages is only half the story - the
drive for TDebs has come from Emdebian. Emdebian must have TDebs in
order to meet any of the objectives for Emdebian itself. Partial debs
are not a solution, embedded systems need intelligently handled
translations and lots of smaller packages. The Emdebian solution
for TDebs cannot work within Debian unmodified, everyone accepts this,
but the Emdebian requirements do need to be achievable directly from the
Debian implementation.

The current specification supports this - partially via the premise
that TDeb updates only contain changes to translations and partially
because the individual localisations can be easily split out to create
the extra packages for Emdebian (as described on the Emdebian website
at the link above).

> > 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.

It certainly does need lots of thought - but this isn't about splitting
the archive or just making uploads easier for certain kinds of
packages. This is about making i18n and l10n genuinely functional
within Debian. It is also about bringing the (stable) technology of
translation packages out of the embedded world (OpenEmbedded and, from
that, Emdebian) into mainstream Debian and all the scalability issues
that result.

Emdebian can afford to have over 40 TDebs per source package (we can
afford to have over 40 TDebs per source package per architecture too
and already do so).

> > 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, …).

There are use-cases for such things but I am not the one to ta

Re: Thoughts about tdebs

2008-12-02 Thread Thomas Viehmann
Hello,

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

Thanks for your appreciation and taking the time to comment.

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

It is a very sizable special case, though, and growing thanks to the
tireless translation efforts within and beyond Debian. This is why the
consensus at the meeting seemed to be to get this right even if it means
having to implement some special casing.

> 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.

>From what I understand of your idea, you seem to think about
translations mainly as updates. While it is one of the goals to enable
translation-only updates, it is not quite obvious to me what your
proposal has to offer in terms of splitting translations out of the
debs, which is an explicit goal. Also, the proposal specifically aims at
limiting the amount of data that the archive and apt have to handle.

I'm not quite sure how useful the notes about design considerations are,
but you could always ask Neil whether they are in a shape to publish
them for further discussion. It seems that at Casar de Cáceres we found
quite a few corner-cases that had not been previously considered.

With some distance, it might well be that we could generalize (at least
parts of) the tdeb-implementation to class support (with different
members of the ar archive per class[1]). We would still want to separate
them out, but that might be a good way to arrive at a better mechanism.

In summary, yes, there might be room for generalization, but taking your
suggestions as an indication, maybe part of your dissatisfaction with
the direction that the tdeb proposal takes stems from a disparity in the
goals that each is concerned with.

Kind regards

T.

P.S.: While looking at dpkg-deb: Would it be reasonable to drop
old-style deb support by now?

1. Given appropriate protocol support, this would allow retrieving only
certain translations.
-- 
Thomas Viehmann, http://thomas.viehmann.net/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Thoughts about tdebs

2008-12-01 Thread Raphael Hertzog
Hello,

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
version.

"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.

Cheers,
-- 
Raphaël Hertzog

Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]