On 10/23/2012 04:54 PM, Thorsten Leemhuis wrote:
Lo!
On 23.10.2012 17:23, Tom Callaway wrote:
> On 10/22/2012 10:37 PM, Ralf Corsepius wrote:
>> On 10/22/2012 10:43 PM, Tom Callaway wrote:
>>> On 10/22/2012 12:09 PM, Ralf Corsepius wrote:
>>>>> There is currently no way to "undefine" a macro at the rpm
>>>>> commandline,
>>>>
>>>> rpmbuild --define "xxxx %{nil}" ?
>>>
>>> Huh, I swear I knew that once. :) Attached is a patch to use the %{nil}
>>> behavior instead of setting the unused dist macro to 0. I smoke tested
>>> and confirmed that the %{rhel} macro is unset on Fedora with this patch
>>> applied.
>>
>> I haven't tried your patch, but don't you have to unset/define %{nil}
>> all build-host related rpm macros from /etc/rpm/macros.dist?
>>
>> It's at least what I can not avoid doing in my before-mentioned
>> build-scripts.
>>
>> I.e. when running my script on Fedora 17, I invoke rpmbuild this way:
>>
>> rpmbuild ... \
>> --define "fedora %{nil}" --define "fc17 %{nil}"
>> --define "dist .el6" --define "rhel 6" --define "el6
1"
>> ...
>>
>> Otherwise constructs such as
>> %{?fc17:xxxx}
>> %{?el6:yyyy}
>> also won't work correctly in rpm.specs.
>>
>> IIUC, fedpkg with your patch sets %dist and unsets %fedora, but it
>> doesn't seem to catch "fc17".
>
> Yeah, thats a valid corner case. It wasn't in the original issue, so I
> didn't think about it. I'll work on a fix that covers that as well.
Spot: Thanks for working on this and finding a solution that removes the
inconsistency I was running into with someone else package.
Okay, so here are two patches:
fedpkg-1.10-use-nil-to-unset-distunset.patch (this one uses %nil instead
of 0 in my previous fix)
fedpkg-1.10-unset-runtime-disttag.patch (this patch detects the runtime
environment and unsets the version specific tag (e.g. %{fc17} or
%{el6}), except in the case where the runtime env matches the build
target exactly)
Jesse, please review and apply these upstream and make a new update.
~tom
==
Fedora Project