Subject: Re: bulk build+pkg_comp+libkver
To: Hubert Feyrer <hubert@feyrer.de>
From: None <brook@biology.nmsu.edu>
List: tech-pkg
Date: 05/06/2005 07:33:00
Hubert Feyrer writes:
 > # A list of pkgs which we should _never_ delete during a build.  The primary
 > # use is for digest and also for xpkgwedge.  Add pkgtools/xpkgwedge in
 > # /etc/mk.conf to do an xpkgwedged bulk build.
 > BULK_PREREQ+=           pkgtools/digest
 > 
 > Maybe you can come up with an example entry for build.conf-example 
 > (which should be commented out by default, but would still give a hint).

I believe that the problem with pkg_comp and libkver is that the
shells all have LD_PRELOAD set.  After a certain point in the bulk
build process (i.e., after it actually installs the prerequisite
packages) it is sufficient to have BULK_PREREQ+=pkgtools/libkver as
you imply.  However, all the clean-up actions that occur prior to that
remove all existing packages (including libkver).  During that time,
LD_PRELOAD is pointing to a nonexistent package and lots of errors
occur.  The patch I posted yesterday preserves libkver through that
process.

Possible solutions include the following:

- Do not delete libkver ever.  This would require changing some of the
  more drastic parts of the cleanup code (e.g., rm -fr stuff).

- Manage the LD_PRELOAD variable appropriately.  This would require
  editing (probably twice) all the shell startup files that set the
  value.

- Preserve the contents of libkver through the critical point in the
  process.  There already seemed to be prior art for this with the
  bootstrap packages, so I took this route.

- Some much better solution that I have yet to notice.

Please make suggestions for additions to this list and implement
better ones.

I should have pointed out that together with my patch, you probably
should have the following:

	 BULK_PREREQ+=pkgtools/libkver

Cheers,
Brook