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

Re: Requires & Provides on -devel packages (Continued)



>> 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!






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