RPM Community Forums

Mailing List Message of <rpm-users>

Re: How does bash-provides work?

From: Jeff Johnson <n3npq@mac.com>
Date: Thu 19 Jul 2007 - 16:36:54 CEST
Message-Id: <B45E8C80-AD65-4416-B800-6BD4881F6792@mac.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On Jul 19, 2007, at 9:28 AM, Eric MSP Veith wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Good day,
>
> Yesterday I found by coincedence that the resolution of "executable 
> (...)"
> entries works perfectly, but somehow »sudo« set my path to garbage.  
> No wonder
> RPM was behaving strangely when installing packages.
> What, however, somewhat confuses me is
> that "rpm -q --whatprovides 'executable(rm)'" doesn't work.
>

The short answer is
     Yes, there is no "executable(rm)" string in the Providename  
index, and
      so the --whatprovides beavior is working as "expected", not  
"strangely".

Your confusion comes because excutable(...) is a run-time probe. That  
means
a semantic is attached to a function call, which returns a boolean that
determines whether
      Requires: executable(rm)
is satisfied (or not).

> What stays is the strange new "function(foo)" namespace, which I do  
> not really
> need. It was, as stated previously, part of the bash- 
> requires.patch. Is there
> any »official« version of this patch?
>

This quick hack will get rid of function(...) markers added to  
package builds:
     %__executable_requires %{_rpmhome}/executabledeps.sh --requires | \
	grep -v 'function('

An "official" fix assumes that there is "production" usage with clear  
consensus,
which is unlikely to ever happoen imho.

The underlying issue is really a build system configuration choice,  
not an rpm patch implementation.

73 de Jeff

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)

iD8DBQFGn3cPuHNkGyA5spERAvfRAJ9CxJZDBopKefMyN8+2au80J7HsRgCg5Yjt
1UOsac0scKVqqJBpid5liw0=
=Qqh4
-----END PGP SIGNATURE-----
Received on Thu Jul 19 16:37:12 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.