diff options
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 @@ -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 |