Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-24 Thread Steve Langasek
On Thu, Feb 24, 2011 at 01:55:57PM +0100, Raphael Hertzog wrote:

> On Wed, 23 Feb 2011, Steve Langasek wrote:
> > A virtual package is a good idea, though - in fact, it's such a good idea
> > that I remember now we discussed this back at DebConf and I'd subsequently
> > forgotten about it.  Thanks for jogging my memory! :)  Yes, whether or not
> > we add support in a stable point release, I think that if we don't go the
> > dpkg-shlibdeps route we should use a 'multiarch' or 'multiarch-foo' virtual
> > package.

> But you would put those Pre-Depends: multiarch-foo on the (core) libraries
> that should not disappear, right?

Yep, exactly.

> It seems cleaner to put it there rather than on utilities.

> I would also favor any solution that doesn't involve any shlibs bump in
> libc. We've gone to great length to have symbols support in many
> libraries, it would be a pity to lose the benefits due to multi-arch (even
> if multi-arch is great too!).

Right, I think there's a consensus to go this direction then, and only add
dependencies on a multiarch metapackage for those libraries that install to
the new paths.

Thanks,
-- 
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


Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-24 Thread Raphael Hertzog
Hi,

On Wed, 23 Feb 2011, Steve Langasek wrote:
> A virtual package is a good idea, though - in fact, it's such a good idea
> that I remember now we discussed this back at DebConf and I'd subsequently
> forgotten about it.  Thanks for jogging my memory! :)  Yes, whether or not
> we add support in a stable point release, I think that if we don't go the
> dpkg-shlibdeps route we should use a 'multiarch' or 'multiarch-foo' virtual
> package.

But you would put those Pre-Depends: multiarch-foo on the (core) libraries
that should not disappear, right?

It seems cleaner to put it there rather than on utilities.

I would also favor any solution that doesn't involve any shlibs bump in
libc. We've gone to great length to have symbols support in many
libraries, it would be a pity to lose the benefits due to multi-arch (even
if multi-arch is great too!).

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Follow my Debian News ▶ http://RaphaelHertzog.com (English)
  ▶ http://RaphaelHertzog.fr (Français)


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110224125557.ga21...@rivendell.home.ouaza.com



Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Steve Langasek
On Thu, Feb 24, 2011 at 12:03:18AM +0100, Andreas Barth wrote:
> * Steve Langasek (vor...@debian.org) [110223 22:53]:
> > We can handle this one of two ways.  We can either bump the minimal
> > dependency of *all* packages against libc, by adjusting shlibs/symbols in
> > the eglibc package; or we can make adding the dependency a part of the
> > standard library multiarchification recipe.

> Or third, we could add the new path to eglibc in a stable point
> update and into unstable, and either
> a) have a virtual package provided, and for the core utilities
> pre-depend on that virtual package (so that user systems are never
> broken by the upgrade), or
> b) don't multiarch the core utilities for the next stable release.

b) doesn't help.  This is about libraries changing location and making sure
that they're on the runtime linker's path; this will affect every core
library on the system and there's no way to except the core /utilities/ from
that.  (If you want a multiarch X stack this cycle, you need a multiarch
zlib.  Guess what depends on zlib? :)

A virtual package is a good idea, though - in fact, it's such a good idea
that I remember now we discussed this back at DebConf and I'd subsequently
forgotten about it.  Thanks for jogging my memory! :)  Yes, whether or not
we add support in a stable point release, I think that if we don't go the
dpkg-shlibdeps route we should use a 'multiarch' or 'multiarch-foo' virtual
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


Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Steve Langasek
On Wed, Feb 23, 2011 at 10:55:51PM +, Simon McVittie wrote:
> On Wed, 23 Feb 2011 at 13:52:35 -0800, Steve Langasek wrote:
> > we almost certainly will not be using the path which has been enabled
> > in glibc up to now, namely /lib/i486-linux-gnu.

> I'd heard that, and was somewhat concerned about whether that'd block
> multiarch for yet another release cycle; I'm glad to hear it isn't.

> One possibility that occurred to me is adding a Pre-Depends on a new package
> ("multiarch-enabler", perhaps) which is arch:any and just contains this
> file:

> # /etc/ld.so.conf.d/x86-linux-glibc.conf
> /lib/x86-linux-glibc
> /usr/lib/x86-linux-glibc

> Am I right in thinking that (probably only needed for the native architecture,
> even) would be enough to "bootstrap" support for the multiarch paths in the
> native architecture's linker far enough to perform the upgrade? A future
> libc6 could even Replace it or something.

> (It'd be a bit subtle by being transitively Essential, though.)

Currently I don't see any advantage of doing it this way, rather than having
libc provide this file directly and have affected package pre-depend on
libc.  The only reason we might consider a separate binary package closer to
release is if we wind up with circular dependencies that break upgrades from
squeeze; so this is a good idea to keep in our back pocket as a fallback
plan, but until it's shown to be needed I think it's unnecessary complexity
that we should avoid.

Thanks,
-- 
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


Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Simon McVittie
On Wed, 23 Feb 2011 at 13:52:35 -0800, Steve Langasek wrote:
> we almost certainly will not be using the path which has been enabled
> in glibc up to now, namely /lib/i486-linux-gnu.

I'd heard that, and was somewhat concerned about whether that'd block
multiarch for yet another release cycle; I'm glad to hear it isn't.

One possibility that occurred to me is adding a Pre-Depends on a new package
("multiarch-enabler", perhaps) which is arch:any and just contains this
file:

# /etc/ld.so.conf.d/x86-linux-glibc.conf
/lib/x86-linux-glibc
/usr/lib/x86-linux-glibc

Am I right in thinking that (probably only needed for the native architecture,
even) would be enough to "bootstrap" support for the multiarch paths in the
native architecture's linker far enough to perform the upgrade? A future
libc6 could even Replace it or something.

(It'd be a bit subtle by being transitively Essential, though.)

S


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20110223225551.ga17...@reptile.pseudorandom.co.uk



Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Andreas Barth
* Steve Langasek (vor...@debian.org) [110223 23:29]:
> Ah, I don't know the details; I take this as gospel from the GCC maintainers
> that There Are Differences.  Perhaps the differences are only optimization
> rather than compatibility; but regardless, given that most distros use
> i586-linux-gnu or i686-linux-gnu as their toolchain triplet, i486-linux-gnu
> is an odd bird to propose to standardize on.

AFAIUI, we need the atomic locking the i386 and some early i486 don't
have, we need an co-processor that not all i486 have (but that's an
kernel issue - the math emulation code is instant root exploitable,
and therefor not part of the kernel code), and that's it. However, we
optimize for i586 IIRC.


> > [1] As you said pre-depends are messy but the safe bet.  It would be best if
> > we could somehow ensure that libc6 is upgraded first and that everything
> > needed for the unpack is still there at that point (i.e. some liberal
> > use of pre-depends somewhere in just the base set instead of 
> > everywhere).
> 
> Ok.  I think that's certainly going to be more manageable than trying to add
> pre-depends to everything, anyway.  Any concerns about bumping the
> dependency for all libraries via dpkg-shlibdeps?

Yes, I don't like libary bumps, because that's annoying if we need
backports of all packages just to make dpkg happy (and the other
package would still work, but just dpkg would complain). But well,
maybe still the best.


Andi


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110223230957.gz15...@mails.so.argh.org



Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Philipp Kern
On Wed, Feb 23, 2011 at 02:29:26PM -0800, Steve Langasek wrote:
> > [1] As you said pre-depends are messy but the safe bet.  It would be best if
> > we could somehow ensure that libc6 is upgraded first and that everything
> > needed for the unpack is still there at that point (i.e. some liberal
> > use of pre-depends somewhere in just the base set instead of 
> > everywhere).
> Ok.  I think that's certainly going to be more manageable than trying to add
> pre-depends to everything, anyway.  Any concerns about bumping the
> dependency for all libraries via dpkg-shlibdeps?

What's the timeframe for eglibc to be ready?  If it's able to migrate to
testing fairly soon and as it's just shlibdeps and as it's at the beginning of
the cycle, I don't really see any.  It should not be the primary blocker for
migration for weeks, though.

Kind regards
Philipp Kern


signature.asc
Description: Digital signature


Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Andreas Barth
* Steve Langasek (vor...@debian.org) [110223 22:53]:
> We can handle this one of two ways.  We can either bump the minimal
> dependency of *all* packages against libc, by adjusting shlibs/symbols in
> the eglibc package; or we can make adding the dependency a part of the
> standard library multiarchification recipe.

Or third, we could add the new path to eglibc in a stable point
update and into unstable, and either
a) have a virtual package provided, and for the core utilities
pre-depend on that virtual package (so that user systems are never
broken by the upgrade), or
b) don't multiarch the core utilities for the next stable release.


Andi


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110223230318.gy15...@mails.so.argh.org



Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Steve Langasek
On Wed, Feb 23, 2011 at 11:15:02PM +0100, Philipp Kern wrote:
> On Wed, Feb 23, 2011 at 01:52:35PM -0800, Steve Langasek wrote:
> > [1] i486 is an arbitrary name that happens to correspond to the base
> > instruction set that was in use on Debian at the time multiarch was first
> > formulated, but it doesn't match the current base instruction set on Debian
> > (i586) or Ubuntu (i686), doesn't match the directory configured in the
> > current eglibc package on Ubuntu (/lib/i686-linux-gnu), and is going to look
> > weird to other distributions when we try to talk to them about this since
> > they've also long since moved to i686 as their base compatibility.

> Sorry to skip multiarch[1], but I need to comment on this one.  Isn't the
> base instruction set still i486?  I still haven't found any practical
> example of a change of ISA between i486 and i586.  For all means they seem
> to be equivalent, with i686 being the next break.  The only exception that
> might be is that 486 can actually lack FPUs, while Pentiums don't.  But
> for all practically relevant cases I'd assume that they don't, and I'd be
> surprised if we'd cater for that.

Ah, I don't know the details; I take this as gospel from the GCC maintainers
that There Are Differences.  Perhaps the differences are only optimization
rather than compatibility; but regardless, given that most distros use
i586-linux-gnu or i686-linux-gnu as their toolchain triplet, i486-linux-gnu
is an odd bird to propose to standardize on.

> Out of curiosity: Where will optimized libraries be placed?

Multiarch can be combined transparently with hwcaps; so you can have
/lib/i386-linux-gnu/i686/cmov/, /lib/alpha-linux-gnu/ev67/, etc.  Multiarch
also does not require that the libraries installed to the base directory are
backwards-compatible with anything that you don't care about, so it's fine
to have i686 libraries directly in /lib/i386-linux-gnu on a distro whose
baseline is i686, while they're in a hwcap directory for another distro.

> [1] As you said pre-depends are messy but the safe bet.  It would be best if
> we could somehow ensure that libc6 is upgraded first and that everything
> needed for the unpack is still there at that point (i.e. some liberal
> use of pre-depends somewhere in just the base set instead of everywhere).

Ok.  I think that's certainly going to be more manageable than trying to add
pre-depends to everything, anyway.  Any concerns about bumping the
dependency for all libraries via dpkg-shlibdeps?

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


Re: RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Philipp Kern
On Wed, Feb 23, 2011 at 01:52:35PM -0800, Steve Langasek wrote:
> [1] i486 is an arbitrary name that happens to correspond to the base
> instruction set that was in use on Debian at the time multiarch was first
> formulated, but it doesn't match the current base instruction set on Debian
> (i586) or Ubuntu (i686), doesn't match the directory configured in the
> current eglibc package on Ubuntu (/lib/i686-linux-gnu), and is going to look
> weird to other distributions when we try to talk to them about this since
> they've also long since moved to i686 as their base compatibility.

Sorry to skip multiarch[1], but I need to comment on this one.  Isn't the base
instruction set still i486?  I still haven't found any practical example of a
change of ISA between i486 and i586.  For all means they seem to be equivalent,
with i686 being the next break.  The only exception that might be is that 486
can actually lack FPUs, while Pentiums don't.  But for all practically relevant
cases I'd assume that they don't, and I'd be surprised if we'd cater for that.

Out of curiosity: Where will optimized libraries be placed?

Kind regards
Philipp Kern

[1] As you said pre-depends are messy but the safe bet.  It would be best if
we could somehow ensure that libc6 is upgraded first and that everything
needed for the unpack is still there at that point (i.e. some liberal
use of pre-depends somewhere in just the base set instead of everywhere).


signature.asc
Description: Digital signature


RFC: use of shlib bump for libc dependency on new multiarch directories?

2011-02-23 Thread Steve Langasek
Dear release team,

Although the paths in which libraries will ultimately be installed for
multiarch is not yet entirely settled, one thing that is clear is that on
i386, we almost certainly will not be using the path which has been enabled
in glibc up to now, namely /lib/i486-linux-gnu.[1]  We will most likely be
using either /lib/i386-linux-gnu or /lib/x86-linux-glibc instead, depending
on the outcome of various ongoing discussions; and libraries installing to
either one of these paths are going to need to make sure the new libc is
installed first, or they'll instantly become unavailable on upgrade.

We can handle this one of two ways.  We can either bump the minimal
dependency of *all* packages against libc, by adjusting shlibs/symbols in
the eglibc package; or we can make adding the dependency a part of the
standard library multiarchification recipe.

The first approach means that every library on the system will depend on the
new libc as soon as it's rebuilt, whether or not it's installed to the
multiarch library path.  However, my handwavy estimate is that by the time
wheezy is out we should have better than 80% library coverage with
multiarch, so maybe that's not an issue at all.  But it also may not be
sufficient to ensure smooth upgrades either; dependencies don't guarantee
unpack order, so what happens if a library needed by apt+dpkg to finish the
unpack of the new libc gets disappeared out of the system path before libc
itself gets unpacked?  do we need to special-case the addition of
pre-depends to any libraries that are needed by the package manager?  Do we
want pre-depends for *all* libraries, just in case?

The second approach is going to be more error prone; it's one more step that
has to be added to the process for converting a library package to
multiarch, which means it's one more step that maintainers can forget and
one of the easiest to go unnoticed for long periods in unstable/testing.  We
could mitigate this somewhat by having debhelper do something here by
default when it sees multiarch paths in use, but that won't give us 100%
archive coverage either (and oh, how the work I've been doing on my
multiarch proof-of-concept bootstrap makes me wish it would :-).  It also
isn't viable anywhere we decide we need Pre-Depends, since most packages
simply won't have a substitution in place for Pre-Depends that debhelper can
hook into.

Since this is an issue with high potential impact on squeeze->wheezy
upgrades, Aurélien suggested that we solicit input from the release team
here.  Do you guys have any recommendations on how we should handle this, or
any other concerns that I may have overlooked?

Thanks,
-- 
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

[1] i486 is an arbitrary name that happens to correspond to the base
instruction set that was in use on Debian at the time multiarch was first
formulated, but it doesn't match the current base instruction set on Debian
(i586) or Ubuntu (i686), doesn't match the directory configured in the
current eglibc package on Ubuntu (/lib/i686-linux-gnu), and is going to look
weird to other distributions when we try to talk to them about this since
they've also long since moved to i686 as their base compatibility.


signature.asc
Description: Digital signature