summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio-bluetooth.morph21
-rw-r--r--bsp-armv7-versatile.morph2
-rw-r--r--bsp-imx53.morph2
-rw-r--r--bsp-x86_32-generic.morph2
-rw-r--r--bsp-x86_64-generic.morph2
-rw-r--r--build-essential.morph2
-rw-r--r--devel-system-armv7-chroot.morph16
-rw-r--r--devel-system-armv7b-chroot.morph16
-rw-r--r--devel-system-armv7lhf-chroot.morph16
-rw-r--r--devel-system-ppc64-chroot.morph17
-rw-r--r--devel-system-x86_32-chroot.morph17
-rw-r--r--devel-system-x86_64-chroot.morph17
-rw-r--r--distbuild-system-armv7lhf-highbank.morph20
-rw-r--r--distbuild.configure161
-rw-r--r--distbuild.morph23
-rwxr-xr-xdistbuild/lib/systemd/system-generators/ccache-nfs-mount-generator16
-rw-r--r--distbuild/manifest19
-rw-r--r--distbuild/usr/lib/systemd/system/morph-cache-server.service9
-rw-r--r--distbuild/usr/lib/systemd/system/morph-controller-helper.service10
-rw-r--r--distbuild/usr/lib/systemd/system/morph-controller.service9
-rw-r--r--distbuild/usr/lib/systemd/system/morph-worker-helper.service10
-rw-r--r--distbuild/usr/lib/systemd/system/morph-worker.service10
l---------distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-cache-server.service1
l---------distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller-helper.service1
l---------distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller.service1
l---------distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker-helper.service1
l---------distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker.service1
-rw-r--r--example-distbuild-cluster.morph37
-rw-r--r--foundation.morph8
-rw-r--r--genivi-baseline-system-armv7-versatile.morph2
-rw-r--r--genivi-baseline-system-x86_64-generic.morph1
-rw-r--r--genivi.morph19
-rw-r--r--image-package-example.morph12
-rw-r--r--image-package-example/README9
-rw-r--r--image-package-example/common.sh.in72
-rw-r--r--image-package-example/disk-install.sh.in51
-rw-r--r--image-package-example/make-disk-image.sh.in36
-rwxr-xr-ximage-package.write168
-rwxr-xr-xlicensecheck.sh8
-rw-r--r--sdk-example-cluster.morph46
-rw-r--r--sdk.morph18
-rwxr-xr-xsdk.write2
-rwxr-xr-xstrip-gplv3.configure12
-rw-r--r--tools.morph12
-rwxr-xr-xtrove.configure12
-rw-r--r--trove.morph2
-rw-r--r--wayland-armv7-versatile.morph74
-rw-r--r--wayland-x86_64-generic.morph76
48 files changed, 1038 insertions, 61 deletions
diff --git a/audio-bluetooth.morph b/audio-bluetooth.morph
index e1cd778a..07db9d16 100644
--- a/audio-bluetooth.morph
+++ b/audio-bluetooth.morph
@@ -20,22 +20,29 @@ chunks:
unpetrify-ref: baserock/morph
build-depends:
- alsa-lib
+- name: libical
+ repo: upstream:libical
+ ref: 52568782ae136e1ec4ddf3eb6da7b0f3fbd3f1b3
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: readline
+ repo: upstream:readline
+ ref: 518937ab89be812ccd45e9b8c1ce4ad721d35ef6
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends: []
- name: bluez
repo: upstream:bluez
- ref: df1dd28e3a5c92fb67209e4ae3ad2d04c6380b9b
- unpetrify-ref: baserock/genivi/baseline
+ ref: 9e483337a42f0ddef06cc9ad146c8523f2b08888
+ unpetrify-ref: baserock/v5.17
build-depends:
+ - readline
+ - libical
- alsa-lib
- name: bluez-tools
repo: upstream:bluez-tools
ref: 7350787e96a6ecf2cc5d4afddb3321ccad9fa461
unpetrify-ref: baserock/morph
build-depends: []
-- name: libical
- repo: upstream:libical
- ref: 52568782ae136e1ec4ddf3eb6da7b0f3fbd3f1b3
- unpetrify-ref: baserock/morph
- build-depends: []
- name: obexd
repo: upstream:obexd
ref: 4225280022c206762c91beee47c62d05e1baeacc
diff --git a/bsp-armv7-versatile.morph b/bsp-armv7-versatile.morph
index 9ad1e5d0..797fdeec 100644
--- a/bsp-armv7-versatile.morph
+++ b/bsp-armv7-versatile.morph
@@ -7,6 +7,6 @@ build-depends:
chunks:
- name: linux
repo: upstream:linux
- ref: 2a054e5708e376890693f71c3697c4a259a5e46f
+ ref: 5a9b14cc3d6bc4060cc55ed6e1d2b5565b201ad5
unpetrify-ref: baserock/arm/versatile
build-depends: []
diff --git a/bsp-imx53.morph b/bsp-imx53.morph
index 1e077f1c..395fad19 100644
--- a/bsp-imx53.morph
+++ b/bsp-imx53.morph
@@ -7,6 +7,6 @@ build-depends:
chunks:
- name: linux
repo: upstream:linux
- ref: dd7e7979f314aae8a7095cdedac047186166e30c
+ ref: 316df4c3eb667636eadf4b663f4087f1f9cc3cfe
unpetrify-ref: baserock/morph
build-depends: []
diff --git a/bsp-x86_32-generic.morph b/bsp-x86_32-generic.morph
index 31c5a38c..b6cb845a 100644
--- a/bsp-x86_32-generic.morph
+++ b/bsp-x86_32-generic.morph
@@ -7,7 +7,7 @@ build-depends:
chunks:
- name: linux
repo: upstream:linux
- ref: dd7e7979f314aae8a7095cdedac047186166e30c
+ ref: 316df4c3eb667636eadf4b663f4087f1f9cc3cfe
unpetrify-ref: baserock/morph
build-depends: []
- name: nasm
diff --git a/bsp-x86_64-generic.morph b/bsp-x86_64-generic.morph
index 87d0fc93..a824fdfc 100644
--- a/bsp-x86_64-generic.morph
+++ b/bsp-x86_64-generic.morph
@@ -7,7 +7,7 @@ build-depends:
chunks:
- name: linux
repo: upstream:linux
- ref: dd7e7979f314aae8a7095cdedac047186166e30c
+ ref: 316df4c3eb667636eadf4b663f4087f1f9cc3cfe
unpetrify-ref: baserock/morph
build-depends: []
- name: nasm
diff --git a/build-essential.morph b/build-essential.morph
index 882197e0..b5a92359 100644
--- a/build-essential.morph
+++ b/build-essential.morph
@@ -313,7 +313,7 @@ chunks:
prefix: /usr
- name: ccache
repo: upstream:ccache
- ref: 0827e0b0f9c401b3aac87bb66fdeb81d6bdd6139
+ ref: 567631456f0899cdf0c382f898d38aadc8901d32
unpetrify-ref: baserock/build-essential
build-depends:
- stage2-binutils
diff --git a/devel-system-armv7-chroot.morph b/devel-system-armv7-chroot.morph
new file mode 100644
index 00000000..0ec755f8
--- /dev/null
+++ b/devel-system-armv7-chroot.morph
@@ -0,0 +1,16 @@
+arch: armv7l
+configuration-extensions:
+- set-hostname
+- add-config-files
+- simple-network
+- nfsboot
+- install-files
+description: A system that is able to build other systems based on the ARM highbank
+ architecture.
+kind: system
+name: devel-system-armv7-chroot
+strata:
+- morph: build-essential
+- morph: core
+- morph: foundation
+- morph: tools
diff --git a/devel-system-armv7b-chroot.morph b/devel-system-armv7b-chroot.morph
new file mode 100644
index 00000000..66fa0af2
--- /dev/null
+++ b/devel-system-armv7b-chroot.morph
@@ -0,0 +1,16 @@
+arch: armv7b
+configuration-extensions:
+- set-hostname
+- add-config-files
+- simple-network
+- nfsboot
+- install-files
+description: A system that is able to build other systems based on the ARMv7b
+ architecture.
+kind: system
+name: devel-system-armv7b-chroot
+strata:
+- morph: build-essential
+- morph: core
+- morph: foundation
+- morph: tools
diff --git a/devel-system-armv7lhf-chroot.morph b/devel-system-armv7lhf-chroot.morph
new file mode 100644
index 00000000..c6d5b5a2
--- /dev/null
+++ b/devel-system-armv7lhf-chroot.morph
@@ -0,0 +1,16 @@
+arch: armv7lhf
+configuration-extensions:
+- set-hostname
+- add-config-files
+- simple-network
+- nfsboot
+- install-files
+description: A system that is able to build other systems based on the ARMv7lhf
+ architecture.
+kind: system
+name: devel-system-armv7lhf-chroot
+strata:
+- morph: build-essential
+- morph: core
+- morph: foundation
+- morph: tools
diff --git a/devel-system-ppc64-chroot.morph b/devel-system-ppc64-chroot.morph
new file mode 100644
index 00000000..4b4f6b57
--- /dev/null
+++ b/devel-system-ppc64-chroot.morph
@@ -0,0 +1,17 @@
+arch: ppc64
+configuration-extensions:
+- set-hostname
+- add-config-files
+- simple-network
+- nfsboot
+- install-files
+description: A system that is able to build other systems based on the 64-bit PowerPc
+ architecture.
+kind: system
+name: devel-system-ppc64-chroot
+strata:
+- morph: build-essential
+- morph: core
+- morph: foundation
+- morph: tools
+- morph: glanceclient
diff --git a/devel-system-x86_32-chroot.morph b/devel-system-x86_32-chroot.morph
new file mode 100644
index 00000000..3341b440
--- /dev/null
+++ b/devel-system-x86_32-chroot.morph
@@ -0,0 +1,17 @@
+arch: x86_32
+configuration-extensions:
+- set-hostname
+- add-config-files
+- simple-network
+- nfsboot
+- install-files
+description: A system that is able to build other systems based on the 32-bit x86
+ architecture.
+kind: system
+name: devel-system-x86_32-chroot
+strata:
+- morph: build-essential
+- morph: core
+- morph: foundation
+- morph: tools
+- morph: glanceclient
diff --git a/devel-system-x86_64-chroot.morph b/devel-system-x86_64-chroot.morph
new file mode 100644
index 00000000..99ac6272
--- /dev/null
+++ b/devel-system-x86_64-chroot.morph
@@ -0,0 +1,17 @@
+arch: x86_64
+configuration-extensions:
+- set-hostname
+- add-config-files
+- simple-network
+- nfsboot
+- install-files
+description: A system that is able to build other systems based on the 64-bit x86
+ architecture.
+kind: system
+name: devel-system-x86_64-chroot
+strata:
+- morph: build-essential
+- morph: core
+- morph: foundation
+- morph: tools
+- morph: glanceclient
diff --git a/distbuild-system-armv7lhf-highbank.morph b/distbuild-system-armv7lhf-highbank.morph
new file mode 100644
index 00000000..fdad7cc7
--- /dev/null
+++ b/distbuild-system-armv7lhf-highbank.morph
@@ -0,0 +1,20 @@
+arch: armv7lhf
+configuration-extensions:
+- set-hostname
+- add-config-files
+- simple-network
+- nfsboot
+- install-files
+- distbuild
+- fstab
+description: Morph distributed build node for armv7lhf highbank
+kind: system
+name: distbuild-system-armv7lhf-highbank
+strata:
+- morph: build-essential
+- morph: core
+- morph: foundation
+- morph: bsp-armv7-highbank
+- morph: tools
+- morph: nfs
+- morph: distbuild
diff --git a/distbuild.configure b/distbuild.configure
new file mode 100644
index 00000000..31afc813
--- /dev/null
+++ b/distbuild.configure
@@ -0,0 +1,161 @@
+#!/bin/sh
+# 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
+# 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" configure extension to configure a Baserock
+# build node, as part of a distributed building cluster. It uses the
+# following variables from the environment:
+#
+# * DISTBUILD_CONTROLLER: if 'yes', machine is set up as the controller.
+# * DISTBUILD_WORKER: if 'yes', machine is set up as a worker.
+# * TROVE_ID: hostname and Trove prefix of the server to pull source
+# from and push built artifacts to.
+#
+# The following variable is optional:
+#
+# * ARTIFACT_CACHE_SERVER: by default artifacts are pushed to the same
+# Trove that served the source, but you can use a different one.
+#
+# The following variable is required for worker nodes only:
+#
+# * CONTROLLERHOST: hostname or IP address of distbuild controller machine.
+# * WORKER_SSH_KEY: identity used to authenticate with Trove
+#
+# The following variable is required for the controller node only:
+#
+# * WORKERS: hostnames or IP address of worker nodes, comma-separated.
+
+set -e
+
+
+# If ARTIFACT_CACHE_SERVER isn't set, default to $TROVE_ID.
+if [ "x$ARTIFACT_CACHE_SERVER" = x ]
+then
+ ARTIFACT_CACHE_SERVER="$TROVE_ID"
+fi
+
+set -u
+
+
+# Create the mount point for extra disk space.
+install -d -o 0 -g 0 -m 0755 "$1/srv/distbuild"
+
+
+# Configuration shared by all instances of Morph. For reasons of
+# convenience, this sets the controller-initiator-address, so
+# that when users invoke "morph", they don't need to manually
+# specify it, or to manually add another configuration file to
+# use. However, the setting may only be set for the distbuild
+# initiator (which is what the user invokes), so in ALL other
+# configuration files we unset it.
+#
+# We disable the disk space requirement checks on non-worker nodes.
+# They don't make sense unless you're building locally.
+
+cat <<EOF > "$1/etc/morph.conf"
+[config]
+log = /var/log/morph.log
+log-max = 100M
+cachedir = /srv/distbuild
+tempdir = /srv/distbuild/tmp
+trove-host = $TROVE_ID
+controller-initiator-address = $CONTROLLERHOST
+tempdir-min-space = 0
+cachedir-min-space = 0
+build-ref-prefix = $TROVE_ID
+artifact-cache-server = http://${ARTIFACT_CACHE_SERVER}:8080/
+git-resolve-cache-server = http://${TROVE_ID}:8080/
+EOF
+
+
+# Configuration for a distbuild controller. This configuration
+# file gets used by the systemd unit that runs the controller.
+# The existence of this configuration file triggers the systemd
+# unit, so we only create it on nodes that are meant to act as
+# the controller.
+
+if [ "$DISTBUILD_CONTROLLER" = True ]
+then
+ cat <<EOF > "$1/etc/morph-controller.conf"
+[config]
+log = /var/log/morph-controller.log
+log-max = 100M
+writeable-cache-server = http://${ARTIFACT_CACHE_SERVER}:8081/
+worker = $WORKERS
+controller-helper-address = 127.0.0.1
+EOF
+
+ # Configuration for the controller's helper process. This
+ # gets used by the systemd unit that starts the helper.
+
+cat <<EOF > "$1/etc/morph-controller-helper.conf"
+[config]
+log = /var/log/morph-controller-helper.log
+log-max = 100M
+parent-port = 5656
+parent-address = 127.0.0.1
+EOF
+
+fi
+
+# Configuration for a distbuild worker. This gets reference
+# by the systemd unit that starts the worker. Again, the
+# existence of morph-worker.conf triggers the systemd unit
+# to starts the worker, so we only create it on systems
+# that are meant to be a worker.
+
+if [ "$DISTBUILD_WORKER" = True ]
+then
+ cat <<EOF > "$1/etc/morph-worker.conf"
+[config]
+log = /var/log/morph-worker.log
+log-max = 100M
+controller-initiator-address =
+EOF
+
+ # This will be used for a systemd generator which
+ # nfs mounts the ccache from the trove
+ echo "$TROVE_ID" > "$1/etc/trove-host"
+
+ # Configuration for the controller's helper process. This
+ # gets used by the systemd unit that starts the helper.
+
+cat <<EOF > "$1/etc/morph-worker-helper.conf"
+[config]
+log = /var/log/morph-worker-helper.log
+log-max = 100M
+parent-address = 127.0.0.1
+EOF
+
+
+ # Configuration for the Morph cache server daemon. We
+ # only run the cache server on workers.
+
+cat <<EOF > "$1/etc/morph-cache-server.conf"
+[config]
+port = 8080
+artifact-dir = /srv/distbuild/artifacts
+direct-mode = True
+fcgi-server = False
+EOF
+
+echo "Copy distbuild worker SSH key to system"
+mkdir -p "$1/root/.ssh"
+install -m 0600 "$WORKER_SSH_KEY" "$1/root/.ssh/id_rsa"
+install -m 0644 "${WORKER_SSH_KEY}.pub" "$1/root/.ssh/id_rsa.pub"
+
+# Add trove's host key
+ssh-keyscan -t dsa,ecdsa,rsa "$TROVE_ID" >> "$1/root/.ssh/known_hosts"
+fi
diff --git a/distbuild.morph b/distbuild.morph
new file mode 100644
index 00000000..9a2d1087
--- /dev/null
+++ b/distbuild.morph
@@ -0,0 +1,23 @@
+name: distbuild
+kind: stratum
+description: Morph distributed build software
+build-depends:
+- morph: foundation
+- morph: core
+- morph: tools
+chunks:
+- name: bottle
+ repo: upstream:bottle
+ ref: 5238c615b3ec198fedebb0fcaad4458e3d68d70f
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: morph-cache-server
+ repo: baserock:baserock/morph-cache-server
+ ref: cc5f95fa563c4817cdcffc428da18e263bd02ae2
+ unpetrify-ref: master
+ build-depends: []
+- name: flup
+ repo: upstream:flup
+ ref: 0f97c5e0ab7d9827506120efc22af3a9c21d1d70
+ unpetrify-ref: baserock/morph
+ build-depends: []
diff --git a/distbuild/lib/systemd/system-generators/ccache-nfs-mount-generator b/distbuild/lib/systemd/system-generators/ccache-nfs-mount-generator
new file mode 100755
index 00000000..127bc84f
--- /dev/null
+++ b/distbuild/lib/systemd/system-generators/ccache-nfs-mount-generator
@@ -0,0 +1,16 @@
+#!/bin/sh
+read trove_host </etc/trove-host
+while read line; do echo "$line"; done >"$1/srv-distbuild-ccache.mount" <<EOF
+[Unit]
+Requires=rpcbind.service
+After=rpcbind.service
+SourcePath=/etc/trove-host
+
+[Mount]
+Type=nfs
+What=$trove_host:/home/cache/ccache
+Where=/srv/distbuild/ccache
+
+[Install]
+WantedBy=morph-worker.service
+EOF
diff --git a/distbuild/manifest b/distbuild/manifest
new file mode 100644
index 00000000..eba7c9f1
--- /dev/null
+++ b/distbuild/manifest
@@ -0,0 +1,19 @@
+0040755 0 0 /lib
+0040755 0 0 /lib/systemd
+0040755 0 0 /lib/systemd/system-generators
+0100755 0 0 /lib/systemd/system-generators/ccache-nfs-mount-generator
+0040755 0 0 /usr
+0040755 0 0 /usr/lib
+0040755 0 0 /usr/lib/systemd
+0040755 0 0 /usr/lib/systemd/system
+0100755 0 0 /usr/lib/systemd/system/morph-cache-server.service
+0100755 0 0 /usr/lib/systemd/system/morph-controller.service
+0100755 0 0 /usr/lib/systemd/system/morph-controller-helper.service
+0100755 0 0 /usr/lib/systemd/system/morph-worker.service
+0100755 0 0 /usr/lib/systemd/system/morph-worker-helper.service
+0040755 0 0 /usr/lib/systemd/system/multi-user.target.wants
+0120755 0 0 /usr/lib/systemd/system/multi-user.target.wants/morph-cache-server.service
+0120755 0 0 /usr/lib/systemd/system/multi-user.target.wants/morph-controller.service
+0120755 0 0 /usr/lib/systemd/system/multi-user.target.wants/morph-controller-helper.service
+0120755 0 0 /usr/lib/systemd/system/multi-user.target.wants/morph-worker.service
+0120755 0 0 /usr/lib/systemd/system/multi-user.target.wants/morph-worker-helper.service
diff --git a/distbuild/usr/lib/systemd/system/morph-cache-server.service b/distbuild/usr/lib/systemd/system/morph-cache-server.service
new file mode 100644
index 00000000..7ee5e167
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/morph-cache-server.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Morph cache server
+Requires=local-fs.target network.target
+After=local-fs.target network.target
+ConditionPathExists=/etc/morph-cache-server.conf
+
+[Service]
+ExecStart=/usr/bin/morph-cache-server
+Restart=always
diff --git a/distbuild/usr/lib/systemd/system/morph-controller-helper.service b/distbuild/usr/lib/systemd/system/morph-controller-helper.service
new file mode 100644
index 00000000..9e5bd3c8
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/morph-controller-helper.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Morph distributed build controller helper
+Requires=morph-controller.service
+After=morph-controller.service
+ConditionPathExists=/etc/morph-controller.conf
+ConditionPathExists=/etc/morph-controller-helper.conf
+
+[Service]
+ExecStart=/usr/bin/distbuild-helper --config /etc/morph-controller-helper.conf
+Restart=always
diff --git a/distbuild/usr/lib/systemd/system/morph-controller.service b/distbuild/usr/lib/systemd/system/morph-controller.service
new file mode 100644
index 00000000..b3ba93b4
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/morph-controller.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Morph distributed build controller
+Requires=local-fs.target network.target
+After=local-fs.target network.target
+ConditionPathExists=/etc/morph-controller.conf
+
+[Service]
+ExecStart=/usr/bin/morph controller-daemon --config /etc/morph-controller.conf
+Restart=always
diff --git a/distbuild/usr/lib/systemd/system/morph-worker-helper.service b/distbuild/usr/lib/systemd/system/morph-worker-helper.service
new file mode 100644
index 00000000..14c082ce
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/morph-worker-helper.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Morph distributed build worker helper
+Requires=morph-worker.service
+After=morph-worker.service
+ConditionPathExists=/etc/morph-worker.conf
+ConditionPathExists=/etc/morph-worker-helper.conf
+
+[Service]
+ExecStart=/usr/bin/distbuild-helper --config /etc/morph-worker-helper.conf
+Restart=always
diff --git a/distbuild/usr/lib/systemd/system/morph-worker.service b/distbuild/usr/lib/systemd/system/morph-worker.service
new file mode 100644
index 00000000..26dcb9ad
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/morph-worker.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Morph distributed build worker
+Requires=local-fs.target network.target
+Wants=srv-distbuild-ccache.mount
+After=local-fs.target network.target srv-distbuild-ccache.mount
+ConditionPathExists=/etc/morph-worker.conf
+
+[Service]
+ExecStart=/usr/bin/morph worker-daemon --config /etc/morph-worker.conf
+Restart=always
diff --git a/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-cache-server.service b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-cache-server.service
new file mode 120000
index 00000000..e624a31d
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-cache-server.service
@@ -0,0 +1 @@
+../morph-cache-server.service \ No newline at end of file
diff --git a/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller-helper.service b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller-helper.service
new file mode 120000
index 00000000..1554df76
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller-helper.service
@@ -0,0 +1 @@
+../morph-controller-helper.service \ No newline at end of file
diff --git a/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller.service b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller.service
new file mode 120000
index 00000000..9d92814b
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-controller.service
@@ -0,0 +1 @@
+../morph-controller.service \ No newline at end of file
diff --git a/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker-helper.service b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker-helper.service
new file mode 120000
index 00000000..298c582f
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker-helper.service
@@ -0,0 +1 @@
+../morph-worker-helper.service \ No newline at end of file
diff --git a/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker.service b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker.service
new file mode 120000
index 00000000..3f8d58a8
--- /dev/null
+++ b/distbuild/usr/lib/systemd/system/multi-user.target.wants/morph-worker.service
@@ -0,0 +1 @@
+../morph-worker.service \ No newline at end of file
diff --git a/example-distbuild-cluster.morph b/example-distbuild-cluster.morph
new file mode 100644
index 00000000..736a5beb
--- /dev/null
+++ b/example-distbuild-cluster.morph
@@ -0,0 +1,37 @@
+name: example-distbuild-cluster
+kind: cluster
+description: |
+ This is an example cluster morph that can be adapted to set up a
+ Baserock distributed build network.
+
+ You will need to deploy a Trove for the distributed build network
+ to use before deploying this cluster. The worker SSH key file should
+ be generated as part of the Trove deployment. It is the key used by
+ workers to authenticate with the Trove to give them read access to
+ all source repositories.
+systems:
+- morph: distbuild-system-x86_64-generic
+ deploy-defaults:
+ TROVE_ID: $MY_TROVE
+ CONTROLLERHOST: build-controller
+ DISTBUILD_CONTROLLER: no
+ DISTBUILD_WORKER: yes
+ FSTAB_SRC: LABEL=src /srv/distbuild auto defaults,rw,noatime 0 2
+ INSTALL_FILES: distbuild/manifest
+ NFSBOOT_CONFIGURE: yes
+ WORKER_SSH_KEY: ssh-keys/worker.key
+ deploy:
+ build-controller:
+ type: nfsboot
+ location: $MY_TROVE
+ DISTBUILD_CONTROLLER: yes
+ HOSTNAME: build-controller
+ WORKERS: build-node-1, build-node-2
+ build-node-1:
+ type: nfsboot
+ location: $MY_TROVE
+ HOSTNAME: build-node-1
+ build-node-2:
+ type: nfsboot
+ location: $MY_TROVE
+ HOSTNAME: build-node-2
diff --git a/foundation.morph b/foundation.morph
index 01938d7f..413ed4be 100644
--- a/foundation.morph
+++ b/foundation.morph
@@ -65,8 +65,8 @@ chunks:
- glib
- name: dbus-pre
repo: upstream:dbus
- ref: a0f3687d650c8c73134f318820f4978a4ff3e9e2
- unpetrify-ref: baserock/build-essential
+ ref: f2e4718bf42f507684949ebf484aa94df42abbbe
+ unpetrify-ref: baserock/v1.8.0
build-depends:
- glib
- name: systemd
@@ -94,8 +94,8 @@ chunks:
- lzo
- name: dbus
repo: upstream:dbus
- ref: a0f3687d650c8c73134f318820f4978a4ff3e9e2
- unpetrify-ref: baserock/build-essential
+ ref: f2e4718bf42f507684949ebf484aa94df42abbbe
+ unpetrify-ref: baserock/v1.8.0
build-depends:
- glib
- systemd
diff --git a/genivi-baseline-system-armv7-versatile.morph b/genivi-baseline-system-armv7-versatile.morph
index efa122a6..910d00f8 100644
--- a/genivi-baseline-system-armv7-versatile.morph
+++ b/genivi-baseline-system-armv7-versatile.morph
@@ -6,6 +6,7 @@ configuration-extensions:
- nfsboot
- install-files
- strip-gplv3
+- fstab
description: A GENIVI baseline system for an ARMv7 system.
kind: system
name: genivi-baseline-system-armv7-versatile
@@ -22,3 +23,4 @@ strata:
- morph: multimedia
- morph: genivi
- morph: genivi-x-armv7-versatile
+- morph: wayland-armv7-versatile
diff --git a/genivi-baseline-system-x86_64-generic.morph b/genivi-baseline-system-x86_64-generic.morph
index 1ed20b57..3b9f7dc5 100644
--- a/genivi-baseline-system-x86_64-generic.morph
+++ b/genivi-baseline-system-x86_64-generic.morph
@@ -22,3 +22,4 @@ strata:
- morph: multimedia
- morph: genivi
- morph: genivi-x-x86_64-generic
+- morph: wayland-x86_64-generic
diff --git a/genivi.morph b/genivi.morph
index 3164d294..70384d3c 100644
--- a/genivi.morph
+++ b/genivi.morph
@@ -47,3 +47,22 @@ chunks:
- googlemock
- genivi-common-api-runtime
- genivi-common-api-dbus-runtime
+- name: itzam-tarball
+ repo: upstream:itzam-tarball
+ ref: 4ebcf671416927b64475da7b810b6016c847bf73
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends: []
+- name: persistence-client-library
+ repo: upstream:genivi/persistence-client-library
+ ref: 0934ba263e69be8453cc3150f997dad28489f0c7
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - DLT-daemon
+ - itzam-tarball
+- name: node-state-manager
+ repo: upstream:node-state-manager
+ ref: dd4a86b9459537d2e85489b36abf80f34d12f098
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - DLT-daemon
+ - persistence-client-library
diff --git a/image-package-example.morph b/image-package-example.morph
new file mode 100644
index 00000000..eeb5b3f2
--- /dev/null
+++ b/image-package-example.morph
@@ -0,0 +1,12 @@
+name: image-package-example
+kind: cluster
+description: |
+ Packaged system and script for installing it, for deferred instantiation.
+systems:
+- morph: base-system-x86_32-generic
+ deploy:
+ imgpkg:
+ type: image-package
+ location: image-package-example.tar
+ BOOTLOADER_BLOBS: "/usr/share/syslinux/mbr.bin"
+ INCLUDE_SCRIPTS: "image-package-example/make-disk-image.sh.in:image-package-example/disk-install.sh.in:image-package-example/common.sh.in"
diff --git a/image-package-example/README b/image-package-example/README
new file mode 100644
index 00000000..c1322f25
--- /dev/null
+++ b/image-package-example/README
@@ -0,0 +1,9 @@
+Image package example scripts
+=============================
+
+These are scripts used to create disk images or install the system onto
+an existing disk.
+
+This is also implemented independently for the rawdisk.write write
+extension; see morphlib.writeexts.WriteExtension.create_local_system()
+for a similar, python implementation.
diff --git a/image-package-example/common.sh.in b/image-package-example/common.sh.in
new file mode 100644
index 00000000..9a7389a7
--- /dev/null
+++ b/image-package-example/common.sh.in
@@ -0,0 +1,72 @@
+#!/bin/false
+# Script library to be used by disk-install.sh and make-disk-image.sh
+
+status(){
+ echo "$@"
+}
+
+info(){
+ echo "$@" >&2
+}
+
+warn(){
+ echo "$@" >&2
+}
+
+extract_rootfs(){
+ tar -C "$1" -xf @@ROOTFS_TAR_PATH@@ .
+}
+
+make_disk_image(){
+ truncate --size "$1" "$2"
+}
+
+format_disk(){
+ local disk="$1"
+ mkfs.ext4 -F -L rootfs "$disk"
+}
+
+install_fs_config(){
+ local mountpoint="$1"
+ local rootdisk="${2-/dev/vda}"
+ cat >>"$mountpoint/etc/fstab" <<EOF
+$rootdisk / ext4 rw,errors=remount-ro 0 0
+EOF
+ install -D -m 644 /proc/self/fd/0 "$mountpoint/boot/extlinux.conf" <<EOF
+DEFAULT baserock
+LABEL baserock
+SAY Booting Baserock
+LINUX /boot/vmlinuz
+APPEND root=$rootdisk
+EOF
+}
+
+install_bootloader(){
+ local disk="$1"
+ local mountpoint="$2"
+ dd if=@@IMAGE_DIR@@/mbr.bin conv=notrunc bs=440 count=1 of="$disk"
+ extlinux --install "$mountpoint/boot"
+}
+
+loop_file(){
+ losetup --show --find "$1"
+}
+unloop_file(){
+ #losetup --detach "$1"
+ # unlooping handled by umount -d, for busybox compatibility
+ true
+}
+
+temp_mount(){
+ local mp="$(mktemp -d)"
+ if ! mount "$@" "$mp"; then
+ rmdir "$mp"
+ return 1
+ fi
+ echo "$mp"
+}
+untemp_mount(){
+ # Unmount and detach in one step for busybox compatibility
+ umount -d "$1"
+ rmdir "$1"
+}
diff --git a/image-package-example/disk-install.sh.in b/image-package-example/disk-install.sh.in
new file mode 100644
index 00000000..bc8e0e67
--- /dev/null
+++ b/image-package-example/disk-install.sh.in
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Script for writing the system to an existing disk.
+# This formats the disk, extracts the rootfs to it, installs the
+# bootloader, and ensures there's appropriate configuration for the
+# bootloader, kernel and userland to agree what the rootfs is.
+
+set -eu
+
+usage(){
+ cat <<EOF
+usage: $0 DISK [TARGET_DISK]
+
+DISK: Where the disk appears on your development machine
+TARGET_DISK: What the disk will appear as on the target machine
+EOF
+}
+
+. @@SCRIPT_DIR@@/common.sh
+
+if [ "$#" -lt 1 -o "$#" -gt 2 ]; then
+ usage
+ exit 1
+fi
+
+DISK="$1"
+TARGET_DISK="${1-/dev/sda}"
+
+status Formatting "$DISK" as ext4
+format_disk "$DISK"
+(
+ info Mounting "$DISK"
+ MP="$(temp_mount -t ext4 "$DISK")"
+ info Mounted "$DISK" to "$MP"
+ set +e
+ (
+ set -e
+ info Copying rootfs onto disk
+ extract_rootfs "$MP"
+ info Configuring disk paths
+ install_fs_config "$MP" "$TARGET_DISK"
+ info Installing bootloader
+ install_bootloader "$DISK" "$MP"
+ )
+ ret="$?"
+ if [ "$ret" != 0 ]; then
+ warn Filling rootfs failed with "$ret"
+ fi
+ info Unmounting "$DISK" from "$MP" and removing "$MP"
+ untemp_mount "$MP"
+ exit "$ret"
+)
diff --git a/image-package-example/make-disk-image.sh.in b/image-package-example/make-disk-image.sh.in
new file mode 100644
index 00000000..61264fa0
--- /dev/null
+++ b/image-package-example/make-disk-image.sh.in
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Script for writing the system to a disk image file.
+# This creates a file of the right size, attaches it to a loop device,
+# then hands the rest of the work off to disk-install.sh
+
+usage(){
+ cat <<EOF
+usage: $0 FILENAME SIZE [TARGET_DISK]
+
+FILENAME: Location to write the disk image to
+SIZE: Size to create the disk image with
+TARGET_DISK: What the disk will appear as on the target machine
+EOF
+}
+
+. @@SCRIPT_DIR@@/common.sh
+
+if [ "$#" -lt 2 -o "$#" -gt 3 ]; then
+ usage
+ exit 1
+fi
+
+DISK_IMAGE="$1"
+DISK_SIZE="$2"
+TARGET_DISK="${3-/dev/vda}"
+
+make_disk_image "$DISK_SIZE" "$DISK_IMAGE"
+
+(
+ LOOP="$(loop_file "$DISK_IMAGE")"
+ set +e
+ @@SCRIPT_DIR@@/disk-install.sh "$DISK_IMAGE" "$TARGET_DISK"
+ ret="$?"
+ unloop_file "$LOOP"
+ exit "$ret"
+)
diff --git a/image-package.write b/image-package.write
new file mode 100755
index 00000000..15ceadcf
--- /dev/null
+++ b/image-package.write
@@ -0,0 +1,168 @@
+#!/bin/sh
+# 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.
+#
+# =*= License: GPL-2 =*=
+#
+#
+# This is a write extension for making a package that can be used to
+# install the produced system. Ideally we'd instead have Baserock
+# everywhere to do the deployment, but we need to support this workflow
+# until that is possible.
+#
+# This write extension produces a tarball, which contains:
+# - a tarball of the configured system root file system
+# - any supporting files listed in BOOTLOADER_BLOBS
+# - any supporting scripts, generated from templates listed in
+# INCLUDE_SCRIPTS
+#
+# The extension requires the following environment variables to be set:
+#
+# * BOOTLOADER_BLOBS: files to include besides rootfs tarball,
+# paths are relative to the root of the built rootfs
+# works on any kind of file in the rootfs, named
+# BOOTLOADER_BLOBS since that's the common use-case
+# :-separated by default
+# * INCLUDE_SCRIPTS: script templates that are included in the package
+# after being filled out
+# file paths are relative to the definitions repository
+# :-separated by default
+#
+# The script templates may contain any of the following strings, which
+# will be replaced with a string which will expand to the appropriate
+# value as a shell word:
+# - @@SCRIPT_DIR@@: the path the script files are installed to
+# - @@IMAGE_DIR@@: the path BOOTLOADER_BLOBS are installed to
+# - @@ROOTFS_TAR_PATH@@: path to the rootfs tarball
+#
+# The interpolated strings may run commands dependant on the current
+# working directory, so if `cd` is required, bind these values to a
+# variable beforehand.
+#
+# The following optional variables can be set as well:
+#
+# * INCLUDE_SCRIPTS_SEPARATOR: character to separate INCLUDE_SCRIPTS with (default: :)
+# * BOOTLOADER_BLOBS_SEPARATOR: character to separate BOOTLOADER_BLOBS with (default: :)
+# * SCRIPT_SUBDIR: where in the package processed scripts are installed to (default: tools)
+# * IMAGE_SUBDIR: where in the package BOOTLOADER_BLOBS are copied to (default: image_files)
+# * ROOTFS_TAR: name to call the rootfs tarball inside IMAGE_SUBDIR (default: rootfs.tar)
+# * OUTPUT_COMPRESS: compression used for output tarball (default: none)
+# * ROOTFS_COMPRESS: compression used for rootfs (default: none)
+
+set -eu
+
+die(){
+ echo "$@" >&2
+ exit 1
+}
+
+warn(){
+ echo "$@" >&2
+}
+
+info(){
+ echo "$@" >&2
+}
+
+shellescape(){
+ echo "'$(echo "$1" | sed -e "s/'/'\\''/g")'"
+}
+
+sedescape(){
+ # Escape the passed in string so it can be safely interpolated into
+ # a sed expression as a literal value.
+ echo "$1" | sed -e 's/[\/&]/\\&/g'
+}
+
+ROOTDIR="$1"
+OUTPUT_TAR="$2"
+td="$(mktemp -d)"
+IMAGE_SUBDIR="${IMAGE_SUBDIR-image_files}"
+SCRIPT_SUBDIR="${SCRIPT_SUBDIR-tools}"
+ROOTFS_TAR="${ROOTFS_TAR-rootfs.tar}"
+
+# Generate shell snippets that will expand to paths to various resources
+# needed by the scripts.
+# They expand to a single shell word, so constructs like the following work
+# SCRIPT_DIR=@@SCRIPT_DIR@@
+# dd if="$SCRIPT_DIR/mbr" of="$disk" count=1
+# tar -C "$mountpoint" -xf @@ROOTFS_TAR_PATH@@ .
+find_script_dir='"$(readlink -f "$(dirname "$0")")"'
+image_dir="$find_script_dir/../$(shellescape "$IMAGE_SUBDIR")"
+rootfs_tar_path="$image_dir/$(shellescape "$ROOTFS_TAR")"
+
+install_script(){
+ local source_file="$1"
+ local output_dir="$2"
+ local target_file="$output_dir/$SCRIPT_SUBDIR/$(basename "$source_file" .in)"
+ sed -e "s/@@SCRIPT_DIR@@/$(sedescape "$find_script_dir")/g" \
+ -e "s/@@IMAGE_DIR@@/$(sedescape "$image_dir")/g" \
+ -e "s/@@ROOTFS_TAR_PATH@@/$(sedescape "$rootfs_tar_path")/g" \
+ "$source_file" \
+ | install -D -m 755 /proc/self/fd/0 "$target_file"
+}
+
+install_scripts(){
+ local output_dir="$1"
+ (
+ IFS="${INCLUDE_SCRIPTS_SEPARATOR-:}"
+ for script in $INCLUDE_SCRIPTS; do
+ local script_path="$(pwd)/$script"
+ if [ ! -e "$script_path" ]; then
+ warn Script "$script" not found, ignoring
+ continue
+ fi
+ install_script "$script" "$output_dir"
+ done
+ )
+}
+
+install_bootloader_blobs(){
+ local output_dir="$1"
+ local image_dir="$output_dir/$IMAGE_SUBDIR"
+ (
+ IFS="${BOOTLOADER_BLOBS_SEPARATOR-:}"
+ for blob in $BOOTLOADER_BLOBS; do
+ local blob_path="$ROOTDIR/$blob"
+ if [ ! -e "$blob_path" ]; then
+ warn Bootloader blob "$blob" not found, ignoring
+ continue
+ fi
+ install -D -m644 "$blob_path" "$image_dir/$(basename "$blob_path")"
+ done
+ )
+}
+
+# Determine a basename for our directory as the same as our tarball with
+# extensions removed. This is needed, since tarball packages usually
+# have a base directory of its contents, rather then extracting into the
+# current directory.
+output_dir="$(basename "$OUTPUT_TAR")"
+for ext in .xz .bz2 .gzip .gz .tgz .tar; do
+ output_dir="${output_dir%$ext}"
+done
+
+info Installing scripts
+install_scripts "$td/$output_dir"
+
+info Installing bootloader blobs
+install_bootloader_blobs "$td/$output_dir"
+
+info Writing rootfs tar to "$IMAGE_SUBDIR/$ROOTFS_TAR"
+tar -C "$ROOTDIR" -c . \
+| sh -c "${ROOTFS_COMPRESS-cat}" >"$td/$output_dir/$IMAGE_SUBDIR/$ROOTFS_TAR"
+
+info Writing image package tar to "$OUTPUT_TAR"
+tar -C "$td" -c "$output_dir" | sh -c "${OUTPUT_COMPRESS-cat}" >"$OUTPUT_TAR"
diff --git a/licensecheck.sh b/licensecheck.sh
index 5ddd9ffb..1592b568 100755
--- a/licensecheck.sh
+++ b/licensecheck.sh
@@ -31,7 +31,7 @@ if [ -z "$1" ]; then
exit 1
fi
-workspace="$PWD"/../..
+workspace="$PWD"/../../..
system="$1"
gplv3_chunks="\
@@ -87,10 +87,10 @@ repos=`for stratum in $strata; do
for repo in $repos; do
if ! (echo $gplv3_repos | grep -wq "$repo") && \
- [ -d "$workspace/upstream:$repo" ] ; then
+ [ -d "$workspace/upstream/$repo" ] ; then
echo "$repo"
- perl licensecheck.pl -r "$workspace/upstream:$repo" | \
- cut -d: -f4- | sort -u
+ perl licensecheck.pl -r "$workspace/upstream/$repo" | \
+ cut -d: -f2- | sort -u
echo
fi
done
diff --git a/sdk-example-cluster.morph b/sdk-example-cluster.morph
new file mode 100644
index 00000000..da0a6fff
--- /dev/null
+++ b/sdk-example-cluster.morph
@@ -0,0 +1,46 @@
+name: sdk
+kind: cluster
+description: |
+ An example of creating a cross-compile SDK for an embedded Baserock system.
+
+ This cluster demonstrates how you can use the 'sdk' write extension to
+ produce a cross-compile SDK tarball for an Baserock applicance. In this
+ example the system is assumed to run on ARMv7, and the SDK is built to
+ run on any x86_32 GNU/Linux system.
+
+ The SDK is a Baserock system itself, containing just 'build-essential' and a
+ 'cross-toolchain' stratum. The SDK system also includes the target
+ appliance's system, as a 'subsystem', so that the libraries and headers are
+ available when building.
+
+ This cluster deploys the SDK system using the 'sdk' write extension, which
+ produces a tarball with a small shell header. When the shell header is
+ executed, and passed a directory name on the commandline, it extracts the SDK
+ to that path and patches the binaries so that they execute correctly from
+ that directory.
+
+ Deploying the applicate system artifact to the target device should be
+ done with a separate cluster morphology, because you will often want to
+ do this without rebuilding the SDK.
+
+ You must build each system with `morph build` before deploying. We recommend
+ doing this all from your Baserock development machine, using a Baserock
+ ARM distributed build network to produce the system artifact. Once both
+ system artifacts are cached locally, the `morph deploy` command will produce
+ a self-extracting shell script/tarball following the 'location' field.
+
+ See the documentation of the sdk.write extension for more information.
+systems:
+- morph: armv7lhf-cross-toolchain-system-x86_32-generic
+ deploy:
+ sdk:
+ type: sdk
+ location: armv7lhf-cross-toolchain-system-x86_32-generic.sh
+ PREFIX: /usr
+ TARGET: armv7lhf-baserock-linux-gnueabi
+ subsystems:
+ - morph: devel-system-armv7lhf-highbank
+ deploy:
+ sysroot:
+ type: sysroot
+ location: usr/armv7lhf-baserock-linux-gnueabi/sys-root
diff --git a/sdk.morph b/sdk.morph
deleted file mode 100644
index c7eb3e44..00000000
--- a/sdk.morph
+++ /dev/null
@@ -1,18 +0,0 @@
-name: sdk
-kind: cluster
-description: |
- Create SDK binaries for all supported targets
-systems:
-- morph: armv7lhf-cross-toolchain-system-x86_32-generic
- deploy:
- sdk:
- type: sdk
- location: armv7lhf-cross-toolchain-system-x86_32-generic.sh
- PREFIX: /usr
- TARGET: armv7lhf-baserock-linux-gnueabi
- subsystems:
- - morph: devel-system-armv7lhf-highbank
- deploy:
- sysroot:
- type: sysroot
- location: usr/armv7lhf-baserock-linux-gnueabi/sys-root
diff --git a/sdk.write b/sdk.write
index 83ed54d4..3b07ea9d 100755
--- a/sdk.write
+++ b/sdk.write
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (C) 2013 Codethink Limited
+# 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
diff --git a/strip-gplv3.configure b/strip-gplv3.configure
index b0a1ff5f..5be060bf 100755
--- a/strip-gplv3.configure
+++ b/strip-gplv3.configure
@@ -51,17 +51,21 @@ class StripGPLv3ConfigureExtension(cliapp.Application):
def process_args(self, args):
target_root = args[0]
+ meta_dir = os.path.join(target_root, 'baserock')
for chunk in self.gplv3_chunks:
- self.remove_chunk(target_root, chunk[0], chunk[1])
+ regex = os.path.join(meta_dir, "%s-[^-]\+\.meta" % chunk[0])
+ artifacts = self.runcmd(['find', meta_dir, '-regex', regex])
+
+ for artifact in artifacts.split():
+ self.remove_chunk(target_root, artifact, chunk[1])
os.remove(os.path.join(target_root, 'usr', 'bin', 'awk'))
os.symlink(os.path.join(os.sep, 'bin', 'busybox'),
os.path.join(target_root, 'usr', 'bin', 'awk'))
def remove_chunk(self, target_root, chunk, pattern):
- chunk_meta_path = os.path.join(target_root, 'baserock',
- chunk + '.meta')
+ chunk_meta_path = os.path.join(target_root, 'baserock', chunk)
with open(chunk_meta_path, 'r') as f:
chunk_meta_data = json.load(f)
@@ -76,8 +80,6 @@ class StripGPLv3ConfigureExtension(cliapp.Application):
self.remove_content_entry(target_root, content_entry)
else:
updated_contents.append(content_entry)
- if len(updated_contents) == 0:
- os.remove(chunk_meta_path)
def remove_content_entry(self, target_root, content_entry):
entry_path = os.path.join(target_root, './' + content_entry)
diff --git a/tools.morph b/tools.morph
index a036744a..449b19d0 100644
--- a/tools.morph
+++ b/tools.morph
@@ -92,13 +92,18 @@ chunks:
- six
- name: morph
repo: baserock:baserock/morph
- ref: 170d81eba0568856401f57ce655ad9881b802d21
+ ref: c04760ffe1d385134e5092a22db5e5f78c205038
unpetrify-ref: master
build-depends:
- cliapp
- cmdtest
- python-coverage-test-runner
- pyfilesystem
+- name: git-fat
+ repo: upstream:git-fat
+ ref: 208f88d0f0ef04c25e8a231979eb0083f57b1610
+ unpetrify-ref: baserock/morph
+ build-depends: []
- name: pv
repo: upstream:pv
ref: d6ce7cfec684fa72d7a919d7b1aa817a0ca6102a
@@ -139,3 +144,8 @@ chunks:
ref: 9359b61ca44980d33c0bee42b9bb2e36e72835dd
unpetrify-ref: baserock/morph
build-depends: []
+- name: device-tree-compiler
+ repo: upstream:device-tree-compiler
+ ref: c92f284c3cf76d471eb27a271de3a51cb45ed058
+ unpetrify-ref: baserock/morph
+ build-depends: []
diff --git a/trove.configure b/trove.configure
index a1abae97..42ad6321 100755
--- a/trove.configure
+++ b/trove.configure
@@ -80,7 +80,10 @@ sed -f "$ROOT"/etc/trove-setup.sed -i \
"$ROOT"/etc/lorry.conf \
"$ROOT"/usr/share/gitano/skel/gitano-admin/*/*.lace \
"$ROOT"/usr/share/gitano/skel/gitano-admin/*/*.lua \
- "$ROOT"/usr/share/gitano/skel/gitano-admin/users/*/user.conf
+ "$ROOT"/usr/share/gitano/skel/gitano-admin/users/*/user.conf \
+ "$ROOT"/usr/share/trove-setup/releases-repo-migration.sh \
+ "$ROOT"/usr/share/trove-setup/releases-repo-README \
+ "$ROOT"/usr/lib/systemd/system/releases-repo-migration.service
##########################################################################
@@ -94,6 +97,13 @@ cat <<EOF >> "$ROOT/etc/hosts"
EOF
##########################################################################
+
+# create a symlink in /var/www/htdocs to what will be the rsync area of
+# the releases repository
+ln -s "/home/git/repos/$TROVE_ID/site/releases.git/rsync" \
+ "$ROOT/var/www/htdocs/releases"
+
+##########################################################################
# Configuration of trove-early-setup
#
# We configure trove-early-setup so that it runs at first boot of an initial
diff --git a/trove.morph b/trove.morph
index 73983290..013d2647 100644
--- a/trove.morph
+++ b/trove.morph
@@ -178,7 +178,7 @@ chunks:
- hg-fast-export
- name: trove-setup
repo: baserock:baserock/trove-setup
- ref: 5b689301a2a13dd549ed86d236ff26db6e1fae82
+ ref: 56b4fc537662d8d42f366b5cb5be0eada79d8d56
unpetrify-ref: master
build-depends: []
- name: lorry-controller
diff --git a/wayland-armv7-versatile.morph b/wayland-armv7-versatile.morph
index 87345671..9b779477 100644
--- a/wayland-armv7-versatile.morph
+++ b/wayland-armv7-versatile.morph
@@ -1,20 +1,17 @@
name: wayland-armv7-versatile
kind: stratum
build-depends:
-- morph: core
-- morph: foundation
-- morph: genivi-foundation
- morph: x-common
chunks:
- name: libxkbcommon
repo: upstream:xorg-lib-libxkbcommon
- ref: bb620df7aa98c129687382e4866e643b8482fc59
- unpetrify-ref: baserock/morph
+ ref: b721254769212d671a4729f1c88b059979b80efc
+ unpetrify-ref: baserock/genivi/baseline
build-depends: []
- name: wayland
repo: upstream:wayland
- ref: 006abd0a68e96749beeebf08aad298036b3fbfd4
- unpetrify-ref: baserock/genivi/wayland
+ ref: cbd8ab5ba7f3f0dba6c9b04176b3a2da965cd21c
+ unpetrify-ref: baserock/1.4.0
build-depends:
- libxkbcommon
- name: mesa-wayland
@@ -23,3 +20,66 @@ chunks:
unpetrify-ref: baserock/genivi/baseline-armv7-versatile
build-depends:
- wayland
+- name: pixman
+ repo: upstream:pixman
+ ref: 958bd334b3c17f529c80f2eeef4224f45c62f292
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: cairo
+ repo: upstream:cairo
+ ref: 86fd783959c537b8c0fd49fd979881178ca9a24e
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - wayland
+ - mesa-wayland
+ - pixman
+- name: mtdev
+ repo: upstream:mtdev-git
+ ref: 4381b78fea54de0e775bf54952b2f95e5a06c57d
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends: []
+- name: xorg-lib-libxkbfile
+ repo: upstream:xorg-lib-libxkbfile
+ ref: 7381c2f9013ef7784c78091fa671e652a62ca706
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: xorg-app-xkbcomp
+ repo: upstream:xorg-app-xkbcomp
+ ref: 705b9bbb426410f9510601c7010da51184919b36
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - xorg-lib-libxkbfile
+- name: xkeyboard-config
+ repo: upstream:xkeyboard-config
+ ref: b4be67b48fb11989f1824dd0b1c8c399430162b0
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - xorg-app-xkbcomp
+- name: libevdev
+ repo: upstream:libevdev
+ ref: b23649e1ba9fd5c72fa9318e417b4f17f5f6f528
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends: []
+- name: linux-api-headers
+ repo: upstream:linux
+ ref: 316df4c3eb667636eadf4b663f4087f1f9cc3cfe
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: libinput
+ repo: upstream:libinput
+ ref: f0fd32db8f3df558e1d763dfa2db76cdca260323
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - libxkbcommon
+ - mtdev
+ - libevdev
+ - linux-api-headers
+- name: weston
+ repo: upstream:weston
+ ref: e2136e1f2494c2c1732f0afeba9a7050bdd48e42
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - wayland
+ - mesa-wayland
+ - libinput
+ - cairo
diff --git a/wayland-x86_64-generic.morph b/wayland-x86_64-generic.morph
index 7a8962a8..2b9f581f 100644
--- a/wayland-x86_64-generic.morph
+++ b/wayland-x86_64-generic.morph
@@ -1,20 +1,17 @@
name: wayland-x86_64-generic
kind: stratum
build-depends:
-- morph: core
-- morph: foundation
-- morph: genivi-foundation
- morph: x-common
chunks:
- name: libxkbcommon
repo: upstream:xorg-lib-libxkbcommon
- ref: bb620df7aa98c129687382e4866e643b8482fc59
- unpetrify-ref: baserock/morph
+ ref: b721254769212d671a4729f1c88b059979b80efc
+ unpetrify-ref: baserock/genivi/baseline
build-depends: []
- name: wayland
repo: upstream:wayland
- ref: 006abd0a68e96749beeebf08aad298036b3fbfd4
- unpetrify-ref: baserock/genivi/wayland
+ ref: cbd8ab5ba7f3f0dba6c9b04176b3a2da965cd21c
+ unpetrify-ref: baserock/1.4.0
build-depends:
- libxkbcommon
- name: mesa-wayland
@@ -23,3 +20,68 @@ chunks:
unpetrify-ref: baserock/genivi/morph
build-depends:
- wayland
+- name: pixman
+ repo: upstream:pixman
+ ref: 958bd334b3c17f529c80f2eeef4224f45c62f292
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: cairo
+ repo: upstream:cairo
+ ref: 86fd783959c537b8c0fd49fd979881178ca9a24e
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - wayland
+ - mesa-wayland
+ - pixman
+- name: mtdev
+ repo: upstream:mtdev-git
+ ref: 4381b78fea54de0e775bf54952b2f95e5a06c57d
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends: []
+- name: xorg-lib-libxkbfile
+ repo: upstream:xorg-lib-libxkbfile
+ ref: 7381c2f9013ef7784c78091fa671e652a62ca706
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: xorg-app-xkbcomp
+ repo: upstream:xorg-app-xkbcomp
+ ref: 705b9bbb426410f9510601c7010da51184919b36
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - xorg-lib-libxkbfile
+- name: xkeyboard-config
+ repo: upstream:xkeyboard-config
+ ref: b4be67b48fb11989f1824dd0b1c8c399430162b0
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - xorg-app-xkbcomp
+- name: libevdev
+ repo: upstream:libevdev
+ ref: b23649e1ba9fd5c72fa9318e417b4f17f5f6f528
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends: []
+- name: linux-api-headers
+ repo: upstream:linux
+ ref: 316df4c3eb667636eadf4b663f4087f1f9cc3cfe
+ unpetrify-ref: baserock/morph
+ build-depends: []
+- name: libinput
+ repo: upstream:libinput
+ ref: f0fd32db8f3df558e1d763dfa2db76cdca260323
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - libxkbcommon
+ - mtdev
+ - libevdev
+ - linux-api-headers
+- name: weston
+ repo: upstream:weston
+ ref: e2136e1f2494c2c1732f0afeba9a7050bdd48e42
+ unpetrify-ref: baserock/genivi/baseline
+ build-depends:
+ - wayland
+ - mesa-wayland
+ - libinput
+ - cairo
+ - pixman
+ - libxkbcommon