On Feb 6, 2008, at 1:28 PM, Ralf S. Engelschall wrote:
> On Wed, Feb 06, 2008, Jeff Johnson wrote:
>
>> On Feb 6, 2008, at 11:59 AM, Stefan Westmeier wrote:
>>
>> [...]
>> Nothing you can do, but it would not be hard to
>> add a macro to differentiate the internal from the
>> external name of a "package" when displaying.
>>
>> Lemme noodle a bit this week ... differentiating
>> internal names from display names likely needs
>> to happen for i18n (and encoding) reasons.
>> [...]
>
> As for OpenPKG I already had to patch RPM to get rid of the "A" part
> of "NEVRA" (just "A" is too weak for OpenPKG and hence it is better
> to not display it at all in any outputs), I would like to go one step
> further: all places where RPM currently outputs the NEVRAs tuple
> <N,E,V,R,A> as the plain text "N-V-R.A" should be made more flexible
> and actually output via a macro expansion like "%{?__display_nevra N E
> V R A}%{!?__display_nevra N-V-R.A}". This way Stefan's request and my
> requests can be solved like this (except that the use of rpm.query()
> might be a performance problem):
>
Yep. There are further issues with rpmbuild error messages attaching
misleading ".pubkey" as arch etc etc etc, and see also several segfaults
during rpm-5.0 release cycle having to do with mucking about with
RPMTAG_ARCH for non-binary rpm Headers.
> # Stefan:
> %__display_nevra() %{lua: \
> local N, E, V, R, A = unpack(util.rsplit(rpm.expand("%*"), "\\s
> +")) \
> local P, B = unpack(util.rsplit(rpm.query("%{Project} %
> {Branch}"), "\\s+")) \
> print(string.format("%s-%s-%s-%s.%s", N, V, P, B, R, A)) \
> }
>
> # Ralf:
> %__display_nevra() %{lua: \
> local N, E, V, R, A = unpack(util.rsplit(rpm.expand("%*"), "\\s
> +")) \
> print(string.format("%s-%s-%s", N, V, R)) \
> }
>
The problem with using %{lua:...} is that it is too dynamic to create
an rpmdb index with: I have no clue what %* actually contains in
your examples.
So I'm likely to attach a headerSprintf() query format to the
RPMTAG_NVRA
header extension tag, and then use RPMTAG_NVRA as the default
display format everywhere a "package" needs to be identified.
The only flaw that I currently see is that --rebuilddb to regenerate
the Nvra index
will be needed whenever
%_display_nvra %%{name}-%%{version}-%%{release}.%%{arch}}
headerSprintf() queryformat changes in configuration. That problem
can be lived
with until I get a timestamp to compare configuration changes against
rpmdb
index creation for lazy table rebuilding.
73 de Jeff
> Ralf S. Engelschall
> rse@engelschall.com
> www.engelschall.com
>
> ______________________________________________________________________
> RPM Package Manager http://rpm5.org
> User Communication List rpm-users@rpm5.org
Received on Wed Feb 6 19:51:59 2008