mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Isaac Dunham <idunham@lavabit.com>
To: musl@lists.openwall.com
Subject: Re: musl vs. Debian policy
Date: Thu, 7 Mar 2013 17:03:26 -0800	[thread overview]
Message-ID: <20130307170326.c8530e4b.idunham@lavabit.com> (raw)
In-Reply-To: <20130307130424.GW20323@brightrain.aerifal.cx>

On Thu, 7 Mar 2013 08:04:24 -0500
Rich Felker <dalias@aerifal.cx> wrote:

> > I started writing a short explanation of the musl installation for packagers, and realized that there's one area that's inconvenient:
> > $syslib/ld-musl-*.so.1 is a symlink to libc.so.
> > 
> > Debian policy requires that any public libraries have a version number. 
> > Specifically, Debian Policy 8.2 
> > (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html): 
> > If your package contains files whose names do not change with each
> > change in the library shared object version, you must not put them
> > in the shared library package. Otherwise, several versions of the
> > shared library cannot be installed at the same time without filename
> > clashes, making upgrades and transitions unnecessarily difficult.
> 
> Are you sure this applies? I don't think the libc.so in musl counts as
> a "public library" as nothing references it by name. Moreover, if
> installing as a package on a glibc-based distro, it should not be
> installed in /usr/lib (where it would clash with glibc's libc.so
> linker script) but rather its own path.

Public library==any library other than a "convenience library" (a library that is included in a binary package such as xorg-xserver-core, and is not intended to be linked against except programs in the binary package itself).

What the policy is saying is that if you have a shared library 
package (for our example, musl1), it cannot have any file that 
doesn't change names if you have to break ABI compatability.  

The reason the Debian policy gives is that this ensures that 
if we do end up breaking ABI compatability (such as when fixing 
incorrect types or revising pthreads), the musl2 package that will 
be needed can be installed on the same system as musl1, thus 
allowing people to keep using musl1-linked programs until updates 
are available.  
I know it's our policy to maintain a stable ABI, but I doubt that we can guarantee that there will NEVER be an abi breakage.  Not wanting to do something is a bad reason for acting like it won't happen.

> > The apparent solution to this is to ship only the dynamic linker,
> > since this is all we need (the dependency on libc.so is disregarded
> > when it comes to running dynamically linked programs). But
> > currently, actually doing this would be somewhat of a hack.
> > 
> > Is there any prospect of installing lib/libc.so straight to
> > ${LDSO_PATHNAME} ? I'm thinking it could be done via something like:
> 
> This has been proposed before, and the main obstacle was build-system
> difficulties if I remember right. I'd still like to consider doing it,
> but it would be nice to be able to do it for its own sake rather than
> for the sake of satisfying distro policy being applied where it
> doesn't make sense. Maybe we can try to figure out Debian's stance
> before we rush into making the change for their sake.

I'm actually more interested in it for the reasons Debian gives (explained above) than "because Debian says that's how to do it."

Of course, the possibe side-effects if Debian packagers were to go 
about it their own way and ended up with a different linker name are also rather obnoxious.  I realize that's not a very pressing issue, 
since there isn't an RFP or ITP yet.

But my main point is to ask whether, if I prepare a patch that 
does the job, it would be welcome.

-- 
Isaac Dunham <idunham@lavabit.com>



  parent reply	other threads:[~2013-03-08  1:03 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-06 23:29 Isaac Dunham
2013-03-07 13:04 ` Rich Felker
2013-03-07 18:17   ` Christian Neukirchen
2013-03-07 18:45     ` Kurt H Maier
2013-03-07 18:49       ` Daniel Cegiełka
2013-03-08  0:41     ` Rich Felker
2013-03-08 15:13       ` Christian Neukirchen
2013-03-09  1:27         ` Rich Felker
2013-03-09 20:08           ` Christian Neukirchen
2013-03-10  3:29             ` Rich Felker
2013-03-10  3:39               ` Rich Felker
2013-03-08  1:03   ` Isaac Dunham [this message]
2013-03-08  1:10     ` Rich Felker
2013-03-08  4:03       ` Isaac Dunham
2013-03-09  1:23         ` Rich Felker
2013-03-07 18:56 ` Justin Cormack
2013-03-08  0:04   ` Isaac Dunham
2013-03-07 22:30 ` Rob Landley
2013-03-08  0:22   ` Isaac Dunham
2013-03-08  1:09     ` Kurt H Maier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130307170326.c8530e4b.idunham@lavabit.com \
    --to=idunham@lavabit.com \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).