Beispiel #1
0
 def _sync_macros(s):
     """Makes all macros present in a string up-to-date in rpm context"""
     _, macros = _expand_macros(s)
     for macro in macros:
         MacroHelper.purge_macro(macro)
         value = _get_macro_value(macro)
         if value and MacroHelper.expand(value):
             rpm.addMacro(macro, value)
Beispiel #2
0
 def get_rpm_spec(cls, path: str, sourcedir: str, predefined_macros: Dict[str, str]) -> rpm.spec:
     # reset all macros and settings
     rpm.reloadConfig()
     # ensure that %{_sourcedir} macro is set to proper location
     MacroHelper.purge_macro('_sourcedir')
     rpm.addMacro('_sourcedir', sourcedir)
     # add predefined macros
     for macro, value in predefined_macros.items():
         rpm.addMacro(macro, value)
     try:
         spec = cls.parse_spec(path, flags=rpm.RPMSPEC_ANYARCH)
     except RebaseHelperError:
         # try again with RPMSPEC_FORCE flag (the default)
         spec = cls.parse_spec(path)
     return spec