First: use a macro file, not a %define, to hide abc...XYZ. If you must have 
package specific macro overrides, the use %{load:...} and bury the override in 
a SourceN: directive. The most important reason to use a macrofile is 
readability: you can split a definition over multiple lines, unlike a %define, 
because macro files permit escaped new lines.

Second: if you don't want getopt(3) processing, then simply do not use a 
parameterized macro, and arrange for whatever helper you wish to execute to 
appear at the end of whatever expansion is attempted.

Third: your suggestion of the definition is at least a reasonable proposal. atm 
the string is exactly what getopt(3) expects, nothing more nor less. 
Parameterized macros cannot handle long options because getopt(3) cannot handle 
long options. And if the options/args are not parsed, then constructs like %* 
or %** are just "I want a pony" wishes.

Fourth: parameterized macros are not functions, nor is macro expansion anything 
more than recursive string substitution on mild steroids. If you have real 
programming needs, then use a real programming language like shell, Python, 
etc, instead of honking at length about rpm deficiencies.

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/547#issuecomment-425251334
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to