From 654f5e16a2053edb1add2935249523d376a2c604 Mon Sep 17 00:00:00 2001 From: Mike Khiretskiy Date: Fri, 28 Aug 2015 16:23:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20--layered?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлена проверка наличия CONFIG_OVERLAY_FS в ядре при использовании опции layered. Layered используется по-умолчанию если это возможно. --- pym/builder/variables/builder.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/pym/builder/variables/builder.py b/pym/builder/variables/builder.py index 96067eb..31f1835 100644 --- a/pym/builder/variables/builder.py +++ b/pym/builder/variables/builder.py @@ -273,22 +273,42 @@ class VariableClBuilderLayeredSet(Variable): """ type = "bool" opt = ["--layered"] + kernel_opt = "CONFIG_OVERLAY_FS" def init(self): self.help = _("use layer for build") self.label = _("Use layer for build") + def check_kernel_option(self): + """ + Проверить возможность ядра использовать overlay fs + """ + return ( + self.kernel_opt in self.Get('install.os_install_kernel_config')) + def get(self): - return "off" + try: + self.check_on() + return "on" + except VariableError: + return "off" - def check(self, value): + def check_on(self): + if not self.check_kernel_option(): + raise VariableError( + _("You need kernel with %s for use layers")%self.kernel_opt) if self.Get('cl_builder_disk_dev').startswith('/dev'): raise VariableError( _("Layers are used for building in a directory only")) - if isinstance(self.Get('cl_builder_source'), distr.ArchiveDistributive): + if isinstance(self.Get('cl_builder_source'), + distr.ArchiveDistributive): raise VariableError( _("Layers are used for building from iso image")) + def check(self, value): + if value == "on": + self.check_on() + class VariableClBuilderPath(ReadonlyVariable): """