summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clusters/ci.morph35
-rw-r--r--clusters/example-distbuild-cluster.morph2
-rw-r--r--clusters/installer-build-system-x86_64.morph46
-rw-r--r--clusters/jetson-upgrade.morph8
-rw-r--r--clusters/mason-openstack.morph39
-rw-r--r--clusters/mason.morph2
-rw-r--r--clusters/release.morph43
-rw-r--r--clusters/upgrade-devel.morph2
-rw-r--r--clusters/weston-system-x86_64-generic-deploy.morph12
-rw-r--r--distbuild.configure19
-rwxr-xr-xinstaller.configure48
-rw-r--r--mason.configure49
-rw-r--r--mason/ansible/mason-setup.yml27
-rwxr-xr-xmason/mason-generator.sh2
-rw-r--r--mason/mason.service1
-rwxr-xr-xmason/mason.sh24
-rw-r--r--mason/os-init-script6
-rw-r--r--mason/share/mason.conf4
-rw-r--r--mason/share/os.conf30
-rwxr-xr-xnfsboot-server.configure28
-rwxr-xr-xpxeboot.check69
-rwxr-xr-xpxeboot.write679
-rw-r--r--pxeboot.write.help123
-rwxr-xr-xscripts/cycle.sh31
-rwxr-xr-xscripts/release-test2
-rwxr-xr-xscripts/release-test-os526
-rw-r--r--strata/NetworkManager-common.morph3
-rw-r--r--strata/audio-bluetooth.morph13
-rw-r--r--strata/audio-bluetooth/alsa-lib.morph4
-rw-r--r--strata/baserock-import.morph31
-rw-r--r--strata/bsp-armv7-highbank.morph4
-rw-r--r--strata/bsp-armv7-highbank/linux-armv7-highbank.morph2
-rw-r--r--strata/bsp-armv7-versatile.morph4
-rw-r--r--strata/bsp-armv7-versatile/linux-armv7-versatile.morph2
-rw-r--r--strata/bsp-armv7b-highbank.morph4
-rw-r--r--strata/bsp-armv7b-highbank/linux-armv7b-highbank.morph2
-rw-r--r--strata/bsp-armv7b-vexpress-tc2.morph4
-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/nouveau-drm.morph10
-rw-r--r--strata/bsp-jetson-genivi/u-boot.morph16
-rw-r--r--strata/bsp-jetson.morph (renamed from strata/bsp-jetson-genivi.morph)37
-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.morph12
-rw-r--r--strata/bsp-jetson/u-boot@jetson.morph (renamed from strata/bsp-jetson-devel/u-boot.morph)6
-rw-r--r--strata/bsp-ppc64-generic.morph4
-rw-r--r--strata/bsp-wandboard.morph10
-rw-r--r--strata/bsp-wandboard/linux-armv7-wandboard.morph2
-rw-r--r--strata/bsp-wandboard/u-boot@wandboard.morph (renamed from strata/bsp-wandboard/u-boot.morph)2
-rw-r--r--strata/bsp-x86_32-generic.morph6
-rw-r--r--strata/bsp-x86_32-generic/linux-x86-32-generic.morph2
-rw-r--r--strata/bsp-x86_64-generic.morph6
-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/c2man/c2man.morph11
-rw-r--r--strata/connectivity.morph8
-rw-r--r--strata/core.morph35
-rw-r--r--strata/core/bison.morph1
-rw-r--r--strata/core/git.morph7
-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/cross-bootstrap.morph4
-rw-r--r--strata/enlightenment.morph39
-rw-r--r--strata/enlightenment/bullet3.morph8
-rw-r--r--strata/enlightenment/efl.morph5
-rw-r--r--strata/erlang.morph4
-rw-r--r--strata/foundation.morph36
-rw-r--r--strata/foundation/systemd.morph13
-rw-r--r--strata/genivi-foundation.morph12
-rw-r--r--strata/genivi-wayland-generic.morph15
-rw-r--r--strata/genivi-x-generic.morph13
-rw-r--r--strata/genivi-x-generic/layer_management.morph8
-rw-r--r--strata/genivi.morph22
-rw-r--r--strata/genivi/linuxquota.morph (renamed from strata/genivi-foundation/linuxquota.morph)0
-rw-r--r--strata/graphics-common.morph15
-rw-r--r--strata/graphics-common/cairo.morph5
-rw-r--r--strata/gtk-deps.morph9
-rw-r--r--strata/gtk-deps/gdk-pixbuf.morph4
-rw-r--r--strata/gtk3.morph13
-rw-r--r--strata/gtk3/gtk3.morph2
-rw-r--r--strata/input-common.morph14
-rw-r--r--strata/installer-utils.morph12
-rw-r--r--strata/installer-utils/installer-scripts.morph4
-rw-r--r--strata/libdrm-common.morph4
-rw-r--r--strata/libdrm-common/drm.morph2
-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/lorry.morph129
-rw-r--r--strata/lorry/cvs-tarball.morph (renamed from strata/trove/cvs-tarball.morph)0
-rw-r--r--strata/lorry/cvsps.morph (renamed from strata/trove/cvsps.morph)0
-rw-r--r--strata/lorry/hg-fast-export.morph (renamed from strata/trove/hg-fast-export.morph)0
-rw-r--r--strata/lorry/libapr-util-tarball.morph (renamed from strata/trove/libapr-util-tarball.morph)0
-rw-r--r--strata/lorry/lorry.morph (renamed from strata/trove/lorry.morph)0
-rw-r--r--strata/lorry/mercurial-tarball.morph (renamed from strata/trove/mercurial-tarball.morph)0
-rw-r--r--strata/lorry/neon.morph (renamed from strata/trove/neon.morph)0
-rw-r--r--strata/lorry/perl-dbi-tarball.morph (renamed from strata/trove/perl-dbi-tarball.morph)0
-rw-r--r--strata/lorry/subversion-tarball.morph (renamed from strata/trove/subversion-tarball.morph)0
-rw-r--r--strata/lorry/swig-tarball.morph (renamed from strata/trove/swig-tarball.morph)0
-rw-r--r--strata/lua.morph6
-rw-r--r--strata/lua/luajit2.morph7
-rw-r--r--strata/mesa-common.morph4
-rw-r--r--strata/mesa-common/mesa.morph24
-rw-r--r--strata/morph-utils.morph4
-rw-r--r--strata/multimedia-gstreamer-0.10.morph14
-rw-r--r--strata/multimedia.morph20
-rw-r--r--strata/nfs.morph8
-rw-r--r--strata/nfs/nfs-utils.morph2
-rw-r--r--strata/nfs/rpcbind.morph2
-rw-r--r--strata/pcre-utils.morph10
-rw-r--r--strata/python-tools.morph12
-rw-r--r--strata/qt5-sdk.morph9
-rw-r--r--strata/qt5-sdk/qt-creator.morph1
-rw-r--r--strata/qt5-tools-qtmultimedia.morph13
-rw-r--r--strata/qt5-tools-qtwebkit.morph35
-rw-r--r--strata/qt5-tools.morph153
-rw-r--r--strata/qt5-tools/qtbase.morph2
-rw-r--r--strata/qt5-tools/qtconnectivity.morph10
-rw-r--r--strata/qt5-tools/qtlocation.morph10
-rw-r--r--strata/qt5-tools/qtwebsockets.morph10
-rw-r--r--strata/ruby.morph22
-rw-r--r--strata/ruby/hoe.morph16
-rw-r--r--strata/ruby/rake-compiler.morph15
-rw-r--r--strata/tools.morph6
-rw-r--r--strata/tools/coreutils.morph9
-rw-r--r--strata/trove.morph130
-rw-r--r--strata/wayland-generic.morph9
-rw-r--r--strata/wayland-generic/libxkbcommon.morph5
-rw-r--r--strata/webtools.morph20
-rw-r--r--strata/webtools/tar.morph2
-rw-r--r--strata/weston-common.morph21
-rw-r--r--strata/weston-common/weston.morph9
-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--strata/x-common.morph28
-rw-r--r--strata/x-generic.morph8
-rw-r--r--strata/x-generic/xserver.morph2
-rw-r--r--strata/xfce.morph1
-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.morph (renamed from systems/distbuild-system-armv7lhf-highbank.morph)7
-rw-r--r--systems/build-system-armv7lhf-jetson.morph34
-rw-r--r--systems/build-system-ppc64.morph (renamed from systems/distbuild-system-ppc64.morph)7
-rw-r--r--systems/build-system-x86_32-chroot.morph (renamed from systems/distbuild-system-armv7lhf-jetson.morph)11
-rw-r--r--systems/build-system-x86_32.morph (renamed from systems/distbuild-system-x86_32.morph)7
-rw-r--r--systems/build-system-x86_64-chroot.morph32
-rw-r--r--systems/build-system-x86_64.morph (renamed from systems/distbuild-system-x86_64.morph)7
-rw-r--r--systems/ceph-service-x86_64-generic.morph3
-rw-r--r--systems/cxmanage-system-x86_64-generic.morph1
-rw-r--r--systems/devel-system-armv7-chroot.morph18
-rw-r--r--systems/devel-system-armv7-highbank.morph19
-rw-r--r--systems/devel-system-armv7-versatile.morph19
-rw-r--r--systems/devel-system-armv7-wandboard.morph18
-rw-r--r--systems/devel-system-armv7b-chroot.morph11
-rw-r--r--systems/devel-system-armv7b-highbank.morph13
-rw-r--r--systems/devel-system-armv7lhf-chroot.morph17
-rw-r--r--systems/devel-system-armv7lhf-highbank.morph20
-rw-r--r--systems/devel-system-armv7lhf-jetson.morph24
-rw-r--r--systems/devel-system-armv7lhf-wandboard.morph19
-rw-r--r--systems/devel-system-ppc64-chroot.morph16
-rw-r--r--systems/devel-system-ppc64-generic.morph17
-rw-r--r--systems/devel-system-x86_32-chroot.morph18
-rw-r--r--systems/devel-system-x86_32-generic.morph19
-rw-r--r--systems/devel-system-x86_64-chroot.morph18
-rw-r--r--systems/devel-system-x86_64-generic.morph18
-rw-r--r--systems/devel-system-x86_64-vagrant.morph38
-rw-r--r--systems/genivi-baseline-system-armv7lhf-jetson.morph7
-rw-r--r--systems/genivi-baseline-system-armv7lhf-versatile.morph3
-rw-r--r--systems/genivi-baseline-system-x86_64-generic.morph3
-rw-r--r--systems/gerrit-x86_64.morph1
-rw-r--r--systems/gitlab-ci-runner.morph7
-rw-r--r--systems/gitlab-server.morph3
-rw-r--r--systems/installer-system-x86_64.morph22
-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.morph7
-rw-r--r--systems/trove-system-x86_64.morph7
-rw-r--r--systems/web-system-x86_64-generic.morph5
-rw-r--r--systems/weston-system-armv7lhf-jetson.morph40
-rw-r--r--systems/weston-system-x86_64-generic.morph40
-rw-r--r--systems/xfce-system.morph5
200 files changed, 3206 insertions, 1045 deletions
diff --git a/clusters/ci.morph b/clusters/ci.morph
index f860a4ba..48e978bc 100644
--- a/clusters/ci.morph
+++ b/clusters/ci.morph
@@ -12,3 +12,38 @@ systems:
type: rawdisk
location: devel-system-x86_64-generic.img
DISK_SIZE: 4G
+- morph: systems/devel-system-x86_32-generic.morph
+ deploy:
+ devel-system-x86_32-generic:
+ type: rawdisk
+ location: devel-system-x86_32-generic.img
+ DISK_SIZE: 4G
+- morph: systems/build-system-armv7lhf-jetson.morph
+ deploy:
+ devel-system-armv7lhf-jetson:
+ type: rawdisk
+ location: build-system-armv7lhf-jetson.img
+ DISK_SIZE: 2G
+ ROOT_DEVICE: "/dev/mmcblk0p1"
+ DTB_PATH: "boot/tegra124-jetson-tk1.dtb"
+ BOOTLOADER_CONFIG_FORMAT: "extlinux"
+ BOOTLOADER_INSTALL: "none"
+ KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1
+- morph: systems/weston-system-x86_64-generic.morph
+ deploy:
+ weston-system-x86_64-generic:
+ type: rawdisk
+ location: weston-system-x86_64-generic.img
+ DISK_SIZE: 4G
+ KERNEL_ARGS: vga=788
+- morph: systems/weston-system-armv7lhf-jetson.morph
+ deploy:
+ weston-system-armv7lhf-jetson:
+ type: rawdisk
+ location: weston-system-armv7lhf-jetson.img
+ DISK_SIZE: 4G
+ ROOT_DEVICE: "/dev/mmcblk0p1"
+ DTB_PATH: "boot/tegra124-jetson-tk1.dtb"
+ BOOTLOADER_CONFIG_FORMAT: "extlinux"
+ BOOTLOADER_INSTALL: "none"
+ KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1
diff --git a/clusters/example-distbuild-cluster.morph b/clusters/example-distbuild-cluster.morph
index 4c97d21f..513c16c5 100644
--- a/clusters/example-distbuild-cluster.morph
+++ b/clusters/example-distbuild-cluster.morph
@@ -10,7 +10,7 @@ description: |
workers to authenticate with the Trove to give them read access to
all source repositories.
systems:
-- morph: systems/distbuild-system-x86_64-generic.morph
+- morph: systems/build-system-x86_64.morph
deploy-defaults:
CONTROLLERHOST: build-controller
DISTBUILD_CONTROLLER: false
diff --git a/clusters/installer-build-system-x86_64.morph b/clusters/installer-build-system-x86_64.morph
new file mode 100644
index 00000000..b31caced
--- /dev/null
+++ b/clusters/installer-build-system-x86_64.morph
@@ -0,0 +1,46 @@
+name: installer-build-system-x86_64
+kind: cluster
+description: |
+ This is a cluster morphology that can be used to deploy
+ installer systems. This is done by adding the files needed
+ using a manifest file (installer/manifest) with the INSTALL_FILES
+ extension, and using the installer.configure extension to generate
+ the configuration needed in the system.
+
+ This manifest, which is installing the installer script in
+ /usr/lib/installer/installer.py, in combination of adding
+ "init=/usr/lib/installer/installer.py" as KERNEL_ARGS in the system
+ makes the system run the installer.py script as init script.
+
+ The installer.py script will read the information needed to
+ install the system (where is the root filesystem to install and
+ where to install it) from /etc/install.conf.
+
+ This cluster also deploys a subsystem (a build-system in this case)
+ which is going to be the system that the installer system/script is
+ going to install.
+
+systems:
+- morph: systems/installer-system-x86_64.morph
+ deploy:
+ installer:
+ type: rawdisk
+ location: installer-build-system-x86_64.img
+ KERNEL_ARGS: init=/usr/lib/baserock-installer/installer
+ DISK_SIZE: 6G
+ HOSTNAME: installer-x86_64
+ INSTALLER_TARGET_STORAGE_DEVICE: /dev/sda
+ INSTALLER_ROOTFS_TO_INSTALL: /rootfs
+ subsystems:
+ - morph: systems/build-system-x86_64.morph
+ deploy:
+ to-install:
+ type: sysroot
+ location: /rootfs
+ INITRAMFS_PATH: boot/initramfs.gz
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ initramfs:
+ type: initramfs
+ location: boot/initramfs.gz
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/mason-openstack.morph b/clusters/mason-openstack.morph
new file mode 100644
index 00000000..6ef14888
--- /dev/null
+++ b/clusters/mason-openstack.morph
@@ -0,0 +1,39 @@
+name: openstack-mason
+kind: cluster
+description: |
+ This is a template cluster morphology that can be adapted to set up a
+ Mason. Masons are composed of a trove and a distbuild system.
+systems:
+- morph: systems/build-system-x86_64.morph
+ deploy-defaults:
+ ARTIFACT_CACHE_SERVER: example-cache-server
+ CONTROLLERHOST: controller-hostname
+ DISTBUILD_CONTROLLER: true
+ DISTBUILD_WORKER: true
+ INSTALL_FILES: distbuild/manifest
+ RAM_SIZE: 8G
+ TROVE_HOST: your-upstream-trove
+ TROVE_ID: your-upstream-trove-prefix
+ VCPUS: 2
+ WORKER_SSH_KEY: ssh-keys/worker.key
+ deploy:
+ mason-openstack:
+ type: openstack
+ location: openstack-auth-url (eg example.com:5000/v2.0)
+ DISK_SIZE: 6G
+ DISTBUILD_CONTROLLER: true
+ HOSTNAME: controller-hostname
+ MASON_CLUSTER_MORPHOLOGY: clusters/ci.morph
+ MASON_DEFINITIONS_REF: master
+ MASON_DISTBUILD_ARCH: x86_64
+ MASON_TEST_HOST: user@openstack-auth-url
+ WORKERS: controller-hostname
+ OPENSTACK_AUTH_URL: openstack-auth-url
+ OPENSTACK_USER: baserock
+ OPENSTACK_TENANT: baserock
+ OPENSTACK_TENANT_ID: 7d7ebfe23367490b973a10fa426c3aec
+ OPENSTACK_IMAGENAME: mason-openstack
+ OPENSTACK_NETWORK_ID: 71f5151a-b7c3-405d-a841-d1b07e5db099
+ CLOUD_INIT: yes
+ KERNEL_ARGS: console=ttyS0 console=tty0
+ TEST_INFRASTRUCTURE_TYPE: openstack
diff --git a/clusters/mason.morph b/clusters/mason.morph
index 8579f7e4..9717239d 100644
--- a/clusters/mason.morph
+++ b/clusters/mason.morph
@@ -30,7 +30,7 @@ systems:
VCPUS: 2
VERSION_LABEL: 45
WORKER_SSH_PUBKEY: ssh_keys/worker.key.pub
-- morph: systems/distbuild-system-x86_64.morph
+- morph: systems/build-system-x86_64.morph
deploy-defaults:
ARTIFACT_CACHE_SERVER: red-box-v1-trove.example.com
CONTROLLERHOST: red-box-v1-controller.example.com
diff --git a/clusters/release.morph b/clusters/release.morph
index 5beee3e2..f161d0df 100644
--- a/clusters/release.morph
+++ b/clusters/release.morph
@@ -7,36 +7,39 @@ description: |
you can deploy the systems yourself, if you are making a Baserock release
then the script should be used.
systems:
-- morph: systems/devel-system-x86_32-chroot.morph
+- morph: systems/build-system-x86_32-chroot.morph
deploy:
- devel-system-x86_32-chroot:
+ build-system-x86_32-chroot:
type: tar
- location: devel-system-x86_32-chroot.tar
-- morph: systems/devel-system-x86_32-generic.morph
+ location: build-system-x86_32-chroot.tar
+- morph: systems/build-system-x86_32.morph
deploy:
- devel-system-x86_32-generic:
+ build-system-x86_32:
type: rawdisk
- location: devel-system-x86_32-generic.img
- DISK_SIZE: 4G
-- morph: systems/devel-system-x86_64-chroot.morph
+ location: build-system-x86_32.img
+ DISK_SIZE: 6G
+- morph: systems/build-system-x86_64-chroot.morph
deploy:
- devel-system-x86_64-chroot:
+ build-system-x86_64-chroot:
type: tar
- location: devel-system-x86_64-chroot.tar
-- morph: systems/devel-system-x86_64-generic.morph
+ location: build-system-x86_64-chroot.tar
+- morph: systems/build-system-x86_64.morph
deploy:
- devel-system-x86_64-generic:
+ build-system-x86_64:
type: rawdisk
- location: devel-system-x86_64-generic.img
- DISK_SIZE: 4G
-- morph: systems/devel-system-armv7lhf-jetson.morph
+ location: build-system-x86_64.img
+ DISK_SIZE: 6G
+- morph: systems/build-system-armv7lhf-jetson.morph
deploy:
- release:
+ devel-system-armv7lhf-jetson:
type: rawdisk
- location: devel-system-armv7lhf-jetson.img
- DISK_SIZE: 4G
+ location: build-system-armv7lhf-jetson.img
+ DISK_SIZE: 2G
ROOT_DEVICE: "/dev/mmcblk0p1"
- 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
+ DTB_PATH: "boot/tegra124-jetson-tk1.dtb"
+ BOOTLOADER_CONFIG_FORMAT: "extlinux"
+ BOOTLOADER_INSTALL: "none"
+ 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:
@@ -54,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/clusters/weston-system-x86_64-generic-deploy.morph b/clusters/weston-system-x86_64-generic-deploy.morph
new file mode 100644
index 00000000..ac63a93a
--- /dev/null
+++ b/clusters/weston-system-x86_64-generic-deploy.morph
@@ -0,0 +1,12 @@
+name: release
+kind: cluster
+description: |
+ Deploy a stock weston system.
+systems:
+- morph: systems/weston-system-x86_64-generic.morph
+ deploy:
+ weston-system-x86_64-generic:
+ type: rawdisk
+ location: /weston-system-x86_64-generic.img
+ DISK_SIZE: 4G
+ KERNEL_ARGS: vga=788
diff --git a/distbuild.configure b/distbuild.configure
index d9b9fb8a..062aaecc 100644
--- a/distbuild.configure
+++ b/distbuild.configure
@@ -45,20 +45,21 @@ if [ -n "$DISTBUILD_GENERIC" ]; then
exit 0
fi
+# Set default values for these two options if they are unset, so that if the
+# user specifies no distbuild config at all the configure extension exits
+# without doing anything but does not raise an error.
+DISTBUILD_CONTROLLER=${DISTBUILD_CONTROLLER-False}
+DISTBUILD_WORKER=${DISTBUILD_WORKER-False}
+
+if [ "$DISTBUILD_CONTROLLER" = False -a "$DISTBUILD_WORKER" = False ]; then
+ exit 0
+fi
+
set -u
# Check that all the variables needed are present:
error_vars=false
-if [ "x$DISTBUILD_WORKER" = "x" ]; then
- echo "ERROR: DISTBUILD_WORKER needs to be defined."
- error_vars=true
-fi
-
-if [ "x$DISTBUILD_CONTROLLER" = "x" ]; then
- echo "ERROR: DISTBUILD_CONTROLLER needs to be defined."
- error_vars=true
-fi
if [ "x$TROVE_HOST" = "x" ]; then
echo "ERROR: TROVE_HOST needs to be defined."
diff --git a/installer.configure b/installer.configure
new file mode 100755
index 00000000..a77dc851
--- /dev/null
+++ b/installer.configure
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+#
+# Copyright (C) 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
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# This is a "morph deploy" configuration extension to configure an installer
+# system. It will create the configuration needed in the installer system
+# to perform an installation. It uses the following variables from the
+# environment:
+#
+# * INSTALLER_TARGET_STORAGE_DEVICE
+# * INSTALLER_ROOTFS_TO_INSTALL
+# * INSTALLER_POST_INSTALL_COMMAND (optional, defaults to `reboot -f`)
+
+import os
+import sys
+import yaml
+
+install_config_file = os.path.join(sys.argv[1], 'etc', 'install.conf')
+
+try:
+ installer_configuration = {
+ 'INSTALLER_TARGET_STORAGE_DEVICE': os.environ['INSTALLER_TARGET_STORAGE_DEVICE'],
+ 'INSTALLER_ROOTFS_TO_INSTALL': os.environ['INSTALLER_ROOTFS_TO_INSTALL'],
+ }
+except KeyError as e:
+ print "Not configuring as an installer system"
+ sys.exit(0)
+
+postinstkey = 'INSTALLER_POST_INSTALL_COMMAND'
+installer_configuration[postinstkey] = os.environ.get(postinstkey, 'reboot -f')
+
+with open(install_config_file, 'w') as f:
+ f.write( yaml.dump(installer_configuration, default_flow_style=False) )
+
+print "Configuration of the installer system in %s" % install_config_file
diff --git a/mason.configure b/mason.configure
index 4d11feb4..1198ebd0 100644
--- a/mason.configure
+++ b/mason.configure
@@ -24,23 +24,24 @@
# * MASON_DEFINITIONS_REF
# * MASON_DISTBUILD_ARCH
# * MASON_TEST_HOST
+# * OPENSTACK_NETWORK_ID
+# * TEST_INFRASTRUCTURE_TYPE
# * TROVE_HOST
# * TROVE_ID
# * CONTROLLERHOST
set -e
-ROOT="$1"
-
-
##########################################################################
# Copy Mason files into root filesystem
##########################################################################
+ROOT="$1"
mkdir -p "$ROOT"/usr/lib/mason
cp mason/mason.sh "$ROOT"/usr/lib/mason/mason.sh
cp mason/mason-report.sh "$ROOT"/usr/lib/mason/mason-report.sh
+cp mason/os-init-script "$ROOT"/usr/lib/mason/os-init-script
cp mason/mason.timer "$ROOT"/etc/systemd/system/mason.timer
@@ -73,7 +74,6 @@ cp mason/mason-setup.service "$ROOT"/etc/systemd/system/mason-setup.service
ln -s ../mason-setup.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason-setup.service
-
##########################################################################
# Check variables
##########################################################################
@@ -83,12 +83,23 @@ if [ -n "$MASON_GENERIC" ]; then
exit 0
fi
-if [ "$ARTIFACT_CACHE_SERVER" = "" \
- -o "$MASON_CLUSTER_MORPHOLOGY" = "" \
- -o "$MASON_DEFINITIONS_REF" = "" \
- -o "$MASON_DISTBUILD_ARCH" = "" \
- -o "$MASON_TEST_HOST" = "" ]; then
- echo Not configuring as Mason, some options not defined
+if [ -z "$MASON_CLUSTER_MORPHOLOGY" -a \
+ -z "$MASON_DEFINITIONS_REF" -a \
+ -z "$MASON_DISTBUILD_ARCH" -a \
+ -z "$MASON_TEST_HOST" ]; then
+ # No Mason options defined, do nothing.
+ exit 0
+fi
+
+if [ -z "$ARTIFACT_CACHE_SERVER" -o \
+ -z "$CONTROLLERHOST" -o \
+ -z "$MASON_CLUSTER_MORPHOLOGY" -o \
+ -z "$MASON_DEFINITIONS_REF" -o \
+ -z "$MASON_DISTBUILD_ARCH" -o \
+ -z "$MASON_TEST_HOST" -o \
+ -z "$TROVE_HOST" -o \
+ -z "$TROVE_ID" ]; then
+ echo Some options required for Mason were defined, but not all.
exit 1
fi
@@ -108,6 +119,8 @@ mason_configuration={
'MASON_DEFINITIONS_REF': os.environ['MASON_DEFINITIONS_REF'],
'MASON_DISTBUILD_ARCH': os.environ['MASON_DISTBUILD_ARCH'],
'MASON_TEST_HOST': os.environ['MASON_TEST_HOST'],
+ 'OPENSTACK_NETWORK_ID': os.environ['OPENSTACK_NETWORK_ID'],
+ 'TEST_INFRASTRUCTURE_TYPE': os.environ['TEST_INFRASTRUCTURE_TYPE'],
'TROVE_ID': os.environ['TROVE_ID'],
'TROVE_HOST': os.environ['TROVE_HOST'],
'CONTROLLERHOST': os.environ['CONTROLLERHOST'],
@@ -116,11 +129,25 @@ mason_configuration={
yaml.dump(mason_configuration, sys.stdout, default_flow_style=False)
EOF
+if [ "$TEST_INFRASTRUCTURE_TYPE" = "openstack" ]; then
+ python <<'EOF' >>"$MASON_DATA/mason.conf"
+import os, sys, yaml
+
+openstack_credentials={
+ 'OS_USERNAME': os.environ['OPENSTACK_USER'],
+ 'OS_TENANT_NAME': os.environ['OPENSTACK_TENANT'],
+ 'OS_TENANT_ID': os.environ['OPENSTACK_TENANT_ID'],
+ 'OS_AUTH_URL': os.environ['OPENSTACK_AUTH_URL'],
+ 'OS_PASSWORD': os.environ['OPENSTACK_PASSWORD'],
+}
+
+yaml.dump(openstack_credentials, sys.stdout, default_flow_style=False)
+EOF
+fi
##########################################################################
# Enable services
##########################################################################
ln -s ../mason.timer "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.timer
-ln -s ../mason.service "$ROOT"/etc/systemd/system/multi-user.target.wants/mason.service
ln -s ../httpd.service "$ROOT"/etc/systemd/system/multi-user.target.wants/httpd.service
diff --git a/mason/ansible/mason-setup.yml b/mason/ansible/mason-setup.yml
index 70c77871..d1528dbb 100644
--- a/mason/ansible/mason-setup.yml
+++ b/mason/ansible/mason-setup.yml
@@ -29,11 +29,38 @@
- fail: msg='CONTROLLERHOST is mandatory'
when: CONTROLLERHOST is not defined
+ - fail: msg='TEST_INFRASTRUCTURE_TYPE is mandatory'
+ when: TEST_INFRASTRUCTURE_TYPE is not defined
+
+ - fail: msg='OPENSTACK_NETWORK_ID is mandatory when TEST_INFRASTRUCTURE_TYPE=openstack'
+ when: TEST_INFRASTRUCTURE_TYPE == "openstack" and OPENSTACK_NETWORK_ID is not defined
+
+ - fail: msg='OS_USERNAME is mandatory when TEST_INFRASTRUCTURE_TYPE=openstack'
+ when: TEST_INFRASTRUCTURE_TYPE == "openstack" and OS_USERNAME is not defined
+
+ - fail: msg='OS_PASSWORD is mandatory when TEST_INFRASTRUCTURE_TYPE=openstack'
+ when: TEST_INFRASTRUCTURE_TYPE == "openstack" and OS_PASSWORD is not defined
+
+ - fail: msg='OS_TENANT_ID is mandatory when TEST_INFRASTRUCTURE_TYPE=openstack'
+ when: TEST_INFRASTRUCTURE_TYPE == "openstack" and OS_TENANT_ID is not defined
+
+ - fail: msg='OS_TENANT_NAME is mandatory when TEST_INFRASTRUCTURE_TYPE=openstack'
+ when: TEST_INFRASTRUCTURE_TYPE == "openstack" and OS_TENANT_NAME is not defined
+
+ - fail: msg='OS_AUTH_URL is mandatory when TEST_INFRASTRUCTURE_TYPE=openstack'
+ when: TEST_INFRASTRUCTURE_TYPE == "openstack" and OS_AUTH_URL is not defined
+
- name: Create the Mason configuration file
template: src=/usr/share/mason-setup/{{ item }} dest=/etc/{{ item }}
with_items:
- mason.conf
+ - name: Create the OpenStack credentials file
+ template: src=/usr/share/mason-setup/{{ item }} dest=/etc/{{ item }}
+ with_items:
+ - os.conf
+ when: TEST_INFRASTRUCTURE_TYPE == "openstack"
+
- name: Enable the mason service
service: name=mason.service enabled=yes
register: mason_service
diff --git a/mason/mason-generator.sh b/mason/mason-generator.sh
index 1a2eccac..187db72c 100755
--- a/mason/mason-generator.sh
+++ b/mason/mason-generator.sh
@@ -84,7 +84,7 @@ sed -i "s/\.example\.com/$(sedescape "$HOST_POSTFIX")/g" "mason-$HOST_PREFIX.mor
##############################################################################
morph build systems/trove-system-x86_64.morph
-morph build systems/distbuild-system-x86_64.morph
+morph build systems/build-system-x86_64.morph
##############################################################################
diff --git a/mason/mason.service b/mason/mason.service
index ab2338c5..a864d610 100644
--- a/mason/mason.service
+++ b/mason/mason.service
@@ -1,5 +1,6 @@
[Unit]
Description=Mason: Continuous Delivery Service
+After=mason-setup.service
[Service]
User=root
diff --git a/mason/mason.sh b/mason/mason.sh
index 32aab032..dba99dfa 100755
--- a/mason/mason.sh
+++ b/mason/mason.sh
@@ -1,5 +1,10 @@
#!/bin/sh
+# Load OpenStack credentials
+if [ -f "/etc/os.conf" ]; then
+ . /etc/os.conf
+fi
+
set -e
set -x
@@ -59,11 +64,20 @@ else
echo INFO: Created "$releases_made" release images
fi
-"scripts/release-test" \
- --deployment-host "$DISTBUILD_ARCH":"$TEST_VM_HOST_SSH_URL" \
- --trove-host "$UPSTREAM_TROVE_ADDRESS" \
- --trove-id "$TROVE_ID" \
- "$BUILD_CLUSTER_MORPHOLOGY"
+if [ "$TEST_INFRASTRUCTURE_TYPE" = "openstack" ]; then
+ "scripts/release-test-os" \
+ --deployment-host "$DISTBUILD_ARCH":"$MASON_TEST_HOST" \
+ --trove-host "$UPSTREAM_TROVE_ADDRESS" \
+ --trove-id "$TROVE_ID" \
+ --net-id "$OPENSTACK_NETWORK_ID" \
+ "$BUILD_CLUSTER_MORPHOLOGY"
+elif [ "$TEST_INFRASTRUCTURE_TYPE" = "kvmhost" ]; then
+ "scripts/release-test" \
+ --deployment-host "$DISTBUILD_ARCH":"$MASON_TEST_HOST" \
+ --trove-host "$UPSTREAM_TROVE_ADDRESS" \
+ --trove-id "$TROVE_ID" \
+ "$BUILD_CLUSTER_MORPHOLOGY"
+fi
"scripts/release-upload" --build-trove-host "$ARTIFACT_CACHE_SERVER" \
--arch "$DISTBUILD_ARCH" \
diff --git a/mason/os-init-script b/mason/os-init-script
new file mode 100644
index 00000000..77afb926
--- /dev/null
+++ b/mason/os-init-script
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# This allows the test runner to know that cloud-init has completed the
+# disc resizing, and there is enough free space to continue.
+touch /root/cloud-init-finished
+
diff --git a/mason/share/mason.conf b/mason/share/mason.conf
index b323896d..1295ce84 100644
--- a/mason/share/mason.conf
+++ b/mason/share/mason.conf
@@ -9,4 +9,6 @@ DISTBUILD_ARCH={{ MASON_DISTBUILD_ARCH|quote }}
DISTBUILD_CONTROLLER_ADDRESS={{ CONTROLLERHOST|quote }}
TROVE_ID={{ TROVE_ID|quote }}
BUILD_CLUSTER_MORPHOLOGY={{ MASON_CLUSTER_MORPHOLOGY|quote }}
-TEST_VM_HOST_SSH_URL={{ MASON_TEST_HOST|quote }}
+MASON_TEST_HOST={{ MASON_TEST_HOST|quote }}
+TEST_INFRASTRUCTURE_TYPE={{ TEST_INFRASTRUCTURE_TYPE|quote }}
+{% if OPENSTACK_NETWORK_ID is defined %}OPENSTACK_NETWORK_ID={{ OPENSTACK_NETWORK_ID|quote }}{% endif %}
diff --git a/mason/share/os.conf b/mason/share/os.conf
new file mode 100644
index 00000000..21ef398c
--- /dev/null
+++ b/mason/share/os.conf
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# A version of this file with the relevant information included can be
+# obtained by navigating to 'Access & Security' -> 'API Access' ->
+# 'Download OpenStack RC file' in The Horizon web interface of your
+# OpenStack. However, the file obtained from there sets OS_PASSWORD
+# such that it will ask the user for a password, so you will need to
+# change that for Mason to work automatically.
+#
+# With the addition of Keystone, to use an openstack cloud you should
+# authenticate against keystone, which returns a **Token** and **Service
+# Catalog**. The catalog contains the endpoint for all services the
+# user/tenant has access to - including nova, glance, keystone, swift.
+#
+# *NOTE*: Using the 2.0 *auth api* does not mean that compute api is 2.0. We
+# will use the 1.1 *compute api*
+export OS_AUTH_URL={{ OS_AUTH_URL|quote }}
+
+# With the addition of Keystone we have standardized on the term **tenant**
+# as the entity that owns the resources.
+export OS_TENANT_ID={{ OS_TENANT_ID|quote }}
+export OS_TENANT_NAME={{ OS_TENANT_NAME|quote }}
+
+# In addition to the owning entity (tenant), openstack stores the entity
+# performing the action as the **user**.
+export OS_USERNAME={{ OS_USERNAME|quote }}
+
+# With Keystone you pass the keystone password.
+export OS_PASSWORD={{ OS_PASSWORD|quote }}
+
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/scripts/cycle.sh b/scripts/cycle.sh
index 0198c1f9..c0e2aa67 100755
--- a/scripts/cycle.sh
+++ b/scripts/cycle.sh
@@ -15,22 +15,31 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
usage() {
- echo "Usage: cycle.sh some-system some-cluster"
+ echo "Usage: cycle.sh some-system some-cluster [newversion]"
echo
echo "This builds and deploys the current checked out version of"
echo "some-system, applying it as a self-upgrade to the system you"
echo "are working in, using configuration from some-cluster."
- echo "The upgrade is labelled TEST, and is set to be the default for"
- echo "next boot."
+ echo "The upgrade is labelled TEST by default, or [newversion] if"
+ echo "specified, and is set to be the default for next boot."
}
-if [ -z "$1" ] || [ -z "$2" ] ; then
+if [ -z "$1" ] || [ -z "$2" ] || [ ! -z "$4" ] ; then
usage
exit 1
fi
-if system-version-manager get-running | grep -q '^TEST$'; then
- echo "You are currently running the TEST system."
+newversion=TEST
+if [ ! -z "$3" ] ; then
+ newversion=$3
+ if (echo "$newversion" | grep ' ' > /dev/null 2>&1) ; then
+ echo 'Version label must not contain spaces.'
+ exit 1
+ fi
+fi
+
+if system-version-manager get-running | grep -q "^$newversion$"; then
+ echo "You are currently running the $newversion system."
echo "Maybe you want to boot into a different system version?"
exit 1
fi
@@ -38,13 +47,15 @@ fi
set -e
set -v
-system-version-manager set-default factory
-if system-version-manager list | grep -q '^TEST$'; then
- system-version-manager remove TEST
+runningversion=`system-version-manager get-running`
+system-version-manager set-default $runningversion
+if system-version-manager list | grep -q "^$newversion$"; then
+ system-version-manager remove $newversion
fi
morph gc
morph build "$1"
sed -i "s|^- morph: .*$|- morph: $1|" "$2"
-morph deploy --upgrade "$2" self.HOSTNAME=$(hostname) self.VERSION_LABEL=TEST
+morph deploy --upgrade "$2" self.HOSTNAME=$(hostname) self.VERSION_LABEL=$newversion
+system-version-manager list
diff --git a/scripts/release-test b/scripts/release-test
index b2bca58d..a1611721 100755
--- a/scripts/release-test
+++ b/scripts/release-test
@@ -185,6 +185,8 @@ class Deployment(object):
@staticmethod
def _ssh_host_key_exists(hostname):
"""Check if an ssh host key exists in known_hosts"""
+ if not os.path.exists('/root/.ssh/known_hosts'):
+ return False
with open('/root/.ssh/known_hosts', 'r') as known_hosts:
return any(line.startswith(hostname) for line in known_hosts)
diff --git a/scripts/release-test-os b/scripts/release-test-os
new file mode 100755
index 00000000..a886300e
--- /dev/null
+++ b/scripts/release-test-os
@@ -0,0 +1,526 @@
+#!/usr/bin/env python
+#
+# Copyright 2014 Codethink Ltd
+#
+# 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
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+'''release-test
+
+This script deploys the set of systems in the cluster morphology it is
+instructed to read, to test that they work correctly.
+
+'''
+
+import cliapp
+import os
+import pipes
+import shlex
+import shutil
+import socket
+import tempfile
+import time
+import uuid
+
+import morphlib
+
+
+class NovaList:
+ def __init__(self):
+ self.output = []
+ self.lines = []
+ self.instance = []
+
+ def update(self):
+ self.output = cliapp.runcmd(['nova', 'list'])
+ self.lines = self.output.split('\n')
+ self.lines = self.lines[3:-2]
+
+ def get_nova_details_for_instance(self, name):
+ self.update()
+
+ for line in self.lines:
+ entries = line.split('|')
+ stripped_line = [entry.strip() for entry in entries]
+ if stripped_line.count(name) == 1:
+ self.instance = stripped_line
+
+ def get_nova_state_for_instance(self, name):
+ self.get_nova_details_for_instance(name)
+ if not self.instance:
+ return
+ return self.instance[3]
+
+ def get_nova_ip_for_instance(self, name):
+ self.get_nova_details_for_instance(name)
+ if not self.instance:
+ return
+
+ if self.get_nova_state_for_instance(name) != 'ACTIVE':
+ return
+
+ return self.instance[6]
+
+ def get_nova_ip_for_instance_timeout(self, name, timeout=120):
+ start_time = time.time()
+
+ while self.get_nova_state_for_instance(name) != 'ACTIVE':
+
+ if time.time() > start_time + timeout:
+ print "%s not ACTIVE after %i seconds" % (name, timeout)
+ return
+
+ time.sleep(1)
+
+ ip_addr = self.get_nova_ip_for_instance(name)
+ if not ip_addr:
+ return
+
+ if ip_addr.count('=') == 0:
+ return
+
+ ip_addr = ip_addr[ip_addr.find('=') + 1:]
+
+ if ip_addr.count(',') == 0:
+ return ip_addr
+
+ return ip_addr[:ip_addr.find(',')]
+
+
+
+class MorphologyHelper(object):
+
+ def __init__(self):
+ self.sb = sb = morphlib.sysbranchdir.open_from_within('.')
+ defs_repo_path = sb.get_git_directory_name(sb.root_repository_url)
+ self.defs_repo = morphlib.gitdir.GitDirectory(defs_repo_path)
+ self.loader = morphlib.morphloader.MorphologyLoader()
+ self.finder = morphlib.morphologyfinder.MorphologyFinder(self.defs_repo)
+
+ def load_morphology(self, path):
+ text = self.finder.read_morphology(path)
+ return self.loader.load_from_string(text)
+
+ @classmethod
+ def iterate_systems(cls, systems_list):
+ for system in systems_list:
+ yield morphlib.util.sanitise_morphology_path(system['morph'])
+ if 'subsystems' in system:
+ for subsystem in cls.iterate_systems(system['subsystems']):
+ yield subsystem
+
+ def iterate_cluster_deployments(cls, cluster_morph):
+ for system in cluster_morph['systems']:
+ path = morphlib.util.sanitise_morphology_path(system['morph'])
+ defaults = system.get('deploy-defaults', {})
+ for name, options in system['deploy'].iteritems():
+ config = dict(defaults)
+ config.update(options)
+ yield path, name, config
+
+ def load_cluster_systems(self, cluster_morph):
+ for system_path in set(self.iterate_systems(cluster_morph['systems'])):
+ system_morph = self.load_morphology(system_path)
+ yield system_path, system_morph
+
+
+class TimeoutError(cliapp.AppException):
+
+ """Error to be raised when a connection waits too long"""
+
+ def __init__(self, msg):
+ super(TimeoutError, self).__init__(msg)
+
+
+class VMHost(object):
+
+ def __init__(self, user, address, disk_path):
+ self.user = user
+ self.address = address
+ self.disk_path = disk_path
+
+ @property
+ def ssh_host(self):
+ return '{user}@{address}'.format(user=self.user, address=self.address)
+
+ def runcmd(self, *args, **kwargs):
+ cliapp.ssh_runcmd(self.ssh_host, *args, **kwargs)
+
+
+class DeployedSystemInstance(object):
+
+ def __init__(self, deployment, config, host_machine, vm_id, rootfs_path,
+ ip_addr, hostname):
+ self.deployment = deployment
+ self.config = config
+ self.ip_address = ip_addr
+ self.host_machine = host_machine
+ self.vm_id = vm_id
+ self.rootfs_path = rootfs_path
+ self.hostname = hostname
+
+ @property
+ def ssh_host(self):
+ # TODO: Stop assuming we ssh into test instances as root
+ return 'root@{host}'.format(host=self.ip_address)
+
+ def runcmd(self, argv, chdir='.', **kwargs):
+ ssh_cmd = ['ssh', '-o', 'StrictHostKeyChecking=no',
+ '-o', 'UserKnownHostsFile=/dev/null', self.ssh_host]
+ cmd = ['sh', '-c', 'cd "$1" && shift && exec "$@"', '-', chdir]
+ cmd += argv
+ ssh_cmd.append(' '.join(map(pipes.quote, cmd)))
+ return cliapp.runcmd(ssh_cmd, **kwargs)
+
+ def _wait_for_dhcp(self, timeout):
+ '''Block until given hostname resolves successfully.
+
+ Raises TimeoutError if the hostname has not appeared in 'timeout'
+ seconds.
+
+ '''
+ start_time = time.time()
+ while True:
+ try:
+ socket.gethostbyname(self.ip_address)
+ return
+ except socket.gaierror:
+ pass
+ if time.time() > start_time + timeout:
+ raise TimeoutError("Host %s did not appear after %i seconds" %
+ (self.ip_address, timeout))
+ time.sleep(0.5)
+
+ def _wait_for_ssh(self, timeout):
+ """Wait until the deployed VM is responding via SSH"""
+ start_time = time.time()
+ while True:
+ try:
+ self.runcmd(['true'], stdin=None, stdout=None, stderr=None)
+ return
+ except cliapp.AppException:
+ # TODO: Stop assuming the ssh part of the command is what failed
+ if time.time() > start_time + timeout:
+ raise TimeoutError("%s sshd did not start after %i seconds"
+ % (self.ip_address, timeout))
+ time.sleep(0.5)
+
+ def _wait_for_cloud_init(self, timeout):
+ """Wait until cloud init has resized the disc"""
+ start_time = time.time()
+ while True:
+ try:
+ out = self.runcmd(['sh', '-c',
+ 'test -e "$1" && echo exists || echo does not exist',
+ '-',
+ '/root/cloud-init-finished'])
+ except:
+ import traceback
+ traceback.print_exc()
+ raise
+ if out.strip() == 'exists':
+ return
+ if time.time() > start_time + timeout:
+ raise TimeoutError("Disc size not increased after %i seconds"
+ % (timeout))
+ time.sleep(3)
+
+ def wait_until_online(self, timeout=120):
+ self._wait_for_dhcp(timeout)
+ self._wait_for_ssh(timeout)
+ self._wait_for_cloud_init(timeout)
+ print "Test system %s ready to run tests." % (self.hostname)
+
+ def delete(self):
+ # Stop and remove VM
+ print "Deleting %s test instance" % (self.hostname)
+ try:
+ cliapp.runcmd(['nova', 'delete', self.hostname])
+ except cliapp.AppException as e:
+ # TODO: Stop assuming that delete failed because the instance
+ # wasn't running
+ print "- Failed"
+ pass
+ print "Deleting %s test disc image" % (self.hostname)
+ try:
+ cliapp.runcmd(['nova', 'image-delete', self.hostname])
+ except cliapp.AppException as e:
+ # TODO: Stop assuming that image-delete failed because it was
+ # already removed
+ print "- Failed"
+ pass
+
+
+class Deployment(object):
+
+ def __init__(self, cluster_path, name, deployment_config,
+ host_machine, net_id):
+ self.cluster_path = cluster_path
+ self.name = name
+ self.deployment_config = deployment_config
+ self.host_machine = host_machine
+ self.net_id = net_id
+
+ @staticmethod
+ def _ssh_host_key_exists(hostname):
+ """Check if an ssh host key exists in known_hosts"""
+ if not os.path.exists('/root/.ssh/known_hosts'):
+ return False
+ with open('/root/.ssh/known_hosts', 'r') as known_hosts:
+ return any(line.startswith(hostname) for line in known_hosts)
+
+ def _update_known_hosts(self):
+ if not self._ssh_host_key_exists(self.host_machine.address):
+ with open('/root/.ssh/known_hosts', 'a') as known_hosts:
+ cliapp.runcmd(['ssh-keyscan', self.host_machine.address],
+ stdout=known_hosts)
+
+ @staticmethod
+ def _generate_sshkey_config(tempdir, config):
+ manifest = os.path.join(tempdir, 'manifest')
+ with open(manifest, 'w') as f:
+ f.write('0040700 0 0 /root/.ssh\n')
+ f.write('overwrite 0100600 0 0 /root/.ssh/authorized_keys\n')
+ authkeys = os.path.join(tempdir, 'root', '.ssh', 'authorized_keys')
+ os.makedirs(os.path.dirname(authkeys))
+ with open(authkeys, 'w') as auth_f:
+ with open('/root/.ssh/id_rsa.pub', 'r') as key_f:
+ shutil.copyfileobj(key_f, auth_f)
+
+ install_files = shlex.split(config.get('INSTALL_FILES', ''))
+ install_files.append(manifest)
+ yield 'INSTALL_FILES', ' '.join(pipes.quote(f) for f in install_files)
+
+ def deploy(self):
+ self._update_known_hosts()
+
+ hostname = str(uuid.uuid4())
+ vm_id = hostname
+ image_base = self.host_machine.disk_path
+ rootpath = '{image_base}/{hostname}.img'.format(image_base=image_base,
+ hostname=hostname)
+ loc = 'http://{ssh_host}:5000/v2.0'.format(
+ ssh_host=self.host_machine.ssh_host, id=vm_id, path=rootpath)
+
+ options = {
+ 'type': 'openstack',
+ 'location': loc,
+ 'HOSTNAME': hostname,
+ 'DISK_SIZE': '5G',
+ 'RAM_SIZE': '2G',
+ 'VERSION_LABEL': 'release-test',
+ 'OPENSTACK_USER': os.environ['OS_USERNAME'],
+ 'OPENSTACK_TENANT': os.environ['OS_TENANT_NAME'],
+ 'OPENSTACK_PASSWORD': os.environ['OS_PASSWORD'],
+ 'OPENSTACK_IMAGENAME': hostname,
+ 'CLOUD_INIT': 'yes',
+ 'KERNEL_ARGS': 'console=tty0 console=ttyS0',
+ }
+
+ tempdir = tempfile.mkdtemp()
+ try:
+ options.update(
+ self._generate_sshkey_config(tempdir,
+ self.deployment_config))
+
+ # Deploy the image to openstack
+ args = ['morph', 'deploy', self.cluster_path, self.name]
+ for k, v in options.iteritems():
+ args.append('%s.%s=%s' % (self.name, k, v))
+ cliapp.runcmd(args, stdin=None, stdout=None, stderr=None)
+
+ config = dict(self.deployment_config)
+ config.update(options)
+
+ # Boot an instance from the image
+ args = ['nova', 'boot',
+ '--flavor', 'm1.medium',
+ '--image', hostname,
+ '--user-data', '/usr/lib/mason/os-init-script',
+ '--nic', "net-id=%s" % (self.net_id),
+ hostname]
+ output = cliapp.runcmd(args)
+
+ # Print nova boot output, with adminPass line removed
+ output_lines = output.split('\n')
+ for line in output_lines:
+ if line.find('adminPass') != -1:
+ password_line = line
+ output_lines.remove(password_line)
+ output = '\n'.join(output_lines)
+ print output
+
+ # Get ip address from nova list
+ nl = NovaList()
+ ip_addr = nl.get_nova_ip_for_instance_timeout(hostname)
+ print "IP address for instance %s: %s" % (hostname, ip_addr)
+
+ return DeployedSystemInstance(self, config, self.host_machine,
+ vm_id, rootpath, ip_addr, hostname)
+ finally:
+ shutil.rmtree(tempdir)
+
+
+class ReleaseApp(cliapp.Application):
+
+ """Cliapp application which handles automatic builds and tests"""
+
+ def add_settings(self):
+ """Add the command line options needed"""
+ group_main = 'Program Options'
+ self.settings.string_list(['deployment-host'],
+ 'ARCH:HOST:PATH that VMs can be deployed to',
+ default=None,
+ group=group_main)
+ self.settings.string(['trove-host'],
+ 'Address of Trove for test systems to build from',
+ default=None,
+ group=group_main)
+ self.settings.string(['trove-id'],
+ 'ID of Trove for test systems to build from',
+ default=None,
+ group=group_main)
+ self.settings.string(['build-ref-prefix'],
+ 'Prefix of build branches for test systems',
+ default=None,
+ group=group_main)
+ self.settings.string(['net-id'],
+ 'Openstack network ID',
+ default=None,
+ group=group_main)
+
+ @staticmethod
+ def _run_tests(instance, system_path, system_morph,
+ (trove_host, trove_id, build_ref_prefix),
+ morph_helper, systems):
+ instance.wait_until_online()
+
+ tests = []
+ def baserock_build_test(instance):
+ instance.runcmd(['git', 'config', '--global', 'user.name',
+ 'Test Instance of %s' % instance.deployment.name])
+ instance.runcmd(['git', 'config', '--global', 'user.email',
+ 'ci-test@%s' % instance.config['HOSTNAME']])
+ instance.runcmd(['mkdir', '-p', '/src/ws', '/src/cache',
+ '/src/tmp'])
+ def morph_cmd(*args, **kwargs):
+ # TODO: decide whether to use cached artifacts or not by
+ # adding --artifact-cache-server= --cache-server=
+ argv = ['morph', '--log=/src/morph.log', '--cachedir=/src/cache',
+ '--tempdir=/src/tmp', '--log-max=100M',
+ '--trove-host', trove_host, '--trove-id', trove_id,
+ '--build-ref-prefix', build_ref_prefix]
+ argv.extend(args)
+ instance.runcmd(argv, **kwargs)
+
+ repo = morph_helper.sb.root_repository_url
+ ref = morph_helper.defs_repo.HEAD
+ sha1 = morph_helper.defs_repo.resolve_ref_to_commit(ref)
+ morph_cmd('init', '/src/ws')
+ chdir = '/src/ws'
+
+ morph_cmd('checkout', repo, ref, chdir=chdir)
+ # TODO: Add a morph subcommand that gives the path to the root repository.
+ repo_path = os.path.relpath(
+ morph_helper.sb.get_git_directory_name(repo),
+ morph_helper.sb.root_directory)
+ chdir = os.path.join(chdir, ref, repo_path)
+
+ instance.runcmd(['git', 'reset', '--hard', sha1], chdir=chdir)
+ print 'Building test systems for {sys}'.format(sys=system_path)
+ for to_build_path, to_build_morph in systems.iteritems():
+ if to_build_morph['arch'] == system_morph['arch']:
+ print 'Test building {path}'.format(path=to_build_path)
+ morph_cmd('build', to_build_path, chdir=chdir,
+ stdin=None, stdout=None, stderr=None)
+ print 'Finished Building test systems'
+
+ def python_smoke_test(instance):
+ instance.runcmd(['python', '-c', 'print "Hello World"'])
+
+ # TODO: Come up with a better way of determining which tests to run
+ if 'devel' in system_path:
+ tests.append(baserock_build_test)
+ else:
+ tests.append(python_smoke_test)
+
+ for test in tests:
+ test(instance)
+
+ def deploy_and_test_systems(self, cluster_path,
+ deployment_hosts, build_test_config,
+ net_id):
+ """Run the deployments and tests"""
+
+ version = 'release-test'
+
+ morph_helper = MorphologyHelper()
+ cluster_morph = morph_helper.load_morphology(cluster_path)
+ systems = dict(morph_helper.load_cluster_systems(cluster_morph))
+
+ for system_path, deployment_name, deployment_config in \
+ morph_helper.iterate_cluster_deployments(cluster_morph):
+
+ system_morph = systems[system_path]
+ # We can only test systems in KVM that have a BSP
+ if not any('bsp' in si['morph'] for si in system_morph['strata']):
+ continue
+
+ # We can only test systems in KVM that we have a host for
+ if system_morph['arch'] not in deployment_hosts:
+ continue
+ host_machine = deployment_hosts[system_morph['arch']]
+ deployment = Deployment(cluster_path, deployment_name,
+ deployment_config, host_machine,
+ net_id)
+
+ instance = deployment.deploy()
+ try:
+ self._run_tests(instance, system_path, system_morph,
+ build_test_config, morph_helper, systems)
+ finally:
+ instance.delete()
+
+ def process_args(self, args):
+ """Process the command line args and kick off the builds/tests"""
+ if self.settings['build-ref-prefix'] is None:
+ self.settings['build-ref-prefix'] = (
+ os.path.join(self.settings['trove-id'], 'builds'))
+ for setting in ('deployment-host', 'trove-host',
+ 'trove-id', 'build-ref-prefix', 'net-id'):
+ self.settings.require(setting)
+
+ deployment_hosts = {}
+ for host_config in self.settings['deployment-host']:
+ arch, address = host_config.split(':', 1)
+ user, address = address.split('@', 1)
+ address, disk_path = address.split(':', 1)
+ if user == '':
+ user = 'root'
+ # TODO: Don't assume root is the user with deploy access
+ deployment_hosts[arch] = VMHost(user, address, disk_path)
+
+ build_test_config = (self.settings['trove-host'],
+ self.settings['trove-id'],
+ self.settings['build-ref-prefix'])
+
+ if len(args) != 1:
+ raise cliapp.AppException('Usage: release-test CLUSTER')
+ cluster_path = morphlib.util.sanitise_morphology_path(args[0])
+ self.deploy_and_test_systems(cluster_path, deployment_hosts,
+ build_test_config,
+ self.settings['net-id'])
+
+
+if __name__ == '__main__':
+ ReleaseApp().run()
diff --git a/strata/NetworkManager-common.morph b/strata/NetworkManager-common.morph
index 7233d84f..44adc1fb 100644
--- a/strata/NetworkManager-common.morph
+++ b/strata/NetworkManager-common.morph
@@ -7,7 +7,8 @@ build-depends:
chunks:
- name: libndp
repo: upstream:libndp
- ref: master
+ ref: f3a3a63d5b5abced8f75731d7b995606933c6e33
+ unpetrify-ref: v1.4
build-depends: []
- name: NetworkManager
morph: strata/NetworkManager-common/NetworkManager.morph
diff --git a/strata/audio-bluetooth.morph b/strata/audio-bluetooth.morph
index a24158b6..0c67ee5c 100644
--- a/strata/audio-bluetooth.morph
+++ b/strata/audio-bluetooth.morph
@@ -10,16 +10,15 @@ chunks:
unpetrify-ref: baserock/morph
build-depends: []
- name: alsa-lib
- morph: strata/audio-bluetooth/alsa-lib.morph
repo: upstream:alsa-lib
- ref: ab715503853be8d8f365fd157c3cb97ef7a89f7b
- unpetrify-ref: baserock/morph
+ ref: 9cfd1faa27511edbb8bebbab85030125f33590ae
+ unpetrify-ref: v1.0.28
build-depends: []
- name: alsa-utils
morph: strata/audio-bluetooth/alsa-utils.morph
repo: upstream:alsa-utils
- ref: f12208425051a7abf5ffc87ac2b9d2bd9e096fe1
- unpetrify-ref: baserock/morph
+ ref: bbf137f66b2c8ce36db73f59ee69d5c443436524
+ unpetrify-ref: v1.0.28
build-depends:
- alsa-lib
- name: libical
@@ -70,8 +69,8 @@ chunks:
- name: ofono
morph: strata/audio-bluetooth/ofono.morph
repo: upstream:ofono
- ref: a53228f6b1b32d0405c0c3c8e0861d6202ffbba2
- unpetrify-ref: baserock/morph
+ ref: d05b718cc0b0d367227fbfbf52e60fc5462cc549
+ unpetrify-ref: "1.15"
build-depends:
- mobile-broadband-provider-info
- bluez
diff --git a/strata/audio-bluetooth/alsa-lib.morph b/strata/audio-bluetooth/alsa-lib.morph
deleted file mode 100644
index 1e3015ca..00000000
--- a/strata/audio-bluetooth/alsa-lib.morph
+++ /dev/null
@@ -1,4 +0,0 @@
-name: alsa-lib
-kind: chunk
-description: ALSA library
-build-system: autotools
diff --git a/strata/baserock-import.morph b/strata/baserock-import.morph
new file mode 100644
index 00000000..6e875e8c
--- /dev/null
+++ b/strata/baserock-import.morph
@@ -0,0 +1,31 @@
+name: baserock-import
+kind: stratum
+description: Tools for importing software into Baserock definitions.
+build-depends:
+- morph: strata/morph-utils.morph
+chunks:
+- name: ansicolor
+ repo: upstream:python-packages/ansicolor
+ ref: 9d3adbaff35bb6cde1d63414a8cc72f572c4d0ef
+ unpetrify-ref: 0.2.4
+ build-depends: []
+- name: python-decorator
+ repo: upstream:python-packages/python-decorator
+ ref: b02f7a254c3679dfac57a824e08dd02ced850636
+ unpetrify-ref: decorator-3.4.0
+ build-depends: []
+- name: networkx
+ repo: upstream:python-packages/networkx
+ ref: 8ac796aba866ade1a56b83e30f25ed392ca3512c
+ unpetrify-ref: networkx-1.9.1
+ build-depends: []
+- name: requests-cache
+ repo: upstream:python-packages/requests-cache
+ ref: a1b5e65ccd715f1e8434f18f27913715340d6aaf
+ unpetrify-ref: 0.4.6
+ build-depends: []
+- name: baserock-import
+ repo: baserock:baserock/import
+ ref: edd18a77973d8cd12b09bc6e3ac06fecd72a7e45
+ unpetrify-ref: master
+ build-depends: []
diff --git a/strata/bsp-armv7-highbank.morph b/strata/bsp-armv7-highbank.morph
index d17d9c66..d5ff1264 100644
--- a/strata/bsp-armv7-highbank.morph
+++ b/strata/bsp-armv7-highbank.morph
@@ -7,6 +7,6 @@ chunks:
- name: linux-armv7-highbank
morph: strata/bsp-armv7-highbank/linux-armv7-highbank.morph
repo: upstream:linux
- ref: d67a0e110187abd560a1de63fa172894a52839d5
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends: []
diff --git a/strata/bsp-armv7-highbank/linux-armv7-highbank.morph b/strata/bsp-armv7-highbank/linux-armv7-highbank.morph
index 58ad90b4..dfebf69c 100644
--- a/strata/bsp-armv7-highbank/linux-armv7-highbank.morph
+++ b/strata/bsp-armv7-highbank/linux-armv7-highbank.morph
@@ -37,6 +37,8 @@ configure-commands:
- scripts/config -e TMPFS
- scripts/config -e TMPFS_POSIX_ACL
- scripts/config -e VFAT_FS
+- scripts/config -e VLAN_8021Q
+- scripts/config -e BRIDGE_VLAN_FILTERING
- yes '' | make oldconfig
build-commands:
- make zImage $MAKEFLAGS
diff --git a/strata/bsp-armv7-versatile.morph b/strata/bsp-armv7-versatile.morph
index 801f5287..63d79667 100644
--- a/strata/bsp-armv7-versatile.morph
+++ b/strata/bsp-armv7-versatile.morph
@@ -8,6 +8,6 @@ chunks:
- name: linux-armv7-versatile
morph: strata/bsp-armv7-versatile/linux-armv7-versatile.morph
repo: upstream:linux
- ref: d67a0e110187abd560a1de63fa172894a52839d5
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends: []
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.morph b/strata/bsp-armv7b-highbank.morph
index fe8c30e1..16dd9a17 100644
--- a/strata/bsp-armv7b-highbank.morph
+++ b/strata/bsp-armv7b-highbank.morph
@@ -7,6 +7,6 @@ chunks:
- name: linux-armv7b-highbank
morph: strata/bsp-armv7b-highbank/linux-armv7b-highbank.morph
repo: upstream:linux
- ref: d67a0e110187abd560a1de63fa172894a52839d5
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends: []
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.morph b/strata/bsp-armv7b-vexpress-tc2.morph
index 81d6fe48..440271de 100644
--- a/strata/bsp-armv7b-vexpress-tc2.morph
+++ b/strata/bsp-armv7b-vexpress-tc2.morph
@@ -7,6 +7,6 @@ chunks:
- name: linux-armv7b-vexpress-tc2
morph: strata/bsp-armv7b-vexpress-tc2/linux-armv7b-vexpress-tc2.morph
repo: upstream:linux
- ref: d67a0e110187abd560a1de63fa172894a52839d5
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends: []
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 a8fc696a..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: c77921345b943cdf5f2f28bbe88c6d8970620d2e
- unpetrify-ref: baserock/jetson/u-boot-tegra-next
- 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/nouveau-drm.morph b/strata/bsp-jetson-genivi/nouveau-drm.morph
deleted file mode 100644
index e89df38b..00000000
--- a/strata/bsp-jetson-genivi/nouveau-drm.morph
+++ /dev/null
@@ -1,10 +0,0 @@
-name: nouveau-drm
-kind: chunk
-build-commands:
- - cd drm && make M=$(pwd) -C /usr/src/linux/ modules
-install-commands:
- - cd drm && make M="$(pwd)" -C /usr/src/linux/ INSTALL_MOD_PATH="$DESTDIR" modules_install
-system-integration:
- nouveau-drm-misc:
- 00-earlyconf:
- - (cd /lib/modules && for version in *; do depmod -a "$version"; done)
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..111402a7 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,40 @@ 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
+- name: u-boot@jetson
+ morph: strata/bsp-jetson/u-boot@jetson.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
- build-depends:
- - u-boot
+ ref: 682c943b0159b1a4105f31020605bf8a0f155ffd
+ unpetrify-ref: baserock/v3.18-with-cpufreq
+ build-depends: []
- 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/nouveau-drm.morph b/strata/bsp-jetson/nouveau-drm.morph
new file mode 100644
index 00000000..e297a069
--- /dev/null
+++ b/strata/bsp-jetson/nouveau-drm.morph
@@ -0,0 +1,12 @@
+name: nouveau-drm
+kind: chunk
+build-commands:
+ - cd drm && make ARCH=arm M=$(pwd) -C /usr/src/linux/ modules
+install-commands:
+ - cd drm && make ARCH=arm M="$(pwd)" -C /usr/src/linux/ INSTALL_MOD_PATH="$DESTDIR" modules_install
+system-integration:
+ nouveau-drm-misc:
+ 00-earlyconf:
+ - (cd /lib/modules && for version in *; do rm "$version/kernel/drivers/gpu/drm/nouveau/nouveau.ko"; done)
+ - (cd /lib/modules && for version in *; do rm "$version/kernel/drivers/gpu/drm/nouveau/nouveau_platform.ko"; done)
+ - (cd /lib/modules && for version in *; do depmod -a "$version"; done)
diff --git a/strata/bsp-jetson-devel/u-boot.morph b/strata/bsp-jetson/u-boot@jetson.morph
index 705b3851..533f253a 100644
--- a/strata/bsp-jetson-devel/u-boot.morph
+++ b/strata/bsp-jetson/u-boot@jetson.morph
@@ -1,4 +1,4 @@
-name: u-boot
+name: u-boot@jetson
kind: chunk
configure-commands:
- make ARCH=arm jetson-tk1_config
@@ -8,7 +8,11 @@ build-commands:
install-commands:
- mkdir -p "$DESTDIR$PREFIX/bin"
- mkdir -p "$DESTDIR/boot"
+- mkdir -p "$DESTDIR/boot/u-boot/"
- install -m 755 u-boot-dtb-tegra.bin "$DESTDIR/boot/u-boot.bin"
+- install -m 755 u-boot-nodtb-tegra.bin "$DESTDIR/boot/u-boot/u-boot-nodtb-tegra.bin"
+- install -m 755 u-boot.dtb "$DESTDIR/boot/u-boot/u-boot.dtb"
+- size -A u-boot | grep -w .bss | tr -s ' ' | cut -d ' ' -f 2 > "$DESTDIR/boot/u-boot/u-boot-bss-size"
- 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/."
diff --git a/strata/bsp-ppc64-generic.morph b/strata/bsp-ppc64-generic.morph
index cbb0b201..f109ecf2 100644
--- a/strata/bsp-ppc64-generic.morph
+++ b/strata/bsp-ppc64-generic.morph
@@ -7,6 +7,6 @@ chunks:
- name: linux-ppc64
morph: strata/bsp-ppc64-generic/linux-ppc64.morph
repo: upstream:linux
- ref: d67a0e110187abd560a1de63fa172894a52839d5
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends: []
diff --git a/strata/bsp-wandboard.morph b/strata/bsp-wandboard.morph
index 4b07b150..6f829802 100644
--- a/strata/bsp-wandboard.morph
+++ b/strata/bsp-wandboard.morph
@@ -4,8 +4,8 @@ description: The platform dependent components required to boot an wandboard ARM
build-depends:
- morph: strata/core.morph
chunks:
-- name: u-boot
- morph: strata/bsp-wandboard/u-boot.morph
+- name: u-boot@wandboard
+ morph: strata/bsp-wandboard/u-boot@wandboard.morph
repo: upstream:u-boot
ref: fe57382d04b46c37f34cf8d3b3ad876554fd12bf
unpetrify-ref: baserock/morph
@@ -13,7 +13,7 @@ chunks:
- name: linux-armv7-wandboard
morph: strata/bsp-wandboard/linux-armv7-wandboard.morph
repo: upstream:linux
- ref: 9573986cf27ff44814f3efb1f1e95638406db456
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends:
- - u-boot
+ - u-boot@wandboard
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-wandboard/u-boot.morph b/strata/bsp-wandboard/u-boot@wandboard.morph
index 9be30bc7..8a51ee7c 100644
--- a/strata/bsp-wandboard/u-boot.morph
+++ b/strata/bsp-wandboard/u-boot@wandboard.morph
@@ -1,4 +1,4 @@
-name: u-boot
+name: u-boot@wandboard
kind: chunk
build-commands:
- make tools
diff --git a/strata/bsp-x86_32-generic.morph b/strata/bsp-x86_32-generic.morph
index 303dd777..480bd702 100644
--- a/strata/bsp-x86_32-generic.morph
+++ b/strata/bsp-x86_32-generic.morph
@@ -8,8 +8,8 @@ chunks:
- name: linux-x86-32-generic
morph: strata/bsp-x86_32-generic/linux-x86-32-generic.morph
repo: upstream:linux
- ref: d67a0e110187abd560a1de63fa172894a52839d5
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends: []
- name: nasm
morph: strata/bsp-x86_32-generic/nasm.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..a24a34c5 100644
--- a/strata/bsp-x86_64-generic.morph
+++ b/strata/bsp-x86_64-generic.morph
@@ -8,8 +8,8 @@ chunks:
- name: linux-x86-64-generic
morph: strata/bsp-x86_64-generic/linux-x86-64-generic.morph
repo: upstream:linux
- ref: d67a0e110187abd560a1de63fa172894a52839d5
- unpetrify-ref: baserock/morph
+ ref: b2776bf7149bddd1f4161f14f79520f17fc1d71d
+ unpetrify-ref: v3.18
build-depends: []
- name: nasm
morph: strata/bsp-x86_64-generic/nasm.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/c2man/c2man.morph b/strata/c2man/c2man.morph
new file mode 100644
index 00000000..93390d2d
--- /dev/null
+++ b/strata/c2man/c2man.morph
@@ -0,0 +1,11 @@
+name: c2man
+kind: chunk
+configure-commands:
+- ./Configure -d -e
+build-commands:
+- make LEX=flex
+install-commands:
+- mkdir -p $DESTDIR$PREFIX/bin
+- mkdir -p $DESTDIR$PREFIX/lib
+- mkdir -p $DESTDIR$PREFIX/man
+- make install bin=$DESTDIR$PREFIX/bin privlib=$DESTDIR$PREFIX/lib/c2man mansrc=$DESTDIR$PREFIX/man
diff --git a/strata/connectivity.morph b/strata/connectivity.morph
index a8697f3a..2cc6bb69 100644
--- a/strata/connectivity.morph
+++ b/strata/connectivity.morph
@@ -11,12 +11,12 @@ chunks:
- name: wpa_supplicant
morph: strata/connectivity/wpa_supplicant.morph
repo: upstream:hostap
- ref: 1cdfb99c3a04235697dc6979b9eb5418861e42f8
- unpetrify-ref: baserock/genivi/morph
+ ref: c4a58c968044c2002706b1a69c089c4d63728e77
+ unpetrify-ref: baserock/hostap_2_3
build-depends:
- libnl
- name: iptables
repo: upstream:iptables
- ref: 3e6fa55d5e28c93f417afeae7a7d4f349ddffcf4
- unpetrify-ref: baserock/morph
+ ref: 482c6d3731e2681cb4baae835c294840300197e6
+ unpetrify-ref: v1.4.21
build-depends: []
diff --git a/strata/core.morph b/strata/core.morph
index 5c90c964..a1fc9a10 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
@@ -89,12 +89,6 @@ chunks:
ref: 3590145af6f1c9fa321dff231f69ae696e7e740b
unpetrify-ref: baserock/bash-4.3-patch-27
build-depends: []
-- name: error-perl-tarball
- repo: upstream:error-perl-tarball
- ref: 661707e7bd4282aeab5a2f6a8f02ca5731fd813f
- unpetrify-ref: baserock/morph
- build-depends:
- - perl
- name: flex
morph: strata/core/flex.morph
repo: upstream:flex
@@ -105,8 +99,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
@@ -205,13 +199,12 @@ chunks:
- name: git
morph: strata/core/git.morph
repo: upstream:git
- ref: 43efcf42382e87de4aa423e5e1607958ad1717d0
- unpetrify-ref: baserock/morph
+ ref: 49c3e926349e964b311b46251bb2b97d3d669855
+ unpetrify-ref: v2.1.3
build-depends:
- autoconf
- cpython
- curl
- - error-perl-tarball
- gettext
- libexpat
- openssl-new
@@ -226,8 +219,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
@@ -279,9 +272,9 @@ chunks:
- texinfo-tarball
- name: python-setuptools
morph: strata/core/python-setuptools.morph
- repo: upstream:python-setuptools
- ref: 05b07a427a1eae2a51d527f7ac5135a8fd215d77
- unpetrify-ref: baserock/morph
+ repo: upstream:python-setuptools-bitbucket
+ ref: 0aa6a4de5931d02876428388678802db2371fd37
+ unpetrify-ref: baserock/master
build-depends:
- cpython
- name: pyyaml
@@ -302,3 +295,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/core/git.morph b/strata/core/git.morph
index 62932b0d..765f4a5c 100644
--- a/strata/core/git.morph
+++ b/strata/core/git.morph
@@ -1,6 +1,7 @@
name: git
kind: chunk
+build-system: autotools
+pre-configure-commands:
+- make configure
build-commands:
-- make prefix=${PREFIX-/usr} all PYTHON_PATH=${PREFIX-/usr}/bin/python NO_TCLTK=YesPlease
-install-commands:
-- make prefix=${PREFIX-/usr} install
+- make all
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/cross-bootstrap.morph b/strata/cross-bootstrap.morph
index f6a627b8..9687ac7e 100644
--- a/strata/cross-bootstrap.morph
+++ b/strata/cross-bootstrap.morph
@@ -54,7 +54,7 @@ chunks:
- name: cmdtest
morph: strata/cross-bootstrap/cmdtest.morph
repo: upstream:cmdtest
- ref: 62fa7e08f76a5b6bb8410add49c40656b3e73acd
+ ref: ac91791842c6e7e6eda3213916af413255999c7b
unpetrify-ref: baserock/morph
build-depends:
- cliapp
@@ -74,7 +74,7 @@ chunks:
- six
- name: morph
repo: baserock:baserock/morph
- ref: 53e1b30f654d05a26a999a0ad7b8ff9c1895aef6
+ ref: 67afd098cd297b769b1341a460d160a2902ba4e4
unpetrify-ref: master
build-depends:
- cliapp
diff --git a/strata/enlightenment.morph b/strata/enlightenment.morph
index 7ef6e22a..845e7fab 100644
--- a/strata/enlightenment.morph
+++ b/strata/enlightenment.morph
@@ -6,42 +6,56 @@ build-depends:
- morph: strata/x-generic.morph
- morph: strata/lua.morph
- morph: strata/audio-bluetooth.morph
-- morph: strata/multimedia-gstreamer-0.10.morph
+- morph: strata/multimedia.morph
- morph: strata/connman-common.morph
chunks:
+- name: fribidi
+ repo: upstream:fribidi
+ ref: c9916f2ab289126a32febcc4754efc73a011fb0c
+ unpetrify-ref: baserock/morph/0.19.6
+ build-depends: []
+- name: bullet3
+ morph: strata/enlightenment/bullet3.morph
+ repo: upstream:bullet3
+ ref: 940059ddb3c4476bb9860f79f35b0b1230857f54
+ unpetrify-ref: baserock/morph
+ build-depends: []
- name: efl
morph: strata/enlightenment/efl.morph
repo: upstream:enlightenment/efl
- ref: 8f9b565e79552f09a39507ce802786b1fe773d2d
- unpetrify-ref: baserock/morph
- build-depends: []
+ ref: 3013a7c5cbd728dd9bc5516ffb4bd4f505888bd4
+ unpetrify-ref: v1.12.0
+ build-depends:
+ - bullet3
+ - fribidi
+ - luajit2
- name: elementary
morph: strata/enlightenment/elementary.morph
repo: upstream:enlightenment/elementary
- ref: e4c97ddffea9c91a291e1a6a7c6ebd1bbf47629a
- unpetrify-ref: baserock/morph
+ ref: c4fbbbf984b7bd1553191c26459bce4589122ad5
+ unpetrify-ref: v1.12.0
build-depends:
- efl
- name: evas_generic_loaders
morph: strata/enlightenment/evas_generic_loaders.morph
repo: upstream:enlightenment/evas_generic_loaders
- ref: ddbdaa35201f4ef64f1a3f3b067a99e84c14565a
- unpetrify-ref: baserock/morph
+ ref: 5d4415ec1e64930452f7d17cbec4c28a0efa8402
+ unpetrify-ref: v1.12.0
build-depends:
- efl
- name: enlightenment
morph: strata/enlightenment/enlightenment.morph
repo: upstream:enlightenment/enlightenment
- ref: 041b8d14a22f9e4c7f34abe8b0f9a3a1f5933146
- unpetrify-ref: baserock/morph
+ ref: 55165e2576823780a1053b03c5230cc8df8957b5
+ unpetrify-ref: v0.19.1
build-depends:
- efl
- elementary
- name: imlib2
morph: strata/enlightenment/imlib2.morph
repo: upstream:enlightenment/imlib2
- ref: 6d02661a4c57771888304960ce62d4fdf587be8f
- unpetrify-ref: baserock/morph
+ ref: f2f20dc5791a175be398a17fcdc4852a79079d47
+ unpetrify-ref: baserock/1.4.6
build-depends:
- efl
- elementary
@@ -50,7 +64,6 @@ chunks:
morph: strata/enlightenment/libast.morph
repo: upstream:enlightenment/libast
ref: 0dbc0a5df55474bf61ca166be40e8de2d9e3a031
- unpetrify-ref: baserock/morph
build-depends:
- efl
- elementary
diff --git a/strata/enlightenment/bullet3.morph b/strata/enlightenment/bullet3.morph
new file mode 100644
index 00000000..74cb097a
--- /dev/null
+++ b/strata/enlightenment/bullet3.morph
@@ -0,0 +1,8 @@
+name: bullet
+kind: chunk
+configure-commands:
+- cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_SHARED_LIBS=ON
+build-commands:
+- make
+install-commands:
+- make DESTDIR="$DESTDIR" install
diff --git a/strata/enlightenment/efl.morph b/strata/enlightenment/efl.morph
index ca1c0b57..b2a013ae 100644
--- a/strata/enlightenment/efl.morph
+++ b/strata/enlightenment/efl.morph
@@ -1,9 +1,8 @@
name: efl
kind: chunk
configure-commands:
-- ./autogen.sh --prefix=/usr --with-tests=none --disable-fribidi --disable-image-loader-gif
- --disable-image-loader-tiff --disable-pulseaudio --disable-gstreamer --disable-audio
- --disable-physics
+- ./autogen.sh --prefix=/usr --with-tests=none --disable-image-loader-gif --enable-systemd
+ --disable-image-loader-tiff
build-commands:
- make VPATH=/usr/lib64
install-commands:
diff --git a/strata/erlang.morph b/strata/erlang.morph
index 05a8e090..657b07be 100644
--- a/strata/erlang.morph
+++ b/strata/erlang.morph
@@ -7,6 +7,6 @@ chunks:
- name: erlang
morph: strata/erlang/erlang.morph
repo: upstream:erlang
- ref: d307c9520644d17d5f7597c0154888e2d570b107
- unpetrify-ref: baserock/morph
+ ref: 9417f044ee3c291c2ea343c203aebdcc40597226
+ unpetrify-ref: OTP-17.3.4
build-depends: []
diff --git a/strata/foundation.morph b/strata/foundation.morph
index f321eb87..10111805 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
@@ -54,14 +54,12 @@ chunks:
- libusbx
- name: glib
repo: upstream:glib
- ref: 3f8f040349ae821854bccb2c3535a58b0ee66803
- unpetrify-ref: baserock/2.40.0
+ ref: 4125415e7f4d1213fc7122beac0d91af08e37b28
build-depends:
- libffi
- name: gobject-introspection
repo: upstream:gobject-introspection
- ref: 6750a92ca83aa301eeac5eb59e918576fe544231
- unpetrify-ref: baserock/GOBJECT_INTROSPECTION_1_40_0
+ ref: a543d8563f8e9ca059afb7218c63496f577cd0fc
build-depends:
- glib
- name: dbus-pre
@@ -71,18 +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
- - pciutils
- - usbutils
+ - libgcrypt
- name: lzo
morph: strata/foundation/lzo.morph
repo: upstream:lzo
@@ -123,16 +129,10 @@ 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
- ref: 3190be6906eb21a1ba6878d3c8edb4bd16f925d7
+ ref: 47fb728f2432929868666afc915dbc5a64836c08
unpetrify-ref: master
build-depends:
- attr
diff --git a/strata/foundation/systemd.morph b/strata/foundation/systemd.morph
index 2a1933d7..c298748a 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=e*
+
+ [Network]
+ DHCP=yes
+ EOF
diff --git a/strata/genivi-foundation.morph b/strata/genivi-foundation.morph
deleted file mode 100644
index 2dd44f40..00000000
--- a/strata/genivi-foundation.morph
+++ /dev/null
@@ -1,12 +0,0 @@
-name: genivi-foundation
-kind: stratum
-description: Basic components needed by the GENIVI baseline.
-build-depends:
-- morph: strata/foundation.morph
-chunks:
-- name: linuxquota
- morph: strata/genivi-foundation/linuxquota.morph
- repo: upstream:linuxquota
- ref: 0804c89a16736533e440771dc42a15e5d0223902
- unpetrify-ref: baserock/genivi/morph
- build-depends: []
diff --git a/strata/genivi-wayland-generic.morph b/strata/genivi-wayland-generic.morph
deleted file mode 100644
index 3f9eb240..00000000
--- a/strata/genivi-wayland-generic.morph
+++ /dev/null
@@ -1,15 +0,0 @@
-name: genivi-wayland-generic
-kind: stratum
-description: Software components designed by genivi, for genivi.
-build-depends:
-- morph: strata/core.morph
-- morph: strata/foundation.morph
-- morph: strata/genivi-foundation.morph
-- morph: strata/genivi.morph
-- morph: strata/wayland-generic.morph
-chunks:
-- name: layer_management-wayland
- repo: upstream:layer_management
- ref: 206d6709d0a3b3932a02b30ccacaa02b3eab8493
- unpetrify-ref: baserock/genivi/baseline
- build-depends: []
diff --git a/strata/genivi-x-generic.morph b/strata/genivi-x-generic.morph
deleted file mode 100644
index 47b912bb..00000000
--- a/strata/genivi-x-generic.morph
+++ /dev/null
@@ -1,13 +0,0 @@
-name: genivi-x-generic
-kind: stratum
-description: Software components designed by genivi, for genivi.
-build-depends:
-- morph: strata/genivi.morph
-- morph: strata/x-generic.morph
-chunks:
-- name: layer_management
- morph: strata/genivi-x-generic/layer_management.morph
- repo: upstream:layer_management
- ref: 206d6709d0a3b3932a02b30ccacaa02b3eab8493
- unpetrify-ref: baserock/genivi/baseline
- build-depends: []
diff --git a/strata/genivi-x-generic/layer_management.morph b/strata/genivi-x-generic/layer_management.morph
deleted file mode 100644
index f4840604..00000000
--- a/strata/genivi-x-generic/layer_management.morph
+++ /dev/null
@@ -1,8 +0,0 @@
-name: layer_management
-kind: chunk
-configure-commands:
-- mkdir -p build && cd build && cmake .. -DWITH_GLESv2_LIB=ON
-build-commands:
-- make -C build
-install-commands:
-- make -C build install
diff --git a/strata/genivi.morph b/strata/genivi.morph
index b75861ca..24050b4c 100644
--- a/strata/genivi.morph
+++ b/strata/genivi.morph
@@ -2,8 +2,14 @@ name: genivi
kind: stratum
description: Software components designed by genivi, for genivi.
build-depends:
-- morph: strata/genivi-foundation.morph
+- morph: strata/foundation.morph
chunks:
+- name: linuxquota
+ morph: strata/genivi/linuxquota.morph
+ repo: upstream:linuxquota
+ ref: 0804c89a16736533e440771dc42a15e5d0223902
+ unpetrify-ref: baserock/genivi/morph
+ build-depends: []
- name: DLT-daemon
repo: upstream:DLT-daemon
ref: 8b48e73f79b4463393916e4c6696917e3dedd026
@@ -12,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
@@ -31,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
@@ -65,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/genivi-foundation/linuxquota.morph b/strata/genivi/linuxquota.morph
index 826696ad..826696ad 100644
--- a/strata/genivi-foundation/linuxquota.morph
+++ b/strata/genivi/linuxquota.morph
diff --git a/strata/graphics-common.morph b/strata/graphics-common.morph
index f5b884ce..b187df8f 100644
--- a/strata/graphics-common.morph
+++ b/strata/graphics-common.morph
@@ -41,9 +41,10 @@ chunks:
unpetrify-ref: Release-v4-0-3
build-depends: []
- name: cairo
+ morph: strata/graphics-common/cairo.morph
repo: upstream:cairo
- ref: c373daa9d4bade91b3fc8b7850163db4b3aec40a
- unpetrify-ref: baserock/genivi/1.12.10
+ ref: f6fd372a8b31a0bebbdfe36090d6ffc7bab9a2f8
+ unpetrify-ref: 1.14.0
build-depends:
- fontconfig
- freetype2
@@ -55,13 +56,3 @@ chunks:
unpetrify-ref: baserock/0.9.12
build-depends:
- freetype2
-- name: pango
- repo: upstream:pango
- ref: f8b1566e81af9e36ac018af4f0ae85ee7db4b8fd
- unpetrify-ref: baserock/1.36.3
- build-depends:
- - cairo
- - harfbuzz
- - fontconfig
- - freetype2
- - freefont-otf
diff --git a/strata/graphics-common/cairo.morph b/strata/graphics-common/cairo.morph
new file mode 100644
index 00000000..f91ac385
--- /dev/null
+++ b/strata/graphics-common/cairo.morph
@@ -0,0 +1,5 @@
+name: cairo
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --enable-glesv2
diff --git a/strata/gtk-deps.morph b/strata/gtk-deps.morph
index 6c5db84a..799ba87a 100644
--- a/strata/gtk-deps.morph
+++ b/strata/gtk-deps.morph
@@ -6,6 +6,11 @@ build-depends:
- morph: strata/graphics-common.morph
- morph: strata/x-common.morph
chunks:
+- name: pango
+ repo: upstream:pango
+ ref: e0a21abf52a0b7588b1aa3357818948816ed9103
+ unpetrify-ref: 1.36.8
+ build-depends: []
- name: shared-mime-info
morph: strata/gtk-deps/shared-mime-info.morph
repo: upstream:shared-mime-info
@@ -20,8 +25,8 @@ chunks:
- name: gdk-pixbuf
morph: strata/gtk-deps/gdk-pixbuf.morph
repo: upstream:gdk-pixbuf
- ref: bc45874c7ba5a6a95f032b48ab78115b3e2238ad
- unpetrify-ref: baserock/morph
+ ref: b86959aa16e9d49ec6e286bc57d36c5249578c59
+ unpetrify-ref: 2.30.8
build-depends: []
- name: atk
repo: upstream:atk
diff --git a/strata/gtk-deps/gdk-pixbuf.morph b/strata/gtk-deps/gdk-pixbuf.morph
index 5cb16917..c89c75c8 100644
--- a/strata/gtk-deps/gdk-pixbuf.morph
+++ b/strata/gtk-deps/gdk-pixbuf.morph
@@ -3,6 +3,4 @@ kind: chunk
build-system: autotools
install-commands:
- make DESTDIR=$DESTDIR install
-- install -d "$DESTDIR/lib/systemd/system/multi-user.target.wants"
-- install -m 0644 systemd/gdk-pixbuf-cache-loaders.service "$DESTDIR/lib/systemd/system"
-- ln -s ../gdk-pixbuf-cache-loaders.service "$DESTDIR/lib/systemd/system/multi-user.target.wants/gdk-pixbuf-cache-loaders.service"
+- LD_LIBRARY_PATH=$DESTDIR/usr/lib $DESTDIR/usr/bin/gdk-pixbuf-query-loaders > $DESTDIR/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
diff --git a/strata/gtk3.morph b/strata/gtk3.morph
index d70c5b5f..f471bf6e 100644
--- a/strata/gtk3.morph
+++ b/strata/gtk3.morph
@@ -3,12 +3,17 @@ kind: stratum
description: the gtk3 stratum
build-depends:
- morph: strata/gtk-deps.morph
-- morph: strata/x-generic.morph
- morph: strata/wayland-generic.morph
chunks:
+- name: libepoxy
+ repo: upstream:libepoxy
+ ref: 7422de5b4be7b19d789136b3bb5f932de42db27c
+ unpetrify-ref: v1.2
+ build-depends: []
- name: gtk3
morph: strata/gtk3/gtk3.morph
repo: upstream:gtk+
- ref: f36770fd0566cafb0a0803e5d80047a41ae68f7d
- unpetrify-ref: baserock/morph-gtk-3
- build-depends: []
+ ref: 911f3fb6d29f1570a2d30db6f2085d0202e7ad2a
+ unpetrify-ref: 3.15.0
+ build-depends:
+ - libepoxy
diff --git a/strata/gtk3/gtk3.morph b/strata/gtk3/gtk3.morph
index 76007474..4542dc15 100644
--- a/strata/gtk3/gtk3.morph
+++ b/strata/gtk3/gtk3.morph
@@ -4,7 +4,7 @@ build-system: autotools
configure-commands:
- gdk-pixbuf-query-loaders > loader.cache
- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX"
+- ./configure --prefix="$PREFIX" --enable-wayland-backend
build-commands:
- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make
install-commands:
diff --git a/strata/input-common.morph b/strata/input-common.morph
index 0e9d25e6..533eff22 100644
--- a/strata/input-common.morph
+++ b/strata/input-common.morph
@@ -7,23 +7,23 @@ chunks:
- name: mtdev
repo: upstream:mtdev-git
ref: 4381b78fea54de0e775bf54952b2f95e5a06c57d
- unpetrify-ref: baserock/genivi/baseline
+ unpetrify-ref: v1.1.5
build-depends: []
- name: xkeyboard-config
morph: strata/input-common/xkeyboard-config.morph
repo: upstream:xkeyboard-config
- ref: bc3ac1b0d152e929b3532a541596cf9fe286bb9e
- unpetrify-ref: xkeyboard-config-2.12
+ ref: 73aa90ce32967747c84a1b5fe32cee329bc3bbcf
+ unpetrify-ref: xkeyboard-config-2.13
build-depends: []
- name: libevdev
repo: upstream:libevdev
- ref: b23649e1ba9fd5c72fa9318e417b4f17f5f6f528
- unpetrify-ref: baserock/genivi/baseline
+ ref: 7ac00d7e920c56bb8617403699030a5300bfae1c
+ unpetrify-ref: libevdev-1.3.2
build-depends: []
- name: libinput
repo: upstream:libinput
- ref: bb10ec84d3704fc0fb40591bcbffe90f6c77966d
- unpetrify-ref: 0.5.0
+ ref: 06e2f522a4ab5ea0a1de68cce1b5f9fff568ed4f
+ unpetrify-ref: 0.7.0
build-depends:
- mtdev
- libevdev
diff --git a/strata/installer-utils.morph b/strata/installer-utils.morph
new file mode 100644
index 00000000..b97a7c09
--- /dev/null
+++ b/strata/installer-utils.morph
@@ -0,0 +1,12 @@
+name: installer-utils
+kind: stratum
+description: stratum for Baserock installer script.
+build-depends:
+- morph: strata/build-essential.morph
+chunks:
+- name: installer-scripts
+ morph: strata/installer-utils/installer-scripts.morph
+ repo: baserock:baserock/installer-scripts
+ ref: master
+ unpetrify-ref: master
+ build-depends: []
diff --git a/strata/installer-utils/installer-scripts.morph b/strata/installer-utils/installer-scripts.morph
new file mode 100644
index 00000000..e42313a8
--- /dev/null
+++ b/strata/installer-utils/installer-scripts.morph
@@ -0,0 +1,4 @@
+name: installer-scripts
+kind: chunk
+install-commands:
+- install -D -m 755 baserock-installer "$DESTDIR/usr/lib/baserock-installer/installer"
diff --git a/strata/libdrm-common.morph b/strata/libdrm-common.morph
index 37bff746..e364bab2 100644
--- a/strata/libdrm-common.morph
+++ b/strata/libdrm-common.morph
@@ -11,7 +11,7 @@ chunks:
- name: drm
repo: upstream:drm
morph: strata/libdrm-common/drm.morph
- ref: bcac0a17407dc78d0813b2eea7fae7c34de54c1b
- unpetrify-ref: baserock/jetson/drm
+ ref: 83b2c40922ce451f5844aae0707ae9783a78d74f
+ unpetrify-ref: baserock/drm_2.4.58/jetson
build-depends:
- xorg-lib-libpciaccess
diff --git a/strata/libdrm-common/drm.morph b/strata/libdrm-common/drm.morph
index 8f5b88e2..d3d06fd8 100644
--- a/strata/libdrm-common/drm.morph
+++ b/strata/libdrm-common/drm.morph
@@ -3,7 +3,7 @@ kind: chunk
build-system: autotools
configure-commands:
- NOCONFIGURE=1 ./autogen.sh
- - ./configure --prefix="$PREFIX" --enable-tegra-experimental-api
+ - ./configure --prefix="$PREFIX" --enable-tegra-experimental-api --enable-freedreno-experimental-api
install-commands:
- make install DESTDIR="$DESTDIR"
- mkdir -p "$DESTDIR"/usr/lib/pkgconfig
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/lorry.morph b/strata/lorry.morph
new file mode 100644
index 00000000..158071cc
--- /dev/null
+++ b/strata/lorry.morph
@@ -0,0 +1,129 @@
+name: lorry
+kind: stratum
+description: |
+ Lorry and tools for working with version control systems other than Git.
+
+ Lorry is a tool for creating and maintaining Git mirrors of source code
+ repositories, which aims to support most version control systems in use
+ by software projects that are used Baserock systems.
+
+ The commandline tools 'hg', 'bzr', 'svn', and 'cvs' are also made available
+ by this stratum.
+build-depends:
+# The 'morph-utils' stratum is required for 'cliapp', which Lorry needs at
+# build-time to generate its man page. Otherwise we could simply depend on
+# the 'foundation' stratum.
+- morph: strata/morph-utils.morph
+chunks:
+- name: bzr-tarball
+ repo: upstream:bzr-tarball
+ ref: e61c7edb4789abcd0f73c30fe719fa6fea478a52
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: python-fastimport
+ repo: upstream:python-fastimport
+ ref: 6500a5e7d82651ade9002d44e3ecc71a50302616
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: bzr-fastimport
+ repo: upstream:bzr-fastimport
+ ref: b3cda9967f857127bd4dab5eb72223a95916f5ea
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - bzr-tarball
+ - python-fastimport
+- name: cvs-tarball
+ morph: strata/lorry/cvs-tarball.morph
+ repo: upstream:cvs-tarball
+ ref: ca4cd317a75ef4349563b5a9a734561beb4a4f98
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: libapr-tarball
+ repo: upstream:libapr-tarball
+ ref: dea1efeb7f60fc6848e1e72b3fc973d0057565db
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: libapr-util-tarball
+ morph: strata/lorry/libapr-util-tarball.morph
+ repo: upstream:libapr-util-tarball
+ ref: daba269ee5a262cc23621b3ee37ed368d2a2b69b
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - libapr-tarball
+- name: perl-dbi-tarball
+ morph: strata/lorry/perl-dbi-tarball.morph
+ repo: upstream:perl-dbi-tarball
+ ref: 09e269cff811f0c1881ea0d6b7571173bab8377b
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: perl-dbd-sqlite-tarball
+ repo: upstream:perl-dbd-sqlite-tarball
+ ref: 485b97be9f2f2abf5a40923b5fd85f75714a8c02
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - perl-dbi-tarball
+- name: libserf-tarball
+ repo: upstream:libserf-tarball
+ ref: 6f61a1acd01dc2ad1d2f5c1f7458702c77c69f9c
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - libapr-tarball
+ - libapr-util-tarball
+- name: swig-tarball
+ morph: strata/lorry/swig-tarball.morph
+ repo: upstream:swig-tarball
+ ref: 1f6cb46b6a4b3ebf9352fa10198b0b286f84138b
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: neon
+ morph: strata/lorry/neon.morph
+ repo: upstream:neon
+ ref: 837374e9d797e216f1de684595cefe791f67c0e4
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: subversion-tarball
+ morph: strata/lorry/subversion-tarball.morph
+ repo: upstream:subversion-tarball
+ ref: 351e074672d9aa6446d5829938b697a3d6b23266
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - swig-tarball
+ - libapr-tarball
+ - libapr-util-tarball
+ - libserf-tarball
+ - neon
+- name: mercurial-tarball
+ morph: strata/lorry/mercurial-tarball.morph
+ repo: upstream:mercurial-tarball
+ ref: 4b0aa73b8c69bd5b7521337809f7bc4714209a5a
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: hg-fast-export
+ morph: strata/lorry/hg-fast-export.morph
+ repo: upstream:hg-fast-export
+ ref: 09a472aa58da0417a11a22bae172785f7cb2e80f
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - mercurial-tarball
+- name: cvsps
+ morph: strata/lorry/cvsps.morph
+ repo: upstream:cvsps
+ ref: 71c6d1f5668f405a7b259a0aac0d423f6c9b4d49
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: lorry
+ morph: strata/lorry/lorry.morph
+ repo: baserock:baserock/lorry
+ ref: 9fe25bf02dceec04f0ffd6a05cc47146ceab9904
+ unpetrify-ref: master
+ build-depends:
+ - bzr-tarball
+ - python-fastimport
+ - bzr-fastimport
+ - perl-dbi-tarball
+ - perl-dbd-sqlite-tarball
+ - cvs-tarball
+ - cvsps
+ - subversion-tarball
+ - mercurial-tarball
+ - hg-fast-export
diff --git a/strata/trove/cvs-tarball.morph b/strata/lorry/cvs-tarball.morph
index e8322017..e8322017 100644
--- a/strata/trove/cvs-tarball.morph
+++ b/strata/lorry/cvs-tarball.morph
diff --git a/strata/trove/cvsps.morph b/strata/lorry/cvsps.morph
index ff53784e..ff53784e 100644
--- a/strata/trove/cvsps.morph
+++ b/strata/lorry/cvsps.morph
diff --git a/strata/trove/hg-fast-export.morph b/strata/lorry/hg-fast-export.morph
index ef99a97a..ef99a97a 100644
--- a/strata/trove/hg-fast-export.morph
+++ b/strata/lorry/hg-fast-export.morph
diff --git a/strata/trove/libapr-util-tarball.morph b/strata/lorry/libapr-util-tarball.morph
index e34e3610..e34e3610 100644
--- a/strata/trove/libapr-util-tarball.morph
+++ b/strata/lorry/libapr-util-tarball.morph
diff --git a/strata/trove/lorry.morph b/strata/lorry/lorry.morph
index 6b8cb355..6b8cb355 100644
--- a/strata/trove/lorry.morph
+++ b/strata/lorry/lorry.morph
diff --git a/strata/trove/mercurial-tarball.morph b/strata/lorry/mercurial-tarball.morph
index 03264f56..03264f56 100644
--- a/strata/trove/mercurial-tarball.morph
+++ b/strata/lorry/mercurial-tarball.morph
diff --git a/strata/trove/neon.morph b/strata/lorry/neon.morph
index 19f8e83f..19f8e83f 100644
--- a/strata/trove/neon.morph
+++ b/strata/lorry/neon.morph
diff --git a/strata/trove/perl-dbi-tarball.morph b/strata/lorry/perl-dbi-tarball.morph
index 9eb3a537..9eb3a537 100644
--- a/strata/trove/perl-dbi-tarball.morph
+++ b/strata/lorry/perl-dbi-tarball.morph
diff --git a/strata/trove/subversion-tarball.morph b/strata/lorry/subversion-tarball.morph
index cb416d53..cb416d53 100644
--- a/strata/trove/subversion-tarball.morph
+++ b/strata/lorry/subversion-tarball.morph
diff --git a/strata/trove/swig-tarball.morph b/strata/lorry/swig-tarball.morph
index 61f154a4..61f154a4 100644
--- a/strata/trove/swig-tarball.morph
+++ b/strata/lorry/swig-tarball.morph
diff --git a/strata/lua.morph b/strata/lua.morph
index 5ac3102b..75ccad86 100644
--- a/strata/lua.morph
+++ b/strata/lua.morph
@@ -10,3 +10,9 @@ chunks:
ref: 948063437e0350d9ef1649ec3a76d0c24a5c8642
unpetrify-ref: baserock/5.1-morph
build-depends: []
+- name: luajit2
+ morph: strata/lua/luajit2.morph
+ repo: upstream:luajit2
+ ref: 880ca300e8fb7b432b9d25ed377db2102e4cb63d
+ unpetrify-ref: v2.0.3
+ build-depends: []
diff --git a/strata/lua/luajit2.morph b/strata/lua/luajit2.morph
new file mode 100644
index 00000000..72f34f02
--- /dev/null
+++ b/strata/lua/luajit2.morph
@@ -0,0 +1,7 @@
+name: luajit2
+kind: chunk
+build-commands:
+- make PREFIX="$PREFIX"
+install-commands:
+- make install PREFIX="$PREFIX" DESTDIR="$DESTDIR"
+
diff --git a/strata/mesa-common.morph b/strata/mesa-common.morph
index e2548e7d..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: 1b12af300dfa77c24088780e88200703653293d3
- unpetrify-ref: mesa-10.3
+ 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 00b4c9c8..4194acc2 100644
--- a/strata/mesa-common/mesa.morph
+++ b/strata/mesa-common/mesa.morph
@@ -4,32 +4,20 @@ build-system: autotools
configure-commands:
- |
cpu=$(echo $TARGET | cut -d '-' -f 1)
- EXTRAARGS=--disable-gallium-egl
case "$cpu" in
- x86_32|x64_64)
- DRIDRIVERS=intel,i915,i965,swrast
- GALLIUMDRIVERS=swrast
- EGLPLATFORMS=wayland,drm
- ;;
armv7lhf)
- DRIDRIVERS=nouveau,swrast
- GALLIUMDRIVERS=nouveau,swrast
- EXTRAARGS="--with-state-trackers=egl --enable-gallium-egl"
- EGLPLATFORMS=wayland,drm
+ DRIDRIVERS=no
+ GALLIUMDRIVERS=nouveau,freedreno,svga,swrast,vc4
;;
*)
- DRIDRIVERS=swrast
- GALLIUMDRIVERS=swrast
- EGLPLATFORMS=wayland,drm
+ DRIDRIVERS=yes
+ GALLIUMDRIVERS=yes
;;
esac
./autogen.sh --prefix="$PREFIX" \
--enable-gles2 \
- --with-egl-platforms="$EGLPLATFORMS" \
--disable-glx \
- --enable-gbm \
- --enable-shared-glapi \
+ --with-egl-platforms=drm,wayland \
--with-gallium-drivers="$GALLIUMDRIVERS" \
--with-dri-drivers="$DRIDRIVERS" \
- --disable-dri3 $EXTRAARGS
-
+ --enable-gallium-egl
diff --git a/strata/morph-utils.morph b/strata/morph-utils.morph
index 6c3fc412..57582809 100644
--- a/strata/morph-utils.morph
+++ b/strata/morph-utils.morph
@@ -53,7 +53,7 @@ chunks:
- name: cmdtest
morph: strata/morph-utils/cmdtest.morph
repo: upstream:cmdtest
- ref: b7de175d185948c1130a1036ecd11d113dbf1175
+ ref: ac91791842c6e7e6eda3213916af413255999c7b
unpetrify-ref: baserock/morph
build-depends:
- cliapp
@@ -71,7 +71,7 @@ chunks:
build-depends: []
- name: morph
repo: baserock:baserock/morph
- ref: 8036c2ddfdbf9f6b35ea76244b98a10b1d76c55b
+ ref: 8e319db777ccb11ae565293e5c86919192fb459b
unpetrify-ref: master
build-depends:
- cliapp
diff --git a/strata/multimedia-gstreamer-0.10.morph b/strata/multimedia-gstreamer-0.10.morph
index ae5fe656..50917372 100644
--- a/strata/multimedia-gstreamer-0.10.morph
+++ b/strata/multimedia-gstreamer-0.10.morph
@@ -11,23 +11,23 @@ chunks:
ref: b4f7fcaf99a4d952e59f2a9fa9286d24cc4b3a5a
unpetrify-ref: baserock/morph
build-depends: []
-- name: gstreamer
+- name: gstreamer@0.10
repo: upstream:gstreamer
- ref: c7e4a97d26396882960fd399b1a5e298e40d2a35
+ ref: 1bb950008f4656f6a6153fa88a8ebb5a39fbe84f
unpetrify-ref: baserock/morph/0.10
build-depends:
- orc
-- name: gstreamer-plugins-base
+- name: gstreamer-plugins-base@0.10
repo: upstream:gstreamer-plugins-base
ref: 960c596309dbb983a1d733259adccc45c47006a2
unpetrify-ref: baserock/morph/0.10
build-depends:
- - gstreamer
-- name: gstreamer-plugins-good
+ - gstreamer@0.10
+- name: gstreamer-plugins-good@0.10
repo: upstream:gstreamer-plugins-good
ref: 725e80e0c6b7f8e66d9b3fcaffd283ecbd8498d3
unpetrify-ref: baserock/morph/0.10
build-depends:
- - gstreamer
- - gstreamer-plugins-base
+ - gstreamer@0.10
+ - gstreamer-plugins-base@0.10
- orc
diff --git a/strata/multimedia.morph b/strata/multimedia.morph
index b0d82984..6acab0f7 100644
--- a/strata/multimedia.morph
+++ b/strata/multimedia.morph
@@ -6,33 +6,33 @@ build-depends:
chunks:
- name: orc
repo: upstream:orc
- ref: ec132ae118bead13312f126a1f6e5709a2429ff6
- unpetrify-ref: orc-0.4.19
+ ref: 16e053b8f2359196fd50b111f1c10b93590f5cb9
+ unpetrify-ref: orc-0.4.22
build-depends: []
- name: gstreamer
repo: upstream:gstreamer
- ref: 0217fba607637860a475d0b5d48a3d4b249ca360
- unpetrify-ref: baserock/morph/1.2
+ ref: b9b3440e323c7b32a8c3a9d52c7bf1a229850558
+ unpetrify-ref: baserock/1.4
build-depends:
- orc
- name: gstreamer-plugins-base
repo: upstream:gstreamer-plugins-base
- ref: 1263caa96fcc1e3d2963bc27acbcf88b5b17d5dd
- unpetrify-ref: baserock/morph/1.2
+ ref: 3b38ad94a2d58c07c24e4647e08afa1fe4dd7d46
+ unpetrify-ref: baserock/1.4
build-depends:
- gstreamer
- name: gstreamer-plugins-good
repo: upstream:gstreamer-plugins-good
- ref: b7e3af91197812e41028016d2e75ad2d6530b9b3
- unpetrify-ref: baserock/morph/1.2
+ ref: 9d48c2f7a7b63fd967de7eec72434bc876c02667
+ unpetrify-ref: baserock/1.4
build-depends:
- gstreamer
- gstreamer-plugins-base
- orc
- name: gstreamer-plugins-bad
repo: upstream:gstreamer-plugins-bad
- ref: 343470e7fd1e7a6bb95b953d25b2caf5425d0185
- unpetrify-ref: baserock/morph/1.2
+ ref: bb2a4669ff57af90c8101c54744d3228aa060475
+ unpetrify-ref: baserock/1.4
build-depends:
- gstreamer
- gstreamer-plugins-base
diff --git a/strata/nfs.morph b/strata/nfs.morph
index f0956ff7..68988d54 100644
--- a/strata/nfs.morph
+++ b/strata/nfs.morph
@@ -9,12 +9,6 @@ chunks:
ref: 9364dff5c20e9e8c18f7f20ee1c92463e9e9c8a7
unpetrify-ref: baserock/release-2.0.21-stable
build-depends: []
-- name: tcp-wrappers
- morph: strata/nfs/tcp-wrappers.morph
- repo: upstream:tcp-wrappers
- ref: 23b65f29b324b65a057a3fa87613b788856d6e4e
- unpetrify-ref: baserock/fedora-patches
- build-depends: []
- name: ti-rpc
morph: strata/nfs/ti-rpc.morph
repo: upstream:ti-rpc
@@ -28,7 +22,6 @@ chunks:
unpetrify-ref: baserock/master
build-depends:
- ti-rpc
- - tcp-wrappers
- name: nfs-utils
morph: strata/nfs/nfs-utils.morph
repo: upstream:nfs-utils
@@ -36,5 +29,4 @@ chunks:
unpetrify-ref: baserock/master
build-depends:
- libevent
- - tcp-wrappers
- ti-rpc
diff --git a/strata/nfs/nfs-utils.morph b/strata/nfs/nfs-utils.morph
index d09c063e..c412e1d0 100644
--- a/strata/nfs/nfs-utils.morph
+++ b/strata/nfs/nfs-utils.morph
@@ -3,7 +3,7 @@ kind: chunk
build-system: autotools
configure-commands:
- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX" --disable-nfsv4 --disable-nfsv41 --disable-gss --with-rpcgen=internal
+- ./configure --prefix="$PREFIX" --disable-nfsv4 --disable-nfsv41 --disable-gss --with-rpcgen=internal --without-tcp-wrappers
install-commands:
- make DESTDIR="$DESTDIR" install
- mkdir -p "$DESTDIR"/lib/systemd/system
diff --git a/strata/nfs/rpcbind.morph b/strata/nfs/rpcbind.morph
index 35b9c77a..0ca929dc 100644
--- a/strata/nfs/rpcbind.morph
+++ b/strata/nfs/rpcbind.morph
@@ -3,7 +3,7 @@ kind: chunk
build-system: autotools
configure-commands:
- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX" --enable-libwrap --with-rpcuser=nobody --enable-warmstarts
+- ./configure --prefix="$PREFIX" --with-rpcuser=nobody --enable-warmstarts
install-commands:
- make DESTDIR="$DESTDIR" install
- mkdir -p "$DESTDIR"/lib/systemd/system
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/python-tools.morph b/strata/python-tools.morph
new file mode 100644
index 00000000..0a707bc6
--- /dev/null
+++ b/strata/python-tools.morph
@@ -0,0 +1,12 @@
+name: python-tools
+kind: stratum
+description: "A stratum for non-essential python tools:
+useful python tools that we don't want to include in core."
+build-depends:
+- morph: strata/core.morph
+chunks:
+- name: pip
+ repo: upstream:pip
+ ref: ea680f204fb0e48789710c22c8f597a9bf01bc16
+ unpetrify-ref: baserock/master
+ build-depends: []
diff --git a/strata/qt5-sdk.morph b/strata/qt5-sdk.morph
index f0b3cc2e..0d877a62 100644
--- a/strata/qt5-sdk.morph
+++ b/strata/qt5-sdk.morph
@@ -3,16 +3,11 @@ kind: stratum
description: Qt5 Desktop Environment, IDE and Example Apps
build-depends:
- morph: strata/qt5-tools.morph
+- morph: strata/qt5-tools-qtwebkit.morph
chunks:
- name: qt-creator
morph: strata/qt5-sdk/qt-creator.morph
repo: upstream:qt-creator
- ref: d5a6b10634c1a3271012e9578e016772ef077d59
+ ref: v3.2.1
unpetrify-ref: baserock/morph/2.7
build-depends: []
-- name: snowshoe
- morph: strata/qt5-sdk/snowshoe.morph
- repo: upstream:snowshoe
- ref: 098f931de58072edd5d591cdc4a2ad3c05e83991
- unpetrify-ref: baserock/morph
- build-depends: []
diff --git a/strata/qt5-sdk/qt-creator.morph b/strata/qt5-sdk/qt-creator.morph
index 76d9f7d7..91fae589 100644
--- a/strata/qt5-sdk/qt-creator.morph
+++ b/strata/qt5-sdk/qt-creator.morph
@@ -6,4 +6,3 @@ build-commands:
- make
install-commands:
- make install INSTALL_ROOT=$DESTDIR
-- ./qhelpgenerator.sh
diff --git a/strata/qt5-tools-qtmultimedia.morph b/strata/qt5-tools-qtmultimedia.morph
new file mode 100644
index 00000000..6482db62
--- /dev/null
+++ b/strata/qt5-tools-qtmultimedia.morph
@@ -0,0 +1,13 @@
+name: qt5-tools-qtmultimedia
+kind: stratum
+description: Qt5 QtMultimedia Development Libraries and Tools
+build-depends:
+- morph: strata/qt5-tools.morph
+- morph: strata/multimedia-gstreamer-0.10.morph
+chunks:
+- name: qtmultimedia
+ morph: strata/qt5-tools/qtmultimedia.morph
+ repo: upstream:qt5/qtmultimedia
+ ref: b3c2dca466042cf362ffb8d803bf05c9b8a0f95f
+ unpetrify-ref: v5.3.2
+ build-depends: []
diff --git a/strata/qt5-tools-qtwebkit.morph b/strata/qt5-tools-qtwebkit.morph
new file mode 100644
index 00000000..1d746949
--- /dev/null
+++ b/strata/qt5-tools-qtwebkit.morph
@@ -0,0 +1,35 @@
+name: qt5-tools-qtwebkit
+kind: stratum
+description: Qt5 WebKit Development Libraries and Tools
+build-depends:
+- morph: strata/multimedia.morph
+- morph: strata/qt5-tools.morph
+- morph: strata/ruby.morph
+chunks:
+- name: qtwebkit
+ morph: strata/qt5-tools/qtwebkit.morph
+ repo: upstream:qt5/qtwebkit
+ ref: 13f80d34ae84c3231118c8013beee55badab8929
+ unpetrify-ref: v5.3.2
+ build-depends: []
+- name: qtwebkit-examples
+ morph: strata/qt5-tools/qtwebkit-examples.morph
+ repo: upstream:qt5/qtwebkit-examples
+ ref: bce5056b9e16a943357e362455a46685d3f22093
+ unpetrify-ref: v5.3.2
+ build-depends:
+ - qtwebkit
+- name: qttools
+ morph: strata/qt5-tools/qttools.morph
+ repo: upstream:qt5/qttools
+ ref: 8c79a098b8b7da4832ebca1884ee833a2c2078a7
+ unpetrify-ref: v5.3.2
+ build-depends:
+ - qtwebkit
+- name: qttranslations
+ morph: strata/qt5-tools/qttranslations.morph
+ repo: upstream:qt5/qttranslations
+ ref: cf4d6f7e73bb410ed0aa3d64dffb2b6b242cdfe0
+ unpetrify-ref: v5.3.2
+ build-depends:
+ - qttools
diff --git a/strata/qt5-tools.morph b/strata/qt5-tools.morph
index 1c784bf3..34e57bc4 100644
--- a/strata/qt5-tools.morph
+++ b/strata/qt5-tools.morph
@@ -4,7 +4,6 @@ description: Qt5 Development Libraries and Tools
build-depends:
- morph: strata/tools.morph
- morph: strata/x-generic.morph
-- morph: strata/multimedia-gstreamer-0.10.morph
chunks:
- name: icu
morph: strata/qt5-tools/icu.morph
@@ -12,179 +11,129 @@ chunks:
ref: ba023548a3bff7277cbea4acade3042ce9d8949e
unpetrify-ref: baserock/morph
build-depends: []
-- name: ruby-1.8
- morph: strata/qt5-tools/ruby-1.8.morph
- repo: upstream:ruby
- ref: 7a24f1710028d568ad61d0aa49d5178260178d77
- unpetrify-ref: baserock/morph/ruby_1_8_7
- build-depends: []
-- name: ruby-1.9
- morph: strata/qt5-tools/ruby-1.9.morph
- repo: upstream:ruby
- ref: cb3ea602294b5038b5f7ac21d3875a2b52342956
- unpetrify-ref: baserock/morph/ruby_1_9_3
- build-depends:
- - ruby-1.8
- name: qtbase
morph: strata/qt5-tools/qtbase.morph
repo: upstream:qt5/qtbase
- ref: 55f24d7e91e7c906cf4e3a3ef7a4d95ff094a7a8
- unpetrify-ref: baserock/morph
+ ref: 05670f586ffe05425b7542a27fcca31bddf231aa
+ unpetrify-ref: v5.3.2
build-depends:
- icu
- name: qtsvg
morph: strata/qt5-tools/qtsvg.morph
repo: upstream:qt5/qtsvg
- ref: 552bf3adcc48c669f9dfbda5818142fb18c9e957
- unpetrify-ref: baserock/morph
- build-depends:
- - qtbase
-- name: qtjsbackend
- morph: strata/qt5-tools/qtjsbackend.morph
- repo: upstream:qt5/qtjsbackend
- ref: c6978bf56f599a3da8c03b1a7e58102aa84223e7
- unpetrify-ref: baserock/morph
+ ref: 35a2f0880831d38c60d2b4820dac808f48f6f3a8
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- name: qtscript
morph: strata/qt5-tools/qtscript.morph
repo: upstream:qt5/qtscript
- ref: d20e99b3bdbcf77b69a92a2ba1b3ca1f1379e7c8
- unpetrify-ref: baserock/morph
+ ref: 71f6dee8791c95fd862ca3651d7f4b7d6b9f440e
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- - qtjsbackend
- name: qtdeclarative
morph: strata/qt5-tools/qtdeclarative.morph
repo: upstream:qt5/qtdeclarative
- ref: 774d0310883a9526210c4530bbb9d0af26d88699
- unpetrify-ref: baserock/morph
+ ref: a67aa6abc6a406b00ef58a7e07fd39012bfa3eb1
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- - qtjsbackend
- qtscript
- name: qtquick1
morph: strata/qt5-tools/qtquick1.morph
repo: upstream:qt5/qtquick1
- ref: b13755a2411dca01e65bb443a399ed130d5dd738
- unpetrify-ref: baserock/morph
+ ref: 8e7fa2b5aa2e2e4371c4b73926d0e6ad2ebdbd96
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- - qtjsbackend
- qtscript
- name: qt3d
morph: strata/qt5-tools/qt3d.morph
repo: upstream:qt5/qt3d
- ref: 805fbf45a54f1b69f4b13f6dc9f962b07c017d3b
+ ref: bdb98baf8253c69949a8c259369203da9ffb269c
unpetrify-ref: baserock/morph
build-depends:
- qtbase
- - qtjsbackend
- qtscript
- qtdeclarative
- name: qtquickcontrols
morph: strata/qt5-tools/qtquickcontrols.morph
repo: upstream:qt5/qtquickcontrols
- ref: acf9e50d52c4d09a1aed9490bb2f3c5de7dce9bb
- unpetrify-ref: baserock/morph
+ ref: bc91574cca8b6f24968ab4e1cc11fe1fd10f3061
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- - qtjsbackend
- qtdeclarative
- name: qtsensors
morph: strata/qt5-tools/qtsensors.morph
repo: upstream:qt5/qtsensors
- ref: cd22d77e07af6046be24d0322187a86c9a3c4d1d
- unpetrify-ref: baserock/morph
+ ref: fd3e65ef5ab6eb8e4b5bdad380d1f6862799856c
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- name: qtserialport
morph: strata/qt5-tools/qtserialport.morph
repo: upstream:qt5/qtserialport
- ref: b1abca2eee45e7b8ecf71cb5cd1e77a2821fcac2
- unpetrify-ref: baserock/morph
+ ref: 286d64c202f461cb8ff5a4cc4c2320af8195b8f0
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- name: qtx11extras
morph: strata/qt5-tools/qtx11extras.morph
repo: upstream:qt5/qtx11extras
- ref: 3b33afd2814c88002e2efc4955e5b1851aff0c58
- unpetrify-ref: baserock/morph
- build-depends:
- - qtbase
-- name: qtwebkit
- morph: strata/qt5-tools/qtwebkit.morph
- repo: upstream:qt5/qtwebkit
- ref: 15a558c03ea7a35f97dfc0b16024d026d20920be
- unpetrify-ref: baserock/morph
- build-depends:
- - qtbase
- - icu
- - ruby-1.9
- - qtjsbackend
- - qtdeclarative
-- name: qtwebkit-examples
- morph: strata/qt5-tools/qtwebkit-examples.morph
- repo: upstream:qt5/qtwebkit-examples
- ref: fdaa2bb5e47d6ca1d3e8c681f88eae0b9d4ae351
- unpetrify-ref: baserock/morph
- build-depends:
- - qtbase
- - qtjsbackend
- - qtdeclarative
- - qtwebkit
-- name: qtmultimedia
- morph: strata/qt5-tools/qtmultimedia.morph
- repo: upstream:qt5/qtmultimedia
- ref: 8b73d090f87f88ee3ae4efc437ac866d05df76be
- unpetrify-ref: baserock/morph
+ ref: 2d84caf5ef1b5dace0d678df4581db3c955be6ee
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- name: qtxmlpatterns
morph: strata/qt5-tools/qtxmlpatterns.morph
repo: upstream:qt5/qtxmlpatterns
- ref: ed713a904ee55f1c345d2d6c35e77892be96977e
- unpetrify-ref: baserock/morph
+ ref: 78c2367e22d87b529610117f5b6abef6934abdcf
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- name: qtdoc
morph: strata/qt5-tools/qtdoc.morph
repo: upstream:qt5/qtdoc
- ref: 674abef4f06bdde57a272d69750e2a4ac5027ea9
- unpetrify-ref: baserock/morph
+ ref: 688019893d2cbd9ccdc4d75c550bca4530a46ee4
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- name: qtgraphicaleffects
morph: strata/qt5-tools/qtgraphicaleffects.morph
repo: upstream:qt5/qtgraphicaleffects
- ref: e41d08f95d74d7309fc976cb62141b78239de975
- unpetrify-ref: baserock/morph
+ ref: 82abf6975b6737259ee656564e5ec7f8ad1d0508
+ unpetrify-ref: v5.3.2
build-depends:
- qtbase
- - qtjsbackend
- qtdeclarative
- name: qtimageformats
morph: strata/qt5-tools/qtimageformats.morph
repo: upstream:qt5/qtimageformats
- ref: 3f7f6126d9832e03a4dcaaca5279220f00126e89
- unpetrify-ref: baserock/morph
- build-depends:
- - qtbase
-- name: qttools
- morph: strata/qt5-tools/qttools.morph
- repo: upstream:qt5/qttools
- ref: 1369d91dd095cd4ea2febe759ef6446e41bd2d80
- unpetrify-ref: baserock/morph
- build-depends:
- - qtbase
- - qtjsbackend
- - qtdeclarative
- - qtwebkit
-- name: qttranslations
- morph: strata/qt5-tools/qttranslations.morph
- repo: upstream:qt5/qttranslations
- ref: e91af8e6363a4538f08992b6af51d17b91453080
- unpetrify-ref: baserock/morph
- build-depends:
- - qtbase
- - qttools
+ ref: 85e621e3ecf449bb0587bd4da97ca66179b24f31
+ unpetrify-ref: v5.3.2
+ build-depends:
+ - qtbase
+- name: qtconnectivity
+ morph: strata/qt5-tools/qtconnectivity.morph
+ repo: upstream:qt5/qtconnectivity
+ ref: 8a33a9b43dcc5e7f9a77237a660a3759286e6b86
+ unpetrify-ref: v5.3.2
+ build-depends:
+ - qtbase
+- name: qtlocation
+ morph: strata/qt5-tools/qtlocation.morph
+ repo: upstream:qt5/qtlocation
+ ref: a36d9e67e3b8168cb4d1eb76eda96ebb8242fd20
+ unpetrify-ref: v5.3.2
+ build-depends:
+ - qtbase
+- name: qtwebsockets
+ morph: strata/qt5-tools/qtwebsockets.morph
+ repo: upstream:qt5/qtwebsockets
+ ref: 00f77bdc5beb62e980216cfee906ab7aa1d1c4f7
+ unpetrify-ref: v5.3.2
+ build-depends:
+ - qtbase
+
diff --git a/strata/qt5-tools/qtbase.morph b/strata/qt5-tools/qtbase.morph
index 1427c4c2..9b2a20c6 100644
--- a/strata/qt5-tools/qtbase.morph
+++ b/strata/qt5-tools/qtbase.morph
@@ -5,6 +5,8 @@ configure-commands:
build-commands:
- make
- touch /qtbase.build/src/corelib/corelib.pro
+- touch /qtbase.build/qmake/qmake.pro
+- touch /qtbase.build/qmake/qmake-docs.pro
- ./bin/qmake -set QDOC /qtbase.build/bin/qdoc
- make html_docs
- ./bin/qmake -unset QDOC
diff --git a/strata/qt5-tools/qtconnectivity.morph b/strata/qt5-tools/qtconnectivity.morph
new file mode 100644
index 00000000..d1123711
--- /dev/null
+++ b/strata/qt5-tools/qtconnectivity.morph
@@ -0,0 +1,10 @@
+name: qtconnectivity
+kind: chunk
+configure-commands:
+- qmake
+build-commands:
+- make
+- make html_docs
+install-commands:
+- make install INSTALL_ROOT=$DESTDIR
+- make install_html_docs INSTALL_ROOT=$DESTDIR
diff --git a/strata/qt5-tools/qtlocation.morph b/strata/qt5-tools/qtlocation.morph
new file mode 100644
index 00000000..14a527ff
--- /dev/null
+++ b/strata/qt5-tools/qtlocation.morph
@@ -0,0 +1,10 @@
+name: qtlocation
+kind: chunk
+configure-commands:
+- qmake
+build-commands:
+- make
+- make html_docs
+install-commands:
+- make install INSTALL_ROOT=$DESTDIR
+- make install_html_docs INSTALL_ROOT=$DESTDIR
diff --git a/strata/qt5-tools/qtwebsockets.morph b/strata/qt5-tools/qtwebsockets.morph
new file mode 100644
index 00000000..e1cac87f
--- /dev/null
+++ b/strata/qt5-tools/qtwebsockets.morph
@@ -0,0 +1,10 @@
+name: qtwebsockets
+kind: chunk
+configure-commands:
+- qmake
+build-commands:
+- make
+- make html_docs
+install-commands:
+- make install INSTALL_ROOT=$DESTDIR
+- make install_html_docs INSTALL_ROOT=$DESTDIR
diff --git a/strata/ruby.morph b/strata/ruby.morph
index 45db406d..c5bd9993 100644
--- a/strata/ruby.morph
+++ b/strata/ruby.morph
@@ -1,6 +1,12 @@
name: ruby
kind: stratum
-description: ruby and things from ruby world
+description: |
+ Ruby and common Ruby build dependencies.
+
+ Most Gem dependencies are not required when building or installing the
+ Gem. They are needed at runtime only. Tools which extend Rake, such as
+ 'hoe' and 'rake-compiler', are exceptions to that rule, and are kept
+ in this stratum so they are always available when building other Gems.
build-depends:
- morph: strata/tools.morph
chunks:
@@ -30,3 +36,17 @@ chunks:
unpetrify-ref: baserock/v1.6.2
build-depends:
- ruby
+- name: hoe
+ morph: strata/ruby/hoe.morph
+ repo: upstream:ruby-gems/hoe
+ ref: 50a2706d0f70ece52922ddcc56630e1e0655b83e
+ unpetrify-ref: master
+ build-depends:
+ - ruby
+- name: rake-compiler
+ morph: strata/ruby/rake-compiler.morph
+ repo: upstream:ruby-gems/rake-compiler
+ ref: aaed621f6fdb0b0395775fea5464cc83e794fbdb
+ unpetrify-ref: v0.9.3
+ build-depends:
+ - ruby
diff --git a/strata/ruby/hoe.morph b/strata/ruby/hoe.morph
new file mode 100644
index 00000000..0d06a82a
--- /dev/null
+++ b/strata/ruby/hoe.morph
@@ -0,0 +1,16 @@
+name: hoe
+kind: chunk
+description: |
+ Hoe is a rake/rubygems helper for project Rakefiles. It helps you
+ manage, maintain, and release your project and includes a dynamic
+ plug-in system allowing for easy extensibility.
+products:
+- artifact: hoe-doc
+ include:
+ - usr/lib/ruby/gems/\d[\w.]*/doc/.*
+build-commands:
+- rake gem
+install-commands:
+- mkdir -p "$DESTDIR/$(gem environment home)"
+- gem install --install-dir "$DESTDIR/$(gem environment home)" --bindir "$DESTDIR/$PREFIX/bin"
+ --ignore-dependencies --local ./pkg/hoe-*.gem
diff --git a/strata/ruby/rake-compiler.morph b/strata/ruby/rake-compiler.morph
new file mode 100644
index 00000000..9286f14a
--- /dev/null
+++ b/strata/ruby/rake-compiler.morph
@@ -0,0 +1,15 @@
+name: rake-compiler
+kind: chunk
+description: |
+ Provide a standard and simplified way to build and package Ruby
+ extensions (C, Java) using Rake as glue.
+products:
+- artifact: rake-compiler-doc
+ include:
+ - usr/lib/ruby/gems/\d[\w.]*/doc/.*
+build-commands:
+- rake gem
+install-commands:
+- mkdir -p "$DESTDIR/$(gem environment home)"
+- gem install --install-dir "$DESTDIR/$(gem environment home)" --bindir "$DESTDIR/$PREFIX/bin"
+ --ignore-dependencies --local ./pkg/rake-compiler-*.gem
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 c3d4f069..7eaa204a 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
@@ -74,137 +69,18 @@ chunks:
ref: acbf4a15e260c711094455dbef7c024f2553fd32
unpetrify-ref: baserock/morph
build-depends: []
-- name: bzr-tarball
- repo: upstream:bzr-tarball
- ref: e61c7edb4789abcd0f73c30fe719fa6fea478a52
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: python-fastimport
- repo: upstream:python-fastimport
- ref: 6500a5e7d82651ade9002d44e3ecc71a50302616
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: bzr-fastimport
- repo: upstream:bzr-fastimport
- ref: b3cda9967f857127bd4dab5eb72223a95916f5ea
- unpetrify-ref: baserock/morph
- build-depends:
- - bzr-tarball
- - python-fastimport
-- name: cvs-tarball
- morph: strata/trove/cvs-tarball.morph
- repo: upstream:cvs-tarball
- ref: ca4cd317a75ef4349563b5a9a734561beb4a4f98
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: libapr-tarball
- repo: upstream:libapr-tarball
- ref: dea1efeb7f60fc6848e1e72b3fc973d0057565db
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: libapr-util-tarball
- morph: strata/trove/libapr-util-tarball.morph
- repo: upstream:libapr-util-tarball
- ref: daba269ee5a262cc23621b3ee37ed368d2a2b69b
- unpetrify-ref: baserock/morph
- build-depends:
- - libapr-tarball
-- name: perl-dbi-tarball
- morph: strata/trove/perl-dbi-tarball.morph
- repo: upstream:perl-dbi-tarball
- ref: 09e269cff811f0c1881ea0d6b7571173bab8377b
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: perl-dbd-sqlite-tarball
- repo: upstream:perl-dbd-sqlite-tarball
- ref: 485b97be9f2f2abf5a40923b5fd85f75714a8c02
- unpetrify-ref: baserock/morph
- build-depends:
- - perl-dbi-tarball
-- name: libserf-tarball
- repo: upstream:libserf-tarball
- ref: 6f61a1acd01dc2ad1d2f5c1f7458702c77c69f9c
- unpetrify-ref: baserock/morph
- build-depends:
- - libapr-tarball
- - libapr-util-tarball
-- name: swig-tarball
- morph: strata/trove/swig-tarball.morph
- repo: upstream:swig-tarball
- ref: 1f6cb46b6a4b3ebf9352fa10198b0b286f84138b
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: neon
- morph: strata/trove/neon.morph
- repo: upstream:neon
- ref: 837374e9d797e216f1de684595cefe791f67c0e4
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: subversion-tarball
- morph: strata/trove/subversion-tarball.morph
- repo: upstream:subversion-tarball
- ref: 351e074672d9aa6446d5829938b697a3d6b23266
- unpetrify-ref: baserock/morph
- build-depends:
- - swig-tarball
- - libapr-tarball
- - libapr-util-tarball
- - libserf-tarball
- - neon
-- name: mercurial-tarball
- morph: strata/trove/mercurial-tarball.morph
- repo: upstream:mercurial-tarball
- ref: 4b0aa73b8c69bd5b7521337809f7bc4714209a5a
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: hg-fast-export
- morph: strata/trove/hg-fast-export.morph
- repo: upstream:hg-fast-export
- ref: 09a472aa58da0417a11a22bae172785f7cb2e80f
- unpetrify-ref: baserock/morph
- build-depends:
- - mercurial-tarball
-- name: cvsps
- morph: strata/trove/cvsps.morph
- repo: upstream:cvsps
- ref: 71c6d1f5668f405a7b259a0aac0d423f6c9b4d49
- unpetrify-ref: baserock/morph
- build-depends: []
-- name: lorry
- morph: strata/trove/lorry.morph
- repo: baserock:baserock/lorry
- ref: ede3f337e9769b0e6756d4b9cc37d33aa62b82ba
- unpetrify-ref: master
- build-depends:
- - bzr-tarball
- - python-fastimport
- - bzr-fastimport
- - perl-dbi-tarball
- - perl-dbd-sqlite-tarball
- - cvs-tarball
- - cvsps
- - subversion-tarball
- - mercurial-tarball
- - hg-fast-export
- name: trove-setup
morph: strata/trove/trove-setup.morph
repo: baserock:baserock/trove-setup
- ref: 109c02002baf3c2d8eac57027f29f6c74e5233b5
+ ref: 5f2dab59ff6e70edf6ffbcd65fe64b487c4380c2
unpetrify-ref: master
build-depends: []
- name: lorry-controller
morph: strata/trove/lorry-controller.morph
repo: baserock:baserock/lorry-controller
- ref: cc8eb995bdcfe492cde33f2dbe831810e660027a
+ ref: 4b1fcab140d940470c342c6857cdc8682406f0b7
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/wayland-generic.morph b/strata/wayland-generic.morph
index 2e3ad90f..890489dc 100644
--- a/strata/wayland-generic.morph
+++ b/strata/wayland-generic.morph
@@ -5,14 +5,15 @@ build-depends:
- morph: strata/xorg-util-macros-common.morph
chunks:
- name: libxkbcommon
+ morph: strata/wayland-generic/libxkbcommon.morph
repo: upstream:xorg-lib-libxkbcommon
- ref: b721254769212d671a4729f1c88b059979b80efc
- unpetrify-ref: baserock/genivi/baseline
+ ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28
+ unpetrify-ref: xkbcommon-0.5.0
build-depends: []
- name: wayland
morph: strata/wayland-generic/wayland.morph
repo: upstream:wayland
- ref: c946301cc7616cda6944e29635b424a12147950f
- unpetrify-ref: baserock/gnome
+ ref: 339e83aa579569711cd14623ca4b2db46256b766
+ unpetrify-ref: 1.6.0
build-depends:
- libxkbcommon
diff --git a/strata/wayland-generic/libxkbcommon.morph b/strata/wayland-generic/libxkbcommon.morph
new file mode 100644
index 00000000..04048abb
--- /dev/null
+++ b/strata/wayland-generic/libxkbcommon.morph
@@ -0,0 +1,5 @@
+name: libxkbcommon
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --disable-x11
diff --git a/strata/webtools.morph b/strata/webtools.morph
index da5e3338..39175747 100644
--- a/strata/webtools.morph
+++ b/strata/webtools.morph
@@ -1,8 +1,9 @@
name: webtools
kind: stratum
-description: pip, node and other fun things
+description: web things
build-depends:
- morph: strata/tools.morph
+- morph: strata/pcre-utils.morph
chunks:
- name: icu
morph: strata/webtools/icu.morph
@@ -18,23 +19,12 @@ chunks:
- name: tar
morph: strata/webtools/tar.morph
repo: upstream:tar
- ref: 0492b656656ca7973b126b8c117804d80952de48
- unpetrify-ref: baserock/morph
- 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
+ ref: 9a58d148c26c220cb1b163c71e7a51a2e41f6b37
+ unpetrify-ref: baserock/release_1_28
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-common.morph b/strata/weston-common.morph
new file mode 100644
index 00000000..1d5b015c
--- /dev/null
+++ b/strata/weston-common.morph
@@ -0,0 +1,21 @@
+name: weston-common
+kind: stratum
+build-depends:
+- morph: strata/graphics-common.morph
+- morph: strata/input-common.morph
+- morph: strata/mesa-common.morph
+- morph: strata/libdrm-common.morph
+- morph: strata/wayland-generic.morph
+chunks:
+- name: linux-pam
+ repo: upstream:linux-pam
+ ref: b1521c97e73b10469f7b34c0571d51c647eca83c
+ unpetrify-ref: Linux-PAM-1.1.8
+ build-depends: []
+- name: weston
+ morph: strata/weston-common/weston.morph
+ repo: upstream:weston
+ ref: 463b914d4f1efbf5de6d1f45e9037b88a1eb107f
+ unpetrify-ref: baserock/weston-1.6.0/tegra
+ build-depends:
+ - linux-pam
diff --git a/strata/weston-common/weston.morph b/strata/weston-common/weston.morph
new file mode 100644
index 00000000..2efd662e
--- /dev/null
+++ b/strata/weston-common/weston.morph
@@ -0,0 +1,9 @@
+name: weston
+kind: chunk
+build-system: autotools
+configure-commands:
+- |
+ ./autogen.sh --prefix="$PREFIX" \
+ --disable-xwayland \
+ --disable-x11-compositor \
+ --enable-demo-clients-install
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/strata/x-common.morph b/strata/x-common.morph
index f842c7a9..8c0bba1d 100644
--- a/strata/x-common.morph
+++ b/strata/x-common.morph
@@ -30,18 +30,18 @@ chunks:
build-depends: []
- name: xorg-proto-fontsproto
repo: upstream:xorg-proto-fontsproto
- ref: 81e4d4ec53f1f3848ff269fe476c3a1d35d93aef
- unpetrify-ref: baserock/morph
+ ref: df8c05f7c0253a36589d96efa52938215eff9d4d
+ unpetrify-ref: fontsproto-2.1.3
build-depends: []
- name: xorg-proto-glproto
repo: upstream:xorg-proto-glproto
- ref: 8e3407e02980d088e20041e79bdcdd3737e7827e
- unpetrify-ref: baserock/morph
+ ref: f84853d97d5749308992412a215fa518b6536eb3
+ unpetrify-ref: glproto-1.4.17
build-depends: []
- name: xorg-proto-inputproto
repo: upstream:xorg-proto-inputproto
- ref: f8428123019e7357891bbfc0aef21dbb4d0db10f
- unpetrify-ref: baserock/morph
+ ref: 343ff0938f592876b9d82c966f166bf45a78c3c8
+ unpetrify-ref: inputproto-2.3.1
build-depends: []
- name: xorg-proto-kbproto
repo: upstream:xorg-proto-kbproto
@@ -90,8 +90,8 @@ chunks:
build-depends: []
- name: xorg-proto-xextproto
repo: upstream:xorg-proto-xextproto
- ref: f27fcc99d1cf935cc289933326f7d3baacd5107a
- unpetrify-ref: baserock/morph
+ ref: 66afec3f49e8eb0d4c2e9af7088fc3116d4bafd7
+ unpetrify-ref: xextproto-7.3.0
build-depends: []
- name: xorg-proto-xf86bigfontproto
repo: upstream:xorg-proto-xf86bigfontproto
@@ -115,8 +115,8 @@ chunks:
build-depends: []
- name: xorg-proto-x11proto
repo: upstream:xorg-proto-x11proto
- ref: f8c43d587e43fee2c22bd7b5f35a9d4dc8bdb580
- unpetrify-ref: baserock/morph
+ ref: 03cbbf6c3e811c026c86e3a60d2f9af56606e155
+ unpetrify-ref: xproto-7.0.26
build-depends: []
- name: xorg-proto-dri2proto
repo: upstream:xorg-proto-dri2proto
@@ -156,8 +156,8 @@ chunks:
- xorg-lib-libXau
- name: xorg-lib-libxtrans
repo: upstream:xorg-lib-libxtrans
- ref: bd53f4c8543faf910a7a151241ee07661b4d57ad
- unpetrify-ref: baserock/morph
+ ref: 7cbad9fe2e61cd9d5caeaf361826a6f4bd320f03
+ unpetrify-ref: xtrans-1.3.5
build-depends: []
- name: xorg-lib-libX11
repo: upstream:xorg-lib-libX11
@@ -201,8 +201,8 @@ chunks:
- xorg-proto-x11proto
- name: xorg-lib-libXfixes
repo: upstream:xorg-lib-libXfixes
- ref: 73a0fbb479f5b7806a3dd0741be55c9abda76220
- unpetrify-ref: baserock/morph
+ ref: 0cb446962381f750e05d97bfb974ca1e32481d5d
+ unpetrify-ref: libXfixes-5.0.1
build-depends:
- xorg-lib-libXext
- xorg-proto-fixesproto
diff --git a/strata/x-generic.morph b/strata/x-generic.morph
index af42c55e..84f685b0 100644
--- a/strata/x-generic.morph
+++ b/strata/x-generic.morph
@@ -24,8 +24,8 @@ chunks:
- xorg-font-util
- name: xorg-lib-libXfont
repo: upstream:xorg-lib-libXfont
- ref: b8dd42dce868f9c16a59790ce51f0542b59cb79d
- unpetrify-ref: baserock/morph
+ ref: ad4f4d8a2d0730c0ea3c09210bf921638b4682bc
+ unpetrify-ref: libXfont-1.5.0
build-depends:
- xorg-lib-libfontenc
- name: xorg-lib-libICE
@@ -73,8 +73,8 @@ chunks:
- name: xserver
morph: strata/x-generic/xserver.morph
repo: upstream:xserver
- ref: b7cbfa882778cf8857577e0da77aa9295f072db3
- unpetrify-ref: baserock/morph
+ ref: 4393c7f1ba6140a02232f04fbb434a80d663a99d
+ unpetrify-ref: xorg-server-1.16.2
build-depends:
- libsha1
- xorg-font-util
diff --git a/strata/x-generic/xserver.morph b/strata/x-generic/xserver.morph
index 473f5d32..f8495057 100644
--- a/strata/x-generic/xserver.morph
+++ b/strata/x-generic/xserver.morph
@@ -2,4 +2,4 @@ name: xserver
kind: chunk
build-system: autotools
configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --with-sha1=libsha1
+- ./autogen.sh --prefix="$PREFIX" --with-sha1=libsha1 --disable-glx
diff --git a/strata/xfce.morph b/strata/xfce.morph
index e5a30821..5678c1fc 100644
--- a/strata/xfce.morph
+++ b/strata/xfce.morph
@@ -2,7 +2,6 @@ name: xfce
kind: stratum
description: xfce stratum
build-depends:
-- morph: strata/genivi-x-generic.morph
- morph: strata/gtk2.morph
- morph: strata/x-generic.morph
chunks:
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/distbuild-system-armv7lhf-highbank.morph b/systems/build-system-armv7lhf-highbank.morph
index c4ac80ad..8b92f267 100644
--- a/systems/distbuild-system-armv7lhf-highbank.morph
+++ b/systems/build-system-armv7lhf-highbank.morph
@@ -1,6 +1,6 @@
-name: distbuild-system-armv7lhf-highbank
+name: build-system-armv7lhf-highbank
kind: system
-description: Morph distributed build node for armv7lhf highbank
+description: The system that should be used for building all other Baserock systems for ARMv7 little-endian hard-float Calxeda Highbank computers.
arch: armv7lhf
strata:
- name: build-essential
@@ -21,10 +21,11 @@ strata:
morph: strata/ansible.morph
- name: cloudinit-support
morph: strata/cloudinit-support.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
- distbuild
diff --git a/systems/build-system-armv7lhf-jetson.morph b/systems/build-system-armv7lhf-jetson.morph
new file mode 100644
index 00000000..d28b94df
--- /dev/null
+++ b/systems/build-system-armv7lhf-jetson.morph
@@ -0,0 +1,34 @@
+name: build-system-armv7lhf-jetson
+kind: system
+description: The system that should be used for building all other Baserock systems for ARMv7 little-endian hard-float NVIDIA Jetson TK1 computers.
+arch: armv7lhf
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-jetson
+ morph: strata/bsp-jetson.morph
+- name: tools
+ morph: strata/tools.morph
+- name: morph-utils
+ morph: strata/morph-utils.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: ansible
+ morph: strata/ansible.morph
+- name: cloudinit-support
+ morph: strata/cloudinit-support.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
+configuration-extensions:
+- set-hostname
+- add-config-files
+- nfsboot
+- install-files
+- distbuild
+- fstab
+- mason
+- cloud-init
diff --git a/systems/distbuild-system-ppc64.morph b/systems/build-system-ppc64.morph
index 6d77c261..14762a6e 100644
--- a/systems/distbuild-system-ppc64.morph
+++ b/systems/build-system-ppc64.morph
@@ -1,6 +1,6 @@
-name: distbuild-system-ppc64
+name: build-system-ppc64
kind: system
-description: Morph distributed build node for ppc64
+description: The system that should be used for building all other Baserock systems for 64-bit POWER computers.
arch: ppc64
strata:
- name: build-essential
@@ -21,10 +21,11 @@ strata:
morph: strata/ansible.morph
- name: cloudinit-support
morph: strata/cloudinit-support.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
- distbuild
diff --git a/systems/distbuild-system-armv7lhf-jetson.morph b/systems/build-system-x86_32-chroot.morph
index f4147b9e..089a26c8 100644
--- a/systems/distbuild-system-armv7lhf-jetson.morph
+++ b/systems/build-system-x86_32-chroot.morph
@@ -1,7 +1,7 @@
-name: distbuild-system-armv7lhf-jetson
+name: build-system-x86_32-chroot
kind: system
-description: Morph distributed build node for armv7lhf jetson
-arch: armv7lhf
+description: The system that should be used for building all other Baserock systems for 32-bit Intel x86 computers, chroot variant.
+arch: x86_32
strata:
- name: build-essential
morph: strata/build-essential.morph
@@ -9,8 +9,6 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: bsp-jetson-devel
- morph: strata/bsp-jetson-devel.morph
- name: tools
morph: strata/tools.morph
- name: morph-utils
@@ -21,10 +19,11 @@ strata:
morph: strata/ansible.morph
- name: cloudinit-support
morph: strata/cloudinit-support.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
- distbuild
diff --git a/systems/distbuild-system-x86_32.morph b/systems/build-system-x86_32.morph
index aaa85170..35a86e11 100644
--- a/systems/distbuild-system-x86_32.morph
+++ b/systems/build-system-x86_32.morph
@@ -1,6 +1,6 @@
-name: distbuild-system-x86_32
+name: build-system-x86_32
kind: system
-description: Morph distributed build node for x86_32
+description: The system that should be used for building all other Baserock systems for 32-bit Intel x86 computers.
arch: x86_32
strata:
- name: build-essential
@@ -21,10 +21,11 @@ strata:
morph: strata/ansible.morph
- name: cloudinit-support
morph: strata/cloudinit-support.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
- distbuild
diff --git a/systems/build-system-x86_64-chroot.morph b/systems/build-system-x86_64-chroot.morph
new file mode 100644
index 00000000..db3a38db
--- /dev/null
+++ b/systems/build-system-x86_64-chroot.morph
@@ -0,0 +1,32 @@
+name: build-system-x86_64-chroot
+kind: system
+description: The system that should be used for building all other Baserock systems for 64-bit Intel x86 computers, chroot variant.
+arch: x86_64
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: tools
+ morph: strata/tools.morph
+- name: morph-utils
+ morph: strata/morph-utils.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: ansible
+ morph: strata/ansible.morph
+- name: cloudinit-support
+ morph: strata/cloudinit-support.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
+configuration-extensions:
+- set-hostname
+- add-config-files
+- nfsboot
+- install-files
+- distbuild
+- fstab
+- mason
+- cloud-init
diff --git a/systems/distbuild-system-x86_64.morph b/systems/build-system-x86_64.morph
index c42cb553..06868fed 100644
--- a/systems/distbuild-system-x86_64.morph
+++ b/systems/build-system-x86_64.morph
@@ -1,6 +1,6 @@
-name: distbuild-system-x86_64
+name: build-system-x86_64
kind: system
-description: Morph distributed build node for x86_64
+description: The system that should be used for building all other Baserock systems for 64-bit Intel x86 computers.
arch: x86_64
strata:
- name: build-essential
@@ -21,10 +21,11 @@ strata:
morph: strata/ansible.morph
- name: cloudinit-support
morph: strata/cloudinit-support.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
- distbuild
diff --git a/systems/ceph-service-x86_64-generic.morph b/systems/ceph-service-x86_64-generic.morph
index 182cf0cd..f54af0f7 100644
--- a/systems/ceph-service-x86_64-generic.morph
+++ b/systems/ceph-service-x86_64-generic.morph
@@ -16,10 +16,11 @@ strata:
morph: strata/network-security.morph
- name: ceph-service
morph: strata/ceph-service.morph
+- name: tools
+ morph: strata/tools.morph
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 b063673c..466df31f 100644
--- a/systems/devel-system-armv7-chroot.morph
+++ b/systems/devel-system-armv7-chroot.morph
@@ -1,7 +1,10 @@
name: devel-system-armv7-chroot
kind: system
-description: A system that is able to build other systems based on the ARM highbank
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use as a chroot inside a Linux-based operating system on ARMv7
+ computers using little-endian word order.
arch: armv7l
strata:
- name: build-essential
@@ -16,9 +19,18 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
diff --git a/systems/devel-system-armv7-highbank.morph b/systems/devel-system-armv7-highbank.morph
index 3e86b737..ed111387 100644
--- a/systems/devel-system-armv7-highbank.morph
+++ b/systems/devel-system-armv7-highbank.morph
@@ -1,7 +1,9 @@
name: devel-system-armv7-highbank
kind: system
-description: A system that is able to build other systems based on the ARM highbank
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on ARMv7 Calxeda Highbank computers using little-endian word order.
arch: armv7l
strata:
- name: build-essential
@@ -18,9 +20,20 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 43f7a118..6b24e603 100644
--- a/systems/devel-system-armv7-versatile.morph
+++ b/systems/devel-system-armv7-versatile.morph
@@ -1,7 +1,9 @@
name: devel-system-armv7-versatile
kind: system
-description: A system that is able to build other systems based on the ARM versatile
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on generic ARMv7 versatile computers using little-endian word order.
arch: armv7l
strata:
- name: build-essential
@@ -18,9 +20,20 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 11bccaf0..70c6f1cc 100644
--- a/systems/devel-system-armv7-wandboard.morph
+++ b/systems/devel-system-armv7-wandboard.morph
@@ -1,6 +1,9 @@
name: devel-system-armv7-wandboard
kind: system
-description: A system that is able to build other systems based on the Wandboard.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on ARMv7 Wandboard computers using little-endian word order.
arch: armv7l
strata:
- name: build-essential
@@ -17,9 +20,20 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 5081bd20..1f5bf1cf 100644
--- a/systems/devel-system-armv7b-chroot.morph
+++ b/systems/devel-system-armv7b-chroot.morph
@@ -1,6 +1,10 @@
name: devel-system-armv7b-chroot
kind: system
-description: A system that is able to build other systems based on the ARMv7b architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use as a chroot inside a Linux-based operating system on ARMv7 computers
+ using big-endian word order.
arch: armv7b
strata:
- name: build-essential
@@ -15,9 +19,12 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
diff --git a/systems/devel-system-armv7b-highbank.morph b/systems/devel-system-armv7b-highbank.morph
index 9054135b..7e703134 100644
--- a/systems/devel-system-armv7b-highbank.morph
+++ b/systems/devel-system-armv7b-highbank.morph
@@ -1,7 +1,9 @@
name: devel-system-armv7b-highbank
kind: system
-description: A system that is able to build other systems based on the ARM highbank
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on ARMv7 Calxeda Highbank computers using big-endian word order.
arch: armv7b
strata:
- name: build-essential
@@ -18,9 +20,14 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 090d4e6d..02358014 100644
--- a/systems/devel-system-armv7lhf-chroot.morph
+++ b/systems/devel-system-armv7lhf-chroot.morph
@@ -1,6 +1,10 @@
name: devel-system-armv7lhf-chroot
kind: system
-description: A system that is able to build other systems based on the ARMv7lhf architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on ARMv7 computers using little-endian word order and hardware
+ floating point support.
arch: armv7lhf
strata:
- name: build-essential
@@ -15,9 +19,18 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
diff --git a/systems/devel-system-armv7lhf-highbank.morph b/systems/devel-system-armv7lhf-highbank.morph
index bb5c01b4..8fe3737b 100644
--- a/systems/devel-system-armv7lhf-highbank.morph
+++ b/systems/devel-system-armv7lhf-highbank.morph
@@ -1,7 +1,10 @@
name: devel-system-armv7lhf-highbank
kind: system
-description: A system that is able to build other systems based on the ARM highbank
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on ARMv7 Calxeda Highbank computers using little-endian word order
+ and hardware floating-point support.
arch: armv7lhf
strata:
- name: build-essential
@@ -18,9 +21,20 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 ffcf1766..550c361a 100644
--- a/systems/devel-system-armv7lhf-jetson.morph
+++ b/systems/devel-system-armv7lhf-jetson.morph
@@ -1,7 +1,10 @@
name: devel-system-armv7lhf-jetson
kind: system
-description: A system that is able to build other systems based on the NVIDIA Jetson
- TK1.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on ARMv7 NVIDIA Jetson TK1 computers using little-endian word order
+ and hardware floating-point support.
arch: armv7lhf
strata:
- name: build-essential
@@ -16,11 +19,22 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
-- name: bsp-jetson-devel
- morph: strata/bsp-jetson-devel.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: bsp-jetson
+ morph: strata/bsp-jetson.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
diff --git a/systems/devel-system-armv7lhf-wandboard.morph b/systems/devel-system-armv7lhf-wandboard.morph
index 8f15033a..9e8f0bc6 100644
--- a/systems/devel-system-armv7lhf-wandboard.morph
+++ b/systems/devel-system-armv7lhf-wandboard.morph
@@ -1,6 +1,10 @@
name: devel-system-armv7lhf-wandboard
kind: system
-description: A system that is able to build other systems based on the Wandboard.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on ARMv7 Wandboard computers using little-endian word order and
+ hardware floating point support.
arch: armv7lhf
strata:
- name: build-essential
@@ -17,9 +21,20 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 344aa812..a60f35fc 100644
--- a/systems/devel-system-ppc64-chroot.morph
+++ b/systems/devel-system-ppc64-chroot.morph
@@ -1,7 +1,10 @@
name: devel-system-ppc64-chroot
kind: system
-description: A system that is able to build other systems based on the 64-bit PowerPc
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use as a chroot inside a Linux operating system on 64-bit POWER
+ computers.
arch: ppc64
strata:
- name: build-essential
@@ -16,9 +19,16 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
diff --git a/systems/devel-system-ppc64-generic.morph b/systems/devel-system-ppc64-generic.morph
index 7ccff388..6f7fd319 100644
--- a/systems/devel-system-ppc64-generic.morph
+++ b/systems/devel-system-ppc64-generic.morph
@@ -1,7 +1,9 @@
name: devel-system-ppc64-generic
kind: system
-description: A system that is able to build other systems based on the 64-bit PowerPc
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on 64-bit POWER computers.
arch: ppc64
strata:
- name: build-essential
@@ -18,9 +20,18 @@ strata:
morph: strata/morph-utils.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 dc884223..52e64847 100644
--- a/systems/devel-system-x86_32-chroot.morph
+++ b/systems/devel-system-x86_32-chroot.morph
@@ -1,7 +1,10 @@
name: devel-system-x86_32-chroot
kind: system
-description: A system that is able to build other systems based on the 32-bit x86
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use as a chroot inside a Linux operating system on 32-bit Intel x86
+ computers.
arch: x86_32
strata:
- name: build-essential
@@ -18,9 +21,18 @@ strata:
morph: strata/openstack-clients.morph
- name: bsp-x86_both-tools
morph: strata/bsp-x86_both-tools.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
diff --git a/systems/devel-system-x86_32-generic.morph b/systems/devel-system-x86_32-generic.morph
index d9264ac4..8d484e81 100644
--- a/systems/devel-system-x86_32-generic.morph
+++ b/systems/devel-system-x86_32-generic.morph
@@ -1,7 +1,9 @@
name: devel-system-x86_32-generic
kind: system
-description: A system that is able to build other systems based on the 32-bit x86
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on 32-bit Intel x86 computers.
arch: x86_32
strata:
- name: build-essential
@@ -20,10 +22,21 @@ strata:
morph: strata/openstack-clients.morph
- name: cloudinit-support
morph: strata/cloudinit-support.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 34ccf31f..e77aa5d1 100644
--- a/systems/devel-system-x86_64-chroot.morph
+++ b/systems/devel-system-x86_64-chroot.morph
@@ -1,7 +1,10 @@
name: devel-system-x86_64-chroot
kind: system
-description: A system that is able to build other systems based on the 64-bit x86
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use as a chroot inside a Linux operating system on 64-bit Intel x86
+ computers.
arch: x86_64
strata:
- name: build-essential
@@ -18,9 +21,18 @@ strata:
morph: strata/openstack-clients.morph
- name: bsp-x86_both-tools
morph: strata/bsp-x86_both-tools.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
diff --git a/systems/devel-system-x86_64-generic.morph b/systems/devel-system-x86_64-generic.morph
index 64133058..143ceb82 100644
--- a/systems/devel-system-x86_64-generic.morph
+++ b/systems/devel-system-x86_64-generic.morph
@@ -1,7 +1,9 @@
name: devel-system-x86_64-generic
kind: system
-description: A system that is able to build other systems based on the 64-bit x86
- architecture.
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on 64-bit Intel x86 computers.
arch: x86_64
strata:
- name: build-essential
@@ -20,6 +22,18 @@ strata:
morph: strata/openstack-clients.morph
- name: cloudinit-support
morph: strata/cloudinit-support.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-tools
+ morph: strata/python-tools.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 43f68e7f..a7731cad 100644
--- a/systems/devel-system-x86_64-vagrant.morph
+++ b/systems/devel-system-x86_64-vagrant.morph
@@ -1,8 +1,9 @@
name: devel-system-x86_64-vagrant
kind: system
-description: A system that is able to build other systems based on the 64-bit x86
- architecture. This adds the virtualbox guest additions and vagrant configuration
- too
+description: |
+ A system with useful tools for doing Baserock development, using Vagrant.
+
+ For use with the Vagrant tool for x86_64 virtual machines.
arch: x86_64
strata:
- name: build-essential
@@ -11,40 +12,29 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: genivi-foundation
- morph: strata/genivi-foundation.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
-- name: connectivity
- morph: strata/connectivity.morph
-- name: connman-common
- morph: strata/connman-common.morph
-- name: audio-bluetooth
- morph: strata/audio-bluetooth.morph
-- name: x-common
- morph: strata/x-common.morph
-- name: x-generic
- morph: strata/x-generic.morph
-- name: multimedia
- morph: strata/multimedia.morph
-- name: genivi
- morph: strata/genivi.morph
-- name: genivi-x-generic
- morph: strata/genivi-x-generic.morph
- name: tools
morph: strata/tools.morph
- name: morph-utils
morph: strata/morph-utils.morph
-- name: virtualization
- morph: strata/virtualization.morph
- name: openstack-clients
morph: strata/openstack-clients.morph
- name: virtualbox-guest-x86_64
morph: strata/virtualbox-guest-x86_64.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: python-tools
+ morph: strata/python-tools.morph
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files
- vagrant
diff --git a/systems/genivi-baseline-system-armv7lhf-jetson.morph b/systems/genivi-baseline-system-armv7lhf-jetson.morph
index 250b431b..5cbfddbe 100644
--- a/systems/genivi-baseline-system-armv7lhf-jetson.morph
+++ b/systems/genivi-baseline-system-armv7lhf-jetson.morph
@@ -9,10 +9,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: genivi-foundation
- morph: strata/genivi-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
@@ -38,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 52f04234..a5f07750 100644
--- a/systems/genivi-baseline-system-armv7lhf-versatile.morph
+++ b/systems/genivi-baseline-system-armv7lhf-versatile.morph
@@ -9,8 +9,6 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: genivi-foundation
- morph: strata/genivi-foundation.morph
- name: bsp-armv7-versatile
morph: strata/bsp-armv7-versatile.morph
- name: connectivity
@@ -36,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 a5646a63..f5fb571e 100644
--- a/systems/genivi-baseline-system-x86_64-generic.morph
+++ b/systems/genivi-baseline-system-x86_64-generic.morph
@@ -9,8 +9,6 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: genivi-foundation
- morph: strata/genivi-foundation.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
- name: connectivity
@@ -40,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 0f9e296c..9eabc403 100644
--- a/systems/gitlab-ci-runner.morph
+++ b/systems/gitlab-ci-runner.morph
@@ -9,8 +9,6 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: genivi-foundation
- morph: strata/genivi-foundation.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
- name: connectivity
@@ -27,8 +25,6 @@ strata:
morph: strata/multimedia.morph
- name: genivi
morph: strata/genivi.morph
-- name: genivi-x-generic
- morph: strata/genivi-x-generic.morph
- name: tools
morph: strata/tools.morph
- name: virtualization
@@ -37,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
@@ -46,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/installer-system-x86_64.morph b/systems/installer-system-x86_64.morph
new file mode 100644
index 00000000..0b5e4709
--- /dev/null
+++ b/systems/installer-system-x86_64.morph
@@ -0,0 +1,22 @@
+name: installer-system-x86_64
+kind: system
+description: The system that should be used as an Installer to install other Baserock systems.
+arch: x86_64
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-x86_64-generic
+ morph: strata/bsp-x86_64-generic.morph
+- name: morph-utils
+ morph: strata/morph-utils.morph
+- name: installer-utils
+ morph: strata/installer-utils.morph
+configuration-extensions:
+- set-hostname
+- install-files
+- fstab
+- installer
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..1a78ff4f 100644
--- a/systems/qt5-devel-system-x86_64-generic.morph
+++ b/systems/qt5-devel-system-x86_64-generic.morph
@@ -12,8 +12,8 @@ strata:
morph: strata/foundation.morph
- name: audio-bluetooth
morph: strata/audio-bluetooth.morph
-- name: multimedia-gstreamer-0.10
- morph: strata/multimedia-gstreamer-0.10.morph
+- name: multimedia
+ morph: strata/multimedia.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
- name: tools
@@ -24,6 +24,8 @@ strata:
morph: strata/x-generic.morph
- name: qt5-tools
morph: strata/qt5-tools.morph
+- name: qt5-tools-qtwebkit
+ morph: strata/qt5-tools-qtwebkit.morph
- name: qt5-sdk
morph: strata/qt5-sdk.morph
- name: lua
@@ -37,6 +39,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..e305c723 100644
--- a/systems/trove-system-x86_64.morph
+++ b/systems/trove-system-x86_64.morph
@@ -15,8 +15,14 @@ strata:
morph: strata/tools.morph
- name: morph-utils
morph: strata/morph-utils.morph
+- name: pcre-utils
+ morph: strata/pcre-utils.morph
+- name: lorry
+ morph: strata/lorry.morph
- name: trove
morph: strata/trove.morph
+- name: lighttpd-server
+ morph: strata/lighttpd-server.morph
- name: nfs
morph: strata/nfs.morph
- name: ansible
@@ -28,6 +34,5 @@ configuration-extensions:
- trove
- nfsboot-server
- fstab
-- simple-network
- install-files
- cloud-init
diff --git a/systems/web-system-x86_64-generic.morph b/systems/web-system-x86_64-generic.morph
index 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/weston-system-armv7lhf-jetson.morph b/systems/weston-system-armv7lhf-jetson.morph
new file mode 100644
index 00000000..a51bd810
--- /dev/null
+++ b/systems/weston-system-armv7lhf-jetson.morph
@@ -0,0 +1,40 @@
+name: weston-system-armv7lhf-jetson
+kind: system
+description: A weston system for ARMv7 little-endian hard-float NVIDIA Jetson TK1 computers.
+arch: armv7lhf
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: coreutils-common
+ morph: strata/coreutils-common.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-jetson
+ morph: strata/bsp-jetson.morph
+- name: connectivity
+ morph: strata/connectivity.morph
+- name: audio-bluetooth
+ morph: strata/audio-bluetooth.morph
+- name: libdrm-common
+ morph: strata/libdrm-common.morph
+- name: multimedia
+ morph: strata/multimedia.morph
+- name: wayland-generic
+ morph: strata/wayland-generic.morph
+- name: graphics-common
+ morph: strata/graphics-common.morph
+- name: input-common
+ morph: strata/input-common.morph
+- name: llvm-common
+ morph: strata/llvm-common.morph
+- name: mesa-common
+ morph: strata/mesa-common.morph
+- name: weston-common
+ morph: strata/weston-common.morph
+configuration-extensions:
+- set-hostname
+- add-config-files
+- nfsboot
+- install-files
diff --git a/systems/weston-system-x86_64-generic.morph b/systems/weston-system-x86_64-generic.morph
new file mode 100644
index 00000000..491a34bc
--- /dev/null
+++ b/systems/weston-system-x86_64-generic.morph
@@ -0,0 +1,40 @@
+name: weston-system-x86_64-generic
+kind: system
+description: A weston system for a 64-bit x86 system.
+arch: x86_64
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: coreutils-common
+ morph: strata/coreutils-common.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-x86_64-generic
+ morph: strata/bsp-x86_64-generic.morph
+- name: connectivity
+ morph: strata/connectivity.morph
+- name: audio-bluetooth
+ morph: strata/audio-bluetooth.morph
+- name: libdrm-common
+ morph: strata/libdrm-common.morph
+- name: multimedia
+ morph: strata/multimedia.morph
+- name: wayland-generic
+ morph: strata/wayland-generic.morph
+- name: graphics-common
+ morph: strata/graphics-common.morph
+- name: input-common
+ morph: strata/input-common.morph
+- name: llvm-common
+ morph: strata/llvm-common.morph
+- name: mesa-common
+ morph: strata/mesa-common.morph
+- name: weston-common
+ morph: strata/weston-common.morph
+configuration-extensions:
+- set-hostname
+- add-config-files
+- nfsboot
+- install-files
diff --git a/systems/xfce-system.morph b/systems/xfce-system.morph
index 0c53d7c2..152bf16b 100644
--- a/systems/xfce-system.morph
+++ b/systems/xfce-system.morph
@@ -9,8 +9,6 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: genivi-foundation
- morph: strata/genivi-foundation.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
- name: connectivity
@@ -27,8 +25,6 @@ strata:
morph: strata/multimedia.morph
- name: genivi
morph: strata/genivi.morph
-- name: genivi-x-generic
- morph: strata/genivi-x-generic.morph
- name: gtk2
morph: strata/gtk2.morph
- name: tools
@@ -40,6 +36,5 @@ strata:
configuration-extensions:
- set-hostname
- add-config-files
-- simple-network
- nfsboot
- install-files