From 09e9adaed4a99b7a6e22b248af7b561da0cb5074 Mon Sep 17 00:00:00 2001 From: Mike Khiretskiy Date: Thu, 3 Sep 2015 14:29:38 +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=D1=8B=20=D1=8D=D0=BA=D1=81=D0=BF=D0=B5=D1=80=D1=82?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pym/builder/builder.py | 19 +++++++++++++++++++ pym/builder/utils/cl_builder_image.py | 3 +++ pym/builder/wsdl_builder.py | 8 ++++---- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/pym/builder/builder.py b/pym/builder/builder.py index 4478f9f..926d923 100644 --- a/pym/builder/builder.py +++ b/pym/builder/builder.py @@ -16,6 +16,7 @@ from itertools import chain import sys import time +import stat from calculate.lib.datavars import DataVars from calculate.lib.utils.colortext import TextState, get_color_print, \ convert_console_to_xml @@ -908,3 +909,21 @@ class Builder(Update): self.clVars.Set('os_builder_linux_files', str(all_count - exclude_sum), force=True) return True + + def create_dev_nodes(self,directory): + """Create nodes for dev http://dev.gentoo.org/~a3li/openrc.txt""" + devPath = path.join(directory, "dev") + # clean dev + for pathname, dirs, files in os.walk(devPath, topdown=False): + map(lambda x: os.unlink(path.join(pathname, x)), files) + map(lambda x: os.unlink(x) if path.islink(x) else os.rmdir(x), + map(lambda x: path.join(pathname, x), dirs)) + for node, mode, dmode, major, minor in [ + ("console", 0600, stat.S_IFCHR, 5, 1), + ("tty1", 0600, stat.S_IFCHR, 4, 1), + ("null", 0666, stat.S_IFCHR, 1, 3), + ("zero", 0666, stat.S_IFCHR, 1, 5)]: + nodePath = path.join(devPath, node) + os.mknod(nodePath, mode | dmode, os.makedev(major, minor)) + os.chmod(nodePath, mode) + return True diff --git a/pym/builder/utils/cl_builder_image.py b/pym/builder/utils/cl_builder_image.py index b43a850..319b50e 100644 --- a/pym/builder/utils/cl_builder_image.py +++ b/pym/builder/utils/cl_builder_image.py @@ -101,6 +101,9 @@ class ClBuilderImageAction(Action): 'method': 'Builder.recount_files(cl_builder_path,' 'cl_builder_squash_exclude)' }, + {'name': 'create_dev_nodes', + 'method': 'Builder.create_dev_nodes(cl_builder_path)' + }, {'name': 'apply_template', 'message': __("Configuring squash"), # наложить шаблоны в развернутый дистрибутив diff --git a/pym/builder/wsdl_builder.py b/pym/builder/wsdl_builder.py index a347250..45a342b 100644 --- a/pym/builder/wsdl_builder.py +++ b/pym/builder/wsdl_builder.py @@ -68,7 +68,7 @@ class Wsdl(WsdlBase): InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Prepare, - 'cl_dispatch_conf': 'usenew'}, + 'cl_dispatch_conf_default': 'usenew'}, # описание груп (список лямбда функций) 'groups': [ # Подготовить новую сборку @@ -161,7 +161,7 @@ class Wsdl(WsdlBase): InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Update, - 'cl_dispatch_conf': 'usenew'}, + 'cl_dispatch_conf_default': 'usenew'}, # описание груп (список лямбда функций) 'groups': [ lambda group: group( @@ -248,7 +248,7 @@ class Wsdl(WsdlBase): InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.Image, - 'cl_dispatch_conf': 'usenew'}, + 'cl_dispatch_conf_default': 'usenew'}, # описание груп (список лямбда функций) 'groups': [ lambda group: group(_("Create the Image"), @@ -318,7 +318,7 @@ class Wsdl(WsdlBase): InstallError, BuilderError, GitError), # значения по умолчанию для переменных этого метода 'setvars': {'cl_action!': BuilderActions.ChangeProfile, - 'update.cl_update_world': 'rebuild'}, + 'update.cl_update_world_default': 'rebuild'}, # описание груп (список лямбда функций) 'groups': [ lambda group: group(_("Repository"),