Bug#468209: Towards multi-arch: Multi-Arch: same file conflicts

2011-11-27 Thread Santiago Vila
On Fri, 25 Nov 2011, Steve Langasek wrote:

 No, having to split this data out into separate packages is a significant
 cost for maintainers and on the archive and simply the wrong way to do it.
 Automatic package splits for the likes of tdebs are fine, but we should not
 be forced to split binary packages in the archive for data files such as .mo
 files that could readily be made architecture-independent.

Ok, I'm not 100% convinced, but after reading this, I'm willing to ask
gettext authors that they make little-endian the default again, or at
least they tell me how we could achieve that (configure options,
environment variables, whatever).

Steve: Could you please report this as a *new* bug and summarize the
problems that native endianness in gettext create to multi-arch?
(I would prefer to keep this issue as a different one from the old bug).

A Subject like msgfmt creates mo files in native endianness would be fine.

Thanks.



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#468209: Towards multi-arch: Multi-Arch: same file conflicts

2011-11-25 Thread Steve Langasek
On Sat, Nov 19, 2011 at 10:55:53AM +, Neil Williams wrote:
 As long as the behaviour is always *consistent* across native builds and
 cross-builds, I would be happy with having all .mo files with the same
 endianness. By preference, little endian.

I agree; little-endian is both the most common endianness for current
hardware, and the endianness used by our lowest-end release-supported
hardware, so little-endian would make the most sense.  But the cost of using
big-endian is probably not so high that it would be worth arguing about
either.

  And is it worth splitting out a -l10n or -data package from a library
  just so the library itself can be M-A: same?  (I suppose a side benefit
  is you can use Recommends and cut down a little on the size of your
  strict Dependency closure.)

 Yes, it is worth having -l10n, -tdeb, -data packages, precisely to get
 the library M-A: same. MultiArch wasn't a consideration when #468209
 was opened or when the TDeb proposal was created in 2008.

No, having to split this data out into separate packages is a significant
cost for maintainers and on the archive and simply the wrong way to do it.
Automatic package splits for the likes of tdebs are fine, but we should not
be forced to split binary packages in the archive for data files such as .mo
files that could readily be made architecture-independent.

 Having at first put a lot of time into generating .mo files which have
 matching endianness to the DEB_HOST_ARCH, I have changed my mind on
 exactly how this should work. Emdebian has tried .mo files which differ
 between architectures and it isn't worth the effort. Santiago was right
 the first time, I was wrong: let gettext deal with the load at runtime
 and don't fuss about the endianness of the file in /usr/share.
 *However*, I think that this means that we *should* make every .mo file
 to always be little endian.

If the .mo files are always little-endian, then there's no need at all to
split the package.

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org


signature.asc
Description: Digital signature


Bug#468209: Towards multi-arch: Multi-Arch: same file conflicts

2011-11-19 Thread Neil Williams
On Fri, 18 Nov 2011 23:39:20 -0600
Peter Samuelson pe...@p12n.org wrote:

 
 [Jakub Wilk]
  The most common reasons for cross-architecture differences appear to
  be (in random order):
 
  - Compiling GNU message catalogs with gettext, which uses native
  endianness (see bug #468209).

(Hmm, I did get v.carried away earlier in this bug report didn't I?
Sorry, Santiago. I genuinely thought this was a lot more important at
the time. All that cross-building was driving me scatty.)
 
 Having read that bug log, it's not clear to me whether there's a
 consensus about what to do about these.  Neil thinks we need native
 endian .mo (which is problematic for multiarch)

Native isn't quite the right meaning - same endianness as the
DEB_HOST_ARCH platform is what I intended to implement in Emdebian
based on the --endianness option to msgfmt. (Native could mean
DEB_BUILD_ARCH which is worse for cross-building than just picking one
endianness and sticking with it.)

, others think we need
 .mo to be Arch: all and dont-care-endian.  Has any consensus emerged?

After more work on exactly what's going on with endianness and .mo
files, Emdebian switched to making our TDebs Arch:all and letting
gettext deal with the endianness before the Squeeze release, by which
time the cross-built version of Emdebian was already inoperable. I
should have followed that up to the bug log - it was closed and
archived at that point but I forgot to check it. Sorry.

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

As long as the behaviour is always *consistent* across native builds and
cross-builds, I would be happy with having all .mo files with the same
endianness. By preference, little endian.

Like Santiago (468209#66), I maintain a library which has translations.
For that package I have put the .mo files into a -data package
(qof-data) precisely because that allows the Architecture:any libqof2
to depend on the Arch:all qof-data, thereby solving the MultiArch
problem.

This is also compatible with the TDeb proposal for Arch:all TDebs which
contain .mo files (as well as the more difficult problem of the
translated debconf templates file) because packages like qof-data can
easily be processed as TDebs once those mechanisms are available. 

 And is it worth splitting out a -l10n or -data package from a library
 just so the library itself can be M-A: same?  (I suppose a side benefit
 is you can use Recommends and cut down a little on the size of your
 strict Dependency closure.)

Yes, it is worth having -l10n, -tdeb, -data packages, precisely to get
the library M-A: same. MultiArch wasn't a consideration when #468209
was opened or when the TDeb proposal was created in 2008.

There are other reasons to split out the .mo files:

1. Updates to translations should not require source NMU's.

2. Translation data should not be distributed in architecture-dependent
packages. 

3. Translators should have a common interface for getting updates into
Debian (possibly with automated TDeb generation after i18n team review).

However, the TDeb proposal for Debian is stalled due to disagreement
with the dpkg maintainers over the implementation mechanism. I want to
see the arrival of a Multiarch-aware dpkg in unstable before raising
that discussion again.

In the meantime, I'm happy for all libraries packaging translations to
add -l10n, -tdeb, -data or -common Arch:all packages in order to meet
the higher priority of implementing MultiArch. Indirectly, this would
help the eventual implementation of TDebs.

If there's to be a release goal for that, I'm happy to help with it.

Santiago wrote:
 In such case, making those packages to depend on another Arch: all 
 package containing just the translations would solve the issue, would it 
 not?
 
 (For the record, I happen to maintain a library containing translations, 
 and I have always seen it as an anomaly, this would force me to do 
 what I feel is the right thing).

I agree with this completely and, as above, have fixed the anomaly that
way for one library which uses gettext translations.

There remains some disagreement:

Santiago wrote:
 Yes, I now see what the problem is, but I don't see that making every 
 .mo file to be always little endian again is the best solution. We could 
 also tell dpkg somehow that different files in /usr/share/locale are ok 
 in this case.

Having at first put a lot of time into generating .mo files which have
matching endianness to the DEB_HOST_ARCH, I have changed my mind on
exactly how this should work. Emdebian has tried .mo files which differ
between architectures and it isn't worth the effort. Santiago was right
the first time, I was wrong: let gettext deal with the load at runtime
and don't fuss about the endianness of the file in /usr/share.
*However*, I think that this means that we *should* make every .mo file
to always be little endian.

I'm sorry if this seems like an about turn but what I originally wanted
from #468209 was merely the documentation of the option so that

Bug#468209: Towards multi-arch: Multi-Arch: same file conflicts

2011-11-19 Thread John D. Hendrickson and Sara Darnell

not that i'm multi-lingual (i use google to translate!)

don't we get all .mo avail. in packages already?  (i hope)

# locate *.mo | wc
  13341   13341  648305

... and if build/tar admins say choose another method why not try asking them 
what?

can't i delete .mo locally if i'm bitwise desperate for disk space?

have fun!  JohnHendrickson



Neil Williams wrote:

On Fri, 18 Nov 2011 23:39:20 -0600
Peter Samuelson pe...@p12n.org wrote:


[Jakub Wilk]

The most common reasons for cross-architecture differences appear to
be (in random order):
- Compiling GNU message catalogs with gettext, which uses native
endianness (see bug #468209).


(Hmm, I did get v.carried away earlier in this bug report didn't I?
Sorry, Santiago. I genuinely thought this was a lot more important at
the time. All that cross-building was driving me scatty.)
 

Having read that bug log, it's not clear to me whether there's a
consensus about what to do about these.  Neil thinks we need native
endian .mo (which is problematic for multiarch)


Native isn't quite the right meaning - same endianness as the
DEB_HOST_ARCH platform is what I intended to implement in Emdebian
based on the --endianness option to msgfmt. (Native could mean
DEB_BUILD_ARCH which is worse for cross-building than just picking one
endianness and sticking with it.)


, others think we need
.mo to be Arch: all and dont-care-endian.  Has any consensus emerged?


After more work on exactly what's going on with endianness and .mo
files, Emdebian switched to making our TDebs Arch:all and letting
gettext deal with the endianness before the Squeeze release, by which
time the cross-built version of Emdebian was already inoperable. I
should have followed that up to the bug log - it was closed and
archived at that point but I forgot to check it. Sorry.

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

As long as the behaviour is always *consistent* across native builds and
cross-builds, I would be happy with having all .mo files with the same
endianness. By preference, little endian.

Like Santiago (468209#66), I maintain a library which has translations.
For that package I have put the .mo files into a -data package
(qof-data) precisely because that allows the Architecture:any libqof2
to depend on the Arch:all qof-data, thereby solving the MultiArch
problem.

This is also compatible with the TDeb proposal for Arch:all TDebs which
contain .mo files (as well as the more difficult problem of the
translated debconf templates file) because packages like qof-data can
easily be processed as TDebs once those mechanisms are available. 


And is it worth splitting out a -l10n or -data package from a library
just so the library itself can be M-A: same?  (I suppose a side benefit
is you can use Recommends and cut down a little on the size of your
strict Dependency closure.)


Yes, it is worth having -l10n, -tdeb, -data packages, precisely to get
the library M-A: same. MultiArch wasn't a consideration when #468209
was opened or when the TDeb proposal was created in 2008.

There are other reasons to split out the .mo files:

1. Updates to translations should not require source NMU's.

2. Translation data should not be distributed in architecture-dependent
packages. 


3. Translators should have a common interface for getting updates into
Debian (possibly with automated TDeb generation after i18n team review).

However, the TDeb proposal for Debian is stalled due to disagreement
with the dpkg maintainers over the implementation mechanism. I want to
see the arrival of a Multiarch-aware dpkg in unstable before raising
that discussion again.

In the meantime, I'm happy for all libraries packaging translations to
add -l10n, -tdeb, -data or -common Arch:all packages in order to meet
the higher priority of implementing MultiArch. Indirectly, this would
help the eventual implementation of TDebs.

If there's to be a release goal for that, I'm happy to help with it.

Santiago wrote:
In such case, making those packages to depend on another Arch: all 
package containing just the translations would solve the issue, would it 
not?


(For the record, I happen to maintain a library containing translations, 
and I have always seen it as an anomaly, this would force me to do 
what I feel is the right thing).


I agree with this completely and, as above, have fixed the anomaly that
way for one library which uses gettext translations.

There remains some disagreement:

Santiago wrote:
Yes, I now see what the problem is, but I don't see that making every 
.mo file to be always little endian again is the best solution. We could 
also tell dpkg somehow that different files in /usr/share/locale are ok 
in this case.


Having at first put a lot of time into generating .mo files which have
matching endianness to the DEB_HOST_ARCH, I have changed my mind on
exactly how this should work. Emdebian has tried .mo files which differ
between architectures and it isn't worth the effort. Santiago was right
the first time, I was