From suse-kde Wed Aug 04 18:53:04 2010 From: David Jarvie Date: Wed, 04 Aug 2010 18:53:04 +0000 To: suse-kde Subject: Re: [opensuse-kde] kde-obs-generator: how to install files conditionally on the KDE version Message-Id: <201008041953.16903.lists () astrojar ! org ! uk> X-MARC-Message: https://marc.info/?l=suse-kde&m=128094809630271 On Wednesday 04 August 2010 17:34:51 you wrote: > On Wednesday 04 August 2010 18:05:11 David Jarvie wrote: > > On Mon, August 2, 2010 12:30 pm, Lubos Lunak wrote: > > > On Sunday 01 of August 2010, David Jarvie wrote: > > >> There > > >> are some files which need to be installed for systems which provide KDE > > >> 4.2, but not for KDE 4.3 or later. I've tried a couple of methods in the > > >> .spec file to specify this, but the build failed each time. How can I > > >> specify this condition? > > > > > > There doesn't seem to be a pre-made check for this, but you can do e.g. > > > > > > %files ... > > > ... > > > %if %(rpm -q --qf "%{VERSION}" kdelibs4 | awk -F . '{ printf > > > "%d%02d%02d",$1, > > > $2,$3 }') >= 040200 > > > ... > > > %endif > > > ... > > > > This doesn't work after all. Putting it into the %files section results in > > a parse error in the spec file (it complains that it can't parse "%(..." > > ). So instead I tried > > do something like this in %install section: > > cat > somefile << EOF > /usr/bin/binary > %if %(`echo rpm -q --qf "%{VERSION}" kdelibs4 ....`) == "blahfasel" > /lib/lib > ... > %endif > EOF > > and then > %files -f somefile > > > I have not tested it in detail, but I think you get they idea how to deal with it. Thanks. Your solution works except that for the Mandriva build to work, I had to change it to echo /lib/libfile.so >>somefile instead of "cat > somefile << EOF". > > if [ %(rpm -q --qf "%{VERSION}" kdelibs4 | awk -F . '{ printf > > "%d%02d%02d",$1,$2,$3 }') -ge 040200 ]; then > > ... > > fi > > > > This parses successfully, but at the end of the build each whitespace > > delimited token in the 'if' statement is assumed to be a file name, > > resulting in errors such as > > > > File must begin with "/": $(rpm > > > > So I'm back to square one - I can't find a syntax that enables files to be > > included conditionally in the %files section. -- David Jarvie. KAlarm author and maintainer. http://www.astrojar.org.uk/kalarm -- To unsubscribe, e-mail: opensuse-kde+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-kde+help@opensuse.org