On 08/24/2017 07:48 PM, Juan Orti Alcaine wrote:
2017-08-24 9:54 GMT+02:00 Juan Orti Alcaine <j.orti.alcaine@xxxxxxxxx>:
Hi,
I'm getting failed builds [1] in rawhide and f27 because the macro
%py3_install fails when called with arguments. It was fine until f26.
The package is rhythmbox-ampache, and I call the macro like this:
%global py_install_args --no-glib-compile-schemas
Enquoting the value seems to fix it !?
%global py_install_args "--no-glib-compile-schemas"
Sorry I missed the initial email on this because the subject didn't seem
like there'd be anything rpm-related inside.
Previously working macros now reporting "invalid option -- '-'" is a
side-effect of macro argument expansion. For the impatient, the solution
is NOT to quote, but use a '--' to indicate end of macro options in the
caller. This is compatible with older versions of rpm too. Ie use:
%py3_install -- %py_install_args
The longer version for the less impatient, using a simplified version of
%py3_install as an example:
---
%define py3_install()\
%{__python3} %{?py_setup_args} install %{?*}
%global py_install_args --no-glib-compile-schemas
%py3_install %py_install_args
---
In older versions of rpm, %py3_install would receive a literal
"%py_install_args" as it's first argument, ie %{1}. This would then get
expanded *inside* the %py3_install macro via the %{?*}.
In the new world order, any macros in the arguments are expanded
*before* executing %py3_install, so it's called as if you had written
%py3_install --no-glib-compile-schemas
... and now the macro engine thinks --no-glib-compile-schemas is
supposed to be an option to the %py3_install macro itself and you get an
error about invalid option. Older rpm versions will give the invalid
option error in this situation too.
As already mentioned, the simple fix that is also compatible with older
versions too is to use '--' to indicate end of macro arguments in the
caller to remove any ambiguity on whose options these are.
- Panu -
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx