mirror of
https://github.com/vyos/vyos-build.git
synced 2025-10-01 20:28:40 +02:00
1. Do not install "recommended" packages 2. Do not keep apt indices in the binary image 3. Clean up firmware packages that are installed by metapackages but are not required for for network or storage hardware. 4. Revert vim to vim-tiny
91 lines
2.9 KiB
Python
Executable File
91 lines
2.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Copyright (C) 2018 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 <http://www.gnu.org/licenses/>.
|
|
#
|
|
# 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.14.26 \
|
|
--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 --include=apt-transport-https" \
|
|
--mirror-bootstrap {{debian_mirror}} \
|
|
--mirror-chroot {{debian_mirror}} \
|
|
--mirror-chroot-security {{debian_security_mirror}} \
|
|
--mirror-binary {{debian_mirror}} \
|
|
--mirror-binary-security {{debian_security_mirror}} \
|
|
--archive-areas "main contrib non-free" \
|
|
--firmware-chroot true \
|
|
--updates true \
|
|
--security true \
|
|
--apt-recommends false \
|
|
--apt-indices false
|
|
"${@}"
|
|
"""
|
|
|
|
with open(defaults.BUILD_CONFIG, 'r') as f:
|
|
build_config = json.load(f)
|
|
|
|
debug = build_config['debug']
|
|
|
|
# Add the additional repositories to package lists
|
|
print("Setting up additional APT entries")
|
|
vyos_repo_entry = "deb {0} {1} main\n".format(build_config['vyos_mirror'], build_config['vyos_branch'])
|
|
|
|
apt_file = os.path.join(build_config['build_dir'], defaults.VYOS_REPO_FILE)
|
|
|
|
if debug:
|
|
print("Adding these entries to {0}:".format(apt_file))
|
|
print("\t", vyos_repo_entry)
|
|
|
|
with open(apt_file, 'w') as f:
|
|
f.write(vyos_repo_entry)
|
|
|
|
# Configure live-build
|
|
|
|
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)
|