#!/usr/bin/env python # # Copyright (C) 2015 VyOS maintainers and contributors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or later as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # File: live-build-config # Purpose: # Creates a live-build config command from template using the build config # and executes it, to prepare the system for building the installation ISO. import sys import os import json import pystache import defaults import util util.check_build_config() lb_config_tmpl = """ lb config noauto \ --architectures {{architecture}} \ --bootappend-live "boot=live components hostname=vyos username=live nopersistence noautologin nonetworking union=overlay" \ --linux-flavours {{architecture}}-vyos \ --linux-packages linux-image-4.4.1 \ --bootloader syslinux \ --binary-images iso-hybrid \ --debian-installer false \ --distribution jessie \ --iso-application "VyOS" \ --iso-publisher "{{build_by}}" \ --iso-volume "VyOS" \ --debootstrap-options "--variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown" \ --mirror-bootstrap {{debian_mirror}} \ --mirror-chroot {{debian_mirror}} \ --mirror-chroot-security {{debian_mirror}} \ --mirror-binary {{debian_mirror}} \ --mirror-binary-security {{debian_mirror}} "${@}" """ with open(defaults.BUILD_CONFIG, 'r') as f: build_config = json.load(f) lb_config_command = pystache.render(lb_config_tmpl, build_config) print("Configuring live-build") os.chdir(defaults.BUILD_DIR) result = os.system(lb_config_command) if result > 0: print("live-build config failed") sys.exit(1)