Subject: Re: Marking .so files obsolete
To: None <tech-toolchain@NetBSD.org>
From: Luke Mewburn <lukem@NetBSD.org>
List: tech-toolchain
Date: 06/04/2007 16:31:25
--apSYfA7d5AHMku3c
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Sat, Jun 02, 2007 at 04:11:06AM +0400, Valeriy E. Ushakov wrote:
| [Moving to tech-toolchain.
| Summary: Update builds broken b/c of stale libssp* files in destdir]
|=20
| On Sat, Jun 02, 2007 at 02:34:42 +0400, Valeriy E. Ushakov wrote:
|=20
| > It certainly does run postinstall-fix-obsolete target, update build or
| > not.
| >=20
| > People forgetting to mark files as obsolete is a different issue :)
|=20
| I've brought back static and lint ssp libs and marked them as
| obsolete.
|=20
| Now, the so's are a different matter. The problem with .so's is that
| there might be locally compiled apps (i.e. not in the base system)
| that are linked against the "obsolete" .so's. If those "obsolete"
| .so's are removed, the apps get broken.
|=20
| postinstall fix obsolete can automatically clean up lib dirs from old
| minor versions (so we don't need to have an obsolete entry for each
| minor version in the set lists), but it doesn't touch old major
| versions. It has code to do so, but it's not enabled (there's even no
| command line option to enable it).
|=20
| For major version bumps we could 1) remove list entries instead of
| marking them obsolete, and 2) run postinstall-fix-obsolete target with
| AllLibs enabled. We only run postinstall-fix-obsolete for builds that
| are not in-place, so it should be safe, it will clean the destdir (b/c
| of #2), and it will not touch obsolete major versions in an installed
| system (b/c of #1).
I suggest that we:
* Modify the obsolete_libs() API to support controlling the
AllLibs setting in the awk fragment, most likely with a second
argument to obsolete_libs ?
* Add a disabled 'do_obsolete_major_libs' postinstall item to
clean obsolete major libraries, using the functionality that
Pavel Cahyna recently committed to postinstall.
* Consider using this (disabled) "obsolete_major_libs" postinstall
in the builds that aren't in-place.
I'm not yet 100% convinced that this needs to be part of
the postinstall-fix-obsolete target in src/Makefile.
| That still doesn't address the issue of removing a library though
| (there's no newer major version to trigger the deletion of the library
| in the destdir by postinstall running with AllLibs enabled).
This last issue is a rather special case; we rarely delete shared
libraries.
Luke.
--apSYfA7d5AHMku3c
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (NetBSD)
iD8DBQFGY7G9pBhtmn8zJHIRArE8AKCOawrIuKuetT+fbmWaodh1TyFD4ACdHIbe
AOhxY2lwHtfi5SvyE/4jULU=
=lHg8
-----END PGP SIGNATURE-----
--apSYfA7d5AHMku3c--