Correctly expand %{obsoletes}, %{requires}, etc. in spec (RhBug:555926)
- tags declared multiple times in spec were simply overwritten so referencing it via %{} just showed contents of the last one
This commit is contained in:
parent
a9483191a5
commit
e811ef56aa
|
@ -688,8 +688,23 @@ static int handlePreambleTag(rpmSpec spec, Package pkg, rpmTag tag,
|
|||
return RPMRC_FAIL;
|
||||
}
|
||||
|
||||
if (macro)
|
||||
addMacro(spec->macros, macro, NULL, field, RMIL_SPEC);
|
||||
if (macro) {
|
||||
char *macro_expanded = NULL,
|
||||
*macro_token = NULL,
|
||||
*field_set = NULL;
|
||||
|
||||
rasprintf(¯o_token, "%%%s", macro);
|
||||
macro_expanded = rpmExpand(macro_token);
|
||||
if (!strcmp(macro_expanded, macro_token)) {
|
||||
field_set = xstrdup(field);
|
||||
} else {
|
||||
rasprintf(&field_set, "%s %s", macro_expanded, field);
|
||||
}
|
||||
addMacro(spec->macros, macro, NULL, field_set, RMIL_SPEC);
|
||||
free(macro_expanded);
|
||||
free(macro_token);
|
||||
free(field_set);
|
||||
}
|
||||
|
||||
return RPMRC_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue