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

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

On Tue, 25 Mar 2003, Stefan van der Eijk wrote:

> 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

Need to setup a SF project for the scripts...

I'm a newbie to this list ;) You can find my shell-scripts at:


But your system seems to be more advanced.

> 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)?

Except that your build will stop unsuccesfully at the first fatal error. My builds continue and I'm presented with a list of actions that were taken outside the buildroot/builddir.

	----- Actions outside buildroot -----
	soapbox: Attempt to chmod("/lib", 0755).
	soapbox: Attempt to chmod("/lib", 0755).
	soapbox: Attempt to chmod("/usr/bin", 0755).
	soapbox: Attempt to chmod("/usr/bin", 0755).
	soapbox: Attempt to unlink("/lib/libsoapbox.so").
	soapbox: Attempt to open64("/lib/libsoapbox.so", O_WRONLY|O_CREAT, 100644).
	soapbox: Attempt to chmod("/lib/libsoapbox.so", 0600).
	soapbox: Attempt to chown("/lib/libsoapbox.so",-1,-1).
	soapbox: Attempt to chmod("/lib/libsoapbox.so", 0755).
	soapbox: Attempt to unlink("/usr/bin/soapbox").
	soapbox: Attempt to open64("/usr/bin/soapbox", O_WRONLY|O_CREAT, 100644).
	soapbox: Attempt to chmod("/usr/bin/soapbox", 0600).
	soapbox: Attempt to chown("/usr/bin/soapbox",-1,-1).
	soapbox: Attempt to chmod("/usr/bin/soapbox", 0755).

So that you can fix these all at once.

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

True, that's something that can be fixed later on. I wouldn't want to do this automatically in the first place, although if we manage to get a decent list...

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

I'm already investigating ;)

Thanks for your feedback !
--   dag wieers,  dag@wieers.com,  http://dag.wieers.com/   --
«Any errors in spelling, tact or fact are transmission errors»

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