diff options
104 files changed, 1285 insertions, 442 deletions
diff --git a/clusters/jetson-upgrade.morph b/clusters/jetson-upgrade.morph index 4eb6b801..a73507aa 100644 --- a/clusters/jetson-upgrade.morph +++ b/clusters/jetson-upgrade.morph @@ -6,11 +6,11 @@ systems: TROVE_HOST: TROVE_HOST TROVE_ID: TROVE_ID ROOT_DEVICE: "/dev/mmcblk0p1" - DTB_PATH: "boot/tegra124-pm375.dtb" + DTB_PATH: "boot/tegra124-jetson-tk1.dtb" BOOTLOADER_CONFIG_FORMAT: "extlinux" BOOTLOADER_INSTALL: "none" - KERNEL_ARGS: console=ttyS0,115200n8 no_console_suspend=1 lp0_vec=2064@0xf46ff000 video=tegrafb mem=1862M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 vpr=151M@3945M tsec=32M@3913M otf_key=c75e5bb91eb3bd94560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150 core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter audio_codec=rt5640 modem_id=0 android.kerneltype=normal usb_port_owner_info=0 fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0 touch_id=0@0 tegra_fbmem=32899072@0xad012000 board_info=0x0177:0x0000:0x02:0x43:0x00 tegraboot=sdmmc gpt - FSTAB_SRC: LABEL=src /src auto defaults,rw,noatime 0 2 + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1 + FSTAB_SRC: LABEL=src /src auto defaults,rw,noatime,nofail 0 2 deploy: self: type: ssh-rsync diff --git a/clusters/mason-openstack.morph b/clusters/mason-openstack.morph index bea73dda..6ef14888 100644 --- a/clusters/mason-openstack.morph +++ b/clusters/mason-openstack.morph @@ -4,7 +4,7 @@ description: | This is a template cluster morphology that can be adapted to set up a Mason. Masons are composed of a trove and a distbuild system. systems: -- morph: systems/distbuild-system-x86_64-openstack.morph +- morph: systems/build-system-x86_64.morph deploy-defaults: ARTIFACT_CACHE_SERVER: example-cache-server CONTROLLERHOST: controller-hostname diff --git a/clusters/release.morph b/clusters/release.morph index 5466df22..f161d0df 100644 --- a/clusters/release.morph +++ b/clusters/release.morph @@ -17,7 +17,7 @@ systems: build-system-x86_32: type: rawdisk location: build-system-x86_32.img - DISK_SIZE: 4G + DISK_SIZE: 6G - morph: systems/build-system-x86_64-chroot.morph deploy: build-system-x86_64-chroot: @@ -28,18 +28,18 @@ systems: build-system-x86_64: type: rawdisk location: build-system-x86_64.img - DISK_SIZE: 4G + DISK_SIZE: 6G - morph: systems/build-system-armv7lhf-jetson.morph deploy: devel-system-armv7lhf-jetson: type: rawdisk location: build-system-armv7lhf-jetson.img - DISK_SIZE: 4G + DISK_SIZE: 2G ROOT_DEVICE: "/dev/mmcblk0p1" - DTB_PATH: "boot/tegra124-pm375.dtb" + DTB_PATH: "boot/tegra124-jetson-tk1.dtb" BOOTLOADER_CONFIG_FORMAT: "extlinux" BOOTLOADER_INSTALL: "none" - KERNEL_ARGS: console=ttyS0,115200n8 no_console_suspend=1 lp0_vec=2064@0xf46ff000 video=tegrafb mem=1862M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 vpr=151M@3945M tsec=32M@3913M otf_key=c75e5bb91eb3bd94560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150 core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter audio_codec=rt5640 modem_id=0 android.kerneltype=normal usb_port_owner_info=0 fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0 touch_id=0@0 tegra_fbmem=32899072@0xad012000 board_info=0x0177:0x0000:0x02:0x43:0x00 tegraboot=sdmmc gpt + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1 - morph: systems/genivi-baseline-system-x86_64-generic.morph deploy: genivi-baseline-system-x86_64-generic: @@ -57,4 +57,4 @@ systems: DTB_PATH: "boot/tegra124-jetson-tk1.dtb" BOOTLOADER_CONFIG_FORMAT: "extlinux" BOOTLOADER_INSTALL: "none" - KERNEL_ARGS: cma=256M console=ttyS0,115200n8 no_console_suspend=1 lp0_vec=2064@0xf46ff000 video=tegrafb mem=1862M@2048M memtype=255 ddr_die=2048M@2048M section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 vpr=151M@3945M tsec=32M@3913M otf_key=c75e5bb91eb3bd94560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150 core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter audio_codec=rt5640 modem_id=0 android.kerneltype=normal usb_port_owner_info=0 fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0 touch_id=0@0 tegra_fbmem=32899072@0xad012000 board_info=0x0177:0x0000:0x02:0x43:0x00 tegraboot=sdmmc gpt + KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1 diff --git a/nfsboot-server.configure b/nfsboot-server.configure index 9779c053..9fb48096 100755 --- a/nfsboot-server.configure +++ b/nfsboot-server.configure @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2013 Codethink Limited +# Copyright (C) 2013-2014 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,21 +24,35 @@ ROOT="$1" ########################################################################## -chroot "$ROOT" systemctl enable nfs-server.service +nfsboot_root=/srv/nfsboot +tftp_root="$nfsboot_root"/tftp +nfs_root="$nfsboot_root"/nfs +mkdir -p "$ROOT$tftp_root" "$ROOT$nfs_root" -mkdir -p "$ROOT/srv/nfsboot/tftp" "$ROOT/srv/nfsboot/nfs" - -cat >"$ROOT/usr/lib/systemd/system/nfsboot-tftp.service" <<EOF +install -D /dev/stdin "$ROOT/usr/lib/systemd/system/nfsboot-tftp.service" <<EOF [Unit] Description=tftp service for booting kernels After=network.target [Service] Type=simple -ExecStart=/usr/bin/udpsvd -E 0 69 /usr/sbin/tftpd /srv/nfsboot/tftp/ +ExecStart=/usr/bin/udpsvd -E 0 69 /usr/sbin/tftpd $tftp_root [Install] WantedBy=multi-user.target EOF -chroot "$ROOT" systemctl enable nfsboot-tftp.service +for prefix in / /usr; do + for unit in nfsboot-tftp.service nfs-server.service; do + unit_path="${prefix}/lib/systemd/system/$unit" + if [ -e "$ROOT/$unit_path" ]; then + ln -s "../../../../$unit_path" \ + "$ROOT/etc/systemd/system/multi-user.target.wants/$unit" + fi + done +done + +pxelinux_file="$ROOT/usr/share/syslinux/pxelinux.0" +if [ -e "$pxelinux_file" ]; then + cp "$pxelinux_file" "$ROOT$tftp_root/pxelinux.0" +fi diff --git a/pxeboot.check b/pxeboot.check new file mode 100755 index 00000000..d7eb9b5c --- /dev/null +++ b/pxeboot.check @@ -0,0 +1,69 @@ +#!/usr/bin/python + +import itertools +import os +import sys +flatten = itertools.chain.from_iterable + +def powerset(iterable): + "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" + s = list(iterable) + return flatten(itertools.combinations(s, r) for r in range(len(s)+1)) + +valid_option_sets = frozenset(( + ('spawn-novlan', frozenset(('PXEBOOT_DEPLOYER_INTERFACE',))), + ('spawn-vlan', frozenset(('PXEBOOT_DEPLOYER_INTERFACE', 'PXEBOOT_VLAN'))), + ('existing-dhcp', frozenset(('PXEBOOT_DEPLOYER_INTERFACE', + 'PXEBOOT_CONFIG_TFTP_ADDRESS'))), + ('existing-server', frozenset(('PXEBOOT_CONFIG_TFTP_ADDRESS', + 'PXEBOOT_ROOTFS_RSYNC_ADDRESS'))), +)) +valid_modes = frozenset(mode for (mode, opt_set in valid_option_sets)) + + +def compute_matches(env): + complete_matches = set() + for mode, opt_set in valid_option_sets: + if all(k in env for k in opt_set): + complete_matches.add(opt_set) + return complete_matches +complete_matches = compute_matches(os.environ) + +def word_separate_options(options): + assert options + s = options.pop(-1) + if options: + s = '%s and %s' % (', '.join(options), s) + return s + + +valid_options = frozenset(flatten(opt_set for (mode, opt_set) + in valid_option_sets)) +matched_options = frozenset(o for o in valid_options) + if o in os.environ) +if not complete_matches: + addable_sets = frozenset(frozenset(os) - matched_options for os in + valid_options + if frozenset(os) - matched_options) + print('Please provide %s' % ' or '.join( + word_separate_options(list(opt_set)) + for opt_set in addable_sets if opt_set)) + sys.exit(1) +elif len(complete_matches) > 1: + removable_sets = frozenset(matched_options - frozenset(os) for os in + powerset(matched_options) + if len(compute_matches(os)) == 1) + print('Please unset %s' % ' or '.join( + word_separate_options(list(opt_set)) + for opt_set in removable_sets if opt_set)) + sys.exit(1) + +if 'PXEBOOT_MODE' in os.environ: + mode = os.environ['PXEBOOT_MODE'] +else: + mode, = (mode for (mode, opt_set) in valid_option_sets + if all(o in os.environ for o in opt_set)) + +if mode not in valid_modes: + print('%s is not a valid PXEBOOT_MODE' % mode) + sys.exit(1) diff --git a/pxeboot.write b/pxeboot.write new file mode 100755 index 00000000..e33da527 --- /dev/null +++ b/pxeboot.write @@ -0,0 +1,679 @@ +#!/usr/bin/env python + + +import collections +import contextlib +import errno +import itertools +import logging +import os +import select +import signal +import shutil +import socket +import string +import StringIO +import subprocess +import sys +import tempfile +import textwrap +import urlparse + +import cliapp + +import morphlib + + +def _int_to_quad_dot(i): + return '.'.join(( + str(i >> 24 & 0xff), + str(i >> 16 & 0xff), + str(i >> 8 & 0xff), + str(i & 0xff))) + + +def _quad_dot_to_int(s): + i = 0 + for octet in s.split('.'): + i <<= 8 + i += int(octet, 10) + return i + + +def _netmask_to_prefixlen(mask): + bs = '{:032b}'.format(mask) + prefix = bs.rstrip('0') + if '0' in prefix: + raise ValueError('abnormal netmask: %s' % + _int_to_quad_dot(mask)) + return len(prefix) + + +def _get_routes(): + routes = [] + with open('/proc/net/route', 'r') as f: + for line in list(f)[1:]: + fields = line.split() + destination, flags, mask = fields[1], fields[3], fields[7] + flags = int(flags, 16) + if flags & 2: + # default route, ignore + continue + destination = socket.ntohl(int(destination, 16)) + mask = socket.ntohl(int(mask, 16)) + prefixlen = _netmask_to_prefixlen(mask) + routes.append((destination, prefixlen)) + return routes + + +class IPRange(object): + def __init__(self, prefix, prefixlen): + self.prefixlen = prefixlen + mask = (1 << prefixlen) - 1 + self.mask = mask << (32 - prefixlen) + self.prefix = prefix & self.mask + @property + def bitstring(self): + return ('{:08b}' * 4).format( + self.prefix >> 24 & 0xff, + self.prefix >> 16 & 0xff, + self.prefix >> 8 & 0xff, + self.prefix & 0xff + )[:self.prefixlen] + def startswith(self, other_range): + return self.bitstring.startswith(other_range.bitstring) + + +def find_subnet(valid_ranges, invalid_ranges): + for vr in valid_ranges: + known_subnets = set(ir for ir in invalid_ranges if ir.startswith(vr)) + prefixlens = set(r.prefixlen for r in known_subnets) + prefixlens.add(32 - 2) # need at least 4 addresses in subnet + prefixlen = min(prefixlens) + if prefixlen <= vr.prefixlen: + # valid subnet is full, move on to next + continue + subnetlen = prefixlen - vr.prefixlen + for prefix in (subnetid + vr.prefix + for subnetid in xrange(1 << subnetlen)): + if any(subnet.prefix == prefix for subnet in known_subnets): + continue + return prefix, prefixlen + + +def _normalise_macaddr(macaddr): + '''pxelinux.0 wants the mac address to be lowercase and - separated''' + digits = (c for c in macaddr.lower() if c in string.hexdigits) + nibble_pairs = grouper(digits, 2) + return '-'.join(''.join(byte) for byte in nibble_pairs) + + +@contextlib.contextmanager +def executor(target_pid): + 'Kills a process if its parent dies' + read_fd, write_fd = os.pipe() + helper_pid = os.fork() + if helper_pid == 0: + try: + os.close(write_fd) + while True: + rlist, _, _ = select.select([read_fd], [], []) + if read_fd in rlist: + d = os.read(read_fd, 1) + if not d: + os.kill(target_pid, signal.SIGKILL) + if d in ('', 'Q'): + os._exit(0) + else: + os._exit(1) + except BaseException as e: + import traceback + traceback.print_exc() + os._exit(1) + os.close(read_fd) + yield + os.write(write_fd, 'Q') + os.close(write_fd) + + +def grouper(iterable, n, fillvalue=None): + "Collect data into fixed-length chunks or blocks" + # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx" + args = [iter(iterable)] * n + return itertools.izip_longest(*args, fillvalue=fillvalue) + + +class PXEBoot(morphlib.writeexts.WriteExtension): + @contextlib.contextmanager + def _vlan(self, interface, vlan): + viface = '%s.%s' % (interface, vlan) + self.status(msg='Creating vlan %(viface)s', viface=viface) + subprocess.check_call(['vconfig', 'add', interface, str(vlan)]) + try: + yield viface + finally: + self.status(msg='Destroying vlan %(viface)s', viface=viface) + subprocess.call(['vconfig', 'rem', viface]) + + @contextlib.contextmanager + def _static_ip(self, iface): + valid_ranges = set(( + IPRange(_quad_dot_to_int('192.168.0.0'), 16), + IPRange(_quad_dot_to_int('172.16.0.0'), 12), + IPRange(_quad_dot_to_int('10.0.0.0'), 8), + )) + invalid_ranges = set(IPRange(prefix, prefixlen) + for (prefix, prefixlen) in _get_routes()) + prefix, prefixlen = find_subnet(valid_ranges, invalid_ranges) + netaddr = prefix + dhcp_server_ip = netaddr + 1 + client_ip = netaddr + 2 + broadcast_ip = prefix | ((1 << (32 - prefixlen)) - 1) + self.status(msg='Assigning ip address %(ip)s/%(prefixlen)d to ' + 'iface %(iface)s', + ip=_int_to_quad_dot(dhcp_server_ip), prefixlen=prefixlen, + iface=iface) + subprocess.check_call(['ip', 'addr', 'add', + '{}/{}'.format(_int_to_quad_dot(dhcp_server_ip), + prefixlen), + 'broadcast', _int_to_quad_dot(broadcast_ip), + 'scope', 'global', + 'dev', iface]) + try: + yield (dhcp_server_ip, client_ip, broadcast_ip) + finally: + self.status(msg='Removing ip addresses from iface %(iface)s', + iface=iface) + subprocess.call(['ip', 'addr', 'flush', 'dev', iface]) + + @contextlib.contextmanager + def _up_interface(self, iface): + self.status(msg='Bringing interface %(iface)s up', iface=iface) + subprocess.check_call(['ip', 'link', 'set', iface, 'up']) + try: + yield + finally: + self.status(msg='Bringing interface %(iface)s down', iface=iface) + subprocess.call(['ip', 'link', 'set', iface, 'down']) + + @contextlib.contextmanager + def static_ip(self, interface): + with self._static_ip(iface=interface) as (host_ip, client_ip, + broadcast_ip), \ + self._up_interface(iface=interface): + yield (_int_to_quad_dot(host_ip), + _int_to_quad_dot(client_ip), + _int_to_quad_dot(broadcast_ip)) + + @contextlib.contextmanager + def vlan(self, interface, vlan): + with self._vlan(interface=interface, vlan=vlan) as viface, \ + self.static_ip(interface=viface) \ + as (host_ip, client_ip, broadcast_ip): + yield host_ip, client_ip, broadcast_ip + + @contextlib.contextmanager + def _tempdir(self): + td = tempfile.mkdtemp() + print 'Created tempdir:', td + try: + yield td + finally: + shutil.rmtree(td, ignore_errors=True) + + @contextlib.contextmanager + def _remote_tempdir(self, hostname, template): + td = cliapp.ssh_runcmd(hostname, ['mktemp', '-d', template]).strip() + try: + yield td + finally: + cliapp.ssh_runcmd(hostname, ['find', td, '-delete']) + + def _serve_tftpd(self, sock, host, port, interface, tftproot): + self.settings.progname = 'tftp server' + self._set_process_name() + while True: + logging.debug('tftpd waiting for connections') + # recvfrom with MSG_PEEK is how you accept UDP connections + _, peer = sock.recvfrom(0, socket.MSG_PEEK) + conn = sock + logging.debug('Connecting socket to peer: ' + repr(peer)) + conn.connect(peer) + # The existing socket is now only serving that peer, so we need to + # bind a new UDP socket to the wildcard address, which needs the + # port to be in REUSEADDR mode. + conn.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + sock = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + logging.debug('Binding replacement socket to ' + repr((host, port))) + sock.bind((host, port)) + + logging.debug('tftpd server handing connection to tftpd') + tftpd_serve = ['tftpd', '-rl', tftproot] + ret = subprocess.call(args=tftpd_serve, stdin=conn, + stdout=conn, stderr=None, close_fds=True) + # It's handy to turn off REUSEADDR after the rebinding, + # so we can protect against future bind attempts on this port. + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 0) + logging.debug('tftpd exited %d' % ret) + os._exit(0) + + @contextlib.contextmanager + def _spawned_tftp_server(self, tftproot, host_ip, interface, tftp_port=0): + # inetd-style launchers tend to bind UDP ports with SO_REUSEADDR, + # because they need to have multiple ports bound, one for recieving + # all connection attempts on that port, and one for each concurrent + # connection with a peer + # this makes detecting whether there's a tftpd running difficult, so + # we'll instead use an ephemeral port and configure the PXE boot to + # use that tftp server for the kernel + s = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM) + s.bind((host_ip, tftp_port)) + host, port = s.getsockname() + self.status(msg='Bound listen socket to %(host)s, %(port)s', + host=host, port=port) + pid = os.fork() + if pid == 0: + try: + self._serve_tftpd(sock=s, host=host, port=port, + interface=interface, tftproot=tftproot) + except BaseException as e: + import traceback + traceback.print_exc() + os._exit(1) + s.close() + with executor(pid): + try: + yield port + finally: + self.status(msg='Killing tftpd listener pid=%(pid)d', + pid=pid) + os.kill(pid, signal.SIGKILL) + + @contextlib.contextmanager + def tftp_server(self, host_ip, interface, tftp_port=0): + with self._tempdir() as tftproot, \ + self._spawned_tftp_server(tftproot=tftproot, host_ip=host_ip, + interface=interface, + tftp_port=tftp_port) as tftp_port: + self.status(msg='Serving tftp root %(tftproot)s, on port %(port)d', + port=tftp_port, tftproot=tftproot) + yield tftp_port, tftproot + + @contextlib.contextmanager + def _local_copy(self, src, dst): + self.status(msg='Installing %(src)s to %(dst)s', + src=src, dst=dst) + shutil.copy2(src=src, dst=dst) + try: + yield + finally: + self.status(msg='Removing %(dst)s', dst=dst) + os.unlink(dst) + + def local_pxelinux(self, tftproot): + return self._local_copy('/usr/share/syslinux/pxelinux.0', + os.path.join(tftproot, 'pxelinux.0')) + + def local_kernel(self, rootfs, tftproot): + return self._local_copy(os.path.join(rootfs, 'boot/vmlinuz'), + os.path.join(tftproot, 'kernel')) + + @contextlib.contextmanager + def _remote_copy(self, hostname, src, dst): + with open(src, 'r') as f: + cliapp.ssh_runcmd(hostname, + ['install', '-D', '-m644', '/proc/self/fd/0', + dst], stdin=f, stdout=None, stderr=None) + try: + yield + finally: + cliapp.ssh_runcmd(hostname, ['rm', dst]) + + @contextlib.contextmanager + def remote_kernel(self, rootfs, tftp_url, macaddr): + for name in ('vmlinuz', 'zImage', 'uImage'): + kernel_path = os.path.join(rootfs, 'boot', name) + if os.path.exists(kernel_path): + break + else: + raise cliapp.AppException('Failed to locate kernel') + url = urlparse.urlsplit(tftp_url) + basename = '{}-kernel'.format(_normalise_macaddr(macaddr)) + target_path = os.path.join(url.path, basename) + with self._remote_copy(hostname=url.hostname, src=kernel_path, + dst=target_path): + yield basename + + @contextlib.contextmanager + def local_nfsroot(self, rootfs, target_ip): + nfsroot = target_ip + ':' + rootfs + self.status(msg='Exporting %(nfsroot)s as local nfsroot', + nfsroot=nfsroot) + cliapp.runcmd(['exportfs', '-o', 'ro,insecure,no_root_squash', + nfsroot]) + try: + yield + finally: + self.status(msg='Removing %(nfsroot)s from local nfsroots', + nfsroot=nfsroot) + cliapp.runcmd(['exportfs', '-u', nfsroot]) + + @contextlib.contextmanager + def remote_nfsroot(self, rootfs, rsync_url, macaddr): + url = urlparse.urlsplit(rsync_url) + template = os.path.join(url.path, 'nfsroot.XXXXXXXXXX') + with self._remote_tempdir(hostname=url.hostname, template=template) \ + as tempdir: + nfsroot = urlparse.urlunsplit(url.scheme, url.netloc, tempdir, + url.query, url.fragment) + cliapp.runcmd(['rsync', '-asXSPH', '--delete', rootfs, nfsroot], + stdin=None, stdout=None, stderr=None) + yield basename + + @staticmethod + def _write_pxe_config(fh, kernel_tftp_url, rootfs_nfs_url, extra_args=''): + fh.write(textwrap.dedent('''\ + DEFAULT default + LABEL default + LINUX {kernel_url} + APPEND root=/dev/nfs ip=dhcp nfsroot={rootfs_nfs_url} {extra_args} + ''').format(kernel_url=kernel_tftp_url, + rootfs_nfs_url=rootfs_nfs_url, extra_args=extra_args)) + fh.flush() + + @contextlib.contextmanager + def local_pxeboot_config(self, tftproot, macaddr, ip, tftp_port, + nfsroot_dir): + kernel_tftp_url = 'tftp://{}:{}/kernel'.format(ip, tftp_port) + rootfs_nfs_url = '{}:{}'.format(ip, nfsroot_dir) + pxe_cfg_filename = _normalise_macaddr(macaddr) + pxe_cfg_path = os.path.join(tftproot, 'pxelinux.cfg', pxe_cfg_filename) + os.makedirs(os.path.dirname(pxe_cfg_path)) + with open(pxe_cfg_path, 'w') as f: + self._write_pxe_config(fh=f, kernel_tftp_url=kernel_tftp_url, + rootfs_nfs_url=rootfs_nfs_url, + extra_args=os.environ.get('KERNEL_ARGS','')) + try: + yield + finally: + os.unlink(pxe_cfg_path) + + @contextlib.contextmanager + def remote_pxeboot_config(self, tftproot, kernel_tftproot, kernel_subpath, + rootfs_nfsroot, rootfs_subpath, macaddr): + rootfs_nfs_url = '{}:{}/{}'.format(ip, rootfs_nfsroot, rootfs_subpath) + kernel_tftp_url = '{}/{}'.format(kernel_tftproot, kernel_subpath) + pxe_cfg_filename = _normalise_macaddr(macaddr) + url = urlparse.urlsplit(tftproot) + inst_cfg_path = os.path.join(url.path, 'pxelinux.cfg', + pxe_cfg_filename) + with tempfile.NamedTemporaryFile() as f: + self._write_pxe_config(fh=f, kernel_tftp_url=kernel_tftp_url, + rootfs_nfs_url=rootfs_nfs_url, + extra_args=os.environ.get('KERNEL_ARGS','')) + with self._remote_copy(hostname=url.hostname, src=f.name, + dst=inst_cfg_path): + yield + + @contextlib.contextmanager + def dhcp_server(self, interface, host_ip, target_ip, broadcast_ip): + with self._tempdir() as td: + leases_path = os.path.join(td, 'leases') + config_path = os.path.join(td, 'config') + stdout_path = os.path.join(td, 'stdout') + stderr_path = os.path.join(td, 'stderr') + pidfile_path = os.path.join(td, 'pid') + with open(config_path, 'w') as f: + f.write(textwrap.dedent('''\ + start {target_ip} + end {target_ip} + interface {interface} + max_leases 1 + lease_file {leases_path} + pidfile {pidfile_path} + boot_file pxelinux.0 + option dns {host_ip} + option broadcast {broadcast_ip} + ''').format(**locals())) + with open(stdout_path, 'w') as stdout, \ + open(stderr_path, 'w') as stderr: + sp = subprocess.Popen(['udhcpd', '-f', config_path], cwd=td, + stdin=open(os.devnull), stdout=stdout, + stderr=stderr) + try: + with executor(sp.pid): + yield + finally: + sp.terminate() + + def get_interface_ip(self, interface): + ip_addresses = [] + info = cliapp.runcmd(['ip', '-o', '-f', 'inet', + 'addr', 'show', interface]).rstrip('\n') + if info: + tokens = collections.deque(info.split()[1:]) + ifname = tokens.popleft() + while tokens: + tok = tokens.popleft() + if tok == 'inet': + address = tokens.popleft() + address, netmask = address.split('/') + ip_addresses.append(address) + elif tok == 'brd': + tokens.popleft() # not interested in broadcast address + elif tok == 'scope': + tokens.popleft() # not interested in scope tag + else: + continue + if not ip_addresses: + raise cliapp.AppException('Interface %s has no addresses' + % interface) + if len(ip_addresses) > 1: + warnings.warn('Interface %s has multiple addresses, ' + 'using first (%s)' % (interface, ip_addresses[0])) + return ip_addresses[0] + + def ipmi_set_target_vlan(self): + if any(env_var.startswith('IPMI_') for env_var in os.environ): + # Needs IPMI_USER, IPMI_PASSWORD, IPMI_HOST and PXEBOOT_VLAN + default = textwrap.dedent('''\ + ipmitool -I lanplus -U "$IPMI_USER" -E -H "$IPMI_HOST" \\ + lan set 1 vlan id "$PXEBOOT_VLAN" + ''') + else: + default = textwrap.dedent('''\ + while true; do + echo Please set the target\\'s vlan to $PXEBOOT_VLAN, \\ + then enter \\"vlanned\\" + read + if [ "$REPLY" = vlanned ]; then + break + fi + done + ''') + command = os.environ.get('PXEBOOT_SET_VLAN_COMMAND', default) + subprocess.check_call(['sh', '-euc', command, '-']) + + def ipmi_pxe_reboot_target(self): + if any(env_var.startswith('IPMI_') for env_var in os.environ): + # Needs IPMI_USER, IPMI_PASSWORD, IPMI_HOST and PXEBOOT_VLAN + default = textwrap.dedent('''\ + set -- ipmitool -I lanplus -U "$IPMI_USER" -E -H "$IPMI_HOST" + "$@" chassis bootdev pxe + "$@" chassis power reset + ''') + else: + default = textwrap.dedent('''\ + while true; do + echo Please reboot the target in PXE mode, then\\ + enter \\"pxe-booted\\" + read + if [ "$REPLY" = pxe-booted ]; then + break + fi + done + ''') + command = os.environ.get('PXEBOOT_PXE_REBOOT_COMMAND', default) + subprocess.check_call(['sh', '-euc', command, '-']) + + def wait_for_target_to_install(self): + command = os.environ.get( + 'PXEBOOT_WAIT_INSTALL_COMMAND', + textwrap.dedent('''\ + while true; do + echo Please wait for the system to install, then \\ + enter \\"installed\\" + read + if [ "$REPLY" = installed ]; then + break + fi + done + ''')) + subprocess.check_call(['sh', '-euc', command, '-']) + + def ipmi_unset_target_vlan(self): + if any(env_var.startswith('IPMI_') for env_var in os.environ): + # Needs IPMI_USER, IPMI_PASSWORD, IPMI_HOST + default = textwrap.dedent('''\ + ipmitool -I lanplus -U "$IPMI_USER" -E -H "$IPMI_HOST" \\ + lan set 1 vlan id off + ''') + else: + default = textwrap.dedent('''\ + while true; do + echo Please reset the target\\'s vlan, \\ + then enter \\"unvlanned\\" + read + if [ "$REPLY" = unvlanned ]; then + break + fi + done + ''') + command = os.environ.get('PXEBOOT_UNSET_VLAN_COMMAND', default) + subprocess.check_call(['sh', '-euc', command, '-']) + + def ipmi_reboot_target(self): + if any(env_var.startswith('IPMI_') for env_var in os.environ): + # Needs IPMI_USER, IPMI_PASSWORD, IPMI_HOST + default = textwrap.dedent('''\ + ipmitool -I lanplus -U "$IPMI_USER" -E -H "$IPMI_HOST" \\ + chassis power reset + ''') + else: + default = textwrap.dedent('''\ + while true; do + echo Please reboot the target, then\\ + enter \\"rebooted\\" + read + if [ "$REPLY" = rebooted ]; then + break + fi + done + ''') + command = os.environ.get('PXEBOOT_REBOOT_COMMAND', default) + subprocess.check_call(['sh', '-euc', command, '-']) + + def process_args(self, (temp_root, macaddr)): + interface = os.environ.get('PXEBOOT_DEPLOYER_INTERFACE', None) + vlan = os.environ.get('PXEBOOT_VLAN') + if vlan is not None: vlan = int(vlan) + mode = os.environ.get('PXEBOOT_MODE') + if mode is None: + if interface: + if vlan is not None: + mode = 'spawn-vlan' + else: + if 'PXEBOOT_CONFIG_TFTP_ADDRESS' in os.environ: + mode = 'existing-dhcp' + else: + mode = 'spawn-novlan' + else: + mode = 'existing-server' + assert mode in ('spawn-vlan', 'spawn-novlan', 'existing-dhcp', + 'existing-server') + if mode == 'spawn-vlan': + with self.vlan(interface=interface, vlan=vlan) \ + as (host_ip, target_ip, broadcast_ip), \ + self.tftp_server(host_ip=host_ip, interface=interface) \ + as (tftp_port, tftproot), \ + self.local_pxelinux(tftproot=tftproot), \ + self.local_kernel(rootfs=temp_root, tftproot=tftproot), \ + self.local_nfsroot(rootfs=temp_root, target_ip=target_ip), \ + self.local_pxeboot_config(tftproot=tftproot, macaddr=macaddr, + ip=host_ip, tftp_port=tftp_port, + nfsroot_dir=temp_root), \ + self.dhcp_server(interface=interface, host_ip=host_ip, + target_ip=target_ip, + broadcast_ip=broadcast_ip): + self.ipmi_set_target_vlan() + self.ipmi_pxe_reboot_target() + self.wait_for_target_to_install() + self.ipmi_unset_target_vlan() + self.ipmi_reboot_target() + elif mode == 'spawn-novlan': + with self.static_ip(interface=interface) as (host_ip, target_ip, + broadcast_ip), \ + self.tftp_server(host_ip=host_ip, interface=interface, + tftp_port=69) \ + as (tftp_port, tftproot), \ + self.local_pxelinux(tftproot=tftproot), \ + self.local_kernel(rootfs=temp_root, tftproot=tftproot), \ + self.local_nfsroot(rootfs=temp_root, target_ip=target_ip), \ + self.local_pxeboot_config(tftproot=tftproot, macaddr=macaddr, + ip=host_ip, tftp_port=tftp_port, + nfsroot_dir=temp_root), \ + self.dhcp_server(interface=interface, host_ip=host_ip, + target_ip=target_ip, + broadcast_ip=broadcast_ip): + self.ipmi_pxe_reboot_target() + self.wait_for_target_to_install() + self.ipmi_reboot_target() + elif mode == 'existing-dhcp': + ip = self.get_interface_ip(interface) + config_tftpaddr = os.environ['PXEBOOT_CONFIG_TFTP_ADDRESS'] + with self.tftp_server(ip=ip, interface=interface, tftp_port=69) \ + as (tftp_port, tftproot), \ + self.local_kernel(rootfs=temp_root, tftproot=tftproot), \ + self.local_nfsroot(rootfs=temp_root, client_ip=''): + kernel_tftproot = 'tftp://{}:{}/'.format(ip, tftp_port) + rootfs_nfsroot = '{}:{}'.format(ip, temp_root) + with self.remote_pxeboot_config( + tftproot=config_tftpaddr, + kernel_tftproot=kernel_tftproot, + kernel_subpath='kernel', + rootfs_nfsroot=nfsroot, + rootfs_subpath='', + macaddr=macaddr): + self.ipmi_pxe_reboot_target() + self.wait_for_target_to_install() + self.ipmi_reboot_target() + elif mode == 'existing-server': + config_tftpaddr = os.environ[ 'PXEBOOT_CONFIG_TFTP_ADDRESS'] + kernel_tftpaddr = os.environ.get('PXEBOOT_KERNEL_TFTP_ADDRESS', + config_tftpaddr) + url = urlparse.urlsplit(kernel_tftpaddr) + kernel_tftproot = os.environ.get('PXEBOOT_KERNEL_TFTP_ROOT', + 'tftp://%s/%s' % (url.hostname, + url.path)) + rootfs_rsync = os.environ['PXEBOOT_ROOTFS_RSYNC_ADDRESS'] + url = urlparse.urlsplit(rootfs_rsync) + nfsroot = os.environ.get('PXEBOOT_ROOTFS_NFSROOT', + '%s:%s' % (url.hostname, url.path)) + with self.remote_kernel(rootfs=temp_root, url=kernel_tftpaddr, + macaddr=macaddr) as kernel_subpath, \ + self.remote_nfsroot(rootfs=temp_root, rsync_url=rootfs_rsync)\ + as rootfs_subpath, \ + self.remote_pxeboot_config(tftproot=config_tftpaddr, + kernel_tftproot=kernel_tftproot, + kernel_subpath=kernel_subpath, + rootfs_nfsroot=nfsroot, + rootfs_subpath=rootfs_subpath, + macaddr=macaddr): + self.ipmi_pxe_reboot_target() + self.wait_for_target_to_install() + self.ipmi_reboot_target() + else: + cliapp.AppException('Invalid PXEBOOT_MODE: %s' % mode) + +PXEBoot().run() diff --git a/pxeboot.write.help b/pxeboot.write.help new file mode 100644 index 00000000..58a86957 --- /dev/null +++ b/pxeboot.write.help @@ -0,0 +1,123 @@ +help: > + pxeboot.write extension. + + + This write extension will serve your generated system over NFS to + the target system. + + In all modes `location` is the mac address of the interface that + the target will PXE boot from. This is used so that the target will + load the configuration file appropriate to it. + + + # `PXEBOOT_MODE` + + + It has 4 modes, which can be specified with PXEBOOT_MODE, or inferred + from which parameters are passed: + + + ## spawn-vlan + + + Specify PXEBOOT_DEPLOYER_INTERFACE and PXEBOOT_VLAN to configure + the target to pxeboot on a vlan and spawn a dhcp, nfs and tftp + server. This is potentially the fastest, since it doesn't need to + copy data to other servers. + + This will create a vlan interface for the interface specified in + PXEBOOT_DEPLOYER_INTERFACE and spawn a dhcp server which serves + pxelinux.0, a configuration file and a kernel image from itself. + + The configuration file informs the target to boot with a kernel + command-line that uses an NFS root served from the deployment host. + + + ## spawn-novlan + + + Specify PXEBOOT_DEPLOYER_INTERFACE without PXEBOOT_VLAN to configure + like `spawn-vlan`, but without creating the vlan interface. + + This assumes that you have exclusive access to the interface, such + as if you're plugged in to the device directly, or your interface + is vlanned by your infrastructure team. + + This is required if you are serving from a VM and bridging it to the + correct network via macvtap. For this to work, you need to macvtap + bridge to a pre-vlanned interface on your host machine. + + + ## existing-dhcp + + + Specify PXEBOOT_DEPLOYER_INTERFACE and PXEBOOT_CONFIG_TFTP_ADDRESS + to put config on an existing tftp server, already configured by the + dhcp server. + + This spawns a tftp server and configures the local nfs server, but + doesn't spawn a dhcp server. This is useful if you have already got a + dhcp server that serves PXE images. + + PXEBOOT_CONFIG_TFTP_ADDRESS is a URL in the form `sftp://$HOST/$PATH`. + The configuration file is copied to `$PATH/pxelinux.cfg/` on the + target identified by `$HOST`. + + + ## existing-server + + + Specify at least PXEBOOT_CONFIG_TFTP_ADDRESS and + PXEBOOT_ROOTFS_RSYNC_ADDRESS to specify existing servers to copy + config, kernels and the rootfs to. + + Configuration is copied to the target as `existing-dhcp`. + + Specify PXEBOOT_KERNEL_TFTP_ADDRESS if the tftp server that the + kernel must be downloaded from is different to that of the pxelinux + configuration file. + + PXEBOOT_ROOTFS_RSYNC_ADDRESS is a rsync URL describing where to copy + nfsroots to where they will be exported by the NFS server. + + Specify PXEBOOT_ROOTFS_NFSROOT if the nfsroot appears as a different + address from the target's perspective. + + + # IPMI commands + + + After the PXE boot has been set up, the target needs to be rebooted + in PXE mode. + + If the target is IPMI enabled, you can set `IPMI_USER`, `IPMI_HOST` + and `IPMI_PASSWORD` to make it reboot the target into netboot mode + automatically. + + If they are not specified, then instructions will be displayed, and + `pxeboot.write` will wait for you to finish. + + If there are command-line automation tools for rebooting the target + in netboot mode, then appropriate commands can be defined in the + following variables. + + + ## PXEBOOT_PXE_REBOOT_COMMAND + + + This command will be used to reboot the target device with its boot + device set to PXE boot. + + + ## PXEBOOT_REBOOT_COMMAND + + + This command will be used to reboot the target device in its default + boot mode. + + + ## PXEBOOT_WAIT_INSTALL_COMMAND + + + If it is possible for the target to notify you that it has finished + installing, you can put a command in here to wait for the event. diff --git a/strata/NetworkManager-common.morph b/strata/NetworkManager-common.morph index 7233d84f..44adc1fb 100644 --- a/strata/NetworkManager-common.morph +++ b/strata/NetworkManager-common.morph @@ -7,7 +7,8 @@ build-depends: chunks: - name: libndp repo: upstream:libndp - ref: master + ref: f3a3a63d5b5abced8f75731d7b995606933c6e33 + unpetrify-ref: v1.4 build-depends: [] - name: NetworkManager morph: strata/NetworkManager-common/NetworkManager.morph diff --git a/strata/audio-bluetooth.morph b/strata/audio-bluetooth.morph index a24158b6..0c67ee5c 100644 --- a/strata/audio-bluetooth.morph +++ b/strata/audio-bluetooth.morph @@ -10,16 +10,15 @@ chunks: unpetrify-ref: baserock/morph build-depends: [] - name: alsa-lib - morph: strata/audio-bluetooth/alsa-lib.morph repo: upstream:alsa-lib - ref: ab715503853be8d8f365fd157c3cb97ef7a89f7b - unpetrify-ref: baserock/morph + ref: 9cfd1faa27511edbb8bebbab85030125f33590ae + unpetrify-ref: v1.0.28 build-depends: [] - name: alsa-utils morph: strata/audio-bluetooth/alsa-utils.morph repo: upstream:alsa-utils - ref: f12208425051a7abf5ffc87ac2b9d2bd9e096fe1 - unpetrify-ref: baserock/morph + ref: bbf137f66b2c8ce36db73f59ee69d5c443436524 + unpetrify-ref: v1.0.28 build-depends: - alsa-lib - name: libical @@ -70,8 +69,8 @@ chunks: - name: ofono morph: strata/audio-bluetooth/ofono.morph repo: upstream:ofono - ref: a53228f6b1b32d0405c0c3c8e0861d6202ffbba2 - unpetrify-ref: baserock/morph + ref: d05b718cc0b0d367227fbfbf52e60fc5462cc549 + unpetrify-ref: "1.15" build-depends: - mobile-broadband-provider-info - bluez diff --git a/strata/audio-bluetooth/alsa-lib.morph b/strata/audio-bluetooth/alsa-lib.morph deleted file mode 100644 index 1e3015ca..00000000 --- a/strata/audio-bluetooth/alsa-lib.morph +++ /dev/null @@ -1,4 +0,0 @@ -name: alsa-lib -kind: chunk -description: ALSA library -build-system: autotools diff --git a/strata/baserock-import.morph b/strata/baserock-import.morph new file mode 100644 index 00000000..6e875e8c --- /dev/null +++ b/strata/baserock-import.morph @@ -0,0 +1,31 @@ +name: baserock-import +kind: stratum +description: Tools for importing software into Baserock definitions. +build-depends: +- morph: strata/morph-utils.morph +chunks: +- name: ansicolor + repo: upstream:python-packages/ansicolor + ref: 9d3adbaff35bb6cde1d63414a8cc72f572c4d0ef + unpetrify-ref: 0.2.4 + build-depends: [] +- name: python-decorator + repo: upstream:python-packages/python-decorator + ref: b02f7a254c3679dfac57a824e08dd02ced850636 + unpetrify-ref: decorator-3.4.0 + build-depends: [] +- name: networkx + repo: upstream:python-packages/networkx + ref: 8ac796aba866ade1a56b83e30f25ed392ca3512c + unpetrify-ref: networkx-1.9.1 + build-depends: [] +- name: requests-cache + repo: upstream:python-packages/requests-cache + ref: a1b5e65ccd715f1e8434f18f27913715340d6aaf + unpetrify-ref: 0.4.6 + build-depends: [] +- name: baserock-import + repo: baserock:baserock/import + ref: edd18a77973d8cd12b09bc6e3ac06fecd72a7e45 + unpetrify-ref: master + build-depends: [] diff --git a/strata/bsp-armv7-highbank/linux-armv7-highbank.morph b/strata/bsp-armv7-highbank/linux-armv7-highbank.morph index 58ad90b4..dfebf69c 100644 --- a/strata/bsp-armv7-highbank/linux-armv7-highbank.morph +++ b/strata/bsp-armv7-highbank/linux-armv7-highbank.morph @@ -37,6 +37,8 @@ configure-commands: - scripts/config -e TMPFS - scripts/config -e TMPFS_POSIX_ACL - scripts/config -e VFAT_FS +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make oldconfig build-commands: - make zImage $MAKEFLAGS diff --git a/strata/bsp-armv7-versatile/linux-armv7-versatile.morph b/strata/bsp-armv7-versatile/linux-armv7-versatile.morph index 9b03991b..1da640e7 100644 --- a/strata/bsp-armv7-versatile/linux-armv7-versatile.morph +++ b/strata/bsp-armv7-versatile/linux-armv7-versatile.morph @@ -17,6 +17,8 @@ configure-commands: - scripts/config -e SECCOMP - scripts/config -d DEBUG_STACK_TRACE - scripts/config -e FB_VESA +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make oldconfig build-commands: - make ARCH=arm zImage $MAKEFLAGS diff --git a/strata/bsp-armv7b-highbank/linux-armv7b-highbank.morph b/strata/bsp-armv7b-highbank/linux-armv7b-highbank.morph index e3601dc4..ea1a2d5f 100644 --- a/strata/bsp-armv7b-highbank/linux-armv7b-highbank.morph +++ b/strata/bsp-armv7b-highbank/linux-armv7b-highbank.morph @@ -39,6 +39,8 @@ configure-commands: - scripts/config -e EXT4_USE_FOR_EXT23 - scripts/config -e MSDOS_FS - scripts/config -e VFAT_FS +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make oldconfig build-commands: - make zImage $MAKEFLAGS diff --git a/strata/bsp-armv7b-vexpress-tc2/linux-armv7b-vexpress-tc2.morph b/strata/bsp-armv7b-vexpress-tc2/linux-armv7b-vexpress-tc2.morph index e187716d..ecf6b9bc 100644 --- a/strata/bsp-armv7b-vexpress-tc2/linux-armv7b-vexpress-tc2.morph +++ b/strata/bsp-armv7b-vexpress-tc2/linux-armv7b-vexpress-tc2.morph @@ -39,6 +39,8 @@ configure-commands: - scripts/config -e EXT4_USE_FOR_EXT23 - scripts/config -e MSDOS_FS - scripts/config -e VFAT_FS +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make oldconfig build-commands: - make zImage vexpress-v2p-ca15_a7.dtb diff --git a/strata/bsp-jetson-devel.morph b/strata/bsp-jetson-devel.morph deleted file mode 100644 index e5f52a9c..00000000 --- a/strata/bsp-jetson-devel.morph +++ /dev/null @@ -1,39 +0,0 @@ -name: bsp-jetson-devel -kind: stratum -description: | - Platform-specific chunks for NVIDIA Jetson TK1 development system. - - Support for the Tegra platform is still being developed. This BSP uses - a patched version of Linux 3.10 supplied by NVIDIA, which provides - reliable SATA, USB and networking and runs the CPUs at full speed. - To make use of the graphics acceleration on the Jetson you will need - to use a newer kernel. -build-depends: -- morph: strata/core.morph -chunks: -- name: device-tree-compiler - morph: strata/bsp-jetson-devel/device-tree-compiler.morph - repo: upstream:device-tree-compiler - ref: c92f284c3cf76d471eb27a271de3a51cb45ed058 - unpetrify-ref: baserock/morph - build-depends: [] -- name: u-boot - morph: strata/bsp-jetson-devel/u-boot.morph - repo: upstream:u-boot - ref: b15ae44ab9f085140039b09a00232d5aed6596a9 - unpetrify-ref: baserock/arm/tegra-uboot-btrfs - build-depends: - - device-tree-compiler -- name: linux-jetson-tk1 - morph: strata/bsp-jetson-devel/linux-jetson-tk1.morph - repo: upstream:linux - ref: de3664efca390a8d2fe525a583d17772deee8500 - unpetrify-ref: baserock/arm/tegra-3.10 - build-depends: - - u-boot -- name: bsp-support - morph: strata/bsp-jetson-devel/bsp-support.morph - repo: baserock:baserock/bsp-support - ref: 19bc31ce3198a3c19cdd96d392bde34cb34ed525 - unpetrify-ref: baserock/arm/tegra-3.10 - build-depends: [] diff --git a/strata/bsp-jetson-devel/linux-jetson-tk1.morph b/strata/bsp-jetson-devel/linux-jetson-tk1.morph deleted file mode 100644 index 3494f62b..00000000 --- a/strata/bsp-jetson-devel/linux-jetson-tk1.morph +++ /dev/null @@ -1,53 +0,0 @@ -name: linux-jetson-tk1 -kind: chunk -configure-commands: -- make ARCH=arm tegra12_defconfig -- scripts/config -d KERNEL_LZO -- scripts/config -e KERNEL_GZIP -- scripts/config -e NAMESPACES -- scripts/config -e PACKET -- scripts/config -e SATA_AHCI -- scripts/config -e ATA_GENERIC -- scripts/config -e HAVE_IDE -- scripts/config -d BLK_DEV_IDE_SATA -- scripts/config -e BTRFS_FS -- scripts/config -e BTRFS_FS_POSIX_ACL -- scripts/config -e DEVTMPFS -- scripts/config -e DEVTMPFS_MOUNT -- scripts/config -e CONFIG_FHANDLE -- scripts/config -e CGROUPS -- scripts/config -e AUTOFS4_FS -- scripts/config --set-str UEVENT_HELPER_PATH '' -- scripts/config -e EXT2_FS -- scripts/config -e EXT2_FS_XATTR -- scripts/config -e EXT2_FS_POSIX_ACL -- scripts/config -e EXT2_FS_SECURITY -- scripts/config -e EXT2_FS_XIP -- scripts/config -e EXT3_FS -- scripts/config -d EXT3_DEFAULTS_TO_ORDERED -- scripts/config -e EXT3_FS_XATTR -- scripts/config -e EXT3_FS_POSIX_ACL -- scripts/config -e EXT3_FS_SECURITY -- scripts/config -e EXT4_FS -- scripts/config -e EXT4_FS_XATTR -- scripts/config -e EXT4_FS_POSIX_ACL -- scripts/config -e EXT4_FS_SECURITY -- scripts/config -d EXT4_DEBUG -- scripts/config -d JBD_DEBUG -- scripts/config -d JBD2_DEBUG -- scripts/config -e BLK_DEV_LOOP -- scripts/config -d BLK_DEV_CRYPTOLOOP -- scripts/config --set-val BLK_DEV_LOOP_MIN_COUNT 8 -- scripts/config -e IKCONFIG -- scripts/config -e IKCONFIG_PROC -- scripts/config -e SECCOMP -- scripts/config -d DEBUG_STACK_TRACE -- scripts/config -e NFSD -- scripts/config -e NFSD_V3 -- yes '' | make ARCH=arm oldconfig -build-commands: -- make $MAKEFLAGS ARCH=arm LOADADDR=0x80200000 zImage dtbs -install-commands: -- mkdir -p "$DESTDIR"/boot -- cp arch/arm/boot/zImage "$DESTDIR"/boot/zImage -- cp arch/arm/boot/dts/tegra124-pm375.dtb "$DESTDIR"/boot/. diff --git a/strata/bsp-jetson-genivi/bsp-support.morph b/strata/bsp-jetson-genivi/bsp-support.morph deleted file mode 100644 index 23524ac7..00000000 --- a/strata/bsp-jetson-genivi/bsp-support.morph +++ /dev/null @@ -1,6 +0,0 @@ -name: bsp-support -kind: chunk -install-commands: -- install -o 0 -g 0 -m 755 -D nv-ondemand-cpufreq-governor.service "$DESTDIR/usr/lib/systemd/system/nv-ondemand-cpufreq-governor.service" -- install -d "$DESTDIR/usr/lib/systemd/system/sysinit.target.wants" -- ln -s /usr/lib/systemd/system/nv-ondemand-cpufreq-governor.service "$DESTDIR/usr/lib/systemd/system/sysinit.target.wants/nv-ondemand-cpufreq-governor.service" diff --git a/strata/bsp-jetson-genivi/device-tree-compiler.morph b/strata/bsp-jetson-genivi/device-tree-compiler.morph deleted file mode 100644 index 8abfafc8..00000000 --- a/strata/bsp-jetson-genivi/device-tree-compiler.morph +++ /dev/null @@ -1,6 +0,0 @@ -name: device-tree-compiler -kind: chunk -build-commands: -- make all -install-commands: -- make install DESTDIR="$DESTDIR" PREFIX="$PREFIX" diff --git a/strata/bsp-jetson-genivi/u-boot.morph b/strata/bsp-jetson-genivi/u-boot.morph deleted file mode 100644 index 705b3851..00000000 --- a/strata/bsp-jetson-genivi/u-boot.morph +++ /dev/null @@ -1,16 +0,0 @@ -name: u-boot -kind: chunk -configure-commands: -- make ARCH=arm jetson-tk1_config -build-commands: -- make ARCH=arm CROSS_COMPILE=/usr/bin/ -- make ARCH=arm CROSS_COMPILE=/usr/bin/ tools -install-commands: -- mkdir -p "$DESTDIR$PREFIX/bin" -- mkdir -p "$DESTDIR/boot" -- install -m 755 u-boot-dtb-tegra.bin "$DESTDIR/boot/u-boot.bin" -- install -m 755 tools/img2brec.sh "$DESTDIR$PREFIX/bin/." -- install -m 755 tools/jtagconsole "$DESTDIR$PREFIX/bin/." -- install -m 755 tools/netconsole "$DESTDIR$PREFIX/bin/." -- install -m 755 tools/mkenvimage "$DESTDIR$PREFIX/bin/." -- install -m 755 tools/mkimage "$DESTDIR$PREFIX/bin/." diff --git a/strata/bsp-jetson-genivi.morph b/strata/bsp-jetson.morph index 62835b74..eda1d99b 100644 --- a/strata/bsp-jetson-genivi.morph +++ b/strata/bsp-jetson.morph @@ -1,7 +1,7 @@ -name: bsp-jetson-genivi +name: bsp-jetson kind: stratum description: | - Platform-specific chunks for NVIDIA Jetson TK1 GENIVI Baseline + Platform-specific chunks for NVIDIA Jetson TK1 Support for the Tegra platform is still being developed. A very recent kernel with some patches is currently required to get a fully @@ -13,35 +13,41 @@ build-depends: - morph: strata/core.morph chunks: - name: device-tree-compiler - morph: strata/bsp-jetson-genivi/device-tree-compiler.morph + morph: strata/bsp-jetson/device-tree-compiler.morph repo: upstream:device-tree-compiler ref: c92f284c3cf76d471eb27a271de3a51cb45ed058 unpetrify-ref: baserock/morph build-depends: [] - name: u-boot - morph: strata/bsp-jetson-genivi/u-boot.morph + morph: strata/bsp-jetson/u-boot.morph repo: upstream:u-boot ref: c77921345b943cdf5f2f28bbe88c6d8970620d2e unpetrify-ref: baserock/jetson/u-boot-tegra-next build-depends: - device-tree-compiler -- name: linux-jetson-tk1-genivi - morph: strata/bsp-jetson-genivi/linux-jetson-tk1-genivi.morph +- name: linux-jetson-tk1 + morph: strata/bsp-jetson/linux-jetson-tk1.morph repo: upstream:linux - ref: 8da6ad2e1c6366ebb2d9a72aeaf4a42dc32c8623 - unpetrify-ref: baserock/jetson/3.17.0-rc5 + ref: 8c885b20c4c9115d29dca4e5afd66228c51c5f69 + unpetrify-ref: baserock/jetson/linux-tegra-3.18-rc3 build-depends: - u-boot - name: bsp-support - morph: strata/bsp-jetson-genivi/bsp-support.morph + morph: strata/bsp-jetson/bsp-support.morph repo: baserock:baserock/bsp-support ref: 19bc31ce3198a3c19cdd96d392bde34cb34ed525 unpetrify-ref: baserock/arm/tegra-3.10 build-depends: [] - name: nouveau-drm - morph: strata/bsp-jetson-genivi/nouveau-drm.morph + morph: strata/bsp-jetson/nouveau-drm.morph repo: upstream:nouveau - ref: 62d1f5d2f5b3e5122eeac0f763dcdd1d04bf5c45 - unpetrify-ref: baserock/jetson/3.17-rc5 + ref: 4d0929aa231a0c2d2b66fa1f8ea1c8fa4d872501 + unpetrify-ref: baserock/jetson/gk20a build-depends: - - linux-jetson-tk1-genivi + - linux-jetson-tk1 +- name: linux-firmware-jetson + morph: strata/bsp-jetson/linux-firmware-jetson.morph + repo: upstream:linux-firmware + ref: 9322ef5b14c78ec28163baa41bff240a0e098810 + unpetrify-ref: baserock/jetson + build-depends: [] diff --git a/strata/bsp-jetson-devel/bsp-support.morph b/strata/bsp-jetson/bsp-support.morph index 23524ac7..23524ac7 100644 --- a/strata/bsp-jetson-devel/bsp-support.morph +++ b/strata/bsp-jetson/bsp-support.morph diff --git a/strata/bsp-jetson-devel/device-tree-compiler.morph b/strata/bsp-jetson/device-tree-compiler.morph index 8abfafc8..8abfafc8 100644 --- a/strata/bsp-jetson-devel/device-tree-compiler.morph +++ b/strata/bsp-jetson/device-tree-compiler.morph diff --git a/strata/bsp-jetson/linux-firmware-jetson.morph b/strata/bsp-jetson/linux-firmware-jetson.morph new file mode 100644 index 00000000..c803eab2 --- /dev/null +++ b/strata/bsp-jetson/linux-firmware-jetson.morph @@ -0,0 +1,6 @@ +name: linux-firmware-jetson +kind: chunk +install-commands: +- install -d "$DESTDIR/lib/firmware/nvidia/tegra124" +- install -m644 nvidia/tegra124/gk20a_ctxsw.bin "$DESTDIR/lib/firmware/nvidia/tegra124" +- install -m644 nvidia/tegra124/xusb.bin "$DESTDIR/lib/firmware/nvidia/tegra124" diff --git a/strata/bsp-jetson-genivi/linux-jetson-tk1-genivi.morph b/strata/bsp-jetson/linux-jetson-tk1.morph index e1c99473..42c16f01 100644 --- a/strata/bsp-jetson-genivi/linux-jetson-tk1-genivi.morph +++ b/strata/bsp-jetson/linux-jetson-tk1.morph @@ -1,4 +1,4 @@ -name: linux-jetson-tk1-genivi +name: linux-jetson-tk1 kind: chunk configure-commands: - make ARCH=arm tegra_defconfig @@ -46,6 +46,8 @@ configure-commands: - scripts/config -e NFSD_V3 - scripts/config -e DRM_TEGRA_STAGING - scripts/config -m DRM_NOUVEAU +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make ARCH=arm oldconfig build-commands: - make $MAKEFLAGS ARCH=arm LOADADDR=0x80200000 zImage dtbs diff --git a/strata/bsp-jetson-genivi/nouveau-drm.morph b/strata/bsp-jetson/nouveau-drm.morph index e297a069..e297a069 100644 --- a/strata/bsp-jetson-genivi/nouveau-drm.morph +++ b/strata/bsp-jetson/nouveau-drm.morph diff --git a/strata/bsp-jetson-devel/u-boot.morph b/strata/bsp-jetson/u-boot.morph index 705b3851..705b3851 100644 --- a/strata/bsp-jetson-devel/u-boot.morph +++ b/strata/bsp-jetson/u-boot.morph diff --git a/strata/bsp-wandboard/linux-armv7-wandboard.morph b/strata/bsp-wandboard/linux-armv7-wandboard.morph index 16929c9d..15317978 100644 --- a/strata/bsp-wandboard/linux-armv7-wandboard.morph +++ b/strata/bsp-wandboard/linux-armv7-wandboard.morph @@ -44,6 +44,8 @@ configure-commands: - scripts/config -d DEBUG_STACK_TRACE - scripts/config -e NFSD - scripts/config -e NFSD_V3 +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make oldconfig build-commands: - make $MAKEFLAGS ARCH=arm LOADADDR=0x10800000 uImage dtbs diff --git a/strata/bsp-x86_32-generic/linux-x86-32-generic.morph b/strata/bsp-x86_32-generic/linux-x86-32-generic.morph index 10bac0cd..593d9a65 100644 --- a/strata/bsp-x86_32-generic/linux-x86-32-generic.morph +++ b/strata/bsp-x86_32-generic/linux-x86-32-generic.morph @@ -78,6 +78,8 @@ configure-commands: - scripts/config -e FB_VESA - scripts/config -e HOTPLUG_PCI - scripts/config -e HOTPLUG_PCI_ACPI +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make oldconfig build-commands: - make $MAKEFLAGS diff --git a/strata/bsp-x86_64-generic/linux-x86-64-generic.morph b/strata/bsp-x86_64-generic/linux-x86-64-generic.morph index 4b18b537..fe0721cc 100644 --- a/strata/bsp-x86_64-generic/linux-x86-64-generic.morph +++ b/strata/bsp-x86_64-generic/linux-x86-64-generic.morph @@ -78,6 +78,8 @@ configure-commands: - scripts/config -e FB_VESA - scripts/config -e HOTPLUG_PCI - scripts/config -e HOTPLUG_PCI_ACPI +- scripts/config -e VLAN_8021Q +- scripts/config -e BRIDGE_VLAN_FILTERING - yes '' | make oldconfig build-commands: - make $MAKEFLAGS diff --git a/strata/build-essential.morph b/strata/build-essential.morph index 38bd60d8..d7b86648 100644 --- a/strata/build-essential.morph +++ b/strata/build-essential.morph @@ -261,7 +261,7 @@ chunks: - name: busybox morph: strata/build-essential/busybox.morph repo: upstream:busybox - ref: 8a801e0f024f1385d8e989b80b90443546bceae7 + ref: 772a98fec669cf881d7c1ea17631bc8560bccf5c unpetrify-ref: baserock/build-essential build-depends: - stage2-binutils diff --git a/strata/build-essential/busybox.morph b/strata/build-essential/busybox.morph index b0bb46f5..35f57357 100644 --- a/strata/build-essential/busybox.morph +++ b/strata/build-essential/busybox.morph @@ -57,12 +57,6 @@ configure-commands: build-commands: - make -- | - for fin in systemd-units/*.in - do - f=$(echo "$fin" | sed 's/\.in$//') - sed -e 's|@rootprefix@||g' "$fin" >"$f"; - done install-commands: - | @@ -70,41 +64,8 @@ install-commands: make CONFIG_PREFIX="$DESTDIR$PREFIX" install && chmod 6755 "$DESTDIR$PREFIX"/bin/busybox -- mkdir -p "$DESTDIR/var/spool/cron/crontabs" - -# Install systemd units -- mkdir -p "$DESTDIR/lib/systemd/system/multi-user.target.wants" -- | - for f in systemd-units/*.service; do - install -m 644 "$f" "$DESTDIR/lib/systemd/system"; - done -- | - for f in $(cd systemd-units; ls *.service | grep -v -F "@"); do - ln -s "../$f" "$DESTDIR/lib/systemd/system/multi-user.target.wants/"; - done - -# Install custom udev rule to run ifup for every network device detected -- mkdir -p "$DESTDIR/lib/udev/rules.d" -- for f in udev-rules/100-baserock.rules; do - install -m 644 "$f" "$DESTDIR/lib/udev/rules.d"; - done - -# Set up DHCP -- mkdir -p "$DESTDIR$PREFIX"/share/udhcpc -- cp examples/udhcp/simple.script "$DESTDIR$PREFIX"/share/udhcpc/default.script - -# Set up NTP -- install scripts/run-ntpd-with-config "$DESTDIR$PREFIX"/sbin/. -- install -d "$DESTDIR/etc" -- | - cat << EOF > "$DESTDIR/etc/ntpd.conf" - server 0.pool.ntp.org - server 1.pool.ntp.org - server 2.pool.ntp.org - server 3.pool.ntp.org - EOF - # Set up man environment variables +- mkdir -p "$DESTDIR"/etc - | cat << EOF > "$DESTDIR/etc/profile" # Set default pager to less diff --git a/strata/core.morph b/strata/core.morph index e6ca9663..0a8122fd 100644 --- a/strata/core.morph +++ b/strata/core.morph @@ -105,8 +105,8 @@ chunks: - name: openssl-new morph: strata/core/openssl-new.morph repo: upstream:openssl-new - ref: ed9938171f80c7534f6eb52f75c2538bca462807 - unpetrify-ref: baserock/OpenSSL_1_0_1g + ref: 872e681c00a713e840ebed77a4e05fa0e181f16f + unpetrify-ref: OpenSSL_1_0_1j build-depends: - perl - name: bzip2 diff --git a/strata/foundation.morph b/strata/foundation.morph index a652fbd6..efe8fcd5 100644 --- a/strata/foundation.morph +++ b/strata/foundation.morph @@ -19,8 +19,8 @@ chunks: - name: kmod morph: strata/foundation/kmod.morph repo: upstream:kmod - ref: 7f3b215d4e848afa74aea20a4c64f0cc1ef30eb4 - unpetrify-ref: baserock/morph + ref: ae58de0fcb4a6528dd365e23d383bbe2eaf2d566 + unpetrify-ref: v18 build-depends: [] - name: libcap2 morph: strata/foundation/libcap2.morph @@ -69,16 +69,26 @@ chunks: unpetrify-ref: baserock/genivi/dbus-1.8.8 build-depends: - glib +- name: libgpg-error + repo: upstream:libgpg-error + ref: a498812d767c59ae2b75b0c985f5280b139e7dc4 + build-depends: [] +- name: libgcrypt + repo: upstream:libgcrypt + ref: 412eed473b557ed2172d81d76fa1e1f53c973a67 + build-depends: + - libgpg-error - name: systemd morph: strata/foundation/systemd.morph repo: upstream:systemd - ref: a77af3ec96015b2382ea31020d0a14b482d10a76 - unpetrify-ref: baserock/morph + ref: 941a643569dc6b53d0b334276d2a3cc0ed159e88 + unpetrify-ref: v217 build-depends: - dbus-pre - gobject-introspection - kmod - libcap2 + - libgcrypt - pciutils - usbutils - name: lzo diff --git a/strata/foundation/systemd.morph b/strata/foundation/systemd.morph index 2a1933d7..1ee23cb8 100644 --- a/strata/foundation/systemd.morph +++ b/strata/foundation/systemd.morph @@ -6,16 +6,23 @@ configure-commands: - sh autogen.sh - ./configure --prefix="$PREFIX" --enable-xz --disable-manpages --sysconfdir=/etc --localstatedir=/var --libdir="$PREFIX/lib" --libexecdir="$PREFIX/libexec" --with-rootprefix= - --with-rootlibdir=/lib --with-firmware-path=/lib/firmware/updates:/lib/firmware + --with-rootlibdir=/lib install-commands: - make DESTDIR="$DESTDIR" install - mkdir -p "$DESTDIR"/sbin - ln -s /lib/systemd/systemd "$DESTDIR"/sbin/init - for f in telinit runlevel shutdown poweroff reboot halt; do ln -s /bin/systemctl "$DESTDIR/sbin/$f"; done -- rm -f "$DESTDIR/etc/udev/rules.d/80-net-name-slot.rules" -- touch "$DESTDIR/etc/udev/rules.d/80-net-name-slot.rules" - sed -e 's|@sushell@|/bin/sh|g' units/debug-shell.service.in >"$DESTDIR/etc/systemd/system/debug-shell.service" - sed -r -e '/Options=/s/,?strictatime//' "$DESTDIR/lib/systemd/system/tmp.mount" >"$DESTDIR/etc/systemd/system/tmp.mount" - touch "$DESTDIR/etc/machine-id" +post-install-commands: +- | + cat > "$DESTDIR/etc/systemd/network/10-dhcp.network" << "EOF" + [Match] + Name=en* + + [Network] + DHCP=yes + EOF diff --git a/strata/genivi.morph b/strata/genivi.morph index 1ba464c6..24050b4c 100644 --- a/strata/genivi.morph +++ b/strata/genivi.morph @@ -18,8 +18,8 @@ chunks: - name: node-startup-controller morph: strata/genivi/node-startup-controller.morph repo: upstream:node-startup-controller - ref: c78fddaddc24a2c49f5ef18896c93403575295ae - unpetrify-ref: baserock/morph + ref: b77fb1dbb280ec45525853e52a362eafd736b400 + unpetrify-ref: baserock/systemd_v216 build-depends: - DLT-daemon - name: googletest @@ -37,13 +37,13 @@ chunks: - googletest - name: genivi-common-api-runtime repo: upstream:genivi-common-api-runtime - ref: 8a62115bad2c0615fdf40f4e54a41454ae6e4698 + ref: 188abb5e24d6a2a7fdd7e5d150439a162621292c unpetrify-ref: 2.1.6 build-depends: [] - name: genivi-common-api-dbus-runtime repo: upstream:genivi-common-api-dbus-runtime - ref: 53d9341444ff9a31b9cc551b10fd0b341207937b - unpetrify-ref: 2.1.6 + ref: 3372155b32a2cf3b05e1a2a13f6f8413069de33f + unpetrify-ref: 2.1.6-p1 build-depends: - genivi-common-api-runtime - name: audiomanager @@ -71,8 +71,8 @@ chunks: - itzam-tarball - name: node-state-manager repo: upstream:node-state-manager - ref: dd4a86b9459537d2e85489b36abf80f34d12f098 - unpetrify-ref: baserock/genivi/baseline + ref: 30add4659e002f1df205cc36f71ef3141c10c1fb + unpetrify-ref: baserock/systemd_v216 build-depends: - DLT-daemon - persistence-client-library diff --git a/strata/lorry.morph b/strata/lorry.morph new file mode 100644 index 00000000..158071cc --- /dev/null +++ b/strata/lorry.morph @@ -0,0 +1,129 @@ +name: lorry +kind: stratum +description: | + Lorry and tools for working with version control systems other than Git. + + Lorry is a tool for creating and maintaining Git mirrors of source code + repositories, which aims to support most version control systems in use + by software projects that are used Baserock systems. + + The commandline tools 'hg', 'bzr', 'svn', and 'cvs' are also made available + by this stratum. +build-depends: +# The 'morph-utils' stratum is required for 'cliapp', which Lorry needs at +# build-time to generate its man page. Otherwise we could simply depend on +# the 'foundation' stratum. +- morph: strata/morph-utils.morph +chunks: +- name: bzr-tarball + repo: upstream:bzr-tarball + ref: e61c7edb4789abcd0f73c30fe719fa6fea478a52 + unpetrify-ref: baserock/morph + build-depends: [] +- name: python-fastimport + repo: upstream:python-fastimport + ref: 6500a5e7d82651ade9002d44e3ecc71a50302616 + unpetrify-ref: baserock/morph + build-depends: [] +- name: bzr-fastimport + repo: upstream:bzr-fastimport + ref: b3cda9967f857127bd4dab5eb72223a95916f5ea + unpetrify-ref: baserock/morph + build-depends: + - bzr-tarball + - python-fastimport +- name: cvs-tarball + morph: strata/lorry/cvs-tarball.morph + repo: upstream:cvs-tarball + ref: ca4cd317a75ef4349563b5a9a734561beb4a4f98 + unpetrify-ref: baserock/morph + build-depends: [] +- name: libapr-tarball + repo: upstream:libapr-tarball + ref: dea1efeb7f60fc6848e1e72b3fc973d0057565db + unpetrify-ref: baserock/morph + build-depends: [] +- name: libapr-util-tarball + morph: strata/lorry/libapr-util-tarball.morph + repo: upstream:libapr-util-tarball + ref: daba269ee5a262cc23621b3ee37ed368d2a2b69b + unpetrify-ref: baserock/morph + build-depends: + - libapr-tarball +- name: perl-dbi-tarball + morph: strata/lorry/perl-dbi-tarball.morph + repo: upstream:perl-dbi-tarball + ref: 09e269cff811f0c1881ea0d6b7571173bab8377b + unpetrify-ref: baserock/morph + build-depends: [] +- name: perl-dbd-sqlite-tarball + repo: upstream:perl-dbd-sqlite-tarball + ref: 485b97be9f2f2abf5a40923b5fd85f75714a8c02 + unpetrify-ref: baserock/morph + build-depends: + - perl-dbi-tarball +- name: libserf-tarball + repo: upstream:libserf-tarball + ref: 6f61a1acd01dc2ad1d2f5c1f7458702c77c69f9c + unpetrify-ref: baserock/morph + build-depends: + - libapr-tarball + - libapr-util-tarball +- name: swig-tarball + morph: strata/lorry/swig-tarball.morph + repo: upstream:swig-tarball + ref: 1f6cb46b6a4b3ebf9352fa10198b0b286f84138b + unpetrify-ref: baserock/morph + build-depends: [] +- name: neon + morph: strata/lorry/neon.morph + repo: upstream:neon + ref: 837374e9d797e216f1de684595cefe791f67c0e4 + unpetrify-ref: baserock/morph + build-depends: [] +- name: subversion-tarball + morph: strata/lorry/subversion-tarball.morph + repo: upstream:subversion-tarball + ref: 351e074672d9aa6446d5829938b697a3d6b23266 + unpetrify-ref: baserock/morph + build-depends: + - swig-tarball + - libapr-tarball + - libapr-util-tarball + - libserf-tarball + - neon +- name: mercurial-tarball + morph: strata/lorry/mercurial-tarball.morph + repo: upstream:mercurial-tarball + ref: 4b0aa73b8c69bd5b7521337809f7bc4714209a5a + unpetrify-ref: baserock/morph + build-depends: [] +- name: hg-fast-export + morph: strata/lorry/hg-fast-export.morph + repo: upstream:hg-fast-export + ref: 09a472aa58da0417a11a22bae172785f7cb2e80f + unpetrify-ref: baserock/morph + build-depends: + - mercurial-tarball +- name: cvsps + morph: strata/lorry/cvsps.morph + repo: upstream:cvsps + ref: 71c6d1f5668f405a7b259a0aac0d423f6c9b4d49 + unpetrify-ref: baserock/morph + build-depends: [] +- name: lorry + morph: strata/lorry/lorry.morph + repo: baserock:baserock/lorry + ref: 9fe25bf02dceec04f0ffd6a05cc47146ceab9904 + unpetrify-ref: master + build-depends: + - bzr-tarball + - python-fastimport + - bzr-fastimport + - perl-dbi-tarball + - perl-dbd-sqlite-tarball + - cvs-tarball + - cvsps + - subversion-tarball + - mercurial-tarball + - hg-fast-export diff --git a/strata/trove/cvs-tarball.morph b/strata/lorry/cvs-tarball.morph index e8322017..e8322017 100644 --- a/strata/trove/cvs-tarball.morph +++ b/strata/lorry/cvs-tarball.morph diff --git a/strata/trove/cvsps.morph b/strata/lorry/cvsps.morph index ff53784e..ff53784e 100644 --- a/strata/trove/cvsps.morph +++ b/strata/lorry/cvsps.morph diff --git a/strata/trove/hg-fast-export.morph b/strata/lorry/hg-fast-export.morph index ef99a97a..ef99a97a 100644 --- a/strata/trove/hg-fast-export.morph +++ b/strata/lorry/hg-fast-export.morph diff --git a/strata/trove/libapr-util-tarball.morph b/strata/lorry/libapr-util-tarball.morph index e34e3610..e34e3610 100644 --- a/strata/trove/libapr-util-tarball.morph +++ b/strata/lorry/libapr-util-tarball.morph diff --git a/strata/trove/lorry.morph b/strata/lorry/lorry.morph index 6b8cb355..6b8cb355 100644 --- a/strata/trove/lorry.morph +++ b/strata/lorry/lorry.morph diff --git a/strata/trove/mercurial-tarball.morph b/strata/lorry/mercurial-tarball.morph index 03264f56..03264f56 100644 --- a/strata/trove/mercurial-tarball.morph +++ b/strata/lorry/mercurial-tarball.morph diff --git a/strata/trove/neon.morph b/strata/lorry/neon.morph index 19f8e83f..19f8e83f 100644 --- a/strata/trove/neon.morph +++ b/strata/lorry/neon.morph diff --git a/strata/trove/perl-dbi-tarball.morph b/strata/lorry/perl-dbi-tarball.morph index 9eb3a537..9eb3a537 100644 --- a/strata/trove/perl-dbi-tarball.morph +++ b/strata/lorry/perl-dbi-tarball.morph diff --git a/strata/trove/subversion-tarball.morph b/strata/lorry/subversion-tarball.morph index cb416d53..cb416d53 100644 --- a/strata/trove/subversion-tarball.morph +++ b/strata/lorry/subversion-tarball.morph diff --git a/strata/trove/swig-tarball.morph b/strata/lorry/swig-tarball.morph index 61f154a4..61f154a4 100644 --- a/strata/trove/swig-tarball.morph +++ b/strata/lorry/swig-tarball.morph diff --git a/strata/mesa-common.morph b/strata/mesa-common.morph index 290ff0c2..efae2449 100644 --- a/strata/mesa-common.morph +++ b/strata/mesa-common.morph @@ -8,6 +8,6 @@ chunks: - name: mesa morph: strata/mesa-common/mesa.morph repo: upstream:mesa - ref: 3b6a4758fa8958db4b76e6d7efccc93b12b1da06 - unpetrify-ref: mesa-10.3.2 + ref: 1a9cc5f50db5d27530a3449743b43aac389d781f + unpetrify-ref: mesa-10.3.3 build-depends: [] diff --git a/strata/mesa-common/mesa.morph b/strata/mesa-common/mesa.morph index f946390f..4194acc2 100644 --- a/strata/mesa-common/mesa.morph +++ b/strata/mesa-common/mesa.morph @@ -8,7 +8,6 @@ configure-commands: armv7lhf) DRIDRIVERS=no GALLIUMDRIVERS=nouveau,freedreno,svga,swrast,vc4 - EXTRAARGS="--enable-gallium-egl" ;; *) DRIDRIVERS=yes @@ -21,4 +20,4 @@ configure-commands: --with-egl-platforms=drm,wayland \ --with-gallium-drivers="$GALLIUMDRIVERS" \ --with-dri-drivers="$DRIDRIVERS" \ - $EXTRAARGS + --enable-gallium-egl diff --git a/strata/morph-utils.morph b/strata/morph-utils.morph index 81496d8d..54292eb0 100644 --- a/strata/morph-utils.morph +++ b/strata/morph-utils.morph @@ -71,7 +71,7 @@ chunks: build-depends: [] - name: morph repo: baserock:baserock/morph - ref: 384dc8d2eb9222746085f0274c625eb163eda88a + ref: 9b0b5206a25c1d874d6e17952c4385838e57563e unpetrify-ref: master build-depends: - cliapp diff --git a/strata/multimedia.morph b/strata/multimedia.morph index b0d82984..6acab0f7 100644 --- a/strata/multimedia.morph +++ b/strata/multimedia.morph @@ -6,33 +6,33 @@ build-depends: chunks: - name: orc repo: upstream:orc - ref: ec132ae118bead13312f126a1f6e5709a2429ff6 - unpetrify-ref: orc-0.4.19 + ref: 16e053b8f2359196fd50b111f1c10b93590f5cb9 + unpetrify-ref: orc-0.4.22 build-depends: [] - name: gstreamer repo: upstream:gstreamer - ref: 0217fba607637860a475d0b5d48a3d4b249ca360 - unpetrify-ref: baserock/morph/1.2 + ref: b9b3440e323c7b32a8c3a9d52c7bf1a229850558 + unpetrify-ref: baserock/1.4 build-depends: - orc - name: gstreamer-plugins-base repo: upstream:gstreamer-plugins-base - ref: 1263caa96fcc1e3d2963bc27acbcf88b5b17d5dd - unpetrify-ref: baserock/morph/1.2 + ref: 3b38ad94a2d58c07c24e4647e08afa1fe4dd7d46 + unpetrify-ref: baserock/1.4 build-depends: - gstreamer - name: gstreamer-plugins-good repo: upstream:gstreamer-plugins-good - ref: b7e3af91197812e41028016d2e75ad2d6530b9b3 - unpetrify-ref: baserock/morph/1.2 + ref: 9d48c2f7a7b63fd967de7eec72434bc876c02667 + unpetrify-ref: baserock/1.4 build-depends: - gstreamer - gstreamer-plugins-base - orc - name: gstreamer-plugins-bad repo: upstream:gstreamer-plugins-bad - ref: 343470e7fd1e7a6bb95b953d25b2caf5425d0185 - unpetrify-ref: baserock/morph/1.2 + ref: bb2a4669ff57af90c8101c54744d3228aa060475 + unpetrify-ref: baserock/1.4 build-depends: - gstreamer - gstreamer-plugins-base diff --git a/strata/trove.morph b/strata/trove.morph index d0773314..133e67fd 100644 --- a/strata/trove.morph +++ b/strata/trove.morph @@ -69,118 +69,6 @@ chunks: ref: acbf4a15e260c711094455dbef7c024f2553fd32 unpetrify-ref: baserock/morph build-depends: [] -- name: bzr-tarball - repo: upstream:bzr-tarball - ref: e61c7edb4789abcd0f73c30fe719fa6fea478a52 - unpetrify-ref: baserock/morph - build-depends: [] -- name: python-fastimport - repo: upstream:python-fastimport - ref: 6500a5e7d82651ade9002d44e3ecc71a50302616 - unpetrify-ref: baserock/morph - build-depends: [] -- name: bzr-fastimport - repo: upstream:bzr-fastimport - ref: b3cda9967f857127bd4dab5eb72223a95916f5ea - unpetrify-ref: baserock/morph - build-depends: - - bzr-tarball - - python-fastimport -- name: cvs-tarball - morph: strata/trove/cvs-tarball.morph - repo: upstream:cvs-tarball - ref: ca4cd317a75ef4349563b5a9a734561beb4a4f98 - unpetrify-ref: baserock/morph - build-depends: [] -- name: libapr-tarball - repo: upstream:libapr-tarball - ref: dea1efeb7f60fc6848e1e72b3fc973d0057565db - unpetrify-ref: baserock/morph - build-depends: [] -- name: libapr-util-tarball - morph: strata/trove/libapr-util-tarball.morph - repo: upstream:libapr-util-tarball - ref: daba269ee5a262cc23621b3ee37ed368d2a2b69b - unpetrify-ref: baserock/morph - build-depends: - - libapr-tarball -- name: perl-dbi-tarball - morph: strata/trove/perl-dbi-tarball.morph - repo: upstream:perl-dbi-tarball - ref: 09e269cff811f0c1881ea0d6b7571173bab8377b - unpetrify-ref: baserock/morph - build-depends: [] -- name: perl-dbd-sqlite-tarball - repo: upstream:perl-dbd-sqlite-tarball - ref: 485b97be9f2f2abf5a40923b5fd85f75714a8c02 - unpetrify-ref: baserock/morph - build-depends: - - perl-dbi-tarball -- name: libserf-tarball - repo: upstream:libserf-tarball - ref: 6f61a1acd01dc2ad1d2f5c1f7458702c77c69f9c - unpetrify-ref: baserock/morph - build-depends: - - libapr-tarball - - libapr-util-tarball -- name: swig-tarball - morph: strata/trove/swig-tarball.morph - repo: upstream:swig-tarball - ref: 1f6cb46b6a4b3ebf9352fa10198b0b286f84138b - unpetrify-ref: baserock/morph - build-depends: [] -- name: neon - morph: strata/trove/neon.morph - repo: upstream:neon - ref: 837374e9d797e216f1de684595cefe791f67c0e4 - unpetrify-ref: baserock/morph - build-depends: [] -- name: subversion-tarball - morph: strata/trove/subversion-tarball.morph - repo: upstream:subversion-tarball - ref: 351e074672d9aa6446d5829938b697a3d6b23266 - unpetrify-ref: baserock/morph - build-depends: - - swig-tarball - - libapr-tarball - - libapr-util-tarball - - libserf-tarball - - neon -- name: mercurial-tarball - morph: strata/trove/mercurial-tarball.morph - repo: upstream:mercurial-tarball - ref: 4b0aa73b8c69bd5b7521337809f7bc4714209a5a - unpetrify-ref: baserock/morph - build-depends: [] -- name: hg-fast-export - morph: strata/trove/hg-fast-export.morph - repo: upstream:hg-fast-export - ref: 09a472aa58da0417a11a22bae172785f7cb2e80f - unpetrify-ref: baserock/morph - build-depends: - - mercurial-tarball -- name: cvsps - morph: strata/trove/cvsps.morph - repo: upstream:cvsps - ref: 71c6d1f5668f405a7b259a0aac0d423f6c9b4d49 - unpetrify-ref: baserock/morph - build-depends: [] -- name: lorry - morph: strata/trove/lorry.morph - repo: baserock:baserock/lorry - ref: 9fe25bf02dceec04f0ffd6a05cc47146ceab9904 - unpetrify-ref: master - build-depends: - - bzr-tarball - - python-fastimport - - bzr-fastimport - - perl-dbi-tarball - - perl-dbd-sqlite-tarball - - cvs-tarball - - cvsps - - subversion-tarball - - mercurial-tarball - - hg-fast-export - name: trove-setup morph: strata/trove/trove-setup.morph repo: baserock:baserock/trove-setup @@ -190,7 +78,7 @@ chunks: - name: lorry-controller morph: strata/trove/lorry-controller.morph repo: baserock:baserock/lorry-controller - ref: d7ca3f2f14ad28437f7332ca387a790fecb8b081 + ref: 689174532cc4920d2ef96bcebeb8a1adaf985804 unpetrify-ref: master build-depends: [] - name: lua-scrypt diff --git a/strata/webtools.morph b/strata/webtools.morph index fd893ae6..8df32e9c 100644 --- a/strata/webtools.morph +++ b/strata/webtools.morph @@ -19,8 +19,8 @@ chunks: - name: tar morph: strata/webtools/tar.morph repo: upstream:tar - ref: 0492b656656ca7973b126b8c117804d80952de48 - unpetrify-ref: baserock/morph + ref: 9a58d148c26c220cb1b163c71e7a51a2e41f6b37 + unpetrify-ref: baserock/release_1_28 build-depends: [] - name: pip repo: upstream:pip.git diff --git a/strata/webtools/tar.morph b/strata/webtools/tar.morph index 2253e3b7..9219abeb 100644 --- a/strata/webtools/tar.morph +++ b/strata/webtools/tar.morph @@ -3,7 +3,7 @@ kind: chunk configure-commands: - bash bootstrap --skip-po - FORCE_UNSAFE_CONFIGURE=1 ./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/sbin - --disable-nls + --disable-nls --disable-gcc-warnings build-commands: - make install-commands: diff --git a/strata/weston-genivi.morph b/strata/weston-genivi.morph index c676d636..d47d0ac4 100644 --- a/strata/weston-genivi.morph +++ b/strata/weston-genivi.morph @@ -15,13 +15,14 @@ chunks: - name: weston morph: strata/weston-genivi/weston.morph repo: upstream:weston - ref: 5d9e9c1393c6b0ea6ce52912fc458c963e644547 - unpetrify-ref: baserock/genivi/1.2.0 + ref: 5d7a71cb941ed419ec042ea28be56c87ea407db6 + unpetrify-ref: baserock/genivi/1.3.0 build-depends: - linux-pam - name: wayland-ivi-extension + morph: strata/weston-genivi/wayland-ivi-extension.morph repo: upstream:genivi/wayland-ivi-extension - ref: 633ce4f89f695c575bdfc080551b0e59c8287427 - unpetrify-ref: baserock/genivi/1.2.0 + ref: 43fa65ede93cef9e6c902df2248229ad204b510a + unpetrify-ref: master build-depends: - weston diff --git a/strata/weston-genivi/wayland-ivi-extension.morph b/strata/weston-genivi/wayland-ivi-extension.morph new file mode 100644 index 00000000..bceb2a88 --- /dev/null +++ b/strata/weston-genivi/wayland-ivi-extension.morph @@ -0,0 +1,8 @@ +name: wayland-ivi-extension +kind: chunk +configure-commands: +- cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_C_FLAGS="-I/usr/include/weston" +build-commands: +- make +install-commands: +- make install DESTDIR="$DESTDIR" diff --git a/strata/weston-genivi/weston.morph b/strata/weston-genivi/weston.morph index 892adfb4..810ce5e9 100644 --- a/strata/weston-genivi/weston.morph +++ b/strata/weston-genivi/weston.morph @@ -6,7 +6,7 @@ configure-commands: - autoreconf -ivf - | LDFLAGS='-L/lib64 -lrt' \ - ./configure --prefix=$PREFIX --with-cairo-glesv2 --disable-xwayland \ + ./configure --prefix=$PREFIX --disable-xwayland \ --disable-x11-compositor \ --disable-wayland-compositor --enable-egl \ --enable-clients --enable-demo-clients-install --enable-fbdev-compositor diff --git a/systems/base-system-armv7-highbank.morph b/systems/base-system-armv7-highbank.morph index 4efd3981..47c69bad 100644 --- a/systems/base-system-armv7-highbank.morph +++ b/systems/base-system-armv7-highbank.morph @@ -15,6 +15,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/base-system-armv7-versatile.morph b/systems/base-system-armv7-versatile.morph index 2c3634b5..e5b9d7f5 100644 --- a/systems/base-system-armv7-versatile.morph +++ b/systems/base-system-armv7-versatile.morph @@ -15,6 +15,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/base-system-armv7b-highbank.morph b/systems/base-system-armv7b-highbank.morph index 2218af6f..169d490e 100644 --- a/systems/base-system-armv7b-highbank.morph +++ b/systems/base-system-armv7b-highbank.morph @@ -15,6 +15,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/base-system-armv7b-vexpress-tc2.morph b/systems/base-system-armv7b-vexpress-tc2.morph index 83b437a1..76d5c006 100644 --- a/systems/base-system-armv7b-vexpress-tc2.morph +++ b/systems/base-system-armv7b-vexpress-tc2.morph @@ -14,6 +14,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/base-system-armv7lhf-highbank.morph b/systems/base-system-armv7lhf-highbank.morph index f5ced471..b889278d 100644 --- a/systems/base-system-armv7lhf-highbank.morph +++ b/systems/base-system-armv7lhf-highbank.morph @@ -15,6 +15,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/base-system-ppc64-generic.morph b/systems/base-system-ppc64-generic.morph index 85bc50b4..488bf5e4 100644 --- a/systems/base-system-ppc64-generic.morph +++ b/systems/base-system-ppc64-generic.morph @@ -15,6 +15,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/base-system-x86_32-generic.morph b/systems/base-system-x86_32-generic.morph index f82d1667..40e62cad 100644 --- a/systems/base-system-x86_32-generic.morph +++ b/systems/base-system-x86_32-generic.morph @@ -16,7 +16,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - cloud-init diff --git a/systems/base-system-x86_64-generic.morph b/systems/base-system-x86_64-generic.morph index 1bcafc2a..a3346a44 100644 --- a/systems/base-system-x86_64-generic.morph +++ b/systems/base-system-x86_64-generic.morph @@ -17,7 +17,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - cloud-init diff --git a/systems/build-system-armv7lhf-highbank.morph b/systems/build-system-armv7lhf-highbank.morph index 43e701b5..8b92f267 100644 --- a/systems/build-system-armv7lhf-highbank.morph +++ b/systems/build-system-armv7lhf-highbank.morph @@ -21,10 +21,11 @@ strata: morph: strata/ansible.morph - name: cloudinit-support morph: strata/cloudinit-support.morph +- name: openstack-clients + morph: strata/openstack-clients.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - distbuild diff --git a/systems/build-system-armv7lhf-jetson.morph b/systems/build-system-armv7lhf-jetson.morph index db0b36e9..d28b94df 100644 --- a/systems/build-system-armv7lhf-jetson.morph +++ b/systems/build-system-armv7lhf-jetson.morph @@ -9,8 +9,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: bsp-jetson-devel - morph: strata/bsp-jetson-devel.morph +- name: bsp-jetson + morph: strata/bsp-jetson.morph - name: tools morph: strata/tools.morph - name: morph-utils @@ -21,10 +21,11 @@ strata: morph: strata/ansible.morph - name: cloudinit-support morph: strata/cloudinit-support.morph +- name: openstack-clients + morph: strata/openstack-clients.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - distbuild diff --git a/systems/build-system-ppc64.morph b/systems/build-system-ppc64.morph index a317c696..14762a6e 100644 --- a/systems/build-system-ppc64.morph +++ b/systems/build-system-ppc64.morph @@ -21,10 +21,11 @@ strata: morph: strata/ansible.morph - name: cloudinit-support morph: strata/cloudinit-support.morph +- name: openstack-clients + morph: strata/openstack-clients.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - distbuild diff --git a/systems/build-system-x86_32-chroot.morph b/systems/build-system-x86_32-chroot.morph index 776fa4ab..089a26c8 100644 --- a/systems/build-system-x86_32-chroot.morph +++ b/systems/build-system-x86_32-chroot.morph @@ -19,10 +19,11 @@ strata: morph: strata/ansible.morph - name: cloudinit-support morph: strata/cloudinit-support.morph +- name: openstack-clients + morph: strata/openstack-clients.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - distbuild diff --git a/systems/build-system-x86_32.morph b/systems/build-system-x86_32.morph index e336d2ec..35a86e11 100644 --- a/systems/build-system-x86_32.morph +++ b/systems/build-system-x86_32.morph @@ -21,10 +21,11 @@ strata: morph: strata/ansible.morph - name: cloudinit-support morph: strata/cloudinit-support.morph +- name: openstack-clients + morph: strata/openstack-clients.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - distbuild diff --git a/systems/build-system-x86_64-chroot.morph b/systems/build-system-x86_64-chroot.morph index 4cc66226..db3a38db 100644 --- a/systems/build-system-x86_64-chroot.morph +++ b/systems/build-system-x86_64-chroot.morph @@ -19,10 +19,11 @@ strata: morph: strata/ansible.morph - name: cloudinit-support morph: strata/cloudinit-support.morph +- name: openstack-clients + morph: strata/openstack-clients.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - distbuild diff --git a/systems/build-system-x86_64.morph b/systems/build-system-x86_64.morph index 6db657a1..06868fed 100644 --- a/systems/build-system-x86_64.morph +++ b/systems/build-system-x86_64.morph @@ -21,10 +21,11 @@ strata: morph: strata/ansible.morph - name: cloudinit-support morph: strata/cloudinit-support.morph +- name: openstack-clients + morph: strata/openstack-clients.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - distbuild diff --git a/systems/ceph-service-x86_64-generic.morph b/systems/ceph-service-x86_64-generic.morph index 182cf0cd..9c0cfb4e 100644 --- a/systems/ceph-service-x86_64-generic.morph +++ b/systems/ceph-service-x86_64-generic.morph @@ -19,7 +19,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - ceph diff --git a/systems/cxmanage-system-x86_64-generic.morph b/systems/cxmanage-system-x86_64-generic.morph index 4d731ea3..d75fbd14 100644 --- a/systems/cxmanage-system-x86_64-generic.morph +++ b/systems/cxmanage-system-x86_64-generic.morph @@ -18,7 +18,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - fstab diff --git a/systems/devel-system-armv7-chroot.morph b/systems/devel-system-armv7-chroot.morph index 265f63fa..40c07312 100644 --- a/systems/devel-system-armv7-chroot.morph +++ b/systems/devel-system-armv7-chroot.morph @@ -23,9 +23,12 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7-highbank.morph b/systems/devel-system-armv7-highbank.morph index 919c800e..f34d3978 100644 --- a/systems/devel-system-armv7-highbank.morph +++ b/systems/devel-system-armv7-highbank.morph @@ -24,9 +24,14 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7-versatile.morph b/systems/devel-system-armv7-versatile.morph index 984e0b78..7ad8cac8 100644 --- a/systems/devel-system-armv7-versatile.morph +++ b/systems/devel-system-armv7-versatile.morph @@ -24,9 +24,14 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7-wandboard.morph b/systems/devel-system-armv7-wandboard.morph index 5bc5e449..6abba894 100644 --- a/systems/devel-system-armv7-wandboard.morph +++ b/systems/devel-system-armv7-wandboard.morph @@ -24,9 +24,14 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7b-chroot.morph b/systems/devel-system-armv7b-chroot.morph index c74e52b3..ad3a145c 100644 --- a/systems/devel-system-armv7b-chroot.morph +++ b/systems/devel-system-armv7b-chroot.morph @@ -19,9 +19,10 @@ strata: morph: strata/morph-utils.morph - name: openstack-clients morph: strata/openstack-clients.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7b-highbank.morph b/systems/devel-system-armv7b-highbank.morph index 0ffcd0c6..6804c7fb 100644 --- a/systems/devel-system-armv7b-highbank.morph +++ b/systems/devel-system-armv7b-highbank.morph @@ -20,9 +20,12 @@ strata: morph: strata/morph-utils.morph - name: openstack-clients morph: strata/openstack-clients.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7lhf-chroot.morph b/systems/devel-system-armv7lhf-chroot.morph index 4d106fba..5e04376c 100644 --- a/systems/devel-system-armv7lhf-chroot.morph +++ b/systems/devel-system-armv7lhf-chroot.morph @@ -23,9 +23,12 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7lhf-highbank.morph b/systems/devel-system-armv7lhf-highbank.morph index 5fbae184..25328020 100644 --- a/systems/devel-system-armv7lhf-highbank.morph +++ b/systems/devel-system-armv7lhf-highbank.morph @@ -25,9 +25,14 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7lhf-jetson.morph b/systems/devel-system-armv7lhf-jetson.morph index 7892056d..1ee4581b 100644 --- a/systems/devel-system-armv7lhf-jetson.morph +++ b/systems/devel-system-armv7lhf-jetson.morph @@ -19,15 +19,20 @@ strata: morph: strata/morph-utils.morph - name: openstack-clients morph: strata/openstack-clients.morph -- name: bsp-jetson-devel - morph: strata/bsp-jetson-devel.morph +- name: nfs + morph: strata/nfs.morph +- name: bsp-jetson + morph: strata/bsp-jetson.morph - name: nodejs morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-armv7lhf-wandboard.morph b/systems/devel-system-armv7lhf-wandboard.morph index fb52e2ea..92674a2a 100644 --- a/systems/devel-system-armv7lhf-wandboard.morph +++ b/systems/devel-system-armv7lhf-wandboard.morph @@ -25,9 +25,14 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-ppc64-chroot.morph b/systems/devel-system-ppc64-chroot.morph index b74f164c..ddfd1f20 100644 --- a/systems/devel-system-ppc64-chroot.morph +++ b/systems/devel-system-ppc64-chroot.morph @@ -21,9 +21,12 @@ strata: morph: strata/openstack-clients.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-ppc64-generic.morph b/systems/devel-system-ppc64-generic.morph index 326ea8d4..8aeaf266 100644 --- a/systems/devel-system-ppc64-generic.morph +++ b/systems/devel-system-ppc64-generic.morph @@ -22,9 +22,14 @@ strata: morph: strata/openstack-clients.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-x86_32-chroot.morph b/systems/devel-system-x86_32-chroot.morph index cf3d6ad1..a54eef52 100644 --- a/systems/devel-system-x86_32-chroot.morph +++ b/systems/devel-system-x86_32-chroot.morph @@ -25,9 +25,12 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-x86_32-generic.morph b/systems/devel-system-x86_32-generic.morph index c8bb4e92..ef5d4b90 100644 --- a/systems/devel-system-x86_32-generic.morph +++ b/systems/devel-system-x86_32-generic.morph @@ -26,10 +26,15 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - cloud-init diff --git a/systems/devel-system-x86_64-chroot.morph b/systems/devel-system-x86_64-chroot.morph index c2da5e1a..84d63f5d 100644 --- a/systems/devel-system-x86_64-chroot.morph +++ b/systems/devel-system-x86_64-chroot.morph @@ -25,9 +25,12 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/devel-system-x86_64-generic.morph b/systems/devel-system-x86_64-generic.morph index dcc39efb..9334fca0 100644 --- a/systems/devel-system-x86_64-generic.morph +++ b/systems/devel-system-x86_64-generic.morph @@ -26,6 +26,12 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph +- name: nfs + morph: strata/nfs.morph configuration-extensions: - set-hostname - add-config-files diff --git a/systems/devel-system-x86_64-vagrant.morph b/systems/devel-system-x86_64-vagrant.morph index 85bbe90c..f2f849ca 100644 --- a/systems/devel-system-x86_64-vagrant.morph +++ b/systems/devel-system-x86_64-vagrant.morph @@ -26,10 +26,13 @@ strata: morph: strata/nodejs.morph - name: ruby morph: strata/ruby.morph +- name: lorry + morph: strata/lorry.morph +- name: baserock-import + morph: strata/baserock-import.morph configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - vagrant diff --git a/systems/distbuild-system-x86_64-openstack.morph b/systems/distbuild-system-x86_64-openstack.morph deleted file mode 100644 index 483d8b99..00000000 --- a/systems/distbuild-system-x86_64-openstack.morph +++ /dev/null @@ -1,35 +0,0 @@ -name: distbuild-system-x86_64 -kind: system -description: Morph distributed build node for x86_64 -arch: x86_64 -strata: -- name: build-essential - morph: strata/build-essential.morph -- name: core - morph: strata/core.morph -- name: foundation - morph: strata/foundation.morph -- name: bsp-x86_64-generic - morph: strata/bsp-x86_64-generic.morph -- name: tools - morph: strata/tools.morph -- name: morph-utils - morph: strata/morph-utils.morph -- name: nfs - morph: strata/nfs.morph -- name: ansible - morph: strata/ansible.morph -- name: cloudinit-support - morph: strata/cloudinit-support.morph -- name: openstack-clients - morph: strata/openstack-clients.morph -configuration-extensions: -- set-hostname -- add-config-files -- simple-network -- nfsboot -- install-files -- distbuild -- fstab -- mason -- cloud-init diff --git a/systems/genivi-baseline-system-armv7lhf-jetson.morph b/systems/genivi-baseline-system-armv7lhf-jetson.morph index 39f05b4f..5cbfddbe 100644 --- a/systems/genivi-baseline-system-armv7lhf-jetson.morph +++ b/systems/genivi-baseline-system-armv7lhf-jetson.morph @@ -9,8 +9,8 @@ strata: morph: strata/core.morph - name: foundation morph: strata/foundation.morph -- name: bsp-jetson-genivi - morph: strata/bsp-jetson-genivi.morph +- name: bsp-jetson + morph: strata/bsp-jetson.morph - name: connectivity morph: strata/connectivity.morph - name: connman-common @@ -36,7 +36,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - strip-gplv3 diff --git a/systems/genivi-baseline-system-armv7lhf-versatile.morph b/systems/genivi-baseline-system-armv7lhf-versatile.morph index ccc1419d..a5f07750 100644 --- a/systems/genivi-baseline-system-armv7lhf-versatile.morph +++ b/systems/genivi-baseline-system-armv7lhf-versatile.morph @@ -34,7 +34,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - strip-gplv3 diff --git a/systems/genivi-baseline-system-x86_64-generic.morph b/systems/genivi-baseline-system-x86_64-generic.morph index 883c0efe..f5fb571e 100644 --- a/systems/genivi-baseline-system-x86_64-generic.morph +++ b/systems/genivi-baseline-system-x86_64-generic.morph @@ -38,7 +38,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - strip-gplv3 diff --git a/systems/gerrit-x86_64.morph b/systems/gerrit-x86_64.morph index 0dbca14e..91d4c701 100644 --- a/systems/gerrit-x86_64.morph +++ b/systems/gerrit-x86_64.morph @@ -26,7 +26,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - cloud-init diff --git a/systems/gitlab-ci-runner.morph b/systems/gitlab-ci-runner.morph index f7398793..9eabc403 100644 --- a/systems/gitlab-ci-runner.morph +++ b/systems/gitlab-ci-runner.morph @@ -44,6 +44,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/gitlab-server.morph b/systems/gitlab-server.morph index a9c9bbd3..83093ac1 100644 --- a/systems/gitlab-server.morph +++ b/systems/gitlab-server.morph @@ -28,7 +28,6 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files - gitlab diff --git a/systems/nodejs-system-x86_64.morph b/systems/nodejs-system-x86_64.morph index b34d6626..2692e2fc 100644 --- a/systems/nodejs-system-x86_64.morph +++ b/systems/nodejs-system-x86_64.morph @@ -17,6 +17,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/qt4-devel-system-x86_64-generic.morph b/systems/qt4-devel-system-x86_64-generic.morph index 0b4e4638..9a23bdeb 100644 --- a/systems/qt4-devel-system-x86_64-generic.morph +++ b/systems/qt4-devel-system-x86_64-generic.morph @@ -37,6 +37,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/qt5-devel-system-x86_64-generic.morph b/systems/qt5-devel-system-x86_64-generic.morph index 7171c0ca..6cb9377b 100644 --- a/systems/qt5-devel-system-x86_64-generic.morph +++ b/systems/qt5-devel-system-x86_64-generic.morph @@ -37,6 +37,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/trove-system-x86_64.morph b/systems/trove-system-x86_64.morph index d603f531..e305c723 100644 --- a/systems/trove-system-x86_64.morph +++ b/systems/trove-system-x86_64.morph @@ -17,6 +17,8 @@ strata: morph: strata/morph-utils.morph - name: pcre-utils morph: strata/pcre-utils.morph +- name: lorry + morph: strata/lorry.morph - name: trove morph: strata/trove.morph - name: lighttpd-server @@ -32,6 +34,5 @@ configuration-extensions: - trove - nfsboot-server - fstab -- simple-network - install-files - cloud-init diff --git a/systems/web-system-x86_64-generic.morph b/systems/web-system-x86_64-generic.morph index e916cffc..22aa88c0 100644 --- a/systems/web-system-x86_64-generic.morph +++ b/systems/web-system-x86_64-generic.morph @@ -32,6 +32,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files diff --git a/systems/xfce-system.morph b/systems/xfce-system.morph index 1a2f8a97..152bf16b 100644 --- a/systems/xfce-system.morph +++ b/systems/xfce-system.morph @@ -36,6 +36,5 @@ strata: configuration-extensions: - set-hostname - add-config-files -- simple-network - nfsboot - install-files |