- Removed randomization of the build list
- If the build dependency resolution fails, building is tried again
after something else is built first
- It's possible to disable upstream package checking by adding
"%global only_builddep_resolve 1" to the spec file. This is needed
when building packages with circular dependencies.
Change-Id: I78f78fa8897fd9a7b14ff062929fe26873364d5f
Signed-off-by: Ville Heikkinen <ville.heikkinen@nokia.com>
import logging
import os
import platform
import logging
import os
import platform
import re
import shutil
import sys
import re
import shutil
import sys
projects_to_rebuild.extend(need_rebuild)
buildlist.extend(projects_to_rebuild)
buildlist = list(set(buildlist))
projects_to_rebuild.extend(need_rebuild)
buildlist.extend(projects_to_rebuild)
buildlist = list(set(buildlist))
- random.shuffle(buildlist)
return buildlist
def mock_projects(self, build_list):
return buildlist
def mock_projects(self, build_list):
self.logger.debug("Trying to build: {}".format(project))
self.logger.debug("Build list: {}".format(build_list))
if not self.upstream_packages_in_buildlist(project, build_list):
self.logger.debug("Trying to build: {}".format(project))
self.logger.debug("Build list: {}".format(build_list))
if not self.upstream_packages_in_buildlist(project, build_list):
- self.projects[project].resolve_dependencies(mockroot)
- self.logger.debug("OK to build {}".format(project))
- self.projects[project].build_project(mockroot)
- something_was_built = True
- self.packagebuilder.update_local_repository(self.builder.get_configdir(), mockroot)
+ if not self.projects[project].resolve_dependencies(mockroot):
+ self.logger.info("still unresolved dependencies: {}".format(project))
+ not_built.append(project)
+ else:
+ self.logger.debug("OK to build {}".format(project))
+ self.projects[project].build_project(mockroot)
+ something_was_built = True
+ self.packagebuilder.update_local_repository(self.builder.get_configdir(), mockroot)
else:
self.logger.debug("Skipping {} because upstream is not built yet".format(project))
not_built.append(project)
else:
self.logger.debug("Skipping {} because upstream is not built yet".format(project))
not_built.append(project)
'Failed to parse %global macro "{}" (error: {})'.format(linestripped,
str(err)))
'Failed to parse %global macro "{}" (error: {})'.format(linestripped,
str(err)))
- elif linestripped.lower().startswith("buildrequires:"):
+ elif linestripped.lower().startswith("buildrequires:") and "only_builddep_resolve" not in self.spec_globals:
self.buildrequires.extend(self.__get_value_from_line(linestripped))
self.buildrequires.extend(self.__get_value_from_line(linestripped))
- elif linestripped.lower().startswith("requires:"):
+ elif linestripped.lower().startswith("requires:") and "only_builddep_resolve" not in self.spec_globals:
self.requires.extend(self.__get_value_from_line(linestripped))
elif linestripped.lower().startswith("release:"):
self.requires.extend(self.__get_value_from_line(linestripped))
elif linestripped.lower().startswith("release:"):