|
|
|
@ -1218,21 +1218,26 @@ class Builder(Update):
|
|
|
|
|
return super(Builder, self).get_default_emerge_opts()
|
|
|
|
|
|
|
|
|
|
def emerge(self, builder_path, use, *params):
|
|
|
|
|
"""
|
|
|
|
|
Выполнить сборку пакета
|
|
|
|
|
"""
|
|
|
|
|
deo = self.get_default_emerge_opts()
|
|
|
|
|
if "features-getbinpkg" in params:
|
|
|
|
|
env_update = {"FEATURES": "-getbinpkg"}
|
|
|
|
|
params = [x for x in params if x != "features-getbinpkg"]
|
|
|
|
|
else:
|
|
|
|
|
env_update = None
|
|
|
|
|
extra_params = [x for x in params if x.startswith("-")]
|
|
|
|
|
packages = [x for x in params if not x.startswith("-")]
|
|
|
|
|
return self._emerge(builder_path, packages, extra_params, use=use)
|
|
|
|
|
|
|
|
|
|
def _emerge(self, builder_path, packages, params, use="",
|
|
|
|
|
env_update=None):
|
|
|
|
|
"""
|
|
|
|
|
Выполнить сборку пакетов
|
|
|
|
|
:param builder_path: chroot путь
|
|
|
|
|
:param packages: список атомов для сборки
|
|
|
|
|
:param params: список параметров
|
|
|
|
|
:param use: USE флаги строкой
|
|
|
|
|
:param env_update: обновление env
|
|
|
|
|
:return:
|
|
|
|
|
"""
|
|
|
|
|
logfile = self._get_log_file()
|
|
|
|
|
deo = self.get_default_emerge_opts()
|
|
|
|
|
with EmergeParser(self.chrootize(builder_path, EmergeCommand(
|
|
|
|
|
packages, emerge_default_opts=deo,
|
|
|
|
|
extra_params=extra_params, use=use,
|
|
|
|
|
extra_params=params, use=use,
|
|
|
|
|
env_update=env_update,
|
|
|
|
|
logfile=logfile))) as emerge:
|
|
|
|
|
try:
|
|
|
|
@ -1720,8 +1725,12 @@ class Builder(Update):
|
|
|
|
|
try:
|
|
|
|
|
hide_packages(*clear_req_pkgs, prefix=builder_path)
|
|
|
|
|
# собрать пакет из исходников
|
|
|
|
|
self.emerge(builder_path, "features-getbinpkg",
|
|
|
|
|
"-O", "=%s" % pkg)
|
|
|
|
|
env_update = {
|
|
|
|
|
'PKGDIR': self.clVars.Get('cl_builder_pkgdir_full'),
|
|
|
|
|
'FEATURES': "-getbinpkg"
|
|
|
|
|
}
|
|
|
|
|
self._emerge(builder_path, ["=%s" % pkg], ["-O"],
|
|
|
|
|
env_update=env_update)
|
|
|
|
|
except EmergeError:
|
|
|
|
|
old_logfile = self._get_log_file()
|
|
|
|
|
pkg_path = str(pkg).replace("/", "_")
|
|
|
|
@ -1754,7 +1763,7 @@ class Builder(Update):
|
|
|
|
|
nummax=self.pkgnummax,
|
|
|
|
|
package=str(pkg)))
|
|
|
|
|
pkg_fn = get_binary_file(
|
|
|
|
|
pkg, self.clVars.Get('cl_builder_linux_pkgdir'))
|
|
|
|
|
pkg, self.clVars.Get('cl_builder_linux_pkgdir_full'))
|
|
|
|
|
bp = BinaryPackage(pkg_fn, work_dn)
|
|
|
|
|
try:
|
|
|
|
|
bp["RDEPEND"] = "{oldpkgs} {newpkgs}".format(
|
|
|
|
|