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