def build(defs, this): '''Actually create an artifact and add it to the cache This is what actually runs ./configure, make, make install (for example) By the time we get here, all dependencies for 'this' have been assembled. ''' if this.get('build-mode') != 'bootstrap': sandbox.ldconfig(this) if this.get('repo'): repos.checkout(this['name'], this['repo'], this['ref'], this['build']) get_build_commands(defs, this) env_vars = sandbox.env_vars_for_build(defs, this) app.log(this, 'Logging build commands to %s' % this['log']) for build_step in defs.defaults.build_steps: if this.get(build_step): app.log(this, 'Running', build_step) for command in this.get(build_step, []): if command is False: command = "false" elif command is True: command = "true" sandbox.run_sandboxed(this, command, env=env_vars, allow_parallel=('build' in build_step)) if this.get('devices'): sandbox.create_devices(this) with open(this['log'], "a") as logfile: logfile.write('Elapsed_time: %s\n' % app.elapsed(this['start-time']))
def build(defs, this): '''Actually create an artifact and add it to the cache This is what actually runs ./configure, make, make install (for example) By the time we get here, all dependencies for 'this' have been assembled. ''' if this.get('build-mode') != 'bootstrap': sandbox.ldconfig(this) if this.get('repo'): repos.checkout(this['name'], this['repo'], this['ref'], this['build']) get_build_commands(defs, this) env_vars = sandbox.env_vars_for_build(defs, this) app.log(this, 'Logging build commands to %s' % this['log']) for build_step in defs.defaults.build_steps: if this.get(build_step): app.log(this, 'Running', build_step) for command in this.get(build_step, []): if command is False: command = "false" elif command is True: command = "true" sandbox.run_sandboxed( this, command, env=env_vars, allow_parallel=('build' in build_step)) if this.get('devices'): sandbox.create_devices(this) with open(this['log'], "a") as logfile: logfile.write('Elapsed_time: %s\n' % app.elapsed(this['start-time']))
def assemble(target): '''Assemble dependencies and contents recursively until target exists.''' if cache.get_cache(target): return defs = Definitions() this = defs.get(target) with app.timer(this, 'Starting assembly'): with sandbox.setup(this): for it in this.get('build-depends', []): dependency = defs.get(it) assemble(dependency) sandbox.install(this, dependency) for it in this.get('contents', []): component = defs.get(it) if component.get('build-mode') == 'bootstrap': continue assemble(component) sandbox.install(this, component) if this.get('build-mode') != 'bootstrap': sandbox.ldconfig(this) else: app.log(this, "No ldconfig because bootstrap mode is engaged") build(this) if this.get('devices'): sandbox.create_devices(this) cache.cache(this)
def build(this): '''Actually create an artifact and add it to the cache This is what actually runs ./configure, make, make install (for example) By the time we get here, all dependencies for 'this' have been assembled. ''' app.log(this, 'Start build') if this.get('build-mode') != 'bootstrap': sandbox.ldconfig(this) if this.get('repo'): repos.checkout(this['name'], this['repo'], this['ref'], this['build']) get_build_commands(this) env_vars = sandbox.env_vars_for_build(this) app.log(this, 'Logging build commands to %s' % this['log']) for build_step in buildsystem.build_steps: if this.get(build_step): app.log(this, 'Running', build_step) for command in this.get(build_step, []): sandbox.run_sandboxed( this, command, env=env_vars, allow_parallel=('build' in build_step)) if this.get('devices'): sandbox.create_devices(this)
def run_build(dn): ''' This is where we run ./configure, make, make install (for example). By the time we get here, all dependencies for component have already been assembled. ''' if config.get('mode', 'normal') == 'no-build': log(dn, 'SKIPPING BUILD: artifact will be empty') return if dn.get('build-mode') != 'bootstrap': sandbox.ldconfig(dn) if dn.get('repo'): repos.checkout(dn) dn['SOURCE_DATE_EPOCH'] = repos.source_date_epoch(dn['checkout']) get_build_commands(dn) env_vars = sandbox.env_vars_for_build(dn) log(dn, 'Logging build commands to %s' % dn['log']) for build_step in app.defs.defaults.build_steps: if dn.get(build_step): log(dn, 'Running', build_step) for command in dn.get(build_step, []): command = 'false' if command is False else command command = 'true' if command is True else command sandbox.run_sandboxed(dn, command, env=env_vars, allow_parallel=('build' in build_step)) if dn.get('devices'): sandbox.create_devices(dn) with open(dn['log'], "a") as logfile: time_elapsed = elapsed(dn['start-time']) logfile.write('Elapsed_time: %s\n' % time_elapsed)
def run_build(defs, this): ''' This is where we run ./configure, make, make install (for example). By the time we get here, all dependencies for component have already been assembled. ''' if app.config.get('no-build'): app.log(this, 'SKIPPING BUILD: artifact will be empty') os.rename(this['sandbox'], os.path.join(app.config['tmp'], this['name'])) app.log(this, 'Pre-build sandbox is moved to', os.path.join(app.config['tmp'], this['name'])) return if this.get('build-mode') != 'bootstrap': sandbox.ldconfig(this) if this.get('repo'): repos.checkout(this['name'], this['repo'], this['ref'], this['build']) get_build_commands(defs, this) env_vars = sandbox.env_vars_for_build(defs, this) app.log(this, 'Logging build commands to %s' % this['log']) for build_step in defs.defaults.build_steps: if this.get(build_step): app.log(this, 'Running', build_step) for command in this.get(build_step, []): if command is False: command = "false" elif command is True: command = "true" sandbox.run_sandboxed( this, command, env=env_vars, allow_parallel=('build' in build_step)) if this.get('devices'): sandbox.create_devices(this) with open(this['log'], "a") as logfile: logfile.write('Elapsed_time: %s\n' % app.elapsed(this['start-time']))
def run_build(dn): ''' This is where we run ./configure, make, make install (for example). By the time we get here, all dependencies for component have already been assembled. ''' if config.get('mode', 'normal') == 'no-build': log(dn, 'SKIPPING BUILD: artifact will be empty') return if dn.get('build-mode') != 'bootstrap': sandbox.ldconfig(dn) if dn.get('repo'): repos.checkout(dn) dn['SOURCE_DATE_EPOCH'] = repos.source_date_epoch(dn['checkout']) get_build_commands(dn) env_vars = sandbox.env_vars_for_build(dn) log(dn, 'Logging build commands to %s' % dn['log']) for build_step in app.defs.defaults.build_steps: if dn.get(build_step): log(dn, 'Running', build_step) for command in dn.get(build_step, []): command = 'false' if command is False else command command = 'true' if command is True else command sandbox.run_sandboxed(dn, command, env=env_vars, allow_parallel=('build' in build_step)) if dn.get('devices'): sandbox.create_devices(dn) with open(dn['log'], "a") as logfile: time_elapsed = elapsed(dn['start-time']) logfile.write('Elapsed_time: %s\n' % time_elapsed) log_riemann(dn, 'Artifact_Timer', dn['name'], time_elapsed)