summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clusters/sdk-example-cluster.morph4
-rwxr-xr-xsdk.write4
-rw-r--r--strata/armv7lhf-cross-toolchain.morph34
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph80
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph45
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-glibc.morph (renamed from strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph)26
-rw-r--r--strata/armv7lhf-cross-toolchain/armv7lhf-cross-libstdc++.morph32
-rw-r--r--strata/build-essential.morph3
-rw-r--r--strata/coreutils-common/diff.morph2
-rw-r--r--strata/enlightenment.morph2
-rw-r--r--strata/libdrm-common.morph8
-rw-r--r--strata/libdrm-common/drm.morph4
-rw-r--r--strata/multimedia-common.morph17
-rw-r--r--strata/multimedia-gstreamer-0.10.morph1
-rw-r--r--strata/multimedia-gstreamer.morph (renamed from strata/multimedia.morph)6
-rw-r--r--strata/qt5-tools-qtmultimedia.morph2
-rw-r--r--strata/qt5-tools-qtwebkit.morph2
-rw-r--r--systems/armv7lhf-cross-toolchain-system-x86_32.morph (renamed from systems/armv7lhf-cross-toolchain-system-x86_32-generic.morph)2
-rw-r--r--systems/armv7lhf-cross-toolchain-system-x86_64.morph (renamed from systems/armv7lhf-cross-toolchain-system-x86_64-generic.morph)2
-rw-r--r--systems/genivi-baseline-system-armv7lhf-jetson.morph6
-rw-r--r--systems/genivi-baseline-system-armv7lhf-versatile.morph6
-rw-r--r--systems/genivi-baseline-system-x86_64-generic.morph6
-rw-r--r--systems/gitlab-ci-runner.morph6
-rw-r--r--systems/qt4-devel-system-x86_64-generic.morph2
-rw-r--r--systems/qt5-devel-system-x86_64-generic.morph6
-rw-r--r--systems/weston-system-armv7lhf-jetson.morph6
-rw-r--r--systems/weston-system-x86_64-generic.morph6
-rw-r--r--systems/xfce-system.morph6
28 files changed, 218 insertions, 108 deletions
diff --git a/clusters/sdk-example-cluster.morph b/clusters/sdk-example-cluster.morph
index f71d093d..92e4a413 100644
--- a/clusters/sdk-example-cluster.morph
+++ b/clusters/sdk-example-cluster.morph
@@ -31,11 +31,11 @@ description: |
See the documentation of the sdk.write extension for more information.
systems:
-- morph: systems/armv7lhf-cross-toolchain-system-x86_32-generic.morph
+- morph: systems/armv7lhf-cross-toolchain-system-x86_64.morph
deploy:
sdk:
type: sdk
- location: armv7lhf-cross-toolchain-system-x86_32-generic.sh
+ location: armv7lhf-cross-toolchain-system-x86_64.sh
PREFIX: /usr
TARGET: armv7lhf-baserock-linux-gnueabi
subsystems:
diff --git a/sdk.write b/sdk.write
index 3b07ea9d..8d3d2a63 100755
--- a/sdk.write
+++ b/sdk.write
@@ -148,7 +148,7 @@ if [ "$#" != 1 ]; then
exit 1
fi
-TOOLCHAIN_PATH="$1"
+TOOLCHAIN_PATH="$(readlink -f \"$1\")"
sedescape(){
# Escape the passed in string so it can be safely interpolated into
@@ -227,7 +227,7 @@ patch_elves(){
local linker="$4"
local lib_path="$5"
find "$root" \( -path "$inner_sysroot" -prune \) -o -type f \
- -type f -perm +111 \
+ -type f -perm +u=x \
-exec sh -c 'file "$1" | grep -q "ELF"' - {} \; \
-exec "$linker" --library-path "$lib_path" \
"$patchelf" --set-interpreter "$linker" \
diff --git a/strata/armv7lhf-cross-toolchain.morph b/strata/armv7lhf-cross-toolchain.morph
index c76ae537..a3539d65 100644
--- a/strata/armv7lhf-cross-toolchain.morph
+++ b/strata/armv7lhf-cross-toolchain.morph
@@ -7,36 +7,50 @@ chunks:
- name: armv7lhf-cross-binutils
morph: strata/armv7lhf-cross-toolchain/armv7lhf-cross-binutils.morph
repo: upstream:binutils-redhat
- ref: 987eb543a034cddc4eeb103f08f566f24a5f964a
+ ref: b1d3b01332ae49a60ff5d6bf53d3a5b1805769c8
unpetrify-ref: baserock/build-essential
build-depends: []
+
- name: armv7lhf-cross-linux-api-headers
morph: strata/armv7lhf-cross-toolchain/armv7lhf-cross-linux-api-headers.morph
repo: upstream:linux
ref: df2e1b9168a7ab5dd8149e38b5ac70cdef86d1fa
unpetrify-ref: baserock/v3.8
build-depends: []
+
- name: armv7lhf-cross-gcc-nolibc
morph: strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
repo: upstream:gcc-tarball
- ref: 0a1a077d3466cd99a4ed5590db2146b3fec6fff1
+ ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
unpetrify-ref: baserock/build-essential
build-depends:
- armv7lhf-cross-binutils
-- name: armv7lhf-cross-eglibc
- morph: strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph
- repo: upstream:eglibc2
- ref: 43ee5d250ad47d2bee8ec17954efb7f22d2b804c
- unpetrify-ref: baserock/2.15-build-essential
+
+- name: armv7lhf-cross-glibc
+ morph: strata/armv7lhf-cross-toolchain/armv7lhf-cross-glibc.morph
+ repo: upstream:glibc
+ ref: 52cf9a0153c14df4f6ae3bd0e1e6cc5d171e586c
+ unpetrify-ref: baserock/glibc-2.20
build-depends:
- armv7lhf-cross-binutils
- armv7lhf-cross-gcc-nolibc
- armv7lhf-cross-linux-api-headers
+
- name: armv7lhf-cross-gcc
morph: strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph
repo: upstream:gcc-tarball
- ref: b0254026149b13782eae26d38435a4c62a002cf0
- unpetrify-ref: baserock/build-essential-4.7
+ ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
+ unpetrify-ref: baserock/build-essential
+ build-depends:
+ - armv7lhf-cross-binutils
+ - armv7lhf-cross-glibc
+
+- name: armv7lhf-cross-libstdc++
+ morph: strata/armv7lhf-cross-toolchain/armv7lhf-cross-libstdc++.morph
+ repo: upstream:gcc-tarball
+ ref: b3c9b176c1f10ebeff5700eb3760e9511f23fa06
+ unpetrify-ref: baserock/build-essential
build-depends:
- armv7lhf-cross-binutils
- - armv7lhf-cross-eglibc
+ - armv7lhf-cross-gcc
+ - armv7lhf-cross-glibc
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
index d164a60b..b5a8c338 100644
--- a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc-nolibc.morph
@@ -6,49 +6,69 @@ configure-commands:
# Configure flag notes:
# 1. Standard flags. See gcc.morph.
-# 2. Our binutils is for the final $TARGET, rather than the intermediate
+# 2. See stage1-gcc.morph.
+# 3. Our binutils is for the final $TARGET, rather than the intermediate
# target our GCC is being built for, so we need to set
# with-build-time-tools to get it to find our binutils at
# build-time and with-as and with-ld so our temporary GCC uses
# the appropriate tools when it compiles our libc, rather than
# trying to use $TARGET_STAGE1-as when producing binaries.
-# 3. Disable stuff that doesn't work when building a cross compiler
+# 4. Disable stuff that doesn't work when building a cross compiler
# without an existing libc, and generally try to keep this build as
# simple as possible.
- |
export MORPH_ARCH=armv7lhf
export TARGET=armv7lhf-baserock-linux-gnueabi
export TARGET_STAGE1=armv7lhf-none-linux-gnueabi
- cd o &&
- ../configure \
- $(../morph-arch-config) \
- --build=$(sh ../config.guess) --host=$(sh ../config.guess) \
- --target="$TARGET_STAGE1" \
- --prefix="$PREFIX" \
- --disable-bootstrap --disable-nls \
- `# [1]` --libdir="$PREFIX/lib" --disable-multilib --disable-libgomp \
- --without-cloog --without-ppl \
- --with-mpfr-include="$(pwd)/../mpfr/src" \
- --with-mpfr-lib="$(pwd)/mpfr/src/.libs" \
- `# [2]` --with-build-time-tools="$PREFIX/$TARGET/bin" \
- --with-as="$PREFIX/$TARGET/bin/as" \
- --with-ld="$PREFIX/$TARGET/bin/ld" \
- `# [3]` --enable-languages=c --disable-decimal-float \
- --disable-libmudflap --disable-libquadmath --disable-libssp \
- --disable-shared --disable-threads --disable-target-libiberty \
- --disable-target-zlib --without-headers --with-newlib \
- --with-system-zlib
+
+ case "$MORPH_ARCH" in
+ armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
+ --with-cpu=cortex-a9 \
+ --with-tune=cortex-a9 \
+ --with-fpu=vfpv3-d16 \
+ --with-float=hard" ;;
+ armv7*) ARCH_FLAGS="--with-arch=armv7-a" ;;
+ esac
+
+ cd o && ../configure \
+ $ARCH_FLAGS \
+ --build=$(sh ../config.guess) \
+ --host=$(sh ../config.guess) \
+ --target="$TARGET_STAGE1" \
+ --prefix="$PREFIX" \
+ `# [1]` --libdir="$PREFIX/lib" \
+ `# [2]` --with-sysroot=/nonexistentdir \
+ --with-newlib \
+ `# [2]` --with-local-prefix="$PREFIX" \
+ `# [2]` --with-native-system-header-dir="$PREFIX/include" \
+ `# [3]` --with-build-time-tools="$PREFIX/$TARGET/bin" \
+ `# [3]` --with-as="$PREFIX/$TARGET/bin/as" \
+ `# [3]` --with-ld="$PREFIX/$TARGET/bin/ld" \
+ --without-headers \
+ --disable-nls \
+ --disable-shared \
+ `# [4]` --disable-multilib \
+ `# [4]` --disable-decimal-float \
+ `# [4]` --disable-threads \
+ `# [4]` --disable-libatomic \
+ `# [4]` --disable-libgomp \
+ `# [4]` --disable-libitm \
+ `# [4]` --disable-libquadmath \
+ `# [4]` --disable-libsanitizer \
+ `# [4]` --disable-libssp \
+ `# [4]` --disable-libvtv \
+ `# [4]` --disable-libcilkrts \
+ `# [4]` --disable-libstdc++-v3 \
+ --enable-languages=c,c++
build-commands:
-- cd o && make
+- |
+ # See stage1-gcc.morph.
+ case "$MORPH_ARCH" in
+ armv7*) sed -i "s/--host=none/--host=armv7a/" o/Makefile
+ sed -i "s/--target=none/--target=armv7a/" o/Makefile ;;
+ esac
+ cd o && make
install-commands:
- cd o && make DESTDIR="$DESTDIR" install
-
-# The file libgcc_eh is required during eglibc's build, but is not created
-# because we built GCC with --disable-shared. This is a workaround for
-# eglibc's build system being slightly broken.
-- |
- export TARGET_STAGE1=armv7lhf-none-linux-gnueabi
- libgcc_filename="$("$DESTDIR$PREFIX/bin/$TARGET_STAGE1-gcc" -print-libgcc-file-name)"
- ln -sv libgcc.a "$(echo "$libgcc_filename" | sed 's/libgcc/&_eh/')"
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph
index 50c338e5..140a29b1 100644
--- a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-gcc.morph
@@ -6,37 +6,40 @@ configure-commands:
# Configure flag notes:
# 1. Use the default sysroot path to install to and locate headers
-# 2. Recommended by Linux From Scratch; required for C++ ABI
-# compatibility with other Linux distributions.
+# 2. Avoid having more than one copy of ZLib in use on the system
# 3. Standard flags. See gcc.morph.
-# 4. Avoid having more than one copy of ZLib in use on the system
- |
export MORPH_ARCH=armv7lhf
export TARGET=armv7lhf-baserock-linux-gnueabi
- export TARGET_STAGE1=armv7lhf-none-linux-gnueabi
- cd o && ../configure \
- $(../morph-arch-config) \
- --build=$(sh ../config.guess) \
- --host=$(sh ../config.guess) \
- --target="$TARGET" \
- `# [1]` --with-sysroot \
- --prefix="$PREFIX" \
- --disable-bootstrap \
- --enable-shared --enable-threads=posix \
- `# [2]` --enable-__cxa_atexit \
- --enable-languages=c,c++,fortran \
- `# [3]` --libdir="$PREFIX/lib" \
- --disable-libgomp --disable-multilib \
- --without-cloog --without-ppl \
- --with-mpfr-include="$(pwd)/../mpfr/src" \
- --with-mpfr-lib="$(pwd)/mpfr/src/.libs" \
- `# [4]` --with-system-zlib
+
+ case "$MORPH_ARCH" in
+ armv7lhf) ARCH_FLAGS="--with-arch=armv7-a \
+ --with-cpu=cortex-a9 \
+ --with-tune=cortex-a9 \
+ --with-fpu=vfpv3-d16 \
+ --with-float=hard" ;;
+ armv7*) ARCH_FLAGS="--with-arch=armv7-a" ;;
+ esac
+
+ cd o && ../configure \
+ $ARCH_FLAGS \
+ --build=$(sh ../config.guess) \
+ --host=$(sh ../config.guess) \
+ --target="$TARGET" \
+ --prefix="$PREFIX" \
+ `# [1]` --with-sysroot \
+ --disable-bootstrap \
+ `# [2]` --with-system-zlib \
+ `# [3]` --libdir="$PREFIX/lib" \
+ `# [3]` --disable-multilib \
+ `# [3]` --enable-languages=c,c++,fortran
build-commands:
- cd o && make
install-commands:
- cd o && make DESTDIR="$DESTDIR" install
+- ln -s gcc "$DESTDIR/$PREFIX/bin/cc"
- |
export TARGET=armv7lhf-baserock-linux-gnueabi
for fortran_alias in f77 f90 f95; do
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-glibc.morph
index ee28c9dd..2a692c38 100644
--- a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-eglibc.morph
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-glibc.morph
@@ -1,37 +1,41 @@
-name: armv7lhf-cross-eglibc
+name: armv7lhf-cross-glibc
kind: chunk
configure-commands:
- mkdir o
-# Necessary for ARM port
-- cd libc && ln -s ../ports ports
-
# Configure flag notes:
-# 1. Location of linux-api-headers, needed since eglibc doesn't
+# 1. Location of linux-api-headers, needed since glibc doesn't
# support being given a sysroot.
# 2. Location of binutils, since we build binutils for the final
# target triplet, but our gcc of our stage 1 target triplet.
-# 3. Normal flags. See eglibc.morph.
+# 3. Normal flags. See strata/build-essential/glibc.morph.
# 4. Force configuration values of certain things that can't be detected
# in a cross-compile.
- |
export MORPH_ARCH=armv7lhf
export TARGET=armv7lhf-baserock-linux-gnueabi
export TARGET_STAGE1=armv7lhf-none-linux-gnueabi
+
export CFLAGS="-O2 $CFLAGS"
- # eglibc looks for $TARGET-gcc, but not $TARGET_STAGE1-gcc even
+
+ # glibc looks for $TARGET-gcc, but not $TARGET_STAGE1-gcc even
# though --build is specified, so we have to override what gcc to
# use here.
export CC="$TARGET_STAGE1-gcc"
- cd o && ../libc/configure \
- $(../morph-arch-config) \
+
+ case "$MORPH_ARCH" in
+ armv7*)
+ ARCH_FLAGS="--without-fp" ;;
+ esac
+
+ cd o && ../configure \
+ $ARCH_FLAGS \
--build=$TARGET_STAGE1 --host=$TARGET \
--prefix="$PREFIX" \
`# [1]` --with-headers="$PREFIX/$TARGET/sys-root/$PREFIX/include" \
`# [2]` --with-binutils="$PREFIX/$TARGET/bin" \
`# [3]` --disable-profile --enable-kernel=2.6.25 \
- --enable-add-ons=nptl,ports --without-cvs --without-selinux \
`# [4]` libc_cv_c_cleanup=yes libc_cv_ctors_header=yes \
libc_cv_forced_unwind=yes libc_cv_ssp=no
@@ -40,7 +44,7 @@ build-commands:
install-commands:
- |
- # eglibc doesn't help with sysroots, so we need to spell out the
+ # glibc doesn't help with sysroots, so we need to spell out the
# full path ourselves.
export TARGET=armv7lhf-baserock-linux-gnueabi
cd o && make install_root="$DESTDIR/$PREFIX/$TARGET/sys-root/" \
diff --git a/strata/armv7lhf-cross-toolchain/armv7lhf-cross-libstdc++.morph b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-libstdc++.morph
new file mode 100644
index 00000000..7743bb5b
--- /dev/null
+++ b/strata/armv7lhf-cross-toolchain/armv7lhf-cross-libstdc++.morph
@@ -0,0 +1,32 @@
+name: armv7lhf-cross-libstdc++
+kind: chunk
+configure-commands:
+- mkdir o
+
+# Configure flag notes:
+# 1. Use the default sysroot path to install to and locate headers
+# 2. From LFS: the header location of C++ needs to be explicitly given
+# as we are running the configure script from the top-level
+# directory.
+- |
+ export MORPH_ARCH=armv7lhf
+ export TARGET=armv7lhf-baserock-linux-gnueabi
+
+ # -fPIC must be given, otherwise it will not be possible to create
+ # shared libraries linked to libstdc++
+ export CPPFLAGS="-fPIC"
+ cd o && ../libstdc++-v3/configure \
+ --build=$(sh ../config.guess) \
+ --host=$(sh ../config.guess) \
+ --target="$TARGET" \
+ --prefix="$PREFIX" \
+ --disable-nls \
+ --disable-shared \
+ --disable-multilib \
+ `# [1]` --with-sysroot
+
+build-commands:
+- cd o && make
+
+install-commands:
+- cd o && make DESTDIR="$DESTDIR" install
diff --git a/strata/build-essential.morph b/strata/build-essential.morph
index 9884d29d..832d6118 100644
--- a/strata/build-essential.morph
+++ b/strata/build-essential.morph
@@ -31,6 +31,9 @@ description: |
stage2-fhs-dirs.morph for details. Basically, /bin is a symlink to
/tools/bin during stage 2 but in stage 3 it becomes a real directory
again.
+
+ PLEASE KEEP THE REFS IN 'armv7lhf-cross-toolchain' STRATUM UP TO DATE WITH
+ THIS ONE!
products:
- artifact: build-essential-minimal
include:
diff --git a/strata/coreutils-common/diff.morph b/strata/coreutils-common/diff.morph
index 3a05af2d..346f8635 100644
--- a/strata/coreutils-common/diff.morph
+++ b/strata/coreutils-common/diff.morph
@@ -4,4 +4,4 @@ build-system: autotools
configure-commands:
- sed -i -e '/^buildreq="/,/^"/{/rsync/d}' bootstrap.conf
- ./bootstrap --skip-po
-- ./configure --prefix="$PREFIX"
+- ./configure --prefix="$PREFIX" --disable-gcc-warnings
diff --git a/strata/enlightenment.morph b/strata/enlightenment.morph
index 541b4f7a..25eafce2 100644
--- a/strata/enlightenment.morph
+++ b/strata/enlightenment.morph
@@ -6,7 +6,7 @@ build-depends:
- morph: strata/x-generic.morph
- morph: strata/lua.morph
- morph: strata/audio-bluetooth.morph
-- morph: strata/multimedia.morph
+- morph: strata/multimedia-gstreamer.morph
- morph: strata/connman-common.morph
chunks:
- name: fribidi
diff --git a/strata/libdrm-common.morph b/strata/libdrm-common.morph
index e364bab2..316bf483 100644
--- a/strata/libdrm-common.morph
+++ b/strata/libdrm-common.morph
@@ -5,13 +5,13 @@ build-depends:
chunks:
- name: xorg-lib-libpciaccess
repo: upstream:xorg-lib-libpciaccess
- ref: 3e17f069682a226c14bb29c802e776c6e39f7e8f
- unpetrify-ref: baserock/morph
+ ref: f99c2e4199ce37f6f94428df504427f67c3ec543
+ unpetrify-ref: libpciaccess-0.13.3
build-depends: []
- name: drm
repo: upstream:drm
morph: strata/libdrm-common/drm.morph
- ref: 83b2c40922ce451f5844aae0707ae9783a78d74f
- unpetrify-ref: baserock/drm_2.4.58/jetson
+ ref: d2e0f552467ca11162fe04dfed55de4590280f23
+ unpetrify-ref: libdrm-2.4.59
build-depends:
- xorg-lib-libpciaccess
diff --git a/strata/libdrm-common/drm.morph b/strata/libdrm-common/drm.morph
index d3d06fd8..d1a5381b 100644
--- a/strata/libdrm-common/drm.morph
+++ b/strata/libdrm-common/drm.morph
@@ -4,7 +4,3 @@ build-system: autotools
configure-commands:
- NOCONFIGURE=1 ./autogen.sh
- ./configure --prefix="$PREFIX" --enable-tegra-experimental-api --enable-freedreno-experimental-api
-install-commands:
- - make install DESTDIR="$DESTDIR"
- - mkdir -p "$DESTDIR"/usr/lib/pkgconfig
- - /usr/bin/install -c -m 644 tegra/libdrm_tegra.pc "$DESTDIR"/usr/lib/pkgconfig
diff --git a/strata/multimedia-common.morph b/strata/multimedia-common.morph
new file mode 100644
index 00000000..f10dd2b3
--- /dev/null
+++ b/strata/multimedia-common.morph
@@ -0,0 +1,17 @@
+name: multimedia-common
+kind: stratum
+description: Mutimedia Libraries
+build-depends:
+- morph: strata/core.morph
+chunks:
+- name: ogg
+ repo: upstream:ogg
+ ref: 0deb6226917e32a71f15d5279d0bc76d8b97c13f
+ unpetrify-ref: master
+ build-depends: []
+- name: libvorbis
+ repo: upstream:libvorbis
+ ref: 2ae58009cbc655a6031280f92fb1e7b324318ae8
+ unpetrify-ref: libvorbis-1.3.3
+ build-depends:
+ - ogg
diff --git a/strata/multimedia-gstreamer-0.10.morph b/strata/multimedia-gstreamer-0.10.morph
index 50917372..e87c4050 100644
--- a/strata/multimedia-gstreamer-0.10.morph
+++ b/strata/multimedia-gstreamer-0.10.morph
@@ -5,6 +5,7 @@ build-depends:
- morph: strata/core.morph
- morph: strata/foundation.morph
- morph: strata/audio-bluetooth.morph
+- morph: strata/multimedia-common.morph
chunks:
- name: orc
repo: upstream:orc
diff --git a/strata/multimedia.morph b/strata/multimedia-gstreamer.morph
index 6acab0f7..cee7df71 100644
--- a/strata/multimedia.morph
+++ b/strata/multimedia-gstreamer.morph
@@ -1,8 +1,10 @@
-name: multimedia
+name: multimedia-gstreamer
kind: stratum
-description: Codecs
+description: GStreamer multimedia components
build-depends:
- morph: strata/audio-bluetooth.morph
+- morph: strata/multimedia-common.morph
+- morph: strata/mesa-common.morph
chunks:
- name: orc
repo: upstream:orc
diff --git a/strata/qt5-tools-qtmultimedia.morph b/strata/qt5-tools-qtmultimedia.morph
index 6482db62..df36ccad 100644
--- a/strata/qt5-tools-qtmultimedia.morph
+++ b/strata/qt5-tools-qtmultimedia.morph
@@ -6,7 +6,7 @@ build-depends:
- morph: strata/multimedia-gstreamer-0.10.morph
chunks:
- name: qtmultimedia
- morph: strata/qt5-tools/qtmultimedia.morph
+ morph: strata/qt5-tools/qtmultimedia-gstreamer.morph
repo: upstream:qt5/qtmultimedia
ref: b3c2dca466042cf362ffb8d803bf05c9b8a0f95f
unpetrify-ref: v5.3.2
diff --git a/strata/qt5-tools-qtwebkit.morph b/strata/qt5-tools-qtwebkit.morph
index 1d746949..4441e46b 100644
--- a/strata/qt5-tools-qtwebkit.morph
+++ b/strata/qt5-tools-qtwebkit.morph
@@ -2,7 +2,7 @@ name: qt5-tools-qtwebkit
kind: stratum
description: Qt5 WebKit Development Libraries and Tools
build-depends:
-- morph: strata/multimedia.morph
+- morph: strata/multimedia-gstreamer.morph
- morph: strata/qt5-tools.morph
- morph: strata/ruby.morph
chunks:
diff --git a/systems/armv7lhf-cross-toolchain-system-x86_32-generic.morph b/systems/armv7lhf-cross-toolchain-system-x86_32.morph
index e983ba7a..3f66d178 100644
--- a/systems/armv7lhf-cross-toolchain-system-x86_32-generic.morph
+++ b/systems/armv7lhf-cross-toolchain-system-x86_32.morph
@@ -1,4 +1,4 @@
-name: armv7lhf-cross-toolchain-system-x86_32-generic
+name: armv7lhf-cross-toolchain-system-x86_32
kind: system
description: A system that contains an ARM cross compiler, intended to be used as
a sysroot.
diff --git a/systems/armv7lhf-cross-toolchain-system-x86_64-generic.morph b/systems/armv7lhf-cross-toolchain-system-x86_64.morph
index 1a8c20bb..76197491 100644
--- a/systems/armv7lhf-cross-toolchain-system-x86_64-generic.morph
+++ b/systems/armv7lhf-cross-toolchain-system-x86_64.morph
@@ -1,4 +1,4 @@
-name: armv7lhf-cross-toolchain-system-x86_64-generic
+name: armv7lhf-cross-toolchain-system-x86_64
kind: system
description: A system that contains an ARM cross compiler, intended to be used as
a sysroot.
diff --git a/systems/genivi-baseline-system-armv7lhf-jetson.morph b/systems/genivi-baseline-system-armv7lhf-jetson.morph
index 5cbfddbe..50581561 100644
--- a/systems/genivi-baseline-system-armv7lhf-jetson.morph
+++ b/systems/genivi-baseline-system-armv7lhf-jetson.morph
@@ -19,8 +19,10 @@ strata:
morph: strata/audio-bluetooth.morph
- name: libdrm-common
morph: strata/libdrm-common.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: genivi
morph: strata/genivi.morph
- name: wayland-generic
diff --git a/systems/genivi-baseline-system-armv7lhf-versatile.morph b/systems/genivi-baseline-system-armv7lhf-versatile.morph
index a5f07750..16bed197 100644
--- a/systems/genivi-baseline-system-armv7lhf-versatile.morph
+++ b/systems/genivi-baseline-system-armv7lhf-versatile.morph
@@ -19,8 +19,10 @@ strata:
morph: strata/audio-bluetooth.morph
- name: libdrm-common
morph: strata/libdrm-common.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: genivi
morph: strata/genivi.morph
- name: wayland-generic
diff --git a/systems/genivi-baseline-system-x86_64-generic.morph b/systems/genivi-baseline-system-x86_64-generic.morph
index f5fb571e..f4828688 100644
--- a/systems/genivi-baseline-system-x86_64-generic.morph
+++ b/systems/genivi-baseline-system-x86_64-generic.morph
@@ -19,8 +19,10 @@ strata:
morph: strata/audio-bluetooth.morph
- name: libdrm-common
morph: strata/libdrm-common.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: genivi
morph: strata/genivi.morph
- name: wayland-generic
diff --git a/systems/gitlab-ci-runner.morph b/systems/gitlab-ci-runner.morph
index b4e20ec7..979b73b0 100644
--- a/systems/gitlab-ci-runner.morph
+++ b/systems/gitlab-ci-runner.morph
@@ -21,8 +21,10 @@ strata:
morph: strata/x-common.morph
- name: x-generic
morph: strata/x-generic.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: genivi
morph: strata/genivi.morph
- name: tools
diff --git a/systems/qt4-devel-system-x86_64-generic.morph b/systems/qt4-devel-system-x86_64-generic.morph
index 9a23bdeb..0a98f205 100644
--- a/systems/qt4-devel-system-x86_64-generic.morph
+++ b/systems/qt4-devel-system-x86_64-generic.morph
@@ -12,6 +12,8 @@ strata:
morph: strata/foundation.morph
- name: audio-bluetooth
morph: strata/audio-bluetooth.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
- name: multimedia-gstreamer-0.10
morph: strata/multimedia-gstreamer-0.10.morph
- name: bsp-x86_64-generic
diff --git a/systems/qt5-devel-system-x86_64-generic.morph b/systems/qt5-devel-system-x86_64-generic.morph
index 1a78ff4f..0f768536 100644
--- a/systems/qt5-devel-system-x86_64-generic.morph
+++ b/systems/qt5-devel-system-x86_64-generic.morph
@@ -12,8 +12,10 @@ strata:
morph: strata/foundation.morph
- name: audio-bluetooth
morph: strata/audio-bluetooth.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
- name: tools
diff --git a/systems/weston-system-armv7lhf-jetson.morph b/systems/weston-system-armv7lhf-jetson.morph
index 2e139755..e1979d44 100644
--- a/systems/weston-system-armv7lhf-jetson.morph
+++ b/systems/weston-system-armv7lhf-jetson.morph
@@ -19,8 +19,10 @@ strata:
morph: strata/audio-bluetooth.morph
- name: libdrm-common
morph: strata/libdrm-common.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: wayland-generic
morph: strata/wayland-generic.morph
- name: graphics-common
diff --git a/systems/weston-system-x86_64-generic.morph b/systems/weston-system-x86_64-generic.morph
index de099697..dfa5c3df 100644
--- a/systems/weston-system-x86_64-generic.morph
+++ b/systems/weston-system-x86_64-generic.morph
@@ -19,8 +19,10 @@ strata:
morph: strata/audio-bluetooth.morph
- name: libdrm-common
morph: strata/libdrm-common.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: wayland-generic
morph: strata/wayland-generic.morph
- name: graphics-common
diff --git a/systems/xfce-system.morph b/systems/xfce-system.morph
index 697ea52d..5aea4f7b 100644
--- a/systems/xfce-system.morph
+++ b/systems/xfce-system.morph
@@ -23,8 +23,10 @@ strata:
morph: strata/x-common.morph
- name: x-generic
morph: strata/x-generic.morph
-- name: multimedia
- morph: strata/multimedia.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
- name: genivi
morph: strata/genivi.morph
- name: gtk2