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

Glibc, gcc, libdb2 and nss_db

Well, here it comes. Glibc 2.1.94, hot of the glibc release process. I'm
currently building i386, powerpc and sparc, which I will upload throughout
the day and tonight as I build them. These are going into woody. Several
notes for the other ports (the ones I cannot build).

This upload consists of 4 parts (listed in the subject). The gcc NMU is
ok'd by Matthias and comes with several patches from him. Also added by me
is some code to make the libg++ and libstdc++ upgrades go fine with the
new Glibc, plus a backport of the gpc to 2.95.2-13 (the last version
that will compile on non-{i386,m68k}).

Also, because libdb1,2 is no longer in glibc, the new libdb2 NMU (not
authorized, but I will email the maintainer) will take over the
libdb.so.[23] sonames (via symlink). This is only a hack until packages
compiled against the old glibc provided libdb can be recompiled against
libdb2. NOTE: some programs (like exim) will report something to the
affect of "foo requires versioned symbols" because the libdb2 is not
versioned. This does not appear to cause any problems, and is actually
output from ld.so. For now libc6 pre-depends on libdb2, just so we don't
get any broken packages on upgrade. Once everything gets recompiled
against libdb2, that can be removed (hopefully before release with some

The third part is nss_db. Since libdb2 is no longer in glibc proper, and
because nss_db requires a db library, it was split upstream. It is now a
seperate package (known as libnss-db). For now libc6 pre-depends on
libnss-db, also so we don't break any systems.

Build order for ports:

1) Build the new gcc_2.95.2-15. Do NOT upload this build, but install it.
2) Build glibc 2.1.94-1, do not install yet
3) Build db2 and nss_db
4) Upgrade libdb2 (and -dev, for later steps) and all libc6 packages
5) Rebuild gcc_2.95.2-15 (save this one for uploading) and install
6) Rebuild glibc and install (you can probably skip this if you want)
6) Now build the two other packages (nss_db, db2)

This should suffice for a clean build. Of course, your preferences may
vary. Good thing is, 2.2 does not require rebuilding anything else (that I
have seen), and if it does, IMO it is a bug (versioned symbols are meant
just for that purpose).

Other notes about the new glibc:

* nss1 compat is gone
* ldconfig is now provided by glibc for all archs, ldso will remove it.
  Let me know how this works on libc5 systems. TBH, I am not overly
  concerned with that though. The ldso package is a henderence nowadays
  and we should stop relying on it. I have plans for lots of things with
  ldconfig, including an /etc/ld.so.d/ directory for packages to supply
  their specific directories, and a dpkg friendly update-ld.so.cache
  script that works similar to the update-menus script, but it has to
  contend with other things.

Ben Collins

/  Ben Collins  --  ...on that fantastic voyage...  --  Debian GNU/Linux   \
`  bcollins@debian.org  --  bcollins@openldap.org  --  bcollins@linux.com  '

Reply to: