summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clusters/jetson-upgrade.morph8
-rw-r--r--clusters/release.morph12
-rw-r--r--clusters/upgrade-devel.morph2
-rwxr-xr-xnfsboot-server.configure28
-rwxr-xr-xpxeboot.check69
-rwxr-xr-xpxeboot.write679
-rw-r--r--pxeboot.write.help123
-rw-r--r--strata/audio-bluetooth.morph4
-rw-r--r--strata/bsp-armv7-highbank/linux-armv7-highbank.morph2
-rw-r--r--strata/bsp-armv7-versatile/linux-armv7-versatile.morph2
-rw-r--r--strata/bsp-armv7b-highbank/linux-armv7b-highbank.morph2
-rw-r--r--strata/bsp-armv7b-vexpress-tc2/linux-armv7b-vexpress-tc2.morph2
-rw-r--r--strata/bsp-jetson-devel.morph39
-rw-r--r--strata/bsp-jetson-devel/linux-jetson-tk1.morph53
-rw-r--r--strata/bsp-jetson-genivi/bsp-support.morph6
-rw-r--r--strata/bsp-jetson-genivi/device-tree-compiler.morph6
-rw-r--r--strata/bsp-jetson-genivi/u-boot.morph16
-rw-r--r--strata/bsp-jetson.morph (renamed from strata/bsp-jetson-genivi.morph)32
-rw-r--r--strata/bsp-jetson/bsp-support.morph (renamed from strata/bsp-jetson-devel/bsp-support.morph)0
-rw-r--r--strata/bsp-jetson/device-tree-compiler.morph (renamed from strata/bsp-jetson-devel/device-tree-compiler.morph)0
-rw-r--r--strata/bsp-jetson/linux-firmware-jetson.morph6
-rw-r--r--strata/bsp-jetson/linux-jetson-tk1.morph (renamed from strata/bsp-jetson-genivi/linux-jetson-tk1-genivi.morph)4
-rw-r--r--strata/bsp-jetson/nouveau-drm.morph (renamed from strata/bsp-jetson-genivi/nouveau-drm.morph)0
-rw-r--r--strata/bsp-jetson/u-boot.morph (renamed from strata/bsp-jetson-devel/u-boot.morph)0
-rw-r--r--strata/bsp-wandboard/linux-armv7-wandboard.morph2
-rw-r--r--strata/bsp-x86_32-generic.morph2
-rw-r--r--strata/bsp-x86_32-generic/linux-x86-32-generic.morph2
-rw-r--r--strata/bsp-x86_64-generic.morph2
-rw-r--r--strata/bsp-x86_64-generic/linux-x86-64-generic.morph2
-rw-r--r--strata/bsp-x86_both-tools.morph2
-rw-r--r--strata/build-essential.morph104
-rw-r--r--strata/build-essential/busybox.morph41
-rw-r--r--strata/build-essential/eglibc.morph62
-rw-r--r--strata/build-essential/glibc.morph86
-rw-r--r--strata/build-essential/stage2-fake-bash.morph4
-rw-r--r--strata/build-essential/stage2-glibc.morph (renamed from strata/build-essential/stage2-eglibc.morph)25
-rw-r--r--strata/core.morph18
-rw-r--r--strata/core/bison.morph1
-rw-r--r--strata/core/patch.morph (renamed from strata/foundation/patch.morph)2
-rw-r--r--strata/coreutils-common.morph15
-rw-r--r--strata/coreutils-common/coreutils.morph9
-rw-r--r--strata/foundation.morph26
-rw-r--r--strata/foundation/systemd.morph13
-rw-r--r--strata/genivi.morph14
-rw-r--r--strata/lighttpd-server.morph13
-rw-r--r--strata/lighttpd-server/lighttpd.morph (renamed from strata/trove/lighttpd.morph)0
-rw-r--r--strata/mesa-common.morph4
-rw-r--r--strata/mesa-common/mesa.morph3
-rw-r--r--strata/morph-utils.morph2
-rw-r--r--strata/pcre-utils.morph10
-rw-r--r--strata/tools.morph6
-rw-r--r--strata/tools/coreutils.morph9
-rw-r--r--strata/trove.morph16
-rw-r--r--strata/webtools.morph13
-rw-r--r--strata/webtools/tar.morph2
-rw-r--r--strata/weston-genivi.morph13
-rw-r--r--strata/weston-genivi/wayland-ivi-extension.morph8
-rw-r--r--strata/weston-genivi/weston.morph2
-rw-r--r--systems/base-system-armv7-highbank.morph1
-rw-r--r--systems/base-system-armv7-versatile.morph1
-rw-r--r--systems/base-system-armv7b-highbank.morph1
-rw-r--r--systems/base-system-armv7b-vexpress-tc2.morph1
-rw-r--r--systems/base-system-armv7lhf-highbank.morph1
-rw-r--r--systems/base-system-ppc64-generic.morph1
-rw-r--r--systems/base-system-x86_32-generic.morph1
-rw-r--r--systems/base-system-x86_64-generic.morph1
-rw-r--r--systems/build-system-armv7lhf-highbank.morph1
-rw-r--r--systems/build-system-armv7lhf-jetson.morph5
-rw-r--r--systems/build-system-ppc64.morph1
-rw-r--r--systems/build-system-x86_32-chroot.morph1
-rw-r--r--systems/build-system-x86_32.morph1
-rw-r--r--systems/build-system-x86_64-chroot.morph1
-rw-r--r--systems/build-system-x86_64.morph1
-rw-r--r--systems/ceph-service-x86_64-generic.morph1
-rw-r--r--systems/cxmanage-system-x86_64-generic.morph1
-rw-r--r--systems/devel-system-armv7-chroot.morph1
-rw-r--r--systems/devel-system-armv7-highbank.morph3
-rw-r--r--systems/devel-system-armv7-versatile.morph3
-rw-r--r--systems/devel-system-armv7-wandboard.morph3
-rw-r--r--systems/devel-system-armv7b-chroot.morph1
-rw-r--r--systems/devel-system-armv7b-highbank.morph3
-rw-r--r--systems/devel-system-armv7lhf-chroot.morph1
-rw-r--r--systems/devel-system-armv7lhf-highbank.morph3
-rw-r--r--systems/devel-system-armv7lhf-jetson.morph7
-rw-r--r--systems/devel-system-armv7lhf-wandboard.morph3
-rw-r--r--systems/devel-system-ppc64-chroot.morph1
-rw-r--r--systems/devel-system-ppc64-generic.morph3
-rw-r--r--systems/devel-system-x86_32-chroot.morph1
-rw-r--r--systems/devel-system-x86_32-generic.morph3
-rw-r--r--systems/devel-system-x86_64-chroot.morph1
-rw-r--r--systems/devel-system-x86_64-generic.morph2
-rw-r--r--systems/devel-system-x86_64-vagrant.morph1
-rw-r--r--systems/distbuild-system-x86_64-openstack.morph1
-rw-r--r--systems/genivi-baseline-system-armv7lhf-jetson.morph5
-rw-r--r--systems/genivi-baseline-system-armv7lhf-versatile.morph1
-rw-r--r--systems/genivi-baseline-system-x86_64-generic.morph1
-rw-r--r--systems/gerrit-x86_64.morph1
-rw-r--r--systems/gitlab-ci-runner.morph3
-rw-r--r--systems/gitlab-server.morph3
-rw-r--r--systems/nodejs-system-x86_64.morph1
-rw-r--r--systems/qt4-devel-system-x86_64-generic.morph1
-rw-r--r--systems/qt5-devel-system-x86_64-generic.morph1
-rw-r--r--systems/trove-system-x86_64.morph5
-rw-r--r--systems/web-system-x86_64-generic.morph5
-rw-r--r--systems/xfce-system.morph1
105 files changed, 1270 insertions, 448 deletions
diff --git a/clusters/jetson-upgrade.morph b/clusters/jetson-upgrade.morph
index f44e597a..a73507aa 100644
--- a/clusters/jetson-upgrade.morph
+++ b/clusters/jetson-upgrade.morph
@@ -6,12 +6,12 @@ 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
- location: root@localhost
+ location: root@127.0.0.1
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/clusters/upgrade-devel.morph b/clusters/upgrade-devel.morph
index 3937521e..b7ce9bc0 100644
--- a/clusters/upgrade-devel.morph
+++ b/clusters/upgrade-devel.morph
@@ -36,4 +36,4 @@ systems:
deploy:
self:
type: ssh-rsync
- location: root@localhost
+ location: root@127.0.0.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/audio-bluetooth.morph b/strata/audio-bluetooth.morph
index a24158b6..003d451a 100644
--- a/strata/audio-bluetooth.morph
+++ b/strata/audio-bluetooth.morph
@@ -70,8 +70,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/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.morph b/strata/bsp-x86_32-generic.morph
index 303dd777..fa9dbf75 100644
--- a/strata/bsp-x86_32-generic.morph
+++ b/strata/bsp-x86_32-generic.morph
@@ -20,7 +20,7 @@ chunks:
- name: syslinux
morph: strata/bsp-x86_32-generic/syslinux.morph
repo: upstream:syslinux
- ref: 8821237240c5374d83298b2da5ad88fa1e3c1ef7
+ ref: 2f6d21d2a560cb5581694fef42ee9a350d5f302f
unpetrify-ref: baserock/morph
build-depends:
- nasm
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.morph b/strata/bsp-x86_64-generic.morph
index 81c99e42..8a7b9c9b 100644
--- a/strata/bsp-x86_64-generic.morph
+++ b/strata/bsp-x86_64-generic.morph
@@ -20,7 +20,7 @@ chunks:
- name: syslinux
morph: strata/bsp-x86_64-generic/syslinux.morph
repo: upstream:syslinux
- ref: 8821237240c5374d83298b2da5ad88fa1e3c1ef7
+ ref: 2f6d21d2a560cb5581694fef42ee9a350d5f302f
unpetrify-ref: baserock/morph
build-depends:
- nasm
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/bsp-x86_both-tools.morph b/strata/bsp-x86_both-tools.morph
index 4d6d29e4..c1ba501c 100644
--- a/strata/bsp-x86_both-tools.morph
+++ b/strata/bsp-x86_both-tools.morph
@@ -14,7 +14,7 @@ chunks:
- name: syslinux
morph: strata/bsp-x86_both-tools/syslinux.morph
repo: upstream:syslinux
- ref: 8821237240c5374d83298b2da5ad88fa1e3c1ef7
+ ref: 2f6d21d2a560cb5581694fef42ee9a350d5f302f
unpetrify-ref: baserock/morph
build-depends:
- nasm
diff --git a/strata/build-essential.morph b/strata/build-essential.morph
index 7886b610..d7b86648 100644
--- a/strata/build-essential.morph
+++ b/strata/build-essential.morph
@@ -36,7 +36,7 @@ products:
include:
- fhs-dirs-.*
- busybox-.*
- - eglibc-nss
+ - glibc-nss
chunks:
- name: stage1-binutils
morph: strata/build-essential/stage1-binutils.morph
@@ -49,7 +49,7 @@ chunks:
- name: stage1-gcc
morph: strata/build-essential/stage1-gcc.morph
repo: upstream:gcc-tarball
- ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ ref: 999c918a7ad32ad436395666def22ab90b3447fe
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
@@ -65,11 +65,11 @@ chunks:
- stage1-gcc
build-mode: bootstrap
prefix: /tools
-- name: stage2-eglibc
- morph: strata/build-essential/stage2-eglibc.morph
- repo: upstream:eglibc2
- ref: 43ee5d250ad47d2bee8ec17954efb7f22d2b804c
- unpetrify-ref: baserock/2.15-build-essential
+- name: stage2-glibc
+ morph: strata/build-essential/stage2-glibc.morph
+ repo: upstream:glibc
+ ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
+ unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage1-binutils
- stage1-gcc
@@ -84,41 +84,50 @@ chunks:
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-gcc-fixed-headers
morph: strata/build-essential/stage2-gcc-fixed-headers.morph
repo: upstream:gcc-tarball
- ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ ref: 999c918a7ad32ad436395666def22ab90b3447fe
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-gcc
morph: strata/build-essential/stage2-gcc.morph
repo: upstream:gcc-tarball
- ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ ref: 999c918a7ad32ad436395666def22ab90b3447fe
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
- stage2-gcc-fixed-headers
build-mode: bootstrap
prefix: /tools
- name: stage2-busybox
morph: strata/build-essential/stage2-busybox.morph
repo: upstream:busybox
- ref: eeb9014f28e3aa00673a0fad127e7420da4392db
+ ref: 8a801e0f024f1385d8e989b80b90443546bceae7
unpetrify-ref: baserock/build-essential
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
+ build-mode: bootstrap
+ prefix: /tools
+- name: stage2-fake-bash
+ morph: strata/build-essential/stage2-fake-bash.morph
+ repo: upstream:bash
+ ref: 3590145af6f1c9fa321dff231f69ae696e7e740b
+ unpetrify-ref: baserock/bash-4.3-patch-27
+ build-depends:
+ - stage2-busybox
build-mode: bootstrap
prefix: /tools
- name: stage2-fhs-dirs
@@ -137,7 +146,7 @@ chunks:
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-make
@@ -148,19 +157,19 @@ chunks:
build-depends:
- stage1-binutils
- stage1-gcc
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: stage2-reset-specs
morph: strata/build-essential/stage2-reset-specs.morph
- repo: upstream:eglibc2
- ref: 43ee5d250ad47d2bee8ec17954efb7f22d2b804c
- unpetrify-ref: baserock/2.15-build-essential
+ repo: upstream:glibc
+ ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
+ unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage1-binutils
- stage1-gcc
- stage2-linux-api-headers
- - stage2-eglibc
+ - stage2-glibc
build-mode: bootstrap
prefix: /tools
- name: fhs-dirs
@@ -171,7 +180,7 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
@@ -186,22 +195,23 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
-- name: eglibc
- morph: strata/build-essential/eglibc.morph
- repo: upstream:eglibc2
- ref: df0258044f321990eadd647e03095a48ad04c1a8
- unpetrify-ref: baserock/2.15-build-essential
+- name: glibc
+ morph: strata/build-essential/glibc.morph
+ repo: upstream:glibc
+ ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
+ unpetrify-ref: baserock/glibc-2.20
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-fake-bash
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
@@ -210,9 +220,9 @@ chunks:
- stage2-reset-specs
- linux-api-headers
artifacts:
- eglibc-gconv: build-essential-runtime
- eglibc-libs: build-essential-minimal
- eglibc-nss: build-essential-runtime
+ glibc-gconv: build-essential-runtime
+ glibc-libs: build-essential-minimal
+ glibc-nss: build-essential-runtime
- name: zlib
morph: strata/build-essential/zlib.morph
repo: upstream:zlib
@@ -221,14 +231,14 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
artifacts:
zlib-libs: build-essential-minimal
- name: binutils
@@ -239,31 +249,31 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- zlib
- name: busybox
morph: strata/build-essential/busybox.morph
repo: upstream:busybox
- ref: bf06394ab87ff22662084c82c1821847c25b7f21
+ ref: 772a98fec669cf881d7c1ea17631bc8560bccf5c
unpetrify-ref: baserock/build-essential
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- name: gawk
morph: strata/build-essential/gawk.morph
repo: upstream:gawk
@@ -272,30 +282,30 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- name: gcc
morph: strata/build-essential/gcc.morph
repo: upstream:gcc-tarball
- ref: b0254026149b13782eae26d38435a4c62a002cf0
+ ref: 5c08cea34d5562dc828b85c7c02519246823aaf0
unpetrify-ref: baserock/build-essential-4.7
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- zlib
artifacts:
gcc-libs: build-essential-minimal
@@ -307,14 +317,14 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- name: ccache
morph: strata/build-essential/ccache.morph
repo: upstream:ccache
@@ -323,12 +333,12 @@ chunks:
build-depends:
- stage2-binutils
- stage2-busybox
- - stage2-eglibc
+ - stage2-glibc
- stage2-fhs-dirs
- stage2-gawk
- stage2-gcc
- stage2-linux-api-headers
- stage2-make
- stage2-reset-specs
- - eglibc
+ - glibc
- zlib
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/build-essential/eglibc.morph b/strata/build-essential/eglibc.morph
deleted file mode 100644
index cc827ef9..00000000
--- a/strata/build-essential/eglibc.morph
+++ /dev/null
@@ -1,62 +0,0 @@
-name: eglibc
-kind: chunk
-products:
-- artifact: eglibc-nss
- include:
- - etc/nsswitch.conf
- - (usr/)?lib/libnss.*
-- artifact: eglibc-gconv
- include:
- - (usr/)?lib/gconv/.*
-- artifact: eglibc-libs
- include:
- - sbin/ldconfig
- - lib(32|64)?/ld-.*
- - (usr/)?lib(exec)?/pt_chown
-- artifact: eglibc-bins
- include:
- - (usr/)?s?bin/.*
- - (usr/)?libexec/getconf/.*
- - (usr/)?lib/libSegFault\.so(\.\d+)*$
-- artifact: eglibc-libs
- include:
- - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)*$
-- artifact: eglibc-devel
- include:
- - (usr/)?include/.*
- - (usr/)?lib(32|64)?/lib.*\.a
- - (usr/)?lib(32|64)?/lib.*\.la
- - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc
- - (usr/)?lib(32|64)?/.*\.o
-- artifact: eglibc-locale
- include:
- - (usr/)?share/locale/.*
- - (usr/)?share/i18n/.*
- - (usr/)?share/zoneinfo/.*
-- artifact: eglibc-misc
- include:
- - .*
-configure-commands:
-- mkdir o
-
-# Necessary for ARM port
-- cd libc && ln -s ../ports ports
-
-- |
- export CFLAGS="-O2 $CFLAGS"; cd o &&
- ../libc/configure \
- $(../morph-arch-config) \
- --prefix="$PREFIX" \
- --disable-profile \
- --enable-kernel=2.6.25 \
- --enable-add-ons=nptl,ports \
- --without-cvs \
- --without-selinux
-
-build-commands:
-- cd o && make localtime=UTC
-
-install-commands:
-- cd o && make install_root="$DESTDIR" localtime=UTC install
-- mkdir -p "$DESTDIR/etc"
-- install -m 644 -o root -g root nsswitch.conf "$DESTDIR/etc/nsswitch.conf"
diff --git a/strata/build-essential/glibc.morph b/strata/build-essential/glibc.morph
new file mode 100644
index 00000000..789283eb
--- /dev/null
+++ b/strata/build-essential/glibc.morph
@@ -0,0 +1,86 @@
+name: glibc
+kind: chunk
+products:
+- artifact: glibc-nss
+ include:
+ - etc/nsswitch.conf
+ - (usr/)?lib/libnss.*
+- artifact: glibc-gconv
+ include:
+ - (usr/)?lib/gconv/.*
+- artifact: glibc-libs
+ include:
+ - sbin/ldconfig
+ - lib(32|64)?/ld-.*
+ - (usr/)?lib(exec)?/pt_chown
+- artifact: glibc-bins
+ include:
+ - (usr/)?s?bin/.*
+ - (usr/)?libexec/getconf/.*
+ - (usr/)?lib/libSegFault\.so(\.\d+)*$
+- artifact: glibc-libs
+ include:
+ - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)*$
+- artifact: glibc-devel
+ include:
+ - (usr/)?include/.*
+ - (usr/)?lib(32|64)?/lib.*\.a
+ - (usr/)?lib(32|64)?/lib.*\.la
+ - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc
+ - (usr/)?lib(32|64)?/.*\.o
+- artifact: glibc-locale
+ include:
+ - (usr/)?share/locale/.*
+ - (usr/)?share/i18n/.*
+ - (usr/)?share/zoneinfo/.*
+- artifact: glibc-misc
+ include:
+ - .*
+configure-commands:
+- mkdir o
+
+- |
+ case "$MORPH_ARCH" in
+ armv7*)
+ ARCH_FLAGS="--without-fp" ;;
+ esac
+
+ # We override the PATH here to remove /tools/bin from it.
+ # Thanks to this glibc finds bash in /bin/bash through the /bin
+ # symlink. This is important because glibc changes the path to bash
+ # of the shebang in some scripts and these scripts will be broken if
+ # they point to bash in /tools/bin/bash.
+ export PATH="/usr/bin:/sbin:/bin";
+ export CFLAGS="-O2 $CFLAGS";
+ cd o && ../configure \
+ $ARCH_FLAGS \
+ --prefix="$PREFIX" \
+ --disable-profile \
+ --enable-kernel=2.6.25 \
+ --without-cvs \
+ --without-selinux \
+ --enable-obsolete-rpc
+
+build-commands:
+- cd o && make localtime=UTC
+
+install-commands:
+- cd o && make install_root="$DESTDIR" localtime=UTC install
+- mkdir -p "$DESTDIR/etc"
+- |
+ cat <<EOF > nsswitch.conf
+ passwd: compat
+ group: compat
+ shadow: compat
+
+ hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns mdns4
+ networks: files
+
+ protocols: db files
+ services: db files
+ ethers: db files
+ rpc: db files
+
+ netgroup: nis
+ EOF
+- install -m 644 -o root -g root nsswitch.conf "$DESTDIR/etc/nsswitch.conf"
diff --git a/strata/build-essential/stage2-fake-bash.morph b/strata/build-essential/stage2-fake-bash.morph
new file mode 100644
index 00000000..021fd366
--- /dev/null
+++ b/strata/build-essential/stage2-fake-bash.morph
@@ -0,0 +1,4 @@
+name: stage2-fake-bash
+kind: chunk
+install-commands:
+- printf '#!/bin/sh\nexec /bin/sh "$@"\n' | install -D /proc/self/fd/0 -m 755 "$DESTDIR$PREFIX/bin/bash"
diff --git a/strata/build-essential/stage2-eglibc.morph b/strata/build-essential/stage2-glibc.morph
index 3a7277ac..ffa0970b 100644
--- a/strata/build-essential/stage2-eglibc.morph
+++ b/strata/build-essential/stage2-glibc.morph
@@ -1,28 +1,29 @@
-name: stage2-eglibc
+name: stage2-glibc
kind: chunk
configure-commands:
- mkdir o
-# Necessary for ARM port
-- cd libc && ln -s ../ports ports
-
# Configure flag notes:
# 1. Avoid installing to PREFIX/lib64 on x86_64.
# 2. Location of linux-api-headers.
-# 3. Normal flags. See eglibc.morph.
+# 3. Normal flags. See glibc.morph.
# 4. Force configuration values of certain things that can't be detected
# in a cross-compile.
- |
+ case "$MORPH_ARCH" in
+ armv7*)
+ ARCH_FLAGS="--without-fp" ;;
+ esac
+
export CFLAGS="-O2 $CFLAGS"; export CXX=false; \
- cd o && ../libc/configure \
- $(../morph-arch-config) \
- --build=$(../libc/scripts/config.guess) --host=$TARGET_STAGE1 \
+ cd o && ../configure \
+ $ARCH_FLAGS \
+ --build=$(../scripts/config.guess) --host=$TARGET_STAGE1 \
--prefix="$PREFIX" \
`# [1]` --libdir="$PREFIX/lib" \
`# [2]` --with-headers="$(pwd)/../../$PREFIX/include" \
`# [3]` --disable-profile --enable-kernel=2.6.25 \
- --enable-add-ons=nptl,ports --without-cvs --without-selinux \
`# [4]` libc_cv_c_cleanup=yes libc_cv_ctors_header=yes \
libc_cv_forced_unwind=yes libc_cv_ssp=no
@@ -31,12 +32,12 @@ build-commands:
install-commands:
- cd o && make install_root="$DESTDIR" localtime=UTC install
-- sh stage2-eglibc-fix-specs
+- sh stage2-glibc-fix-specs
# Install a symlink for the program interpreter (ld.so) so that binaries
-# built in stage 3 before the stage 3 eglibc is built can use it.
+# built in stage 3 before the stage 3 glibc is built can use it.
# FIXME: get a better way of finding the name of the loader. The lib64
-# path is hardcoded into eglibc in the file
+# path is hardcoded into glibc in the file
# sysdeps/unix/sysv/linux/configure.
- install -d $DESTDIR/lib
- |
diff --git a/strata/core.morph b/strata/core.morph
index 5c90c964..140674f1 100644
--- a/strata/core.morph
+++ b/strata/core.morph
@@ -31,7 +31,7 @@ chunks:
- name: m4
morph: strata/core/m4.morph
repo: upstream:m4
- ref: d533342af991401d865de9b037ac03cdc9bd852e
+ ref: cfbd353f3a2dc517992bcdc747281a22feb0c4db
unpetrify-ref: baserock/build-essential
build-depends: []
- name: mini-utils
@@ -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
@@ -226,8 +226,8 @@ chunks:
- name: bison
morph: strata/core/bison.morph
repo: upstream:bison
- ref: 6729ad1c314b179225325dcc1bc684077a71f859
- unpetrify-ref: baserock/morph
+ ref: 2ab6d1daaccf32fc4314e4b2fe44da977f11a308
+ unpetrify-ref: baserock/v3.0.2
build-depends:
- autoconf
- automake
@@ -302,3 +302,11 @@ chunks:
- gettext
- libtool
- bison
+- name: patch
+ morph: strata/core/patch.morph
+ repo: upstream:patch
+ ref: 3bbb26c928a147cfcf0756f1cc0a1307e5cc663f
+ unpetrify-ref: baserock/v2.7.1
+ build-depends:
+ - bash
+ - shadow
diff --git a/strata/core/bison.morph b/strata/core/bison.morph
index d6b3b148..a9497d4e 100644
--- a/strata/core/bison.morph
+++ b/strata/core/bison.morph
@@ -1,6 +1,7 @@
name: bison
kind: chunk
configure-commands:
+- echo $(grep '* Noteworthy changes in release' NEWS | grep -v '?\\.?' | head -n1 | cut -d' ' -f6) > .tarball-version
- bash bootstrap --skip-po
- ./configure --prefix=/usr --disable-nls
build-commands:
diff --git a/strata/foundation/patch.morph b/strata/core/patch.morph
index 65e07e67..01d977c4 100644
--- a/strata/foundation/patch.morph
+++ b/strata/core/patch.morph
@@ -2,7 +2,7 @@ name: patch
kind: chunk
configure-commands:
- bash bootstrap --skip-po
-- ./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/sbin --disable-nls
+- ./configure --prefix="$PREFIX" --disable-nls
build-commands:
- make
install-commands:
diff --git a/strata/coreutils-common.morph b/strata/coreutils-common.morph
new file mode 100644
index 00000000..9c5c38fe
--- /dev/null
+++ b/strata/coreutils-common.morph
@@ -0,0 +1,15 @@
+name: coreutils-common
+kind: stratum
+description: |
+ We need to split this so we can build stuff using coreutils but we can not
+ having it in the final systems (for example in genivi ones that do not
+ accept GPLv3 code)
+build-depends:
+- morph: strata/core.morph
+chunks:
+- name: coreutils
+ morph: strata/coreutils-common/coreutils.morph
+ repo: upstream:coreutils
+ ref: 9df9643842e4b4d8ece710fe6105f32fa38a0d22
+ unpetrify-ref: baserock/8.23
+ build-depends: []
diff --git a/strata/coreutils-common/coreutils.morph b/strata/coreutils-common/coreutils.morph
new file mode 100644
index 00000000..479e9925
--- /dev/null
+++ b/strata/coreutils-common/coreutils.morph
@@ -0,0 +1,9 @@
+name: coreutils
+kind: chunk
+build-system: autotools
+configure-commands:
+- sed -i -e '/^buildreq="/,/^"/{/rsync/d}' bootstrap.conf
+- bash bootstrap --skip-po
+- FORCE_UNSAFE_CONFIGURE=1 ./configure --prefix="$PREFIX" --disable-nls
+install-commands:
+- make INSTALL_PROGRAM=install DESTDIR="$DESTDIR" install
diff --git a/strata/foundation.morph b/strata/foundation.morph
index 0b2bd92e..efe8fcd5 100644
--- a/strata/foundation.morph
+++ b/strata/foundation.morph
@@ -2,7 +2,7 @@ name: foundation
kind: stratum
description: Basic userland runtime system
build-depends:
-- morph: strata/core.morph
+- morph: strata/coreutils-common.morph
chunks:
- name: attr
morph: strata/foundation/attr.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
@@ -121,12 +131,6 @@ chunks:
unpetrify-ref: baserock/morph
build-depends:
- groff
-- name: patch
- morph: strata/foundation/patch.morph
- repo: upstream:patch
- ref: 9a16dcb97aac1a26af4372d95bd62b84f3f1264a
- unpetrify-ref: baserock/morph
- build-depends: []
- name: tbdiff
morph: strata/foundation/tbdiff.morph
repo: baserock:baserock/tbdiff
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/lighttpd-server.morph b/strata/lighttpd-server.morph
new file mode 100644
index 00000000..cf3dec19
--- /dev/null
+++ b/strata/lighttpd-server.morph
@@ -0,0 +1,13 @@
+name: lighttpd-server
+kind: stratum
+description: lighttpd web server
+build-depends:
+- morph: strata/tools.morph
+- morph: strata/pcre-utils.morph
+chunks:
+- name: lighttpd
+ morph: strata/lighttpd-server/lighttpd.morph
+ repo: upstream:lighttpd
+ ref: 12e4e21763da770034267ff0a7b660876930f789
+ unpetrify-ref: baserock/morph
+ build-depends: []
diff --git a/strata/trove/lighttpd.morph b/strata/lighttpd-server/lighttpd.morph
index ae371c52..ae371c52 100644
--- a/strata/trove/lighttpd.morph
+++ b/strata/lighttpd-server/lighttpd.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/pcre-utils.morph b/strata/pcre-utils.morph
new file mode 100644
index 00000000..44d0bab2
--- /dev/null
+++ b/strata/pcre-utils.morph
@@ -0,0 +1,10 @@
+name: pcre-utils
+kind: stratum
+build-depends:
+- morph: strata/tools.morph
+chunks:
+- name: pcre
+ repo: upstream:pcre
+ ref: 2720152c58e13e7cc7403642ec33127101b9971b
+ unpetrify-ref: baserock/morph
+ build-depends: []
diff --git a/strata/tools.morph b/strata/tools.morph
index 333b173f..a09c24f5 100644
--- a/strata/tools.morph
+++ b/strata/tools.morph
@@ -4,12 +4,6 @@ description: Extra development tools included in the devel system
build-depends:
- morph: strata/foundation.morph
chunks:
-- name: coreutils
- morph: strata/tools/coreutils.morph
- repo: upstream:coreutils
- ref: 9df9643842e4b4d8ece710fe6105f32fa38a0d22
- unpetrify-ref: baserock/8.23
- build-depends: []
- name: distcc
morph: strata/tools/distcc.morph
repo: upstream:distcc
diff --git a/strata/tools/coreutils.morph b/strata/tools/coreutils.morph
deleted file mode 100644
index 820a4eed..00000000
--- a/strata/tools/coreutils.morph
+++ /dev/null
@@ -1,9 +0,0 @@
-name: coreutils
-kind: chunk
-build-system: autotools
-configure-commands:
-- sed -i -e '/^buildreq="/,/^"/{/rsync/d}' bootstrap.conf
-- bash bootstrap --skip-po
-- FORCE_UNSAFE_CONFIGURE=1 ./configure --prefix="$PREFIX" --disable-nls --enable-no-install-program='[,base64,basename,cat,chcon,chgrp,chmod,chown,chroot,cksum,comm,cp,csplit,cut,date,dd,df,dir,dircolors,dirname,du,echo,env,expand,expr,false,fold,ginstall,groups,head,hostid,id,kill,ln,logname,ls,md5sum,mkdir,mkfifo,mknod,mktemp,mv,nice,nohup,od,printenv,printf,pwd,readlink,realpath,rm,rmdir,seq,sha1sum,sha224sum,sha256sum,sha384sum,sha512sum,sleep,sort,split,stat,stty,sum,sync,tac,tail,tee,test,timeout,touch,tr,true,tty,uname,unexpand,uniq,unlink,uptime,users,wc,who,whoami,yes'
-install-commands:
-- make INSTALL_PROGRAM=install DESTDIR="$DESTDIR" install
diff --git a/strata/trove.morph b/strata/trove.morph
index 08fd9f89..3b285372 100644
--- a/strata/trove.morph
+++ b/strata/trove.morph
@@ -4,6 +4,7 @@ description: Trove software
build-depends:
- morph: strata/tools.morph
- morph: strata/morph-utils.morph
+- morph: strata/pcre-utils.morph
chunks:
- name: lua
morph: strata/trove/lua.morph
@@ -48,18 +49,12 @@ chunks:
build-depends:
- lua
- luxio
-- name: pcre
- repo: upstream:pcre
- ref: 2720152c58e13e7cc7403642ec33127101b9971b
- unpetrify-ref: baserock/morph
- build-depends: []
- name: lrexlib-pcre
morph: strata/trove/lrexlib-pcre.morph
repo: upstream:lrexlib
ref: 0524a6e3ab6d50cba63c8642a875e246de53d651
unpetrify-ref: baserock/morph
build-depends:
- - pcre
- lua
- name: gitano
morph: strata/trove/gitano.morph
@@ -195,16 +190,9 @@ 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: lighttpd
- morph: strata/trove/lighttpd.morph
- repo: upstream:lighttpd
- ref: 12e4e21763da770034267ff0a7b660876930f789
- unpetrify-ref: baserock/morph
- build-depends:
- - pcre
- name: lua-scrypt
morph: strata/trove/lua-scrypt.morph
repo: upstream:lua-scrypt
diff --git a/strata/webtools.morph b/strata/webtools.morph
index da5e3338..8df32e9c 100644
--- a/strata/webtools.morph
+++ b/strata/webtools.morph
@@ -3,6 +3,7 @@ kind: stratum
description: pip, node and other fun things
build-depends:
- morph: strata/tools.morph
+- morph: strata/pcre-utils.morph
chunks:
- name: icu
morph: strata/webtools/icu.morph
@@ -18,23 +19,17 @@ 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
ref: d4b691b743a91500cf49119d28a805db8313f129
unpetrify-ref: master
build-depends: []
-- name: pcre
- repo: upstream:pcre
- ref: 2720152c58e13e7cc7403642ec33127101b9971b
- unpetrify-ref: baserock/morph
- build-depends: []
- name: nginx
morph: strata/webtools/nginx.morph
repo: upstream:nginx
ref: 37a582c9ea3e731c115e560d31b26f78535b8fca
unpetrify-ref: baserock/v1.7.0
- build-depends:
- - pcre
+ build-depends: []
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 dd4d5b9b..d47d0ac4 100644
--- a/strata/weston-genivi.morph
+++ b/strata/weston-genivi.morph
@@ -9,19 +9,20 @@ build-depends:
chunks:
- name: linux-pam
repo: upstream:linux-pam
- ref: 6e36ca00ed774a7c5b2f2322c96b023999b733a4
- unpetrify-ref: Linux-PAM-1.1.5
+ ref: b1521c97e73b10469f7b34c0571d51c647eca83c
+ unpetrify-ref: Linux-PAM-1.1.8
build-depends: []
- 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..e26c4003 100644
--- a/systems/build-system-armv7lhf-highbank.morph
+++ b/systems/build-system-armv7lhf-highbank.morph
@@ -24,7 +24,6 @@ strata:
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..f557722b 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
@@ -24,7 +24,6 @@ strata:
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..d1176135 100644
--- a/systems/build-system-ppc64.morph
+++ b/systems/build-system-ppc64.morph
@@ -24,7 +24,6 @@ strata:
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..c77d7e3f 100644
--- a/systems/build-system-x86_32-chroot.morph
+++ b/systems/build-system-x86_32-chroot.morph
@@ -22,7 +22,6 @@ strata:
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..697119c7 100644
--- a/systems/build-system-x86_32.morph
+++ b/systems/build-system-x86_32.morph
@@ -24,7 +24,6 @@ strata:
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..b24bd8f4 100644
--- a/systems/build-system-x86_64-chroot.morph
+++ b/systems/build-system-x86_64-chroot.morph
@@ -22,7 +22,6 @@ strata:
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..83a58ae1 100644
--- a/systems/build-system-x86_64.morph
+++ b/systems/build-system-x86_64.morph
@@ -24,7 +24,6 @@ strata:
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 abc2308c..9d4de4dd 100644
--- a/systems/devel-system-armv7-chroot.morph
+++ b/systems/devel-system-armv7-chroot.morph
@@ -28,6 +28,5 @@ strata:
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 1a6a0783..a408b557 100644
--- a/systems/devel-system-armv7-highbank.morph
+++ b/systems/devel-system-armv7-highbank.morph
@@ -26,9 +26,10 @@ strata:
morph: strata/ruby.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 c934e639..6e386a94 100644
--- a/systems/devel-system-armv7-versatile.morph
+++ b/systems/devel-system-armv7-versatile.morph
@@ -26,9 +26,10 @@ strata:
morph: strata/ruby.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 afb308c8..2797c00e 100644
--- a/systems/devel-system-armv7-wandboard.morph
+++ b/systems/devel-system-armv7-wandboard.morph
@@ -26,9 +26,10 @@ strata:
morph: strata/ruby.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 d1484f04..ad3a145c 100644
--- a/systems/devel-system-armv7b-chroot.morph
+++ b/systems/devel-system-armv7b-chroot.morph
@@ -24,6 +24,5 @@ strata:
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 1b46449b..6804c7fb 100644
--- a/systems/devel-system-armv7b-highbank.morph
+++ b/systems/devel-system-armv7b-highbank.morph
@@ -22,9 +22,10 @@ strata:
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 780e90a9..3cb93869 100644
--- a/systems/devel-system-armv7lhf-chroot.morph
+++ b/systems/devel-system-armv7lhf-chroot.morph
@@ -28,6 +28,5 @@ strata:
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 8bbab10e..d83c46a0 100644
--- a/systems/devel-system-armv7lhf-highbank.morph
+++ b/systems/devel-system-armv7lhf-highbank.morph
@@ -27,9 +27,10 @@ strata:
morph: strata/ruby.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 f3cbbdf7..736033d6 100644
--- a/systems/devel-system-armv7lhf-jetson.morph
+++ b/systems/devel-system-armv7lhf-jetson.morph
@@ -19,8 +19,10 @@ 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
@@ -30,6 +32,5 @@ strata:
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 75ec89ae..859f8ad5 100644
--- a/systems/devel-system-armv7lhf-wandboard.morph
+++ b/systems/devel-system-armv7lhf-wandboard.morph
@@ -27,9 +27,10 @@ strata:
morph: strata/ruby.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 ddceaad1..804cf606 100644
--- a/systems/devel-system-ppc64-chroot.morph
+++ b/systems/devel-system-ppc64-chroot.morph
@@ -26,6 +26,5 @@ strata:
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 d65388e8..6a9cb092 100644
--- a/systems/devel-system-ppc64-generic.morph
+++ b/systems/devel-system-ppc64-generic.morph
@@ -24,9 +24,10 @@ strata:
morph: strata/ruby.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 063e2684..4c882c22 100644
--- a/systems/devel-system-x86_32-chroot.morph
+++ b/systems/devel-system-x86_32-chroot.morph
@@ -30,6 +30,5 @@ strata:
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 6bfaafbf..d6fb17ec 100644
--- a/systems/devel-system-x86_32-generic.morph
+++ b/systems/devel-system-x86_32-generic.morph
@@ -28,10 +28,11 @@ strata:
morph: strata/ruby.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 202fccc5..65a53072 100644
--- a/systems/devel-system-x86_64-chroot.morph
+++ b/systems/devel-system-x86_64-chroot.morph
@@ -30,6 +30,5 @@ strata:
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 3bedbd68..5a16c90b 100644
--- a/systems/devel-system-x86_64-generic.morph
+++ b/systems/devel-system-x86_64-generic.morph
@@ -28,6 +28,8 @@ strata:
morph: strata/ruby.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 1bee92ca..413c5b54 100644
--- a/systems/devel-system-x86_64-vagrant.morph
+++ b/systems/devel-system-x86_64-vagrant.morph
@@ -31,7 +31,6 @@ strata:
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
index 483d8b99..aab6b08f 100644
--- a/systems/distbuild-system-x86_64-openstack.morph
+++ b/systems/distbuild-system-x86_64-openstack.morph
@@ -26,7 +26,6 @@ strata:
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
- distbuild
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 919b3647..9eabc403 100644
--- a/systems/gitlab-ci-runner.morph
+++ b/systems/gitlab-ci-runner.morph
@@ -33,6 +33,8 @@ strata:
morph: strata/openstack-clients.morph
- name: databases
morph: strata/databases.morph
+- name: pcre-utils
+ morph: strata/pcre-utils.morph
- name: webtools
morph: strata/webtools.morph
- name: ruby
@@ -42,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 c78abe1c..83093ac1 100644
--- a/systems/gitlab-server.morph
+++ b/systems/gitlab-server.morph
@@ -17,6 +17,8 @@ strata:
morph: strata/nfs.morph
- name: databases
morph: strata/databases.morph
+- name: pcre-utils
+ morph: strata/pcre-utils.morph
- name: webtools
morph: strata/webtools.morph
- name: ruby
@@ -26,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 297c9fb2..b4f2c537 100644
--- a/systems/trove-system-x86_64.morph
+++ b/systems/trove-system-x86_64.morph
@@ -15,8 +15,12 @@ strata:
morph: strata/tools.morph
- name: morph-utils
morph: strata/morph-utils.morph
+- name: pcre-utils
+ morph: strata/pcre-utils.morph
- name: trove
morph: strata/trove.morph
+- name: lighttpd-server
+ morph: strata/lighttpd-server.morph
- name: nfs
morph: strata/nfs.morph
- name: ansible
@@ -28,6 +32,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 1e6eba80..22aa88c0 100644
--- a/systems/web-system-x86_64-generic.morph
+++ b/systems/web-system-x86_64-generic.morph
@@ -17,6 +17,10 @@ strata:
morph: strata/nfs.morph
- name: databases
morph: strata/databases.morph
+- name: pcre-utils
+ morph: strata/pcre-utils.morph
+- name: lighttpd-server
+ morph: strata/lighttpd-server.morph
- name: webtools
morph: strata/webtools.morph
- name: erlang
@@ -28,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