[Rpm-maint] [rpm-software-management/rpm] Add %bcond macro for defining build conditionals (#1520)
Panu Matilainen
notifications at github.com
Wed Mar 17 14:41:07 UTC 2021
@pmatilai commented on this pull request.
> @@ -76,47 +76,25 @@
%defined() %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
%undefined() %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
-# Shorthand for %{defined with_...}
+# Handle conditional builds.
+# (see 'conditionalbuilds' in the manual)
+#
+# Internally, the `--with foo` option defines the macro `_with_foo` and the
+# `--without foo` option defines the macro `_without_foo`.
+# Based on those and a default (used when neither is given), bcond macros
+# define the macro `with_foo`, which should later be checked:
+
+%bcond() %{expand:%[ (%2)
+ ? "%{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}"
+ : "%{expand:%%{?_with_%{1}:%%global with_%{1} 1}}"
+]}
+%bcond_with() %{expand:%%{?_with_%{1}:%%global with_%{1} 1}}
+%bcond_without() %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}
I think the new %bcond macro should be built on top of the pre-existing %bcond_with/without macros, or the other way around. This is effectively implementing the inner logic twice. The other thing is, seeing nested %{expand:..} is a bit of a red flag: they quickly escalate into %%%%%%%-escape madness in specs. Didn't try it, but to me it seems the outer %{expand:..} should not be needed. The one that creates the %global definition is.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/1520#pullrequestreview-614390730
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20210317/8ef58f80/attachment.html>
More information about the Rpm-maint
mailing list