On Wed, Oct 25, 2006 at 05:18:22PM +0200, Erez Zilber wrote: > > Luciano Miguel Ferreira Rocha wrote: > >On Wed, Oct 25, 2006 at 05:05:17PM +0200, Erez Zilber wrote: > > > >>Hi, > >> > >>I still have some problems. Here's the piece of code that sets the name > >>of the binary rpm: > >> > >>if [ "%_vendor" = "suse" ] ; then > >> my_build_name_fmt=suse_name > >> echo "suse" > >>else if [ "%_vendor" = "redhat" ] ; then > >> my_build_name_fmt=redhat-name > >> echo "redhat" > >>else > >> echo "This version is not supported" > >>fi > >>fi > >> > >>%define _build_name_fmt $my_build_name_fmt.%_arch.rpm > >>echo "_build_name_fmt = %_build_name_fmt" > >> > >>When I run it, it does print the _build_name_fmt that I expect to see: > >>+ echo '_build_name_fmt = suse_name.x86_64.rpm' > >>_build_name_fmt = suse_name.x86_64.rpm > >> > >>However, later it prints the following: > >>Wrote: /usr/src/packages/RPMS/$my_build_name_fmt.x86_64.rpm > >> > >>Why doesn't it treat my_build_name_fmt as a variable? > >> > > > >I don't know if rpmbuild parses $ in all its steps. > > > >Call it like this instead: > > > >rpmbuild package.spec --define "_build_name_fmt > >$my_build_name_fmt.%_arch.rpm" > > > > > But $my_build_name_fmt gets its value in run-time. You can see that in > the code piece above. How should that work? I see shell code. Where do you call it? From %build, %prep or other places like that? It doesn't work. rpmbuild will change: --cut-- if [ "%_vendor" = "suse" ] ; then my_build_name_fmt=suse_name echo "suse" else if [ "%_vendor" = "redhat" ] ; then ... %define _build_name_fmt $my_build_name_fmt.%_arch.rpm echo "_build_name_fmt = %_build_name_fmt" --endcut-- to --cut-- if [ "realvendor" = "suse" ] ; then my_build_name_fmt=suse_name echo "suse" else if [ "realvendor" = "redhat" ] ; then ... echo "_build_name_fmt = $my_build_name_fmt.realarch.rpm" --endcut-- (executing the %define before) And only then, run the code. So it will seem to be working correctly, but it isn't redefining _build_name_fmt at all. You'll have to use spec control statements for that, not shell script. -- lfr 0/0
Attachment:
pgpXlyUbTNUHI.pgp
Description: PGP signature
_______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list