>> I'm using a dedicated machine (in a VMware) to do this at the moment. >> A normal user performs the rebuilding, so damage to the system should >> be limited.
>> When Jeff Garzik was still employed at Mandrakesoft we discussed using >> a chroot() environment to build packages. The idea was to install a >> stripped system (basesystem + rpm-build + BuildRequires) for every >> package to be rebuilt in a chroot environment. In the end we didn't go >> through with the idea. > Creating a slim clean build environment for each package seems to be > overkill (to me). I simply don't have the resources. I have one fat > clean build environment for each distribution. Let me rephraise that. The script will create a build environment, build the package, remove the build environment, and restarts. Keeping the build environment intact after rebuilding for each package is insane. > Building as a user helps you not to pollute your build environment, but > for each violation the build is halted. Compare this to rpmbuild telling > you only the first file from %files it cannot find ;) Yes. My scripts (mentioned in a earlier post --> can be found at: http://eijk.homelinux.org/~stefan/slbd.html) do this. After each build a cleanup is done (temp & build directories are emptied, BuildRequires are de-installed). Need to setup a SF project for the scripts... >> > I'd like to help get this thing inside rpmbuild (and in debugging it >> more). As far as I can see, what rpmbuild needs is easier for >> collecting build requirements, than what I'm doing in Soapbox. But >> reality bites... >> It would be cool if rpmbuild would be able to build in a clean >> environment, but do you think this should be mandatory for rpmbuild, >> or should such a mode be turned on by an option? > Hmmm, Soapbox is not about creating a clean environment for building. > IMO rpmbuild should never have to write outside its builddir and > buildroot. You could use Soapbox to do this. OK, but isn't this what happens when you let the rpm's be rebuilt as user (not root)? >> Before something like this is implemented, the current FUNDEMENTAL >> breakage in the dependancies of the -devel packages needs to be >> resolved. My experience with finding the right BuildRequires is that >> due to the fact that the dependancies for -devel packages are not >> automatically found it's difficult (if not impossible) to maintain. > Well, you could use the same techniques (overloading open()) to make a > list of all the requirements a build-process has. And list them for > inclusion or add them to the source-package automatically. The strace mode of slbd.sh does this... OK. With this you will have a list of all the files that were needed for rebuilding the package. Translating that to packages is a peice of cake. But that list of packages is quite exhausting. For the BuildRequires you only need to "top" packages in the rpm hierarchy. When libpng3-devel is required, there is no need to list libpng3 and zlib1 --> these are redundant (Build)Requires. > And that was the original intent of my mail ;) Please try out slbd. It might suite your needs quite well. Perhaps only the chroot() part needs to be added. with kind regards, Stefan > �Any errors in spelling, tact or fact are transmission errors� cool .sig!
