summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2015-11-23 11:07:02 +0000
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2015-11-23 11:07:02 +0000
commit2b6a1715866f26ea2b1174f92222d893b60996dd (patch)
tree94126dd94b73c57d403bc07506572d9e08b53431
parente210c2b5a0371b7e01df0c026fb0e323116a20ed (diff)
parentb77cc29d842be36cc87770a14db1e3133cb9afc6 (diff)
downloadinfrastructure-2b6a1715866f26ea2b1174f92222d893b60996dd.tar.gz
Merge tag 'baserock-15.47'
Baserock release 15.47
-rw-r--r--VERSION2
-rw-r--r--clusters/altera-socfpga-devkit-sd-image.morph14
-rw-r--r--clusters/ci.morph21
-rw-r--r--clusters/example-ceph-cluster-on-openstack.morph55
-rw-r--r--clusters/gdp-jetson-upgrade.morph19
-rw-r--r--clusters/gnome-system-x86_64-deploy.morph24
-rw-r--r--clusters/release.morph14
-rw-r--r--clusters/trove.baserock.org-upgrade.morph14
-rw-r--r--clusters/xfce-system-x86_64-deploy.morph23
-rw-r--r--extensions/ceph.configure250
-rw-r--r--extensions/genivi.configure124
-rw-r--r--extensions/genivi.configure.help25
-rwxr-xr-xextensions/install-essential-files.configure10
-rwxr-xr-xextensions/install-files.configure12
-rw-r--r--extensions/install-files.configure.help12
-rwxr-xr-xextensions/mason/mason-report.sh6
-rwxr-xr-xextensions/openstack.write2
-rw-r--r--extensions/partitioning.py163
-rw-r--r--extensions/pyfdisk.README144
-rw-r--r--extensions/pyfdisk.py766
-rwxr-xr-xextensions/rawdisk.write73
-rw-r--r--extensions/rawdisk.write.help45
-rwxr-xr-xextensions/ssh-rsync.check18
-rwxr-xr-xextensions/trove.configure24
-rw-r--r--extensions/trove.configure.help8
-rw-r--r--extensions/writeexts.py324
-rw-r--r--install-files/essential-files/usr/bin/brpaste12
-rw-r--r--install-files/gnome/etc/pam.d/gdm-launch-environment13
-rw-r--r--install-files/gnome/etc/securetty8
-rw-r--r--install-files/gnome/etc/ssh/sshd_config135
-rw-r--r--install-files/gnome/manifest4
-rw-r--r--install-files/gnome/usr/share/polkit-1/rules.d/geoclue-2.0.rules7
-rwxr-xr-xmigrations/006-specify-build-system.py35
-rwxr-xr-xmigrations/007-defaults-in-definitions.py67
-rw-r--r--migrations/007-initial-defaults199
-rw-r--r--partitioning/default9
-rw-r--r--partitioning/socfpga-devkit26
-rw-r--r--schemas/README.schemas137
-rw-r--r--schemas/baserock.owl295
-rw-r--r--schemas/chunk.json-schema116
-rw-r--r--schemas/cluster.json-schema64
-rw-r--r--schemas/defaults.json-schema66
-rw-r--r--schemas/stratum.json-schema99
-rw-r--r--schemas/system.json-schema59
-rwxr-xr-xscripts/yaml-jsonschema50
-rw-r--r--strata/NetworkManager-common.morph7
-rw-r--r--strata/NetworkManager-common/NetworkManager.morph6
-rw-r--r--strata/apache-httpd-server.morph4
-rw-r--r--strata/audio-bluetooth.morph6
-rw-r--r--strata/baserock-import.morph5
-rw-r--r--strata/bsp-armv7l-altera-socfpga-devkit.morph39
-rw-r--r--strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph17
-rw-r--r--strata/bsp-armv7l-altera-socfpga-devkit/device-tree-compiler.morph6
-rw-r--r--strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph34
-rw-r--r--strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph17
-rw-r--r--strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph14
-rw-r--r--strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph9
-rw-r--r--strata/bsp-jetson/bsp-support.morph6
-rw-r--r--strata/bsp-x86_64-generic.morph6
-rw-r--r--strata/build-essential.morph1
-rw-r--r--strata/build-essential/glibc.morph2
-rw-r--r--strata/build-essential/stage2-make.morph2
-rw-r--r--strata/ceph-service.morph4
-rw-r--r--strata/cloudinit-support.morph3
-rw-r--r--strata/compilers-extra.morph18
-rw-r--r--strata/compilers-extra/clang.morph10
-rw-r--r--strata/compilers-extra/compiler-rt.morph10
-rw-r--r--strata/connectivity.morph2
-rw-r--r--strata/core.morph294
-rw-r--r--strata/core/bison.morph4
-rw-r--r--strata/core/ca-certificates.morph15
-rw-r--r--strata/core/curl.morph8
-rw-r--r--strata/core/e2fsprogs.morph5
-rw-r--r--strata/core/git-minimal.morph (renamed from strata/core/git.morph)2
-rw-r--r--strata/core/libtool.morph1
-rw-r--r--strata/core/linux-pam.morph2
-rw-r--r--strata/core/patch.morph1
-rw-r--r--strata/core/python-setuptools.morph6
-rw-r--r--strata/core/python3.morph13
-rw-r--r--strata/core/readline.morph2
-rw-r--r--strata/core/util-linux.morph1
-rw-r--r--strata/coreutils-common/coreutils.morph3
-rw-r--r--strata/cross-bootstrap.morph3
-rw-r--r--strata/cross-tools.morph1
-rw-r--r--strata/cxmanage.morph4
-rw-r--r--strata/databases.morph5
-rw-r--r--strata/devtools.morph16
-rw-r--r--strata/devtools/git.morph9
-rw-r--r--strata/django.morph7
-rw-r--r--strata/docutils.morph4
-rw-r--r--strata/docutils/docbook-xml.morph178
-rw-r--r--strata/enlightenment.morph1
-rw-r--r--strata/foundation.morph16
-rw-r--r--strata/foundation/openssh.morph3
-rw-r--r--strata/foundation/systemd.morph11
-rw-r--r--strata/genivi-demo-platform-libs.morph23
-rw-r--r--strata/genivi-demo-platform-libs/boost.morph8
-rw-r--r--strata/genivi-demo-platform-libs/dbus-c++.morph9
-rw-r--r--strata/genivi-demo-platform.morph49
-rw-r--r--strata/genivi-demo-platform/audiomanager-poc.morph10
-rw-r--r--strata/genivi-demo-platform/audiomanager@gdp.morph14
-rw-r--r--strata/genivi-demo-platform/automotive-message-broker.morph20
-rw-r--r--strata/genivi-demo-platform/browser-poc.morph29
-rw-r--r--strata/genivi-demo-platform/genivi-demo-platform-hmi.morph137
-rw-r--r--strata/genivi-demo-platform/mm-common.morph7
-rw-r--r--strata/genivi-demo-platform/navit.morph5
-rw-r--r--strata/genivi.morph5
-rw-r--r--strata/genivi/persistence-client-library.morph6
-rw-r--r--strata/glib-common.morph14
-rw-r--r--strata/glib-common/glib.morph8
-rw-r--r--strata/gnome.morph794
-rw-r--r--strata/gnome/ModemManager.morph9
-rw-r--r--strata/gnome/WebKitGtk.morph5
-rw-r--r--strata/gnome/accountsservice.morph9
-rw-r--r--strata/gnome/adwaita-icon-theme.morph11
-rw-r--r--strata/gnome/autoconf-archive.morph5
-rw-r--r--strata/gnome/berkeleydb.morph18
-rw-r--r--strata/gnome/caribou.morph5
-rw-r--r--strata/gnome/cheese.morph11
-rw-r--r--strata/gnome/clutter.morph6
-rw-r--r--strata/gnome/cogl.morph6
-rw-r--r--strata/gnome/colord.morph5
-rw-r--r--strata/gnome/cracklib.morph18
-rw-r--r--strata/gnome/d-feet.morph7
-rw-r--r--strata/gnome/dconf.morph5
-rw-r--r--strata/gnome/evolution-data-server.morph10
-rw-r--r--strata/gnome/gconf.morph5
-rw-r--r--strata/gnome/gdm.morph24
-rw-r--r--strata/gnome/geoclue.morph13
-rw-r--r--strata/gnome/glib-networking.morph9
-rw-r--r--strata/gnome/gmime.morph6
-rw-r--r--strata/gnome/gnome-color-manager.morph7
-rw-r--r--strata/gnome/gnome-control-center.morph5
-rw-r--r--strata/gnome/gnome-initial-setup.morph9
-rw-r--r--strata/gnome/gnome-keyring.morph5
-rw-r--r--strata/gnome/gnome-online-accounts.morph5
-rw-r--r--strata/gnome/gnome-session.morph5
-rw-r--r--strata/gnome/gnome-settings-daemon.morph5
-rw-r--r--strata/gnome/gnome-shell.morph5
-rw-r--r--strata/gnome/gnome-terminal.morph5
-rw-r--r--strata/gnome/gnome-themes-standard.morph5
-rw-r--r--strata/gnome/gnulib.morph8
-rw-r--r--strata/gnome/gnutls.morph6
-rw-r--r--strata/gnome/gvfs.morph5
-rw-r--r--strata/gnome/hicolor-icon-theme.morph7
-rw-r--r--strata/gnome/ibus-anthy.morph5
-rw-r--r--strata/gnome/ibus-hangul.morph5
-rw-r--r--strata/gnome/ibus-libpinyin.morph5
-rw-r--r--strata/gnome/ibus.morph9
-rw-r--r--strata/gnome/krb5.morph10
-rw-r--r--strata/gnome/libarchive.morph6
-rw-r--r--strata/gnome/libatasmart.morph6
-rw-r--r--strata/gnome/libgdata.morph6
-rw-r--r--strata/gnome/libhangul.morph6
-rw-r--r--strata/gnome/libmediaart.morph5
-rw-r--r--strata/gnome/libpwquality.morph6
-rw-r--r--strata/gnome/librest.morph9
-rw-r--r--strata/gnome/libsecret.morph5
-rw-r--r--strata/gnome/mozjs17.morph18
-rw-r--r--strata/gnome/mozjs24.morph18
-rw-r--r--strata/gnome/mutter.morph5
-rw-r--r--strata/gnome/nautilus.morph5
-rw-r--r--strata/gnome/nettle.morph6
-rw-r--r--strata/gnome/p11-kit.morph5
-rw-r--r--strata/gnome/polkit.morph10
-rw-r--r--strata/gnome/telepathy-glib.morph5
-rw-r--r--strata/gnome/telepathy-logger.morph5
-rw-r--r--strata/gnome/udisks.morph5
-rw-r--r--strata/gnome/upower.morph5
-rw-r--r--strata/gnome/vte.morph5
-rw-r--r--strata/graphics-common.morph34
-rw-r--r--strata/graphics-common/cairo.morph2
-rw-r--r--strata/graphics-common/fontconfig.morph7
-rw-r--r--strata/graphics-common/pixman.morph2
-rw-r--r--strata/graphics-common/ttf-alee.morph5
-rw-r--r--strata/gtk-deps.morph35
-rw-r--r--strata/gtk-deps/at-spi2-atk.morph5
-rw-r--r--strata/gtk-deps/at-spi2-core.morph5
-rw-r--r--strata/gtk-deps/gdk-pixbuf.morph8
-rw-r--r--strata/gtk-deps/pango.morph8
-rw-r--r--strata/gtk2.morph6
-rw-r--r--strata/gtk2/gtk+.morph6
-rw-r--r--strata/gtk3.morph11
-rw-r--r--strata/gtk3/gtk3.morph6
-rw-r--r--strata/icu-common.morph10
-rw-r--r--strata/icu-common/icu.morph20
-rw-r--r--strata/input-common.morph15
-rw-r--r--strata/input-common/libxkbcommon-no-x11.morph12
-rw-r--r--strata/input-common/xkeyboard-config.morph2
-rw-r--r--strata/input-genivi.morph39
-rw-r--r--strata/input-genivi/libxkbcommon-no-x11.morph12
-rw-r--r--strata/input-genivi/xkeyboard-config.morph7
-rw-r--r--strata/libdrm-common.morph5
-rw-r--r--strata/libdrm-common/drm.morph16
-rw-r--r--strata/libsoup-common/libsoup.morph2
-rw-r--r--strata/llvm-common.morph4
-rw-r--r--strata/llvm-common/llvm.morph12
-rw-r--r--strata/lorry-controller.morph2
-rw-r--r--strata/lorry.morph10
-rw-r--r--strata/mesa-common.morph14
-rw-r--r--strata/mesa-common/mesa.morph8
-rw-r--r--strata/morph-utils.morph16
-rw-r--r--strata/multimedia-common.morph4
-rw-r--r--strata/multimedia-common/libmad.morph2
-rw-r--r--strata/multimedia-gstreamer-0.10.morph4
-rw-r--r--strata/multimedia-gstreamer.morph6
-rw-r--r--strata/network-security/nspr.morph2
-rw-r--r--strata/network-security/nss.morph2
-rw-r--r--strata/networking-utils.morph1
-rw-r--r--strata/nfs.morph1
-rw-r--r--strata/nodejs.morph2
-rw-r--r--strata/openstack-clients.morph15
-rw-r--r--strata/openstack-common.morph32
-rw-r--r--strata/openstack-services.morph86
-rw-r--r--strata/ostree-core.morph20
-rw-r--r--strata/ostree-core/gpgme.morph7
-rw-r--r--strata/ostree-core/libassuan.morph7
-rw-r--r--strata/pcre-utils.morph1
-rw-r--r--strata/python-cliapp.morph4
-rw-r--r--strata/python-common.morph16
-rw-r--r--strata/python-core.morph52
-rw-r--r--strata/python-pygobject.morph2
-rw-r--r--strata/python-pygobject/pygobject.morph2
-rw-r--r--strata/python-tools.morph6
-rw-r--r--strata/python-wsgi.morph4
-rw-r--r--strata/python2-core.morph93
-rw-r--r--strata/python2-core/python2.morph (renamed from strata/core/cpython.morph)4
-rw-r--r--strata/python2-core/pyyaml.morph (renamed from strata/python-core/pyyaml.morph)0
-rw-r--r--strata/python3-core.morph11
-rw-r--r--strata/python3-core/python3.morph7
-rw-r--r--strata/python3-gobject.morph13
-rw-r--r--strata/python3-gobject/python3-gobject.morph5
-rw-r--r--strata/qt4-tools.morph7
-rw-r--r--strata/qt4-tools/icu.morph8
-rw-r--r--strata/qt5-tools-qtwayland-genivi.morph13
-rw-r--r--strata/qt5-tools.morph8
-rw-r--r--strata/qt5-tools/icu.morph9
-rw-r--r--strata/qt5-tools/qtwebkit.morph1
-rw-r--r--strata/ruby.morph1
-rw-r--r--strata/samba.morph1
-rw-r--r--strata/swift.morph4
-rw-r--r--strata/test-tools.morph18
-rw-r--r--strata/tools.morph8
-rw-r--r--strata/trove.morph4
-rw-r--r--strata/virtualization.morph7
-rw-r--r--strata/virtualization/libosinfo.morph9
-rw-r--r--strata/wayland-generic.morph8
-rw-r--r--strata/wayland-generic/libxkbcommon.morph5
-rw-r--r--strata/wayland-generic/wayland.morph2
-rw-r--r--strata/webtools.morph7
-rw-r--r--strata/webtools/icu.morph8
-rw-r--r--strata/weston-common/weston.morph2
-rw-r--r--strata/weston-genivi.morph10
-rw-r--r--strata/weston-genivi/weston.morph23
-rw-r--r--strata/x-common.morph86
-rw-r--r--strata/x-drivers.morph36
-rw-r--r--strata/x-generic.morph19
-rw-r--r--strata/x-generic/xserver.morph3
-rw-r--r--strata/xdg-app-common.morph11
-rw-r--r--strata/xdg-app-common/xdg-app.morph5
-rw-r--r--strata/xfce.morph57
-rw-r--r--strata/xfce/librsvg.morph6
-rw-r--r--strata/xorg-util-macros-common.morph2
-rw-r--r--strata/xstatic.morph30
-rw-r--r--systems/base-system-armv7l-altera-socfpga-devkit.morph21
-rw-r--r--systems/build-system-armv5l-openbmc-aspeed.morph6
-rw-r--r--systems/build-system-armv7l-altera-socfpga-devkit.morph48
-rw-r--r--systems/build-system-armv7lhf-highbank.morph6
-rw-r--r--systems/build-system-armv7lhf-jetson.morph6
-rw-r--r--systems/build-system-armv7lhf-rootfs.morph54
-rw-r--r--systems/build-system-armv8b64.morph6
-rw-r--r--systems/build-system-armv8l64.morph6
-rw-r--r--systems/build-system-ppc64.morph6
-rw-r--r--systems/build-system-x86_32-chroot.morph6
-rw-r--r--systems/build-system-x86_32.morph6
-rw-r--r--systems/build-system-x86_64-chroot.morph6
-rw-r--r--systems/build-system-x86_64.morph6
-rw-r--r--systems/ceph-service-x86_64-generic.morph6
-rw-r--r--systems/devel-system-armv7-chroot.morph8
-rw-r--r--systems/devel-system-armv7-highbank.morph8
-rw-r--r--systems/devel-system-armv7-versatile.morph8
-rw-r--r--systems/devel-system-armv7-wandboard.morph8
-rw-r--r--systems/devel-system-armv7b-chroot.morph8
-rw-r--r--systems/devel-system-armv7b-highbank.morph8
-rw-r--r--systems/devel-system-armv7l-altera-socfpga-devkit.morph62
-rw-r--r--systems/devel-system-armv7lhf-chroot.morph8
-rw-r--r--systems/devel-system-armv7lhf-highbank.morph8
-rw-r--r--systems/devel-system-armv7lhf-jetson.morph8
-rw-r--r--systems/devel-system-armv7lhf-wandboard.morph8
-rw-r--r--systems/devel-system-armv8b64.morph8
-rw-r--r--systems/devel-system-armv8l64.morph8
-rw-r--r--systems/devel-system-ppc64-chroot.morph8
-rw-r--r--systems/devel-system-ppc64-generic.morph8
-rw-r--r--systems/devel-system-x86_32-chroot.morph8
-rw-r--r--systems/devel-system-x86_32-generic.morph8
-rw-r--r--systems/devel-system-x86_64-chroot.morph8
-rw-r--r--systems/devel-system-x86_64-generic.morph8
-rw-r--r--systems/devel-system-x86_64-vagrant.morph8
-rw-r--r--systems/genivi-baseline-system-armv7lhf-jetson.morph5
-rw-r--r--systems/genivi-baseline-system-armv7lhf-versatile.morph5
-rw-r--r--systems/genivi-baseline-system-x86_64-generic.morph5
-rw-r--r--systems/genivi-demo-platform-armv7lhf-jetson.morph71
-rw-r--r--systems/genivi-demo-platform-x86_64-generic.morph73
-rw-r--r--systems/gnome-system-x86_64.morph78
-rw-r--r--systems/installer-system-armv8b64.morph6
-rw-r--r--systems/installer-system-x86_64.morph6
-rw-r--r--systems/java-build-system-x86_64-generic.morph6
-rw-r--r--systems/nodejs-system-x86_64.morph2
-rw-r--r--systems/openstack-system-x86_64.morph6
-rw-r--r--systems/qt4-devel-system-x86_64-generic.morph2
-rw-r--r--systems/qt5-devel-system-x86_64-generic.morph2
-rw-r--r--systems/swift-system-x86_64.morph6
-rw-r--r--systems/trove-system-x86_64.morph6
-rw-r--r--systems/web-system-x86_64-generic.morph4
-rw-r--r--systems/xfce-system-x86_64.morph (renamed from systems/xfce-system.morph)28
315 files changed, 6942 insertions, 965 deletions
diff --git a/VERSION b/VERSION
index 0a94cf8b..0eaf7e67 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-version: 5
+version: 6
diff --git a/clusters/altera-socfpga-devkit-sd-image.morph b/clusters/altera-socfpga-devkit-sd-image.morph
new file mode 100644
index 00000000..71d3da2d
--- /dev/null
+++ b/clusters/altera-socfpga-devkit-sd-image.morph
@@ -0,0 +1,14 @@
+name: altera-socfpga-devkit-sd-image
+kind: cluster
+description: |
+ This cluster morph deploys a little endian Baserock system to
+ an SD image for the Altera Cyclone V development kit
+systems:
+- morph: systems/build-system-armv7l-altera-socfpga-devkit.morph
+ deploy:
+ self:
+ type: extensions/rawdisk
+ location: build-system-armv7l-altera-socfpga-devkit.img
+ DISK_SIZE: 7G
+ USE_PARTITIONING: yes
+ PARTITION_FILE: partitioning/socfpga-devkit
diff --git a/clusters/ci.morph b/clusters/ci.morph
index fc3e50a7..240e3d4f 100644
--- a/clusters/ci.morph
+++ b/clusters/ci.morph
@@ -23,7 +23,7 @@ systems:
build-system-armv7lhf-jetson:
type: extensions/rawdisk
location: build-system-armv7lhf-jetson.img
- DISK_SIZE: 2G
+ DISK_SIZE: 3G
BOOT_DEVICE: /dev/mmcblk0p1
ROOT_DEVICE: /dev/mmcblk0p2
DTB_PATH: boot/tegra124-jetson-tk1.dtb
@@ -31,11 +31,18 @@ systems:
BOOTLOADER_INSTALL: none
KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1
nouveau.pstate=1
-- morph: systems/weston-system-x86_64-generic.morph
+- morph: systems/gnome-system-x86_64.morph
deploy:
- weston-system-x86_64-generic:
+ gnome-system-x86_64:
type: extensions/rawdisk
- location: weston-system-x86_64-generic.img
+ location: gnome-system-x86_64.img
+ DISK_SIZE: 6G
+ KERNEL_ARGS: vga=788
+- morph: systems/xfce-system-x86_64.morph
+ deploy:
+ xfce-system-x86_64:
+ type: extensions/rawdisk
+ location: xfce-system-x86_64.img
DISK_SIZE: 4G
KERNEL_ARGS: vga=788
- morph: systems/weston-system-armv7lhf-jetson.morph
@@ -58,6 +65,9 @@ systems:
location: genivi-baseline-system-x86_64-generic.img
DISK_SIZE: 4G
KERNEL_ARGS: vga=788
+ GENIVI_WESTON_BACKEND: fbdev
+ GENIVI_WESTON_CONFIG: baseline
+ GENIVI_WESTON_AUTOSTART: False
- morph: systems/genivi-baseline-system-armv7lhf-jetson.morph
deploy:
genivi-baseline-system-armv7lhf-jetson:
@@ -71,6 +81,9 @@ systems:
BOOTLOADER_INSTALL: none
KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1
nouveau.pstate=1
+ GENIVI_WESTON_BACKEND: drm
+ GENIVI_WESTON_CONFIG: baseline
+ GENIVI_WESTON_AUTOSTART: True
- morph: systems/openstack-system-x86_64.morph
deploy:
openstack-system-x86_64:
diff --git a/clusters/example-ceph-cluster-on-openstack.morph b/clusters/example-ceph-cluster-on-openstack.morph
new file mode 100644
index 00000000..6ddabc90
--- /dev/null
+++ b/clusters/example-ceph-cluster-on-openstack.morph
@@ -0,0 +1,55 @@
+name: example-ceph-cluster-on-openstack
+kind: cluster
+description: |
+ This cluster morphology will deploy a 3 node ceph storage cluster to an
+ openstack server.
+
+ It was written for use with the following guide on the baserock wiki:
+ http://wiki.baserock.org/guides/ceph-cluster-deploy/
+
+ See this guide for more information.
+
+ See the ceph.configure file for more informatiion on the ceph
+ specific fields used in this cluster morphology.
+
+systems:
+- morph: systems/ceph-service-x86_64-generic.morph
+ deploy:
+ ceph-mon-0-openstack:
+ # openstack info
+ <<: &common-config
+ type: openstack
+ location: http://<BASEROCK_OPENSTACK_SERVER_IP>:5000/v2.0/
+ OPENSTACK_USER: demo
+ OPENSTACK_PASSWORD: demo
+ OPENSTACK_TENANT: demo
+ CLOUD_INIT: true
+ KERNEL_ARGS: console=ttyS0 console=tty0
+ CEPH_CLUSTER: ceph
+ CEPH_CONF: ceph.conf
+ CEPH_CLIENT_ADMIN: ceph.client.admin.keyring
+ CEPH_MON_IP: <CEPH_MON_IP>
+ CEPH_CLUSTER_FSID: <CEPH_CLUSTER_FSID>
+
+ OPENSTACK_IMAGENAME: mon-0-nd
+ DISK_SIZE: 10G
+ # Ceph info
+ HOSTNAME: mon-0
+ CEPH_MON:
+ ceph-osd-0-openstack:
+ <<: *common-config
+ OPENSTACK_IMAGENAME: osd-0
+ DISK_SIZE: 7G
+ # ceph info
+ HOSTNAME: osd-0
+ CEPH_OSD:
+ CEPH_OSD_STORAGE_DEV: /dev/vdb
+ ceph-osd-1-openstack:
+ <<: *common-config
+ OPENSTACK_IMAGENAME: osd-1
+ DISK_SIZE: 7G
+ # ceph info
+ HOSTNAME: osd-1
+
+ CEPH_OSD:
+ CEPH_OSD_STORAGE_DEV: /dev/vdb
diff --git a/clusters/gdp-jetson-upgrade.morph b/clusters/gdp-jetson-upgrade.morph
new file mode 100644
index 00000000..33eb8ec1
--- /dev/null
+++ b/clusters/gdp-jetson-upgrade.morph
@@ -0,0 +1,19 @@
+name: gdp-jetson-upgrade
+kind: cluster
+systems:
+- morph: systems/genivi-demo-platform-armv7lhf-jetson.morph
+ deploy-defaults:
+ BOOT_DEVICE: "/dev/mmcblk0p1"
+ ROOT_DEVICE: "/dev/mmcblk0p2"
+ DTB_PATH: "boot/tegra124-jetson-tk1.dtb"
+ BOOTLOADER_CONFIG_FORMAT: "extlinux"
+ BOOTLOADER_INSTALL: "none"
+ KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1 nouveau.pstate=1
+ FSTAB_SRC: LABEL=src /src auto defaults,rw,noatime,nofail 0 2
+ GENIVI_WESTON_BACKEND: drm
+ GENIVI_WESTON_CONFIG: gdp
+ GENIVI_WESTON_AUTOSTART: True
+ deploy:
+ self:
+ type: extensions/ssh-rsync
+ location: root@127.0.0.1
diff --git a/clusters/gnome-system-x86_64-deploy.morph b/clusters/gnome-system-x86_64-deploy.morph
new file mode 100644
index 00000000..0ae939f1
--- /dev/null
+++ b/clusters/gnome-system-x86_64-deploy.morph
@@ -0,0 +1,24 @@
+name: gnome-system-x86_64-deploy
+kind: cluster
+description: |
+ Deploy a stock weston system.
+
+ The resulting image can be copied to a USB and booted from there,
+ as well as in a virtual machine.
+
+systems:
+- morph: systems/gnome-system-x86_64.morph
+ deploy:
+ gnome-system-x86_64:
+ type: extensions/rawdisk
+ location: /gnome-system-x86_64.img
+ DISK_SIZE: 6G
+ INSTALL_FILES: install-files/gnome/manifest
+ KERNEL_ARGS: vga=788
+ INITRAMFS_PATH: boot/initramfs.gz
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ initramfs:
+ type: initramfs
+ location: boot/initramfs.gz
diff --git a/clusters/release.morph b/clusters/release.morph
index 3f597a38..dfba8ec0 100644
--- a/clusters/release.morph
+++ b/clusters/release.morph
@@ -40,12 +40,18 @@ systems:
initramfs-build-system-x86_64:
type: extensions/initramfs
location: boot/initramfs.gz
+- morph: systems/build-system-armv7lhf-rootfs.morph
+ deploy:
+ build-system-armv7lhf-rootfs:
+ type: extensions/tar
+ location: build-system-armv7lhf-rootfs.tar
+ HOSTNAME: build-system-armv7lhf-rootfs
- morph: systems/build-system-armv7lhf-jetson.morph
deploy:
build-system-armv7lhf-jetson:
type: extensions/rawdisk
location: build-system-armv7lhf-jetson.img
- DISK_SIZE: 2G
+ DISK_SIZE: 3G
BOOT_DEVICE: /dev/mmcblk0p1
ROOT_DEVICE: /dev/mmcblk0p2
DTB_PATH: boot/tegra124-jetson-tk1.dtb
@@ -63,6 +69,9 @@ systems:
KERNEL_ARGS: vga=788
INITRAMFS_PATH: boot/initramfs.gz
HOSTNAME: genivi-baseline-system-x86-64-generic
+ GENIVI_WESTON_BACKEND: fbdev
+ GENIVI_WESTON_CONFIG: baseline
+ GENIVI_WESTON_AUTOSTART: False
subsystems:
- morph: systems/initramfs-x86_64.morph
deploy:
@@ -83,3 +92,6 @@ systems:
KERNEL_ARGS: cma=256M console=tty0 console=ttyS0,115200n8 no_console_suspend=1
nouveau.pstate=1
HOSTNAME: genivi-baseline-system-armv7lhf-jetson
+ GENIVI_WESTON_BACKEND: drm
+ GENIVI_WESTON_CONFIG: baseline
+ GENIVI_WESTON_AUTOSTART: False
diff --git a/clusters/trove.baserock.org-upgrade.morph b/clusters/trove.baserock.org-upgrade.morph
index e66fd6bc..ff56d91b 100644
--- a/clusters/trove.baserock.org-upgrade.morph
+++ b/clusters/trove.baserock.org-upgrade.morph
@@ -5,7 +5,7 @@ description: |
git.baserock.org. It doesn't work for the initial deployment. The
deployer MUST have ssh access to root@git.baserock.org. To use:
- morph deploy --upgrade trove.baserock.org-upgrade gbo.VERSION_LABEL=2014-05-29
+ morph upgrade trove.baserock.org-upgrade gbo.VERSION_LABEL=2014-05-29
Replace the value of gbo.VERSION_LABEL above with the current date.
You can add letters if you need to upgrade multiple times in a day.
@@ -13,11 +13,7 @@ systems:
- morph: systems/trove-system-x86_64.morph
deploy:
gbo:
- type: extensions/ssh-rsync
- location: root@git.baserock.org
- FSTAB_HOME: LABEL=homes /home auto defaults,noatime,rw 0 2
- HOSTNAME: firehose1
- LORRY_CONTROLLER_MINIONS: 4
- TROVE_COMPANY: Baserock
- TROVE_HOSTNAME: git.baserock.org
- TROVE_ID: baserock
+ upgrade-type: extensions/ssh-rsync
+ upgrade-location: root@git.baserock.org
+ HOSTNAME: baserock
+ TROVE_GENERIC: True
diff --git a/clusters/xfce-system-x86_64-deploy.morph b/clusters/xfce-system-x86_64-deploy.morph
new file mode 100644
index 00000000..e8bfe1e9
--- /dev/null
+++ b/clusters/xfce-system-x86_64-deploy.morph
@@ -0,0 +1,23 @@
+name: xfce-system-x86_64-deploy
+kind: cluster
+description: |
+ Deploy a stock XFCE system.
+
+ The resulting image can be copied to a USB and booted from there,
+ as well as in a virtual machine.
+
+systems:
+- morph: systems/xfce-system-x86_64.morph
+ deploy:
+ xfce-system-x86_64:
+ type: extensions/rawdisk
+ location: /xfce-system-x86_64.img
+ DISK_SIZE: 6G
+ KERNEL_ARGS: vga=788
+ INITRAMFS_PATH: boot/initramfs.gz
+ subsystems:
+ - morph: systems/initramfs-x86_64.morph
+ deploy:
+ initramfs:
+ type: extensions/initramfs
+ location: boot/initramfs.gz
diff --git a/extensions/ceph.configure b/extensions/ceph.configure
index 190dda97..32f512ef 100644
--- a/extensions/ceph.configure
+++ b/extensions/ceph.configure
@@ -1,5 +1,5 @@
-#!/usr/bin/python
-# Copyright (C) 2013 Codethink Limited
+#!/usr/bin/env python
+# Copyright (C) 2013-2015 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
@@ -28,11 +28,11 @@ Description=Ceph Monitor firstboot setup
After=network-online.target
[Service]
-ExecStart=/bin/bash -c "/root/setup-ceph-head | tee /root/monitor-setuplog"
-ExecStartPost=/bin/rm /etc/systemd/system/multi-user.target.wants/ceph-monitor-fboot.service
+ExecStart=/bin/sh /root/setup-ceph-head
+ExecStartPost=/bin/systemctl disable ceph-monitor-fboot.service
[Install]
-Wanted-By=multi-user.target
+WantedBy=multi-user.target
"""
systemd_monitor_fname_template = "ceph-monitor-fboot.service"
@@ -43,46 +43,71 @@ Description=Ceph osd firstboot setup
After=network-online.target
[Service]
-ExecStart=/bin/bash -c "/root/setup-ceph-node | tee /root/storage-setuplog"
-ExecStartPost=/bin/rm /etc/systemd/system/multi-user.target.wants/ceph-storage-fboot.service
+ExecStart=/bin/sh /root/setup-ceph-node
+ExecStartPost=/bin/systemctl disable ceph-storage-fboot.service
[Install]
-Wanted-By=multi-user.target
+WantedBy=multi-user.target
"""
systemd_osd_fname_template = "ceph-storage-fboot.service"
-ceph_monitor_config_template = """#!/bin/bash
-ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
-ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'
-ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
-monmaptool --create --add 0 10.0.100.2 --fsid 9ceb9257-7541-4de4-b34b-586079986700 /tmp/monmap
-mkdir /var/lib/ceph/mon/ceph-0
-ceph-mon --mkfs -i 0 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
-/etc/init.d/ceph start mon.0
-touch ~/monitor-configured
+ceph_monitor_config_template = """#!/bin/sh
+hn={self.hostname}
+monIp={self.mon_ip}
+clustFsid={self.cluster_fsid}
+ceph-authtool --create-keyring /tmp/ceph.mon.keyring \
+ --gen-key -n mon. --cap mon 'allow *'
+ceph-authtool /tmp/ceph.mon.keyring \
+ --import-keyring /etc/ceph/ceph.client.admin.keyring
+monmaptool --create --add "$hn" "$monIp" --fsid "$clustFsid" /tmp/monmap
+mkdir -p /var/lib/ceph/mon/ceph-"$hn"
+ceph-mon --mkfs -i "$hn" --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
+systemctl enable ceph-mon@"$hn".service
+systemctl start ceph-mon@"$hn".service
"""
-ceph_storage_config_template = """#!/bin/bash
-scp 10.0.100.2:/var/lib/ceph/bootstrap-osd/ceph.keyring /var/lib/ceph/bootstrap-osd/
-echo -e "n\np\n1\n\n\nw\n" | fdisk /dev/sdb
-ceph-disk prepare --cluster ceph --cluster-uuid 9ceb9257-7541-4de4-b34b-586079986700 --fs-type ext4 /dev/sdb1
-sudo ceph-disk activate /dev/sdb1
-/etc/init.d/ceph start osd.0
-touch ~/storage-configured
+ceph_storage_config_template = """#!/bin/sh
+storageDisk={self.osd_storage_dev}
+if `file -sL "$storageDisk" | grep -q ext4`; then
+ echo "ext4 disk detected. Proceding..."
+else
+ echo "ERROR: ext4 disk required." \
+ "Ensure $storageDisk is formated as ext4." >&2
+ exit 1
+fi
+hn={self.hostname}
+uuid="`uuidgen`"
+osdnum="`ceph osd create $uuid`"
+mkdir /var/lib/ceph/osd/ceph-"$osdnum"
+mount -o user_xattr "$storageDisk" /var/lib/ceph/osd/ceph-"$osdnum"
+ceph-osd -i "$osdnum" --mkfs --mkkey --osd-uuid "$uuid"
+ceph auth add osd."$osdnum" osd 'allow *' mon 'allow profile osd' \
+ -i /var/lib/ceph/osd/ceph-"$osdnum"/keyring
+ceph osd crush add-bucket "$hn" host
+ceph osd crush move "$hn" root=default
+ceph osd crush add osd."$osdnum" 1.0 host="$hn"
+systmectl enable ceph-osd@"$osdnum".service
+systemctl start ceph-osd@"$osdnum".service
+echo "$storageDisk /var/lib/ceph/osd/ceph-$osdnum/ ext4 defaults 0 2" \
+ >> /etc/fstab
"""
-executable_file_permissions = stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR | \
- stat.S_IXGRP | stat.S_IRGRP | \
- stat.S_IXOTH | stat.S_IROTH
+executable_file_permissions = (
+ stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR |
+ stat.S_IXGRP | stat.S_IRGRP | stat.S_IXOTH |
+ stat.S_IROTH )
class CephConfigurationExtension(writeexts.Extension):
"""
Set up ceph server daemons.
+ Support for metadata server has not been tested.
+
Must include the following environment variables:
HOSTNAME - Must be defined it is used as the ID for
the monitor and metadata daemons.
+
CEPH_CONF - Provide a ceph configuration file.
Optional environment variables:
@@ -91,6 +116,7 @@ class CephConfigurationExtension(writeexts.Extension):
CEPH_BOOTSTRAP_OSD - Registered key capable of generating OSD
keys.
+
CEPH_BOOTSTRAP_MDS - Registered key capable of generating MDS
keys.
@@ -99,13 +125,25 @@ class CephConfigurationExtension(writeexts.Extension):
by 'ceph-deploy gatherkeys' but can be generated and registered
separately.
+ CEPH_CLIENT_ADMIN - Key required by any ceph action that requires
+ client admin authentication to run
+
CEPH_MON - (Blank) Create a ceph monitor daemon on the image.
CEPH_MON_KEYRING - Location of monitor keyring. Required by the
monitor if using cephx authentication.
-
+ CEPH_MON_IP - ip address that the monitor node will have. This is required
+ if CEPH_MON is set. It should also be set in the CEPH_CONF
+ file too.
+ CEPH_CLUSTER_FSID - A uuid for the ceph cluster. This is required if
+ CEPH_MON is set. It should also be set in the
+ CEPH_CONF file too.
+
+ CEPH_OSD - (Blank) Create a ceph object storage daemon on the image.
CEPH_OSD_X_DATA_DIR - Location of data directory for OSD.
Create an OSD daemon on image. 'X' is an integer
id, many osd daemons may be run on same server.
+ CEPH_OSD_STORAGE_DEV - Location of the storage device to be used to host
+ the osd file system. This is a required field.
CEPH_MDS - (Blank) Create a metadata server daemon on server.
"""
@@ -113,21 +151,18 @@ class CephConfigurationExtension(writeexts.Extension):
def process_args(self, args):
if "HOSTNAME" not in os.environ:
- print "ERROR: Need a hostname defined by 'HOSTNAME'"
- sys.exit(1)
- if "CEPH_CLUSTER" not in os.environ:
- print "ERROR: Need a cluster name defined by 'CEPH_CLUSTER'"
- sys.exit(1)
+ sys.exit( "ERROR: Need a hostname defined by 'HOSTNAME'" )
if "CEPH_CONF" not in os.environ:
- print "ERROR: Need a ceph conf file defined by 'CEPH_CONF'"
- sys.exit(1)
+ sys.exit( "ERROR: Need a ceph conf file defined by 'CEPH_CONF'" )
self.dest_dir = args[0]
- self.cluster_name = os.environ["CEPH_CLUSTER"]
+ self.cluster_name = "ceph"
self.hostname = os.environ["HOSTNAME"]
self.conf_file = "/etc/ceph/{}.conf".format(self.cluster_name)
+ self.admin_file = os.path.join( "/etc/ceph/",
+ "{}.client.admin.keyring".format(self.cluster_name) )
self.mon_dir = "/var/lib/ceph/mon/"
self.osd_dir = "/var/lib/ceph/osd/"
self.mds_dir = "/var/lib/ceph/mds/"
@@ -135,32 +170,68 @@ class CephConfigurationExtension(writeexts.Extension):
self.bootstrap_mds_dir = "/var/lib/ceph/bootstrap-mds/"
self.bootstrap_osd_dir = "/var/lib/ceph/bootstrap-osd/"
self.systemd_dir = "/etc/systemd/system/"
- self.systemd_multiuser_dir = "/etc/systemd/system/multi-user.target.wants/"
+ self.systemd_multiuser_dir = \
+ "/etc/systemd/system/multi-user.target.wants/"
+
+ print "Copying from " + os.getcwd()
self.copy_to_img(os.environ["CEPH_CONF"], self.conf_file)
+
+ # If the clustername is provided set it accprdingly. Default is "ceph"
+ if "CEPH_CLUSTER" in os.environ:
+ self.cluster_name = os.environ["CEPH_CLUSTER"]
+
# Copy over bootstrap keyrings
if "CEPH_BOOTSTRAP_OSD" in os.environ:
self.copy_bootstrap_osd(os.environ["CEPH_BOOTSTRAP_OSD"]);
if "CEPH_BOOTSTRAP_MDS" in os.environ:
self.copy_bootstrap_mds(os.environ["CEPH_BOOTSTRAP_MDS"]);
+ # Copy over admin keyring
+ if "CEPH_CLIENT_ADMIN" in os.environ:
+ self.copy_to_img(os.environ["CEPH_CLIENT_ADMIN"], self.admin_file);
+
# Configure any monitor daemons
if "CEPH_MON" in os.environ:
+
+ # check for and set self.mon_ip : needs static value.
+ if "CEPH_MON_IP" not in os.environ:
+ sys.exit("ERROR: Static ip required for the monitor node")
+ else:
+ self.mon_ip = os.environ["CEPH_MON_IP"]
+
+ # Check and set for cluster fsid : can have default
+ if "CEPH_CLUSTER_FSID" not in os.environ:
+ sys.exit("ERROR: UUID fsid value required for cluster.")
+ else:
+ self.cluster_fsid = os.environ["CEPH_CLUSTER_FSID"]
+
self.create_mon_data_dir(os.environ.get("CEPH_MON_KEYRING"))
- else:
- self.create_osd_startup_script("None", "None")
# Configure any object storage daemons
- osd_re = r"CEPH_OSD_(\d+)_DATA_DIR$"
+ if "CEPH_OSD" in os.environ:
+
+ # Check a osd storage device has been provided
+ if "CEPH_OSD_STORAGE_DEV" not in os.environ:
+ sys.exit("ERROR: Storage device required. \
+ Set 'CEPH_OSD_STORAGE_DEV'.")
+ else:
+ self.osd_storage_dev = os.environ["CEPH_OSD_STORAGE_DEV"]
- for env in os.environ.keys():
- match = re.match(osd_re, env)
- if match:
- osd_data_dir_env = match.group(0)
- osd_id = match.group(1)
+ self.create_osd_startup_script()
+
+ osd_re = r"CEPH_OSD_(\d+)_DATA_DIR$"
+
+ for env in os.environ.keys():
+ match = re.match(osd_re, env)
+ if match:
+ osd_data_dir_env = match.group(0)
+ osd_id = match.group(1)
+
+ self.create_osd_data_dir(osd_id,
+ os.environ.get(osd_data_dir_env))
- self.create_osd_data_dir(osd_id, os.environ.get(osd_data_dir_env))
# Configure any mds daemons
if "CEPH_MDS" in os.environ:
@@ -179,88 +250,95 @@ class CephConfigurationExtension(writeexts.Extension):
def copy_bootstrap_osd(self, src_file):
self.copy_to_img(src_file,
- os.path.join(self.bootstrap_osd_dir, "{}.keyring".format(self.cluster_name)))
+ os.path.join(self.bootstrap_osd_dir,
+ "{}.keyring".format(self.cluster_name)))
def copy_bootstrap_mds(self, src_file):
self.copy_to_img(src_file,
- os.path.join(self.bootstrap_mds_dir, "{}.keyring".format(self.cluster_name)))
+ os.path.join(self.bootstrap_mds_dir,
+ "{}.keyring".format(self.cluster_name)))
def symlink_to_multiuser(self, fname):
- print >> sys.stderr, os.path.join("../", fname)
- print >> sys.stderr, self.dest_dir + os.path.join(self.systemd_multiuser_dir, fname)
+ sys.stderr.write( os.path.join("../", fname) )
+ sys.stderr.write( self.dest_dir +
+ os.path.join(self.systemd_multiuser_dir, fname) )
+ print "Linking: %s into %s"%(fname, self.systemd_multiuser_dir)
os.symlink(os.path.join("../", fname),
- self.dest_dir + os.path.join(self.systemd_multiuser_dir, fname))
+ self.dest_dir +
+ os.path.join(self.systemd_multiuser_dir, fname))
def create_mon_data_dir(self, src_keyring):
- #Create the monitor data directory
- mon_data_dir = os.path.join(self.mon_dir, "{}-{}".format(self.cluster_name, self.hostname))
- os.makedirs(self.dest_dir + mon_data_dir)
-
- #Create sysvinit file to start via sysvinit
- sysvinit_file = os.path.join(mon_data_dir, "sysvinit")
- open(self.dest_dir + sysvinit_file, 'a').close()
-
- #Create systemd file to initialize the monitor data directory
+ # Create systemd file to initialize the monitor data directory
keyring = ""
- if src_keyring:
- #Copy the keyring from local to the image
- dest_keyring = os.path.join(self.tmp_dir,
- "{}-{}.mon.keyring".format(self.cluster_name, self.hostname))
- self.copy_to_img(src_keyring, dest_keyring)
- keyring = "--keyring " + dest_keyring
-
mon_systemd_fname = systemd_monitor_fname_template
- systemd_script_name = self.dest_dir + os.path.join(self.systemd_dir, mon_systemd_fname)
+
+ systemd_script_name = self.dest_dir \
+ + os.path.join(self.systemd_dir, mon_systemd_fname)
+ print "Write monitor systemd script to " + systemd_script_name
mon_systemd = open(systemd_script_name, 'w')
mon_systemd.write(systemd_monitor_template)
mon_systemd.close()
- #Create a symlink to the multi user target
+ # Create a symlink to the multi user target
self.symlink_to_multiuser(mon_systemd_fname)
def create_osd_data_dir(self, osd_id, data_dir):
if not data_dir:
data_dir = '/srv/osd' + osd_id
- #Create the osd data dir
+ # Create the osd data dir
os.makedirs(self.dest_dir + data_dir)
- def create_osd_startup_script(self, osd_id, data_dir):
+ def create_osd_startup_script(self):
osd_systemd_fname = systemd_osd_fname_template
- osd_full_name = self.dest_dir + os.path.join(self.systemd_dir, osd_systemd_fname)
+
+ osd_full_name = self.dest_dir + \
+ os.path.join(self.systemd_dir, osd_systemd_fname)
+ print "Write Storage systemd script to " + osd_full_name
osd_systemd = open(osd_full_name, 'w')
osd_systemd.write(systemd_osd_template)
osd_systemd.close()
- #Create a symlink to the multi user target
+ # Create a symlink to the multi user target
self.symlink_to_multiuser(osd_systemd_fname)
def create_mds_data_dir(self):
- #Create the monitor data directory
- mds_data_dir = os.path.join(self.mds_dir, "{}-{}".format(self.cluster_name, self.hostname))
+ # Create the monitor data directory
+ mds_data_dir = os.path.join(self.mds_dir,
+ "{}-{}".format(self.cluster_name, self.hostname))
os.makedirs(self.dest_dir + mds_data_dir)
- #Create sysvinit file to start via sysvinit
+ # Create sysvinit file to start via sysvinit
sysvinit_file = os.path.join(mds_data_dir, "sysvinit")
open(self.dest_dir + sysvinit_file, 'a').close()
def create_startup_scripts(self):
- head_setup_file = os.path.join(self.dest_dir, "root", "setup-ceph-head")
+ print "Copying startup scripts to node:"
+
+ # Write monitor script if monitor requested
+ if "CEPH_MON" in os.environ:
+ head_setup_file = \
+ os.path.join(self.dest_dir,"root","setup-ceph-head")
+ with open(head_setup_file, "w") as hs_file:
+ hs_file.write( ceph_monitor_config_template.format(self=self) )
+
+ os.chmod(head_setup_file, executable_file_permissions)
- ceph_head_setup = open(head_setup_file, "w")
- ceph_head_setup.write(ceph_monitor_config_template)
- ceph_head_setup.close()
- os.chmod(head_setup_file, executable_file_permissions)
+ # Write osd script if osd is requested
+ elif "CEPH_OSD" in os.environ:
+ osd_setup_file = \
+ os.path.join(self.dest_dir, "root", "setup-ceph-node")
+ with open(osd_setup_file, "w") as os_file:
+ os_file.write( ceph_storage_config_template.format(self=self) )
- osd_setup_file = os.path.join(self.dest_dir, "root", "setup-ceph-node")
- ceph_node_setup = open(osd_setup_file, "w")
- ceph_node_setup.write(ceph_storage_config_template)
- ceph_node_setup.close()
- os.chmod(osd_setup_file, executable_file_permissions)
+ os.chmod(osd_setup_file, executable_file_permissions)
+ else:
+ print ("No valid node type defined. "
+ "A generic ceph node will be created.")
CephConfigurationExtension().run()
diff --git a/extensions/genivi.configure b/extensions/genivi.configure
new file mode 100644
index 00000000..c5f6dc4f
--- /dev/null
+++ b/extensions/genivi.configure
@@ -0,0 +1,124 @@
+#!/bin/sh
+
+# Copyright (C) 2015 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, see <http://www.gnu.org/licenses/>.
+
+set -e
+
+ROOT="$1"
+
+enable(){
+ ln -sf "/usr/lib/systemd/system/$1.service" \
+ "$ROOT/etc/systemd/system/multi-user.target.wants/$1.service"
+}
+
+unnaceptable(){
+ eval echo Unexpected value \$$1 for $1 >&2
+ exit 1
+}
+
+check_bool(){
+ case "$(eval echo \"\$$1\")" in
+ True)
+ eval "$1=true"
+ ;;
+ False|'')
+ eval "$1=false"
+ ;;
+ *)
+ unnaceptable "$1"
+ ;;
+ esac
+}
+
+check_weston_config(){
+ weston_ini_folder="$ROOT/usr/share/doc/weston"
+ case "$GENIVI_WESTON_CONFIG" in
+ 'baseline'|'')
+ weston_ini_file=ivi-shell-weston.ini
+ ;;
+ 'gdp')
+ weston_ini_file=gdp-weston.ini
+ ;;
+ *)
+ unnaceptable "GENIVI_WESTON_CONFIG"
+ ;;
+ esac
+ weston_ini_file="$weston_ini_folder/$weston_ini_file"
+ if [ ! -f "$weston_ini_file" ]; then
+ echo ERROR: Failed to locate weston config file: $weston_ini_file
+ exit 1
+ fi
+}
+
+check_weston_backend (){
+ # If nothing defined, use drm-backend.so
+ if [ "x$GENIVI_WESTON_BACKEND" == "x" ]; then
+ echo GENIVI_WESTON_BACLEND not set, defaulting to drm-backend.so
+ GENIVI_WESTON_BACKEND=drm-backend.so
+ fi
+
+ backends_folder="$ROOT/usr/lib/weston"
+ backend_file="$backends_folder/$GENIVI_WESTON_BACKEND"
+ # Check that the backend exists
+ echo Checking for "$backend_file" ...
+ if [ ! -f "$backend_file" ]; then
+ echo "File $backend_file doesn't exist"
+ GENIVI_WESTON_BACKEND="$GENIVI_WESTON_BACKEND-backend.so"
+ backend_file="$backends_folder/$GENIVI_WESTON_BACKEND"
+ echo Checking for "$backend_file" ...
+ if [ ! -f "$backend_file" ]; then
+ echo "File $backend_file doesn't exist"
+ echo ERROR: Failed to find Weston backend in the system
+ exit 1
+ fi
+ fi
+ echo Backend $backend_file found
+}
+
+##########################################################################
+# Check variables
+##########################################################################
+
+check_bool GENIVI_WESTON_AUTOSTART
+check_weston_config
+check_weston_backend
+
+######################################
+# Create and enable weston.service #
+######################################
+
+cat > "$ROOT/usr/lib/systemd/system/weston.service" <<EOF
+[Unit]
+Description=Weston reference Wayland compositor
+After=dbus.service
+
+[Service]
+ExecStart=/usr/bin/weston-launch -u root -- --log=/tmp/weston.log --backend="$GENIVI_WESTON_BACKEND"
+ExecStop=/usr/bin/killall -s KILL weston
+
+[Install]
+WantedBy=multi-user.target
+EOF
+
+if "$GENIVI_WESTON_AUTOSTART"; then
+ enable weston
+fi
+
+######################################
+# Set weston.ini file #
+######################################
+
+install -d "$ROOT/etc/xdg/weston"
+install -m 0644 $weston_ini_file "$ROOT/etc/xdg/weston/weston.ini"
diff --git a/extensions/genivi.configure.help b/extensions/genivi.configure.help
new file mode 100644
index 00000000..6616f871
--- /dev/null
+++ b/extensions/genivi.configure.help
@@ -0,0 +1,25 @@
+help: |
+ This extension configures GENIVI systems. It uses the following
+ configuration variables:
+
+ * `GENIVI_WESTON_CONFIG` (optional, defaults to `baseline`)
+ the weston configuration file to use. The GENIVI baseline system
+ uses a different one than the GENIVI Demo Platform.
+
+ Possibles values here are `baseline` and `gdp`. Other values will
+ fail. The extension will copy the relevant configuration file
+ from `/usr/share/doc/weston/` to `/etc/xdg/weston/weston.ini`
+ to make it the default configuration for Weston.
+
+ * `GENIVI_WESTON_BACKEND` (optional, defaults to 'drm-backend.so')
+ the backend to use with Weston. This backend will be used in
+ the `weston.service` systemd unit overriding the default backend
+ specified when building Weston.
+
+ The extension looks for the backend in the system, failing if
+ it's not present. It will also try to append `-backend.so` to
+ the variable so that (e.g) you can set this variable to `fbdev`
+ and to `fbdev-backend.so`.
+
+ * `GENIVI_WESTON_AUTOSTART`(optional. defaults to 'False')
+ boolean. If `True` it will enable the `weston.service`.
diff --git a/extensions/install-essential-files.configure b/extensions/install-essential-files.configure
index 3d33fe03..8314b56d 100755
--- a/extensions/install-essential-files.configure
+++ b/extensions/install-essential-files.configure
@@ -27,6 +27,14 @@ import subprocess
import sys
target_root = sys.argv[1]
+
+# Clear all INSTALL_FILES environment variable options,
+# so we don't end up installing INSTALL_FILES_foo multiple times.
+for var in list(os.environ):
+ if var.startswith("INSTALL_FILES"):
+ del os.environ[var]
+
+# Force installation of the essential-files manifest
os.environ["INSTALL_FILES"] = "install-files/essential-files/manifest"
-command = os.path.join("extensions/install-files.configure")
+command = "extensions/install-files.configure"
subprocess.check_call([command, target_root])
diff --git a/extensions/install-files.configure b/extensions/install-files.configure
index 64fcecca..782065d1 100755
--- a/extensions/install-files.configure
+++ b/extensions/install-files.configure
@@ -16,7 +16,7 @@
''' A Morph configuration extension for adding arbitrary files to a system
-It will read the manifest files specified in the environment variable
+It will read the manifest files specified in environment variables starting
INSTALL_FILES, then use the contens of those files to determine which files
to install into the target system.
@@ -41,12 +41,14 @@ import writeexts
class InstallFilesConfigureExtension(writeexts.Extension):
def process_args(self, args):
- if not 'INSTALL_FILES' in os.environ:
+ if not any(var.startswith('INSTALL_FILES') for var in os.environ):
return
target_root = args[0]
- manifests = shlex.split(os.environ['INSTALL_FILES'])
- for manifest in manifests:
- self.install_manifest(manifest, target_root)
+ for manifest_var in sorted((var for var in os.environ
+ if var.startswith('INSTALL_FILES'))):
+ manifests = shlex.split(os.environ[manifest_var])
+ for manifest in manifests:
+ self.install_manifest(manifest, target_root)
def install_manifest(self, manifest, target_root):
manifest_dir = os.path.dirname(manifest)
diff --git a/extensions/install-files.configure.help b/extensions/install-files.configure.help
index 991c26c8..191e1378 100644
--- a/extensions/install-files.configure.help
+++ b/extensions/install-files.configure.help
@@ -40,6 +40,18 @@ help: |
INSTALL_FILES: sshkeysfiles/manifest
+ All variables starting INSTALL_FILES are considered, and are processed in
+ alphabetical order, so if INSTALL_FILES, INSTALL_FILES_distbuild and
+ INSTALL_FILES_openstack are given, manifests in INSTALL_FILES are processed
+ before those in INSTALL_FILES_distbuild, followed by INSTALL_FILES_openstack.
+
+ Multiple manifest files may be given in the same INSTALL_FILES variable,
+ by providing a whitespace separated list.
+
+ Shell word splitting is supported, so if a manifest's path has spaces in,
+ the path may be shell escaped.
+
+
More generally entries in the manifest are formatted as:
[overwrite] <octal mode> <uid decimal> <gid decimal> <filename>
diff --git a/extensions/mason/mason-report.sh b/extensions/mason/mason-report.sh
index 31745b93..04bd0fe2 100755
--- a/extensions/mason/mason-report.sh
+++ b/extensions/mason/mason-report.sh
@@ -289,3 +289,9 @@ update_report "$START_TIME" \
cp "$REPORT_PATH" "$SERVER_REPORT_PATH"
mkdir "$SERVER_PATH/log"
mv "$logfile" "$SERVER_PATH/$BUILD_LOG"
+
+# Cleanup
+
+mkdir -p /srv/distbuild/remove
+mv /srv/distbuild/!(remove) /srv/distbuild/remove
+rm -r /srv/distbuild/remove
diff --git a/extensions/openstack.write b/extensions/openstack.write
index f1233560..f0d2fc0b 100755
--- a/extensions/openstack.write
+++ b/extensions/openstack.write
@@ -51,7 +51,7 @@ class OpenStackWriteExtension(writeexts.WriteExtension):
def set_extlinux_root_to_virtio(self, raw_disk):
'''Re-configures extlinux to use virtio disks'''
self.status(msg='Updating extlinux.conf')
- with self.mount(raw_disk) as mp:
+ with self.find_and_mount_rootfs(raw_disk) as mp:
path = os.path.join(mp, 'extlinux.conf')
with open(path) as f:
diff --git a/extensions/partitioning.py b/extensions/partitioning.py
new file mode 100644
index 00000000..1c295697
--- /dev/null
+++ b/extensions/partitioning.py
@@ -0,0 +1,163 @@
+#!/usr/bin/python
+# Copyright (C) 2015 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, see <http://www.gnu.org/licenses/>.
+
+
+"""A module providing Baserock-specific partitioning functions"""
+
+import os
+import pyfdisk
+import re
+import subprocess
+import writeexts
+
+def do_partitioning(location, disk_size, temp_root, part_spec):
+ '''Perform partitioning
+
+ Perform partitioning using the pyfdisk.py module. Documentation
+ for this, and guidance on how to create a partition specification can
+ be found in extensions/pyfdisk.README
+
+ This function also validates essential parts of the partition layout
+
+ Args:
+ location: Path to the target device or image
+ temp_root: Location of the unpacked Baserock rootfs
+ part_spec: Path to a YAML formatted partition specification
+ Returns:
+ A pyfdisk.py Device object
+ Raises:
+ writeexts.ExtensionError
+ '''
+ # Create partition table and filesystems
+ try:
+ dev = pyfdisk.load_yaml(location, disk_size, part_spec)
+ writeexts.Extension.status(msg='Loaded partition specification: %s' %
+ part_spec)
+
+ # FIXME: GPT currently not fully supported due to missing tools
+ if dev.partition_table_format.lower() == 'gpt':
+ writeexts.Extension.status(msg='WARNING: GPT partition tables '
+ 'are not currently supported, '
+ 'when using the extlinux '
+ 'bootloader')
+
+ writeexts.Extension.status(msg='Summary:\n' + str(dev.partitionlist))
+ writeexts.Extension.status(msg='Writing partition table')
+ dev.commit()
+ dev.create_filesystems(skip=('/'))
+ except (pyfdisk.PartitioningError, pyfdisk.FdiskError) as e:
+ raise writeexts.ExtensionError(e.msg)
+
+ mountpoints = set(part.mountpoint for part in dev.partitionlist
+ if hasattr(part, 'mountpoint'))
+ if '/' not in mountpoints:
+ raise writeexts.ExtensionError('No partition with root '
+ 'mountpoint, please specify a '
+ 'partition with \'mountpoint: /\' '
+ 'in the partition specification')
+
+ mounted_partitions = set(part for part in dev.partitionlist
+ if hasattr(part, 'mountpoint'))
+
+ for part in mounted_partitions:
+ if not hasattr(part, 'filesystem'):
+ raise writeexts.ExtensionError('Cannot mount a partition '
+ 'without filesystem, please specify one '
+ 'for \'%s\' partition in the partition '
+ 'specification' % part.mountpoint)
+ if part.mountpoint == '/':
+ # Check that bootable flag is set for MBR devices
+ if (hasattr(part, 'boot')
+ and str(part.boot).lower() not in ('yes', 'true')
+ and dev.partition_table_format.lower() == 'mbr'):
+ writeexts.Extension.status(msg='WARNING: Boot partition '
+ 'needs bootable flag set to '
+ 'boot with extlinux/syslinux')
+
+ return dev
+
+def process_raw_files(dev, temp_root):
+ if hasattr(dev, 'raw_files'):
+ write_raw_files(dev.location, temp_root, dev)
+ for part in dev.partitionlist:
+ if hasattr(part, 'raw_files'):
+ # dd seek=n is used, which skips n blocks before writing,
+ # so we must skip n-1 sectors before writing in order to
+ # start writing files to the first block of the partition
+ write_raw_files(dev.location, temp_root, part,
+ (part.extent.start - 1) * dev.sector_size)
+
+def write_raw_files(location, temp_root, dev_or_part, start_offset=0):
+ '''Write files with `dd`'''
+ offset = 0
+ for raw_args in dev_or_part.raw_files:
+ r = RawFile(temp_root, start_offset, offset, **raw_args)
+ offset = r.next_offset
+ r.dd(location)
+
+
+class RawFile(object):
+ '''A class to hold information about a raw file to write to a device'''
+
+ def __init__(self, source_root,
+ start_offset=0, wr_offset=0,
+ sector_size=512, **kwargs):
+ '''Initialisation function
+
+ Args:
+ source_root: Base path for filenames
+ wr_offset: Offset to write to (and offset per-file offsets by)
+ sector_size: Device sector size (default: 512)
+ **kwargs:
+ file: A path to the file to write (combined with source_root)
+ offset_sectors: An offset to write to in sectors (optional)
+ offset_bytes: An offset to write to in bytes (optional)
+ '''
+ if 'file' not in kwargs:
+ raise writeexts.ExtensionError('Missing file name or path')
+ self.path = os.path.join(source_root,
+ re.sub('^/', '', kwargs['file']))
+
+ if not os.path.exists(self.path):
+ raise writeexts.ExtensionError('File not found: %s' % self.path)
+ elif os.path.isdir(self.path):
+ raise writeexts.ExtensionError('Can only dd regular files')
+ else:
+ self.size = os.stat(self.path).st_size
+
+ self.offset = start_offset
+ if 'offset_bytes' in kwargs:
+ self.offset += pyfdisk.human_size(kwargs['offset_bytes'])
+ elif 'offset_sectors' in kwargs:
+ self.offset += kwargs['offset_sectors'] * sector_size
+ else:
+ self.offset += wr_offset
+
+ self.skip = pyfdisk.human_size(kwargs.get('skip_bytes', 0))
+ self.count = pyfdisk.human_size(kwargs.get('count_bytes', self.size))
+
+ # Offset of the first free byte after this file (first byte of next)
+ self.next_offset = self.size + self.offset
+
+ def dd(self, location):
+ writeexts.Extension.status(msg='Writing %s at %d bytes' %
+ (self.path, self.offset))
+ subprocess.check_call(['dd', 'if=%s' % self.path,
+ 'of=%s' % location, 'bs=1',
+ 'seek=%d' % self.offset,
+ 'skip=%d' % self.skip,
+ 'count=%d' % self.count,
+ 'conv=notrunc'])
+ subprocess.check_call('sync')
diff --git a/extensions/pyfdisk.README b/extensions/pyfdisk.README
new file mode 100644
index 00000000..8b3b941b
--- /dev/null
+++ b/extensions/pyfdisk.README
@@ -0,0 +1,144 @@
+Introduction
+============
+
+The pyfdisk.py module provides a basic Python wrapper around command-line
+fdisk from util-linux, and some assorted related functions for querying
+information from real disks or disk images.
+
+
+YAML partition specification
+============================
+
+A YAML file may be loaded, using the function load_yaml(). This can contain
+all the information needed to create a Device object which can then be
+committed to disk.
+
+The format of this file is as follows:
+
+ start_offset: 2048
+ partition_table_format: gpt
+ partitions:
+ - description: boot
+ size: 1M
+ fdisk_type: 0x0B
+ filesystem: vfat
+ boot: yes
+ mountpoint: /boot
+ - description: rootfs
+ number: 3
+ size: 10G
+ filesystem: btrfs
+ fdisk_type: 0x83
+ mountpoint: /
+ - description: src
+ size: fill
+ filesystem: ext4
+ fdisk_type: 0x81
+ mountpoint: /src
+
+There are a couple of global attributes:
+
+* 'start_offset': specifies the start sector of the first partition on the
+ device (default: 2048)
+
+* 'partition_table_format': specifies the partition table format to be used
+ when creating the partition table. Possible format
+ strings are 'gpt', 'dos', or 'mbr' ('dos' and
+ 'mbr' are interchangeable). (default: gpt)
+
+Following this, up to 4 (for MBR) or 128 (for GPT) partitions can be
+specified, in the list, 'partitions'. For partitions, 'size', 'fdisk_type' and
+'filesystem' are required.
+
+* 'size' is the size in bytes, or 'fill', which will expand the partition to
+ fill any unused space. Multiple partitions with 'size: fill' will share the
+ free space on the device. Human readable formatting can be used: K, M, G, T,
+ for integer multiples (calculated as powers of 2^n)
+
+* 'fdisk_type' is the fdisk partition type, specified as a hexadecimal value
+ (default: 0x81)
+
+* 'filesystem' specifies a filesystem to be created on the partition. It can
+ be a filesystem with associated any mkfs.* tool, or 'none' for an
+ unformatted partition.
+
+Optional partition attributes include:
+
+* 'number' is optional, and can be used to override the numbering of
+ partitions, if it is desired to have partition numbering that differs from
+ the physical order of the partitions on the disk.
+ - For all un-numbered partitions, the physical order of partitions on the
+ device is determined by the order in which they appear in the
+ specification.
+ - For any partitions without a specified number, partition numbering is
+ handled automatically. In the example above, /boot is 1, /src is 2,
+ and / is 3, even though the physical order differs.
+
+* 'boot' sets the partition's bootable flag (currently only for MBR partition
+ tables)
+
+* 'mountpoint' specifies a mountpoint of a partition. One partition must
+ have a '/' mountpoint to contain the rootfs, otherwise this is optional.
+ Files present in the rootfs under the mount point for a given partition will
+ be copied to the created partition.
+
+load_yaml() produces a Device object, populated with any partitions contained
+in the specification.
+
+
+Objects
+=======
+
+Partition - An object containing properties of a partition
+
+Device - An object holding information about a physical device, and the
+ overall properties of the partitioning scheme. It contains a
+ PartitionList holding the partitions on the device.
+
+PartitionList - An object which holds a list of partitions on the disk. New
+ partitions can be added to the list at any time. When the list
+ is queried, properties of partitions which depend on the
+ properties of the other partitions in the list, for example
+ the size of a fill partition, or numbering, are recalculated,
+ and an updated copy of a Partition object is returned.
+
+Extent - An object which helps encapsulate sector dimensions for partitions
+ and devices.
+
+
+Quick start
+===========
+
+ >>> dev = pyfdisk.Device('test.img', 'fill')
+ >>> print dev
+ <Device: location=test.img, size=16777216, partitions: 0>
+ >>> part = pyfdisk.Partition(size='1M', fdisk_type=0x81, filesystem='ext4', mountpoint='/test1')
+ >>> part2 = pyfdisk.Partition(size='fill', filesystem='btrfs', mountpoint='/test2')
+ >>> dev.add_partition(part)
+ >>> dev.add_partition(part2)
+ >>> print dev.partitionlist
+ Partition
+ size: 14663168
+ fdisk type: 0x81
+ filesystem: btrfs
+ start: 4096
+ end: 32734
+ number: 2
+ mountpoint: /test2
+ Partition
+ size: 1048576
+ fdisk type: 0x81
+ filesystem: ext4
+ start: 2048
+ end: 4095
+ number: 1
+ mountpoint: /test1
+ >>> dev.commit()
+ Creating GPT partition table on test.img
+
+ $ fdisk -l test.img
+ Disk test.img: 16 MiB, 16777216 bytes, 32768 sectors
+ ...
+ Device Start End Sectors Size Type
+ test.img1 2048 4095 2048 1M Linux filesystem
+ test.img2 4096 32734 28639 14M Linux filesystem
diff --git a/extensions/pyfdisk.py b/extensions/pyfdisk.py
new file mode 100644
index 00000000..265dc64e
--- /dev/null
+++ b/extensions/pyfdisk.py
@@ -0,0 +1,766 @@
+#!/usr/bin/env python2
+# Copyright (C) 2015 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, see <http://www.gnu.org/licenses/>.
+
+"""
+A simple Python wrapper for fdisk
+
+ * Intends to have as few dependencies as possible, beyond command line fdisk
+ * Intends to work on Linux, though may work on other operating systems with
+ fdisk from util-linux.
+ * Provides for the creation of MBR and GPT partitioned images or devices
+ * Includes some utility functions for reading information from existing
+ partition tables
+
+Caveats:
+ * Designed to cater for disks using 4096 byte sectors, although this hasn't
+ been tested yet.
+"""
+
+import contextlib
+from copy import deepcopy
+import re
+import subprocess
+import time
+import yaml
+
+
+class Extent(object):
+ """
+ A class to hold start and end points for other objects
+
+ Start and end points are measured in sectors. This class transparently
+ handles the inclusive nature of the start and end sectors of blocks of
+ storage. It also allows extents to be aligned within other extents.
+ """
+
+ def __init__(self, start=0, length=0, end=0):
+ if length and not start:
+ raise PartitioningError('Extent requires a non-zero start '
+ 'point and length')
+ if start and length:
+ self.start = int(start)
+ self.end = int(start) + int(length) - 1
+ else:
+ self.start = int(start)
+ self.end = int(end)
+
+ self.filled_sectors = 0
+
+ def __max__(self):
+ return self.end
+
+ def __min__(self):
+ return self.start
+
+ def __len__(self):
+ return self.end - self.start + 1
+
+ def __add__(self, other):
+ """Return the sum of two extents"""
+ return Extent(start=self.start,
+ length=(len(self) + len(other)))
+
+ def __iadd__(self, other):
+ """+="""
+ self.end += len(other)
+ return self
+
+ def __gt__(self, other):
+ return len(self) > len(other)
+
+ def __lt__(self, other):
+ return not self > other
+
+ def __str__(self):
+ return ('<Extent: Start=%d, End=%d, Length=%d>' %
+ (self.start, self.end, len(self)))
+
+ def pack(self, other):
+ """
+ Return a new Extent aligned to self's first unused sector
+
+ This is done by length, to quantify fitting an area of disk space
+ inside the other. The filled space in self is calculated and updated.
+
+ Returns:
+ A new Extent, starting at the first available sector in `self`,
+ with the same length as `other`.
+ """
+ length_other = len(other)
+ first_free_sector = self.start + self.filled_sectors
+ if length_other + self.filled_sectors > len(self):
+ raise PartitioningError('Not enough free space to pack Extent')
+ self.filled_sectors += length_other
+ return Extent(start=first_free_sector, length=length_other)
+
+ def free_sectors(self):
+ return len(self) - self.filled_sectors
+
+
+class PartitionList(object):
+ """
+ An iterable object to contain and process a list of Partition objects
+
+ This class eases the calculation of partition sizes and numbering, since
+ the properties of a given partition depend on each of the other partitions
+ in the list.
+
+ Attributes:
+ device: A Device class containing the partition list
+ """
+
+ def __init__(self, device):
+ """
+ Initialisation function
+
+ Args:
+ device: A Device object
+ """
+ self.device = device
+ self.extent = device.extent
+
+ self.__cached_list_hash = 0
+
+ self.__partition_list = []
+ self.__iter_index = 0
+
+ def append(self, partition):
+ """Append a new Partition object to the list"""
+ partition.check()
+ if isinstance(partition, Partition):
+ for part in self.__partition_list:
+ dup_attrib = part.compare(partition)
+ if dup_attrib:
+ raise PartitioningError('Duplicated partition attribute '
+ '\'%s\'' % dup_attrib)
+ self.__partition_list.append(partition)
+ else:
+ raise PartitioningError('PartitionList can only '
+ 'contain Partition objects')
+
+ def __iter__(self):
+ """Return a copy of self as an iterable object"""
+ self.__iter_index = 0
+ copy = deepcopy(self)
+ return copy
+
+ def __next__(self):
+ """Return the next item in an iteration"""
+ if self.__iter_index == len(self.__partition_list):
+ raise StopIteration
+ else:
+ partition = self[self.__iter_index]
+ self.__iter_index += 1
+ return partition
+
+ def next(self):
+ """Provide a next() method for Python 2 compatibility"""
+ return self.__next__()
+
+ def __getitem__(self, i):
+ """Return an partition from the list, sorted by partition number"""
+ part_list = sorted(self.__update_partition_list(),
+ key=lambda part: part.number)
+ return part_list[i]
+
+ def free_sectors(self):
+ """Calculate the amount of unused space in the list"""
+ part_list = self.__update_partition_list()
+ self.extent.filled_sectors = 0
+ for part in part_list:
+ self.extent.pack(part.extent)
+ return self.extent.free_sectors()
+
+ def __update_partition_list(self):
+ """
+ Allocate extent and numbering for each Partition object in the list
+
+ A copy of the partition list is made so that any Partition object
+ returned from this list is a copy of a stored Partition object, thus
+ any partitions stored in the partition list remain intact even if a
+ copy is modified after is is returned. Hashing is used to avoid
+ updating the list when the partition list has not changed.
+ """
+ current_list_hash = hash(str(self.__partition_list))
+ if current_list_hash == self.__cached_list_hash:
+ return self.__cached_list
+
+ part_list = deepcopy(self.__partition_list)
+ used_numbers = set()
+ fill_partitions = set(partition for partition in part_list
+ if partition.size == 'fill')
+ requested_numbers = set(partition.number for partition in part_list
+ if hasattr(partition, 'number'))
+
+ # Get free space and the size of 'fill' partitions
+ self.extent.filled_sectors = 0
+ for part in part_list:
+ if part.size != 'fill':
+ extent = Extent(start=1,
+ length=self.get_length_sectors(part.size))
+ part.extent = extent
+ self.extent.pack(extent)
+
+ # Allocate aligned Extents and process partition numbers
+ if len(fill_partitions):
+ fill_size = self.extent.free_sectors() / len(fill_partitions)
+ # Set size of fill partitions
+ for part in fill_partitions:
+ part.size = fill_size * self.device.sector_size
+ part.extent = Extent(start=1, length=fill_size)
+
+ self.extent.filled_sectors = 0
+ for part in part_list:
+ part.extent = self.extent.pack(part.extent)
+
+ # Find the next unused partition number if not assigned
+ if hasattr(part, 'number'):
+ num = part.number
+ else:
+ for n in range(1, self.device.max_allowed_partitions + 1):
+ if n not in used_numbers and n not in requested_numbers:
+ num = n
+ break
+
+ part.number = num
+ used_numbers.add(num)
+
+ self.__cached_list_hash = current_list_hash
+ self.__cached_list = part_list
+ return part_list
+
+ def get_length_sectors(self, size_bytes):
+ """Get a length in sectors, aligned to 4096 byte boundaries"""
+ return (int(size_bytes) / self.device.sector_size +
+ ((int(size_bytes) % 4096) != 0) *
+ (4096 / self.device.sector_size))
+
+ def __str__(self):
+ string = ''
+ for part in self:
+ string = '%s\n%s\n' % (part, string)
+ return string.rstrip()
+
+ def __len__(self):
+ return len(self.__partition_list)
+
+ def __setitem__(self, i, value):
+ """Update the ith item in the list"""
+ self.append(partition)
+
+
+class Partition(object):
+ """
+ A class to describe a partition in a disk or image
+
+ The required attributes are loaded via kwargs.
+
+ Required attributes:
+ size: String describing the size of the partition in bytes
+ This may also be 'fill' to indicate that this partition should
+ be expanded to fill all unused space. Where there is more than
+ one fill partition, unused space is divided equally between the
+ fill partitions.
+ fdisk_type: An integer representing the hexadecimal code used by fdisk
+ to describe the partition type. Any partitions with
+ fdisk_type='none' create an area of unused space.
+
+ Optional attributes:
+ **kwargs: A mapping of any keyword arguments
+ filesystem: A string describing the filesystem format for the
+ partition, or 'none' to skip filesystem creation.
+ description: A string describing the partition, for documentation
+ boot: Boolean string describing whether to set the bootable flag
+ mountpoint: String describing the mountpoint for the partition
+ number: Number used to override partition numbering for the
+ partition (Possible only when using an MBR partition table)
+ """
+ def __init__(self, size=0, fdisk_type=0x81, filesystem='none', **kwargs):
+ if not size and 'size' not in kwargs:
+ raise PartitioningError('Partition must have a non-zero size')
+
+ self.filesystem = filesystem
+ self.fdisk_type = fdisk_type
+
+ self.size = human_size(size)
+ self.__dict__.update(**kwargs)
+
+ def check(self):
+ """Check for correctness"""
+ if self.fdisk_type == 'none':
+ if self.filesystem != 'none':
+ raise PartitioningError('Partition: Free space '
+ 'cannot have a filesystem')
+ if hasattr(self, 'mountpoint') and self.mountpoint != 'none':
+ raise PartitioningError('Partition: Free space '
+ 'cannot have a mountpoint')
+
+ def compare(self, other):
+ """Check for mutually exclusive attributes"""
+ non_duplicable = ('number', 'mountpoint')
+ for attrib in non_duplicable:
+ if hasattr(self, attrib) and hasattr(other, attrib):
+ if getattr(self, attrib) == getattr(other, attrib):
+ return attrib
+ return False
+
+ def __str__(self):
+ string = ('Partition\n'
+ ' size: %s\n'
+ ' fdisk type: %s\n'
+ ' filesystem: %s'
+ % (self.size,
+ hex(self.fdisk_type) if self.fdisk_type != 'none'
+ else 'none',
+ self.filesystem))
+ if hasattr(self, 'extent'):
+ string += (
+ '\n start: %s'
+ '\n end: %s'
+ % (self.extent.start, self.extent.end))
+ if hasattr(self, 'number'):
+ string += '\n number: %s' % self.number
+ if hasattr(self, 'mountpoint'):
+ string += '\n mountpoint: %s' % self.mountpoint
+ if hasattr(self, 'boot'):
+ string += '\n bootable: %s' % self.boot
+
+ return string
+
+
+class Device(object):
+ """
+ A class to describe a disk or image, and its partition layout
+
+ Attributes are loaded from **kwargs, containing key-value pairs describing
+ the required attributes. This can be loaded from a YAML file, using the
+ module function load_yaml().
+
+ Required attributes:
+ location: The location of the device or disk image
+ size: A size in bytes describing the total amount of space the
+ partition table on the device will occupy, or 'fill' to
+ automatically fill the available space.
+
+ Optional attributes:
+ **kwargs: A mapping of any keyword arguments
+ start_offset: The first 512 byte sector of the first partition
+ (default: 2048)
+ partition_table_format: A string describing the type of partition
+ table used on the device (default: 'gpt')
+ partitions: A list of mappings for the attributes for each Partition
+ object. update_partitions() populates the partition list
+ based on the contents of this attribute.
+ """
+ min_start_bytes = 1024**2
+
+ def __init__(self, location, size, **kwargs):
+
+ if 'partition_table_format' not in kwargs:
+ self.partition_table_format = 'gpt'
+ if 'start_offset' not in kwargs:
+ self.start_offset = 2048
+
+ target_size = get_disk_size(location)
+ if str(size).lower() == 'fill':
+ self.size = target_size
+ else:
+ self.size = human_size(size)
+
+ if self.size > target_size:
+ raise PartitioningError('Not enough space available on target')
+
+ if self.size <= self.min_start_bytes:
+ raise PartitioningError('Device size must be greater than %d '
+ 'bytes' % self.min_start_bytes)
+
+ # Get sector size
+ self.sector_size = get_sector_size(location)
+ self.location = location
+
+ # Populate Device attributes from keyword args
+ self.__dict__.update(**kwargs)
+
+ if self.partition_table_format.lower() == 'gpt':
+ self.max_allowed_partitions = 128
+ else:
+ self.max_allowed_partitions = 4
+
+ # Process Device size
+ start = (self.start_offset * 512) / self.sector_size
+ # Sector quantities in the specification are assumed to be 512 bytes
+ # This converts to the real sector size
+ if (start * self.sector_size) < self.min_start_bytes:
+ raise PartitioningError('Start offset should be greater than '
+ '%d, for %d byte sectors' %
+ (min_start_bytes / self.sector_size,
+ self.sector_size))
+ # Check the disk's first partition starts on a 4096 byte boundary
+ # this ensures alignment, and avoiding a reduction in performance
+ # on disks which use a 4096 byte physical sector size
+ if (start * self.sector_size) % 4096 != 0:
+ print('WARNING: Start sector is not aligned '
+ 'to 4096 byte sector boundaries')
+
+ # End sector is one sector less than the disk length
+ disk_end_sector = (self.size / self.sector_size) - 1
+ if self.partition_table_format == 'gpt':
+ # GPT partition table is duplicated at the end of the device.
+ # GPT header takes one sector, whatever the sector size,
+ # with a 16384 byte 'minimum' area for partition entries,
+ # supporting up to 128 partitions (128 bytes per entry).
+ # The duplicate GPT does not include the 'protective' MBR
+ gpt_size = ((16 * 1024) / self.sector_size) + 1
+ self.extent = Extent(start=start,
+ end=(disk_end_sector - gpt_size))
+ else:
+ self.extent = Extent(start=start, end=disk_end_sector)
+
+ self.update_partitions()
+
+ def update_partitions(self, partitions=None):
+ """
+ Reset list, populate with partitions from a list of attributes
+
+ Args:
+ partitions: A list of partition keyword attributes
+ """
+
+ self.partitionlist = PartitionList(self)
+ if partitions:
+ self.partitions = partitions
+ if hasattr(self, 'partitions'):
+ for partition_args in self.partitions:
+ self.add_partition(Partition(**partition_args))
+
+ def add_partition(self, partition):
+ """
+ Add a Partition object to the device's list of partitions
+
+ Args:
+ partition: a Partition class
+ """
+
+ if len(self.partitionlist) < self.max_allowed_partitions:
+ self.partitionlist.append(partition)
+ else:
+ raise PartitioningError('Exceeded maximum number of partitions '
+ 'for %s partition table (%d)' %
+ (self.partition_table_format.upper(),
+ self.max_allowed_partitions))
+
+ def get_partition_by_mountpoint(self, mountpoint):
+ """Return a Partition with a specified mountpoint"""
+
+ return next(r for r in self.partitionlist
+ if hasattr(r, 'mountpoint')
+ and r.mountpoint == '/')
+
+ def commit(self):
+ """Write the partition table to the disk or image"""
+
+ pt_format = self.partition_table_format.lower()
+ print("Creating %s partition table on %s" %
+ (pt_format.upper(), self.location))
+
+ # Create a new partition table
+ if pt_format in ('mbr', 'dos'):
+ cmd = "o\n"
+ elif pt_format == 'gpt':
+ cmd = "g\n"
+ else:
+ raise PartitioningError('Unrecognised partition '
+ 'table type \'%s\'' % pt_format)
+
+ for partition in self.partitionlist:
+ # Create partitions
+ if str(partition.fdisk_type).lower() != 'none':
+ cmd += "n\n"
+ if pt_format in ('mbr', 'dos'):
+ cmd += "p\n"
+ cmd += (str(partition.number) + "\n"
+ "" + str(partition.extent.start) + "\n"
+ "" + str(partition.extent.end) + "\n")
+
+ # Set partition types
+ cmd += "t\n"
+ if partition.number > 1:
+ # fdisk does not ask for a partition
+ # number when setting the type of the
+ # first created partition
+ cmd += str(partition.number) + "\n"
+ cmd += str(hex(partition.fdisk_type)) + "\n"
+
+ # Set bootable flag
+ if hasattr(partition, 'boot') and pt_format == 'mbr':
+ if str(partition.boot).lower() in ('yes', 'true'):
+ cmd += "a\n"
+ if partition.number > 1:
+ cmd += str(partition.number) + "\n"
+
+ # Write changes
+ cmd += ("w\n"
+ "q\n")
+ p = subprocess.Popen(["fdisk", self.location],
+ stdin=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ stdout=subprocess.PIPE)
+ output = p.communicate(cmd)
+
+ errors = output[1].split('\n')[1:-1]
+ if errors:
+ # Exception handling is done in this way since fdisk will not
+ # return a failure exit code if it finds problems with its input.
+ # Note that the message 'disk does not contain a valid partition
+ # table' is not an error, it's a status message printed to stderr
+ # when fdisk starts with a blank device.
+ raise FdiskError('"%s"' % ' '.join(str(x) for x in errors))
+
+ def get_partition_uuid(self, partition):
+ """Read a partition's UUID from disk (MBR or GPT)"""
+
+ return get_partition_uuid(self.location, partition.number,
+ self.partition_table_format)
+
+ def create_filesystems(self, skip=[]):
+ """Create filesystems on the disk or image
+
+ Args:
+ skip: An iterable of mountpoints identifying partitions to skip
+ filesystem creation on, for example if custom settings are
+ required
+ """
+
+ for part in self.partitionlist:
+ if hasattr(part, 'mountpoint') and part.mountpoint in skip:
+ continue
+ if part.filesystem.lower() != 'none':
+ with create_loopback(self.location,
+ part.extent.start * self.sector_size,
+ part.size) as loop:
+ print ('Creating %s filesystem on partition %s' %
+ (part.filesystem, part.number))
+ subprocess.check_output(['mkfs.' + part.filesystem, loop])
+
+ def __str__(self):
+ return ('<Device: location=%s, size=%s, partitions: %s>' %
+ (self.location, self.size, len(self.partitionlist)))
+
+
+class PartitioningError(Exception):
+
+ def __init__(self, msg=None):
+ self.msg = msg
+
+ def __str__(self):
+ return self.msg
+
+
+class FdiskError(Exception):
+
+ def __init__(self, msg=None):
+ self.msg = msg
+
+ def __str__(self):
+ return self.msg
+
+
+def load_yaml(location, size, yaml_file):
+ """
+ Load partition data from a yaml specification
+
+ The YAML file describes the attributes documented in the Device
+ and Partition classes.
+
+ Args:
+ yaml_file: String path to a YAML file to load
+ location: Path to the device node or image to use for partitioning
+ size: The desired device size in bytes (may be 'fill' to occupy the
+ entire device
+
+ Returns:
+ A Device object
+ """
+
+ with open(yaml_file, 'r') as f:
+ kwargs = yaml.safe_load(f)
+ return Device(location, size, **kwargs)
+
+
+def get_sector_size(location):
+ """Get the logical sector size of a block device or image, in bytes"""
+
+ return int(__filter_fdisk_list_output('Sector size.*?(\d+) bytes',
+ location)[0])
+
+def get_disk_size(location):
+ """Get the total size of a block device or image, in bytes"""
+
+ return int(__filter_fdisk_list_output('Disk.*?(\d+) bytes',
+ location)[0])
+
+def get_partition_offsets(location):
+ """Return an array of the partition start sectors in a device or image"""
+
+ return __get_fdisk_list_numeric_column(location, 1)
+
+def get_partition_sector_sizes(location):
+ """Return an array of sizes of partitions in a device or image in sectors"""
+
+ return __get_fdisk_list_numeric_column(location, 3)
+
+def __get_fdisk_list_numeric_column(location, column):
+ return map(int, __filter_fdisk_list_output('%s(?:\d+[\*\s]+){%d}(\d+)' %
+ (location, column), location))
+
+def __filter_fdisk_list_output(regex, location):
+ r = re.compile(regex, re.DOTALL)
+ m = re.findall(r, subprocess.check_output(['fdisk', '-l', location]))
+ if m:
+ return m
+ else:
+ raise PartitioningError('Error reading information from fdisk')
+
+def human_size(size_string):
+ """Parse strings for human readable size factors"""
+
+ facts_of_1024 = ['', 'k', 'm', 'g', 't']
+ m = re.match('^(\d+)([kmgtKMGT]?)$', str(size_string))
+ if not m:
+ return size_string
+ return int(m.group(1)) * (1024 ** facts_of_1024.index(m.group(2).lower()))
+
+@contextlib.contextmanager
+def create_loopback(mount_path, offset=0, size=0):
+ """
+ Create a loopback device for accessing partitions in block devices
+
+ Args:
+ mount_path: String path to mount
+ offset: Offset of the start of a partition in bytes (default 0)
+ size: Limits the size of the partition, in bytes (default 0). This is
+ important when creating filesystems, otherwise tools often
+ corrupt areas beyond the desired limits of the partition.
+ Returns:
+ The path to a created loopback device node
+ """
+
+ try:
+ base_args = ['losetup', '--show', '-f', '-P', '-o', str(offset)]
+ if size and offset:
+ cmd = base_args + ['--sizelimit', str(size), mount_path]
+ else:
+ cmd = base_args + [mount_path]
+ loop_device = subprocess.check_output(cmd).rstrip()
+ # Allow the system time to see the new device On some systems, mounts
+ # created on the loopdev too soon after creating the loopback device
+ # may be unreliable, even though the -P option (--partscan) is passed
+ # to losetup
+ time.sleep(1)
+ except subprocess.CalledProcessError:
+ PartitioningError('Error creating loopback')
+ try:
+ yield loop_device
+ finally:
+ subprocess.check_call(['losetup', '-d', loop_device])
+
+def get_pt_type(location):
+ """Read the partition table type from location (device or image)"""
+
+ pt_type = __get_blkid_output('PTTYPE', location).lower()
+ return 'none' if pt_type == '' else pt_type
+
+def __get_blkid_output(field, location):
+ return subprocess.check_output(['blkid', '-p', '-o', 'value',
+ '-s', field, location]).rstrip()
+
+def get_partition_uuid(location, part_num, pt_type=None):
+ """
+ Read the partition UUID (MBR or GPT) for location (device or image)
+
+ Args:
+ location: Path to device or image
+ part_num: Integer number of the partition
+ pt_type: The partition table format (MBR or GPT)
+ """
+
+ if not pt_type:
+ pt_type = get_pt_type(location)
+ if pt_type == 'gpt':
+ return get_partition_gpt_guid(location, part_num)
+ elif pt_type == 'mbr':
+ return get_partition_mbr_uuid(location, part_num)
+
+def get_partition_mbr_uuid(location, part_num):
+ """
+ Get a partition's UUID in a device using MBR partition table
+
+ In Linux, MBR partition UUIDs are comprised of the NT disk signature,
+ followed by '-' and a two digit, zero-padded partition number. This is
+ necessary since the MBR does not provide per-partition GUIDs as GPT
+ partition tables do. This can be passed to the kernel with
+ "root=PARTUUID=$UUID" to identify a partition containing a root
+ filesystem.
+
+ Args:
+ partition: A partition object
+ location: Location of the storage device containing the partition -
+ an image or device node
+ Returns:
+ A UUID referring to an MBR partition, e.g. '97478dab-02'
+ """
+
+ pt_uuid = __get_blkid_output('PTUUID', location).upper()
+ return '%s-%02d' % (pt_uuid, part_num)
+
+def get_partition_gpt_guid(location, part_num):
+ """
+ Get a partition's GUID from a GPT partition table
+
+ This is read directly from the partition table, since current fdisk does
+ not support reading GPT partition GUIDs. It does not require special tools
+ (gfdisk). This is the GUID which identifies the partition, created with
+ the partition table, as opposed to the filesystem UUID, created with the
+ filesystem. It is particularly useful for specifying the partition which
+ the Linux kernel can use on boot to find the root filesystem, e.g. when
+ using the kernel command line "root=PARTUUID=$UUID"
+
+ Args:
+ part_num: The partition number
+ location: Location of the storage device containing the partition -
+ an image path or device node
+ Returns:
+ A GUID string, e.g. 'B342D1AB-4B65-4601-97DC-D6DF3FE2E95E'
+ """
+
+ sector_size = get_sector_size(location)
+ # The partition GUID is located two sectors (protective MBR + GPT header)
+ # plus 128 bytes for each partition entry in the table, plus 16 bytes for
+ # the location of the partition's GUID
+ guid_offset = (2 * sector_size) + (128 * (part_num - 1)) + 16
+
+ with open(location, 'rb') as f:
+ f.seek(guid_offset)
+ raw_uuid_bin = f.read(16)
+
+ a = ''
+ for c in raw_uuid_bin:
+ a += '%02X' % ord(c)
+
+ return ('%s%s%s%s-%s%s-%s%s-%s-%s' %
+ (a[6:8], a[4:6], a[2:4], a[0:2],
+ a[10:12], a[8:10],
+ a[14:16], a[12:14],
+ a[16:20], a[20:32]))
diff --git a/extensions/rawdisk.write b/extensions/rawdisk.write
index 49d0a1e8..830d06a5 100755
--- a/extensions/rawdisk.write
+++ b/extensions/rawdisk.write
@@ -17,7 +17,10 @@
'''A Morph deployment write extension for raw disk images.'''
+import contextlib
import os
+import pyfdisk
+import re
import subprocess
import sys
import time
@@ -44,54 +47,64 @@ class RawDiskWriteExtension(writeexts.WriteExtension):
try:
if not self.is_device(location):
with self.created_disk_image(location):
- self.format_btrfs(location)
- self.create_system(temp_root, location)
+ self.create_baserock_system(temp_root, location)
self.status(msg='Disk image has been created at %s' %
location)
else:
- self.format_btrfs(location)
- self.create_system(temp_root, location)
+ self.create_baserock_system(temp_root, location)
self.status(msg='System deployed to %s' % location)
except Exception:
self.status(msg='Failure to deploy system to %s' %
location)
raise
- def upgrade_local_system(self, raw_disk, temp_root):
+ def upgrade_local_system(self, location, temp_root):
self.complete_fstab_for_btrfs_layout(temp_root)
- with self.mount(raw_disk) as mp:
- version_label = self.get_version_label(mp)
- self.status(msg='Updating image to a new version with label %s' %
- version_label)
+ try:
+ with self.mount(location) as mp:
+ self.do_upgrade(mp, temp_root)
+ return
+ except subprocess.CalledProcessError:
+ pass
- version_root = os.path.join(mp, 'systems', version_label)
- os.mkdir(version_root)
+ # At this point, we have failed to mount a raw image, so instead
+ # search for a Baserock root filesystem in the device's partitions
+ with self.find_and_mount_rootfs(location) as mp:
+ self.do_upgrade(mp, temp_root)
- old_orig = os.path.join(mp, 'systems', 'default', 'orig')
- new_orig = os.path.join(version_root, 'orig')
- subprocess.check_call(
- ['btrfs', 'subvolume', 'snapshot', old_orig, new_orig])
+ def do_upgrade(self, mp, temp_root):
+ version_label = self.get_version_label(mp)
+ self.status(msg='Updating image to a new version with label %s' %
+ version_label)
- subprocess.check_call(
- ['rsync', '-a', '--checksum', '--numeric-ids', '--delete',
- temp_root + os.path.sep, new_orig])
+ version_root = os.path.join(mp, 'systems', version_label)
+ os.mkdir(version_root)
- self.create_run(version_root)
+ old_orig = os.path.join(mp, 'systems', 'default', 'orig')
+ new_orig = os.path.join(version_root, 'orig')
+ subprocess.check_call(
+ ['btrfs', 'subvolume', 'snapshot', old_orig, new_orig])
- default_path = os.path.join(mp, 'systems', 'default')
- if os.path.exists(default_path):
- os.remove(default_path)
- else:
- # we are upgrading and old system that does
- # not have an updated extlinux config file
- if self.bootloader_config_is_wanted():
- self.generate_bootloader_config(mp)
- self.install_bootloader(mp)
- os.symlink(version_label, default_path)
+ subprocess.check_call(
+ ['rsync', '-a', '--checksum', '--numeric-ids', '--delete',
+ temp_root + os.path.sep, new_orig])
+ self.create_run(version_root)
+
+ default_path = os.path.join(mp, 'systems', 'default')
+ if os.path.exists(default_path):
+ os.remove(default_path)
+ else:
+ # we are upgrading and old system that does
+ # not have an updated extlinux config file
if self.bootloader_config_is_wanted():
- self.install_kernel(version_root, temp_root)
+ self.generate_bootloader_config(mp)
+ self.install_bootloader(mp)
+ os.symlink(version_label, default_path)
+
+ if self.bootloader_config_is_wanted():
+ self.install_kernel(version_root, temp_root)
def get_version_label(self, mp):
version_label = os.environ.get('VERSION_LABEL')
diff --git a/extensions/rawdisk.write.help b/extensions/rawdisk.write.help
index 52ed73fb..72e285b7 100644
--- a/extensions/rawdisk.write.help
+++ b/extensions/rawdisk.write.help
@@ -78,5 +78,50 @@ help: |
(See https://www.kernel.org/doc/Documentation/kernel-parameters.txt)
+ * PARTITION_FILE=path: path to a YAML partition specification to use for
+ producing partitioned disks or devices. The default specification is
+ 'partitioning/default' in definitions, which specifies a device with a
+ single partition. This may serve as an example of the format of this
+ file, or check the pyfdisk.py documentation in pyfdisk.README.
+
+ In addition to the features available in pyfdisk.py, using this
+ extension, a list of 'raw_files' items can be added at the partition
+ level, or the top level of the partition specification. This specifies
+ files to be written directly to the target device or image using `dd`
+
+ start_offset: 2048
+ partition_table_format: mbr
+ partitions:
+ - description: boot
+ filesystem: none
+ ...
+ raw_files:
+ - file: boot/uboot.img
+ raw_files:
+ - file: boot/uboot-env.img
+ offset_bytes: 512
+ - file: boot/preloader.bin
+ skip_bytes: 128
+ count_bytes: 16K
+
+ * Files are written consecutively in the order they are listed, and
+ sourced from the unpacked root filesystem image
+ * Files can be given a specific offset with 'offset_sectors' or
+ 'offset_bytes'
+ * With 'raw_files' specified inside a partition, 'offset_sectors' or
+ 'offset_bytes' is counted from the start of that partition,
+ otherwise from the start of the device.
+ * For files without an explicit offset, the next file is written
+ starting with the next free byte following the previous file
+ * Providing an offset is optional for all files
+ * Specifying 'skip_bytes' will set the 'skip=' option for dd, skipping
+ a number of bytes at the start of the input file
+ * Specifying 'count_bytes' sets the 'count=' option for dd
+ * For properties which take an input in bytes, a human-readable
+ multiplier can be used, e.g. K, M, G (integer multiplicands only)
+
+ * USE_PARTITIONING=boolean (default: no) Use this flag to enable
+ partitioning functions.
+
(See `morph help deploy` for details of how to pass parameters to write
extensions)
diff --git a/extensions/ssh-rsync.check b/extensions/ssh-rsync.check
index fc9bf62d..436aaae0 100755
--- a/extensions/ssh-rsync.check
+++ b/extensions/ssh-rsync.check
@@ -17,8 +17,6 @@
import os
-import json
-import logging
import writeexts
@@ -42,8 +40,6 @@ class SshRsyncCheckExtension(writeexts.WriteExtension):
location = args[0]
self.check_ssh_connectivity(location)
-
- self.check_version_label(location, os.environ['VERSION_LABEL'])
self.check_is_baserock_system(location)
# The new system that being deployed as an upgrade must contain
@@ -66,19 +62,5 @@ class SshRsyncCheckExtension(writeexts.WriteExtension):
raise writeexts.ExtensionError(
"%s does not have %s" % (location, command))
- def check_version_label(self, location, version_label):
- args = ['system-version-manager', 'list', '--json']
-
- try:
- output = writeexts.ssh_runcmd(location, args)
- except writeexts.ExtensionError:
- msg = ("Couldn't get system list from system-version-manager, "
- "skipping version label check")
- logging.exception(msg)
- return
-
- if version_label in json.loads(output):
- raise writeexts.ExtensionError(
- "There is already a system called `%s'" % version_label)
SshRsyncCheckExtension().run()
diff --git a/extensions/trove.configure b/extensions/trove.configure
index f823762c..c1cd8a65 100755
--- a/extensions/trove.configure
+++ b/extensions/trove.configure
@@ -107,12 +107,14 @@ ROOT="$1"
TROVE_DATA="$ROOT/etc/trove"
mkdir -p "$TROVE_DATA"
+# Install mandatory files
install -m 0600 "$LORRY_SSH_KEY" "$TROVE_DATA/lorry.key"
install -m 0644 "${LORRY_SSH_KEY}.pub" "$TROVE_DATA/lorry.key.pub"
install -m 0644 "$TROVE_ADMIN_SSH_PUBKEY" "$TROVE_DATA/admin.key.pub"
install -m 0644 "$WORKER_SSH_PUBKEY" "$TROVE_DATA/worker.key.pub"
+# Create base configuration file
python <<'EOF' >"$TROVE_DATA/trove.conf"
import os, sys, yaml
@@ -141,8 +143,30 @@ for key in optional_keys:
yaml.dump(trove_configuration, sys.stdout, default_flow_style=False)
EOF
+# Add backups configuration
if [ -n "$TROVE_BACKUP_KEYS" ]; then
mkdir -p "$TROVE_DATA/backup-keys"
cp -- $TROVE_BACKUP_KEYS "$TROVE_DATA/backup-keys"
echo "TROVE_BACKUP_KEYS: /etc/trove/backup-keys/*" >> "$TROVE_DATA/trove.conf"
fi
+
+# Add SSL configuration
+if test "x$TROVE_SSL_PEMFILE" != "x"; then
+ if test -f "$TROVE_SSL_PEMFILE"; then
+ install -m 0600 "$TROVE_SSL_PEMFILE" "$TROVE_DATA/trove-ssl-pemfile.pem"
+ echo "TROVE_SSL_PEMFILE: /etc/trove/trove-ssl-pemfile.pem" >> "$TROVE_DATA/trove.conf"
+ else
+ echo "ERROR: $TROVE_SSL_PEMFILE (TROVE_SSL_PEMFILE) doesn't exist."
+ exit 1
+ fi
+fi
+
+if test "x$TROVE_SSL_CA_FILE" != "x"; then
+ if test -f "$TROVE_SSL_CA_FILE"; then
+ install -m 0644 "$TROVE_SSL_CA_FILE" "$TROVE_DATA/trove-ssl-ca-file.pem"
+ echo "TROVE_SSL_CA_FILE: /etc/trove/trove-ssl-ca-file.pem" >> "$TROVE_DATA/trove.conf"
+ else
+ echo "ERROR: $TROVE_SSL_CA_FILE (TROVE_SSL_CA_FILE) doesn't exist."
+ exit 1
+ fi
+fi
diff --git a/extensions/trove.configure.help b/extensions/trove.configure.help
index c96bdf74..2669f693 100644
--- a/extensions/trove.configure.help
+++ b/extensions/trove.configure.help
@@ -15,6 +15,8 @@ help: |
* `LORRY_CONTROLLER_MINIONS` (optional, defaults to 4)
* `TROVE_BACKUP_KEYS` - a space-separated list of paths to SSH keys.
(optional)
+ * `TROVE_SSL_PEMFILE` (optional)
+ * `TROVE_SSL_CA_FILE` (optional)
The variables are described in more detail below.
@@ -105,6 +107,12 @@ help: |
If this is set, the Trove will have a backup user that can be accessed
with rsync using the SSH keys provided.
+ * `TROVE_SSL_PEMFILE` -- SSL certificate to use in lighttpd SSL
+ configuration.
+
+ * `TROVE_SSL_CA_FILE` -- CA chain certificate to use in lighttpd SSL
+ configuration.
+
Example
-------
diff --git a/extensions/writeexts.py b/extensions/writeexts.py
index 000c8270..f356a34a 100644
--- a/extensions/writeexts.py
+++ b/extensions/writeexts.py
@@ -18,6 +18,8 @@ import errno
import fcntl
import logging
import os
+import partitioning
+import pyfdisk
import re
import select
import shutil
@@ -228,7 +230,8 @@ class Extension(object):
sys.stdout.write('ERROR: %s\n' % e)
sys.exit(1)
- def status(self, **kwargs):
+ @staticmethod
+ def status(**kwargs):
'''Provide status output.
The ``msg`` keyword argument is the actual message,
@@ -264,12 +267,18 @@ class WriteExtension(Extension):
'Error: Btrfs is required for this deployment, but was not '
'detected in the kernel of the machine that is running Morph.')
- def create_local_system(self, temp_root, raw_disk):
+ def create_local_system(self, temp_root, location):
'''Create a raw system image locally.'''
- with self.created_disk_image(raw_disk):
- self.format_btrfs(raw_disk)
- self.create_system(temp_root, raw_disk)
+ with self.created_disk_image(location):
+ self.create_baserock_system(temp_root, location)
+
+ def create_baserock_system(self, temp_root, location):
+ if self.get_environment_boolean('USE_PARTITIONING', 'no'):
+ self.create_partitioned_system(temp_root, location)
+ else:
+ self.format_btrfs(location)
+ self.create_system(temp_root, location)
@contextlib.contextmanager
def created_disk_image(self, location):
@@ -295,7 +304,7 @@ class WriteExtension(Extension):
try:
self.create_btrfs_system_layout(
temp_root, mp, version_label='factory',
- disk_uuid=self.get_uuid(raw_disk))
+ rootfs_uuid=self.get_uuid(raw_disk))
except BaseException as e:
sys.stderr.write('Error creating Btrfs system layout')
raise
@@ -384,11 +393,20 @@ class WriteExtension(Extension):
else:
raise
- def get_uuid(self, location):
- '''Get the UUID of a block device's file system.'''
- # Requires util-linux blkid; busybox one ignores options and
- # lies by exiting successfully.
- return subprocess.check_output(['blkid', '-s', 'UUID', '-o', 'value',
+ def get_uuid(self, location, offset=0):
+ '''Get the filesystem UUID of a block device's file system.
+
+ Requires util-linux blkid; the busybox version ignores options and
+ lies by exiting successfully.
+
+ Args:
+ location: Path of device or image to inspect
+ offset: A byte offset - which should point to the start of a
+ partition containing a filesystem
+ '''
+
+ return subprocess.check_output(['blkid', '-s', 'UUID', '-o',
+ 'value', '-p', '-O', str(offset),
location]).strip()
@contextlib.contextmanager
@@ -413,7 +431,7 @@ class WriteExtension(Extension):
os.rmdir(mount_point)
def create_btrfs_system_layout(self, temp_root, mountpoint, version_label,
- disk_uuid):
+ rootfs_uuid, device=None):
'''Separate base OS versions from state using subvolumes.
'''
@@ -424,11 +442,9 @@ class WriteExtension(Extension):
os.makedirs(version_root)
os.makedirs(state_root)
- self.create_orig(version_root, temp_root)
- system_dir = os.path.join(version_root, 'orig')
-
+ system_dir = self.create_orig(version_root, temp_root)
state_dirs = self.complete_fstab_for_btrfs_layout(system_dir,
- disk_uuid)
+ rootfs_uuid, device)
for state_dir in state_dirs:
self.create_state_subvolume(system_dir, mountpoint, state_dir)
@@ -444,12 +460,53 @@ class WriteExtension(Extension):
self.install_dtb(version_root, temp_root)
self.install_syslinux_menu(mountpoint, version_root)
if initramfs is not None:
+ # Using initramfs - can boot a rootfs with a filesystem UUID
self.install_initramfs(initramfs, version_root)
- self.generate_bootloader_config(mountpoint, disk_uuid)
+ self.generate_bootloader_config(mountpoint,
+ rootfs_uuid=rootfs_uuid)
else:
- self.generate_bootloader_config(mountpoint)
+ if device:
+ # A partitioned disk or image - boot with partition UUID
+ root_part = device.get_partition_by_mountpoint('/')
+ root_guid = device.get_partition_uuid(root_part)
+ self.generate_bootloader_config(mountpoint,
+ root_guid=root_guid)
+ if self.get_bootloader_install() == 'extlinux':
+ self.install_syslinux_blob(device, system_dir)
+ else:
+ # Unpartitioned and no initramfs - cannot boot with a UUID
+ self.generate_bootloader_config(mountpoint)
self.install_bootloader(mountpoint)
+ if device:
+ self.create_partition_mountpoints(device, system_dir)
+
+ def create_partition_mountpoints(self, device, system_dir):
+ '''Create (or empty) partition mountpoints in the root filesystem
+
+ Delete contents of partition mountpoints in the rootfs to leave an
+ empty mount drectory (files are copied to the actual partition in
+ create_partitioned_system()), or create an empty mount directory in
+ the rootfs if the mount path doesn't exist.
+
+ Args:
+ device: A pyfdisk.py Device object describing the partitioning
+ system_dir: A path to the Baserock rootfs to be modified
+ '''
+
+ for part in device.partitionlist:
+ if hasattr(part, 'mountpoint') and part.mountpoint != '/':
+ part_mount_dir = os.path.join(system_dir,
+ re.sub('^/', '', part.mountpoint))
+ if os.path.exists(part_mount_dir):
+ self.status(msg='Deleting files in mountpoint '
+ 'for %s partition' % part.mountpoint)
+ self.empty_dir(part_mount_dir)
+ else:
+ self.status(msg='Creating empty mount directory '
+ 'for %s partition' % part.mountpoint)
+ os.mkdir(part_mount_dir)
+
def create_orig(self, version_root, temp_root):
'''Create the default "factory" system.'''
@@ -460,6 +517,8 @@ class WriteExtension(Extension):
self.status(msg='Copying files to orig subvolume')
subprocess.check_call(['cp', '-a', temp_root + '/.', orig + '/.'])
+ return orig
+
def create_run(self, version_root):
'''Create the 'run' snapshot.'''
@@ -484,16 +543,41 @@ class WriteExtension(Extension):
os.chmod(subvolume, 0o755)
existing_state_dir = os.path.join(system_dir, state_subdir)
+ self.move_dir_contents(existing_state_dir, subvolume)
+
+ def move_dir_contents(self, source_dir, target_dir):
+ '''Move all files source_dir, to target_dir'''
+
+ n = self.__cmd_files_in_dir(['mv'], source_dir, target_dir)
+ if n:
+ self.status(msg='Moved %d files to %s' % (n, target_dir))
+
+ def copy_dir_contents(self, source_dir, target_dir):
+ '''Copy all files source_dir, to target_dir'''
+
+ n = self.__cmd_files_in_dir(['cp', '-a', '-r'], source_dir, target_dir)
+ if n:
+ self.status(msg='Copied %d files to %s' % (n, target_dir))
+
+ def empty_dir(self, directory):
+ '''Empty the contents of a directory, but not the directory itself'''
+
+ n = self.__cmd_files_in_dir(['rm', '-rf'], directory)
+ if n:
+ self.status(msg='Deleted %d files in %s' % (n, directory))
+
+ def __cmd_files_in_dir(self, cmd, source_dir, target_dir=None):
files = []
- if os.path.exists(existing_state_dir):
- files = os.listdir(existing_state_dir)
- if len(files) > 0:
- self.status(msg='Moving existing data to %s subvolume' % subvolume)
+ if os.path.exists(source_dir):
+ files = os.listdir(source_dir)
for filename in files:
- filepath = os.path.join(existing_state_dir, filename)
- subprocess.check_call(['mv', filepath, subvolume])
+ filepath = os.path.join(source_dir, filename)
+ add_params = [filepath, target_dir] if target_dir else [filepath]
+ subprocess.check_call(cmd + add_params)
+ return len(files)
- def complete_fstab_for_btrfs_layout(self, system_dir, rootfs_uuid=None):
+ def complete_fstab_for_btrfs_layout(self, system_dir,
+ rootfs_uuid=None, device=None):
'''Fill in /etc/fstab entries for the default Btrfs disk layout.
In the future we should move this code out of the write extension and
@@ -521,9 +605,34 @@ class WriteExtension(Extension):
'UUID=%s' % rootfs_uuid)
fstab.add_line('%s / btrfs defaults,rw,noatime 0 1' % root_device)
+ # Add fstab entries for partitions
+ part_mountpoints = set()
+ if device:
+ mount_parts = set(p for p in device.partitionlist
+ if hasattr(p, 'mountpoint') and p.mountpoint != '/')
+ for part in mount_parts:
+ if part.mountpoint not in existing_mounts:
+ # Get filesystem UUID
+ part_uuid = self.get_uuid(device.location,
+ part.extent.start *
+ device.sector_size)
+ self.status(msg='Adding fstab entry for %s '
+ 'partition' % part.mountpoint)
+ fstab.add_line('UUID=%s %s %s defaults,rw,noatime '
+ '0 2' % (part_uuid, part.mountpoint,
+ part.filesystem))
+ part_mountpoints.add(part.mountpoint)
+ else:
+ self.status(msg='WARNING: an entry already exists in '
+ 'fstab for %s partition, skipping' %
+ part.mountpoint)
+
+ # Add entries for state dirs
+ all_mountpoints = set(existing_mounts.keys()) | part_mountpoints
state_dirs_to_create = set()
for state_dir in shared_state_dirs:
- if '/' + state_dir not in existing_mounts:
+ mp = '/' + state_dir
+ if mp not in all_mountpoints:
state_dirs_to_create.add(state_dir)
state_subvol = os.path.join('/state', state_dir)
fstab.add_line(
@@ -601,7 +710,7 @@ class WriteExtension(Extension):
def get_root_device(self):
return os.environ.get('ROOT_DEVICE', '/dev/sda')
- def generate_bootloader_config(self, real_root, disk_uuid=None):
+ def generate_bootloader_config(self, *args, **kwargs):
'''Install extlinux on the newly created disk image.'''
config_function_dict = {
'extlinux': self.generate_extlinux_config,
@@ -609,13 +718,22 @@ class WriteExtension(Extension):
config_type = self.get_bootloader_config_format()
if config_type in config_function_dict:
- config_function_dict[config_type](real_root, disk_uuid)
+ config_function_dict[config_type](*args, **kwargs)
else:
raise ExtensionError(
'Invalid BOOTLOADER_CONFIG_FORMAT %s' % config_type)
- def generate_extlinux_config(self, real_root, disk_uuid=None):
- '''Install extlinux on the newly created disk image.'''
+ def generate_extlinux_config(self, real_root,
+ rootfs_uuid=None, root_guid=None):
+ '''Generate the extlinux configuration file
+
+ Args:
+ real_root: Path to the mounted top level of the root filesystem
+ rootfs_uuid: Specify a filesystem UUID which can be loaded using
+ an initramfs aware of filesystems
+ root_guid: Specify a partition GUID, can be used without an
+ initramfs
+ '''
self.status(msg='Creating extlinux.conf')
config = os.path.join(real_root, 'extlinux.conf')
@@ -631,29 +749,40 @@ class WriteExtension(Extension):
'rootfstype=btrfs ' # required when using initramfs, also boots
# faster when specified without initramfs
'rootflags=subvol=systems/default/run ') # boot runtime subvol
- kernel_args += 'root=%s ' % (self.get_root_device()
- if disk_uuid is None
- else 'UUID=%s' % disk_uuid)
+
+ # See init/do_mounts.c:182 in the kernel source, in the comment above
+ # function name_to_dev_t(), for an explanation of the available
+ # options for the kernel parameter 'root', particularly when using
+ # GUID/UUIDs
+ if rootfs_uuid:
+ root_device = 'UUID=%s' % rootfs_uuid
+ elif root_guid:
+ root_device = 'PARTUUID=%s' % root_guid
+ else:
+ # Fall back to the root partition named in the cluster
+ root_device = self.get_root_device()
+ kernel_args += 'root=%s ' % root_device
+
kernel_args += self.get_extra_kernel_args()
with open(config, 'w') as f:
f.write('default linux\n')
f.write('timeout 1\n')
f.write('label linux\n')
f.write('kernel /systems/default/kernel\n')
- if disk_uuid is not None:
+ if rootfs_uuid is not None:
f.write('initrd /systems/default/initramfs\n')
if self.get_dtb_path() != '':
f.write('devicetree /systems/default/dtb\n')
f.write('append %s\n' % kernel_args)
- def install_bootloader(self, real_root):
+ def install_bootloader(self, *args, **kwargs):
install_function_dict = {
'extlinux': self.install_bootloader_extlinux,
}
install_type = self.get_bootloader_install()
if install_type in install_function_dict:
- install_function_dict[install_type](real_root)
+ install_function_dict[install_type](*args, **kwargs)
elif install_type != 'none':
raise ExtensionError(
'Invalid BOOTLOADER_INSTALL %s' % install_type)
@@ -666,6 +795,33 @@ class WriteExtension(Extension):
subprocess.check_call(['sync'])
time.sleep(2)
+ def install_syslinux_blob(self, device, orig_root):
+ '''Install Syslinux MBR blob
+
+ This is the first stage of boot (for partitioned images) on x86
+ machines. It is not required where there is no partition table. The
+ syslinux bootloader is written to the MBR, and is capable of loading
+ extlinux. This only works when the partition is set as bootable (MBR),
+ or the legacy boot flag is set (GPT). The blob is built with extlinux,
+ and found in the rootfs'''
+
+ pt_format = device.partition_table_format.lower()
+ if pt_format in ('gpb', 'mbr'):
+ blob = 'mbr.bin'
+ elif pt_format == 'gpt':
+ blob = 'gptmbr.bin'
+ blob_name = 'usr/share/syslinux/' + blob
+ self.status(msg='Installing syslinux %s blob' % pt_format.upper())
+ blob_location = os.path.join(orig_root, blob_name)
+ if os.path.exists(blob_location):
+ subprocess.check_call(['dd', 'if=%s' % blob_location,
+ 'of=%s' % device.location,
+ 'bs=440', 'count=1', 'conv=notrunc'])
+ else:
+ raise ExtensionError('MBR blob not found. Is this the correct'
+ 'architecture? The MBR blob will only be built for x86'
+ 'systems. You may wish to configure BOOTLOADER_INSTALL')
+
def install_syslinux_menu(self, real_root, version_root):
'''Make syslinux/extlinux menu binary available.
@@ -712,13 +868,13 @@ class WriteExtension(Extension):
return True
- def get_environment_boolean(self, variable):
+ def get_environment_boolean(self, variable, default='no'):
'''Parse a yes/no boolean passed through the environment.'''
- value = os.environ.get(variable, 'no').lower()
- if value in ['no', '0', 'false']:
+ value = os.environ.get(variable, default).lower()
+ if value in ('no', '0', 'false'):
return False
- elif value in ['yes', '1', 'true']:
+ elif value in ('yes', '1', 'true'):
return True
else:
raise ExtensionError('Unexpected value for %s: %s' %
@@ -744,3 +900,91 @@ class WriteExtension(Extension):
if e.errno == errno.ENOENT:
return False
raise
+
+ def create_partitioned_system(self, temp_root, location):
+ '''Create a Baserock system in a partitioned disk image or device'''
+
+ part_spec = os.environ.get('PARTITION_FILE', 'partitioning/default')
+
+ disk_size = self.get_disk_size()
+ if not disk_size:
+ raise writeexts.ExtensionError('DISK_SIZE is not defined')
+
+ dev = partitioning.do_partitioning(location, disk_size,
+ temp_root, part_spec)
+
+ for part in dev.partitionlist:
+ if not hasattr(part, 'mountpoint'):
+ continue
+ if part.mountpoint == '/':
+ # Re-format the rootfs, to include needed extra features
+ with pyfdisk.create_loopback(location,
+ part.extent.start *
+ dev.sector_size, part.size) as l:
+ self.mkfs_btrfs(l)
+
+ self.status(msg='Mounting partition %d' % part.number)
+ offset = part.extent.start * dev.sector_size
+ with self.mount_partition(location,
+ offset, part.size) as part_mount_dir:
+ if part.mountpoint == '/':
+ # Install root filesystem
+ rfs_uuid = self.get_uuid(location, part.extent.start *
+ dev.sector_size)
+ self.create_btrfs_system_layout(temp_root, part_mount_dir,
+ 'factory', rfs_uuid, dev)
+ else:
+ # Copy files to partition from unpacked rootfs
+ src_dir = os.path.join(temp_root,
+ re.sub('^/', '', part.mountpoint))
+ self.status(msg='Copying files to %s partition' %
+ part.mountpoint)
+ self.copy_dir_contents(src_dir, part_mount_dir)
+
+ # Write raw files to disk with dd
+ partitioning.process_raw_files(dev, temp_root)
+
+ @contextlib.contextmanager
+ def mount_partition(self, location, offset_bytes, size_bytes):
+ '''Mount a partition in a partitioned device or image'''
+
+ with pyfdisk.create_loopback(location, offset=offset_bytes,
+ size=size_bytes) as loop:
+ with self.mount(loop) as mountpoint:
+ yield mountpoint
+
+ @contextlib.contextmanager
+ def find_and_mount_rootfs(self, location):
+ '''
+ Mount a Baserock rootfs inside a partitioned device or image
+
+ This function searches a disk image or device, with unknown
+ partitioning scheme, for a Baserock rootfs. This is done by finding
+ offsets and sizes of partitions in the partition table, mounting each
+ partition, and checking whether a known path exists in the mount.
+
+ Args:
+ location: the location of the disk image or device to search
+ Returns:
+ A path to the mount point of the mounted Baserock rootfs
+ '''
+
+ if pyfdisk.get_pt_type(location) == 'none':
+ with self.mount(location) as mountpoint:
+ yield mountpoint
+
+ sector_size = pyfdisk.get_sector_size(location)
+ partn_sizes = pyfdisk.get_partition_sector_sizes(location)
+ for i, offset in enumerate(pyfdisk.get_partition_offsets(location)):
+ try:
+ with self.mount_partition(location, offset * sector_size,
+ partn_sizes[i] * sector_size) as mp:
+ path = os.path.join(mp, 'systems/default/orig/baserock')
+ if os.path.exists(path):
+ self.status(msg='Found a Baserock rootfs at '
+ 'offset %d sectors/%d bytes' %
+ (offset, offset * sector_size))
+ yield mp
+ except BaseException:
+ # Probably a partition without a filesystem, carry on
+ pass
diff --git a/install-files/essential-files/usr/bin/brpaste b/install-files/essential-files/usr/bin/brpaste
index 15f976b9..d2f9d867 100644
--- a/install-files/essential-files/usr/bin/brpaste
+++ b/install-files/essential-files/usr/bin/brpaste
@@ -1,6 +1,6 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
-import urllib2
+import urllib.request
import os
import json
@@ -15,14 +15,14 @@ def run(*args):
extensions = [None]
for i, each in enumerate(content):
- req = urllib2.Request(URL, each)
- response = urllib2.urlopen(req)
- the_page = response.read()
+ req = urllib.request.Request(URL, each.encode('utf-8'))
+ response = urllib.request.urlopen(req)
+ the_page = response.read().decode('utf-8')
key = json.loads(the_page)['key']
url = "http://paste.baserock.org/%s" % key
if extensions[i]:
url += extensions[i]
- print url
+ print(url)
if __name__ == '__main__':
import sys
diff --git a/install-files/gnome/etc/pam.d/gdm-launch-environment b/install-files/gnome/etc/pam.d/gdm-launch-environment
new file mode 100644
index 00000000..0e49df04
--- /dev/null
+++ b/install-files/gnome/etc/pam.d/gdm-launch-environment
@@ -0,0 +1,13 @@
+# Begin /etc/pam.d/gdm-launch-environment
+
+auth required pam_env.so
+auth optional pam_permit.so
+
+account include system-auth
+
+password required pam_deny.so
+
+session optional pam_keyinit.so force revoke
+session include system-auth
+
+# End /etc/pam.d/gdm-launch-environment
diff --git a/install-files/gnome/etc/securetty b/install-files/gnome/etc/securetty
new file mode 100644
index 00000000..e3dfb6c4
--- /dev/null
+++ b/install-files/gnome/etc/securetty
@@ -0,0 +1,8 @@
+tty1
+#tty2
+#tty3
+#tty4
+#tty5
+#tty6
+#tty7
+#tty8
diff --git a/install-files/gnome/etc/ssh/sshd_config b/install-files/gnome/etc/ssh/sshd_config
new file mode 100644
index 00000000..aaab3cca
--- /dev/null
+++ b/install-files/gnome/etc/ssh/sshd_config
@@ -0,0 +1,135 @@
+# $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $
+
+# This is the sshd server system-wide configuration file. See
+# sshd_config(5) for more information.
+
+# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
+
+# The strategy used for options in the default sshd_config shipped with
+# OpenSSH is to specify options with their default value where
+# possible, but leave them commented. Uncommented options override the
+# default value.
+
+#Port 22
+#AddressFamily any
+#ListenAddress 0.0.0.0
+#ListenAddress ::
+
+# The default requires explicit activation of protocol 1
+#Protocol 2
+
+# HostKey for protocol version 1
+#HostKey /etc/ssh/ssh_host_key
+# HostKeys for protocol version 2
+#HostKey /etc/ssh/ssh_host_rsa_key
+#HostKey /etc/ssh/ssh_host_dsa_key
+#HostKey /etc/ssh/ssh_host_ecdsa_key
+#HostKey /etc/ssh/ssh_host_ed25519_key
+
+# Lifetime and size of ephemeral version 1 server key
+#KeyRegenerationInterval 1h
+#ServerKeyBits 1024
+
+# Ciphers and keying
+#RekeyLimit default none
+
+# Logging
+# obsoletes QuietMode and FascistLogging
+#SyslogFacility AUTH
+#LogLevel INFO
+
+# Authentication:
+
+#LoginGraceTime 2m
+#PermitRootLogin yes
+#StrictModes yes
+#MaxAuthTries 6
+#MaxSessions 10
+
+#RSAAuthentication yes
+#PubkeyAuthentication yes
+
+# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
+# but this is overridden so installations will only check .ssh/authorized_keys
+AuthorizedKeysFile .ssh/authorized_keys
+
+#AuthorizedPrincipalsFile none
+
+#AuthorizedKeysCommand none
+#AuthorizedKeysCommandUser nobody
+
+# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
+#RhostsRSAAuthentication no
+# similar for protocol version 2
+#HostbasedAuthentication no
+# Change to yes if you don't trust ~/.ssh/known_hosts for
+# RhostsRSAAuthentication and HostbasedAuthentication
+#IgnoreUserKnownHosts no
+# Don't read the user's ~/.rhosts and ~/.shosts files
+#IgnoreRhosts yes
+
+# To disable tunneled clear text passwords, change to no here!
+#PasswordAuthentication yes
+#PermitEmptyPasswords no
+
+# Change to no to disable s/key passwords
+#ChallengeResponseAuthentication yes
+
+# Kerberos options
+#KerberosAuthentication no
+#KerberosOrLocalPasswd yes
+#KerberosTicketCleanup yes
+#KerberosGetAFSToken no
+
+# GSSAPI options
+#GSSAPIAuthentication no
+#GSSAPICleanupCredentials yes
+
+# Set this to 'yes' to enable PAM authentication, account processing,
+# and session processing. If this is enabled, PAM authentication will
+# be allowed through the ChallengeResponseAuthentication and
+# PasswordAuthentication. Depending on your PAM configuration,
+# PAM authentication via ChallengeResponseAuthentication may bypass
+# the setting of "PermitRootLogin without-password".
+# If you just want the PAM account and session checks to run without
+# PAM authentication, then enable this but set PasswordAuthentication
+# and ChallengeResponseAuthentication to 'no'.
+UsePAM yes
+
+#AllowAgentForwarding yes
+#AllowTcpForwarding yes
+#GatewayPorts no
+#X11Forwarding no
+#X11DisplayOffset 10
+#X11UseLocalhost yes
+#PermitTTY yes
+#PrintMotd yes
+#PrintLastLog yes
+#TCPKeepAlive yes
+#UseLogin no
+UsePrivilegeSeparation sandbox # Default for new installations.
+PermitUserEnvironment yes
+#Compression delayed
+#ClientAliveInterval 0
+#ClientAliveCountMax 3
+#UseDNS yes
+#PidFile /var/run/sshd.pid
+#MaxStartups 10:30:100
+#PermitTunnel no
+#ChrootDirectory none
+#VersionAddendum none
+
+# no default banner path
+#Banner none
+
+# override default of no subsystems
+Subsystem sftp /usr/lib/openssh/sftp-server
+
+# Example of overriding settings on a per-user basis
+#Match User anoncvs
+# X11Forwarding no
+# AllowTcpForwarding no
+# PermitTTY no
+# ForceCommand cvs server
+
+AcceptEnv LANG LC_*
diff --git a/install-files/gnome/manifest b/install-files/gnome/manifest
new file mode 100644
index 00000000..79569060
--- /dev/null
+++ b/install-files/gnome/manifest
@@ -0,0 +1,4 @@
+0100644 0 0 /etc/securetty
+overwrite 0100644 0 0 /etc/ssh/sshd_config
+overwrite 0100644 0 0 /etc/pam.d/gdm-launch-environment
+0100644 0 0 /usr/share/polkit-1/rules.d/geoclue-2.0.rules
diff --git a/install-files/gnome/usr/share/polkit-1/rules.d/geoclue-2.0.rules b/install-files/gnome/usr/share/polkit-1/rules.d/geoclue-2.0.rules
new file mode 100644
index 00000000..aeb42345
--- /dev/null
+++ b/install-files/gnome/usr/share/polkit-1/rules.d/geoclue-2.0.rules
@@ -0,0 +1,7 @@
+polkit.addRule(function(action, subject) {
+ if ((action.id == "org.freedesktop.ModemManager1.Device.Control" ||
+ action.id == "org.freedesktop.ModemManager1.Location") &&
+ subject.user == "geoclue") {
+ return polkit.Result.YES;
+ }
+});
diff --git a/migrations/006-specify-build-system.py b/migrations/006-specify-build-system.py
index f033b790..b66736c6 100755
--- a/migrations/006-specify-build-system.py
+++ b/migrations/006-specify-build-system.py
@@ -59,6 +59,7 @@ import yaml
import logging
import os
import sys
+import warnings
import migrations
@@ -75,6 +76,8 @@ REPO_ALIASES = {
GIT_CACHE_SERVER_URL = 'http://%s:8080/' % TROVE_HOST
+FAIL_ON_REMOTE_CACHE_ERRORS = False
+
TO_VERSION = 6
@@ -239,11 +242,18 @@ def get_toplevel_file_list_from_repo(url, ref):
headers={'Accept': 'application/json'},
timeout=9)
logging.debug("Got response: %s" % response)
- toplevel_tree = response.json()['tree']
+ try:
+ response.raise_for_status()
+ toplevel_tree = response.json()['tree']
+ except Exception as e:
+ raise RuntimeError(
+ "Unexpected response from server %s for repo %s: %s" %
+ (GIT_CACHE_SERVER_URL, url, e.message))
toplevel_filenames = toplevel_tree.keys()
except requests.exceptions.ConnectionError as e:
- raise RuntimeError("Unable to connect to cache server %s: %s" %
- (GIT_CACHE_SERVER_URL, e.message))
+ raise RuntimeError("Unable to connect to cache server %s while trying "
+ "to query file list of repo %s. Error was: %s" %
+ (GIT_CACHE_SERVER_URL, url, e.message))
return toplevel_filenames
@@ -293,8 +303,22 @@ def ensure_buildsystem_defined_where_needed(contents, filename):
chunk_git_url = get_repo_url(chunk_ref['repo'])
chunk_git_ref = chunk_ref['ref']
- toplevel_file_list = get_toplevel_file_list_from_repo(
- chunk_git_url, chunk_git_ref)
+
+ try:
+ toplevel_file_list = get_toplevel_file_list_from_repo(
+ chunk_git_url, chunk_git_ref)
+ except Exception as e:
+ warnings.warn(str(e))
+ message = (
+ "Unable to look up one or more repos on remote Git "
+ "server %s. If you are using a Trove that is not %s, "
+ "please edit the TROVE_HOST constant in this script "
+ "and run it again." % (TROVE_HOST, TROVE_HOST))
+ if FAIL_ON_REMOTE_CACHE_ERRORS:
+ raise RuntimeError(message)
+ else:
+ warnings.warn(message)
+ continue
logging.debug(
'%s: got file list %s', chunk_git_url, toplevel_file_list)
@@ -304,6 +328,7 @@ def ensure_buildsystem_defined_where_needed(contents, filename):
move_dict_entry_last(chunk_ref, 'build-depends')
changed = True
+
return changed
diff --git a/migrations/007-defaults-in-definitions.py b/migrations/007-defaults-in-definitions.py
new file mode 100755
index 00000000..489baf9b
--- /dev/null
+++ b/migrations/007-defaults-in-definitions.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+# Copyright (C) 2015 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, see <http://www.gnu.org/licenses/>.
+
+
+'''Migration to Baserock Definitions format version 7.
+
+Definitions version 7 adds a file named DEFAULTS which sets the default
+build commands and default split rules for the set of definitions in that
+repo.
+
+'''
+
+
+import os
+import shutil
+import sys
+import warnings
+
+import migrations
+
+
+TO_VERSION = 7
+
+
+
+try:
+ if migrations.check_definitions_version(TO_VERSION - 1):
+ if os.path.exists('DEFAULTS'):
+ warnings.warn(
+ "DEFAULTS file already exists in these definitions.")
+ valid = False
+ else:
+ shutil.copy(
+ 'migrations/007-initial-defaults',
+ 'DEFAULTS')
+ valid = True
+
+ if valid:
+ migrations.set_definitions_version(TO_VERSION)
+ sys.stdout.write("Migration completed successfully.\n")
+ sys.exit(0)
+ else:
+ sys.stderr.write(
+ "Migration failed due to one or more warnings.\n")
+ sys.exit(1)
+ else:
+ if not os.path.exists('DEFAULTS'):
+ warnings.warn(
+ "These definitions are marked as version 7 but there is no "
+ "DEFAULTS file.")
+ sys.stdout.write("Nothing to do.\n")
+ sys.exit(0)
+except RuntimeError as e:
+ sys.stderr.write("Error: %s\n" % e.message)
+ sys.exit(1)
diff --git a/migrations/007-initial-defaults b/migrations/007-initial-defaults
new file mode 100644
index 00000000..ab034a0b
--- /dev/null
+++ b/migrations/007-initial-defaults
@@ -0,0 +1,199 @@
+# Baserock definitions defaults
+# =============================
+#
+# The DEFAULTS file is treated specially by Baserock build tools.
+#
+# For more information, see: <http://wiki.baserock.org/definitions/current>.
+
+
+# Predefined build commands
+# -------------------------
+#
+# Common patterns in build instructions can be defined here, which can save
+# users from having to write lots of similar-looking chunk .morph files.
+#
+# There are pre- and post- variants for each set of commands. These exist so
+# you can add more commands without having to copy the defaults. For example,
+# to create an extra symlink after running `make install`, you can use
+# post-install-commands. Since these exist as a way of extending the defaults,
+# you cannot set default values for the pre- and post- commands.
+#
+# The set of environment variables available when these commands are executed
+# is not formally specified right now, but you can assume PREFIX, DESTDIR and
+# MORPH_ARCH are all set.
+#
+build-systems:
+ manual:
+ # The special, default 'no-op' build system.
+ configure-commands: []
+ build-commands: []
+ install-commands: []
+ strip-commands: []
+
+ autotools:
+ # GNU Autoconf and GNU Automake, or anything which follow the same pattern.
+ #
+ # See also: https://github.com/cgwalters/build-api/blob/master/build-api.md
+ configure-commands:
+ - >-
+ export NOCONFIGURE=1;
+ if [ -e autogen ]; then ./autogen;
+ elif [ -e autogen.sh ]; then ./autogen.sh;
+ elif [ -e bootstrap ]; then ./bootstrap;
+ elif [ -e bootstrap.sh ]; then ./bootstrap.sh;
+ elif [ ! -e ./configure ]; then autoreconf -ivf;
+ fi
+ - ./configure --prefix="$PREFIX"
+ build-commands:
+ - make
+ install-commands:
+ - make DESTDIR="$DESTDIR" install
+ strip-commands:
+ # TODO: Make idempotent when files are hardlinks
+ # Strip all ELF binary files that are executable or named like a library.
+ # .so files for C, .cmxs for OCaml and .node for Node.
+ #
+ # The file name and permissions checks are done with the `find` command before
+ # the ELF header is checked with the shell command, because it is a lot cheaper
+ # to check the mode and file name first, because it is a metadata check, rather
+ # than a subprocess and a file read.
+ #
+ # `file` is not used, to keep the dependency requirements down.
+ - &generic-strip-command |
+ find "$DESTDIR" -type f \
+ '(' -perm -111 -o -name '*.so*' -o -name '*.cmxs' -o -name '*.node' ')' \
+ -exec sh -ec \
+ 'read -n4 hdr <"$1" # check for elf header
+ if [ "$hdr" != "$(printf \\x7fELF)" ]; then
+ exit 0
+ fi
+ debugfile="$DESTDIR$PREFIX/lib/debug/$(basename "$1")"
+ mkdir -p "$(dirname "$debugfile")"
+ objcopy --only-keep-debug "$1" "$debugfile"
+ chmod 644 "$debugfile"
+ strip --remove-section=.comment --remove-section=.note --strip-unneeded "$1"
+ objcopy --add-gnu-debuglink "$debugfile" "$1"' - {} ';'
+
+ python-distutils:
+ # The Python distutils build systems.
+ configure-commands: []
+ build-commands:
+ - python setup.py build
+ install-commands:
+ - python setup.py install --prefix "$PREFIX" --root "$DESTDIR"
+ strip-commands:
+ - *generic-strip-command
+
+ cpan:
+ # The Perl ExtUtil::MakeMaker build system. This is called the 'cpan' build
+ # system for historical reasons.
+ #
+ # To install perl distributions into the correct location in our chroot
+ # we need to set PREFIX to <destdir>/<prefix> in the configure-commands.
+ #
+ # The mapping between PREFIX and the final installation
+ # directories is complex and depends upon the configuration of perl
+ # see,
+ # https://metacpan.org/pod/distribution/perl/INSTALL#Installation-Directories
+ # and ExtUtil::MakeMaker's documentation for more details.
+ configure-commands:
+ - perl Makefile.PL PREFIX=$DESTDIR$PREFIX
+ build-commands:
+ - make
+ install-commands:
+ - make install
+ strip-commands:
+ - *generic-strip-command
+
+ module-build:
+ # The Module::Build build system
+ #
+ # See the comment in ExtUtilsMakeMakerBuildSystem to see why --prefix is
+ # set to $DESTDIR$PREFIX here (--prefix in Module::Build has the same
+ # meaning as PREFIX in ExtUtils::MakeMaker).
+ configure-commands:
+ - perl Build.PL --prefix "$DESTDIR$PREFIX"
+ build-commands:
+ - ./Build
+ install-commands:
+ - ./Build install
+ strip-commands:
+ - *generic-strip-command
+
+ cmake:
+ # The CMake build system.
+ configure-commands:
+ - cmake -DCMAKE_INSTALL_PREFIX="$PREFIX"
+ build-commands:
+ - make
+ install-commands:
+ - make DESTDIR="$DESTDIR" install
+ strip-commands:
+ - *generic-strip-command
+
+ qmake:
+ # The Qt build system.
+ configure-commands:
+ - qmake -makefile
+ build-commands:
+ - make
+ install-commands:
+ - make INSTALL_ROOT="$DESTDIR" install
+ strip-commands:
+ - *generic-strip-command
+
+
+# Predefined artifact splitting rules
+# -----------------------------------
+#
+# Once a build has completed, you have some files that have been installed into
+# $DESTDIR. The splitting rules control how many 'artifact' tarballs are
+# generated as a result of the build, and which files from $DESTDIR end up in
+# which 'artifact'.
+#
+# The default split rules are defined here. These can be overriden in
+# individual chunk .morph files and stratum .morph files using the 'products'
+# field.
+#
+split-rules:
+ chunk:
+ - artifact: -bins
+ include:
+ - (usr/)?s?bin/.*
+ - artifact: -libs
+ include:
+ - (usr/)?lib(32|64)?/lib[^/]*\.so(\.\d+)*
+ - (usr/)libexec/.*
+ - artifact: -devel
+ include:
+ - (usr/)?include/.*
+ - (usr/)?lib(32|64)?/lib.*\.a
+ - (usr/)?lib(32|64)?/lib.*\.la
+ - (usr/)?(lib(32|64)?|share)/pkgconfig/.*\.pc
+ - artifact: -doc
+ include:
+ - (usr/)?share/doc/.*
+ - (usr/)?share/man/.*
+ - (usr/)?share/info/.*
+ - artifact: -locale
+ include:
+ - (usr/)?share/locale/.*
+ - (usr/)?share/i18n/.*
+ - (usr/)?share/zoneinfo/.*
+ - artifact: -misc
+ include:
+ - .*
+
+ stratum:
+ - artifact: -devel
+ include:
+ - .*-devel
+ - .*-debug
+ - .*-doc
+ - artifact: -runtime
+ include:
+ - .*-bins
+ - .*-libs
+ - .*-locale
+ - .*-misc
+ - .*
diff --git a/partitioning/default b/partitioning/default
new file mode 100644
index 00000000..5e34afbf
--- /dev/null
+++ b/partitioning/default
@@ -0,0 +1,9 @@
+start_offset: 2048
+partition_table_format: mbr
+partitions:
+- description: rootfs
+ size: fill
+ fdisk_type: 0x83
+ filesystem: btrfs
+ mountpoint: /
+ boot: yes
diff --git a/partitioning/socfpga-devkit b/partitioning/socfpga-devkit
new file mode 100644
index 00000000..4a982427
--- /dev/null
+++ b/partitioning/socfpga-devkit
@@ -0,0 +1,26 @@
+start_offset: 2048
+partition_table_format: mbr
+partitions:
+- description: pre-loader
+ filesystem: none
+ fdisk_type: 0xa2
+ number: 3
+ size: 1M
+ raw_files:
+ - file: boot/socfpga-preloader.img
+ - file: boot/u-boot.img
+- description: boot
+ filesystem: vfat
+ mountpoint: /boot
+ fdisk_type: 0x0b
+ number: 1
+ size: 100M
+- description: root
+ filesystem: btrfs
+ mountpoint: /
+ fdisk_type: 0x83
+ number: 2
+ size: fill
+raw_files:
+- file: boot/socfpga-devkit-env.img
+ offset_bytes: 512
diff --git a/schemas/README.schemas b/schemas/README.schemas
new file mode 100644
index 00000000..a7789187
--- /dev/null
+++ b/schemas/README.schemas
@@ -0,0 +1,137 @@
+Schemas for the Baserock definitions format
+===========================================
+
+The starting point for learning about the Baserock definitions format is the
+wiki page at <http://wiki.baserock.org/definitions/>.
+
+The schemas/ directory in the Baserock reference definitions.git repository is
+the canonical home for some schemas which describe the format in a
+machine-readable way.
+
+There are two parts to 'Baserock definitions'. The 'Baserock data model' is an
+abstract vocabulary for describing how to build, integrate and deploy software
+components. The 'Baserock definitions YAML representation format' is a
+serialisation format for the data model, which lets you write YAML files
+describing how to build, integrate and deploy software components.
+
+If you want to make the YAML files easier to deal with, you only need
+to care about the JSON-Schema schemas and anything that parses the YAML files.
+
+If you want to write a new tool to build, visualise, analyse or otherwise
+process Baserock definitions in some way, you can ignore the syntax altogether,
+use a pre-existing parser, and just think in terms of the data
+model.
+
+If you want to change the data model, you still have quite a difficult job,
+but at least it should be simple to write a translation layer on top of an
+existing parser so that you can interpret all the existing Baserock reference
+system definitions in terms of your new data model.
+
+
+The Baserock definitions YAML representation format
+---------------------------------------------------
+
+YAML itself is a syntax for representating data as text. The YAML specification
+is at <http://www.yaml.org/>.
+
+The data needs to be structured in a certain way for it to make sense as
+Baserock build/integration/deployment instructions. We have used JSON-Schema
+to describe the required layout of the data.
+
+The JSON-Schema standard is described at <http://json-schema.org/>. The
+JSON-Schema language was designed for use with JSON, which is another syntax
+for representing data as text, which happens to be a subset of YAML. We have
+found so far that JSON-Schema works well with YAML, at least when using the
+Python 'jsonschema' module.
+
+Definitions are represented by files with a '.morph' extension. There are four
+different kinds: 'chunk', 'stratum', 'system', and 'cluster'. Each of these is
+described with a different .json-schema file. It is possible to merge all these
+into one file, and use the 'oneOf' field to say that any .morph file should
+match exactly one of the layouts. The only issue with this approach is that
+the Python 'jsonschema' model will give you totally useless errors if anything
+is invalid (along the lines of "<dump of entire file> is not valid under any of
+the given schemas"). So for now they are separate.
+
+
+Tools for working with the Baserock YAML schemas
+------------------------------------------------
+
+You can use `scripts/yaml-jsonschema` to validate .morph files against the
+schemas. For example:
+
+ scripts/yaml-jsonschema schemas/cluster.json-schema clusters/*.morph
+
+
+The Baserock data model
+-----------------------
+
+The best way to represent information on disk may be a pretty inefficient way
+to represent that data in a computer's memory. Likewise, the way a program
+stores data internally may be totally impractical for people to edit directly.
+
+The file `baserock.owl` is an initial effort to describe the Baserock data
+model independently of any syntax or representation.
+
+We use the W3C standard Web Ontology Language (OWL), combined with the much
+simpler RDF Schema language. Together, this allows defining the vocabulary we
+can use to define build, integration and deployment instructions. There are
+various ways to represent OWL 'ontologies'; `baserock.owl` uses a
+representation format named Turtle, which is designed to be convenient for
+hand-editing.
+
+The current data model is very closely tied to the current syntax, but we are
+looking to change this and make it much more generic. This will involve
+removing the current 'Chunk', 'Stratum', 'System' and 'Cluster' classes, and
+adding something like 'thing with build instructions' and 'thing that contains
+other things' instead. Name suggestions are welcome :-)
+
+It's useful to consider existing OWL and RDF Schema vocabularies that are
+related to the Baserock data model. In future we can link the Baserock
+reference system definitions with related data published elsewhere on the Web.
+Here is an incomplete list:
+
+ - Description of a Project (DOAP): https://github.com/edumbill/doap
+ - Software Ontology: https://robertdavidstevens.wordpress.com/2014/06/19/the-software-ontology-swo/
+ - Software Packet Data Exchange (SPDX): https://spdx.org/about-spdx/what-is-spdx
+
+
+Tools for working with the Baserock data model schema
+-----------------------------------------------------
+
+It's difficult to find to a short, relevant 'getting started' guide. The
+website http://www.linkeddata.org/ has a lot of background that should be
+useful.
+
+The `rapper` commandline tool, which comes as part of the 'raptor2' C library,
+is helpful for converting from one syntax to another, and checking if
+`baserock.owl` is valid Turtle syntax. The 'raptor2' homepage is
+<http://www.librdf.org/>.
+
+To check the syntax of `baserock.owl` using `rapper`:
+
+ rapper -i turtle schemas/baserock.owl
+
+
+Omissions / TODO items
+----------------------
+
+- Device nodes: chunk .morph files can list a set of device nodes. In
+ `chunk.json-schema` this is recognised, but in `baserock.owl` it is missing.
+
+- 'Lorry' mirroring instructions. These contain information on where 'upstream'
+ source code is kept, which should be considered part of the data model. A
+ JSON schema may be better off in lorry.git or
+ baserock/local-config/lorries.git.
+
+- Metadata in built systems. This is currently not standardised at all.
+
+
+Comments
+--------
+
+As far as I know, Baserock is the first project to treat build, integration and
+deployment instructions as data rather than code. If you have questions about
+the schemas, the definitions format, or the overall approach, and they aren't
+answered here or in <http://wiki.baserock.org/definitions/>, then please ask on
+the baserock-dev@baserock.org mailing list.
diff --git a/schemas/baserock.owl b/schemas/baserock.owl
new file mode 100644
index 00000000..d699940c
--- /dev/null
+++ b/schemas/baserock.owl
@@ -0,0 +1,295 @@
+# Copyright (C) 2015 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, see <http://www.gnu.org/licenses/>.
+
+
+# This schema describes the Baserock data model. It describes how the data
+# can be represented in computer memory, it doesn't specify anything about
+# how it should be stored on disk or transferred.
+#
+# Please see README.schemas, and http://wiki.baserock.org/definitions/current/
+# for more information.
+#
+# This is not a brilliant schema, in Linked Data terms, because it's using
+# Baserock-specific terminology and a rigid layout, instead of being a generic
+# vocabulary for describing how to assemble software. However, it maps closely
+# to the format that the existing Baserock reference system definitions use.
+# We hope to produce a simpler and more flexible 2.x version of this schema in
+# future.
+
+
+# Partial OWL and RDF Schema glossary:
+#
+# domain: the set of objects that a can have a property.
+# range: the set of possible values for a property.
+#
+# ObjectProperty:
+# a property whose value must be another resource.
+# DatatypeProperty:
+# a property whose value is one of the datatype defined by XML Schema ("xsd")
+# FunctionalProperty:
+# a property which can only have one value per resource
+# InverseFunctionalProperty:
+# a property which can only have one resource per value
+
+
+# Metadata
+
+@prefix : <http://baserock.org/definitions/example-schema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+
+: a owl:Ontology ;
+ dc:title "Schema for Baserock data model" ;
+ dc:creator "The Baserock Project" ;
+ # Versioned according to Semantic Versioning http://www.semver.org/
+ owl:versionInfo "0.9.0" .
+
+
+## Entities
+
+# Source definitions
+
+:Morphology a owl:Class ;
+ rdfs:comment "A definition file." .
+
+:Cluster a owl:Class ;
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "Instructions for deploying one or systems." ;
+ owl:disjointWith :System, :Stratum, :Chunk .
+
+:System a owl:Class ;
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "A collection of strata in a form that can be executed." ;
+ owl:disjointWith :Cluster, :Stratum, :Chunk .
+
+:Stratum a owl:Class ;
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "A set of related chunks." ;
+ owl:disjointWith :Cluster, :System, :Chunk .
+
+:Chunk a owl:Class ;
+ rdfs:subClassOf :Morphology ;
+ rdfs:comment "An individual component, that can be built from a Git repository." ;
+ owl:disjointWith :Cluster, :System, :Stratum .
+
+# Container contents
+
+:SystemDeployment a owl:Class ;
+ rdfs:comment "Information for deploying one system of a cluster." .
+
+:ChunkReference a owl:Class ;
+ rdfs:comment "An instance of a chunk within a stratum." .
+
+# Products (for artifact split rules).
+
+:Artifact a owl:Class ;
+ rdfs:comment "One part of the result of building a morphology. The output of a build is split according to patterns, so there are multiple artifacts produced for a given source." .
+
+:StratumArtifact a owl:Class ;
+ rdfs:subClassOf :Artifact ;
+ rdfs:comment "Part of the result of building a stratum." ;
+ owl:disjointWith :ChunkArtifact.
+
+:ChunkArtifact a owl:Class ;
+ rdfs:subClassOf :Artifact ;
+ rdfs:comment "Part of the result of building a chunk." ;
+ owl:disjointWith :StratumArtifact.
+
+
+## Shared properties
+
+# 'name' becomes part of the URL when we import definition .morph files as RDF,
+# so it doesn't need a property.
+
+# Use dc:description for 'description', see:
+# http://dublincore.org/documents/2012/06/14/dcmi-terms/?v=terms#terms-description
+
+
+## Cluster-specific properties
+
+:containsSystemDeployment a owl:ObjectProperty ;
+ rdfs:domain :Cluster ;
+ rdfs:range :SystemDeployment ;
+ owl:minCardinality 1 .
+
+
+## SystemDeployment-specific properties
+
+:deploysSystem a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :SystemDeployment ;
+ rdfs:range :System .
+
+:hasLabel a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :SystemDeployment ;
+ rdfs:range xsd:string .
+
+:hasType a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :SystemDeployment ;
+ rdfs:range xsd:string ;
+ rdfs:comment "The .write extension used to perform the deployment." .
+
+:hasLocation a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :SystemDeployment ;
+ rdfs:range xsd:string ;
+ rdfs:comment "Deployment location. This is passed to the selected .write extension" .
+
+# FIXME: this is actually a key-value mapping, how do you do that in RDF properly?
+:hasConfigurationSetting a owl:DatatypeProperty ;
+ rdfs:domain :SystemDeployment ;
+ rdfs:range xsd:string ;
+ rdfs:comment "Arbitrary key=value pair that is set in the environment of the .configure and .write extensions during deployment." .
+
+
+## System-specific properties
+
+:containsStratumArtifact a owl:ObjectProperty ;
+ rdfs:domain :System ;
+ rdfs:range :StratumArtifact ;
+ owl:minCardinality 1 .
+
+# A build tool will only understand a certain set of architectures, but I think
+# that should not be part of the data model.
+:hasArchitecture a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :System ;
+ rdfs:range xsd:string .
+
+:hasConfigurationExtension a owl:DatatypeProperty ;
+ rdfs:domain :System ;
+ rdfs:range xsd:string ;
+ rdfs:comment "A .configure extension to be run when with system is deployed." .
+
+
+## Stratum-specific properties
+
+:producesStratumArtifact a owl:ObjectProperty , rdf:Seq ;
+ rdfs:domain :Stratum ;
+ rdfs:range :StratumArtifact ;
+ rdfs:comment "iDescribes how this artifact is split once all chunks are built." .
+
+:hasStratumBuildDependency a owl:ObjectProperty ;
+ rdfs:domain :Stratum ;
+ rdfs:range :Stratum .
+
+:containsChunkReference a owl:ObjectProperty ;
+ rdfs:domain :Stratum ;
+ rdfs:range :ChunkReference ;
+ owl:minCardinality 1 .
+
+
+## ChunkReference-specific properties
+
+:refersToChunk a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :ChunkReference ;
+ rdfs:range :Chunk .
+
+:repo a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :ChunkReference ;
+ rdfs:range xsd:string ;
+ rdfs:comment "Git repo that this chunk's build instructions should be run in. Can be a keyed URL according to the repo-alias mapping, which isn't currently defined in this data model." .
+
+:ref a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :ChunkReference ;
+ rdfs:range xsd:string ;
+ rdfs:comment "Ref of the Git repo that should be checked out before building. Usually a SHA1." .
+
+:unpetrifyRef a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :ChunkReference ;
+ rdfs:range xsd:string ;
+ rdfs:comment "Name of the ref that should be checked out (useful when 'ref' is a SHA1 to keep track of the actual branch/tag name)." .
+
+:hasChunkBuildDependency a owl:ObjectProperty ;
+ rdfs:domain :ChunkReference ;
+ rdfs:range :Chunk .
+
+:prefix a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :ChunkReference ;
+ rdfs:range xsd:string ;
+ rdfs:comment "Value of the PREFIX environment variable in the build environment (defaults to /usr)" .
+
+# FIXME: it's possible to specify in OWL that 'bootstrap' and 'normal' are the
+# only valid values.
+:buildMode a owl:DatatypeProperty , owl:FunctionalProperty ;
+ rdfs:domain :ChunkReference ;
+ rdfs:range xsd:string .
+
+
+## Chunk-specific properties
+
+# build-system isn't included here, as it overlaps with the *-commands
+# fields in an unfortunate way.
+
+# Note that representing lists of things in RDF is a bit of a pain.
+# http://smiy.sourceforge.net/olo/spec/orderedlistontology.html might
+# be worth investigating.
+
+:producesChunkArtifact a owl:ObjectProperty , rdf:Seq ;
+ rdfs:domain :Chunk ;
+ rdfs:range :ChunkArtifact ;
+ rdfs:comment "Describes how this artifact is split once built." .
+
+:maxJobs a owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range xsd:integer ;
+ rdfs:comment "Number of parallel jobs that can be run for this chunk. Only useful if set to 1, to mark components which have Makefiles that do not work with `make -j N`."
+
+:CommandSequence a owl:Class ;
+ rdfs:subClassOf rdf:Seq ;
+ rdfs:comment "An ordered sequence of commands." .
+
+:preConfigureCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:configureCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:postConfigureCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:preBuildCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:buildCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:postBuildCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:preInstallCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:installCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+:postInstallCommands a owl:ObjectProperty , owl:FunctionalProperty ;
+ rdfs:domain :Chunk ;
+ rdfs:range :CommandSequence .
+
+
+# Artifact properties
+
+:includes a owl:DatatypeProperty , rdf:Seq ;
+ rdfs:domain :Artifact ;
+ rdfs:range xsd:string ;
+ rdfs:comment "A regular expression pattern. The results of a build are matched against this pattern and any that match will be included in that artifact." .
diff --git a/schemas/chunk.json-schema b/schemas/chunk.json-schema
new file mode 100644
index 00000000..8de2fb5f
--- /dev/null
+++ b/schemas/chunk.json-schema
@@ -0,0 +1,116 @@
+$schema: http://json-schema.org/draft-04/schema#
+id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/chunk.json-schema
+
+description: |
+ This is a JSON-Schema description of a 'chunk' .morph file, which is part of
+ the Baserock definitions YAML representation format.
+
+ This JSON-Schema file is valid for VERSION 7 of the Baserock definitions
+ YAML serialisation format.
+
+ The Baserock definitions format is the recommended way of representing
+ Baserock definitions on disk. The actual data model is described separately.
+ See https://wiki.baserock.org/definitions for more information.
+
+ This schema is represented as YAML, so that it can be edited more easily.
+ You may need to convert to JSON if using a JSON-Schema tool that expects
+ its input to be an actual string containing data serialised as JSON.
+
+definitions:
+ # Corresponds to CommandSequence in Baserock data model.
+ command-sequence:
+ type: array
+ items: { type: string }
+
+ # Corresponds to DeviceNode in Baserock data model.
+ device-node:
+ type: object
+ required: [type, filename, gid, uid, major, minor, permissions]
+ properties:
+ type: { type: string }
+ filename: { type: string }
+ gid: { type: integer }
+ uid: { type: integer }
+ major: { type: integer }
+ minor: { type: integer }
+ permissions: { type: string }
+
+ # Defines one or more instances of ChunkArtifact from the Baserock data model.
+ split-rules:
+ type: array
+ items:
+ type: object
+
+ required: [artifact, include]
+ additionalProperties: false
+
+ properties:
+ artifact: {type: string}
+ include:
+ type: array
+ items:
+ type: string
+ format: regex
+
+ system-integration-commands:
+ type: object
+ patternProperties:
+ # The property name here should correspond to the name of the chunk's
+ # artifacts, probably the '-bins' artifact if you are using the normal
+ # splitting rules.
+ ^.*$:
+ type: object
+ patternProperties:
+ ^.*$:
+ $ref: "#/definitions/command-sequence"
+
+# Corresponds to Chunk in Baserock data model.
+type: object
+
+additionalProperties: false
+required: [ 'name', 'kind']
+
+properties:
+ name: { type: string }
+ kind: { enum: [ "chunk" ] }
+
+ description: { type: string }
+
+ build-system: { type: string }
+ max-jobs: { type: integer }
+
+ products:
+ $ref: "#/definitions/split-rules"
+
+ pre-configure-commands:
+ $ref: "#/definitions/command-sequence"
+ configure-commands:
+ $ref: "#/definitions/command-sequence"
+ post-configure-commands:
+ $ref: "#/definitions/command-sequence"
+ pre-build-commands:
+ $ref: "#/definitions/command-sequence"
+ build-commands:
+ $ref: "#/definitions/command-sequence"
+ post-build-commands:
+ $ref: "#/definitions/command-sequence"
+ pre-install-commands:
+ $ref: "#/definitions/command-sequence"
+ install-commands:
+ $ref: "#/definitions/command-sequence"
+ post-install-commands:
+ $ref: "#/definitions/command-sequence"
+ pre-strip-commands:
+ $ref: "#/definitions/command-sequence"
+ strip-commands:
+ $ref: "#/definitions/command-sequence"
+ post-strip-commands:
+ $ref: "#/definitions/command-sequence"
+
+ system-integration:
+ $ref: "#/definitions/system-integration-commands"
+
+ devices:
+ type: array
+ items:
+ $ref: "#/definitions/device-node"
diff --git a/schemas/cluster.json-schema b/schemas/cluster.json-schema
new file mode 100644
index 00000000..1a628c7f
--- /dev/null
+++ b/schemas/cluster.json-schema
@@ -0,0 +1,64 @@
+$schema: http://json-schema.org/draft-04/schema#
+id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/cluster.json-schema
+
+description:
+ This is a JSON-Schema description of a 'cluster' .morph file, which is part
+ of the Baserock definitions YAML representation format.
+
+ This JSON-Schema file is valid for VERSION 7 of the Baserock definitions
+ YAML serialisation format.
+
+ The Baserock definitions format is the recommended way of representing
+ Baserock definitions on disk. The actual data model is described separately.
+ See https://wiki.baserock.org/definitions for more information.
+
+ This schema is represented as YAML, so that it can be edited more easily.
+ You may need to convert to JSON if using a JSON-Schema tool that expects
+ its input to be an actual string containing data serialised as JSON.
+
+definitions:
+ # A reference to a System, plus one or more SystemDeployment for that system.
+ system-deployment-set:
+ type: object
+
+ required: [ 'morph', 'deploy' ]
+ additionalProperties: false
+
+ properties:
+ morph: { type: string }
+ deploy-defaults:
+ type: object
+ additionalProperties: true
+ deploy:
+ patternProperties:
+ ^.*$: { $ref: "#/definitions/system-deployment" }
+ subsystems:
+ type: array
+ items: { $ref: "#/definitions/system-deployment-set" }
+
+ # Corresponds to SystemDeployment in Baserock data model.
+ system-deployment:
+ type: object
+
+ required: [ 'type', 'location' ]
+ additionalProperties: true
+
+ properties:
+ type: { type: string }
+ location: { type: string }
+
+
+# Corresponds to Cluster in Baserock data model.
+type: object
+
+#required: [ 'name', 'kind', 'systems' ]
+additionalProperties: false
+
+properties:
+ name: { type: string }
+ kind: { enum: [ "cluster" ] }
+ description: { type: string }
+
+ systems:
+ type: array
+ items: { $ref: "#/definitions/system-deployment-set" }
diff --git a/schemas/defaults.json-schema b/schemas/defaults.json-schema
new file mode 100644
index 00000000..2f713425
--- /dev/null
+++ b/schemas/defaults.json-schema
@@ -0,0 +1,66 @@
+$schema: http://json-schema.org/draft-04/schema#
+id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/defaults.json-schema
+
+description: |
+ This is a JSON-Schema description of the DEFAULTS file specified in the
+ Baserock definitions format. DEFAULTS is a YAML file that contains global
+ defaults for a set of Baserock definitions.
+
+ This JSON-Schema file is valid for VERSION 7 of the Baserock definitions
+ YAML serialisation format.
+
+ The Baserock definitions YAML serialisation format is the recommended way of
+ representing Baserock definitions on disk. The actual data model is described
+ separately. See <https://wiki.baserock.org/definitions> for more information.
+
+ This schema is represented as YAML, so that it can be edited more easily.
+ You may need to convert to JSON if using a JSON-Schema tool that expects
+ its input to be an actual string containing data serialised as JSON.
+
+definitions:
+ command-sequence:
+ type: array
+ items: {type: string}
+
+ build-system:
+ type: object
+ additionalProperties: false
+ properties:
+ build-commands: {$ref: '#/definitions/command-sequence'}
+ configure-commands: {$ref: '#/definitions/command-sequence'}
+ install-commands: {$ref: '#/definitions/command-sequence'}
+ strip-commands: {$ref: '#/definitions/command-sequence'}
+
+ split-rules:
+ type: array
+ items:
+ type: object
+
+ required: [artifact, include]
+ additionalProperties: false
+
+ properties:
+ artifact: {type: string}
+ include:
+ type: array
+ items:
+ type: string
+ format: regex
+
+type: object
+additionalProperties: false
+
+properties:
+ # Predefined build systems.
+ build-systems:
+ type: object
+ patternProperties:
+ ^.*$: {$ref: '#/definitions/build-system'}
+
+ # Predefined artifact splitting rules.
+ split-rules:
+ type: object
+ additionalProperties: false
+ properties:
+ chunk: {$ref: '#/definitions/split-rules'}
+ stratum: {$ref: '#/definitions/split-rules'}
diff --git a/schemas/stratum.json-schema b/schemas/stratum.json-schema
new file mode 100644
index 00000000..0330f37d
--- /dev/null
+++ b/schemas/stratum.json-schema
@@ -0,0 +1,99 @@
+$schema: http://json-schema.org/draft-04/schema#
+id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/chunk.json-schema
+
+description: |
+ This is a JSON-Schema description of a 'stratum' .morph file, which is part
+ of the Baserock definitions YAML representation format.
+
+ This JSON-Schema file is valid for VERSION 7 of the Baserock definitions
+ YAML serialisation format.
+
+ The Baserock definitions format is the recommended way of representing
+ Baserock definitions on disk. The actual data model is described separately.
+ See https://wiki.baserock.org/definitions for more information.
+
+ This schema is represented as YAML, so that it can be edited more easily.
+ You may need to convert to JSON if using a JSON-Schema tool that expects
+ its input to be an actual string containing data serialised as JSON.
+
+definitions:
+ # Defines one or more instances of StratumArtifact from the Baserock data
+ # model.
+ split-rules:
+ type: array
+ items:
+ type: object
+
+ required: [artifact, include]
+ additionalProperties: false
+
+ properties:
+ artifact: {type: string}
+ include:
+ type: array
+ items:
+ type: string
+ format: regex
+
+ # Corresponds to ChunkReference in Baserock data model.
+ chunk-reference:
+ type: object
+
+ required: [ 'repo', 'ref' ]
+ additionalProperties: false
+
+ properties:
+ name: { type: string }
+ morph: { type: string }
+ repo: { type: string }
+ ref: { type: string }
+ unpetrify-ref: { type: string }
+ build-mode: { type: string }
+ prefix: { type: string }
+ build-system: { type: string }
+ build-depends:
+ type: array
+ items: { type: string }
+ artifacts:
+ type: object
+ # This defines which chunk artifacts go in which stratum artifact.
+ # E.g. "glibc-nss: build-essential-runtime" specifies the glibc-nss
+ # chunk artifact should go in the build-essential-runtime stratum
+ # artifact.
+ patternProperties:
+ ^.*$: { type: string }
+
+ # This doesn't need any special treatment in the Baserock data model because
+ # it's a link to another stratum definition, without any extra info.
+ stratum-reference:
+ type: object
+
+ required: [ 'morph' ]
+ additionalProperties: false
+
+ properties:
+ morph: { type: string }
+
+
+# Corresponds to Stratum in Baserock data model.
+type: object
+
+required: [ 'name', 'kind', 'chunks' ]
+additionalProperties: false
+
+properties:
+ name: { type: string }
+ kind: { enum: [ "stratum" ] }
+ description: { type: string }
+
+ build-depends:
+ type: array
+ items:
+ $ref: "#/definitions/stratum-reference"
+
+ products:
+ $ref: "#/definitions/split-rules"
+
+ chunks:
+ type: array
+ items: { $ref: "#/definitions/chunk-reference" }
diff --git a/schemas/system.json-schema b/schemas/system.json-schema
new file mode 100644
index 00000000..a2fc0c5d
--- /dev/null
+++ b/schemas/system.json-schema
@@ -0,0 +1,59 @@
+$schema: http://json-schema.org/draft-04/schema#
+id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/system.json-schema
+
+description: |
+ This is a JSON-Schema description of a 'system' .morph file, which is part of
+ the Baserock definitions YAML representation format.
+
+ This JSON-Schema file is valid for VERSION 7 of the Baserock definitions
+ YAML serialisation format.
+
+ The Baserock definitions format is the recommended way of representing
+ Baserock definitions on disk. The actual data model is described separately.
+ See https://wiki.baserock.org/definitions for more information.
+
+ This schema is represented as YAML, so that it can be edited more easily.
+ You may need to convert to JSON if using a JSON-Schema tool that expects
+ its input to be an actual string containing data serialised as JSON.
+
+definitions:
+ # In the Baserock data model, this becomes a list of links to StratumArtifact
+ # entities.
+ stratum-reference:
+ type: object
+
+ required: [ 'morph' ]
+ additionalProperties: false
+
+ properties:
+ name: { type: string }
+ morph: { type: string }
+ artifacts:
+ type: array
+ items: { type: string }
+
+
+# Corresponds to System in Baserock data model.
+system:
+type: object
+
+required: [ 'name', 'kind', 'strata' ]
+additionalProperties: false
+
+properties:
+ name: { type: string }
+ kind: { enum: [ "system" ] }
+ description: { type: string }
+
+ # Morph and YBD will only accept certain values for 'arch' based on
+ # hardcoded conditions in those tools.
+ arch: { type: string }
+
+ strata:
+ type: array
+ items:
+ $ref: "#/definitions/stratum-reference"
+
+ configuration-extensions:
+ type: array
+ items: { type: string }
diff --git a/scripts/yaml-jsonschema b/scripts/yaml-jsonschema
new file mode 100755
index 00000000..64f52a79
--- /dev/null
+++ b/scripts/yaml-jsonschema
@@ -0,0 +1,50 @@
+#!/usr/bin/env python
+# Copyright (C) 2015 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, see <http://www.gnu.org/licenses/>.
+
+
+'''A tool to validate YAML files against the JSON-Schema schemas.
+
+This wraps Python `jsonschema` module so that YAML schemas can be understood
+and YAML data can be validated.
+
+Usage: yaml-jsonschema SCHEMA INPUT1 [INPUT2, ...]
+
+'''
+
+
+import jsonschema
+import yaml
+
+import sys
+
+
+schema_file = sys.argv[1]
+input_files = sys.argv[2:]
+
+
+with open(schema_file) as f:
+ schema = yaml.load(f)
+
+
+for input_file in input_files:
+ with open(input_file) as f:
+ data = yaml.load(f)
+
+ try:
+ jsonschema.validate(data, schema)
+ print("%s: valid" % input_file)
+ except jsonschema.ValidationError as e:
+ # Print 'e' instead of 'e.message' for more information!
+ print("%s: %s" % (input_file, e.message))
diff --git a/strata/NetworkManager-common.morph b/strata/NetworkManager-common.morph
index d2eab3e9..661f210f 100644
--- a/strata/NetworkManager-common.morph
+++ b/strata/NetworkManager-common.morph
@@ -9,19 +9,22 @@ chunks:
repo: upstream:libndp
ref: f3a3a63d5b5abced8f75731d7b995606933c6e33
unpetrify-ref: v1.4
+ build-system: autotools
- name: readline6
repo: upstream:readline
ref: 7628b745a813aac53586b640da056a975f1c443e
unpetrify-ref: readline-6.3
+ build-system: autotools
- name: libgudev
repo: upstream:libgudev
ref: d722339aae9065a379acc0c421e8bbab866d5a38
unpetrify-ref: 230
+ build-system: autotools
- name: NetworkManager
morph: strata/NetworkManager-common/NetworkManager.morph
repo: upstream:NetworkManager
- ref: acdaf78a068b6c65ba799a7098b867953db4801c
- unpetrify-ref: 1.0.0
+ ref: c41be469ab107ea2b4813bf28a1618572b78aa6a
+ unpetrify-ref: 1.1.0-dev-1952-gc41be46
build-depends:
- libgudev
- libndp
diff --git a/strata/NetworkManager-common/NetworkManager.morph b/strata/NetworkManager-common/NetworkManager.morph
index 553c979b..9b9a93de 100644
--- a/strata/NetworkManager-common/NetworkManager.morph
+++ b/strata/NetworkManager-common/NetworkManager.morph
@@ -2,4 +2,8 @@ name: NetworkManager
kind: chunk
build-system: autotools
configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --with-session-tracking=systemd --disable-ppp --enable-more-warnings=yes
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --with-session-tracking=systemd --disable-ppp --enable-more-warnings=yes
+system-integration:
+ ModemManager-misc:
+ 00-enable-NetworkManager-unit:
+ - systemctl enable NetworkManager
diff --git a/strata/apache-httpd-server.morph b/strata/apache-httpd-server.morph
index 5aae0c65..3e32f7e5 100644
--- a/strata/apache-httpd-server.morph
+++ b/strata/apache-httpd-server.morph
@@ -4,7 +4,7 @@ description: apache http web server and some utilities related to it
build-depends:
- morph: strata/tools.morph
- morph: strata/pcre-utils.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: apr
morph: strata/apache-httpd-server/apr.morph
@@ -22,10 +22,12 @@ chunks:
repo: upstream:python-packages/psutil
ref: 2bc8555f0428af81c2d067aa76168ed7bc5e0179
unpetrify-ref: release-2.2.0
+ build-system: python-distutils
- name: mod_wsgi-metrics
repo: upstream:python-packages/mod_wsgi-metrics
ref: ec715eb593255229f9f45f3f323edbb845c691d8
unpetrify-ref: 1.1.1
+ build-system: python-distutils
build-depends:
- psutil
- name: mod_wsgi
diff --git a/strata/audio-bluetooth.morph b/strata/audio-bluetooth.morph
index ee1e537c..0bf1c220 100644
--- a/strata/audio-bluetooth.morph
+++ b/strata/audio-bluetooth.morph
@@ -9,10 +9,12 @@ chunks:
repo: upstream:libatomic_ops
ref: 0a58f5d63969c10d2141af89cb7a53df786909ab
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: alsa-lib
repo: upstream:alsa-lib
ref: 9cfd1faa27511edbb8bebbab85030125f33590ae
unpetrify-ref: v1.0.28
+ build-system: autotools
- name: alsa-utils
morph: strata/audio-bluetooth/alsa-utils.morph
repo: upstream:alsa-utils
@@ -37,6 +39,7 @@ chunks:
repo: upstream:dbus-glib
ref: 397e8297d433547c9bf4150ddd2b9e0b4c39628c
unpetrify-ref: dbus-glib_0.102
+ build-system: autotools
- name: bluez-tools
morph: strata/audio-bluetooth/bluez-tools.morph
repo: upstream:bluez-tools
@@ -48,6 +51,7 @@ chunks:
repo: upstream:obexd
ref: 4225280022c206762c91beee47c62d05e1baeacc
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- bluez
- libical
@@ -55,6 +59,7 @@ chunks:
repo: upstream:speex
ref: e5dc987a403426ee3d0d81768afffa0fe74e20fa
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: nohands
morph: strata/audio-bluetooth/nohands.morph
repo: upstream:nohands
@@ -67,6 +72,7 @@ chunks:
repo: upstream:mobile-broadband-provider-info
ref: 4ed19e11c2975105b71b956440acdb25d46a347d
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: ofono
morph: strata/audio-bluetooth/ofono.morph
repo: upstream:ofono
diff --git a/strata/baserock-import.morph b/strata/baserock-import.morph
index 5623886e..74fc9363 100644
--- a/strata/baserock-import.morph
+++ b/strata/baserock-import.morph
@@ -9,13 +9,16 @@ chunks:
repo: upstream:python-packages/ansicolor
ref: 9d3adbaff35bb6cde1d63414a8cc72f572c4d0ef
unpetrify-ref: 0.2.4
+ build-system: python-distutils
- name: requests-cache
repo: upstream:python-packages/requests-cache
ref: a1b5e65ccd715f1e8434f18f27913715340d6aaf
unpetrify-ref: 0.4.6
+ build-system: python-distutils
- name: baserock-import
repo: baserock:baserock/import
- ref: 461979515ca30cd8e5acdec4cdb5ca3adeb6a9e7
+ ref: f74e7e428325be1cb018898a52d0aed4aec7a549
unpetrify-ref: master
+ build-system: python-distutils
build-depends:
- ansicolor
diff --git a/strata/bsp-armv7l-altera-socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit.morph
new file mode 100644
index 00000000..403e04e1
--- /dev/null
+++ b/strata/bsp-armv7l-altera-socfpga-devkit.morph
@@ -0,0 +1,39 @@
+name: bsp-armv7l-altera-socfpga-devkit
+kind: stratum
+description: |
+ The platform dependent components required to boot the Altera Cortex-A9
+ HPS core on an Altera SoCFPGA development kit.
+build-depends:
+- morph: strata/coreutils-common.morph
+- morph: strata/tools.morph
+chunks:
+- name: u-boot-tools@socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph
+ repo: upstream:u-boot
+ ref: 905e8f9e53766e606bd4a0ed46d804889e613f32
+ unpetrify-ref: v2015.07-rc1
+- name: u-boot@socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph
+ repo: upstream:u-boot-socfpga
+ ref: 32c1d91bc0d10beca54c2dfc5b475d4ffeffc15a
+ unpetrify-ref: socfpga_v2013.01.01
+- name: bsp-support@socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph
+ repo: baserock:baserock/bsp-support
+ ref: 95e6be2188ad9dfd13cb8887cdc698519831871d
+ unpetrify-ref: master
+ build-depends:
+ - u-boot-tools@socfpga-devkit
+- name: preloader@socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph
+ repo: upstream:u-boot-socfpga
+ ref: 32c1d91bc0d10beca54c2dfc5b475d4ffeffc15a
+ unpetrify-ref: socfpga_v2013.01.01
+ build-depends:
+ - bsp-support@socfpga-devkit
+ - u-boot-tools@socfpga-devkit
+- name: linux-armv7l-altera-socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph
+ repo: upstream:linux
+ ref: e26081808edadfd257c6c9d81014e3b25e9a6118
+ unpetrify-ref: v4.1-rc4
diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph
new file mode 100644
index 00000000..2e206b4e
--- /dev/null
+++ b/strata/bsp-armv7l-altera-socfpga-devkit/bsp-support@socfpga-devkit.morph
@@ -0,0 +1,17 @@
+name: bsp-support@socfpga-devkit
+kind: chunk
+build-commands:
+# Modify auto-generated source files:
+- mv altera-socfpga/* .
+- for file in patches/*.diff; do patch -p 1 < "$file"; done
+- sed -i 's/^PRELOADER_SETTINGS_DIR := .*$/PRELOADER_SETTINGS_DIR := .\/hps_hps_0/' hardware-handoff/spl_bsp/Makefile
+- sed -i 's/^CROSS_COMPILE := .*$/CROSS_COMPILE := \/usr\/bin\//' hardware-handoff/spl_bsp/Makefile
+- mkenvimage -s 4096 -o socfpga-devkit-env.img socfpga-devkit-env.txt
+- dtc -f -I dts -O dtb dts-generated/socfpga-devkit.dts > socfpga-devkit.dtb
+install-commands:
+- mkdir -p "$DESTDIR/boot"
+- install -m 755 socfpga-devkit-env.img "$DESTDIR/boot"
+- install -m 755 socfpga-devkit.dtb "$DESTDIR/boot"
+# These files are required later, to be built against U-Boot:
+- mkdir -p "$DESTDIR/tmp/preloader"
+- cp -R ./hardware-handoff/* "$DESTDIR/tmp/preloader"
diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/device-tree-compiler.morph b/strata/bsp-armv7l-altera-socfpga-devkit/device-tree-compiler.morph
new file mode 100644
index 00000000..8abfafc8
--- /dev/null
+++ b/strata/bsp-armv7l-altera-socfpga-devkit/device-tree-compiler.morph
@@ -0,0 +1,6 @@
+name: device-tree-compiler
+kind: chunk
+build-commands:
+- make all
+install-commands:
+- make install DESTDIR="$DESTDIR" PREFIX="$PREFIX"
diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph
new file mode 100644
index 00000000..95684083
--- /dev/null
+++ b/strata/bsp-armv7l-altera-socfpga-devkit/linux-armv7l-altera-socfpga-devkit.morph
@@ -0,0 +1,34 @@
+name: linux-armv7l-socfpga-devkit
+kind: chunk
+configure-commands:
+- git status
+- make ARCH=arm socfpga_defconfig
+- scripts/config -e BTRFS_FS
+- scripts/config -e BTRFS_FS_POSIX_ACL
+- scripts/config -d BTRFS_FS_CHECK_INTEGRITY
+- scripts/config -e DEVTMPFS
+- scripts/config -e DEVTMPFS_MOUNT
+- scripts/config -e FUSE_FS
+- scripts/config -e OVERLAY_FS
+- scripts/config -e CONFIG_FHANDLE
+- scripts/config -e CGROUPS
+- scripts/config -e AUTOFS4_FS
+- scripts/config -e BLK_DEV_LOOP
+- scripts/config --set-str UEVENT_HELPER_PATH ''
+- scripts/config -e DM_SNAPSHOT
+- scripts/config -e IKCONFIG
+- scripts/config -e IKCONFIG_PROC
+- scripts/config -e SECCOMP
+- scripts/config -d DEBUG_STACK_TRACE
+- scripts/config -e FB_VESA
+- scripts/config -e VLAN_8021Q
+- scripts/config -e BRIDGE_VLAN_FILTERING
+- scripts/config -e IPV6
+- scripts/config -d MTD_NAND
+- yes '' | make oldconfig
+build-commands:
+- make ARCH=arm LOADADDR=0x8000 zImage dtbs $MAKEFLAGS
+install-commands:
+- mkdir -p "$DESTDIR"/boot
+- cp arch/arm/boot/zImage "$DESTDIR"/boot/zImage
+- cp arch/arm/boot/dts/socfpga_cyclone5*.dtb "$DESTDIR"/boot/
diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph
new file mode 100644
index 00000000..c61b10a7
--- /dev/null
+++ b/strata/bsp-armv7l-altera-socfpga-devkit/preloader@socfpga-devkit.morph
@@ -0,0 +1,17 @@
+name: preloader@socfpga-devkit
+kind: chunk
+configure-commands:
+- mkdir uboot-socfpga
+- find -maxdepth 1 | egrep -v '^./uboot-socfpga|\.$' | xargs -I {} mv {} uboot-socfpga
+- cp -R /tmp/preloader/spl_bsp/* .
+- cp -R /tmp/preloader/hps_hps_0 .
+build-commands:
+- make
+- mkimage -T socfpgaimage -d uboot-socfpga/spl/u-boot-spl.bin preloader.bin
+# Signed preloader needs to be duplicated four times
+# which U-Boot's mkimage tool doesn't support
+- dd if=/dev/zero of=socfpga-preloader.img bs=64K count=4
+- for i in $(seq 0 3); do dd if=preloader.bin of=socfpga-preloader.img bs=64K seek="$i" conv=notrunc; done
+install-commands:
+- mkdir -p "$DESTDIR/boot"
+- install -m 755 socfpga-preloader.img "$DESTDIR/boot"
diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph
new file mode 100644
index 00000000..f7d3f7cb
--- /dev/null
+++ b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot-tools@socfpga-devkit.morph
@@ -0,0 +1,14 @@
+name: u-boot-tools@socfpga-devkit
+kind: chunk
+configure-commands:
+- git status
+- make ARCH=arm socfpga_cyclone5_config
+build-commands:
+- make ARCH=arm tools
+install-commands:
+- mkdir -p "$DESTDIR$PREFIX/bin"
+- install -m 755 tools/img2brec.sh "$DESTDIR$PREFIX/bin/."
+- install -m 755 tools/jtagconsole "$DESTDIR$PREFIX/bin/."
+- install -m 755 tools/netconsole "$DESTDIR$PREFIX/bin/."
+- install -m 755 tools/mkenvimage "$DESTDIR$PREFIX/bin/."
+- install -m 755 tools/mkimage "$DESTDIR$PREFIX/bin/."
diff --git a/strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph
new file mode 100644
index 00000000..2b7ce450
--- /dev/null
+++ b/strata/bsp-armv7l-altera-socfpga-devkit/u-boot@socfpga-devkit.morph
@@ -0,0 +1,9 @@
+name: u-boot@socfpga-devkit
+kind: chunk
+configure-commands:
+- make ARCH=arm socfpga_cyclone5_config
+build-commands:
+- make ARCH=arm
+install-commands:
+- mkdir -p "$DESTDIR/boot"
+- install -m 755 u-boot.img "$DESTDIR/boot"
diff --git a/strata/bsp-jetson/bsp-support.morph b/strata/bsp-jetson/bsp-support.morph
deleted file mode 100644
index 5adb02e4..00000000
--- a/strata/bsp-jetson/bsp-support.morph
+++ /dev/null
@@ -1,6 +0,0 @@
-name: bsp-support
-kind: chunk
-install-commands:
-- install -o 0 -g 0 -m 644 -D nv-ondemand-cpufreq-governor.service "$DESTDIR/usr/lib/systemd/system/nv-ondemand-cpufreq-governor.service"
-- install -d "$DESTDIR/usr/lib/systemd/system/sysinit.target.wants"
-- ln -s /usr/lib/systemd/system/nv-ondemand-cpufreq-governor.service "$DESTDIR/usr/lib/systemd/system/sysinit.target.wants/nv-ondemand-cpufreq-governor.service"
diff --git a/strata/bsp-x86_64-generic.morph b/strata/bsp-x86_64-generic.morph
index 31d8374c..db08f54b 100644
--- a/strata/bsp-x86_64-generic.morph
+++ b/strata/bsp-x86_64-generic.morph
@@ -9,9 +9,9 @@ build-depends:
chunks:
- name: linux-x86-64-generic
morph: strata/bsp-x86_64-generic/linux-x86-64-generic.morph
- repo: upstream:linux
- ref: 39a8804455fb23f09157341d3ba7db6d7ae6ee76
- unpetrify-ref: v4.0
+ repo: upstream:linux-stable
+ ref: 64291f7db5bd8150a74ad2036f1037e6a0428df2
+ unpetrify-ref: v4.2
- name: nasm
morph: strata/bsp-x86_64-generic/nasm.morph
repo: upstream:nasm
diff --git a/strata/build-essential.morph b/strata/build-essential.morph
index a774e420..78063ce4 100644
--- a/strata/build-essential.morph
+++ b/strata/build-essential.morph
@@ -269,6 +269,7 @@ chunks:
repo: upstream:zlib
ref: 50893291621658f355bc5b4d450a8d06a563053d
unpetrify-ref: v1.2.8
+ build-system: autotools
build-depends:
- stage2-binutils
- stage2-busybox
diff --git a/strata/build-essential/glibc.morph b/strata/build-essential/glibc.morph
index 54dbbd9c..6c87c5d9 100644
--- a/strata/build-essential/glibc.morph
+++ b/strata/build-essential/glibc.morph
@@ -33,6 +33,7 @@ products:
- (usr/)?lib(32|64)?/.*\.o
- artifact: glibc-locale
include:
+ - (usr/)?lib/locale/.*
- (usr/)?share/locale/.*
- (usr/)?share/i18n/.*
- (usr/)?share/zoneinfo/.*
@@ -69,6 +70,7 @@ build-commands:
install-commands:
- cd o && make install_root="$DESTDIR" localtime=UTC install
+- cd o && make install_root="$DESTDIR" localtime=UTC localedata/install-locales
- mkdir -p "$DESTDIR/etc"
- mkdir -p "$DESTDIR/etc/ld.so.conf.d"
- |
diff --git a/strata/build-essential/stage2-make.morph b/strata/build-essential/stage2-make.morph
index 0b05581c..af5e5347 100644
--- a/strata/build-essential/stage2-make.morph
+++ b/strata/build-essential/stage2-make.morph
@@ -3,7 +3,7 @@ kind: chunk
build-system: autotools
configure-commands:
- STAGE2_SYSROOT="$(dirname $(pwd))" CPPFLAGS="--sysroot=$STAGE2_SYSROOT" CXX=false
- LDFLAGS="--sysroot=$STAGE2_SYSROOT" ./configure --prefix="$PREFIX" --disable-nls
+ LDFLAGS="--sysroot=$STAGE2_SYSROOT" ./configure --prefix="$PREFIX" --disable-nls --without-guile
--build=$(sh config/config.guess) --host=$TARGET_STAGE1
build-commands:
- STAGE2_SYSROOT="$(dirname $(pwd))" make
diff --git a/strata/ceph-service.morph b/strata/ceph-service.morph
index 4ab9d432..c428a1ba 100644
--- a/strata/ceph-service.morph
+++ b/strata/ceph-service.morph
@@ -18,16 +18,19 @@ chunks:
repo: upstream:libunwind
ref: d7322f0f64dab715c4feb5f08edef5660d8719c0
unpetrify-ref: v1.1
+ build-system: autotools
- name: gperftools
repo: upstream:gperftools
ref: 846b775dfadb77901202ae7ddbac30ad1de7df01
unpetrify-ref: gperftools-2.2
+ build-system: autotools
build-depends:
- libunwind
- name: snappy
repo: upstream:snappy-git
ref: 1ff9be9b8fafc8528ca9e055646f5932aa5db9c4
unpetrify-ref: master
+ build-system: autotools
- name: leveldb
morph: strata/ceph-service/leveldb.morph
repo: upstream:leveldb
@@ -40,6 +43,7 @@ chunks:
repo: upstream:libeditline-tarball
ref: 7503ff5f8610734521f40e276b59b3b6291830e7
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: boost
morph: strata/ceph-service/boost.morph
repo: upstream:boost-tarball
diff --git a/strata/cloudinit-support.morph b/strata/cloudinit-support.morph
index 9c89c7e4..4cb15542 100644
--- a/strata/cloudinit-support.morph
+++ b/strata/cloudinit-support.morph
@@ -3,7 +3,7 @@ kind: stratum
description: A stratum with cloudinit to fit a system in the OpenStack cloud.
build-depends:
- morph: strata/build-essential.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
- morph: strata/python-common.morph
- morph: strata/foundation.morph
chunks:
@@ -11,6 +11,7 @@ chunks:
repo: upstream:python-cheetah
ref: 831aa6b99d9b4fb012ee644d8e80e0bc0eb6d6ed
unpetrify-ref: baserock/morph
+ build-system: python-distutils
- name: cloud-init
morph: strata/cloudinit-support/cloud-init.morph
repo: upstream:cloud-init
diff --git a/strata/compilers-extra.morph b/strata/compilers-extra.morph
new file mode 100644
index 00000000..361d9387
--- /dev/null
+++ b/strata/compilers-extra.morph
@@ -0,0 +1,18 @@
+name: compilers-extra
+kind: stratum
+description: |
+ Extra compilers in addition to the ones in build-essential
+build-depends:
+- morph: strata/llvm-common.morph
+- morph: strata/python2-core.morph
+chunks:
+- name: clang
+ morph: strata/compilers-extra/clang.morph
+ repo: upstream:clang
+ ref: 40b68b4c02b9d9e1e4138815747adf5589496240
+ unpetrify-ref: release_37
+- name: compiler-rt
+ morph: strata/compilers-extra/compiler-rt.morph
+ repo: upstream:compiler-rt
+ ref: b5214093d4c91ed5352d35ee9126665fabfa97fe
+ unpetrify-ref: release_37
diff --git a/strata/compilers-extra/clang.morph b/strata/compilers-extra/clang.morph
new file mode 100644
index 00000000..fb7c1ff6
--- /dev/null
+++ b/strata/compilers-extra/clang.morph
@@ -0,0 +1,10 @@
+name: clang
+kind: chunk
+build-system: cmake
+configure-commands:
+- mkdir o
+- cd o && cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_BUILD_TYPE=Release ..
+build-commands:
+- cd o && make
+install-commands:
+- cd o && make DESTDIR="$DESTDIR" install
diff --git a/strata/compilers-extra/compiler-rt.morph b/strata/compilers-extra/compiler-rt.morph
new file mode 100644
index 00000000..a1c9085b
--- /dev/null
+++ b/strata/compilers-extra/compiler-rt.morph
@@ -0,0 +1,10 @@
+name: compiler-rt
+kind: chunk
+build-system: cmake
+configure-commands:
+- mkdir o
+- cd o && cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_BUILD_TYPE=Release ..
+build-commands:
+- cd o && make
+install-commands:
+- cd o && make DESTDIR="$DESTDIR" install
diff --git a/strata/connectivity.morph b/strata/connectivity.morph
index dbd4a263..124b4cac 100644
--- a/strata/connectivity.morph
+++ b/strata/connectivity.morph
@@ -7,6 +7,7 @@ chunks:
repo: upstream:libnl
ref: a2c4bd8f094a7247903578860a9c42049991860b
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: wpa_supplicant
morph: strata/connectivity/wpa_supplicant.morph
repo: upstream:hostap
@@ -18,3 +19,4 @@ chunks:
repo: upstream:iptables
ref: 482c6d3731e2681cb4baae835c294840300197e6
unpetrify-ref: v1.4.21
+ build-system: autotools
diff --git a/strata/core.morph b/strata/core.morph
index 9e4fd4e1..66880527 100644
--- a/strata/core.morph
+++ b/strata/core.morph
@@ -5,30 +5,11 @@ description: Core components of a Baserock base system that are build tools requ
build-depends:
- morph: strata/build-essential.morph
chunks:
-- name: sqlite3
- repo: upstream:sqlite3
- ref: 24adc227bc29cd17e39df097fbca389c7724cd14
- unpetrify-ref: sqlite-autoconf-3080801
-- name: cmake
- morph: strata/core/cmake.morph
- repo: upstream:cmake
- ref: 732d8a467ab8a295b1bbf580f865980f8a1a9b29
- unpetrify-ref: v3.2.1
- name: gdbm
morph: strata/core/gdbm.morph
repo: upstream:gdbm-tarball
ref: e5faeaaf75ecfb705a9b643b3e4cb881ebb69f48
unpetrify-ref: gdbm-1.11
-- name: mini-utils
- morph: strata/core/mini-utils.morph
- repo: baserock:baserock/mini-utils
- ref: 5293265b29bbf468ab9d7f3302b19dbc81d0f8b8
- unpetrify-ref: master
-- name: ncurses
- morph: strata/core/ncurses.morph
- repo: upstream:ncurses
- ref: f67398afa6a76fbc902cc0cea963d5151fa2a953
- unpetrify-ref: ncurses-5.9-20150131
- name: perl
morph: strata/core/perl.morph
repo: upstream:perl
@@ -36,6 +17,11 @@ chunks:
unpetrify-ref: v5.22.0
build-depends:
- gdbm
+- name: ncurses
+ morph: strata/core/ncurses.morph
+ repo: upstream:ncurses
+ ref: f67398afa6a76fbc902cc0cea963d5151fa2a953
+ unpetrify-ref: ncurses-5.9-20150131
- name: texinfo-tarball
morph: strata/core/texinfo-tarball.morph
repo: upstream:texinfo-tarball
@@ -64,6 +50,7 @@ chunks:
repo: upstream:help2man
ref: 83bab7e2e8e24a380266a9a247c029c49b0de666
unpetrify-ref: baserock/v1.46.5
+ build-system: autotools
build-depends:
- autoconf-tarball
- automake
@@ -89,6 +76,7 @@ chunks:
repo: upstream:file
ref: f69c3fd9bcb108292e7887dd889e8b49f68c4a52
unpetrify-ref: file-5.22
+ build-system: autotools
- name: libexpat
morph: strata/core/libexpat.morph
repo: upstream:libexpat
@@ -99,27 +87,6 @@ chunks:
- automake
- file
- libtool-tarball
-- name: gettext-tarball
- morph: strata/core/gettext-tarball.morph
- repo: upstream:gettext-tarball
- ref: 482840e61f86ca321838a91e902c41d40c098bbb
- unpetrify-ref: gettext-0.19.4
- build-depends:
- - libexpat
-- name: bash
- morph: strata/core/bash.morph
- repo: upstream:bash
- ref: 3590145af6f1c9fa321dff231f69ae696e7e740b
- unpetrify-ref: baserock/bash-4.3-patch-27
-- name: flex
- morph: strata/core/flex.morph
- repo: upstream:flex
- ref: de10f98e8a2dc2a021796811490d0f30c3cd90bf
- unpetrify-ref: baserock/build-essential
- build-depends:
- - automake
- - file
- - gettext-tarball
- name: openssl-new
morph: strata/core/openssl-new.morph
repo: upstream:openssl-new
@@ -147,11 +114,16 @@ chunks:
build-depends:
- autoconf
- automake
-- name: cpython
- morph: strata/core/cpython.morph
+- name: sqlite3
+ repo: upstream:sqlite3
+ ref: 24adc227bc29cd17e39df097fbca389c7724cd14
+ unpetrify-ref: sqlite-autoconf-3080801
+ build-system: autotools
+- name: python3
+ morph: strata/core/python3.morph
repo: upstream:cpython
- ref: 57af3f22d11600ca98c0c9073d0b3b57d43f7c4b
- unpetrify-ref: v2.7.10
+ ref: 3f1e8a3de39ff8a807720d57f49a91d7449435ad
+ unpetrify-ref: v3.4.3
build-depends:
- openssl-new
- bzip2
@@ -160,15 +132,58 @@ chunks:
- sqlite3
- ncurses
- readline
-- name: cython
- repo: upstream:cython
- ref: 4dd8e762fa51d01775506fbbc102c45dbcea065d
- unpetrify-ref: 0.22
+- name: ca-certificates
+ morph: strata/core/ca-certificates.morph
+ repo: upstream:ca-certificates
+ ref: 642c21872876ce2f9ec323b1df44f1cd6c47e91c
+ unpetrify-ref: baserock/debian/20150426
+ build-depends:
+ - automake
+ - python3
+- name: curl
+ morph: strata/core/curl.morph
+ repo: upstream:curl
+ ref: 202aa9f7758636730299b86715d924f54468a908
+ unpetrify-ref: curl-7_38_0
+ build-depends:
+ - autoconf
+ - automake
+ - file
+ - libtool-tarball
+ - openssl-new
+- name: gettext-tarball
+ morph: strata/core/gettext-tarball.morph
+ repo: upstream:gettext-tarball
+ ref: 482840e61f86ca321838a91e902c41d40c098bbb
+ unpetrify-ref: gettext-0.19.4
+ build-depends:
+ - libexpat
+- name: git-minimal
+ morph: strata/core/git-minimal.morph
+ repo: upstream:git
+ ref: 9874fca7122563e28d699a911404fc49d2a24f1c
+ unpetrify-ref: v2.3.0
+ build-depends:
+ - autoconf
+ - python3
+ - curl
+ - gettext-tarball
+ - libexpat
+ - openssl-new
+- name: flex
+ morph: strata/core/flex.morph
+ repo: upstream:flex
+ ref: de10f98e8a2dc2a021796811490d0f30c3cd90bf
+ unpetrify-ref: baserock/build-essential
build-depends:
- - cpython
-# Note: bison's version number must be set in bison's chunk morph,
-# so if you update bison be sure to also update the version number
-# in strata/core/bison.morph
+ - automake
+ - file
+ - gettext-tarball
+- name: mini-utils
+ morph: strata/core/mini-utils.morph
+ repo: baserock:baserock/mini-utils
+ ref: 5293265b29bbf468ab9d7f3302b19dbc81d0f8b8
+ unpetrify-ref: master
- name: bison
morph: strata/core/bison.morph
repo: upstream:bison
@@ -179,11 +194,9 @@ chunks:
- automake
- flex
- gettext-tarball
+ - git-minimal
- help2man
- mini-utils
-# Note: patch's version number must be set in patch's chunk morph,
-# so if you update patch be sure to also update the version number
-# in strata/core/patch.morph
- name: patch
morph: strata/core/patch.morph
repo: upstream:patch
@@ -192,21 +205,20 @@ chunks:
build-depends:
- autoconf
- automake
- - mini-utils
- bison
+ - git-minimal
+ - mini-utils
- name: xz
repo: upstream:xz
ref: a0cd05ee71d330b79ead6eb9222e1b24e1559d3a
unpetrify-ref: v5.2.0
+ build-system: autotools
build-depends:
- autoconf
- automake
- file
- gettext-tarball
- libtool-tarball
-# Note: libtool's version number must be set in libtool's chunk morph,
-# so if you update libtool be sure to also update the version number
-# in strata/core/libtool.morph
- name: libtool
morph: strata/core/libtool.morph
repo: upstream:libtool
@@ -217,73 +229,10 @@ chunks:
- automake
- file
- help2man
+ - git-minimal
- patch
- texinfo-tarball
- xz
-- name: libxml2
- repo: upstream:libxml2
- ref: ee8f1d4cda8dc1a6f2c515fe234f7bc89cdc9f80
- unpetrify-ref: baserock/morph
- build-depends:
- - autoconf
- - automake
- - file
- - cpython
- - libtool
- - xz
-- name: ca-certificates
- morph: strata/core/ca-certificates.morph
- repo: upstream:ca-certificates
- ref: e9b06b26d9e57444e74a5cb6beca3f12726fc3c6
- unpetrify-ref: baserock/debian/20140325
- build-depends:
- - automake
- - cpython
-- name: curl
- morph: strata/core/curl.morph
- repo: upstream:curl
- ref: 202aa9f7758636730299b86715d924f54468a908
- unpetrify-ref: curl-7_38_0
- build-depends:
- - autoconf
- - automake
- - file
- - libtool
- - openssl-new
- - ca-certificates
-- name: XML-Parser
- repo: upstream:XML-Parser
- ref: e1a3ec157140a699e3020836475a0df622f70f1b
- unpetrify-ref: baserock/morph
- build-depends:
- - libexpat
- - perl
-- name: git
- morph: strata/core/git.morph
- repo: upstream:git
- ref: 9874fca7122563e28d699a911404fc49d2a24f1c
- unpetrify-ref: v2.3.0
- build-depends:
- - autoconf
- - cpython
- - curl
- - gettext-tarball
- - libexpat
- - openssl-new
-- name: gperf
- morph: strata/core/gperf.morph
- repo: upstream:gperf
- ref: 5094e4a539adf845111013f82c2c4fcaec637983
- unpetrify-ref: baserock/morph
-- name: intltool
- repo: upstream:intltool
- ref: 12f04c88be9ff8a578d8fd6990ee2448c66dc5f4
- unpetrify-ref: baserock/morph
- build-depends:
- - XML-Parser
- - autoconf
- - automake
- - perl
- name: pkg-config
morph: strata/core/pkg-config.morph
repo: upstream:pkg-config
@@ -358,45 +307,106 @@ chunks:
- acl
- linux-pam
- libcap2
-# Note: util-linux's version number must be set in util-linux's chunk morph,
-# so if you update util-linux be sure to also update the version number
-# in strata/core/util-linux.morph
- name: util-linux
morph: strata/core/util-linux.morph
repo: upstream:util-linux
- ref: 34760e62e0d5a25262a6aa801b2f1df61216363f
- unpetrify-ref: v2.26.1
+ ref: cd150a429d15a7c96918aa2432532ced0bd27465
+ unpetrify-ref: v2.27
build-depends:
- autoconf
- automake
- gettext-tarball
+ - git-minimal
- libtool
- pkg-config
- linux-pam
- shadow
-- name: bc
- repo: upstream:bc-tarball
- ref: 0956d119432ff6a2e85bae1fa336df799cad70b0
- unpetrify-ref: baserock/morph
+- name: e2fsprogs
+ morph: strata/core/e2fsprogs.morph
+ repo: upstream:e2fsprogs
+ ref: 6a3741ad293031447b95b88431eafa77401a8987
+ unpetrify-ref: v1.42.12
build-depends:
- - flex
- - texinfo-tarball
+ - pkg-config
+ - util-linux
+ - file
+- name: libxml2
+ repo: upstream:libxml2
+ ref: f4e5a6994ed230dfa3fb5b5c3fd94c4993ef1ba7
+ unpetrify-ref: v2.9.1
+ build-system: autotools
+ build-depends:
+ - autoconf
+ - automake
+ - file
+ - python3
+ - libtool
+ - xz
- name: libxslt
repo: upstream:libxslt
ref: 73e08bf7c36a9145d38f51d37e66529b873c011a
unpetrify-ref: master
+ build-system: autotools
build-depends:
- autoconf
- libtool
- automake
- file
- libxml2
-- name: e2fsprogs
- morph: strata/core/e2fsprogs.morph
- repo: upstream:e2fsprogs
- ref: 6a3741ad293031447b95b88431eafa77401a8987
- unpetrify-ref: v1.42.12
+- name: XML-Parser
+ repo: upstream:XML-Parser
+ ref: e1a3ec157140a699e3020836475a0df622f70f1b
+ unpetrify-ref: baserock/morph
+ build-system: cpan
build-depends:
- - pkg-config
- - util-linux
- - file
+ - libexpat
+ - perl
+- name: intltool
+ repo: upstream:intltool
+ ref: 12f04c88be9ff8a578d8fd6990ee2448c66dc5f4
+ unpetrify-ref: baserock/morph
+ build-system: autotools
+ build-depends:
+ - XML-Parser
+ - autoconf
+ - automake
+ - perl
+- name: bash
+ morph: strata/core/bash.morph
+ repo: upstream:bash
+ ref: 3590145af6f1c9fa321dff231f69ae696e7e740b
+ unpetrify-ref: baserock/bash-4.3-patch-27
+- name: cmake
+ morph: strata/core/cmake.morph
+ repo: upstream:cmake
+ ref: 732d8a467ab8a295b1bbf580f865980f8a1a9b29
+ unpetrify-ref: v3.2.1
+- name: cython
+ repo: upstream:cython
+ ref: 4dd8e762fa51d01775506fbbc102c45dbcea065d
+ unpetrify-ref: 0.22
+ build-system: python-distutils
+ build-depends:
+ - python3
+- name: gperf
+ morph: strata/core/gperf.morph
+ repo: upstream:gperf
+ ref: 5094e4a539adf845111013f82c2c4fcaec637983
+ unpetrify-ref: baserock/morph
+- name: bc
+ repo: upstream:bc-tarball
+ ref: 0956d119432ff6a2e85bae1fa336df799cad70b0
+ unpetrify-ref: baserock/morph
+ build-system: autotools
+ build-depends:
+ - flex
+ - texinfo-tarball
+- name: libseccomp
+ repo: upstream:libseccomp
+ ref: 7932b4fa24c1add0d7a315de8387d216334fbcf7
+ unpetrify-ref: v2.2.3
+ build-system: autotools
+ build-depends:
+ - autoconf
+ - automake
+ - libtool
diff --git a/strata/core/bison.morph b/strata/core/bison.morph
index 352f5fcf..7b880cb6 100644
--- a/strata/core/bison.morph
+++ b/strata/core/bison.morph
@@ -1,6 +1,6 @@
name: bison
kind: chunk
build-system: autotools
-pre-configure-commands:
-- echo "3.0.2" > .tarball-version
+configure-commands:
- sh bootstrap --skip-po --no-git --gnulib-srcdir=gnulib
+- ./configure --prefix="$PREFIX"
diff --git a/strata/core/ca-certificates.morph b/strata/core/ca-certificates.morph
index 5bdb18ea..0497b283 100644
--- a/strata/core/ca-certificates.morph
+++ b/strata/core/ca-certificates.morph
@@ -4,19 +4,22 @@ build-system: manual
build-commands:
- make
install-commands:
+#
+# ca-certificates makefile does not properly take responsibility
+# for creating the paths it installs to
+#
- mkdir -p "$DESTDIR"/usr/share/ca-certificates
- mkdir -p "$DESTDIR"/usr/sbin
- make DESTDIR="$DESTDIR" install
- mkdir "$DESTDIR"/etc
+#
+# We create the config with all certificates provided
+# by the debian package enabled. Some systems may want
+# to override the ca-certificates.conf file.
+#
- |
cd "$DESTDIR"/usr/share/ca-certificates
find * -type f > "$DESTDIR"/etc/ca-certificates.conf
-- |
- export CERTSCONF="$DESTDIR/etc/ca-certificates.conf"
- export CERTSDIR="$DESTDIR/usr/share/ca-certificates"
- export ETCCERTSDIR="$DESTDIR/etc/ssl/certs"
- mkdir -p "$ETCCERTSDIR"
- ./sbin/update-ca-certificates
system-integration:
ca-certificates-misc:
00-update-ca-certs:
diff --git a/strata/core/curl.morph b/strata/core/curl.morph
index e245688c..d445ee00 100644
--- a/strata/core/curl.morph
+++ b/strata/core/curl.morph
@@ -1,8 +1,14 @@
name: curl
kind: chunk
configure-commands:
+#
+# Curl must be configured --with-ca-bundle in order to find the
+# correct certificate bundle at runtime, which is later generated
+# by update-ca-certificates. Other applications such as git, rely
+# on curl knowing the default location of the certs.
+#
- ./buildconf
-- ./configure --disable-manual --prefix="$PREFIX"
+- ./configure --disable-manual --prefix="$PREFIX" --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
build-commands:
- make
install-commands:
diff --git a/strata/core/e2fsprogs.morph b/strata/core/e2fsprogs.morph
index 55ac486c..6f32ad38 100644
--- a/strata/core/e2fsprogs.morph
+++ b/strata/core/e2fsprogs.morph
@@ -9,6 +9,11 @@ configure-commands:
- |
./configure --prefix="$PREFIX" --sysconfdir=/etc \
--disable-libuuid --disable-uuidd --disable-libblkid
+build-commands:
+# Without this, the static archive libcom_err is generated without
+# position independant code; later when samba tries to create a shared
+# library linking to this archive, we get errors.
+- make CFLAGS="-g -O2 -DHAVE_CONFIG_H -fPIC"
install-commands:
# e2fsprogs also includes tools that are provided by util-linux, so we
# need to selectively exclude them. Removing them directly from DESTDIR
diff --git a/strata/core/git.morph b/strata/core/git-minimal.morph
index 765f4a5c..8b562ef6 100644
--- a/strata/core/git.morph
+++ b/strata/core/git-minimal.morph
@@ -1,4 +1,4 @@
-name: git
+name: git-minimal
kind: chunk
build-system: autotools
pre-configure-commands:
diff --git a/strata/core/libtool.morph b/strata/core/libtool.morph
index d4465c31..04263ac9 100644
--- a/strata/core/libtool.morph
+++ b/strata/core/libtool.morph
@@ -2,5 +2,4 @@ name: libtool
kind: chunk
build-system: autotools
pre-configure-commands:
-- echo "2.4.6" > .tarball-version
- ./bootstrap
diff --git a/strata/core/linux-pam.morph b/strata/core/linux-pam.morph
index 71ad98e9..e6cbf642 100644
--- a/strata/core/linux-pam.morph
+++ b/strata/core/linux-pam.morph
@@ -6,4 +6,4 @@ pre-configure-commands:
configure-commands:
# libdir has to be specified or it'll go into lib64. It has to be /lib because
# systemd installs its pam library into /lib/security.
-- ./configure --prefix="$PREFIX" --libdir="/lib"
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc --libdir="/lib"
diff --git a/strata/core/patch.morph b/strata/core/patch.morph
index 48c9c437..b7f146ef 100644
--- a/strata/core/patch.morph
+++ b/strata/core/patch.morph
@@ -2,5 +2,4 @@ name: patch
kind: chunk
build-system: autotools
pre-configure-commands:
-- echo "2.7.1" > .tarball-version
- ./bootstrap --skip-po
diff --git a/strata/core/python-setuptools.morph b/strata/core/python-setuptools.morph
deleted file mode 100644
index fa436c60..00000000
--- a/strata/core/python-setuptools.morph
+++ /dev/null
@@ -1,6 +0,0 @@
-name: python-setuptools
-kind: chunk
-build-commands:
-- python setup.py build
-install-commands:
-- python setup.py install --prefix=/usr --root "$DESTDIR"
diff --git a/strata/core/python3.morph b/strata/core/python3.morph
new file mode 100644
index 00000000..0d730bc9
--- /dev/null
+++ b/strata/core/python3.morph
@@ -0,0 +1,13 @@
+name: python3
+kind: chunk
+build-system: autotools
+configure-commands:
+- |
+ ./configure --prefix="$PREFIX" \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --with-system-expat \
+ --with-system-ffi
+post-install-commands:
+- test -x "$DESTDIR"/"$PREFIX"/bin/python || ln -s python3.4 "$DESTDIR"/"$PREFIX"/bin/python
+- test -x "$DESTDIR"/"$PREFIX"/bin/python3 || ln -s python3.4 "$DESTDIR"/"$PREFIX"/bin/python3
diff --git a/strata/core/readline.morph b/strata/core/readline.morph
index 511e124c..08c9586c 100644
--- a/strata/core/readline.morph
+++ b/strata/core/readline.morph
@@ -4,3 +4,5 @@ build-system: autotools
pre-configure-commands:
- cp /usr/share/automake*/config.guess support
- cp /usr/share/automake*/config.sub support
+build-commands:
+- make SHLIB_LIBS=-lncurses
diff --git a/strata/core/util-linux.morph b/strata/core/util-linux.morph
index 290283d1..1ec7f8e2 100644
--- a/strata/core/util-linux.morph
+++ b/strata/core/util-linux.morph
@@ -2,7 +2,6 @@ name: util-linux
kind: chunk
build-system: autotools
pre-configure-commands:
-- echo "2.26.1" > .tarball-version
- ./autogen.sh
configure-commands:
# Installing to /bin so that they overwrite busybox login.
diff --git a/strata/coreutils-common/coreutils.morph b/strata/coreutils-common/coreutils.morph
index 19542d79..3071cb9e 100644
--- a/strata/coreutils-common/coreutils.morph
+++ b/strata/coreutils-common/coreutils.morph
@@ -1,9 +1,10 @@
name: coreutils
kind: chunk
build-system: autotools
-configure-commands:
+pre-configure-commands:
- sed -i -e '/^buildreq="/,/^"/{/rsync/d}' bootstrap.conf
- bash bootstrap --skip-po --no-git --gnulib-srcdir=gnulib
+configure-commands:
- FORCE_UNSAFE_CONFIGURE=1 ./configure --prefix="$PREFIX" --disable-nls
build-commands:
- make WERROR_CFLAGS=
diff --git a/strata/cross-bootstrap.morph b/strata/cross-bootstrap.morph
index ffed2e66..9248101a 100644
--- a/strata/cross-bootstrap.morph
+++ b/strata/cross-bootstrap.morph
@@ -3,7 +3,7 @@ kind: stratum
description: The minimal development tools to build a baserock devel system
build-depends:
- morph: strata/core.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: groff
morph: strata/cross-bootstrap/groff.morph
@@ -21,6 +21,7 @@ chunks:
repo: upstream:linux-user-chroot
ref: d25cc110f69e6e71a95b4ac532dcfc5423d4a16b
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: rsync
morph: strata/cross-bootstrap/rsync.morph
repo: upstream:rsync
diff --git a/strata/cross-tools.morph b/strata/cross-tools.morph
index 36a82808..795d3936 100644
--- a/strata/cross-tools.morph
+++ b/strata/cross-tools.morph
@@ -8,3 +8,4 @@ chunks:
repo: upstream:patchelf
ref: 21a85cc1c63cf3ef060ece59cdd82455e2884703
unpetrify-ref: baserock/morph
+ build-system: autotools
diff --git a/strata/cxmanage.morph b/strata/cxmanage.morph
index 326f7a59..adc9faba 100644
--- a/strata/cxmanage.morph
+++ b/strata/cxmanage.morph
@@ -8,6 +8,7 @@ chunks:
repo: upstream:ipmitool
ref: 830d5a3787b265e5dde154d2f0e08b10ae9a7bcd
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: pexpect
morph: strata/cxmanage/pexpect.morph
repo: upstream:pexpect
@@ -17,14 +18,17 @@ chunks:
repo: upstream:pyipmi
ref: bb7dba84578c05ba87db3c4186a2989c89e4e519
unpetrify-ref: baserock/morph
+ build-system: python-distutils
- name: tftpy
repo: upstream:tftpy
ref: f3d2fc4c62c1e64dd49adfaf8e65097eb8ea307b
unpetrify-ref: baserock/morph
+ build-system: python-distutils
- name: cxmanage
repo: upstream:cxmanage
ref: 54116d3c486ed7aa49f284e4cad9e6e7c293bea6
unpetrify-ref: baserock/morph
+ build-system: python-distutils
build-depends:
- ipmitool
- pexpect
diff --git a/strata/databases.morph b/strata/databases.morph
index 89aa996e..444cca9a 100644
--- a/strata/databases.morph
+++ b/strata/databases.morph
@@ -4,12 +4,13 @@ description: some popular databases and some utils related to databases
build-depends:
- morph: strata/tools.morph
- morph: strata/nfs.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: postgresql
repo: upstream:postgresql
ref: d4f8dde3c1c2c90c723ab550e7f449fc75599316
unpetrify-ref: REL9_3_4
+ build-system: autotools
- name: redis
morph: strata/databases/redis.morph
repo: upstream:redis
@@ -24,9 +25,11 @@ chunks:
repo: upstream:python-packages/psycopg2
ref: 00cafbe85bb82d85cbfe0f062a73c562433b5bc8
unpetrify-ref: 2.5.4
+ build-system: python-distutils
build-depends:
- postgresql
- name: python-memcached
repo: upstream:python-packages/python-memcached
ref: 156ee975ff6e5c69e1d6c58b09bedf03c182c5db
unpetrify-ref: master
+ build-system: python-distutils
diff --git a/strata/devtools.morph b/strata/devtools.morph
index 6b55e2f2..ae50096b 100644
--- a/strata/devtools.morph
+++ b/strata/devtools.morph
@@ -7,7 +7,8 @@ description: |
stratum)
build-depends:
- morph: strata/core.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
+- morph: strata/docutils.morph
chunks:
- name: nano
morph: strata/devtools/nano.morph
@@ -23,6 +24,7 @@ chunks:
repo: upstream:pv
ref: d6ce7cfec684fa72d7a919d7b1aa817a0ca6102a
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: screen
morph: strata/devtools/screen.morph
repo: upstream:screen
@@ -32,12 +34,24 @@ chunks:
repo: upstream:less
ref: 09a405d8f652b56944c93ebf5c673cdfe5319b04
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: git-review
repo: upstream:git-review
ref: 79262a52301c146a6b60d09a828661a83a5f5ba7
unpetrify-ref: master
+ build-system: python-distutils
- name: wget
morph: strata/devtools/wget.morph
repo: upstream:wget
ref: 71d79f4f3043cf4ca3b2fb7f5328eae725c1293f
unpetrify-ref: baserock/v1.16.3
+- name: git
+ morph: strata/devtools/git.morph
+ repo: upstream:git
+ ref: 9874fca7122563e28d699a911404fc49d2a24f1c
+ unpetrify-ref: v2.3.0
+- name: iotop
+ repo: upstream:iotop
+ ref: 59e2537794d91c1375d391293f8fd89ca8b794a8
+ unpetrify-ref: iotop-0.6
+ build-system: python-distutils
diff --git a/strata/devtools/git.morph b/strata/devtools/git.morph
new file mode 100644
index 00000000..6ca079a5
--- /dev/null
+++ b/strata/devtools/git.morph
@@ -0,0 +1,9 @@
+name: git
+kind: chunk
+build-system: autotools
+pre-configure-commands:
+- make configure
+build-commands:
+- make all doc
+install-commands:
+- make install install-doc
diff --git a/strata/django.morph b/strata/django.morph
index 8ae63801..27c1c662 100644
--- a/strata/django.morph
+++ b/strata/django.morph
@@ -3,30 +3,35 @@ kind: stratum
description: Stratum with Django and its plugins and dependencies.
build-depends:
- morph: strata/foundation.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: django
repo: upstream:python-packages/django
ref: 811508b0512d3fa6b2328f8647fbf9eace68eceb
unpetrify-ref: 1.6.8
+ build-system: python-distutils
- name: django-appconf
repo: upstream:python-packages/django-appconf
ref: 0c9835f95b44db1b3eb1a9409f95a3ecd63b8ff5
unpetrify-ref: 0.6
+ build-system: python-distutils
- name: django-compressor
repo: upstream:python-packages/django-compressor
ref: e747dce3d7e04fe595bbfed54f9554c2725eb757
unpetrify-ref: 1.4
+ build-system: python-distutils
build-depends:
- django-appconf
- name: pyscss
repo: upstream:python-packages/pyscss
ref: 85e8806e39e840c4402ee813c3e38fefaf9212b4
unpetrify-ref: 1.2.1
+ build-system: python-distutils
- name: django-pyscss
repo: upstream:python-packages/django-pyscss
ref: 665270b54eea5de5aca379a78673b411ed6b1f04
unpetrify-ref: v1.0.6
+ build-system: python-distutils
build-depends:
- django
- pyscss
diff --git a/strata/docutils.morph b/strata/docutils.morph
index 6c5ac67b..e76cc7a2 100644
--- a/strata/docutils.morph
+++ b/strata/docutils.morph
@@ -2,7 +2,7 @@ name: docutils
kind: stratum
description: Stuff for generating documentation
build-depends:
-- morph: strata/core.morph
+- morph: strata/python2-core.morph
chunks:
- name: xml-catalog
morph: strata/docutils/xml-catalog.morph
@@ -38,6 +38,7 @@ chunks:
repo: upstream:asciidoc
ref: d3a6df0caa94edaf8180bd71bf2fc68390f56520
unpetrify-ref: 8.6.9
+ build-system: autotools
build-depends:
- docbook-xml
- docbook-xsl
@@ -45,6 +46,7 @@ chunks:
repo: upstream:xmlto-tarball
ref: 6a590aba95cbcce0f184381fb19d16558e56832d
unpetrify-ref: xmlto-0.0.26
+ build-system: autotools
build-depends:
- docbook-xml
- docbook-xsl
diff --git a/strata/docutils/docbook-xml.morph b/strata/docutils/docbook-xml.morph
index f18acaba..91233b6d 100644
--- a/strata/docutils/docbook-xml.morph
+++ b/strata/docutils/docbook-xml.morph
@@ -5,100 +5,100 @@ install-commands:
- install -v -d -m755 "$DESTDIR$PREFIX/share/xml/docbook/xml-dtd-4.5"
- install -v -d -m755 "$DESTDIR/etc/xml"
- |
- cp -v -af docbook.cat *.dtd ent/ *.mod \
- "$DESTDIR$PREFIX/share/xml/docbook/xml-dtd-4.5"
+ cp -v -af docbook.cat *.dtd ent/ *.mod \
+ "$DESTDIR$PREFIX/share/xml/docbook/xml-dtd-4.5"
post-install-commands:
- |
- # Create (or update) and populate the "$DESTDIR/etc/xml/docbook" catalog file
- if [ ! -e /etc/xml/docbook ]; then
- xmlcatalog --noout --create "$DESTDIR/etc/xml/docbook"
- else
- # Copy the existing catalog so we can update it
- cp /etc/xml/docbook "$DESTDIR/etc/xml/docbook"
- fi
+ # Create (or update) and populate the "$DESTDIR/etc/xml/docbook" catalog file
+ if [ ! -e /etc/xml/docbook ]; then
+ xmlcatalog --noout --create "$DESTDIR/etc/xml/docbook"
+ else
+ # Copy the existing catalog so we can update it
+ cp /etc/xml/docbook "$DESTDIR/etc/xml/docbook"
+ fi
- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//DTD DocBook XML V4.5//EN" \
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "public" \
- "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "rewriteSystem" \
- "http://www.oasis-open.org/docbook/xml/4.5" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5" \
- "$DESTDIR/etc/xml/docbook"
-- |
- xmlcatalog --noout --add "rewriteURI" \
- "http://www.oasis-open.org/docbook/xml/4.5" \
- "file:///usr/share/xml/docbook/xml-dtd-4.5" \
- "$DESTDIR/etc/xml/docbook"
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//DTD DocBook XML V4.5//EN" \
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//DTD XML Exchange Table Model 19990315//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "public" \
+ "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \ "file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "rewriteSystem" \
+ "http://www.oasis-open.org/docbook/xml/4.5" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5" \
+ "$DESTDIR/etc/xml/docbook"
+- |
+ xmlcatalog --noout --add "rewriteURI" \
+ "http://www.oasis-open.org/docbook/xml/4.5" \
+ "file:///usr/share/xml/docbook/xml-dtd-4.5" \
+ "$DESTDIR/etc/xml/docbook"
- |
- # Create (or update) and populate the "$DESTDIR/etc/xml/catalog" catalog file
- if [ ! -e /etc/xml/catalog ]; then
- echo 'Creating new xml catalog'
- xmlcatalog --noout --create "$DESTDIR/etc/xml/catalog"
- else
- # Copy the existing catalog so we can update it
- cp /etc/xml/catalog "$DESTDIR/etc/xml/catalog"
- fi
+ # Create (or update) and populate the "$DESTDIR/etc/xml/catalog" catalog file
+ if [ ! -e /etc/xml/catalog ]; then
+ echo 'Creating new xml catalog'
+ xmlcatalog --noout --create "$DESTDIR/etc/xml/catalog"
+ else
+ # Copy the existing catalog so we can update it
+ cp /etc/xml/catalog "$DESTDIR/etc/xml/catalog"
+ fi
- |
- xmlcatalog --noout --add "delegatePublic" \
- "-//OASIS//ENTITIES DocBook XML" \
- "file:///etc/xml/docbook" \
- "$DESTDIR/etc/xml/catalog"
-- |
- xmlcatalog --noout --add "delegatePublic" \
- "-//OASIS//DTD DocBook XML" \
- "file:///etc/xml/docbook" \
- "$DESTDIR/etc/xml/catalog"
-- |
- xmlcatalog --noout --add "delegateSystem" \
- "http://www.oasis-open.org/docbook/" \
- "file:///etc/xml/docbook" \
- "$DESTDIR/etc/xml/catalog"
-- |
- xmlcatalog --noout --add "delegateURI" \
- "http://www.oasis-open.org/docbook/" \
- "file:///etc/xml/docbook" \
- "$DESTDIR/etc/xml/catalog"
+ xmlcatalog --noout --add "delegatePublic" \
+ "-//OASIS//ENTITIES DocBook XML" \
+ "file:///etc/xml/docbook" \
+ "$DESTDIR/etc/xml/catalog"
+- |
+ xmlcatalog --noout --add "delegatePublic" \
+ "-//OASIS//DTD DocBook XML" \
+ "file:///etc/xml/docbook" \
+ "$DESTDIR/etc/xml/catalog"
+- |
+ xmlcatalog --noout --add "delegateSystem" \
+ "http://www.oasis-open.org/docbook/" \
+ "file:///etc/xml/docbook" \
+ "$DESTDIR/etc/xml/catalog"
+- |
+ xmlcatalog --noout --add "delegateURI" \
+ "http://www.oasis-open.org/docbook/" \
+ "file:///etc/xml/docbook" \
+ "$DESTDIR/etc/xml/catalog"
diff --git a/strata/enlightenment.morph b/strata/enlightenment.morph
index d1637f48..cf3d0e8b 100644
--- a/strata/enlightenment.morph
+++ b/strata/enlightenment.morph
@@ -13,6 +13,7 @@ chunks:
repo: upstream:fribidi
ref: c9916f2ab289126a32febcc4754efc73a011fb0c
unpetrify-ref: baserock/morph/0.19.6
+ build-system: autotools
- name: bullet3
morph: strata/enlightenment/bullet3.morph
repo: upstream:bullet3
diff --git a/strata/foundation.morph b/strata/foundation.morph
index 20166cf7..4e1052b2 100644
--- a/strata/foundation.morph
+++ b/strata/foundation.morph
@@ -8,6 +8,7 @@ chunks:
repo: upstream:bash-completion
ref: 3085c7e12179817a02a611016606391295c69942
unpetrify-ref: 2.1
+ build-system: autotools
- name: groff
morph: strata/foundation/groff.morph
repo: upstream:groff-git
@@ -31,8 +32,8 @@ chunks:
- name: dbus-pre
morph: strata/foundation/dbus-pre.morph
repo: upstream:dbus
- ref: 92a2d95a6c4457783dbd663bab27260c328f2248
- unpetrify-ref: baserock/genivi/dbus-1.9.16-1-g92a2d95
+ ref: 6b265f7e2ce10e69a07d4a6bc4ec2746fb032135
+ unpetrify-ref: baserock/v1.10.0+custom_marshaling
- name: libgpg-error
morph: strata/foundation/libgpg-error.morph
repo: upstream:libgpg-error
@@ -41,13 +42,14 @@ chunks:
- name: libgcrypt
repo: upstream:libgcrypt
ref: 412eed473b557ed2172d81d76fa1e1f53c973a67
+ build-system: autotools
build-depends:
- libgpg-error
- name: systemd
morph: strata/foundation/systemd.morph
repo: upstream:systemd
- ref: dde8bb32b12c855509777ce52ff59a835155ac78
- unpetrify-ref: v220
+ ref: c379f143a5ccdbc94a87cfca0174e7f21fa05f26
+ unpetrify-ref: v227
build-depends:
- dbus-pre
- kmod
@@ -56,12 +58,14 @@ chunks:
repo: upstream:libusb
ref: e11525c66c7dd2db466c8f5785ff0b37d6a99ec9
unpetrify-ref: v1.0.19
+ build-system: autotools
build-depends:
- systemd
- name: usbutils
repo: upstream:usbutils
ref: c37f146eb2c6642c600f1b025a6d56996b0697ff
unpetrify-ref: baserock/v008
+ build-system: autotools
build-depends:
- libusb
- name: lzo
@@ -84,8 +88,8 @@ chunks:
- name: dbus
morph: strata/foundation/dbus.morph
repo: upstream:dbus
- ref: 92a2d95a6c4457783dbd663bab27260c328f2248
- unpetrify-ref: baserock/genivi/dbus-1.9.16-1-g92a2d95
+ ref: 6b265f7e2ce10e69a07d4a6bc4ec2746fb032135
+ unpetrify-ref: baserock/v1.10.0+custom_marshaling
build-depends:
- systemd
- name: openssh
diff --git a/strata/foundation/openssh.morph b/strata/foundation/openssh.morph
index 6c759cb0..45339156 100644
--- a/strata/foundation/openssh.morph
+++ b/strata/foundation/openssh.morph
@@ -7,7 +7,8 @@ configure-commands:
--prefix="$PREFIX" --sysconfdir=/etc/ssh \
--datadir="$PREFIX/share/sshd" \
--libexecdir="$PREFIX/lib/openssh" \
- --with-privsep-path=/var/lib/sshd
+ --with-privsep-path=/var/lib/sshd \
+ --with-pam
build-commands:
- make
- |
diff --git a/strata/foundation/systemd.morph b/strata/foundation/systemd.morph
index 26c226fb..04a04c62 100644
--- a/strata/foundation/systemd.morph
+++ b/strata/foundation/systemd.morph
@@ -1,21 +1,12 @@
name: systemd
kind: chunk
build-system: autotools
-pre-configure-commands:
-# systemd prematurely kills the user session. This is a known bug in systemd
-# https://bugs.freedesktop.org/show_bug.cgi?id=70593
-- |
- cat >> units/user@.service.m4.in <<EOF
- KillSignal=SIGCONT
- ExecStop=/bin/kill -TERM \$MAINPID
- EOF
configure-commands:
- sh autogen.sh
# KILL added because it picks up /usr/bin/kill, which is not installed on
# all systems
- |
- KILL=/bin/kill ./configure --prefix="$PREFIX" --enable-xz --disable-manpages \
- --disable-gudev \
+ KILL=/bin/kill ./configure --prefix="$PREFIX" --enable-xz --disable-manpages --enable-compat-libs \
--disable-tests --sysconfdir=/etc --localstatedir=/var \
--libdir="$PREFIX/lib" --libexecdir="$PREFIX/libexec" \
--with-rootprefix= --with-rootlibdir=/lib
diff --git a/strata/genivi-demo-platform-libs.morph b/strata/genivi-demo-platform-libs.morph
new file mode 100644
index 00000000..598180b2
--- /dev/null
+++ b/strata/genivi-demo-platform-libs.morph
@@ -0,0 +1,23 @@
+name: genivi-demo-platform-libs
+kind: stratum
+description: Libraries needed for the GENIVI demo platform.
+build-depends:
+- morph: strata/foundation.morph
+- morph: strata/python-pygobject.morph
+- morph: strata/audio-bluetooth.morph
+chunks:
+- name: boost
+ morph: strata/genivi-demo-platform-libs/boost.morph
+ repo: upstream:boost-tarball
+ ref: ed232fdd34968697a68783b3195b1da4226915b5
+ unpetrify-ref: boost_1_57_0
+- name: dbus-c++
+ morph: strata/genivi-demo-platform-libs/dbus-c++.morph
+ repo: upstream:dbus-c++
+ ref: 8d351eec25430651acbac014e44ec011fac32d57
+ unpetrify-ref: baserock/genivi-demo-platform
+- name: dbus-python
+ repo: upstream:dbus-python
+ ref: d0d5b5be685dc4c16b21c54335becc87ca4d6f58
+ unpetrify-ref: dbus-python-1.2.0
+ build-system: autotools
diff --git a/strata/genivi-demo-platform-libs/boost.morph b/strata/genivi-demo-platform-libs/boost.morph
new file mode 100644
index 00000000..49c0590e
--- /dev/null
+++ b/strata/genivi-demo-platform-libs/boost.morph
@@ -0,0 +1,8 @@
+name: boost
+kind: chunk
+configure-commands:
+- ./bootstrap.sh
+build-commands:
+- ./b2 $MAKEFLAGS
+install-commands:
+- ./b2 install --prefix="$DESTDIR$PREFIX"
diff --git a/strata/genivi-demo-platform-libs/dbus-c++.morph b/strata/genivi-demo-platform-libs/dbus-c++.morph
new file mode 100644
index 00000000..bd805ebf
--- /dev/null
+++ b/strata/genivi-demo-platform-libs/dbus-c++.morph
@@ -0,0 +1,9 @@
+name: dbus-c++
+kind: chunk
+description: libdbus-c++ and dbusxx-xml2cpp tool
+build-system: autotools
+configure-commands:
+- autoreconf -ivf
+- ./configure --prefix="$PREFIX" --disable-ecore
+post-install-commands:
+- install tools/dbusxx-xml2cpp "$DESTDIR/$PREFIX"/bin/dbusxx-xml2cpp
diff --git a/strata/genivi-demo-platform.morph b/strata/genivi-demo-platform.morph
new file mode 100644
index 00000000..b314877c
--- /dev/null
+++ b/strata/genivi-demo-platform.morph
@@ -0,0 +1,49 @@
+name: genivi-demo-platform
+kind: stratum
+description: Components which make up the GENIVI demo platform.
+build-depends:
+- morph: strata/genivi-demo-platform-libs.morph
+- morph: strata/qt5-tools.morph
+- morph: strata/qt5-tools-qtmultimedia.morph
+- morph: strata/qt5-tools-qtwebkit.morph
+- morph: strata/genivi.morph
+- morph: strata/wayland-generic.morph
+- morph: strata/weston-genivi.morph
+chunks:
+- name: browser-poc
+ morph: strata/genivi-demo-platform/browser-poc.morph
+ repo: upstream:genivi/browser-poc
+ ref: d90501f8bd3edcd35eae72efbfb4583ba8f3cdfc
+ unpetrify-ref: baserock/genivi/genivi-demo-platform
+- name: automotive-message-broker
+ morph: strata/genivi-demo-platform/automotive-message-broker.morph
+ repo: upstream:automotive-message-broker
+ ref: 5cac4bd2958ea24ac6913be5baa0dfcda6466089
+ unpetrify-ref: "0.14"
+- name: audiomanager-poc
+ morph: strata/genivi-demo-platform/audiomanager-poc.morph
+ repo: upstream:audiomanager
+ ref: bb65a4d0a18667baa64e5ba40104dc2cda06b299
+ unpetrify-ref: baserock/genivi/genivi-demo-platform
+- name: navit
+ morph: strata/genivi-demo-platform/navit.morph
+ repo: upstream:navit-svn
+ ref: 358812af2c27c4abe324beb205e6d156b96fb1ea
+ unpetrify-ref: master
+- name: audiomanager@gdp
+ morph: strata/genivi-demo-platform/audiomanager@gdp.morph
+ repo: upstream:audiomanager
+ ref: ba709ee7d4f9f81af638a3d3c640b7152bbe32bc
+ unpetrify-ref: baserock/genivi/6.1-3-gba709ee-gdp
+- name: audiomanagerdemo
+ repo: upstream:genivi/audiomanagerdemo
+ ref: 30b7817bb5c2de17c725d6624d073092d3a821c0
+ unpetrify-ref: master
+ build-system: qmake
+ build-depends:
+ - audiomanager@gdp
+- name: genivi-demo-platform-hmi
+ morph: strata/genivi-demo-platform/genivi-demo-platform-hmi.morph
+ repo: upstream:genivi/genivi-demo-platform-hmi
+ ref: 253e30329f1d22c859e07150533702c2d3f986d5
+ unpetrify-ref: baserock/genivi/gdp-0.1
diff --git a/strata/genivi-demo-platform/audiomanager-poc.morph b/strata/genivi-demo-platform/audiomanager-poc.morph
new file mode 100644
index 00000000..6974705b
--- /dev/null
+++ b/strata/genivi-demo-platform/audiomanager-poc.morph
@@ -0,0 +1,10 @@
+name: audiomanager-poc
+kind: chunk
+pre-configure-commands:
+- sed 's:/opt/:/usr/lib/:g' $(git grep -l "/opt/")
+configure-commands:
+- cd AudioManagerPoC && qmake -makefile
+build-commands:
+- cd AudioManagerPoC && make
+install-commands:
+- cd AudioManagerPoC && make install INSTALL_ROOT="$DESTDIR"
diff --git a/strata/genivi-demo-platform/audiomanager@gdp.morph b/strata/genivi-demo-platform/audiomanager@gdp.morph
new file mode 100644
index 00000000..d77d0e68
--- /dev/null
+++ b/strata/genivi-demo-platform/audiomanager@gdp.morph
@@ -0,0 +1,14 @@
+name: audiomanager@gdp
+kind: chunk
+configure-commands:
+- |
+ cmake -DWITH_PULSE_ROUTING_PLUGIN=ON \
+ -DWITH_PULSE_CONTROL_PLUGIN=ON \
+ -DWITH_ENABLED_IPC=DBUS \
+ -DWITH_DATABASE_STORAGE=OFF \
+ -DWITH_DLT=OFF \
+ -DCMAKE_INSTALL_PREFIX="$PREFIX"
+build-commands:
+- make
+install-commands:
+- make DESTDIR="$DESTDIR" install
diff --git a/strata/genivi-demo-platform/automotive-message-broker.morph b/strata/genivi-demo-platform/automotive-message-broker.morph
new file mode 100644
index 00000000..2516cf29
--- /dev/null
+++ b/strata/genivi-demo-platform/automotive-message-broker.morph
@@ -0,0 +1,20 @@
+name: automotive-message-broker
+kind: chunk
+description: The GENIVI Automotive Message Broker
+build-system: cmake
+post-install-commands:
+- mkdir -p "$DESTDIR/usr/lib/systemd/system"
+- |
+ cat >"$DESTDIR/usr/lib/systemd/system/ambd.service" <<EOF
+ [Unit]
+ Description=Automotive Message Broker
+ After=syslog.target
+
+ [Service]
+ Type=dbus
+ BusName=org.automotive.message.broker
+ ExecStart=/usr/bin/ambd
+
+ [Install]
+ WantedBy=multi-user.target
+ EOF
diff --git a/strata/genivi-demo-platform/browser-poc.morph b/strata/genivi-demo-platform/browser-poc.morph
new file mode 100644
index 00000000..1ca23d40
--- /dev/null
+++ b/strata/genivi-demo-platform/browser-poc.morph
@@ -0,0 +1,29 @@
+name: browser-poc
+kind: chunk
+description: The GENIVI browser proof-of-concept for the GENIVI Demo Platform.
+configure-commands:
+- qmake -d -r browser-poc.pro
+build-commands:
+- make all
+install-commands:
+- make INSTALL_ROOT="$DESTDIR" install
+- mkdir -p "$DESTDIR/usr/lib/systemd/user"
+- |
+ cat >"$DESTDIR/usr/lib/systemd/user/browser.service" <<EOF
+ [Unit]
+ Description=Genivi Browser PoC service
+ Requires=dbus.service
+
+ [Service]
+ ExecStart=/usr/lib/browser-poc/browser/browser
+ EOF
+- |
+ cat >"$DESTDIR/usr/lib/systemd/user/demoui.service" <<EOF
+ [Unit]
+ Description=Genivi Browser PoC demoui
+ Requires=browser.service
+
+ [Service]
+ Environment=LD_PRELOAD=/usr/lib/libEGL.so
+ ExecStart=/usr/lib/browser-poc/demoui/demoui
+ EOF
diff --git a/strata/genivi-demo-platform/genivi-demo-platform-hmi.morph b/strata/genivi-demo-platform/genivi-demo-platform-hmi.morph
new file mode 100644
index 00000000..ae3d645a
--- /dev/null
+++ b/strata/genivi-demo-platform/genivi-demo-platform-hmi.morph
@@ -0,0 +1,137 @@
+name: genivi-demo-platform-hmi
+kind: chunk
+pre-configure-commands:
+- |
+ sed -i 's/sd_journal_print(LOG_DEBUG,/printf("DEBUG: "/' $(find . -name '*.cpp' -o -name '*.h')
+- |
+ sed -i 's/sd_journal_print(LOG_INFO,/printf("INFO: "/' $(find . -name '*.cpp' -o -name '*.h')
+- |
+ sed -i 's/sd_journal_print(LOG_ERR,/printf("ERR: "/' $(find . -name '*.cpp' -o -name '*.h')
+configure-commands:
+- autoreconf -vfi && ./configure --prefix="$PREFIX"
+- cd app/gdp-hmi-background && qmake
+- cd app/gdp-hmi-launcher2 && qmake
+- cd app/gdp-hmi-panel && qmake
+- cd app/qml-example && qmake
+build-commands:
+- make
+- cd app/gdp-hmi-background && make
+- cd app/gdp-hmi-launcher2 && make
+- cd app/gdp-hmi-panel && make
+- cd app/qml-example && make
+install-commands:
+- make DESTDIR="$DESTDIR" install
+- cd app/gdp-hmi-background && make INSTALL_ROOT="$DESTDIR" install
+- cd app/gdp-hmi-launcher2 && make INSTALL_ROOT="$DESTDIR" install
+- cd app/gdp-hmi-panel && make INSTALL_ROOT="$DESTDIR" install
+- cd app/qml-example && make INSTALL_ROOT="$DESTDIR" install
+- mkdir -p "$DESTDIR"/usr/share/gdp
+- cp -a app/gdp-hmi-background/assets/* "$DESTDIR"/usr/share/gdp/
+- cp -a app/gdp-hmi-launcher2/content/images/* "$DESTDIR"/usr/share/gdp/
+- cp -a app/gdp-hmi-panel/assets/* "$DESTDIR"/usr/share/gdp/
+- mkdir -p "$DESTDIR/usr/lib/systemd/user"
+- mkdir -p "$DESTDIR/usr/lib/systemd/user/default.target.wants"
+- |
+ cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-launcher2.service" <<EOF
+ [Unit]
+ Description=GENIVI Demo Platform HMI - Launcher2
+ Requires=gdp-hmi-controller.service
+
+ [Service]
+ Environment=LD_PRELOAD=/usr/lib/libEGL.so
+ ExecStart=/usr/bin/gdp-hmi-launcher2
+
+ [Install]
+ WantedBy=default.target
+ EOF
+- cd "$DESTDIR/usr/lib/systemd/user/default.target.wants" && ln -s ../gdp-hmi-launcher2.service .
+- |
+ cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-background.service" <<EOF
+ [Unit]
+ Description=GENIVI Demo Platform HMI - Background
+ Requires=gdp-hmi-controller.service
+ After=gdp-hmi-controller.service
+
+ [Service]
+ Environment=LD_PRELOAD=/usr/lib/libEGL.so
+ ExecStart=/usr/bin/gdp-hmi-background
+
+ [Install]
+ WantedBy=default.target
+ EOF
+- cd "$DESTDIR/usr/lib/systemd/user/default.target.wants" && ln -s ../gdp-hmi-background.service .
+- |
+ cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-controller.service" <<EOF
+ [Unit]
+ Description=GENIVI Demo Platform HMI - Controller
+ Requires=dbus.service
+ After=dbus.service weston.service
+
+ [Service]
+ ExecStart=/usr/bin/gdp-hmi-controller
+ Restart=always
+ RestartSec=2
+ TimeoutStopSec=1
+
+ [Install]
+ WantedBy=default.target
+ EOF
+- cd "$DESTDIR/usr/lib/systemd/user/default.target.wants" && ln -s ../gdp-hmi-controller.service .
+- |
+ cat >"$DESTDIR/usr/lib/systemd/user/gdp-hmi-panel.service" <<EOF
+ [Unit]
+ Description=GENIVI Demo Platform HMI - Panel
+ Requires=gdp-hmi-controller.service
+ After=gdp-hmi-background.service
+ After=EGLWLMockNavigation.service
+ After=EGLWLInputEventExample.service
+ After=demoui.service
+ After=qml-example.service
+
+ [Service]
+ Environment=LD_PRELOAD=/usr/lib/libEGL.so
+ ExecStart=/usr/bin/gdp-hmi-panel
+
+ [Install]
+ WantedBy=default.target
+ EOF
+- mkdir -p "$DESTDIR/usr/lib/systemd/user/EGLWLMockNavigation.service.wants"
+- cd "$DESTDIR/usr/lib/systemd/user/EGLWLMockNavigation.service.wants" && ln -s ../gdp-hmi-panel.service .
+- mkdir -p "$DESTDIR/usr/lib/systemd/user/EGLWLInputEventExample.service.wants"
+- cd "$DESTDIR/usr/lib/systemd/user/EGLWLInputEventExample.service.wants" && ln -s ../gdp-hmi-panel.service .
+- mkdir -p "$DESTDIR/usr/lib/systemd/user/demoui.service.wants"
+- cd "$DESTDIR/usr/lib/systemd/user/demoui.service.wants" && ln -s ../gdp-hmi-panel.service .
+- mkdir -p "$DESTDIR/usr/lib/systemd/user/qml-example.service.wants"
+- cd "$DESTDIR/usr/lib/systemd/user/qml-example.service.wants" && ln -s ../gdp-hmi-panel.service .
+- |
+ cat >"$DESTDIR/usr/lib/systemd/user/EGLWLMockNavigation.service" <<EOF
+ [Unit]
+ Description=EGL Wayland Mock Navigation
+
+ [Service]
+ ExecStart=/usr/bin/EGLWLMockNavigation -surface 10
+ EOF
+- |
+ cat > "$DESTDIR/usr/lib/systemd/user/EGLWLInputEventExample.service" <<EOF
+ [Unit]
+ Description=EGL Wayland Input Event Example
+
+ [Service]
+ ExecStart=/usr/bin/EGLWLInputEventExample --surface=5100
+ EOF
+- |
+ cat > "$DESTDIR/usr/lib/systemd/user/qml-example.service" <<EOF
+ [Unit]
+ Description=Genivi QML Example
+
+ [Service]
+ ExecStart=/usr/bin/qml-example
+ EOF
+- |
+ cat > "$DESTDIR/usr/lib/systemd/user/PowerOff.service" <<EOF
+ [Unit]
+ Description=HMI poweroff
+
+ [Service]
+ ExecStart=/bin/systemctl poweroff
+ EOF
diff --git a/strata/genivi-demo-platform/mm-common.morph b/strata/genivi-demo-platform/mm-common.morph
new file mode 100644
index 00000000..4f416e7c
--- /dev/null
+++ b/strata/genivi-demo-platform/mm-common.morph
@@ -0,0 +1,7 @@
+name: mm-common
+kind: chunk
+description: Common build files of the GNOME C++ bindings.
+build-system: autotools
+configure-commands:
+- ./autogen.sh
+- ./configure --prefix="$PREFIX"
diff --git a/strata/genivi-demo-platform/navit.morph b/strata/genivi-demo-platform/navit.morph
new file mode 100644
index 00000000..2bdb09d5
--- /dev/null
+++ b/strata/genivi-demo-platform/navit.morph
@@ -0,0 +1,5 @@
+name: navit
+kind: chunk
+build-system: cmake
+configure-commands:
+- cmake . -DSAMPLE_MAP=n
diff --git a/strata/genivi.morph b/strata/genivi.morph
index f4d7d600..1d8889fe 100644
--- a/strata/genivi.morph
+++ b/strata/genivi.morph
@@ -49,7 +49,8 @@ chunks:
- name: audiomanager
repo: upstream:audiomanager
ref: 8725157e248c6706de59a02996f869b6ccdccb13
- unpetrify-ref: "7.0"
+ unpetrify-ref: '7.0'
+ build-system: cmake
build-depends:
- DLT-daemon
- googletest
@@ -82,6 +83,7 @@ chunks:
repo: upstream:node-state-manager
ref: 30add4659e002f1df205cc36f71ef3141c10c1fb
unpetrify-ref: baserock/systemd_v216
+ build-system: autotools
build-depends:
- DLT-daemon
- persistence-client-library
@@ -104,6 +106,7 @@ chunks:
repo: upstream:genivi/node-health-monitor
ref: 61f88bc9fc03c278664e05431ffb5933ff6007f1
unpetrify-ref: baserock/1.3.5
+ build-system: autotools
build-depends:
- node-state-manager
- persistence-client-library
diff --git a/strata/genivi/persistence-client-library.morph b/strata/genivi/persistence-client-library.morph
index 6ea6aef2..196572f2 100644
--- a/strata/genivi/persistence-client-library.morph
+++ b/strata/genivi/persistence-client-library.morph
@@ -2,5 +2,11 @@ name: persistence-client-library
kind: chunk
build-system: autotools
configure-commands:
+# Configure library name. We are supposed to change them in this version of
+# persistence-client-library.
+# The need of doing this has been fixed upstream in the following commit:
+# http://git.projects.genivi.org/?p=persistence/persistence-client-library.git;a=commitdiff;h=6b208bfc268890360fcbd5cede70da5d2f9fb459
+# Once we upgrade we can drop this `sed`
+- sed -i 's/libpers_common.so.1/libpers_common.so/' config/pclCustomLibConfigFile.cfg
- autoreconf -ivf
- ./configure --prefix="$PREFIX" --disable-werror
diff --git a/strata/glib-common.morph b/strata/glib-common.morph
index 090bdf13..ffdc5b14 100644
--- a/strata/glib-common.morph
+++ b/strata/glib-common.morph
@@ -2,23 +2,27 @@ name: glib-common
kind: stratum
description: GLib and dependencies
build-depends:
-- morph: strata/core.morph
+- morph: strata/python2-core.morph
chunks:
- name: gtk-doc-stub
repo: upstream:gtk-doc-stub
ref: 58ec0d8593541ef7ae522ce42ebec6f98536c4e0
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: gnome-common
repo: upstream:gnome-common
ref: 5d61b55e8bea32fe2b52e21682ee4b3719b290c5
unpetrify-ref: 3.14.0
+ build-system: autotools
- name: glib
+ morph: strata/glib-common/glib.morph
repo: upstream:glib
- ref: 966ffb16f6bd54cb3d928a55d00d0eda73592094
- unpetrify-ref: 2.44.0
+ ref: d73cd49799444f9045d44a414c7b35f129844504
+ unpetrify-ref: 2.46.0
- name: gobject-introspection
repo: upstream:gobject-introspection
- ref: c0243e116c5e261c262dded9f4d7726a770c5a19
- unpetrify-ref: GOBJECT_INTROSPECTION_1_44_0
+ ref: a984a0f57a8ab178762d5942e2d552121edae091
+ unpetrify-ref: 1.46.0
+ build-system: autotools
build-depends:
- glib
diff --git a/strata/glib-common/glib.morph b/strata/glib-common/glib.morph
new file mode 100644
index 00000000..cdfceed2
--- /dev/null
+++ b/strata/glib-common/glib.morph
@@ -0,0 +1,8 @@
+name: glib
+kind: chunk
+build-system: autotools
+system-integration:
+ glib-misc:
+ 01-compile-schemas:
+ - mkdir -p /usr/share/glib-2.0/schemas
+ - /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
diff --git a/strata/gnome.morph b/strata/gnome.morph
new file mode 100644
index 00000000..9ea277a3
--- /dev/null
+++ b/strata/gnome.morph
@@ -0,0 +1,794 @@
+name: gnome
+kind: stratum
+description: GNOME stratum
+build-depends:
+- morph: strata/icu-common.morph
+- morph: strata/input-common.morph
+- morph: strata/tools.morph
+- morph: strata/gtk2.morph
+- morph: strata/gtk3.morph
+- morph: strata/audio-bluetooth.morph
+- morph: strata/libsoup-common.morph
+- morph: strata/NetworkManager-common.morph
+- morph: strata/multimedia-gstreamer.morph
+- morph: strata/network-security.morph
+- morph: strata/python3-gobject.morph
+- morph: strata/python2-core.morph
+- morph: strata/wayland-generic.morph
+- morph: strata/x-generic.morph
+- morph: strata/ruby.morph
+- morph: strata/samba.morph
+- morph: strata/cups.morph
+chunks:
+- name: dconf
+ morph: strata/gnome/dconf.morph
+ repo: upstream:dconf
+ ref: 7c0beccf286a1dbd396fda7d40b438598a6ce7f4
+ unpetrify-ref: master
+- name: cogl
+ morph: strata/gnome/cogl.morph
+ repo: upstream:gnome/cogl
+ ref: 85e0b084592e6beef2987b02e34a3909f35708e0
+ unpetrify-ref: cogl-1.22
+- name: json-glib
+ repo: upstream:json-glib
+ ref: bfbc0b48e9256473491755766c079f73bee80724
+ unpetrify-ref: master
+ build-system: autotools
+- name: clutter
+ morph: strata/gnome/clutter.morph
+ repo: upstream:gnome/clutter
+ ref: 8e52f8c61ef2192eaf7f2208a922d3530df47d9b
+ unpetrify-ref: master
+ build-depends:
+ - cogl
+ - json-glib
+- name: clutter-gtk
+ repo: upstream:gnome/clutter-gtk
+ ref: 56b09d02f71aa38f9496226641850e6ecf14ef70
+ unpetrify-ref: 1.6.6
+ build-system: autotools
+ build-depends:
+ - clutter
+- name: gsettings-desktop-schemas
+ repo: upstream:gnome/gsettings-desktop-schemas
+ ref: db40812cd79f64c98432efd1b632c5633a27f77e
+ unpetrify-ref: master
+ build-system: autotools
+- name: itstool
+ repo: upstream:itstool
+ ref: 359be5c350fc3d869807f663cee2b028adf1f5d7
+ unpetrify-ref: master
+ build-system: autotools
+- name: yelp-xsl
+ repo: upstream:yelp-xsl
+ ref: 2dcf168dde754d18152b008473269a803d6e650b
+ unpetrify-ref: master
+ build-depends:
+ - itstool
+ build-system: autotools
+- name: yelp-tools
+ repo: upstream:yelp-tools
+ ref: 6df6bf24e385bbc1ac0b800be8a6e878f18a775c
+ unpetrify-ref: master
+ build-depends:
+ - itstool
+ - yelp-xsl
+ build-system: autotools
+- name: iso-codes
+ repo: upstream:iso-codes
+ ref: 18ac112b4b84c8f03743565fde3512a637820761
+ unpetrify-ref: master
+ build-system: autotools
+- name: gnome-desktop
+ repo: upstream:gnome/gnome-desktop
+ ref: 1dbe40fac0e9924552ce2692ec141e86ce3d5633
+ unpetrify-ref: master
+ build-depends:
+ - gsettings-desktop-schemas
+ - iso-codes
+ - yelp-tools
+ build-system: autotools
+- name: libnotify
+ repo: upstream:gnome/libnotify
+ ref: 2f2c5649ef210b1dffeb46cddf062d20e1518ccf
+ unpetrify-ref: master
+ build-system: autotools
+- name: lcms2
+ repo: upstream:lcms2
+ ref: ff42eeaf932b64af997681f0eed6be3b67ebeb18
+ unpetrify-ref: baserock/gnome
+ build-system: autotools
+- name: gconf
+ morph: strata/gnome/gconf.morph
+ repo: upstream:gconf
+ ref: 4ef012c2a62d9abd759adb3aeb9d3b9cee17f721
+ unpetrify-ref: master
+- name: ibus
+ morph: strata/gnome/ibus.morph
+ repo: upstream:ibus
+ ref: 1d678673e18e132ed53df32502b779b0a56314d5
+ unpetrify-ref: master
+ build-depends:
+ - dconf
+ - gconf
+ - iso-codes
+ - libnotify
+- name: libhangul
+ morph: strata/gnome/libhangul.morph
+ repo: upstream:libhangul
+ ref: 78e9d8926262db423b4cf9181e1c2cb06a120a9b
+ unpetrify-ref: libhangul-0.1.0-19-g78e9d89
+- name: ibus-hangul
+ morph: strata/gnome/ibus-hangul.morph
+ repo: upstream:ibus-hangul
+ ref: 44f41ae5178372a7ff0540a4ce7a4944335525df
+ unpetrify-ref: 1.5.0-13-g44f41ae
+ build-depends:
+ - ibus
+ - libhangul
+- name: berkeleydb
+ morph: strata/gnome/berkeleydb.morph
+ repo: upstream:berkeleydb
+ ref: 780b92ada9afcf1d58085a83a0b9e6bc982203d1
+ unpetrify-ref: db-6.1.23
+- name: libpinyin
+ repo: upstream:libpinyin
+ ref: 2e0c23b3ab6c247dd6a683c716e784a371646af4
+ unpetrify-ref: baserock/1.2.91
+ build-system: autotools
+ build-depends:
+ - berkeleydb
+- name: ibus-libpinyin
+ morph: strata/gnome/ibus-libpinyin.morph
+ repo: upstream:ibus-libpinyin
+ ref: 4bb5fc19c0829053acd29619de59a85a73e03676
+ unpetrify-ref: 1.7.2-7-g4bb5fc1
+ build-depends:
+ - ibus
+ - libpinyin
+- name: anthy
+ repo: upstream:anthy
+ ref: a7a06a7ccfe0af1e134357678b8fa6cf87dff3b0
+ unpetrify-ref: anthy-9100h
+ build-system: autotools
+- name: ibus-anthy
+ morph: strata/gnome/ibus-anthy.morph
+ repo: upstream:ibus-anthy
+ ref: 9ba0a2a1e595fbf6e39c50a15814bb6f9e337769
+ unpetrify-ref: 1.5.7-6-g9ba0a2a
+ build-depends:
+ - ibus
+ - anthy
+- name: libcanberra
+ repo: upstream:libcanberra
+ ref: c0620e432650e81062c1967cc669829dbd29b310
+ unpetrify-ref: master
+ build-system: autotools
+- name: upower
+ morph: strata/gnome/upower.morph
+ repo: upstream:upower
+ ref: 0825c162d3dc909966b10fecabbc2c1da364c1a6
+ unpetrify-ref: master
+- name: gusb
+ repo: upstream:gusb
+ ref: 0c5eb813279c67607e17dfd99087358d34c6c8f5
+ unpetrify-ref: master
+ build-system: autotools
+- name: mozjs17
+ morph: strata/gnome/mozjs17.morph
+ repo: upstream:mozilla/mozjs17
+ ref: c8e33aaaba2787d3c94eba00257051400d106e76
+ unpetrify-ref: baserock/gnome
+- name: polkit
+ morph: strata/gnome/polkit.morph
+ repo: upstream:polkit
+ ref: 5a7e3b76aa45eea43e4bdc403ddd4c6e1a4c6542
+ unpetrify-ref: master
+ build-depends:
+ - mozjs17
+- name: libatasmart
+ morph: strata/gnome/libatasmart.morph
+ repo: upstream:libatasmart
+ ref: de6258940960443038b4c1651dfda3620075e870
+ unpetrify-ref: master
+- name: udisks
+ morph: strata/gnome/udisks.morph
+ repo: upstream:udisks
+ ref: 410cab8f3d749ad2660cda3ba38b6aece42bf10f
+ unpetrify-ref: master
+ build-depends:
+ - polkit
+ - libatasmart
+- name: colord
+ morph: strata/gnome/colord.morph
+ repo: upstream:colord
+ ref: e68f251b753297fcd1fc2bb7356588945bd3e69b
+ unpetrify-ref: baserock/gnome
+ build-depends:
+ - gusb
+ - lcms2
+ - polkit
+- name: colord-gtk
+ repo: upstream:colord-gtk
+ ref: eadca143872288e1300303a771efdaab196900e1
+ unpetrify-ref: COLORD_GTK_0_1_26
+ build-system: autotools
+ build-depends:
+ - colord
+- name: geocode-glib
+ repo: upstream:gnome/geocode-glib
+ ref: a3e183e40053b4bd0fd0b25a070f60597270397a
+ unpetrify-ref: master
+ build-depends:
+ - json-glib
+ build-system: autotools
+- name: libmbim
+ repo: upstream:libmbim
+ ref: 6cf74ebfae1dccf807bb34d88f2cd024d4b14da7
+ unpetrify-ref: master
+ build-system: autotools
+- name: libqmi
+ repo: upstream:libqmi
+ ref: 97aaa6855d071f64ec2e28df1b9f816da02a3e07
+ unpetrify-ref: master
+ build-system: autotools
+- name: ModemManager
+ morph: strata/gnome/ModemManager.morph
+ repo: upstream:ModemManager
+ ref: 0ca68657fbcd5bace3d303a0babe2da292784385
+ unpetrify-ref: master
+ build-depends:
+ - libmbim
+ - libqmi
+ - polkit
+- name: geoclue
+ morph: strata/gnome/geoclue.morph
+ repo: upstream:geoclue
+ ref: ae8f7ab2f1e90f61931c652f2f65996c30c79e87
+ unpetrify-ref: 2.4.0
+ build-depends:
+ - json-glib
+ - ModemManager
+- name: libgweather
+ repo: upstream:gnome/libgweather
+ ref: 5b8aed611f24d03434eed35e438cea213b894b7c
+ unpetrify-ref: master
+ build-depends:
+ - geocode-glib
+ build-system: autotools
+- name: gnome-settings-daemon
+ morph: strata/gnome/gnome-settings-daemon.morph
+ repo: upstream:gnome-settings-daemon
+ ref: 8d4904fb35e8aa8b9b0b135b6026464c8e40d254
+ unpetrify-ref: baserock/3.18.0/disable_wacom
+ build-depends:
+ - colord
+ - geoclue
+ - geocode-glib
+ - gnome-desktop
+ - gsettings-desktop-schemas
+ - ibus
+ - libcanberra
+ - libgweather
+ - libnotify
+ - lcms2
+ - upower
+- name: zenity
+ repo: upstream:zenity
+ ref: d7135db2bdfdca812c0165f90e4611af9c7c6a50
+ unpetrify-ref: master
+ build-depends:
+ - yelp-tools
+ build-system: autotools
+- name: mozjs24
+ morph: strata/gnome/mozjs24.morph
+ repo: upstream:mozilla/mozjs24
+ ref: 334066c83de6c96320b63663a35d53159158c9b7
+ unpetrify-ref: baserock/gnome
+- name: gjs
+ repo: upstream:gjs
+ ref: 5d480f519e2b7e95cf1fad2f9f1a8e798fd5fe49
+ unpetrify-ref: master
+ build-depends:
+ - mozjs24
+ build-system: autotools
+- name: telepathy-glib
+ morph: strata/gnome/telepathy-glib.morph
+ repo: upstream:telepathy-glib
+ ref: d27684c488ceee4f2f54f549738adab0e2e8165d
+ unpetrify-ref: master
+- name: telepathy-logger
+ morph: strata/gnome/telepathy-logger.morph
+ repo: upstream:telepathy-logger
+ ref: 711842911edb15977430c0b6c1803e947619efc3
+ unpetrify-ref: master
+ build-depends:
+ - telepathy-glib
+- name: telepathy-mission-control
+ repo: upstream:telepathy-mission-control
+ ref: 84dc7d0fd952a9ef3d200ac5557cdf2daccca145
+ unpetrify-ref: telepathy-mission-control-5.16.3
+ build-system: autotools
+ build-depends:
+ - telepathy-glib
+- name: startup-notification
+ repo: upstream:startup-notification
+ ref: 07237ff25d6171e1b548118442ddba4259a53ba5
+ unpetrify-ref: master
+ build-system: autotools
+- name: libtasn1
+ repo: upstream:libtasn1
+ ref: 7f3a9c2294cdebd9e63fe007150c181b980865ef
+ unpetrify-ref: baserock/gnome
+ build-system: autotools
+- name: p11-kit
+ morph: strata/gnome/p11-kit.morph
+ repo: upstream:p11-kit
+ ref: ec9e2450bafa1cda47525b38a28c8f981f43c1e1
+ unpetrify-ref: 0.23.1
+ build-depends:
+ - libtasn1
+- name: gcr
+ repo: upstream:gnome/gcr
+ ref: 289ba4859fd170285f51e6bbfe91f2aac3b9170d
+ unpetrify-ref: 3.18.0
+ build-depends:
+ - p11-kit
+ build-system: autotools
+- name: libxkbcommon-x11
+ repo: upstream:xorg-lib-libxkbcommon
+ ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28
+ unpetrify-ref: xkbcommon-0.5.0
+ build-system: autotools
+- name: mutter
+ morph: strata/gnome/mutter.morph
+ repo: upstream:mutter
+ ref: b975676c5ddd9401d4acfc4d0b9317dd8956656b
+ unpetrify-ref: 3.18.0-25-gb975676
+ build-depends:
+ - clutter
+ - cogl
+ - gnome-desktop
+ - gnome-settings-daemon
+ - gsettings-desktop-schemas
+ - libxkbcommon-x11
+ - startup-notification
+ - upower
+ - zenity
+- name: libxklavier
+ repo: upstream:libxklavier
+ ref: 65c132a65e90a42e898f07243ef544109ada53c9
+ unpetrify-ref: master
+ build-depends:
+ - iso-codes
+ build-system: autotools
+- name: m4-common
+ repo: upstream:m4-common
+ ref: 4b704704f5e826b73b79ccfddaf215a510c104c4
+ unpetrify-ref: baserock/morph
+ build-system: autotools
+- name: libgee
+ repo: upstream:gnome/libgee
+ ref: 4301ab58efc217409c588a5527f68990b4e3d220
+ unpetrify-ref: master
+ build-depends:
+ - m4-common
+ build-system: autotools
+- name: caribou
+ morph: strata/gnome/caribou.morph
+ repo: upstream:caribou
+ ref: e1a7a2488cdf8d0d32f0de67d68a85e9a6ab5fd2
+ unpetrify-ref: baserock/CARIBOU_0_4_19-1-ge1a7a24+python3
+ build-depends:
+ - clutter
+ - libgee
+ - libxklavier
+- name: libsecret
+ morph: strata/gnome/libsecret.morph
+ repo: upstream:gnome/libsecret
+ ref: 4d76cf7dd8e55d93bb58164a1fff38113ba97af5
+ unpetrify-ref: master
+- name: librest
+ morph: strata/gnome/librest.morph
+ repo: upstream:gnome/librest
+ ref: 08f1fc35e3c77aecedacf08aa510e82c91ac7f2a
+ unpetrify-ref: 0.7.93
+- name: enchant
+ repo: upstream:enchant
+ ref: 6d8b6bb15f09a14c90fb900eb2ecf1172d7cf6cf
+ unpetrify-ref: master
+ build-system: autotools
+- name: hyphen
+ repo: upstream:hyphen
+ ref: 7f28cf7edb54cc1bc4eaa09672e0bc043b1da70b
+ unpetrify-ref: master
+ build-system: autotools
+- name: WebKitGtk
+ morph: strata/gnome/WebKitGtk.morph
+ repo: upstream:WebKitGtk-tarball
+ ref: e15dd966d523731101f70ccf768bba12435a0208
+ unpetrify-ref: webkitgtk-2.10.2
+ build-depends:
+ - enchant
+ - geoclue
+ - hyphen
+ - libnotify
+ - libsecret
+- name: gnome-online-accounts
+ morph: strata/gnome/gnome-online-accounts.morph
+ repo: upstream:gnome/gnome-online-accounts
+ ref: 167ada60a66a0ed851bb65335a46570cf071115a
+ unpetrify-ref: baserock/3.18.1
+ build-depends:
+ - librest
+ - telepathy-glib
+ - WebKitGtk
+- name: liboauth
+ repo: upstream:liboauth
+ ref: 9ff9d2902caf8a85c5019c11214d73e67053ba69
+ unpetrify-ref: liboauth-0.9.7
+ build-system: autotools
+- name: libgdata
+ morph: strata/gnome/libgdata.morph
+ repo: upstream:libgdata
+ ref: ed52192fcd3cde2c0d7f0ab0d9e300fcdbc373a8
+ unpetrify-ref: LIBGDATA_0_17_3-16-ged52192
+ build-depends:
+ - gcr
+ - gnome-online-accounts
+ - liboauth
+ - m4-common
+- name: krb5
+ morph: strata/gnome/krb5.morph
+ repo: upstream:krb5
+ ref: db2acb6b06e469c6c12476bec68acc7964626523
+ unpetrify-ref: master
+- name: evolution-data-server
+ morph: strata/gnome/evolution-data-server.morph
+ repo: upstream:evolution-data-server
+ ref: 8d094ef96a89957d353beaa66f0cbaa04cfbfedd
+ unpetrify-ref: EVOLUTION_DATA_SERVER_3_18_1-11-g8d094ef
+ build-depends:
+ - gcr
+ - gnome-online-accounts
+ - krb5
+ - libgdata
+ - libgweather
+ - libsecret
+- name: network-manager-applet
+ repo: upstream:gnome/network-manager-applet
+ ref: bbcc673af29066cfc6f0e12f04c0dd3f9937fb3a
+ unpetrify-ref: 0.9.10-beta1-344-gbbcc673
+ build-system: autotools
+ build-depends:
+ - iso-codes
+ - libsecret
+ - libnotify
+- name: gnome-shell
+ morph: strata/gnome/gnome-shell.morph
+ repo: upstream:gnome/gnome-shell
+ ref: 4da5b8dd1189e7e628605b2b23efe5db2d88f94b
+ unpetrify-ref: baserock/3.18.0-71-g4da5b8d
+ build-depends:
+ - caribou
+ - clutter
+ - evolution-data-server
+ - gcr
+ - gjs
+ - libcanberra
+ - mutter
+ - polkit
+ - startup-notification
+ - telepathy-glib
+ - network-manager-applet
+- name: gnome-session
+ morph: strata/gnome/gnome-session.morph
+ repo: upstream:gnome/gnome-session
+ ref: 9af8474a027edecf7c73827964fd88bc960266d6
+ unpetrify-ref: 3.18.0-3-g9af8474
+ build-depends:
+ - gnome-desktop
+ - json-glib
+- name: d-feet
+ morph: strata/gnome/d-feet.morph
+ repo: upstream:gnome/d-feet
+ ref: a526f5325f179482f915216f7781232899be5600
+ unpetrify-ref: master
+ build-depends:
+ - yelp-tools
+- name: gnome-keyring
+ morph: strata/gnome/gnome-keyring.morph
+ repo: upstream:gnome-keyring
+ ref: b1aee9c01f647f084e6c0ae2b4810c9ec7d0fd0d
+ unpetrify-ref: 3.18.0
+ build-depends:
+ - gcr
+- name: gvfs
+ morph: strata/gnome/gvfs.morph
+ repo: upstream:gvfs
+ ref: d037b5fd56cae878ed7bb5269a40e4bd046551d7
+ unpetrify-ref: master
+ build-depends:
+ - gcr
+ - udisks
+- name: accountsservice
+ morph: strata/gnome/accountsservice.morph
+ repo: upstream:accountsservice
+ ref: 36b424b4aad91aaf91eeb6b6285cf550b15fcfeb
+ unpetrify-ref: master
+ build-depends:
+ - polkit
+- name: gdm
+ morph: strata/gnome/gdm.morph
+ repo: upstream:gdm
+ ref: 494ec8cee5727c37118994d3864c44f36aa454fc
+ unpetrify-ref: 3.18.0
+ build-depends:
+ - polkit
+ - accountsservice
+ - libcanberra
+ - dconf
+- name: hicolor-icon-theme
+ morph: strata/gnome/hicolor-icon-theme.morph
+ repo: upstream:hicolor-icon-theme
+ ref: 5954bd6c123aa31c8f35b83d70b73e1f6dcf34b3
+ unpetrify-ref: master
+- name: gnome-themes-standard
+ morph: strata/gnome/gnome-themes-standard.morph
+ repo: upstream:gnome-themes-standard
+ ref: 4058c3bced2173c8e6f2a22953327dcc2023e82d
+ unpetrify-ref: master
+ build-depends:
+ - hicolor-icon-theme
+- name: adwaita-icon-theme
+ morph: strata/gnome/adwaita-icon-theme.morph
+ repo: upstream:gnome/adwaita-icon-theme
+ ref: 5e469ae6e664cb0808b6ce9fcfd7bd2ac6fc4216
+ unpetrify-ref: gnome-3.18
+- name: gnome-backgrounds
+ repo: upstream:gnome/gnome-backgrounds
+ ref: e68462edd35ae3edb4311df90dc4d1a3cdcb175f
+ unpetrify-ref: 3.18.0-2-ge68462e
+ build-system: autotools
+- name: nettle
+ morph: strata/gnome/nettle.morph
+ repo: upstream:nettle
+ ref: 549e2853d6f3fa9cefb099970209c7f5bf5673b7
+ unpetrify-ref: nettle_3.1.1_release_20150424
+- name: gnutls
+ morph: strata/gnome/gnutls.morph
+ repo: upstream:gnutls
+ ref: 21fecbde80ae824f85a10a0c23a327c49e4e5fb6
+ unpetrify-ref: baserock/gnutls_3_4_6
+ build-depends:
+ - nettle
+ - libtasn1
+ - p11-kit
+- name: glib-networking
+ morph: strata/gnome/glib-networking.morph
+ repo: upstream:gnome/glib-networking
+ ref: 32ee55186d7df497e3d402a1940cddfabd9dbc21
+ unpetrify-ref: 2.46.0
+ build-depends:
+ - gnutls
+- name: cracklib
+ morph: strata/gnome/cracklib.morph
+ repo: upstream:cracklib
+ ref: 1dd5ca2114c0dd478b17e68e38d2c9f7094552cc
+ unpetrify-ref: cracklib-2.9.6
+- name: libpwquality
+ morph: strata/gnome/libpwquality.morph
+ repo: upstream:libpwquality
+ ref: 24937f6fdcc1673e064c9626407c89f58289957d
+ unpetrify-ref: libpwquality-1.3.0
+ build-depends:
+ - cracklib
+- name: gnome-initial-setup
+ morph: strata/gnome/gnome-initial-setup.morph
+ repo: upstream:gnome/gnome-initial-setup
+ ref: e0b7f968213d26807d00ca5841c03f4a5a4605b2
+ unpetrify-ref: 3.19.1-1-ge0b7f96
+ build-depends:
+ - accountsservice
+ - gdm
+ - gnome-desktop
+ - gnome-keyring
+ - gnome-online-accounts
+ - ibus
+ - iso-codes
+ - krb5
+ - libgweather
+ - libpwquality
+ - network-manager-applet
+- name: vte
+ morph: strata/gnome/vte.morph
+ repo: upstream:gnome/vte
+ ref: aa7120c2e359bb5d6d0b0ec6c1e0eecf0583be03
+ unpetrify-ref: 0.43.0
+ build-depends:
+ - gnutls
+- name: tracker
+ repo: upstream:gnome/tracker
+ ref: ad31f26e3c45dbe3365ff4aaae39269d9210f4a9
+ unpetrify-ref: 1.6.0
+ build-system: autotools
+- name: libexif
+ repo: upstream:libexif-tarball
+ ref: 0c6a5fa0d9719a40748d8726b4543f02f70518c1
+ unpetrify-ref: libexif-0.6.21
+ build-system: autotools
+- name: nautilus
+ morph: strata/gnome/nautilus.morph
+ repo: upstream:nautilus
+ ref: 2efab5ea404077bfb09f543ed2acc8e0940d21c9
+ unpetrify-ref: baserock/3.18.1
+ build-depends:
+ - vte
+ - gnome-desktop
+ - gsettings-desktop-schemas
+ - libexif
+ - tracker
+- name: desktop-file-utils
+ repo: upstream:desktop-file-utils
+ ref: 4944725bddcf5821d53d7d648fc53347ce12cc03
+ unpetrify-ref: 0.22
+ build-system: autotools
+- name: gnome-terminal
+ morph: strata/gnome/gnome-terminal.morph
+ repo: upstream:gnome/gnome-terminal
+ ref: d52e6beb2df7aedd0c98696ae3be4a36b4c8f0f0
+ unpetrify-ref: 3.18.1
+ build-depends:
+ - desktop-file-utils
+ - dconf
+ - gconf
+ - gsettings-desktop-schemas
+ - nautilus
+ - yelp-tools
+- name: gmime
+ morph: strata/gnome/gmime.morph
+ repo: upstream:gnome/gmime
+ ref: 496313fbe956b350c22fa705edbcfdde3d7c9e50
+ unpetrify-ref: GMIME_2_6_20-24-g496313f
+- name: totem-pl-parser
+ repo: upstream:gnome/totem-pl-parser
+ ref: 1be3144e9a6bf183a61c9596165d52bbe405b5cc
+ unpetrify-ref: V_3_10_5-16-g1be3144
+ build-system: autotools
+ build-depends:
+ - gmime
+- name: libmediaart
+ morph: strata/gnome/libmediaart.morph
+ repo: upstream:gnome/libmediaart
+ ref: 52eb6498c97ce0005186946bc9162d87597abc2c
+ unpetrify-ref: 1.9.0-8-g52eb649
+- name: grilo
+ repo: upstream:gnome/grilo
+ ref: e470c0cd72231d2a86f419a584df3d635bc6b62f
+ unpetrify-ref: grilo-0.2.14-17-ge470c0c
+ build-system: autotools
+ build-depends:
+ - totem-pl-parser
+- name: grilo-plugins
+ repo: upstream:gnome/grilo-plugins
+ ref: e23b0fa5f6656d53b977693bf55174bd2ccd172d
+ unpetrify-ref: grilo-plugins-0.2.16-17-ge23b0fa
+ build-system: autotools
+ build-depends:
+ - gnome-online-accounts
+ - grilo
+ - libgdata
+ - libmediaart
+ - liboauth
+ - librest
+ - m4-common
+ - totem-pl-parser
+ - tracker
+ - yelp-tools
+- name: libgtop
+ repo: upstream:gnome/libgtop
+ ref: ac2aef0f47fd998555abf18003f4c11ffecbf542
+ unpetrify-ref: 2.32.0
+ build-system: autotools
+- name: libwacom
+ repo: upstream:linuxwacom/libwacom
+ ref: c707d0f98c79260cb72b5d2bdded50b4e816e350
+ unpetrify-ref: libwacom-0.15
+ build-system: autotools
+- name: gnome-bluetooth
+ repo: upstream:gnome/gnome-bluetooth
+ ref: eb2558d45518f7c23c20fa7b13639f013810494e
+ unpetrify-ref: GNOMEBT_V_3_18_0
+ build-system: autotools
+ build-depends:
+ - libcanberra
+ - libnotify
+- name: libarchive
+ morph: strata/gnome/libarchive.morph
+ repo: upstream:libarchive
+ ref: 19f23e191f9d3e1dd2a518735046100419965804
+ unpetrify-ref: v3.1.2
+- name: gcab
+ repo: upstream:gnome/gcab
+ ref: e57dd3d1ddb0da91df9188c2a98d59d1050ac6cb
+ unpetrify-ref: v0.6-22-ge57dd3d
+ build-system: autotools
+- name: appstream-glib
+ repo: upstream:appstream-glib
+ ref: d3885c325271fee0bed5c5815d41eb788712acb4
+ unpetrify-ref: appstream_glib_0_5_0
+ # Building 0.5.3 requires absurdly new libsoup
+ # ref: 2b57a0c407021f2b1efca38eb99a9bf61c1d16b2
+ # unpetrify-ref: appstream_glib_0_5_3
+ build-system: autotools
+ build-depends:
+ - gcab
+ - libarchive
+- name: gnome-color-manager
+ morph: strata/gnome/gnome-color-manager.morph
+ repo: upstream:gnome/gnome-color-manager
+ ref: 8284cb186e0e7c248fc2a2449735fd24b778ec81
+ unpetrify-ref: GNOME_COLOR_MANAGER_3_18_0
+ build-depends:
+ - appstream-glib
+ - colord-gtk
+ - gnome-desktop
+ - lcms2
+ - libcanberra
+ - libexif
+ - vte
+ - yelp-tools
+- name: clutter-gst
+ repo: upstream:gnome/clutter-gst
+ ref: 395797827a148809a2be0d968c5bf71a6e9c9299
+ unpetrify-ref: 3.0.14
+ build-system: autotools
+ build-depends:
+ - clutter
+- name: cheese
+ morph: strata/gnome/cheese.morph
+ repo: upstream:gnome/cheese
+ ref: 61651e03e8346bd0084da7247269e52e2a42190e
+ unpetrify-ref: gnome-3-18
+ build-depends:
+ - appstream-glib
+ - clutter
+ - clutter-gst
+ - clutter-gtk
+ - gnome-desktop
+ - libcanberra
+ - yelp-tools
+- name: gnome-control-center
+ morph: strata/gnome/gnome-control-center.morph
+ repo: upstream:gnome/gnome-control-center
+ ref: f00c05ba3b3c7aa328d7970b73a784739cef560a
+ unpetrify-ref: baserock/3.18
+ build-depends:
+ - accountsservice
+ - cheese
+ - clutter
+ - clutter-gtk
+ - colord
+ - colord-gtk
+ - gnome-bluetooth
+ - gnome-desktop
+ - gnome-online-accounts
+ - gnome-settings-daemon
+ - grilo
+ - gsettings-desktop-schemas
+ - ibus
+ - iso-codes
+ - krb5
+ - libcanberra
+ - libgtop
+ - libpwquality
+ - libwacom
+ - network-manager-applet
+- name: libgnomekbd
+ repo: upstream:gnome/libgnomekbd
+ ref: d8ff867e95e548476c68db12ade3a0a4697a24a1
+ unpetrify-ref: master
+ build-system: autotools
+ build-depends:
+ - libxklavier
diff --git a/strata/gnome/ModemManager.morph b/strata/gnome/ModemManager.morph
new file mode 100644
index 00000000..909f6eca
--- /dev/null
+++ b/strata/gnome/ModemManager.morph
@@ -0,0 +1,9 @@
+name: ModemManager
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc
+system-integration:
+ ModemManager-misc:
+ 00-enable-ModemManager-unit:
+ - systemctl enable ModemManager
diff --git a/strata/gnome/WebKitGtk.morph b/strata/gnome/WebKitGtk.morph
new file mode 100644
index 00000000..cbe1577c
--- /dev/null
+++ b/strata/gnome/WebKitGtk.morph
@@ -0,0 +1,5 @@
+name: WebKitGtk
+kind: chunk
+build-system: cmake
+configure-commands:
+- cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_INSTALL_LIBDIR=lib
diff --git a/strata/gnome/accountsservice.morph b/strata/gnome/accountsservice.morph
new file mode 100644
index 00000000..15ba434d
--- /dev/null
+++ b/strata/gnome/accountsservice.morph
@@ -0,0 +1,9 @@
+name: accountsservice
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-admin-group=adm
+system-integration:
+ accountsservice-misc:
+ 00-enable-accounts-daemon-unit:
+ - systemctl enable accounts-daemon
diff --git a/strata/gnome/adwaita-icon-theme.morph b/strata/gnome/adwaita-icon-theme.morph
new file mode 100644
index 00000000..99ded09c
--- /dev/null
+++ b/strata/gnome/adwaita-icon-theme.morph
@@ -0,0 +1,11 @@
+name: adwaita-icon-theme
+kind: chunk
+build-system: autotools
+configure-commands:
+- gdk-pixbuf-query-loaders > loader.cache
+- NOCONFIGURE=1 ./autogen.sh
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc
+build-commands:
+- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make
+install-commands:
+- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR"
diff --git a/strata/gnome/autoconf-archive.morph b/strata/gnome/autoconf-archive.morph
new file mode 100644
index 00000000..de05f0aa
--- /dev/null
+++ b/strata/gnome/autoconf-archive.morph
@@ -0,0 +1,5 @@
+name: autoconf-archive
+kind: chunk
+build-system: autotools
+pre-configure-commands:
+- ./bootstrap.sh
diff --git a/strata/gnome/berkeleydb.morph b/strata/gnome/berkeleydb.morph
new file mode 100644
index 00000000..e6238e7a
--- /dev/null
+++ b/strata/gnome/berkeleydb.morph
@@ -0,0 +1,18 @@
+name: berkeleydb
+kind: chunk
+build-system: autotools
+configure-commands:
+- |
+ cd build_unix;
+ ../dist/configure --prefix="$PREFIX" \
+ --enable-compat185 \
+ --enable-dbm \
+ --enable-cxx
+build-commands:
+- |
+ cd build_unix;
+ make
+install-commands:
+- |
+ cd build_unix;
+ make DESTDIR="$DESTDIR" install
diff --git a/strata/gnome/caribou.morph b/strata/gnome/caribou.morph
new file mode 100644
index 00000000..14827a98
--- /dev/null
+++ b/strata/gnome/caribou.morph
@@ -0,0 +1,5 @@
+name: caribou
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gtk2-module
diff --git a/strata/gnome/cheese.morph b/strata/gnome/cheese.morph
new file mode 100644
index 00000000..5e3671fb
--- /dev/null
+++ b/strata/gnome/cheese.morph
@@ -0,0 +1,11 @@
+name: cheese
+kind: chunk
+build-system: autotools
+configure-commands:
+- gdk-pixbuf-query-loaders > loader.cache
+- NOCONFIGURE=1 ./autogen.sh
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc
+build-commands:
+- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make
+install-commands:
+- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR"
diff --git a/strata/gnome/clutter.morph b/strata/gnome/clutter.morph
new file mode 100644
index 00000000..d454c6e3
--- /dev/null
+++ b/strata/gnome/clutter.morph
@@ -0,0 +1,6 @@
+name: clutter
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-wayland-backend --enable-wayland-compositor
+ --enable-egl-backend --enable-evdev-input --enable-x11-backend
diff --git a/strata/gnome/cogl.morph b/strata/gnome/cogl.morph
new file mode 100644
index 00000000..8c9dca76
--- /dev/null
+++ b/strata/gnome/cogl.morph
@@ -0,0 +1,6 @@
+name: cogl
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-wayland-egl-platform --enable-wayland-egl-server
+ --enable-kms-egl-platform --enable-xlib-egl-platform --enable-cogl-gst
diff --git a/strata/gnome/colord.morph b/strata/gnome/colord.morph
new file mode 100644
index 00000000..9a504404
--- /dev/null
+++ b/strata/gnome/colord.morph
@@ -0,0 +1,5 @@
+name: colord
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc
diff --git a/strata/gnome/cracklib.morph b/strata/gnome/cracklib.morph
new file mode 100644
index 00000000..6b373cfa
--- /dev/null
+++ b/strata/gnome/cracklib.morph
@@ -0,0 +1,18 @@
+name: cracklib
+kind: chunk
+build-system: autotools
+configure-commands:
+# cracklib has it's own autogen.sh script, but uses curl to download config.sub & config.guess, we just skip it
+- cd src && autopoint -f && cd m4 && echo EXTRA_DIST = *.m4 > Makefile.am && cd .. && autoreconf -f -i
+- cd src && ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-default-dict=/lib/cracklib/pw_dict
+build-commands:
+- make -C src
+- make -C words
+install-commands:
+- make -C src install
+- install -m644 -D words/cracklib-words.gz $DESTDIR$PREFIX/share/dict/cracklib-words.gz
+- install -v -m755 -d $DESTDIR/lib/cracklib
+system-integration:
+ cracklib-misc:
+ 00-cracklib-create-dict:
+ - create-cracklib-dict /usr/share/dict/cracklib-words.gz
diff --git a/strata/gnome/d-feet.morph b/strata/gnome/d-feet.morph
new file mode 100644
index 00000000..df74d3e0
--- /dev/null
+++ b/strata/gnome/d-feet.morph
@@ -0,0 +1,7 @@
+name: d-feet
+kind: chunk
+build-system: autotools
+configure-commands:
+# Workaround upstream bug https://bugzilla.gnome.org/show_bug.cgi?id=757769
+- sed -i 's/AM_PATH_PYTHON(\[2\.7\])/AM_PATH_PYTHON(\[3\.1\])/g' configure.ac
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-tests
diff --git a/strata/gnome/dconf.morph b/strata/gnome/dconf.morph
new file mode 100644
index 00000000..a49efd36
--- /dev/null
+++ b/strata/gnome/dconf.morph
@@ -0,0 +1,5 @@
+name: dconf
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man
diff --git a/strata/gnome/evolution-data-server.morph b/strata/gnome/evolution-data-server.morph
new file mode 100644
index 00000000..bfa8671a
--- /dev/null
+++ b/strata/gnome/evolution-data-server.morph
@@ -0,0 +1,10 @@
+name: evolution-data-server
+kind: chunk
+build-system: autotools
+configure-commands:
+- |
+ ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \
+ --disable-uoa --with-libdb=no \
+ --enable-vala-bindings --with-krb5=yes \
+ --with-nss-includes=/usr/include/nss \
+ --with-nspr-includes=/usr/include/nspr
diff --git a/strata/gnome/gconf.morph b/strata/gnome/gconf.morph
new file mode 100644
index 00000000..26930945
--- /dev/null
+++ b/strata/gnome/gconf.morph
@@ -0,0 +1,5 @@
+name: gconf
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-orbit --disable-documentation
diff --git a/strata/gnome/gdm.morph b/strata/gnome/gdm.morph
new file mode 100644
index 00000000..0ac70db2
--- /dev/null
+++ b/strata/gnome/gdm.morph
@@ -0,0 +1,24 @@
+name: gdm
+kind: chunk
+build-system: autotools
+configure-commands:
+- |
+ # GDM includes a few stock PAM configurations, we choose the LFS flavor
+ # because of it's simplicity over the others, also it does not require
+ # selinux modules, however we neet to tweak the config a little after install.
+ ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --localstatedir=/var \
+ --with-selinux=no --with-plymouth=no \
+ --enable-gdm-xsession --with-x --with-default-pam-config=lfs
+post-install-commands:
+# Instead of following LFS PAM config to the letter, we redirect the includes
+# to use the systemd installed all purpose 'system-auth' file
+- sed -i 's/system-account/system-auth/g' "$DESTDIR"/etc/pam.d/gdm*
+- sed -i 's/system-password/system-auth/g' "$DESTDIR"/etc/pam.d/gdm*
+- sed -i 's/system-session/system-auth/g' "$DESTDIR"/etc/pam.d/gdm*
+system-integration:
+ gdm-misc:
+ 00-add-gdm-user:
+ - groupadd -g 21 gdm
+ - useradd -c "GDM Daemon Owner" -d /var/lib/gdm -u 21 -g gdm -s /bin/false gdm
+ 00-enable-gdm-unit:
+ - systemctl enable gdm
diff --git a/strata/gnome/geoclue.morph b/strata/gnome/geoclue.morph
new file mode 100644
index 00000000..3be946bb
--- /dev/null
+++ b/strata/gnome/geoclue.morph
@@ -0,0 +1,13 @@
+name: geoclue
+kind: chunk
+build-system: autotools
+configure-commands:
+- |
+ ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \
+ --disable-nmea-source \
+ --with-dbus-service-user=geoclue
+system-integration:
+ geoclue-misc:
+ 00-add-geoclue-user:
+ - groupadd geoclue
+ - useradd -c "GeoClue Owner" -r -g geoclue -s /bin/false geoclue
diff --git a/strata/gnome/glib-networking.morph b/strata/gnome/glib-networking.morph
new file mode 100644
index 00000000..53380583
--- /dev/null
+++ b/strata/gnome/glib-networking.morph
@@ -0,0 +1,9 @@
+name: glib-networking
+kind: chunk
+build-system: autotools
+configure-commands:
+#
+# Tell glib-networking where the system CA certs are found, avoid depending
+# on an installed ca-certificates.
+#
+- ./autogen.sh --prefix="$PREFIX" --with-ca-certificates=/etc/ssl/certs/ca-certificates.crt
diff --git a/strata/gnome/gmime.morph b/strata/gnome/gmime.morph
new file mode 100644
index 00000000..f71efac4
--- /dev/null
+++ b/strata/gnome/gmime.morph
@@ -0,0 +1,6 @@
+name: gmime
+kind: chunk
+build-system: autotools
+pre-configure-commands:
+# Work around upstream bug: https://bugzilla.gnome.org/show_bug.cgi?id=757720
+- sed -i 's/$(INCLUDES)/$(AM_CPPFLAGS)/g' gmime/Makefile.am
diff --git a/strata/gnome/gnome-color-manager.morph b/strata/gnome/gnome-color-manager.morph
new file mode 100644
index 00000000..90ed1815
--- /dev/null
+++ b/strata/gnome/gnome-color-manager.morph
@@ -0,0 +1,7 @@
+name: gnome-color-manager
+kind: chunk
+build-system: autotools
+configure-commands:
+# There is no justification to disable EXIV, we were just
+# too lazy to integrate EXIV
+- ./autogen.sh --prefix="$PREFIX" --disable-exiv
diff --git a/strata/gnome/gnome-control-center.morph b/strata/gnome/gnome-control-center.morph
new file mode 100644
index 00000000..ec2b6409
--- /dev/null
+++ b/strata/gnome/gnome-control-center.morph
@@ -0,0 +1,5 @@
+name: gnome-control-center
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-documentation
diff --git a/strata/gnome/gnome-initial-setup.morph b/strata/gnome/gnome-initial-setup.morph
new file mode 100644
index 00000000..314cc409
--- /dev/null
+++ b/strata/gnome/gnome-initial-setup.morph
@@ -0,0 +1,9 @@
+name: gnome-initial-setup
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc
+system-integration:
+ gnome-initial-set-misc:
+ 01-add-gnome-initial-setup-user:
+ - useradd -c "GNOME Initial Setup Owner" -g gdm -s /bin/false gnome-initial-setup
diff --git a/strata/gnome/gnome-keyring.morph b/strata/gnome/gnome-keyring.morph
new file mode 100644
index 00000000..73fe5298
--- /dev/null
+++ b/strata/gnome/gnome-keyring.morph
@@ -0,0 +1,5 @@
+name: gnome-keyring
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-selinux --enable-pam --with-pam-dir=/lib/security --disable-doc
diff --git a/strata/gnome/gnome-online-accounts.morph b/strata/gnome/gnome-online-accounts.morph
new file mode 100644
index 00000000..0dea9543
--- /dev/null
+++ b/strata/gnome/gnome-online-accounts.morph
@@ -0,0 +1,5 @@
+name: gnome-online-accounts
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gtk-doc --disable-documentation
diff --git a/strata/gnome/gnome-session.morph b/strata/gnome/gnome-session.morph
new file mode 100644
index 00000000..57f1a85b
--- /dev/null
+++ b/strata/gnome/gnome-session.morph
@@ -0,0 +1,5 @@
+name: gnome-session
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man --enable-systemd
diff --git a/strata/gnome/gnome-settings-daemon.morph b/strata/gnome/gnome-settings-daemon.morph
new file mode 100644
index 00000000..3112f778
--- /dev/null
+++ b/strata/gnome/gnome-settings-daemon.morph
@@ -0,0 +1,5 @@
+name: gnome-settings-daemon
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man
diff --git a/strata/gnome/gnome-shell.morph b/strata/gnome/gnome-shell.morph
new file mode 100644
index 00000000..dc58f670
--- /dev/null
+++ b/strata/gnome/gnome-shell.morph
@@ -0,0 +1,5 @@
+name: gnome-shell
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man --enable-compile-warnings=maximum
diff --git a/strata/gnome/gnome-terminal.morph b/strata/gnome/gnome-terminal.morph
new file mode 100644
index 00000000..89ec5964
--- /dev/null
+++ b/strata/gnome/gnome-terminal.morph
@@ -0,0 +1,5 @@
+name: gnome-terminal
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-search-provider
diff --git a/strata/gnome/gnome-themes-standard.morph b/strata/gnome/gnome-themes-standard.morph
new file mode 100644
index 00000000..c5b6702c
--- /dev/null
+++ b/strata/gnome/gnome-themes-standard.morph
@@ -0,0 +1,5 @@
+name: gnome-themes-standard
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gtk2-engine
diff --git a/strata/gnome/gnulib.morph b/strata/gnome/gnulib.morph
new file mode 100644
index 00000000..f1837c94
--- /dev/null
+++ b/strata/gnome/gnulib.morph
@@ -0,0 +1,8 @@
+name: gnulib
+kind: chunk
+build-system: manual
+pre-configure-commands:
+- mkdir -p "$DESTDIR$PREFIX"/share/gnulib
+- cp -r * "$DESTDIR$PREFIX"/share/gnulib
+- mkdir -p "$DESTDIR$PREFIX"/bin
+- ln -s "$DESTDIR$PREFIX"/share/gnulib/gnulib-tool "$DESTDIR$PREFIX"/bin/gnulib-tool
diff --git a/strata/gnome/gnutls.morph b/strata/gnome/gnutls.morph
new file mode 100644
index 00000000..f31cbf12
--- /dev/null
+++ b/strata/gnome/gnutls.morph
@@ -0,0 +1,6 @@
+name: gnutls
+kind: chunk
+build-system: autotools
+configure-commands:
+- make autoreconf
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-nettle-mini --disable-tools --disable-doc
diff --git a/strata/gnome/gvfs.morph b/strata/gnome/gvfs.morph
new file mode 100644
index 00000000..1fde8c82
--- /dev/null
+++ b/strata/gnome/gvfs.morph
@@ -0,0 +1,5 @@
+name: gvfs
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-gphoto2 --disable-documentation
diff --git a/strata/gnome/hicolor-icon-theme.morph b/strata/gnome/hicolor-icon-theme.morph
new file mode 100644
index 00000000..88629b39
--- /dev/null
+++ b/strata/gnome/hicolor-icon-theme.morph
@@ -0,0 +1,7 @@
+name: hicolor-icon-theme
+kind: chunk
+build-system: autotools
+system-integration:
+ hicolor-icon-theme-misc:
+ 00-update-icon-cache:
+ - gtk-update-icon-cache -f -t /usr/share/icons/hicolor
diff --git a/strata/gnome/ibus-anthy.morph b/strata/gnome/ibus-anthy.morph
new file mode 100644
index 00000000..bb48e8bb
--- /dev/null
+++ b/strata/gnome/ibus-anthy.morph
@@ -0,0 +1,5 @@
+name: ibus-anthy
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --with-python=python3 --enable-private-png=yes
diff --git a/strata/gnome/ibus-hangul.morph b/strata/gnome/ibus-hangul.morph
new file mode 100644
index 00000000..a479459b
--- /dev/null
+++ b/strata/gnome/ibus-hangul.morph
@@ -0,0 +1,5 @@
+name: ibus-hangul
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --with-python=python3
diff --git a/strata/gnome/ibus-libpinyin.morph b/strata/gnome/ibus-libpinyin.morph
new file mode 100644
index 00000000..7ad8a349
--- /dev/null
+++ b/strata/gnome/ibus-libpinyin.morph
@@ -0,0 +1,5 @@
+name: ibus-libpinyin
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --with-python=python3 --disable-lua-extension
diff --git a/strata/gnome/ibus.morph b/strata/gnome/ibus.morph
new file mode 100644
index 00000000..f46a1a71
--- /dev/null
+++ b/strata/gnome/ibus.morph
@@ -0,0 +1,9 @@
+name: ibus
+kind: chunk
+build-system: autotools
+configure-commands:
+- |
+ ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \
+ --disable-tests --disable-gconf --enable-dconf \
+ --disable-memconf --disable-ui GSETTINGS_SCHEMA_CONVERT=/usr/bin/false \
+ --with-python=python3 --enable-wayland
diff --git a/strata/gnome/krb5.morph b/strata/gnome/krb5.morph
new file mode 100644
index 00000000..d0a4600e
--- /dev/null
+++ b/strata/gnome/krb5.morph
@@ -0,0 +1,10 @@
+name: krb5
+kind: chunk
+build-system: autotools
+configure-commands:
+- cd src && ./util/reconf --force
+- cd src && ./configure --prefix="$PREFIX" --sysconfdir=/etc --localstatedir=/var/lib --enable-dns
+build-commands:
+- make -C src
+install-commands:
+- make -C src install
diff --git a/strata/gnome/libarchive.morph b/strata/gnome/libarchive.morph
new file mode 100644
index 00000000..bf840f58
--- /dev/null
+++ b/strata/gnome/libarchive.morph
@@ -0,0 +1,6 @@
+name: libarchive
+kind: chunk
+build-system: autotools
+configure-commands:
+- autoreconf -ivf
+- ./configure --prefix="$PREFIX" --disable-acl
diff --git a/strata/gnome/libatasmart.morph b/strata/gnome/libatasmart.morph
new file mode 100644
index 00000000..e8df654e
--- /dev/null
+++ b/strata/gnome/libatasmart.morph
@@ -0,0 +1,6 @@
+name: libatasmart
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh
+- ./configure CFLAGS='-g -O0 -Wp,-U_FORTIFY_SOURCE' --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib --libexecdir=/usr/lib
diff --git a/strata/gnome/libgdata.morph b/strata/gnome/libgdata.morph
new file mode 100644
index 00000000..4ff7c477
--- /dev/null
+++ b/strata/gnome/libgdata.morph
@@ -0,0 +1,6 @@
+name: libgdata
+kind: chunk
+build-system: autotools
+configure-commands:
+# Disable these cause we're too lazy to build libuhttpmock
+- ./autogen.sh --prefix="$PREFIX" --disable-installed-tests --disable-always-build-tests
diff --git a/strata/gnome/libhangul.morph b/strata/gnome/libhangul.morph
new file mode 100644
index 00000000..f3df4601
--- /dev/null
+++ b/strata/gnome/libhangul.morph
@@ -0,0 +1,6 @@
+name: libhangul
+kind: chunk
+build-system: autotools
+pre-configure-commands:
+# Avoid an autotools error at translation build time, simply dont build po directory
+- sed -i 's/SUBDIRS = hangul data tools po/SUBDIRS = hangul data tools/g' Makefile.am
diff --git a/strata/gnome/libmediaart.morph b/strata/gnome/libmediaart.morph
new file mode 100644
index 00000000..43e0812f
--- /dev/null
+++ b/strata/gnome/libmediaart.morph
@@ -0,0 +1,5 @@
+name: libmediaart
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --disable-qt
diff --git a/strata/gnome/libpwquality.morph b/strata/gnome/libpwquality.morph
new file mode 100644
index 00000000..aefed50d
--- /dev/null
+++ b/strata/gnome/libpwquality.morph
@@ -0,0 +1,6 @@
+name: libpwquality
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-securedir=/lib/security --disable-nls
diff --git a/strata/gnome/librest.morph b/strata/gnome/librest.morph
new file mode 100644
index 00000000..34503de3
--- /dev/null
+++ b/strata/gnome/librest.morph
@@ -0,0 +1,9 @@
+name: librest
+kind: chunk
+build-system: autotools
+configure-commands:
+#
+# Tell librest where the system CA certs are found, avoid depending on
+# an installed ca-certificates.
+#
+- ./autogen.sh --prefix="$PREFIX" --with-ca-certificates=/etc/ssl/certs/ca-certificates.crt
diff --git a/strata/gnome/libsecret.morph b/strata/gnome/libsecret.morph
new file mode 100644
index 00000000..b8af29b1
--- /dev/null
+++ b/strata/gnome/libsecret.morph
@@ -0,0 +1,5 @@
+name: libsecret
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-manpages
diff --git a/strata/gnome/mozjs17.morph b/strata/gnome/mozjs17.morph
new file mode 100644
index 00000000..9ef98854
--- /dev/null
+++ b/strata/gnome/mozjs17.morph
@@ -0,0 +1,18 @@
+name: mozjs17
+kind: chunk
+build-system: manual
+configure-commands:
+- |
+ cd js/src;
+ ./configure --prefix="$PREFIX" \
+ --sysconfdir=/etc \
+ --with-system-nspr \
+ --with-system-ffi \
+ --enable-threadsafe
+build-commands:
+- |
+ cd js/src;
+ make
+install-commands:
+- cd js/src;
+ make DESTDIR="$DESTDIR" install
diff --git a/strata/gnome/mozjs24.morph b/strata/gnome/mozjs24.morph
new file mode 100644
index 00000000..a3254305
--- /dev/null
+++ b/strata/gnome/mozjs24.morph
@@ -0,0 +1,18 @@
+name: mozjs24
+kind: chunk
+build-system: manual
+configure-commands:
+- |
+ cd js/src;
+ ./configure --prefix="$PREFIX" \
+ --sysconfdir=/etc \
+ --with-system-nspr \
+ --with-system-ffi \
+ --enable-threadsafe
+build-commands:
+- |
+ cd js/src;
+ make
+install-commands:
+- cd js/src;
+ make DESTDIR="$DESTDIR" install
diff --git a/strata/gnome/mutter.morph b/strata/gnome/mutter.morph
new file mode 100644
index 00000000..334e3306
--- /dev/null
+++ b/strata/gnome/mutter.morph
@@ -0,0 +1,5 @@
+name: mutter
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --enable-compile-warnings=no
diff --git a/strata/gnome/nautilus.morph b/strata/gnome/nautilus.morph
new file mode 100644
index 00000000..3afe7fd7
--- /dev/null
+++ b/strata/gnome/nautilus.morph
@@ -0,0 +1,5 @@
+name: nautilus
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-xmp
diff --git a/strata/gnome/nettle.morph b/strata/gnome/nettle.morph
new file mode 100644
index 00000000..80bdbf51
--- /dev/null
+++ b/strata/gnome/nettle.morph
@@ -0,0 +1,6 @@
+name: nettle
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./.bootstrap
+- ./configure --prefix="$PREFIX" --libdir="$PREFIX"/lib --sysconfdir=/etc --disable-documentation --enable-mini-gmp
diff --git a/strata/gnome/p11-kit.morph b/strata/gnome/p11-kit.morph
new file mode 100644
index 00000000..8f88969a
--- /dev/null
+++ b/strata/gnome/p11-kit.morph
@@ -0,0 +1,5 @@
+name: p11-kit
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --without-trust-paths
diff --git a/strata/gnome/polkit.morph b/strata/gnome/polkit.morph
new file mode 100644
index 00000000..d903ae0f
--- /dev/null
+++ b/strata/gnome/polkit.morph
@@ -0,0 +1,10 @@
+name: polkit
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man-pages --disable-gtk-doc --enable-libsystemd-login=yes
+system-integration:
+ polkit-misc:
+ 00-add-polkitd-user:
+ - groupadd -fg 27 polkitd
+ - useradd -c "PolicyKit Daemon Owner" -d /etc/polkit-1 -u 27 -g polkitd -s /bin/false polkitd
diff --git a/strata/gnome/telepathy-glib.morph b/strata/gnome/telepathy-glib.morph
new file mode 100644
index 00000000..88a82c89
--- /dev/null
+++ b/strata/gnome/telepathy-glib.morph
@@ -0,0 +1,5 @@
+name: telepathy-glib
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-Werror
diff --git a/strata/gnome/telepathy-logger.morph b/strata/gnome/telepathy-logger.morph
new file mode 100644
index 00000000..38c90539
--- /dev/null
+++ b/strata/gnome/telepathy-logger.morph
@@ -0,0 +1,5 @@
+name: telepathy-logger
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc
diff --git a/strata/gnome/udisks.morph b/strata/gnome/udisks.morph
new file mode 100644
index 00000000..785fab39
--- /dev/null
+++ b/strata/gnome/udisks.morph
@@ -0,0 +1,5 @@
+name: udisks
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-fhs-media --disable-gtk-doc --disable-man
diff --git a/strata/gnome/upower.morph b/strata/gnome/upower.morph
new file mode 100644
index 00000000..00e828bd
--- /dev/null
+++ b/strata/gnome/upower.morph
@@ -0,0 +1,5 @@
+name: upower
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-man-pages
diff --git a/strata/gnome/vte.morph b/strata/gnome/vte.morph
new file mode 100644
index 00000000..d4501912
--- /dev/null
+++ b/strata/gnome/vte.morph
@@ -0,0 +1,5 @@
+name: vte
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-introspection=yes --without-pcre2
diff --git a/strata/graphics-common.morph b/strata/graphics-common.morph
index 5ba4d200..63907275 100644
--- a/strata/graphics-common.morph
+++ b/strata/graphics-common.morph
@@ -4,6 +4,7 @@ build-depends:
- morph: strata/glib-common.morph
- morph: strata/mesa-common.morph
- morph: strata/x-common.morph
+- morph: strata/icu-common.morph
chunks:
- name: pixman
morph: strata/graphics-common/pixman.morph
@@ -14,7 +15,9 @@ chunks:
repo: upstream:freetype2
ref: ec8853cd18e1a0c275372769bdad37a79550ed66
unpetrify-ref: VER-2-5-3
+ build-system: autotools
- name: fontconfig
+ morph: strata/graphics-common/fontconfig.morph
repo: upstream:fontconfig
ref: 9260b7ec39c34ce68d74e16d47917290a8c3f35a
unpetrify-ref: 2.11.1
@@ -25,18 +28,26 @@ chunks:
repo: upstream:freefont-otf
ref: 75fa95a912718bb94a135d4bf6b13bb38e186ce7
unpetrify-ref: baserock/morph
+- name: ttf-alee
+ morph: strata/graphics-common/ttf-alee.morph
+ repo: upstream:ttf-alee
+ ref: 97ededc81c03d0a7333a15a9a1e6acc4d0e5ac50
+ unpetrify-ref: fonts-alee_13.1
- name: libpng
repo: upstream:libpng
ref: 88dd30b232362b65cca374dda39096888163dd6b
unpetrify-ref: libpng-1.6.16-signed
+ build-system: autotools
- name: libjpeg
repo: upstream:libjpeg
ref: f57ac58ac664ede6bc6e8cd9d88e0edaa366e21a
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: libtiff
repo: upstream:libtiff
ref: 2f83c385ff3d5493602308b62ca6d7707725b4fd
unpetrify-ref: Release-v4-0-3
+ build-system: autotools
- name: cairo
morph: strata/graphics-common/cairo.morph
repo: upstream:cairo
@@ -47,9 +58,28 @@ chunks:
- freetype2
- pixman
- libpng
+- name: colm-tarball
+ repo: upstream:colm-tarball
+ ref: 404ae0f284a3b2d41fcdb53826550e4dfec5c65c
+ unpetrify-ref: colm-0.12.0
+ build-system: autotools
+- name: ragel-tarball
+ repo: upstream:ragel-tarball
+ ref: eafd7a3974e8605fd02794269db6114a3446e016
+ unpetrify-ref: ragel-6.9
+ build-system: autotools
+ build-depends:
+ - colm-tarball
- name: harfbuzz
repo: upstream:harfbuzz
- ref: 09b5393874e56fcfd63a92d28e6c1c2ddeee0942
- unpetrify-ref: baserock/0.9.12
+ ref: 432ffc47a46d41bea17d839d0d3980e654c6e638
+ unpetrify-ref: 1.0.4
+ build-system: autotools
build-depends:
- freetype2
+ - ragel-tarball
+- name: libwebp
+ repo: upstream:libwebp
+ ref: fcd94e925a9377cccfcf9de6db278126a52b97a4
+ unpetrify-ref: v0.4.3-rc1
+ build-system: autotools
diff --git a/strata/graphics-common/cairo.morph b/strata/graphics-common/cairo.morph
index f91ac385..cc5a0725 100644
--- a/strata/graphics-common/cairo.morph
+++ b/strata/graphics-common/cairo.morph
@@ -2,4 +2,4 @@ name: cairo
kind: chunk
build-system: autotools
configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --enable-glesv2
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --enable-glesv2
diff --git a/strata/graphics-common/fontconfig.morph b/strata/graphics-common/fontconfig.morph
new file mode 100644
index 00000000..08a228f5
--- /dev/null
+++ b/strata/graphics-common/fontconfig.morph
@@ -0,0 +1,7 @@
+name: fontconfig
+kind: chunk
+build-system: autotools
+system-integration:
+ fontconfig-misc:
+ 00-update-fc-cache:
+ - fc-cache -f -v
diff --git a/strata/graphics-common/pixman.morph b/strata/graphics-common/pixman.morph
index d09b3df3..7942a964 100644
--- a/strata/graphics-common/pixman.morph
+++ b/strata/graphics-common/pixman.morph
@@ -2,4 +2,4 @@ name: pixman
kind: chunk
build-system: autotools
configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --disable-arm-iwmmxt --disable-arm-iwmmxt2
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-arm-iwmmxt --disable-arm-iwmmxt2
diff --git a/strata/graphics-common/ttf-alee.morph b/strata/graphics-common/ttf-alee.morph
new file mode 100644
index 00000000..b25e699f
--- /dev/null
+++ b/strata/graphics-common/ttf-alee.morph
@@ -0,0 +1,5 @@
+name: ttf-alee
+kind: chunk
+install-commands:
+- mkdir -p "$DESTDIR"/usr/share/fonts/truetype/alee
+- install -p *.ttf "$DESTDIR"/usr/share/fonts/truetype/alee
diff --git a/strata/gtk-deps.morph b/strata/gtk-deps.morph
index 50f43603..0ebd5d02 100644
--- a/strata/gtk-deps.morph
+++ b/strata/gtk-deps.morph
@@ -7,10 +7,10 @@ build-depends:
- morph: strata/x-common.morph
chunks:
- name: pango
- morph: strata/gtk-deps/pango.morph
repo: upstream:pango
- ref: e0a21abf52a0b7588b1aa3357818948816ed9103
- unpetrify-ref: 1.36.8
+ ref: 29a712f1af7bbb15bdc9d7e09cbf58517edf8c15
+ unpetrify-ref: 1.38.0
+ build-system: autotools
- name: shared-mime-info
morph: strata/gtk-deps/shared-mime-info.morph
repo: upstream:shared-mime-info
@@ -23,16 +23,33 @@ chunks:
unpetrify-ref: 2.30.8
- name: atk
repo: upstream:atk
- ref: 3f9e43b94364053fd16eb53391667d161d0dae12
- unpetrify-ref: ATK_2_16_0
+ ref: eacc351ec797f5fe477844e3012d460c195b4d88
+ unpetrify-ref: ATK_2_18_0
+ build-system: autotools
- name: at-spi2-core
+ morph: strata/gtk-deps/at-spi2-core.morph
repo: upstream:at-spi2-core
- ref: 96c2842088008670e72739ea7921d654487a57fb
- unpetrify-ref: AT_SPI2_CORE_2_14_1
+ ref: 703990c0c9b39aa98fa37d07e23af88cf7549388
+ unpetrify-ref: AT_SPI2_CORE_2_18_1
- name: at-spi2-atk
+ morph: strata/gtk-deps/at-spi2-atk.morph
repo: upstream:at-spi2-atk
- ref: 2c220ff6565c4f02428a0c80267616a677e81ac9
- unpetrify-ref: AT_SPI2_ATK_2_14_1
+ ref: 94e7613c179960b71cb3e8541623bc0c87626f7c
+ unpetrify-ref: AT_SPI2_ATK_2_18_1
build-depends:
- at-spi2-core
- atk
+- name: libcroco
+ repo: upstream:libcroco
+ ref: 9207f349d1c97618ab38e6b095207bbd8184d844
+ unpetrify-ref: 0.6.8-30-g9207f34
+ build-system: autotools
+- name: librsvg
+ repo: upstream:librsvg
+ ref: 25d5f8b7076535fecb972d6454807ba56452991a
+ unpetrify-ref: 2.40.10
+ build-system: autotools
+ build-depends:
+ - gdk-pixbuf
+ - libcroco
+ - pango
diff --git a/strata/gtk-deps/at-spi2-atk.morph b/strata/gtk-deps/at-spi2-atk.morph
new file mode 100644
index 00000000..ae15e7f1
--- /dev/null
+++ b/strata/gtk-deps/at-spi2-atk.morph
@@ -0,0 +1,5 @@
+name: at-spi2-atk
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc
diff --git a/strata/gtk-deps/at-spi2-core.morph b/strata/gtk-deps/at-spi2-core.morph
new file mode 100644
index 00000000..ec641284
--- /dev/null
+++ b/strata/gtk-deps/at-spi2-core.morph
@@ -0,0 +1,5 @@
+name: at-spi2-core
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc
diff --git a/strata/gtk-deps/gdk-pixbuf.morph b/strata/gtk-deps/gdk-pixbuf.morph
index c89c75c8..92655e30 100644
--- a/strata/gtk-deps/gdk-pixbuf.morph
+++ b/strata/gtk-deps/gdk-pixbuf.morph
@@ -1,6 +1,8 @@
name: gdk-pixbuf
kind: chunk
build-system: autotools
-install-commands:
-- make DESTDIR=$DESTDIR install
-- LD_LIBRARY_PATH=$DESTDIR/usr/lib $DESTDIR/usr/bin/gdk-pixbuf-query-loaders > $DESTDIR/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
+system-integration:
+ gdk-pixbuf-misc:
+ 01-query-loaders:
+ - mkdir -p /usr/lib/gdk-pixbuf-2.0/2.10.0/
+ - /usr/bin/gdk-pixbuf-query-loaders > /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
diff --git a/strata/gtk-deps/pango.morph b/strata/gtk-deps/pango.morph
deleted file mode 100644
index 82b00ee3..00000000
--- a/strata/gtk-deps/pango.morph
+++ /dev/null
@@ -1,8 +0,0 @@
-name: pango
-kind: chunk
-build-system: autotools
-system-integration:
- pango-misc:
- 01-setup-modules:
- - mkdir -p /usr/etc/pango/
- - /usr/bin/pango-querymodules > /usr/etc/pango/pango.modules
diff --git a/strata/gtk2.morph b/strata/gtk2.morph
index dd2f30fa..4c8db88a 100644
--- a/strata/gtk2.morph
+++ b/strata/gtk2.morph
@@ -3,10 +3,10 @@ kind: stratum
description: the gtk2 stratum
build-depends:
- morph: strata/gtk-deps.morph
-- morph: strata/x-generic.morph
+- morph: strata/x-common.morph
chunks:
- name: gtk+
morph: strata/gtk2/gtk+.morph
repo: upstream:gtk+
- ref: e6333a1a374591fef456f7fe73942226b5b8b388
- unpetrify-ref: 2.24.27
+ ref: b5b055721378ffe0269613e49ab5741a315eeb00
+ unpetrify-ref: 2.24.28
diff --git a/strata/gtk2/gtk+.morph b/strata/gtk2/gtk+.morph
index abbf2510..bdc14cc6 100644
--- a/strata/gtk2/gtk+.morph
+++ b/strata/gtk2/gtk+.morph
@@ -4,8 +4,12 @@ build-system: autotools
configure-commands:
- gdk-pixbuf-query-loaders > loader.cache
- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX"
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc
build-commands:
- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make
install-commands:
- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR"
+system-integration:
+ gtk2-misc:
+ 00-update-im2-cache:
+ - gtk-query-immodules-2.0 --update-cache
diff --git a/strata/gtk3.morph b/strata/gtk3.morph
index f03417a2..4e2537a4 100644
--- a/strata/gtk3.morph
+++ b/strata/gtk3.morph
@@ -4,15 +4,10 @@ description: the gtk3 stratum
build-depends:
- morph: strata/gtk-deps.morph
- morph: strata/wayland-generic.morph
+- morph: strata/x-common.morph
chunks:
-- name: libepoxy
- repo: upstream:libepoxy
- ref: 7422de5b4be7b19d789136b3bb5f932de42db27c
- unpetrify-ref: v1.2
- name: gtk3
morph: strata/gtk3/gtk3.morph
repo: upstream:gtk+
- ref: a816ccd4968f1e221b92bfd1e2b2dc27703d6db5
- unpetrify-ref: 3.16.0
- build-depends:
- - libepoxy
+ ref: 1ed442180d65da78d071019c0dc0d365932e4503
+ unpetrify-ref: 3.18.2
diff --git a/strata/gtk3/gtk3.morph b/strata/gtk3/gtk3.morph
index 4542dc15..86e15e89 100644
--- a/strata/gtk3/gtk3.morph
+++ b/strata/gtk3/gtk3.morph
@@ -4,8 +4,12 @@ build-system: autotools
configure-commands:
- gdk-pixbuf-query-loaders > loader.cache
- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX" --enable-wayland-backend
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc
build-commands:
- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make
install-commands:
- GDK_PIXBUF_MODULE_FILE="$(pwd)/loader.cache" make install DESTDIR="$DESTDIR"
+system-integration:
+ gtk3-misc:
+ 00-update-im3-cache:
+ - gtk-query-immodules-3.0 --update-cache
diff --git a/strata/icu-common.morph b/strata/icu-common.morph
new file mode 100644
index 00000000..51a44361
--- /dev/null
+++ b/strata/icu-common.morph
@@ -0,0 +1,10 @@
+name: icu-common
+kind: stratum
+build-depends:
+- morph: strata/coreutils-common.morph
+chunks:
+- name: icu
+ morph: strata/icu-common/icu.morph
+ repo: upstream:icu
+ ref: ba023548a3bff7277cbea4acade3042ce9d8949e
+ unpetrify-ref: baserock/morph
diff --git a/strata/icu-common/icu.morph b/strata/icu-common/icu.morph
new file mode 100644
index 00000000..42a7bc58
--- /dev/null
+++ b/strata/icu-common/icu.morph
@@ -0,0 +1,20 @@
+name: icu
+kind: chunk
+configure-commands:
+- |
+ # As per commit 8874a7c7, We issue this sed command when
+ # building ICU libraries on arm architectures.
+ cpu=$(echo $TARGET | cut -d '-' -f 1)
+ case "$cpu" in
+ *arm*)
+ sed -e 's/LDFLAGSICUDT/#LDFLAGSICUDT/' -i source/config/mh-linux
+ ;;
+ *)
+ ;;
+ esac
+ cd source
+ ./runConfigureICU Linux --prefix=/usr --sysconfdir=/etc
+build-commands:
+- cd source; unset TARGET ; make
+install-commands:
+- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install
diff --git a/strata/input-common.morph b/strata/input-common.morph
index b67bcffe..c2ac35d7 100644
--- a/strata/input-common.morph
+++ b/strata/input-common.morph
@@ -3,11 +3,13 @@ kind: stratum
build-depends:
- morph: strata/foundation.morph
- morph: strata/xorg-util-macros-common.morph
+- morph: strata/x-common.morph
chunks:
- name: mtdev
repo: upstream:mtdev-git
ref: 4381b78fea54de0e775bf54952b2f95e5a06c57d
unpetrify-ref: v1.1.5
+ build-system: autotools
- name: xkeyboard-config
morph: strata/input-common/xkeyboard-config.morph
repo: upstream:xkeyboard-config
@@ -17,10 +19,19 @@ chunks:
repo: upstream:libevdev
ref: 6f03fd49fb949e46ebccb5dfb54489584896c791
unpetrify-ref: libevdev-1.4.2
+ build-system: autotools
- name: libinput
repo: upstream:libinput
- ref: 12df380698531472d495534ed356722478563707
- unpetrify-ref: 0.15.0
+ ref: a52cc616b4c00d0975a3311a2a06057bdb419ba2
+ unpetrify-ref: 1.0.1
+ build-system: autotools
build-depends:
- mtdev
- libevdev
+- name: libxkbcommon-no-x11
+ repo: upstream:xorg-lib-libxkbcommon
+ ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28
+ morph: strata/input-common/libxkbcommon-no-x11.morph
+ unpetrify-ref: xkbcommon-0.5.0
+ build-depends:
+ - xkeyboard-config
diff --git a/strata/input-common/libxkbcommon-no-x11.morph b/strata/input-common/libxkbcommon-no-x11.morph
new file mode 100644
index 00000000..95165aaf
--- /dev/null
+++ b/strata/input-common/libxkbcommon-no-x11.morph
@@ -0,0 +1,12 @@
+name: libxkbcommon-no-x11
+kind: chunk
+
+description: |
+ xkbcommon is a library to handle keyboard descriptions.
+
+ This version is built without X11 support. If built with X11 support,
+ it depends on the xcb-xkb library.
+
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-x11
diff --git a/strata/input-common/xkeyboard-config.morph b/strata/input-common/xkeyboard-config.morph
index ad33b422..2195befe 100644
--- a/strata/input-common/xkeyboard-config.morph
+++ b/strata/input-common/xkeyboard-config.morph
@@ -1,7 +1,7 @@
name: xkeyboard-config
kind: chunk
configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --disable-runtime-deps
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-runtime-deps
install-commands:
- mkdir -p "$DESTDIR"/"$PREFIX"/share/X11/xkb/
- make install DESTDIR="$DESTDIR"
diff --git a/strata/input-genivi.morph b/strata/input-genivi.morph
new file mode 100644
index 00000000..5e86e704
--- /dev/null
+++ b/strata/input-genivi.morph
@@ -0,0 +1,39 @@
+name: input-genivi
+kind: stratum
+description: |
+ Input components for GENIVI Demo Platform. GDP needs libinput 0.7,
+ because 0.8+ changed function signatures that weston uses.
+build-depends:
+- morph: strata/foundation.morph
+- morph: strata/xorg-util-macros-common.morph
+chunks:
+- name: mtdev
+ repo: upstream:mtdev-git
+ ref: 4381b78fea54de0e775bf54952b2f95e5a06c57d
+ unpetrify-ref: v1.1.5
+ build-system: autotools
+- name: xkeyboard-config
+ morph: strata/input-genivi/xkeyboard-config.morph
+ repo: upstream:xkeyboard-config
+ ref: 26f344c93f8c6141e9233eb68088ba4fd56bc9ef
+ unpetrify-ref: xkeyboard-config-2.14
+- name: libevdev
+ repo: upstream:libevdev
+ ref: 6f03fd49fb949e46ebccb5dfb54489584896c791
+ unpetrify-ref: libevdev-1.4.2
+ build-system: autotools
+- name: libinput@genivi
+ repo: upstream:libinput
+ ref: 06e2f522a4ab5ea0a1de68cce1b5f9fff568ed4f
+ unpetrify-ref: 0.7.0
+ build-system: autotools
+ build-depends:
+ - mtdev
+ - libevdev
+- name: libxkbcommon-no-x11
+ repo: upstream:xorg-lib-libxkbcommon
+ ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28
+ morph: strata/input-genivi/libxkbcommon-no-x11.morph
+ unpetrify-ref: xkbcommon-0.5.0
+ build-depends:
+ - xkeyboard-config
diff --git a/strata/input-genivi/libxkbcommon-no-x11.morph b/strata/input-genivi/libxkbcommon-no-x11.morph
new file mode 100644
index 00000000..95165aaf
--- /dev/null
+++ b/strata/input-genivi/libxkbcommon-no-x11.morph
@@ -0,0 +1,12 @@
+name: libxkbcommon-no-x11
+kind: chunk
+
+description: |
+ xkbcommon is a library to handle keyboard descriptions.
+
+ This version is built without X11 support. If built with X11 support,
+ it depends on the xcb-xkb library.
+
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-x11
diff --git a/strata/input-genivi/xkeyboard-config.morph b/strata/input-genivi/xkeyboard-config.morph
new file mode 100644
index 00000000..2195befe
--- /dev/null
+++ b/strata/input-genivi/xkeyboard-config.morph
@@ -0,0 +1,7 @@
+name: xkeyboard-config
+kind: chunk
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-runtime-deps
+install-commands:
+- mkdir -p "$DESTDIR"/"$PREFIX"/share/X11/xkb/
+- make install DESTDIR="$DESTDIR"
diff --git a/strata/libdrm-common.morph b/strata/libdrm-common.morph
index 16ef2375..d4da4408 100644
--- a/strata/libdrm-common.morph
+++ b/strata/libdrm-common.morph
@@ -7,10 +7,11 @@ chunks:
repo: upstream:xorg-lib-libpciaccess
ref: f99c2e4199ce37f6f94428df504427f67c3ec543
unpetrify-ref: libpciaccess-0.13.3
+ build-system: autotools
- name: drm
repo: upstream:drm
morph: strata/libdrm-common/drm.morph
- ref: 5f7b6723e1bed755c230817eea0563bab5b2a8a7
- unpetrify-ref: libdrm-2.4.60
+ ref: ab2fadabde3829b1ec56bd4756165dd9bd281488
+ unpetrify-ref: libdrm-2.4.64
build-depends:
- xorg-lib-libpciaccess
diff --git a/strata/libdrm-common/drm.morph b/strata/libdrm-common/drm.morph
index 4b0bdcc1..fd995148 100644
--- a/strata/libdrm-common/drm.morph
+++ b/strata/libdrm-common/drm.morph
@@ -1,17 +1,7 @@
name: drm
kind: chunk
build-system: autotools
-pre-configure-commands:
- # Tegra requires a new coherent BO attribute, not currently upstream, so
- # patch it here
- - sed -i '/NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3)/a#define NOUVEAU_GEM_DOMAIN_COHERENT (1
- << 4)' include/drm/nouveau_drm.h
- - |
- sed -i '/info->domain |= NOUVEAU_GEM_DOMAIN_MAPPABLE;/a\
- if (bo->flags & NOUVEAU_BO_COHERENT)\
- info->domain |= NOUVEAU_GEM_DOMAIN_COHERENT;' nouveau/abi16.c
- - sed -i '/NOUVEAU_BO_NOSNOOP 0x20000000/a#define NOUVEAU_BO_COHERENT 0x10000000'
- nouveau/nouveau.h
configure-commands:
-- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX" --enable-tegra-experimental-api --enable-freedreno-experimental-api
+- |
+ ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \
+ --enable-tegra-experimental-api
diff --git a/strata/libsoup-common/libsoup.morph b/strata/libsoup-common/libsoup.morph
index 0a5ebef6..804925aa 100644
--- a/strata/libsoup-common/libsoup.morph
+++ b/strata/libsoup-common/libsoup.morph
@@ -3,4 +3,4 @@ kind: chunk
build-system: autotools
configure-commands:
- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX" --disable-tls-check
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc --disable-tls-check
diff --git a/strata/llvm-common.morph b/strata/llvm-common.morph
index 1291e062..b12f4307 100644
--- a/strata/llvm-common.morph
+++ b/strata/llvm-common.morph
@@ -6,5 +6,5 @@ chunks:
- name: llvm
morph: strata/llvm-common/llvm.morph
repo: upstream:llvm
- ref: a93239b7c6f0d78cb8836768c3ffbc39fb15b79f
- unpetrify-ref: release_33
+ ref: 0776facd2ee120ca6286cb2109356e05e4085bfc
+ unpetrify-ref: release_37
diff --git a/strata/llvm-common/llvm.morph b/strata/llvm-common/llvm.morph
index d47d1837..0d4f07c4 100644
--- a/strata/llvm-common/llvm.morph
+++ b/strata/llvm-common/llvm.morph
@@ -1,9 +1,11 @@
name: llvm
-kind: chunk
description: Low Level Virtual Machine
-build-system: autotools
+kind: chunk
+build-system: cmake
configure-commands:
-- ./configure --prefix="$PREFIX" --sysconfdir=/etc --enable-shared --enable-targets=host
- --enable-optimized --disable-assertions
+- mkdir o
+- cd o && cmake -DCMAKE_INSTALL_PREFIX="$PREFIX" -DCMAKE_BUILD_TYPE=Release ..
build-commands:
-- make $MAKEFLAGS
+- cd o && make
+install-commands:
+- cd o && make DESTDIR="$DESTDIR" install
diff --git a/strata/lorry-controller.morph b/strata/lorry-controller.morph
index 00ae5752..57e34185 100644
--- a/strata/lorry-controller.morph
+++ b/strata/lorry-controller.morph
@@ -12,5 +12,5 @@ chunks:
- name: lorry-controller
morph: strata/lorry-controller/lorry-controller.morph
repo: baserock:baserock/lorry-controller
- ref: f3f59d1415bfdb18f17bd910b829a8d128c1562a
+ ref: 05ce93f191039df06a812a085476ba60af5a2cb6
unpetrify-ref: master
diff --git a/strata/lorry.morph b/strata/lorry.morph
index 3f5722ee..c40ce664 100644
--- a/strata/lorry.morph
+++ b/strata/lorry.morph
@@ -18,14 +18,17 @@ chunks:
repo: upstream:bzr-tarball
ref: e61c7edb4789abcd0f73c30fe719fa6fea478a52
unpetrify-ref: baserock/morph
+ build-system: python-distutils
- name: python-fastimport
repo: upstream:python-fastimport
ref: 6500a5e7d82651ade9002d44e3ecc71a50302616
unpetrify-ref: baserock/morph
+ build-system: python-distutils
- name: bzr-fastimport
repo: upstream:bzr-fastimport
ref: b3cda9967f857127bd4dab5eb72223a95916f5ea
unpetrify-ref: baserock/morph
+ build-system: python-distutils
build-depends:
- bzr-tarball
- python-fastimport
@@ -55,13 +58,14 @@ chunks:
repo: upstream:perl-dbd-sqlite-tarball
ref: 485b97be9f2f2abf5a40923b5fd85f75714a8c02
unpetrify-ref: baserock/morph
+ build-system: cpan
build-depends:
- perl-dbi-tarball
- name: libserf
morph: strata/lorry/libserf.morph
repo: upstream:libserf-tarball
- ref: 6f61a1acd01dc2ad1d2f5c1f7458702c77c69f9c
- unpetrify-ref: baserock/morph
+ ref: f143c3cab79c59dd57124f19d16ac35253843136
+ unpetrify-ref: master
build-depends:
- libapr
- libapr-util
@@ -106,7 +110,7 @@ chunks:
- name: lorry
morph: strata/lorry/lorry.morph
repo: baserock:baserock/lorry
- ref: a55f642cd3e2d7e330cf96ff9f9eb5d03ae39192
+ ref: 37ebbacd09145fa6bbaf54dac2a211a5d83f01a5
unpetrify-ref: master
build-depends:
- bzr-tarball
diff --git a/strata/mesa-common.morph b/strata/mesa-common.morph
index 29d2a746..3e701157 100644
--- a/strata/mesa-common.morph
+++ b/strata/mesa-common.morph
@@ -5,10 +5,18 @@ build-depends:
- morph: strata/llvm-common.morph
- morph: strata/libdrm-common.morph
- morph: strata/wayland-generic.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
+- morph: strata/x-common.morph
chunks:
- name: mesa
morph: strata/mesa-common/mesa.morph
repo: upstream:mesa
- ref: 635ad274470a064100ff6aa38ede83d748ae07cf
- unpetrify-ref: baserock/mesa-10.6.0-rc1-jetson
+ ref: 4f1e500150be2e82a2d7eb954f7198cc0c5cbec1
+ unpetrify-ref: mesa-11.0.0
+- name: libepoxy
+ repo: upstream:libepoxy
+ ref: e2c33af5bfcfc9d168f9e776156dd47c33f428b3
+ unpetrify-ref: v1.3.1
+ build-system: autotools
+ build-depends:
+ - mesa
diff --git a/strata/mesa-common/mesa.morph b/strata/mesa-common/mesa.morph
index 2a3fe96a..b9268a64 100644
--- a/strata/mesa-common/mesa.morph
+++ b/strata/mesa-common/mesa.morph
@@ -14,9 +14,9 @@ configure-commands:
GALLIUMDRIVERS=yes
;;
esac
- ./autogen.sh --prefix="$PREFIX" \
+ ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \
--enable-gles2 \
- --disable-glx \
- --with-egl-platforms=drm,wayland \
+ --with-egl-platforms=drm,wayland,x11 \
--with-gallium-drivers="$GALLIUMDRIVERS" \
- --with-dri-drivers="$DRIDRIVERS"
+ --with-dri-drivers="$DRIDRIVERS" \
+ --disable-llvm-shared-libs
diff --git a/strata/morph-utils.morph b/strata/morph-utils.morph
index f5e3568a..7acc186a 100644
--- a/strata/morph-utils.morph
+++ b/strata/morph-utils.morph
@@ -4,7 +4,7 @@ build-depends:
- morph: strata/core.morph
- morph: strata/ostree-core.morph
- morph: strata/python-cliapp.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
- morph: strata/python-pygobject.morph
- morph: strata/python-wsgi.morph
chunks:
@@ -34,10 +34,12 @@ chunks:
repo: upstream:python-packages/pylru
ref: 221dd259f5c34562c835611d1cf62384b9019da4
unpetrify-ref: master
+ build-system: python-distutils
- name: morph
repo: baserock:baserock/morph
- ref: 60c378c55d5d0ef89184b49ae95e445f8de422e3
+ ref: fad8048de66fe6aeaa0478864914bb773f51ed3e
unpetrify-ref: master
+ build-system: python-distutils
build-depends:
- cmdtest
- pyfilesystem
@@ -45,12 +47,8 @@ chunks:
# This chunk isn't required to use Morph, but is required to do automated
# migrations within the definitions.git repo.
-#
-# Currently we include a forked version that includes some support for
-# preserving blank lines. This is quite useful when operating on .morph files.
-# The patches have been submitted upstream here:
-# https://bitbucket.org/ruamel/yaml/pull-request/3
- name: ruamel.yaml
repo: upstream:python-packages/ruamel.yaml
- ref: 840b3ccdb306c6aa6d874474e621ae5596595ae4
- unpetrify-ref: baserock/sam/blank-line-preservation-1
+ ref: f3de88b82bf5e3902c44f6c30aed065e56626ee6
+ unpetrify-ref: 0.10.5
+ build-system: python-distutils
diff --git a/strata/multimedia-common.morph b/strata/multimedia-common.morph
index 2eaedabf..94278bc8 100644
--- a/strata/multimedia-common.morph
+++ b/strata/multimedia-common.morph
@@ -8,22 +8,26 @@ chunks:
repo: upstream:ogg-git
ref: 9b2ba419aecb4a1c97114545d57174593dc13111
unpetrify-ref: master
+ build-system: autotools
- name: libvorbis
repo: upstream:libvorbis-git
ref: 7187e7a48f0c3ba32cc080f6bc3d921fe4ec6cc2
unpetrify-ref: master
+ build-system: autotools
build-depends:
- ogg
- name: tremor
repo: upstream:tremor
ref: b56ffce0c0773ec5ca04c466bc00b1bbcaf65aef
unpetrify-ref: master
+ build-system: autotools
build-depends:
- ogg
- name: flac
repo: upstream:flac
ref: 6ced857c253d5da286bf31adfd74a627aaa43c77
unpetrify-ref: master
+ build-system: autotools
build-depends:
- ogg
- name: libmad
diff --git a/strata/multimedia-common/libmad.morph b/strata/multimedia-common/libmad.morph
index 839adc15..5e9b1987 100644
--- a/strata/multimedia-common/libmad.morph
+++ b/strata/multimedia-common/libmad.morph
@@ -7,4 +7,4 @@ configure-commands:
case $MORPH_ARCH in
mips64*) ARCH_FLAGS="--enable-fpm=64bit" ;;
esac
- ./configure --prefix="$PREFIX" $ARCH_FLAGS
+ ./configure --prefix="$PREFIX" --sysconfdir=/etc $ARCH_FLAGS
diff --git a/strata/multimedia-gstreamer-0.10.morph b/strata/multimedia-gstreamer-0.10.morph
index 51230de2..a9c84ca4 100644
--- a/strata/multimedia-gstreamer-0.10.morph
+++ b/strata/multimedia-gstreamer-0.10.morph
@@ -11,22 +11,26 @@ chunks:
repo: upstream:orc
ref: b4f7fcaf99a4d952e59f2a9fa9286d24cc4b3a5a
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: gstreamer@0.10
repo: upstream:gstreamer
ref: 1bb950008f4656f6a6153fa88a8ebb5a39fbe84f
unpetrify-ref: baserock/morph/0.10
+ build-system: autotools
build-depends:
- orc
- name: gstreamer-plugins-base@0.10
repo: upstream:gstreamer-plugins-base
ref: 960c596309dbb983a1d733259adccc45c47006a2
unpetrify-ref: baserock/morph/0.10
+ build-system: autotools
build-depends:
- gstreamer@0.10
- name: gstreamer-plugins-good@0.10
repo: upstream:gstreamer-plugins-good
ref: 725e80e0c6b7f8e66d9b3fcaffd283ecbd8498d3
unpetrify-ref: baserock/morph/0.10
+ build-system: autotools
build-depends:
- gstreamer@0.10
- gstreamer-plugins-base@0.10
diff --git a/strata/multimedia-gstreamer.morph b/strata/multimedia-gstreamer.morph
index f91e5173..497b293b 100644
--- a/strata/multimedia-gstreamer.morph
+++ b/strata/multimedia-gstreamer.morph
@@ -3,6 +3,7 @@ kind: stratum
description: GStreamer multimedia components
build-depends:
- morph: strata/audio-bluetooth.morph
+- morph: strata/libsoup-common.morph
- morph: strata/multimedia-common.morph
- morph: strata/mesa-common.morph
chunks:
@@ -10,22 +11,26 @@ chunks:
repo: upstream:orc
ref: 16e053b8f2359196fd50b111f1c10b93590f5cb9
unpetrify-ref: orc-0.4.22
+ build-system: autotools
- name: gstreamer
repo: upstream:gstreamer
ref: c61dea148ca3f14586d8eddf0b7e6ca47c164c86
unpetrify-ref: baserock/1.4.4+bison_fix
+ build-system: autotools
build-depends:
- orc
- name: gstreamer-plugins-base
repo: upstream:gstreamer-plugins-base
ref: 3b38ad94a2d58c07c24e4647e08afa1fe4dd7d46
unpetrify-ref: baserock/1.4
+ build-system: autotools
build-depends:
- gstreamer
- name: gstreamer-plugins-good
repo: upstream:gstreamer-plugins-good
ref: 9d48c2f7a7b63fd967de7eec72434bc876c02667
unpetrify-ref: baserock/1.4
+ build-system: autotools
build-depends:
- gstreamer
- gstreamer-plugins-base
@@ -34,6 +39,7 @@ chunks:
repo: upstream:gstreamer-plugins-bad
ref: bb2a4669ff57af90c8101c54744d3228aa060475
unpetrify-ref: baserock/1.4
+ build-system: autotools
build-depends:
- gstreamer
- gstreamer-plugins-base
diff --git a/strata/network-security/nspr.morph b/strata/network-security/nspr.morph
index 27613eb4..078486e7 100644
--- a/strata/network-security/nspr.morph
+++ b/strata/network-security/nspr.morph
@@ -9,4 +9,4 @@ configure-commands:
*)
EXTRA_ARGS="";;
esac
- ./configure --prefix="$PREFIX" --with-mozilla --with-pthreads $EXTRA_ARGS
+ ./configure --prefix="$PREFIX" --sysconfdir=/etc --with-mozilla --with-pthreads $EXTRA_ARGS
diff --git a/strata/network-security/nss.morph b/strata/network-security/nss.morph
index c83fd174..bc50df8c 100644
--- a/strata/network-security/nss.morph
+++ b/strata/network-security/nss.morph
@@ -4,4 +4,4 @@ max-jobs: 1
build-system: autotools
configure-commands:
- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX" --libdir="$PREFIX/lib"
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc --libdir="$PREFIX/lib"
diff --git a/strata/networking-utils.morph b/strata/networking-utils.morph
index 880371cd..d452b72b 100644
--- a/strata/networking-utils.morph
+++ b/strata/networking-utils.morph
@@ -23,6 +23,7 @@ chunks:
repo: upstream:libmnl
ref: c9f19b98cd8e108617e825e071091df14f78c53a
unpetrify-ref: master
+ build-system: autotools
- name: ipset
morph: strata/networking-utils/ipset.morph
repo: upstream:ipset
diff --git a/strata/nfs.morph b/strata/nfs.morph
index 9b9aa248..e05d585c 100644
--- a/strata/nfs.morph
+++ b/strata/nfs.morph
@@ -8,6 +8,7 @@ chunks:
repo: upstream:libevent
ref: 0b49ae34594533daa82c06a506078de9e336a013
unpetrify-ref: release-2.1.5-beta
+ build-system: autotools
- name: ti-rpc
morph: strata/nfs/ti-rpc.morph
repo: upstream:ti-rpc
diff --git a/strata/nodejs.morph b/strata/nodejs.morph
index 58dbdd0b..6d94abe2 100644
--- a/strata/nodejs.morph
+++ b/strata/nodejs.morph
@@ -3,8 +3,10 @@ kind: stratum
description: Stratum for nodejs related stuff
build-depends:
- morph: strata/core.morph
+- morph: strata/python2-core.morph
chunks:
- name: node
repo: upstream:node
ref: cc56c62ed879ad4f93b1fdab3235c43e60f48b7e
unpetrify-ref: v0.10.26
+ build-system: autotools
diff --git a/strata/openstack-clients.morph b/strata/openstack-clients.morph
index 2b458cc1..ae0662e1 100644
--- a/strata/openstack-clients.morph
+++ b/strata/openstack-clients.morph
@@ -8,14 +8,17 @@ chunks:
repo: upstream:warlock
ref: 408ccb82347aabf3dc7cf6eccbd2ed2475cb0d60
unpetrify-ref: 1.1.0
+ build-system: python-distutils
- name: python-keystoneclient
repo: upstream:openstack/python-keystoneclient
ref: 8fa6b6f0b5e95493342ce71489d04f73db2418b8
unpetrify-ref: 1.3.1
+ build-system: python-distutils
- name: python-glanceclient
repo: upstream:openstack/python-glanceclient
ref: b176c28bbdae3eb5b3280c1981ad2b3b255e234e
unpetrify-ref: 0.17.1
+ build-system: python-distutils
build-depends:
- python-keystoneclient
- warlock
@@ -23,20 +26,24 @@ chunks:
repo: upstream:openstack/python-novaclient
ref: e0f5072907a00d48a183dd8fc91a6cf6038ca279
unpetrify-ref: 2.23.0
+ build-system: python-distutils
build-depends:
- python-keystoneclient
- name: python-swiftclient
repo: upstream:openstack/python-swiftclient
ref: bb4d2ab59c4de9389667eeed255642f51e276f1e
unpetrify-ref: 2.3.1
+ build-system: python-distutils
- name: python-troveclient
repo: upstream:openstack/python-troveclient
ref: e010a919750f07493afd42a4db867853b925bcbf
unpetrify-ref: 1.0.7
+ build-system: python-distutils
- name: python-cinderclient
repo: upstream:openstack/python-cinderclient
ref: ac9b0913904c43f4bf12c8164324d6e6a55dc1ab
unpetrify-ref: 1.1.1
+ build-system: python-distutils
build-depends:
- python-keystoneclient
- name: pyparsing
@@ -48,12 +55,14 @@ chunks:
repo: upstream:python-packages/cmd2-hg
ref: c0d606bdeb88717ad92ba198bc9232615b83c4cd
unpetrify-ref: 0.6.7
+ build-system: python-distutils
build-depends:
- pyparsing
- name: cliff
repo: upstream:openstack/cliff
ref: b703ad32743026d253f872caa1ff2cd727803d14
unpetrify-ref: 1.10.1
+ build-system: python-distutils
build-depends:
- cmd2
- pyparsing
@@ -71,6 +80,7 @@ chunks:
repo: upstream:openstack/python-neutronclient
ref: aa1215a5ad063b299d32ef319eb63d5210249a9b
unpetrify-ref: 2.4.0
+ build-system: python-distutils
build-depends:
- cliff
- python-keystoneclient
@@ -78,18 +88,21 @@ chunks:
repo: upstream:openstack/python-ceilometerclient
ref: 127aadfd2b2daf9884ad7003e23440048e2efbd8
unpetrify-ref: 1.0.14
+ build-system: python-distutils
build-depends:
- python-keystoneclient
- name: python-heatclient
repo: upstream:openstack/python-heatclient
ref: 6d528f005742263837d05250662bf6214a703da8
unpetrify-ref: 0.4.0
+ build-system: python-distutils
build-depends:
- python-keystoneclient
- name: python-designateclient
repo: upstream:openstack/python-designateclient
ref: a900b41e4d8a9eb40e1812295ba16d773e2b9618
unpetrify-ref: 1.1.0
+ build-system: python-distutils
build-depends:
- cliff
- python-keystoneclient
@@ -97,6 +110,7 @@ chunks:
repo: upstream:openstack/python-barbicanclient
ref: 2919366867af335d59913764a55ca8e95569947d
unpetrify-ref: 3.0.3
+ build-system: python-distutils
build-depends:
- python-keystoneclient
- cliff
@@ -104,6 +118,7 @@ chunks:
repo: upstream:openstack/python-saharaclient
ref: 319ceb6acf55382218dcd971367613aecb3e4afc
unpetrify-ref: 0.8.0
+ build-system: python-distutils
build-depends:
- python-keystoneclient
- name: python-ironicclient
diff --git a/strata/openstack-common.morph b/strata/openstack-common.morph
index b66d0144..e2bd0071 100644
--- a/strata/openstack-common.morph
+++ b/strata/openstack-common.morph
@@ -11,16 +11,19 @@ chunks:
repo: upstream:python-packages/pycparser
ref: c926670643ebb5f88a2bf56579fc9934c82be6d2
unpetrify-ref: master
+ build-system: python-distutils
- name: cffi
repo: upstream:python-packages/cffi
ref: fc53b53095d61a1ec5814c09c3bf2c7e18627fb5
unpetrify-ref: master
+ build-system: python-distutils
build-depends:
- pycparser
- name: pytz
repo: upstream:pytz-tarball
ref: c414cb801776e11c769fb36c0d37b8d7a7c8712c
unpetrify-ref: pytz-2014.10
+ build-system: python-distutils
- name: babel
morph: strata/openstack-common/babel.morph
repo: upstream:babel
@@ -36,14 +39,17 @@ chunks:
repo: upstream:python-packages/enum34.git
ref: f1fa1787ceaac72b9934f318ea2135d28c05dd55
unpetrify-ref: enum34-1.0
+ build-system: python-distutils
- name: pyasn1
repo: upstream:python-packages/pyasn1
ref: fa8e66c5f4367a1e39b53dcddc133d084b10400f
unpetrify-ref: release_0_1_7_tag
+ build-system: python-distutils
- name: cryptography
repo: upstream:python-packages/cryptography
ref: 9ac7d55150c8410a08ee3b00b89bfeac3dbd8e8f
unpetrify-ref: 0.7.2
+ build-system: python-distutils
build-depends:
- pyasn1
- enum34
@@ -52,18 +58,22 @@ chunks:
repo: upstream:pyiso8601
ref: 9eb87a9bab114e9cc9a8d3dceb04362644d89cab
unpetrify-ref: 0.1.10
+ build-system: python-distutils
- name: netaddr
repo: upstream:netaddr
ref: bbb31ed50a5338a7d1c0011fc4429d09954f9f0b
unpetrify-ref: release-0.7.12
+ build-system: python-distutils
- name: stevedore
repo: upstream:openstack/stevedore
ref: 218e95d5f09563bd14c50ee0441855f3389af7e7
unpetrify-ref: 1.3.0
+ build-system: python-distutils
- name: oslo-config
repo: upstream:openstack/oslo-config
ref: 3c51838cdffe7a5057ff4823a8ab523bfacc3164
unpetrify-ref: 1.9.3
+ build-system: python-distutils
build-depends:
- netaddr
- stevedore
@@ -71,20 +81,24 @@ chunks:
repo: upstream:python-packages/pyopenssl
ref: 0146d447e63a737b4f05a1164d5950eff68543e7
unpetrify-ref: 0.14
+ build-system: python-distutils
- name: oslo-i18n
repo: upstream:openstack/oslo-i18n
ref: b0faab7b3d3ea3b14053ab92dd6086956f643e15
unpetrify-ref: 1.5.0
+ build-system: python-distutils
build-depends:
- babel
- name: netifaces
repo: upstream:python-packages/netifaces
ref: 885b200ba717df87f6e8044ec8c66c677c949bcb
unpetrify-ref: release_0_10_4
+ build-system: python-distutils
- name: oslo-utils
repo: upstream:openstack/oslo-utils
ref: 91dc782c2f11fb76425effd7a331d63111adf1ce
unpetrify-ref: 1.4.0
+ build-system: python-distutils
build-depends:
- babel
- pyiso8601
@@ -95,29 +109,31 @@ chunks:
repo: upstream:python-packages/futures
ref: 4f7ceedb8a7742e52b0436a4160c7c44665a2597
unpetrify-ref: 2.2.0
+ build-system: python-distutils
- name: oslo-serialization
repo: upstream:openstack/oslo-serialization.git
ref: 7bfd5dece0f22dbdea1c3e524dbc0eca1f70f1b7
unpetrify-ref: 1.4.0
-- name: jsonschema
- repo: upstream:jsonschema
- ref: 35b60f390098d3306c03eee27ceec8cf8a493579
- unpetrify-ref: v2.3.0
+ build-system: python-distutils
- name: simplejson
repo: upstream:simplejson
ref: 54d5ff15d508c51366986cc4f77f2f287f036582
unpetrify-ref: v3.6.4
+ build-system: python-distutils
- name: greenlet
- ref: 42b65a7b67dfabd180625155cd4fcd8e51917fe2
- unpetrify-ref: 0.4.5
+ ref: ed943580bc514144958ebd257156ddfb7584a981
+ unpetrify-ref: 0.4.9
repo: upstream:python-packages/greenlet
+ build-system: python-distutils
- name: eventlet
- ref: bc0a59f8efdb6d436dd41bcf1b2194b8967bfe7f
- unpetrify-ref: v0.17.3
+ ref: dc10af4702115ee92803e432c18ef3a4350e0993
+ unpetrify-ref: v0.17.4
repo: upstream:python-packages/eventlet
+ build-system: python-distutils
build-depends:
- greenlet
- name: pastedeploy
repo: upstream:python-packages/pastedeploy
ref: 5ad87be617c2cc1dd31625688172e964db2756dc
unpetrify-ref: 1.5.2
+ build-system: python-distutils
diff --git a/strata/openstack-services.morph b/strata/openstack-services.morph
index 1feb1427..518e8d60 100644
--- a/strata/openstack-services.morph
+++ b/strata/openstack-services.morph
@@ -30,10 +30,12 @@ chunks:
repo: upstream:openstack/oslo-rootwrap
ref: f485b93f475b119e3b8fa6c9cf740207e2d2d7ac
unpetrify-ref: 1.6.0
+ build-system: python-distutils
- name: py-amqp
repo: upstream:python-packages/py-amqp
ref: 875b10d1715def640042c7ff2f42c00a6c07eed1
unpetrify-ref: 1.4.6
+ build-system: python-distutils
- name: librabbitmq
morph: strata/openstack-services/librabbitmq.morph
repo: upstream:python-packages/librabbitmq
@@ -45,10 +47,12 @@ chunks:
repo: upstream:python-packages/anyjson
ref: 016506078e94718e1fe750eb5083ab5ba07498c8
unpetrify-ref: 0.3.3
+ build-system: python-distutils
- name: kombu
repo: upstream:python-packages/kombu
ref: 0287b11ab0698d9c52ef1b1683ced23123d43ba4
unpetrify-ref: v3.0.26
+ build-system: python-distutils
build-depends:
- anyjson
- py-amqp
@@ -57,50 +61,61 @@ chunks:
repo: upstream:python-packages/sqlalchemy
ref: ff34c480dfd2b8b7c72339d196f5477980a5124c
unpetrify-ref: rel_0_9_8
+ build-system: python-distutils
- name: alembic
repo: upstream:python-packages/alembic
ref: 6ae4196acc0170ebef29f617b49376b371a8923c
unpetrify-ref: rel_0_7_6
+ build-system: python-distutils
build-depends:
- sqlalchemy
- name: lockfile
repo: upstream:python-packages/lockfile
ref: 777758cdf4520271370b3338b86b5c66f9b104f0
unpetrify-ref: master
+ build-system: python-distutils
- name: dogpile-core
repo: upstream:python-packages/dogpile-core
ref: 3e6f0f86b4161b48898e656039154092426e5cc8
unpetrify-ref: rel_0_4_1
+ build-system: python-distutils
- name: dogpile-cache
repo: upstream:python-packages/dogpile-cache
ref: 1c753914b335b4391bc5847a87b7c52ca81c2bc6
unpetrify-ref: rel_0_5_4
+ build-system: python-distutils
build-depends:
- dogpile-core
- name: pyjwt
repo: upstream:python-packages/pyjwt
ref: 739efeff4c6c1fc30ab5cf5eb0ac337e8ee107d7
unpetrify-ref: 0.2.3
+ build-system: python-distutils
- name: creole
repo: upstream:python-packages/creole
ref: 6390231688adb5d8678a71cd33204e9bca555d4a
unpetrify-ref: v1.2.1
+ build-system: python-distutils
- name: pygments
repo: upstream:python-packages/pygments
ref: f41e8c594e76855611b3b3dfca300894bd29f1c4
unpetrify-ref: 2.0rc1
+ build-system: python-distutils
- name: docutils
repo: upstream:python-packages/docutils
ref: 1976ba91eff979abc3e13e5d8cb68324833af6a0
unpetrify-ref: docutils-0.12
+ build-system: python-distutils
- name: snowballstemmer
repo: upstream:python-packages/snowballstemmer.git
ref: f0d81ce1606d685029302ea073b59d9437d12569
unpetrify-ref: master
+ build-system: python-distutils
- name: sphinx
repo: upstream:python-packages/sphinx
ref: e76c9771bad16e68cdb7deb18b4d13de0a718c68
unpetrify-ref: 1.3b1
+ build-system: python-distutils
build-depends:
- pygments
- docutils
@@ -109,18 +124,22 @@ chunks:
repo: upstream:python-packages/pystache.git
ref: cce3ebd658f28aeb7dd54561554dedf5259303dc
unpetrify-ref: baserock/v0.5.4
+ build-system: python-distutils
- name: pies
repo: upstream:python-packages/pies.git
ref: 593dcce07fdb3e8d0053a863a7aba7f2ce8a6c9c
unpetrify-ref: 2.6.1
+ build-system: python-distutils
- name: natsort
repo: upstream:python-packages/natsort.git
ref: ce94d418c3849e891f0508b41f5bccc4ae1d4e4d
unpetrify-ref: 3.5.1
+ build-system: python-distutils
- name: isort
repo: upstream:python-packages/isort.git
ref: 9d1b03b6e1fd2f87be1c635d6159a76a131f8155
unpetrify-ref: 3.9.0
+ build-system: python-distutils
build-depends:
- pies
- natsort
@@ -128,14 +147,17 @@ chunks:
repo: upstream:python-packages/pep8.git
ref: 164066c4d85f212f5f4a11699b848942c678b947
unpetrify-ref: 1.5.7
+ build-system: python-distutils
- name: pyflakes
repo: upstream:python-packages/pyflakes.git
ref: 71b7b6776856912d50a0b9a85a8ea2a1dc7eb75c
unpetrify-ref: 0.8.1
+ build-system: python-distutils
- name: smartypants
repo: upstream:python-packages/smartypants.git
ref: e89b6e7e119694edcd414a556c634d5ca85bff76
unpetrify-ref: v1.8.6
+ build-system: python-distutils
build-depends:
- isort
- pep8
@@ -144,6 +166,7 @@ chunks:
repo: upstream:python-packages/pycco
ref: 22e157e525760e843dba391ca85fbe9bd35fdc5b
unpetrify-ref: master
+ build-system: python-distutils
build-depends:
- pygments
- pystache
@@ -152,56 +175,68 @@ chunks:
repo: upstream:python-packages/dateutil
ref: 8c6026ba09716a4e164f5420120bfe2ebb2d9d82
unpetrify-ref: trunk
+ build-system: python-distutils
- name: posix-ipc-tarball
repo: upstream:python-packages/posix-ipc-tarball
ref: f3765db04b903b3671733e07cf1541a51966dd14
unpetrify-ref: posix_ipc-0.9.8
+ build-system: python-distutils
- name: paste
repo: upstream:python-packages/paste
ref: 4c177fce89fee925f0f4fbfde00ce2e1252562c0
unpetrify-ref: master
+ build-system: python-distutils
- name: repoze-lru
repo: upstream:python-packages/repoze-lru
ref: 29c8281dee7fe8dae8c66c7c40ce7c058ec2ab0f
unpetrify-ref: 0.6
+ build-system: python-distutils
- name: routes
repo: upstream:python-packages/routes
ref: 745a9207d9e48e309e292172543bc21075e65e09
unpetrify-ref: v2.1
+ build-system: python-distutils
build-depends:
- repoze-lru
- name: passlib
repo: upstream:python-packages/passlib
ref: f407312597727a08440e41bc8e31d3b3b334c66f
unpetrify-ref: 1.6.2
+ build-system: python-distutils
- name: tempita
repo: upstream:python-packages/tempita
ref: b2b67795a009e9f825cbd855d766b78a00273f10
unpetrify-ref: 0.5
+ build-system: python-distutils
- name: numpy
repo: upstream:python-packages/numpy.git
ref: 65293874fb101907e1648e6b4fafd30d0aa1172a
unpetrify-ref: baserock/v1.9.0
+ build-system: python-distutils
build-depends:
- sphinx
- name: websockify
repo: upstream:python-packages/websockify
ref: 2f025741f86419d4ad5702dabf5903db3dbfe77c
unpetrify-ref: baserock/v0.6.1-1-g2f02574
+ build-system: python-distutils
build-depends:
- numpy
- name: httplib2
repo: upstream:python-packages/httplib2
ref: f9f797223d075874b0031aea832152688ec23fef
unpetrify-ref: v0.9.1
+ build-system: python-distutils
- name: suds
repo: upstream:python-packages/suds
ref: e7a317f1a20a4d3c86ac85785bb32d24c3d1078f
unpetrify-ref: baserock/release-0.4
+ build-system: python-distutils
- name: jsonrpclib
repo: upstream:python-packages/jsonrpclib
ref: 53c8ffcfe4dd1718086cc551dce8ac459e8abc67
unpetrify-ref: master
+ build-system: python-distutils
- name: rtslib-fb
repo: upstream:python-packages/rtslib-fb
ref: 8ffb4739d596fb1aac5d62d173d1e6f80270af9d
@@ -211,36 +246,43 @@ chunks:
repo: upstream:python-packages/pexpect
ref: 671417beb41c21f772687c565196fdde444b053b
unpetrify-ref: 3.3
+ build-system: python-distutils
- name: ply
repo: upstream:python-packages/ply.git
ref: 6513f3537d80f483ec9c7e36d52e87f107a57f23
unpetrify-ref: master
+ build-system: python-distutils
- name: jsonpath-rw
repo: upstream:python-packages/jsonpath-rw
ref: f4cfe56b8e8370116c5275ddcea970e9a68fd75d
unpetrify-ref: 1.2.3
+ build-system: python-distutils
build-depends:
- ply
- name: logutils
repo: upstream:python-packages/logutils.git
ref: 095f14efbaaf838b7772bffd36a466abb9668efe
unpetrify-ref: 0.3.3
+ build-system: python-distutils
- name: pecan
repo: upstream:python-packages/pecan
ref: c7f241fd6bb8a0b10e02b8b43aaf1810c312cfbf
unpetrify-ref: 0.8.0
+ build-system: python-distutils
build-depends:
- logutils
- name: croniter
repo: upstream:python-packages/croniter
ref: 0c3aeac05791cb4ece9e30da29442e9cd5b22f36
unpetrify-ref: 0.3.5
+ build-system: python-distutils
build-depends:
- dateutil
- name: msgpack-python
repo: upstream:python-packages/msgpack-python
ref: 61bac2f586e82313a0e618093bfed2435cd18983
unpetrify-ref: 0.4.2
+ build-system: python-distutils
- name: qpid-python
morph: strata/openstack-services/qpid-python.morph
repo: upstream:python-packages/qpid-python
@@ -250,6 +292,7 @@ chunks:
repo: upstream:python-packages/simplegeneric-tarball
ref: 601fab9b154c557dfd848d531a8969f4697d1aa2
unpetrify-ref: simplegeneric_0.8.1.orig
+ build-system: python-distutils
- name: ipaddr-py
morph: strata/openstack-services/ipaddr-py.morph
ref: c813f4790d1092b1515ee18fe8270180ed3cc5cb
@@ -259,6 +302,7 @@ chunks:
repo: upstream:python-packages/wsme
ref: 99d7668789cc6252398222549599d1363cddb081
unpetrify-ref: 0.6.1
+ build-system: python-distutils
build-depends:
- ipaddr-py
- simplegeneric-tarball
@@ -266,6 +310,7 @@ chunks:
repo: upstream:python-packages/pysnmp
ref: 1b377afeaf9ee96ab1d48aeebb2b7a6d65a4ac9d
unpetrify-ref: release_4_2_5_tag
+ build-system: python-distutils
- name: thrift
morph: strata/openstack-services/thrift.morph
repo: upstream:thrift
@@ -275,46 +320,55 @@ chunks:
repo: upstream:python-packages/retrying
ref: cab083eb5791615fadbc0c98ad77a70d64b77d0d
unpetrify-ref: v1.3.1
+ build-system: python-distutils
- name: oslo-context
repo: upstream:openstack/oslo-context
ref: 1c4757a9fb41e47867bd9b8d390057ad7636b76f
unpetrify-ref: 0.2.0
+ build-system: python-distutils
- name: oslo-middleware
repo: upstream:openstack/oslo-middleware
ref: bff184a2b5b1a0d3d22508a7544075378aca9e13
unpetrify-ref: 1.2.0
+ build-system: python-distutils
build-depends:
- oslo-context
- name: oslo-messaging
repo: upstream:openstack/oslo-messaging
ref: 562c41bb78f578ff9c27633c04ac6dd914c55f5a
unpetrify-ref: 1.8.2
+ build-system: python-distutils
build-depends:
- kombu
- name: ordereddict
repo: upstream:python-packages/ordereddict-tarball
ref: 332cd0213829089dd827a32e7c5e64c41ce79cbc
unpetrify-ref: ordereddict-1.1
+ build-system: python-distutils
- name: trollius
repo: upstream:python-packages/trollius
ref: fe6f8d61b1257bc01cdf4f789aaf4a8ec3d6f8ec
unpetrify-ref: trollius-1.0.4
+ build-system: python-distutils
build-depends:
- ordereddict
- name: aioeventlet
repo: upstream:python-packages/aioeventlet
ref: 3cac0d7740592a380a7dadb2ddcdda000cae2bda
unpetrify-ref: 0.4
+ build-system: python-distutils
build-depends:
- trollius
- name: urllib3
repo: upstream:python-packages/urllib3
ref: 8434c77d845255c4002b505c6c2d79c3b35def0d
unpetrify-ref: 1.10.4
+ build-system: python-distutils
- name: oslo-concurrency
repo: upstream:openstack/oslo-concurrency
ref: a2473ed0a59e4553766ffcb1ee8f06cb98b14a48
unpetrify-ref: 1.8.0
+ build-system: python-distutils
build-depends:
- posix-ipc-tarball
- retrying
@@ -322,6 +376,7 @@ chunks:
repo: upstream:openstack/oslo-vmware
ref: 5de2c31e9d24f40fc7d33ddb1ce407ffdc6f366c
unpetrify-ref: 0.11.1
+ build-system: python-distutils
build-depends:
- oslo-concurrency
- suds
@@ -331,10 +386,12 @@ chunks:
repo: upstream:openstack/taskflow
ref: 28bece7c7c97199b8d941b16865c3670c323589a
unpetrify-ref: 0.7.1
+ build-system: python-distutils
- name: sqlalchemy-migrate
repo: upstream:python-packages/sqlalchemy-migrate
ref: e57ee4c3a4247c634980cbeba74d04a01253967d
unpetrify-ref: 0.9.6
+ build-system: python-distutils
build-depends:
- sqlalchemy
- tempita
@@ -342,6 +399,7 @@ chunks:
repo: upstream:python-packages/oauthlib
ref: fd239fca84644896b1971cf24bc6213d065adb86
unpetrify-ref: 0.7.2
+ build-system: python-distutils
build-depends:
- docutils
- creole
@@ -352,16 +410,19 @@ chunks:
repo: upstream:python-packages/happybase
ref: 90a4b7ef741f0ecfe5145693f64c6f7180b9ba3d
unpetrify-ref: 0.8
+ build-system: python-distutils
build-depends:
- thrift
- name: osprofiler
repo: upstream:python-packages/osprofiler
ref: bbe39b517263017c9db56ae1d904d08846eacff7
unpetrify-ref: 0.3.0
+ build-system: python-distutils
- name: pycadf
repo: upstream:python-packages/pycadf
ref: 9501f4f74c5d800ae43edbe52680e285cf98c710
unpetrify-ref: 0.9.0
+ build-system: python-distutils
build-depends:
- oslo-context
- oslo-messaging
@@ -370,6 +431,7 @@ chunks:
repo: upstream:openstack/keystonemiddleware
ref: 0e63b0e13d0a7919fddd7576c99bc15a45d31a9f
unpetrify-ref: 1.5.1
+ build-system: python-distutils
build-depends:
- pycadf
- oslo-context
@@ -377,6 +439,7 @@ chunks:
repo: upstream:openstack/oslo-db
ref: 3e6a30c396aa42ef0eccb5b3625af728d8d3f437
unpetrify-ref: 1.7.1
+ build-system: python-distutils
build-depends:
- alembic
- sqlalchemy
@@ -385,6 +448,7 @@ chunks:
repo: upstream:openstack/glance_store.git
ref: ea88e503b617a7ac9a0ae7e537d6517e9992a104
unpetrify-ref: 0.4.0
+ build-system: python-distutils
build-depends:
- ordereddict
- oslo-concurrency
@@ -392,16 +456,19 @@ chunks:
repo: upstream:openstack/oslo-log
ref: 54e3d0e705accfaa4c73a01fc2ea1480fcc0024e
unpetrify-ref: 1.0.0
+ build-system: python-distutils
build-depends:
- oslo-context
- name: oslo-policy
repo: upstream:openstack/oslo-policy
ref: 4c8f38cd1d088c46be314b47f6774e721813c6d9
unpetrify-ref: 0.3.2
+ build-system: python-distutils
- name: semantic-version
repo: upstream:python-packages/semantic-version
ref: 2174bdcae6e46f5f68f5b8ea984a695db9f41bcf
unpetrify-ref: v2.4.1
+ build-system: python-distutils
- name: glance
morph: strata/openstack-services/glance.morph
repo: upstream:openstack/glance
@@ -435,10 +502,12 @@ chunks:
repo: upstream:python-packages/sqlparse
ref: 991e7348075accae6d08025212251af21e92e664
unpetrify-ref: 0.1.13
+ build-system: python-distutils
- name: pysaml2
repo: upstream:python-packages/pysaml2.git
ref: 13ff5e8899300c9b359fa1bdfdb3d412be0d7356
unpetrify-ref: 2.4.0
+ build-system: python-distutils
- name: keystone
morph: strata/openstack-services/keystone.morph
repo: upstream:openstack/keystone
@@ -487,22 +556,27 @@ chunks:
repo: upstream:python-packages/wsgiref.git
ref: e8360785eef259394e13b2062407edc3c2cbc1e0
unpetrify-ref: baserock/master
+ build-system: python-distutils
- name: rfc3986
repo: upstream:python-packages/python-rfc3986.git
ref: 9817ec3e47bca8fba9a7cac56d785e9d644f7473
unpetrify-ref: rfc3986-0.2.0
+ build-system: python-distutils
- name: urwid
repo: upstream:python-packages/urwid
ref: 838839f7a300a774240d52f943aafd6ff44b2413
unpetrify-ref: release-1.3.0
+ build-system: python-distutils
- name: configshell-fb
repo: upstream:python-packages/configshell-fb
ref: 8c151ccdd75956da60b2304417c41a60a2c28231
unpetrify-ref: v1.1.fb17
+ build-system: python-distutils
- name: targetcli-fb
repo: upstream:python-packages/targetcli
ref: c62610f3c2da6b4d364028c18bcc7f0d3da54477
unpetrify-ref: v2.1.fb39
+ build-system: python-distutils
build-depends:
- configshell-fb
- rtslib-fb
@@ -510,6 +584,7 @@ chunks:
repo: upstream:sysfsutils
ref: 237bf36e664db92f95b75067bf0f246726993254
unpetrify-ref: sysfsutils-2_1_0
+ build-system: autotools
- name: open-iscsi
morph: strata/openstack-services/open-iscsi.morph
repo: upstream:open-iscsi
@@ -565,18 +640,22 @@ chunks:
repo: upstream:python-packages/pymemcache
ref: 0646937c2bfebdb557ec2c01f0e42a9af79ad49d
unpetrify-ref: v1.2.9
+ build-system: python-distutils
- name: sysv_ipc-tarball
repo: upstream:python-packages/sysv-ipc-tarball.git
ref: a77e3a63f004e6ee789fa05e4a5bbc333b1529f1
unpetrify-ref: sysv_ipc-0.6.8
+ build-system: python-distutils
- name: redis-py
repo: upstream:python-packages/redis-py
ref: 4d0b0afe9c9a431ed50c3e9fb95a0aa88b1f1038
unpetrify-ref: 2.10.3
+ build-system: python-distutils
- name: tooz
repo: upstream:python-packages/tooz
ref: 8086661f404e61c22f0dd1d07b57a864862a0869
unpetrify-ref: 0.13.2
+ build-system: python-distutils
build-depends:
- pymemcache
- msgpack-python
@@ -586,14 +665,17 @@ chunks:
repo: upstream:python-packages/kafka-python
ref: 8675c3e3e620df5ba9fd7e570c554b773429bd78
unpetrify-ref: v0.9.3
+ build-system: python-distutils
- name: werkzeug
repo: upstream:python-packages/werkzeug
ref: 96e49709d627a7766077cff4c98ebf3cad868ceb
unpetrify-ref: v0.10.4
+ build-system: python-distutils
- name: requests-aws
repo: upstream:python-packages/python-requests-aws
ref: 48fe401c78eb1b1048cd20e2d26015585a7986cb
unpetrify-ref: master
+ build-system: python-distutils
- name: ceilometer
repo: upstream:openstack/ceilometer
morph: strata/openstack-services/ceilometer.morph
@@ -627,10 +709,12 @@ chunks:
repo: upstream:openstack/django_openstack_auth
ref: 0e1f7b78277850634992a594132921efb83256e0
unpetrify-ref: 1.2.0
+ build-system: python-distutils
- name: pint
repo: upstream:python-packages/pint
ref: e7e7de5ca2e1c19963be8a918369fb19186f9a73
unpetrify-ref: 0.6
+ build-system: python-distutils
- name: horizon
morph: strata/openstack-services/horizon.morph
repo: upstream:openstack/horizon
@@ -650,10 +734,12 @@ chunks:
repo: upstream:python-packages/pyserial
ref: bcfc1ec2fdb9a8c9c867481d7673e85fe512e667
unpetrify-ref: release2_7
+ build-system: python-distutils
- name: tempest-lib
repo: upstream:openstack/tempest-lib
ref: c307ffc525d896e2071319c8067aec805804f92b
unpetrify-ref: 0.5.0
+ build-system: python-distutils
- name: tempest
morph: strata/openstack-services/tempest.morph
repo: upstream:openstack/tempest
diff --git a/strata/ostree-core.morph b/strata/ostree-core.morph
index bcf7d61b..5d0297eb 100644
--- a/strata/ostree-core.morph
+++ b/strata/ostree-core.morph
@@ -3,14 +3,30 @@ kind: stratum
build-depends:
- morph: strata/core.morph
- morph: strata/libsoup-common.morph
+- morph: strata/foundation.morph
chunks:
+- name: libassuan
+ morph: strata/ostree-core/libassuan.morph
+ repo: upstream:libassuan
+ ref: cdb1e6484d6f094f8e795bfec5b314ec524a90f8
+ unpetrify-ref: libassuan-2.3.0
+- name: gpgme
+ morph: strata/ostree-core/gpgme.morph
+ repo: upstream:gpgme
+ ref: 107bff70edb611309f627058dd4777a5da084b1a
+ unpetrify-ref: gpgme-1.6.0
+ build-depends:
+ - libassuan
- name: libgsystem
repo: upstream:libgsystem
ref: 8231b8ad4a4ee35e4b11fae5f6e7cddabf1c51ae
unpetrify-ref: master
+ build-system: autotools
- name: ostree
repo: upstream:ostree
- ref: c9704e9802dfeda9b5a138535c59e98df3dd7196
- unpetrify-ref: baserock/morph
+ ref: 45ec78735daf72da1998f9df2887ea9b5e2600c3
+ unpetrify-ref: baserock/v2015.9
+ build-system: autotools
build-depends:
+ - gpgme
- libgsystem
diff --git a/strata/ostree-core/gpgme.morph b/strata/ostree-core/gpgme.morph
new file mode 100644
index 00000000..cf938f31
--- /dev/null
+++ b/strata/ostree-core/gpgme.morph
@@ -0,0 +1,7 @@
+name: gpgme
+kind: chunk
+build-system: autotools
+pre-configure-commands:
+- autoreconf -fi
+configure-commands:
+- ./configure --prefix="$PREFIX" --enable-maintainer-mode
diff --git a/strata/ostree-core/libassuan.morph b/strata/ostree-core/libassuan.morph
new file mode 100644
index 00000000..baa1e902
--- /dev/null
+++ b/strata/ostree-core/libassuan.morph
@@ -0,0 +1,7 @@
+name: libassuan
+kind: chunk
+build-system: autotools
+pre-configure-commands:
+- autoreconf -fi
+configure-commands:
+- ./configure --prefix="$PREFIX" --enable-maintainer-mode
diff --git a/strata/pcre-utils.morph b/strata/pcre-utils.morph
index 8d0c2489..6d2b4a0f 100644
--- a/strata/pcre-utils.morph
+++ b/strata/pcre-utils.morph
@@ -7,3 +7,4 @@ chunks:
repo: upstream:pcre
ref: 2720152c58e13e7cc7403642ec33127101b9971b
unpetrify-ref: baserock/morph
+ build-system: autotools
diff --git a/strata/python-cliapp.morph b/strata/python-cliapp.morph
index 495a6a2e..d143007d 100644
--- a/strata/python-cliapp.morph
+++ b/strata/python-cliapp.morph
@@ -3,7 +3,7 @@ kind: stratum
description: |
Cliapp command line application framework.
build-depends:
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: python-coveragepy
morph: strata/python-cliapp/python-coveragepy.morph
@@ -14,11 +14,13 @@ chunks:
repo: upstream:python-coverage-test-runner
ref: 8ea9421ac3384b2e88e0c36f2cfa52586c4798b7
unpetrify-ref: baserock/morph
+ build-system: python-distutils
build-depends:
- python-coveragepy
- name: cliapp
repo: upstream:cliapp
ref: cec20cedd062a3aef1b04f997e77b45090c07806
unpetrify-ref: baserock/morph
+ build-system: python-distutils
build-depends:
- python-coverage-test-runner
diff --git a/strata/python-common.morph b/strata/python-common.morph
index d329dc4d..9d844a49 100644
--- a/strata/python-common.morph
+++ b/strata/python-common.morph
@@ -2,7 +2,7 @@ name: python-common
kind: stratum
description: Common dependencies of some python chunks
build-depends:
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: pycrypto
morph: strata/python-common/pycrypto.morph
@@ -13,10 +13,12 @@ chunks:
repo: upstream:python-packages/ecdsa
ref: 36e9cfa80fcf8b53119adc787e54a5892ec1eb2c
unpetrify-ref: python-ecdsa-0.11
+ build-system: python-distutils
- name: paramiko
repo: upstream:paramiko
ref: 424ba615c2a94d3b059e7f24db1a1093a92d8d22
unpetrify-ref: v1.15.2
+ build-system: python-distutils
build-depends:
- pycrypto
- ecdsa
@@ -24,51 +26,63 @@ chunks:
repo: upstream:markupsafe
ref: feb1d70c16df62f60dcb521d127fdad8819fc036
unpetrify-ref: 0.23
+ build-system: python-distutils
- name: jinja2
repo: upstream:jinja2
ref: 762c612e7276889aac265645da00e62e33d1573c
unpetrify-ref: 2.7.3
+ build-system: python-distutils
build-depends:
- markupsafe
- name: python-json-pointer
repo: upstream:python-json-pointer
ref: 34073e561261cb413b9bdff5beac31b070d98ea2
unpetrify-ref: v1.4
+ build-system: python-distutils
- name: python-json-patch
repo: upstream:python-json-patch
ref: e4da658a5dc9f68d3386017ffdcc8e07d22b51a3
unpetrify-ref: v1.8
+ build-system: python-distutils
build-depends:
- python-json-pointer
- name: python-prettytable
repo: upstream:python-prettytable
ref: bea6a50e4da00074b35b57232771cea58b89b3e0
unpetrify-ref: 0.7.2-RELEASE
+ build-system: python-distutils
- name: configobj
repo: upstream:configobj-git
ref: 9d2aab01c77dce600b296ba9da1163cc0bbc14e0
unpetrify-ref: v5.0.6
+ build-system: python-distutils
- name: python-mimeparse
repo: upstream:python-packages/python-mimeparse.git
ref: 2d600d3fc4a386af69d20fba433843b4df2b3c92
unpetrify-ref: master
+ build-system: python-distutils
- name: kazoo
repo: upstream:python-packages/kazoo.git
ref: 93a718ea4c20df797766742c3d74de281613c651
unpretrify-ref: 2.0
+ build-system: python-distutils
- name: webob
repo: upstream:python-packages/webob
ref: ae0ac90f22f9e1ff351e445f92330efd89195f51
unpetrify-ref: 1.4
+ build-system: python-distutils
- name: python-decorator
repo: upstream:python-packages/python-decorator
ref: b02f7a254c3679dfac57a824e08dd02ced850636
unpetrify-ref: decorator-3.4.0
+ build-system: python-distutils
- name: networkx
repo: upstream:python-packages/networkx
ref: 8ac796aba866ade1a56b83e30f25ed392ca3512c
unpetrify-ref: networkx-1.9.1
+ build-system: python-distutils
- name: boto
repo: upstream:boto
ref: 2517f660f8ef9012708d46da3a36ab967993d2f6
unpetrify-ref: 2.33.0
+ build-system: python-distutils
diff --git a/strata/python-core.morph b/strata/python-core.morph
deleted file mode 100644
index 0f9d1653..00000000
--- a/strata/python-core.morph
+++ /dev/null
@@ -1,52 +0,0 @@
-name: python-core
-kind: stratum
-description: Core python packages
-build-depends:
-- morph: strata/core.morph
-chunks:
-- name: python-setuptools
- morph: strata/core/python-setuptools.morph
- repo: upstream:python-setuptools-bitbucket
- ref: 0aa6a4de5931d02876428388678802db2371fd37
- unpetrify-ref: baserock/master
-- name: mako
- repo: upstream:python-packages/mako.git
- ref: 285bc818a50ccc0f9549630f7c4f4c250585c3e7
- unpetrify-ref: rel_1_0_0
- build-depends:
- - python-setuptools
-- name: pip
- repo: upstream:pip
- ref: ea680f204fb0e48789710c22c8f597a9bf01bc16
- unpetrify-ref: baserock/master
- build-depends:
- - python-setuptools
-- name: pbr
- repo: upstream:pbr
- ref: aef4f7ef4faec987d553d1ca40b55951235af0b1
- unpetrify-ref: 0.10.7
- build-depends:
- - pip
-- name: python-requests
- repo: upstream:python-requests
- ref: b83131779c701720a9ae9efae78996277d416269
- unpetrify-ref: v2.5.1
-- name: six
- repo: upstream:six
- ref: 8cfbff6b764af86d825086fa1637aa009e90d75a
- unpetrify-ref: 1.9.0
-- name: pyyaml
- morph: strata/python-core/pyyaml.morph
- repo: upstream:pyyaml
- ref: d9fbcceaed39d955f6871b07c61dc42f824285c1
- unpetrify-ref: baserock/morph
- build-depends:
- - python-setuptools
-- name: python-lxml
- repo: upstream:python-lxml
- ref: 14505bc62f5f1fc9fb0ff007955f3e67ab4562bb
- unpetrify-ref: lxml-3.4.0
-- name: python-markdown
- repo: upstream:python-markdown
- ref: f0c5b71acbc02af60a33d67c59558bb513b25e74
- unpetrify-ref: 2.5.1-final
diff --git a/strata/python-pygobject.morph b/strata/python-pygobject.morph
index 53e9fd72..a6667be2 100644
--- a/strata/python-pygobject.morph
+++ b/strata/python-pygobject.morph
@@ -3,7 +3,7 @@ kind: stratum
description: |
Python GObject bindings
build-depends:
-- morph: strata/core.morph
+- morph: strata/python2-core.morph
- morph: strata/glib-common.morph
chunks:
- name: pygobject
diff --git a/strata/python-pygobject/pygobject.morph b/strata/python-pygobject/pygobject.morph
index a423537e..72382f93 100644
--- a/strata/python-pygobject/pygobject.morph
+++ b/strata/python-pygobject/pygobject.morph
@@ -2,4 +2,4 @@ name: pygobject
kind: chunk
build-system: autotools
configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --disable-cairo
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-cairo
diff --git a/strata/python-tools.morph b/strata/python-tools.morph
index e380530f..d61fe150 100644
--- a/strata/python-tools.morph
+++ b/strata/python-tools.morph
@@ -3,23 +3,27 @@ kind: stratum
description: |
A stratum for useful python tools that we don't want to include in core.
build-depends:
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: virtualenv
repo: upstream:python-packages/virtualenv
ref: 9205ff46a67130e8835f14bb4f802fd59e7dcf2c
unpetrify-ref: 12.0.5
+ build-system: python-distutils
## Pylint - required in openstack-services.morph
- name: astroid
repo: upstream:python-packages/astroid
ref: 194dc114a33b80b4bfbbeb73f36712848f696025
unpetrify-ref: astroid-1.3.5
+ build-system: python-distutils
- name: logilab-common
repo: upstream:python-packages/logilab-common
ref: d1d8f793af6d015d885b9ea67b5741d5a093e2f4
unpetrify-ref: logilab-common-version-0.62.0
+ build-system: python-distutils
- name: pylint
repo: upstream:python-packages/pylint
ref: ba998d7a4e5fce0ea3a3e701ff446bbe4ca406b5
unpetrify-ref: pylint-1.4.2
+ build-system: python-distutils
diff --git a/strata/python-wsgi.morph b/strata/python-wsgi.morph
index 289d27ba..cd72e398 100644
--- a/strata/python-wsgi.morph
+++ b/strata/python-wsgi.morph
@@ -3,13 +3,15 @@ kind: stratum
description: |
Python modules for web applications using Web Server Gateway Interface.
build-depends:
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: bottle
repo: upstream:bottle
ref: 5238c615b3ec198fedebb0fcaad4458e3d68d70f
unpetrify-ref: baserock/morph
+ build-system: python-distutils
- name: flup
repo: upstream:flup
ref: 0f97c5e0ab7d9827506120efc22af3a9c21d1d70
unpetrify-ref: baserock/morph
+ build-system: python-distutils
diff --git a/strata/python2-core.morph b/strata/python2-core.morph
new file mode 100644
index 00000000..a39063ac
--- /dev/null
+++ b/strata/python2-core.morph
@@ -0,0 +1,93 @@
+name: python2-core
+kind: stratum
+description: Core python 2 packages
+build-depends:
+- morph: strata/core.morph
+chunks:
+- name: python2
+ morph: strata/python2-core/python2.morph
+ repo: upstream:cpython
+ ref: 57af3f22d11600ca98c0c9073d0b3b57d43f7c4b
+ unpetrify-ref: v2.7.10
+- name: python-setuptools
+ repo: upstream:python-setuptools-bitbucket
+ ref: 0aa6a4de5931d02876428388678802db2371fd37
+ unpetrify-ref: baserock/master
+ build-system: python-distutils
+ build-depends:
+ - python2
+- name: mako
+ repo: upstream:python-packages/mako.git
+ ref: 285bc818a50ccc0f9549630f7c4f4c250585c3e7
+ unpetrify-ref: rel_1_0_0
+ build-system: python-distutils
+ build-depends:
+ - python2
+ - python-setuptools
+- name: pbr
+ repo: upstream:pbr
+ ref: aef4f7ef4faec987d553d1ca40b55951235af0b1
+ unpetrify-ref: 0.10.7
+ build-system: python-distutils
+ build-depends:
+ - python2
+ - python-setuptools
+- name: python-requests
+ repo: upstream:python-requests
+ ref: b83131779c701720a9ae9efae78996277d416269
+ unpetrify-ref: v2.5.1
+ build-system: python-distutils
+ build-depends:
+ - python2
+- name: six
+ repo: upstream:six
+ ref: 8cfbff6b764af86d825086fa1637aa009e90d75a
+ unpetrify-ref: 1.9.0
+ build-system: python-distutils
+ build-depends:
+ - python2
+- name: pyyaml
+ morph: strata/python2-core/pyyaml.morph
+ repo: upstream:pyyaml
+ ref: d9fbcceaed39d955f6871b07c61dc42f824285c1
+ unpetrify-ref: baserock/morph
+ build-depends:
+ - python2
+ - python-setuptools
+- name: cython2
+ repo: upstream:cython
+ ref: 4dd8e762fa51d01775506fbbc102c45dbcea065d
+ unpetrify-ref: 0.22
+ build-system: python-distutils
+ build-depends:
+ - python2
+- name: python-lxml
+ repo: upstream:python-lxml
+ ref: 14505bc62f5f1fc9fb0ff007955f3e67ab4562bb
+ unpetrify-ref: lxml-3.4.0
+ build-system: python-distutils
+ build-depends:
+ - python2
+ - cython2
+- name: python-markdown
+ repo: upstream:python-markdown
+ ref: f0c5b71acbc02af60a33d67c59558bb513b25e74
+ unpetrify-ref: 2.5.1-final
+ build-system: python-distutils
+ build-depends:
+ - python2
+- name: libxml2-python2
+ repo: upstream:libxml2
+ ref: f4e5a6994ed230dfa3fb5b5c3fd94c4993ef1ba7
+ unpetrify-ref: v2.9.1
+ build-system: autotools
+ build-depends:
+ - python2
+- name: jsonschema
+ repo: upstream:jsonschema
+ ref: 35b60f390098d3306c03eee27ceec8cf8a493579
+ unpetrify-ref: v2.3.0
+ build-system: python-distutils
+ build-depends:
+ - python2
+ - python-setuptools
diff --git a/strata/core/cpython.morph b/strata/python2-core/python2.morph
index d0c80220..d5f6913a 100644
--- a/strata/core/cpython.morph
+++ b/strata/python2-core/python2.morph
@@ -1,11 +1,13 @@
-name: cpython
+name: python2
kind: chunk
build-system: autotools
configure-commands:
- |
./configure --prefix="$PREFIX" \
--enable-shared \
+ --with-ensurepip=upgrade \
--with-system-expat \
--with-system-ffi
post-install-commands:
+- ln -sf python2.7 "$DESTDIR"/"$PREFIX"/bin/python
- test -x "$DESTDIR"/"$PREFIX"/bin/python2 || ln -s python2.7 "$DESTDIR"/"$PREFIX"/bin/python2
diff --git a/strata/python-core/pyyaml.morph b/strata/python2-core/pyyaml.morph
index 8ebd7b57..8ebd7b57 100644
--- a/strata/python-core/pyyaml.morph
+++ b/strata/python2-core/pyyaml.morph
diff --git a/strata/python3-core.morph b/strata/python3-core.morph
deleted file mode 100644
index f0da65fc..00000000
--- a/strata/python3-core.morph
+++ /dev/null
@@ -1,11 +0,0 @@
-name: python3-core
-kind: stratum
-description: Core python3 packages
-build-depends:
-- morph: strata/core.morph
-chunks:
-- name: python3
- morph: strata/python3-core/python3.morph
- repo: upstream:cpython
- ref: 3f1e8a3de39ff8a807720d57f49a91d7449435ad
- unpetrify-ref: v3.4.3
diff --git a/strata/python3-core/python3.morph b/strata/python3-core/python3.morph
deleted file mode 100644
index f02452d4..00000000
--- a/strata/python3-core/python3.morph
+++ /dev/null
@@ -1,7 +0,0 @@
-name: python3
-kind: chunk
-build-system: autotools
-configure-commands:
-- ./configure --prefix="$PREFIX" --enable-shared
-post-install-commands:
-- test -x "$DESTDIR"/"$PREFIX"/bin/python3 || ln -s python3.4 "$DESTDIR"/"$PREFIX"/bin/python3
diff --git a/strata/python3-gobject.morph b/strata/python3-gobject.morph
new file mode 100644
index 00000000..1e2db195
--- /dev/null
+++ b/strata/python3-gobject.morph
@@ -0,0 +1,13 @@
+name: python3-gobject
+kind: stratum
+description: |
+ Python 3 GObject bindings
+build-depends:
+- morph: strata/core.morph
+- morph: strata/glib-common.morph
+chunks:
+- name: python3-gobject
+ morph: strata/python3-gobject/python3-gobject.morph
+ repo: upstream:pygobject
+ ref: 8e7f6f1458cf1c162c13422c72562b00433b762b
+ unpetrify-ref: pygobject-3-18
diff --git a/strata/python3-gobject/python3-gobject.morph b/strata/python3-gobject/python3-gobject.morph
new file mode 100644
index 00000000..8f165ad1
--- /dev/null
+++ b/strata/python3-gobject/python3-gobject.morph
@@ -0,0 +1,5 @@
+name: python3-gobject
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-cairo --with-python=python3
diff --git a/strata/qt4-tools.morph b/strata/qt4-tools.morph
index 698dc5ce..577c467d 100644
--- a/strata/qt4-tools.morph
+++ b/strata/qt4-tools.morph
@@ -2,15 +2,11 @@ name: qt4-tools
kind: stratum
description: Qt4 Development Libraries and Tools
build-depends:
+- morph: strata/icu-common.morph
- morph: strata/tools.morph
- morph: strata/x-generic.morph
- morph: strata/multimedia-gstreamer-0.10.morph
chunks:
-- name: icu
- morph: strata/qt4-tools/icu.morph
- repo: upstream:icu
- ref: ba023548a3bff7277cbea4acade3042ce9d8949e
- unpetrify-ref: baserock/morph
- name: ruby-1.8
morph: strata/qt4-tools/ruby-1.8.morph
repo: upstream:ruby
@@ -29,5 +25,4 @@ chunks:
ref: a182f020bc1703c20d86ba18f2f6b4ea8889de84
unpetrify-ref: baserock/morph
build-depends:
- - icu
- ruby-1.9
diff --git a/strata/qt4-tools/icu.morph b/strata/qt4-tools/icu.morph
deleted file mode 100644
index 37dec07e..00000000
--- a/strata/qt4-tools/icu.morph
+++ /dev/null
@@ -1,8 +0,0 @@
-name: icu
-kind: chunk
-configure-commands:
-- cd source; ./runConfigureICU Linux --prefix=/usr
-build-commands:
-- cd source; unset TARGET ; make
-install-commands:
-- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install
diff --git a/strata/qt5-tools-qtwayland-genivi.morph b/strata/qt5-tools-qtwayland-genivi.morph
new file mode 100644
index 00000000..1a93c5d3
--- /dev/null
+++ b/strata/qt5-tools-qtwayland-genivi.morph
@@ -0,0 +1,13 @@
+name: qt5-tools-qtwayland-genivi
+kind: stratum
+description: |
+ Modified version of Qt5 Wayland which makes Qt applications use the
+ LayerManager API
+build-depends:
+- morph: strata/qt5-tools.morph
+chunks:
+- name: qtwayland@genivi
+ repo: upstream:qt5/qtwayland
+ ref: 394c54253d5d965e353b618fd373fa89f79cbd96
+ unpetrify-ref: baserock/genivi-5.4.0-wip
+ build-system: qmake
diff --git a/strata/qt5-tools.morph b/strata/qt5-tools.morph
index 7fb8403e..2a5a61ac 100644
--- a/strata/qt5-tools.morph
+++ b/strata/qt5-tools.morph
@@ -2,21 +2,15 @@ name: qt5-tools
kind: stratum
description: Qt5 Development Libraries and Tools
build-depends:
+- morph: strata/icu-common.morph
- morph: strata/tools.morph
- morph: strata/x-generic.morph
chunks:
-- name: icu
- morph: strata/qt5-tools/icu.morph
- repo: upstream:icu
- ref: ba023548a3bff7277cbea4acade3042ce9d8949e
- unpetrify-ref: baserock/morph
- name: qtbase
morph: strata/qt5-tools/qtbase.morph
repo: upstream:qt5/qtbase
ref: 5367fa356233da4c0f28172a8f817791525f5457
unpetrify-ref: v5.4.0
- build-depends:
- - icu
- name: qtsvg
morph: strata/qt5-tools/qtsvg.morph
repo: upstream:qt5/qtsvg
diff --git a/strata/qt5-tools/icu.morph b/strata/qt5-tools/icu.morph
deleted file mode 100644
index f9532f04..00000000
--- a/strata/qt5-tools/icu.morph
+++ /dev/null
@@ -1,9 +0,0 @@
-name: icu
-kind: chunk
-configure-commands:
-- sed -e 's/LDFLAGSICUDT/#LDFLAGSICUDT/' -i source/config/mh-linux
-- cd source; ./runConfigureICU Linux --prefix=/usr
-build-commands:
-- cd source; unset TARGET ; make
-install-commands:
-- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install
diff --git a/strata/qt5-tools/qtwebkit.morph b/strata/qt5-tools/qtwebkit.morph
index c9348aca..c76db433 100644
--- a/strata/qt5-tools/qtwebkit.morph
+++ b/strata/qt5-tools/qtwebkit.morph
@@ -1,6 +1,5 @@
name: qtwebkit
kind: chunk
-max-jobs: 1
configure-commands:
- QMAKEPATH=/qtwebkit.build/Tools/qmake/mkspecs qmake WebKit.pro
build-commands:
diff --git a/strata/ruby.morph b/strata/ruby.morph
index eba231be..10eb932e 100644
--- a/strata/ruby.morph
+++ b/strata/ruby.morph
@@ -19,6 +19,7 @@ chunks:
repo: upstream:libyaml-hg
ref: 0577078d6625a7bf06e6bc7fb26a43e27400b17e
unpetrify-ref: master
+ build-system: autotools
- name: ruby
morph: strata/ruby/ruby.morph
repo: upstream:ruby
diff --git a/strata/samba.morph b/strata/samba.morph
index 33dcd856..97e72c7a 100644
--- a/strata/samba.morph
+++ b/strata/samba.morph
@@ -4,6 +4,7 @@ description: Simple samba server
build-depends:
- morph: strata/core.morph
- morph: strata/foundation.morph
+- morph: strata/python2-core.morph
chunks:
- name: samba
morph: strata/samba/samba.morph
diff --git a/strata/swift.morph b/strata/swift.morph
index 6afcc832..41fd0c75 100644
--- a/strata/swift.morph
+++ b/strata/swift.morph
@@ -10,6 +10,7 @@ chunks:
repo: upstream:python-packages/dnspython
ref: e1369c62d14f82b80ef11197a490ace5d43bb3f3
unpetrify-ref: v1.12.0
+ build-system: python-distutils
- name: xattr
morph: strata/swift/xattr.morph
repo: upstream:python-packages/xattr
@@ -29,12 +30,14 @@ chunks:
repo: upstream:jerasure
ref: ff7032153ea230fb59596f1f8a0e9ad8653addfb
unpetrify-ref: v2
+ build-system: autotools
build-depends:
- gf-complete
- name: pyeclib
repo: upstream:python-packages/pyeclib
ref: aa58aa887c2327e1394d6f28b3b6b7ab8f190b2b
unpetrify-ref: v1.0.7
+ build-system: python-distutils
build-depends:
- liberasurecode
- gf-complete
@@ -43,6 +46,7 @@ chunks:
repo: upstream:openstack/swift
ref: f8dee761bd36f857aa1288c27e095907032fad68
unpetrify-ref: 2.3.0
+ build-system: python-distutils
build-depends:
- dnspython
- xattr
diff --git a/strata/test-tools.morph b/strata/test-tools.morph
index 7754e91d..49d53972 100644
--- a/strata/test-tools.morph
+++ b/strata/test-tools.morph
@@ -8,18 +8,22 @@ chunks:
repo: upstream:python-packages/python-test-extras.git
ref: cdeb596f01241e9c779332e86f6edcd0c2e8e9f0
unpetrify-ref: master
+ build-system: python-distutils
- name: check
repo: upstream:check
ref: 8c872aca6675e95fa47e7514e28fbdf25fce6170
unpetrify-ref: 0.9.8
+ build-system: autotools
- name: cppunit
repo: upstream:cppunit
ref: 8133cf2b977f013216f0a41b6fcb740410d83926
unpetrify-ref: 1.13.2
+ build-system: autotools
- name: testtools
repo: upstream:python-packages/testtools
ref: ee9946228ce5a03a84cf146027de0a8a9a46c4fe
unpetrify-ref: testools-1.1.0
+ build-system: python-distutils
build-depends:
- python-test-extras
- name: subunit
@@ -36,12 +40,14 @@ chunks:
repo: upstream:python-packages/fixtures
ref: 9f9d89ce718463b24cd3910b9a99efb60b3c9e1b
unpetrify-ref: 0.3.16
+ build-system: python-distutils
build-depends:
- testtools
- name: testrepository
repo: upstream:python-packages/testrepository
ref: 6419a3dcaabaf09eaf438c6d8d85c90eba7a2b91
unpetrify-ref: 0.0.19
+ build-system: python-distutils
build-depends:
- fixtures
- subunit
@@ -50,20 +56,24 @@ chunks:
repo: upstream:python-packages/testscenarios
ref: bccfaa71a2def5590161b6d1a247cf23c45a8b4d
unpetrify-ref: trunk
+ build-system: python-distutils
build-depends:
- testtools
- name: mox
repo: upstream:python-packages/mox
ref: 160491d0384285698d726b1af21277f336107f51
unpetrify-ref: master
+ build-system: python-distutils
- name: mock
repo: upstream:python-packages/mock
ref: 35b35f7ad239005a950f870af57b44dbdc99d66b
unpetrify-ref: master
+ build-system: python-distutils
- name: oslotest
repo: upstream:openstack/oslotest
ref: cfdb562a6e07728570ca624a8c4faf3f5b61423b
unpetrify-ref: 1.2.0
+ build-system: python-distutils
build-depends:
- fixtures
- subunit
@@ -76,31 +86,38 @@ chunks:
repo: upstream:python-packages/pymox
ref: 444fa40f4edb529efbffa2da8dbd97e9b8564b5c
unpetrify-ref: master
+ build-system: python-distutils
- name: mocker
repo: upstream:python-packages/mocker
ref: f7f87e4ac1c52342162cf2035f5fe3d273f8b07f
unpetrify-ref: master
+ build-system: python-distutils
- name: zake
repo: upstream:python-packages/zake
ref: 436bab3306aeec420f1281f34bd5d26d7f81038c
unpetrify-ref: 0.2.1
+ build-system: python-distutils
build-depends:
- testtools
- name: nose
repo: upstream:python-packages/nose
ref: 08d134270b035dac3310cd877bb0fe9ab678303a
unpetrify-ref: release_1.3.4
+ build-system: python-distutils
- name: beautifulsoup4
repo: upstream:python-packages/beautifulsoup4.git
ref: bcd7af0e9159d97aa511fb2d879424d1c1c5aadf
+ build-system: python-distutils
- name: waitress
repo: upstream:python-packages/waitress.git
ref: b795d573a5a9e6e39b46a6e82da367a6a5db8dbd
unpetrify-ref: 0.8.9
+ build-system: python-distutils
- name: webtest
repo: upstream:python-packages/webtest.git
ref: 6a24fba456d1c4ac2609b90f1fdc377c595608a4
unpetrify-ref: 2.0.16
+ build-system: python-distutils
build-depends:
- waitress
- beautifulsoup4
@@ -108,6 +125,7 @@ chunks:
repo: upstream:python-packages/testresources
ref: ef938bcce0e436f9e9ffef932a898dc248a1d6ea
unpetrify-ref: 0.2.7
+ build-system: python-distutils
build-depends:
- testtools
- fixtures
diff --git a/strata/tools.morph b/strata/tools.morph
index bfde546f..9fc1f8c7 100644
--- a/strata/tools.morph
+++ b/strata/tools.morph
@@ -17,8 +17,9 @@ chunks:
unpetrify-ref: gdb-7.8-branch
- name: linux-user-chroot
repo: upstream:linux-user-chroot
- ref: d25cc110f69e6e71a95b4ac532dcfc5423d4a16b
- unpetrify-ref: baserock/morph
+ ref: 40e0b71d556414dfe150a74937f2c8a68d351d6d
+ unpetrify-ref: v2015.1
+ build-system: autotools
- name: lsof
morph: strata/tools/lsof.morph
repo: upstream:lsof
@@ -28,6 +29,7 @@ chunks:
repo: upstream:strace
ref: 6d8c0637e8dd0f65c667af33c612230552419db1
unpetrify-ref: v4.8
+ build-system: autotools
- name: vala-bootstrap
morph: strata/tools/vala-bootstrap.morph
repo: upstream:vala
@@ -37,6 +39,7 @@ chunks:
repo: upstream:vala
ref: 5f6ebe007050be12bdc4aa7c902ae4059f28874a
unpetrify-ref: 0.28.0
+ build-system: autotools
build-depends:
- vala-bootstrap
- name: u-boot
@@ -58,6 +61,7 @@ chunks:
repo: upstream:sudo
ref: a4769dc7999b53260325fb89945bef85714fb338
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: procps-ng
morph: strata/tools/procps-ng.morph
repo: upstream:procps-ng
diff --git a/strata/trove.morph b/strata/trove.morph
index 984050b7..5175376e 100644
--- a/strata/trove.morph
+++ b/strata/trove.morph
@@ -2,7 +2,7 @@ name: trove
kind: stratum
description: Trove software
build-depends:
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
- morph: strata/tools.morph
- morph: strata/morph-utils.morph
- morph: strata/pcre-utils.morph
@@ -71,7 +71,7 @@ chunks:
- name: trove-setup
morph: strata/trove/trove-setup.morph
repo: baserock:baserock/trove-setup
- ref: 16de74536e0846ba1d2e5101618df9146c785a41
+ ref: 1ca53f11d302a7db3ef53e09ba7c259689a9cb83
unpetrify-ref: master
- name: lua-scrypt
morph: strata/trove/lua-scrypt.morph
diff --git a/strata/virtualization.morph b/strata/virtualization.morph
index f63b3599..f58018b6 100644
--- a/strata/virtualization.morph
+++ b/strata/virtualization.morph
@@ -7,7 +7,7 @@ description: |
for example.
build-depends:
- morph: strata/libsoup-common.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
- morph: strata/python-pygobject.morph
- morph: strata/connman-common.morph
- morph: strata/lvm.morph
@@ -34,6 +34,7 @@ chunks:
repo: upstream:libpciaccess
ref: b9c068896914b4132a24839c9ef7f9fcd6282d88
unpetrify-ref: master
+ build-system: autotools
- name: dmidecode
morph: strata/virtualization/dmidecode.morph
repo: upstream:dmidecode
@@ -54,16 +55,19 @@ chunks:
repo: upstream:pycurl
ref: 5ca370827d88817eeca3c56cbb37e4ddccc16c6e
unpetrify-ref: baserock/morph
+ build-system: python-distutils
- name: urlgrabber
repo: upstream:urlgrabber
ref: bf0a0be71373dec515bbb54e0613a3b9b0c00b04
unpetrify-ref: master
+ build-system: python-distutils
build-depends:
- pycurl
- name: libvirt-python
repo: upstream:libvirt-python
ref: 8e09c79a07b097a6ba9af83be4916fb9c9538500
unpetrify-ref: v1.2.10
+ build-system: python-distutils
build-depends:
- libvirt
- urlgrabber
@@ -76,6 +80,7 @@ chunks:
repo: upstream:virt-manager
ref: 8b7ebd4538ffbd2d246fdeee4f1bb1c452585575
unpetrify-ref: v1.0.1
+ build-system: python-distutils
build-depends:
- libvirt-python
- libosinfo
diff --git a/strata/virtualization/libosinfo.morph b/strata/virtualization/libosinfo.morph
index d5679965..51b41b38 100644
--- a/strata/virtualization/libosinfo.morph
+++ b/strata/virtualization/libosinfo.morph
@@ -2,5 +2,10 @@ name: libosinfo
kind: chunk
build-system: autotools
configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --disable-gtk-doc --disable-tests --disable-vala
- --with-usb-ids-path=usb.ids --with-pci-ids-path=pci.ids
+- |
+ ./autogen.sh --prefix="$PREFIX" \
+ --disable-gtk-doc \
+ --disable-tests \
+ --disable-vala \
+ --with-usb-ids-path=usb.ids --with-pci-ids-path=pci.ids \
+ --disable-werror
diff --git a/strata/wayland-generic.morph b/strata/wayland-generic.morph
index 37a57c5b..cf89a1b5 100644
--- a/strata/wayland-generic.morph
+++ b/strata/wayland-generic.morph
@@ -2,17 +2,9 @@ name: wayland-generic
kind: stratum
build-depends:
- morph: strata/core.morph
-- morph: strata/xorg-util-macros-common.morph
chunks:
-- name: libxkbcommon
- morph: strata/wayland-generic/libxkbcommon.morph
- repo: upstream:xorg-lib-libxkbcommon
- ref: c43c3c866eb9d52cd8f61e75cbef1c30d07f3a28
- unpetrify-ref: xkbcommon-0.5.0
- name: wayland
morph: strata/wayland-generic/wayland.morph
repo: upstream:wayland
ref: 60024af597b68974c451c89f960a7c11de11c33a
unpetrify-ref: 1.8.0
- build-depends:
- - libxkbcommon
diff --git a/strata/wayland-generic/libxkbcommon.morph b/strata/wayland-generic/libxkbcommon.morph
deleted file mode 100644
index 04048abb..00000000
--- a/strata/wayland-generic/libxkbcommon.morph
+++ /dev/null
@@ -1,5 +0,0 @@
-name: libxkbcommon
-kind: chunk
-build-system: autotools
-configure-commands:
-- ./autogen.sh --prefix="$PREFIX" --disable-x11
diff --git a/strata/wayland-generic/wayland.morph b/strata/wayland-generic/wayland.morph
index 752a5d6e..a65afd05 100644
--- a/strata/wayland-generic/wayland.morph
+++ b/strata/wayland-generic/wayland.morph
@@ -4,4 +4,4 @@ description: Wayland server
build-system: autotools
configure-commands:
- autoreconf -ivf
-- ./configure --prefix="$PREFIX" --disable-documentation
+- ./configure --prefix="$PREFIX" --sysconfdir=/etc --disable-documentation
diff --git a/strata/webtools.morph b/strata/webtools.morph
index 17a1abda..495a4f3c 100644
--- a/strata/webtools.morph
+++ b/strata/webtools.morph
@@ -2,18 +2,15 @@ name: webtools
kind: stratum
description: web things
build-depends:
+- morph: strata/icu-common.morph
- morph: strata/tools.morph
- morph: strata/pcre-utils.morph
chunks:
-- name: icu
- morph: strata/webtools/icu.morph
- repo: upstream:icu
- ref: ba023548a3bff7277cbea4acade3042ce9d8949e
- unpetrify-ref: baserock/morph
- name: libgit2
repo: upstream:libgit2
ref: 4b0a36e881506a02b43a4ae3c19c93c919b36eeb
unpetrify-ref: master
+ build-system: cmake
- name: nginx
morph: strata/webtools/nginx.morph
repo: upstream:nginx
diff --git a/strata/webtools/icu.morph b/strata/webtools/icu.morph
deleted file mode 100644
index 37dec07e..00000000
--- a/strata/webtools/icu.morph
+++ /dev/null
@@ -1,8 +0,0 @@
-name: icu
-kind: chunk
-configure-commands:
-- cd source; ./runConfigureICU Linux --prefix=/usr
-build-commands:
-- cd source; unset TARGET ; make
-install-commands:
-- cd source; unset TARGET ; make DESTDIR="$DESTDIR" install
diff --git a/strata/weston-common/weston.morph b/strata/weston-common/weston.morph
index c49b8d5b..b97294ef 100644
--- a/strata/weston-common/weston.morph
+++ b/strata/weston-common/weston.morph
@@ -3,5 +3,5 @@ kind: chunk
build-system: autotools
configure-commands:
- |
- ./autogen.sh --prefix="$PREFIX" \
+ ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc \
--enable-demo-clients-install
diff --git a/strata/weston-genivi.morph b/strata/weston-genivi.morph
index ea619821..88d6df66 100644
--- a/strata/weston-genivi.morph
+++ b/strata/weston-genivi.morph
@@ -2,7 +2,7 @@ name: weston-genivi
kind: stratum
build-depends:
- morph: strata/graphics-common.morph
-- morph: strata/input-common.morph
+- morph: strata/input-genivi.morph
- morph: strata/mesa-common.morph
- morph: strata/libdrm-common.morph
- morph: strata/wayland-generic.morph
@@ -10,12 +10,12 @@ chunks:
- name: weston
morph: strata/weston-genivi/weston.morph
repo: upstream:weston
- ref: 5d7a71cb941ed419ec042ea28be56c87ea407db6
- unpetrify-ref: baserock/genivi/1.3.0
+ ref: 1a43127064349577d1d41a910d8ed1a39caf2867
+ unpetrify-ref: baserock/genivi/genivi-demo-platform
- name: wayland-ivi-extension
morph: strata/weston-genivi/wayland-ivi-extension.morph
repo: upstream:genivi/wayland-ivi-extension
- ref: 43fa65ede93cef9e6c902df2248229ad204b510a
- unpetrify-ref: master
+ ref: bac7fc24bb94e37e33f447b58ec74240bb248841
+ unpetrify-ref: 1.3.91
build-depends:
- weston
diff --git a/strata/weston-genivi/weston.morph b/strata/weston-genivi/weston.morph
index 810ce5e9..3bc1884b 100644
--- a/strata/weston-genivi/weston.morph
+++ b/strata/weston-genivi/weston.morph
@@ -13,12 +13,15 @@ configure-commands:
post-install-commands:
- install -d "$DESTDIR/usr/share/weston"
- install -m 0644 data/*.png "$DESTDIR/usr/share/weston/"
-- sed -i 's,/weston.build/data/,/usr/share/weston/,g' ivi-shell/weston.ini
-- sed -i 's,/weston.build/clients/,/usr/bin/,g' ivi-shell/weston.ini
-- sed -i 's,/weston.build/,/usr/libexec/,g' ivi-shell/weston.ini
-- sed -i '/^\[ivi-launcher\]/,$d' ivi-shell/weston.ini
+- cp ivi-shell/weston.ini ivi-shell/ivi-shell-weston.ini
+- cp ivi-shell/weston.ini ivi-shell/gdp-weston.ini
+# Generate ivi-shell-weston config used for GENIVI Baseline
+- sed -i 's,/weston.build/data/,/usr/share/weston/,g' ivi-shell/ivi-shell-weston.ini
+- sed -i 's,/weston.build/clients/,/usr/bin/,g' ivi-shell/ivi-shell-weston.ini
+- sed -i 's,/weston.build/,/usr/libexec/,g' ivi-shell/ivi-shell-weston.ini
+- sed -i '/^\[ivi-launcher\]/,$d' ivi-shell/ivi-shell-weston.ini
- |
- cat <<EOF >> ivi-shell/weston.ini
+ cat <<EOF >> ivi-shell/ivi-shell-weston.ini
[ivi-launcher]
workspace-id=0
icon-id=4001
@@ -49,5 +52,13 @@ post-install-commands:
icon=/usr/share/weston/icon_ivi_smoke.png
path=/usr/bin/weston-smoke
EOF
+
- install -d "$DESTDIR/usr/share/doc/weston"
-- install -m 0644 ivi-shell/weston.ini "$DESTDIR/usr/share/doc/weston/ivi-shell-weston.ini"
+- install -m 0644 ivi-shell/ivi-shell-weston.ini "$DESTDIR/usr/share/doc/weston/ivi-shell-weston.ini"
+
+# Generate gdp-weston config used for GENIVI Demo Platform
+- sed -i 's/hmi-controller.so/ivi-controller.so/' ivi-shell/gdp-weston.ini
+
+# Install both config files to decide later which one to use
+- install -m 0644 ivi-shell/ivi-shell-weston.ini "$DESTDIR/usr/share/doc/weston/ivi-shell-weston.ini"
+- install -m 0644 ivi-shell/gdp-weston.ini "$DESTDIR/usr/share/doc/weston/gdp-weston.ini"
diff --git a/strata/x-common.morph b/strata/x-common.morph
index 33d7b5b6..fe7b9a0d 100644
--- a/strata/x-common.morph
+++ b/strata/x-common.morph
@@ -7,116 +7,149 @@ chunks:
repo: upstream:xorg-proto-bigreqsproto
ref: d6ed3e927a756900ad4c9fd7235f8f7f34f376db
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-compositeproto
repo: upstream:xorg-proto-compositeproto
ref: 39738dbe9438dc80fc6b9e221d9ed26a6d42da6b
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-damageproto
repo: upstream:xorg-proto-damageproto
ref: 015b980e5091492dbe681af59569768ba89fbfe0
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-dmxproto
repo: upstream:xorg-proto-dmxproto
ref: 395f6fcc0a5635907b5e45829e86b29431316184
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-fixesproto
repo: upstream:xorg-proto-fixesproto
ref: b6c6bc2aa4b83f8763c75c90e6671052272a2af2
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-fontsproto
repo: upstream:xorg-proto-fontsproto
ref: df8c05f7c0253a36589d96efa52938215eff9d4d
unpetrify-ref: fontsproto-2.1.3
+ build-system: autotools
- name: xorg-proto-glproto
repo: upstream:xorg-proto-glproto
ref: f84853d97d5749308992412a215fa518b6536eb3
unpetrify-ref: glproto-1.4.17
+ build-system: autotools
- name: xorg-proto-inputproto
repo: upstream:xorg-proto-inputproto
ref: 343ff0938f592876b9d82c966f166bf45a78c3c8
unpetrify-ref: inputproto-2.3.1
+ build-system: autotools
- name: xorg-proto-kbproto
repo: upstream:xorg-proto-kbproto
ref: f7022f5775350dce3348b7151845a32390e98791
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-xineramaproto
repo: upstream:xorg-proto-xineramaproto
ref: 4e77b45e0d6b42a448dab2ec316eeb5c490ecfed
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-randrproto
repo: upstream:xorg-proto-randrproto
ref: ca7cc541c2e43e6c784df19b4583ac35829d2f72
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-recordproto
repo: upstream:xorg-proto-recordproto
ref: 0fd4f8e57c1e637b2aaaaa0f539ddbac8cc50575
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-renderproto
repo: upstream:xorg-proto-renderproto
ref: 935f5ec95a3718c184ff685f5b79b467483b7844
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-resourceproto
repo: upstream:xorg-proto-resourceproto
ref: ada91f54c98b5a61d3e116fca6bf239a8604730f
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-scrnsaverproto
repo: upstream:xorg-proto-scrnsaverproto
ref: 614532026e8ec7496216316fb584d6f2af6a7f7b
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-videoproto
repo: upstream:xorg-proto-videoproto
ref: e42cf822e230cff5c6550ca2c050dfa27d2c9611
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-xcmiscproto
repo: upstream:xorg-proto-xcmiscproto
ref: 83549077a3c2140b9862709004cd873f1c55e395
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-xextproto
repo: upstream:xorg-proto-xextproto
ref: 66afec3f49e8eb0d4c2e9af7088fc3116d4bafd7
unpetrify-ref: xextproto-7.3.0
+ build-system: autotools
- name: xorg-proto-xf86bigfontproto
repo: upstream:xorg-proto-xf86bigfontproto
ref: f805b328b2195de384c0fb6b82ef5f88c179b2c0
unpetrify-ref: baserock/morph
+ build-system: autotools
+- name: xorg-proto-xf86dgaproto
+ repo: upstream:xorg-proto-xf86dgaproto
+ ref: c52b205c3175309be7952774668c87dd2d5ce30e
+ unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-xf86driproto
repo: upstream:xorg-proto-xf86driproto
ref: cb03b8d49bf063860859c1ed8bcecd055551e93a
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-x11proto
repo: upstream:xorg-proto-x11proto
ref: 03cbbf6c3e811c026c86e3a60d2f9af56606e155
unpetrify-ref: xproto-7.0.26
+ build-system: autotools
- name: xorg-proto-dri2proto
repo: upstream:xorg-proto-dri2proto
ref: ead89ad84877551cc15d26b95cb19a3e205df71f
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-proto-dri3proto
repo: upstream:xorg-proto-dri3proto
ref: 91df0f88b70c268f3580385a7b37543ab8c544c8
+ build-system: autotools
- name: xorg-proto-presentproto
repo: upstream:xorg-proto-presentproto
ref: ef84007fc4a23d3897b4776906139de9d0698c2a
+ build-system: autotools
- name: xcb-proto
repo: upstream:xcb-proto
ref: 4b384d2a015c50d0e93dcacda4b8260a3fd37640
unpetrify-ref: '1.11'
+ build-system: autotools
- name: xorg-lib-libxshmfence
repo: upstream:xorg-lib-libxshmfence
ref: 9c4f070e1304a3503cfab08f68573443025fc4c9
unpetrify-ref: master
+ build-system: autotools
build-depends:
- xorg-proto-x11proto
- name: xorg-lib-libXau
repo: upstream:xorg-lib-libXau
ref: 1a8a1b2c68967b48c07b56142799b1020f017027
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-proto-x11proto
- name: xcb-libxcb
repo: upstream:xcb-libxcb
ref: d1e8ec96fca4862f37ec9f0e9407bb989c4c161a
unpetrify-ref: '1.11'
+ build-system: autotools
build-depends:
- xcb-proto
- xorg-lib-libXau
@@ -124,24 +157,28 @@ chunks:
repo: upstream:xcb-util
ref: 4de010f122da40e17b52866d07d1d501a66bf007
unpetrify-ref: baserock/0.4.0
+ build-system: autotools
build-depends:
- xcb-libxcb
- name: util-wm
repo: upstream:util-wm
ref: fb7afc3f291c8cc072d327cd8d97ab1db3283c21
unpetrify-ref: baserock/0.4.1
+ build-system: autotools
build-depends:
- xcb-libxcb
- name: util-keysyms
repo: upstream:util-keysyms
ref: edb763a8837d3932690b9d6d77cb7e20a9ab8013
unpetrify-ref: baserock/0.4.0
+ build-system: autotools
build-depends:
- xcb-libxcb
- name: util-image
repo: upstream:util-image
ref: f20f25a1c017c58d5d7dfffc6e9adc8d31879152
unpetrify-ref: baserock/0.4.0
+ build-system: autotools
build-depends:
- xcb-libxcb
- xcb-util
@@ -149,10 +186,12 @@ chunks:
repo: upstream:xorg-lib-libxtrans
ref: 7cbad9fe2e61cd9d5caeaf361826a6f4bd320f03
unpetrify-ref: xtrans-1.3.5
+ build-system: autotools
- name: xorg-lib-libX11
repo: upstream:xorg-lib-libX11
ref: cb107760df33ffc8630677e66e2e50aa37950a5c
unpetrify-ref: libX11-1.6.2
+ build-system: autotools
build-depends:
- xcb-libxcb
- xorg-lib-libxtrans
@@ -165,32 +204,46 @@ chunks:
repo: upstream:xorg-lib-libXext
ref: 8eee1236041d46a21faba32e0d27c26985267d89
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-lib-libX11
- xorg-lib-libXau
- xorg-proto-x11proto
- xorg-proto-xextproto
+- name: xorg-lib-libXfixes
+ repo: upstream:xorg-lib-libXfixes
+ ref: 0cb446962381f750e05d97bfb974ca1e32481d5d
+ unpetrify-ref: libXfixes-5.0.1
+ build-system: autotools
+ build-depends:
+ - xorg-lib-libXext
+ - xorg-proto-fixesproto
- name: xorg-lib-libXi
repo: upstream:xorg-lib-libXi
- ref: 9b26b81477cf3486e5aa0ef8d81af68a0f04df1b
- unpetrify-ref: baserock/morph
+ ref: f180dff710dc54d00e0e26b84de053151f8f207e
+ unpetrify-ref: libXi-1.7.5
+ build-system: autotools
build-depends:
- xorg-lib-libX11
- xorg-lib-libXext
+ - xorg-lib-libXfixes
- xorg-proto-inputproto
- xorg-proto-x11proto
- xorg-proto-xextproto
-- name: xorg-lib-libXfixes
- repo: upstream:xorg-lib-libXfixes
- ref: 0cb446962381f750e05d97bfb974ca1e32481d5d
- unpetrify-ref: libXfixes-5.0.1
+- name: xorg-lib-libXcomposite
+ repo: upstream:xorg-lib-libXcomposite
+ ref: eda48b1bedaa344ada8e13930c9ab3058b836190
+ unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- - xorg-lib-libXext
- - xorg-proto-fixesproto
+ - xorg-lib-libX11
+ - xorg-lib-libXfixes
+ - xorg-proto-compositeproto
- name: xorg-lib-libXrender
repo: upstream:xorg-lib-libXrender
ref: 1af52cb334377611233d7dc156bc1e6f7923756d
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-lib-libX11
- xorg-proto-renderproto
@@ -198,6 +251,7 @@ chunks:
repo: upstream:xorg-lib-libXrandr
ref: 99a63d10cbbab7d69a52d25d78795a3278506ea9
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-lib-libX11
- xorg-lib-libXext
@@ -205,10 +259,21 @@ chunks:
- xorg-proto-randrproto
- xorg-proto-renderproto
- xorg-proto-xextproto
+- name: xorg-lib-libXinerama
+ repo: upstream:xorg-lib-libXinerama
+ ref: 470b9356af961ff7d3968b164aa73872b49a5dcc
+ unpetrify-ref: baserock/morph
+ build-system: autotools
+ build-depends:
+ - xorg-lib-libX11
+ - xorg-lib-libXext
+ - xorg-proto-xextproto
+ - xorg-proto-xineramaproto
- name: xorg-lib-libXtst
repo: upstream:xorg-lib-libXtst
ref: 2aafac9474a0a0a0c39797862f823255918cf368
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-lib-libX11
- xorg-lib-libXext
@@ -220,6 +285,7 @@ chunks:
repo: upstream:xorg-lib-libXdamage
ref: 0d35761dc39409b70e04dd0786aef6537f92976a
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-lib-libXfixes
- xorg-proto-damageproto
@@ -227,6 +293,7 @@ chunks:
repo: upstream:xorg-lib-libXcursor
ref: 1b98fd6a2e8c00a563187849a585e68c7344468b
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-lib-libXrender
- xorg-lib-libXfixes
@@ -237,6 +304,7 @@ chunks:
repo: upstream:xorg-lib-libICE
ref: b0cc7794c89d64fc54d0c75b2bba79fd7a1c7e0a
unpetrify-ref: libICE-1.0.9
+ build-system: autotools
build-depends:
- xorg-proto-x11proto
- xorg-lib-libxtrans
@@ -244,12 +312,14 @@ chunks:
repo: upstream:xorg-lib-libSM
ref: d0659dcd3aa23598b38826ac78f85071772c436f
unpetrify-ref: libSM-1.2.2
+ build-system: autotools
build-depends:
- xorg-lib-libICE
- name: xorg-lib-libXt
repo: upstream:xorg-lib-libXt
ref: e7411e7e5299116604ff1f01d9415802607f1051
unpetrify-ref: libXt-1.1.5
+ build-system: autotools
build-depends:
- xorg-proto-kbproto
- xorg-lib-libX11
diff --git a/strata/x-drivers.morph b/strata/x-drivers.morph
new file mode 100644
index 00000000..185d6b40
--- /dev/null
+++ b/strata/x-drivers.morph
@@ -0,0 +1,36 @@
+name: x-drivers
+kind: stratum
+build-depends:
+- morph: strata/input-common.morph
+- morph: strata/x-generic.morph
+chunks:
+- name: xorg-driver-xf86-video-fbdev
+ repo: upstream:xorg-driver-xf86-video-fbdev
+ ref: 679ed9a4e6b54227df191c580e3ef641e075db19
+ unpetrify-ref: xf86-video-fbdev-0.4.4
+ build-system: autotools
+- name: xorg-driver-xf86-video-vesa
+ repo: upstream:xorg-driver-xf86-video-vesa
+ ref: b49c293e67cd88424ff40a2ca4e58b28528691d7
+ unpetrify-ref: xf86-video-vesa-2.3.4
+ build-system: autotools
+- name: xorg-driver-xf86-video-intel
+ repo: upstream:xorg-driver-xf86-video-intel
+ ref: 57725564179b8ddb48d5c9437fde91a6c02c0740
+ unpetrify-ref: 2.99.917-381-g5772556
+ build-system: autotools
+- name: xorg-driver-xf86-input-evdev
+ repo: upstream:xorg-driver-xf86-input-evdev
+ ref: 24368d8379cc47693dd1623168a6125faff57311
+ unpetrify-ref: xf86-input-evdev-2.9.2
+ build-system: autotools
+- name: xorg-driver-xf86-input-keyboard
+ repo: upstream:xorg-driver-xf86-input-keyboard
+ ref: 13d320076e5de2d6c3cbc170fc7e31c526ed8499
+ unpetrify-ref: xf86-input-keyboard-1.8.1
+ build-system: autotools
+- name: xorg-driver-xf86-input-mouse
+ repo: upstream:xorg-driver-xf86-input-mouse
+ ref: 6886084b192e681739fc55892f30681efb4f79f0
+ unpetrify-ref: xf86-input-mouse-1.9.1
+ build-system: autotools
diff --git a/strata/x-generic.morph b/strata/x-generic.morph
index 27a7c7b6..58d3d0d1 100644
--- a/strata/x-generic.morph
+++ b/strata/x-generic.morph
@@ -7,37 +7,36 @@ build-depends:
- morph: strata/x-common.morph
- morph: strata/graphics-common.morph
chunks:
-- name: libepoxy
- repo: upstream:libepoxy
- ref: 7422de5b4be7b19d789136b3bb5f932de42db27c
- unpetrify-ref: v1.2
- name: xorg-lib-libxkbfile
repo: upstream:xorg-lib-libxkbfile
ref: 7381c2f9013ef7784c78091fa671e652a62ca706
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-font-util
repo: upstream:xorg-font-util
ref: 5f01ea79f1cb2328bfc4130b1e693f71be916b87
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xorg-lib-libfontenc
repo: upstream:xorg-lib-libfontenc
ref: f5d1208172e965fdd7fae8927bd3e29b3cc3a975
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-font-util
- name: xorg-lib-libXfont
repo: upstream:xorg-lib-libXfont
ref: ad4f4d8a2d0730c0ea3c09210bf921638b4682bc
unpetrify-ref: libXfont-1.5.0
+ build-system: autotools
build-depends:
- xorg-lib-libfontenc
- name: xserver
morph: strata/x-generic/xserver.morph
repo: upstream:xserver
- ref: 3b0d1ba2266d2780bfc111bab74885b90458eca4
- unpetrify-ref: xorg-server-1.17.1
+ ref: 2123f7682d522619f101b05fb75efa75dabbe371
+ unpetrify-ref: xorg-server-1.17.2
build-depends:
- - libepoxy
- xorg-font-util
- xorg-lib-libXfont
- xorg-lib-libxkbfile
@@ -45,5 +44,11 @@ chunks:
repo: upstream:xorg-app-xkbcomp
ref: 705b9bbb426410f9510601c7010da51184919b36
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-lib-libxkbfile
+- name: xorg-app-xinit
+ repo: upstream:xorg-app-xinit
+ ref: 4e85bce64acef1fa0ddff04d59737444e942ff12
+ unpetrify-ref: baserock/morph
+ build-system: autotools
diff --git a/strata/x-generic/xserver.morph b/strata/x-generic/xserver.morph
index ca678331..4e15605b 100644
--- a/strata/x-generic/xserver.morph
+++ b/strata/x-generic/xserver.morph
@@ -4,10 +4,9 @@ build-system: autotools
configure-commands:
- |
./autogen.sh --prefix="$PREFIX" \
- --disable-glx \
- --disable-xorg \
--disable-xvfb \
--disable-xnest \
--disable-xquartz \
--disable-xwin \
+ --enable-glamor \
--enable-xwayland
diff --git a/strata/xdg-app-common.morph b/strata/xdg-app-common.morph
new file mode 100644
index 00000000..23ab1eca
--- /dev/null
+++ b/strata/xdg-app-common.morph
@@ -0,0 +1,11 @@
+name: xdg-app-common
+kind: stratum
+build-depends:
+- morph: strata/ostree-core.morph
+- morph: strata/x-common.morph
+chunks:
+- name: xdg-app
+ morph: strata/xdg-app-common/xdg-app.morph
+ repo: upstream:xdg-app
+ ref: aa535b7b01f4dd406e9bed0dfe4a0de2b8e56565
+ unpetrify-ref: baserock/0.4.4
diff --git a/strata/xdg-app-common/xdg-app.morph b/strata/xdg-app-common/xdg-app.morph
new file mode 100644
index 00000000..87b205e3
--- /dev/null
+++ b/strata/xdg-app-common/xdg-app.morph
@@ -0,0 +1,5 @@
+name: xdg-app
+kind: chunk
+build-system: autotools
+configure-commands:
+- ./autogen.sh --prefix="$PREFIX" --sysconfdir=/etc --disable-documentation
diff --git a/strata/xfce.morph b/strata/xfce.morph
index 295abfe1..552cbd89 100644
--- a/strata/xfce.morph
+++ b/strata/xfce.morph
@@ -3,41 +3,33 @@ kind: stratum
description: xfce stratum
build-depends:
- morph: strata/gtk2.morph
-- morph: strata/x-generic.morph
+- morph: strata/audio-bluetooth.morph
chunks:
-- name: libcroco
- repo: upstream:libcroco
- ref: 611f624a6e15065792b41eb5ce14811293f3fb0a
- unpetrify-ref: baserock/morph
-- name: librsvg
- morph: strata/xfce/librsvg.morph
- repo: upstream:librsvg
- ref: 61171ca59d02b58b7da1697ca1d924bff93e66cb
- unpetrify-ref: baserock/morph
- name: xfce-dev-tools
repo: upstream:xfce/xfce4-dev-tools
ref: 9244250ac0c15ba160688758c5dccf97f3f160ef
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: libxfce4util
morph: strata/xfce/libxfce4util.morph
repo: upstream:xfce/libxfce4util
- ref: fc0437fe503c3eaa5ccd4fa68f098bc428f27cad
- unpetrify-ref: baserock/morph
+ ref: 5f56641e09b081f7d76d3feeee307589b21840c1
+ unpetrify-ref: libxfce4util-4.11.0
build-depends:
- xfce-dev-tools
- name: xfconf
morph: strata/xfce/xfconf.morph
repo: upstream:xfce/xfconf
- ref: ed6ed2f7656a0d5d8cb453cb643061c9a157f2ae
- unpetrify-ref: baserock/morph
+ ref: e5261e292130c96b6e62a8c897b1cc85bbb786ac
+ unpetrify-ref: master
build-depends:
- xfce-dev-tools
- libxfce4util
- name: libxfce4ui
morph: strata/xfce/libxfce4ui.morph
repo: upstream:xfce/libxfce4ui
- ref: a9c2a379709915dfda255d3ca9181fac3f8484d8
- unpetrify-ref: baserock/morph
+ ref: b9e6a57385ff6f0c15bbc637b76472211e3696b0
+ unpetrify-ref: libxfce4ui-4.11.2
build-depends:
- xfce-dev-tools
- libxfce4util
@@ -45,14 +37,16 @@ chunks:
- name: garcon
morph: strata/xfce/garcon.morph
repo: upstream:xfce/garcon
- ref: febd4136365714556f6afbccf4302e8f4550e5d1
+ ref: 69ff09cf0a9ee3ff9518822614637dc2d4f89ce6
unpetrify-ref: baserock/morph
build-depends:
- libxfce4util
+ - libxfce4ui
- name: perl-uri
repo: upstream:libwww-perl/uri
ref: 3dd72ded7f043a4f6973781fe594722e2e95f491
unpetrify-ref: baserock/morph
+ build-system: cpan
- name: exo
morph: strata/xfce/exo.morph
repo: upstream:xfce/exo
@@ -90,8 +84,8 @@ chunks:
- name: xfce4-settings
morph: strata/xfce/xfce4-settings.morph
repo: upstream:xfce/xfce4-settings
- ref: 697ce5cd4bf4860a0a20c27b557be296c9adf469
- unpetrify-ref: baserock/morph
+ ref: f04388fae30685b5038358674dec69406ba87f2c
+ unpetrify-ref: xfce4-settings-4.11.3
build-depends:
- xfce-dev-tools
- xfconf
@@ -102,11 +96,12 @@ chunks:
repo: upstream:iceauth
ref: c07d443d43e53cfe21b53a9a0eafcd6189432867
unpetrify-ref: baserock/morph
+ build-system: autotools
- name: xfce4-session
morph: strata/xfce/xfce4-session.morph
repo: upstream:xfce/xfce4-session
- ref: 2c89b2f12409ca617fc094e2942cb0d69318c7b5
- unpetrify-ref: baserock/morph
+ ref: d4e20cbb9b1df864b502e9e8879a538f089fd5d2
+ unpetrify-ref: xfce4-session-4.11.1
build-depends:
- iceauth
- exo
@@ -123,8 +118,8 @@ chunks:
- name: xfdesktop
morph: strata/xfce/xfdesktop.morph
repo: upstream:xfce/xfdesktop
- ref: d2f7404da32f29cfec4a704389112fe7183edda5
- unpetrify-ref: baserock/morph
+ ref: f32d76856e6eee9bc3d772b2fb6c2b8810ae63dc
+ unpetrify-ref: xfdesktop-4.11.8
build-depends:
- exo
- libxfce4ui
@@ -133,8 +128,8 @@ chunks:
- name: xfwm4
morph: strata/xfce/xfwm4.morph
repo: upstream:xfce/xfwm4
- ref: 523ef8a6861af772be3468cd700ad14172c86768
- unpetrify-ref: baserock/morph
+ ref: f5c1c74e1436deff7f16ef92c98097ac3baae290
+ unpetrify-ref: xfwm4-4.11.3_plus_fallback_theme
build-depends:
- exo
- libxfce4util
@@ -144,8 +139,8 @@ chunks:
- name: xfce4-appfinder
morph: strata/xfce/xfce4-appfinder.morph
repo: upstream:xfce/xfce4-appfinder
- ref: 5c069f13fde648913a59f022957b2c83b5764f39
- unpetrify-ref: baserock/morph
+ ref: 6c2bc7a09dd6e85bb78913cdc8af2292a9361e04
+ unpetrify-ref: xfce4-appfinder-4.11.0
build-depends:
- exo
- libxfce4ui
@@ -153,12 +148,12 @@ chunks:
- name: tumbler
morph: strata/xfce/tumbler.morph
repo: upstream:xfce/tumbler
- ref: f8191f286227a045fbdabd7684c9da81ade518c8
- unpetrify-ref: baserock/morph
+ ref: 073c2080c79075fdf574064fa2098c4b5bb79a11
+ unpetrify-ref: tumbler-0.1.30
build-depends:
- xfce-dev-tools
- name: elementary-xfce
morph: strata/xfce/elementary-xfce.morph
repo: upstream:elementary-xfce
- ref: 81e683bb46f8ba58c49c60ed75124951b7ba0779
- unpetrify-ref: baserock/morph
+ ref: 9681d40e7a3545c96dfb1670e00514acfad5b089
+ unpetrify-ref: v0.5
diff --git a/strata/xfce/librsvg.morph b/strata/xfce/librsvg.morph
deleted file mode 100644
index f4d880ed..00000000
--- a/strata/xfce/librsvg.morph
+++ /dev/null
@@ -1,6 +0,0 @@
-name: librsvg
-kind: chunk
-build-system: autotools
-configure-commands:
-- NOCONFIGURE=1 ./autogen.sh
-- ./configure --prefix="$PREFIX" --disable-gtk-theme
diff --git a/strata/xorg-util-macros-common.morph b/strata/xorg-util-macros-common.morph
index 909c9420..7e252a90 100644
--- a/strata/xorg-util-macros-common.morph
+++ b/strata/xorg-util-macros-common.morph
@@ -7,9 +7,11 @@ chunks:
repo: upstream:xorg-util-macros
ref: 9a54b858601bd305de2737b06e609084a2a114c2
unpetrify-ref: util-macros-1.19.0
+ build-system: autotools
- name: xcb-pthread-stubs
repo: upstream:xcb-pthread-stubs
ref: 431d2c0be218d878b9dd3862e4232243c599df4b
unpetrify-ref: baserock/morph
+ build-system: autotools
build-depends:
- xorg-util-macros
diff --git a/strata/xstatic.morph b/strata/xstatic.morph
index deb9d1ec..e396003b 100644
--- a/strata/xstatic.morph
+++ b/strata/xstatic.morph
@@ -10,117 +10,145 @@ description: |
but it is required right now for the Openstack system to work.
build-depends:
- morph: strata/foundation.morph
-- morph: strata/python-core.morph
+- morph: strata/python2-core.morph
chunks:
- name: xstatic
repo: upstream:xstatic
ref: 6c8604a422ba7f176ce6b372a8e182c293d06fb2
unpetrify-ref: 1.0.1
+ build-system: python-distutils
- name: xstatic-angular
repo: upstream:xstatic-packages/xstatic-angular
ref: dac047df05da5bb20de4e78876bc03820d0c6671
unpetrify-ref: 1.3.7.0
+ build-system: python-distutils
- name: xstatic-angular-animate
repo: upstream:xstatic-packages/xstatic-angular-animate
ref: 91b9d3197f67213e4e35e9a35ba7196b898731e7
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-angular-bootstrap
repo: upstream:xstatic-packages/xstatic-angular-bootstrap
ref: b581edb6975175a564fd02766aef2f9043702c80
unpetrify-ref: 0.11.0.3
+ build-system: python-distutils
- name: xstatic-angular-lrdragndrop
repo: upstream:xstatic-packages/xstatic-angular-lrdragndrop
ref: 55c7494492e6da2a6664aa00941864dd64589396
unpetrify-ref: 1.0.2.3
+ build-system: python-distutils
- name: xstatic-angular-cookies
repo: upstream:xstatic-packages/xstatic-angular-cookies
ref: 66141a33ae7ad84b82ba9384a8101ae15ccd6da5
unpetrify-ref: 1.2.1.1
+ build-system: python-distutils
- name: xstatic-angular-fileupload
repo: upstream:xstatic-packages/xstatic-angular-fileupload
ref: 04bcd774dae17cfff5e826fc0874f6403b4a6cae
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-angular-mock
repo: upstream:xstatic-packages/xstatic-angular-mock
ref: 20fdada109b167bcdcacec22986b43fdb42866f3
unpetrify-ref: 1.2.1.1
+ build-system: python-distutils
- name: xstatic-angular-sanitize
repo: upstream:xstatic-packages/xstatic-angular-sanitize
ref: 9e0f03ada6fc00f8583903aeb6d9fc6516784999
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-angular-smart-table
repo: upstream:xstatic-packages/xstatic-angular-smart-table
ref: e0fbf69fb156b995547471d71c5c6a7f88989d47
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-bootstrap-datepicker
repo: upstream:xstatic-packages/xstatic-bootstrap-datepicker
ref: 60caf41e32d49f9bc715c39570f01449ebfbd37a
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-bootstrap-scss
repo: upstream:xstatic-packages/xstatic-bootstrap-scss
ref: d81b7b71c6c088406e90d1bdba0e10f0a304bbdc
unpetrify-ref: 3.1.1.1
+ build-system: python-distutils
- name: xstatic-d3
repo: upstream:xstatic-packages/xstatic-d3
ref: 1e754e73c801fb9315995ffeb95ae51233c4fcaf
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-hogan
repo: upstream:xstatic-packages/xstatic-hogan
ref: 9e39977f6a6744810b08fa0323147e9f31dbd363
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-font-awesome
repo: upstream:xstatic-packages/xstatic-font-awesome
ref: c13aad1b95b1d84e73f2565a18a5a8e2bd2194a7
unpetrify-ref: 4.2.0.0
+ build-system: python-distutils
- name: xstatic-jasmine
repo: upstream:xstatic-packages/xstatic-jasmine
ref: a55f5db1dbe59b23c7d6284250bf4eac1d0143c3
unpetrify-ref: 2.1.2.0
+ build-system: python-distutils
- name: xstatic-jquery
repo: upstream:xstatic-packages/xstatic-jquery
ref: e91c5bf82535a62c1cfac61b5efb6b5c0157c1f5
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-jquery-bootstrap-wizard
repo: upstream:xstatic-packages/xstatic-jquery-bootstrap-wizard
ref: 07ae7e3a15b3af3d3d378d1f2412fe503ee42142
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-jquery-migrate
repo: upstream:xstatic-packages/xstatic-jquery-migrate
ref: 989b3b31106727542dd83810c3b952f90d8cdb8f
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-jquery-quicksearch
repo: upstream:xstatic-packages/xstatic-jquery-quicksearch
ref: f5221c8c30507340846d97d6db41a782e7c63316
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-jquery-tablesorter
repo: upstream:xstatic-packages/xstatic-jquery-tablesorter
ref: eb78328391f44a9a88033e1aede1a605902c5551
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-jquery-ui
repo: upstream:xstatic-packages/xstatic-jquery-ui
ref: b494369430dafd8ac4ddbe90efb9f8ad20a6e6d1
unpetrify-ref: 1.11.0.1
+ build-system: python-distutils
- name: xstatic-magic-search
repo: upstream:xstatic-packages/xstatic-magic-search
ref: 60d6954a36e54afa1f925324e7b527d235bdb484
unpetrify-ref: 0.2.0.1
+ build-system: python-distutils
- name: xstatic-jsencrypt
repo: upstream:xstatic-packages/xstatic-jsencrypt
ref: 5c0f088310ecd602e3aaf5e683385b0d27258409
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-qunit
repo: upstream:xstatic-packages/xstatic-qunit
ref: c3189eaa77c68c149a40b8c0afc8722cf394bd1f
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-rickshaw
repo: upstream:xstatic-packages/xstatic-rickshaw
ref: 6427ca5406852bc779d6918f487bb0fe3f063e77
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-spin
repo: upstream:xstatic-packages/xstatic-spin
ref: 74b4c0d0ff12db1f84787246857d5e925ff6883f
unpetrify-ref: master
+ build-system: python-distutils
- name: xstatic-termjs
repo: upstream:xstatic-packages/xstatic-termjs
ref: a4ac0b809ab0d84c636a760215839bb6d68d0113
unpetrify-ref: master
+ build-system: python-distutils
diff --git a/systems/base-system-armv7l-altera-socfpga-devkit.morph b/systems/base-system-armv7l-altera-socfpga-devkit.morph
new file mode 100644
index 00000000..b8fe4c28
--- /dev/null
+++ b/systems/base-system-armv7l-altera-socfpga-devkit.morph
@@ -0,0 +1,21 @@
+name: base-system-armv7l-altera-socfpga-devkit
+kind: system
+description: |
+ The set of strata required to have a minimal system for use on Altera SoCFPGA
+ development kit, using little-endian word order.
+arch: armv7lhf
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-armv7l-altera-socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit.morph
+configuration-extensions:
+- extensions/set-hostname
+- extensions/add-config-files
+- extensions/nfsboot
+- extensions/install-files
+- extensions/install-essential-files
diff --git a/systems/build-system-armv5l-openbmc-aspeed.morph b/systems/build-system-armv5l-openbmc-aspeed.morph
index 922d49f1..699f8b7e 100644
--- a/systems/build-system-armv5l-openbmc-aspeed.morph
+++ b/systems/build-system-armv5l-openbmc-aspeed.morph
@@ -11,10 +11,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: bsp-armv5l-openbmc-aspeed
morph: strata/bsp-armv5l-openbmc-aspeed.morph
- name: tools
diff --git a/systems/build-system-armv7l-altera-socfpga-devkit.morph b/systems/build-system-armv7l-altera-socfpga-devkit.morph
new file mode 100644
index 00000000..813392cb
--- /dev/null
+++ b/systems/build-system-armv7l-altera-socfpga-devkit.morph
@@ -0,0 +1,48 @@
+name: build-system-armv7l-altera-socfpga-devkit
+kind: system
+description: |
+ The system that should be used for building other Baserock systems. For
+ use on Altera SoCFPGA development kit, using little-endian word order.
+arch: armv7lhf
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-armv7l-altera-socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit.morph
+- name: python2-core
+ morph: strata/python2-core.morph
+- name: tools
+ morph: strata/tools.morph
+- name: python-cliapp
+ morph: strata/python-cliapp.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
+- name: python-wsgi
+ morph: strata/python-wsgi.morph
+- name: morph-utils
+ morph: strata/morph-utils.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-common
+ morph: strata/python-common.morph
+- name: ansible
+ morph: strata/ansible.morph
+- name: devtools
+ morph: strata/devtools.morph
+- name: libsoup-common
+ morph: strata/libsoup-common.morph
+- name: ostree-core
+ morph: strata/ostree-core.morph
+configuration-extensions:
+- extensions/set-hostname
+- extensions/add-config-files
+- extensions/nfsboot
+- extensions/install-files
+- extensions/distbuild
+- extensions/fstab
+- extensions/mason
+- extensions/install-essential-files
diff --git a/systems/build-system-armv7lhf-highbank.morph b/systems/build-system-armv7lhf-highbank.morph
index fa96ca02..752655af 100644
--- a/systems/build-system-armv7lhf-highbank.morph
+++ b/systems/build-system-armv7lhf-highbank.morph
@@ -10,10 +10,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: bsp-armv7-highbank
morph: strata/bsp-armv7-highbank.morph
- name: tools
diff --git a/systems/build-system-armv7lhf-jetson.morph b/systems/build-system-armv7lhf-jetson.morph
index 2e180a6e..928d4c9f 100644
--- a/systems/build-system-armv7lhf-jetson.morph
+++ b/systems/build-system-armv7lhf-jetson.morph
@@ -10,10 +10,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: bsp-jetson
morph: strata/bsp-jetson.morph
- name: tools
diff --git a/systems/build-system-armv7lhf-rootfs.morph b/systems/build-system-armv7lhf-rootfs.morph
new file mode 100644
index 00000000..0cdfc804
--- /dev/null
+++ b/systems/build-system-armv7lhf-rootfs.morph
@@ -0,0 +1,54 @@
+name: build-system-armv7lhf-rootfs
+kind: system
+description: The system that should be used for building all other Baserock systems
+ for ARMv7 little-endian hard-float, rootfs variant.
+arch: armv7lhf
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: python2-core
+ morph: strata/python2-core.morph
+- name: tools
+ morph: strata/tools.morph
+- name: python-cliapp
+ morph: strata/python-cliapp.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
+- name: python-wsgi
+ morph: strata/python-wsgi.morph
+- name: morph-utils
+ morph: strata/morph-utils.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python-common
+ morph: strata/python-common.morph
+- name: ansible
+ morph: strata/ansible.morph
+- name: cloudinit-support
+ morph: strata/cloudinit-support.morph
+- name: openstack-common
+ morph: strata/openstack-common.morph
+- name: openstack-clients
+ morph: strata/openstack-clients.morph
+- name: devtools
+ morph: strata/devtools.morph
+- name: libsoup-common
+ morph: strata/libsoup-common.morph
+- name: glib-common
+ morph: strata/glib-common.morph
+- name: ostree-core
+ morph: strata/ostree-core.morph
+configuration-extensions:
+- extensions/set-hostname
+- extensions/add-config-files
+- extensions/nfsboot
+- extensions/install-files
+- extensions/distbuild
+- extensions/fstab
+- extensions/mason
+- extensions/cloud-init
+- extensions/install-essential-files
diff --git a/systems/build-system-armv8b64.morph b/systems/build-system-armv8b64.morph
index 27757027..75864921 100644
--- a/systems/build-system-armv8b64.morph
+++ b/systems/build-system-armv8b64.morph
@@ -13,10 +13,8 @@ strata:
morph: strata/foundation.morph
- name: bsp-armv8b64-generic
morph: strata/bsp-armv8b64-generic.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: tools
morph: strata/tools.morph
- name: python-cliapp
diff --git a/systems/build-system-armv8l64.morph b/systems/build-system-armv8l64.morph
index 2f9560c4..da6e45a1 100644
--- a/systems/build-system-armv8l64.morph
+++ b/systems/build-system-armv8l64.morph
@@ -11,10 +11,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: bsp-armv8l64-generic
morph: strata/bsp-armv8l64-generic.morph
- name: tools
diff --git a/systems/build-system-ppc64.morph b/systems/build-system-ppc64.morph
index 5c2851bf..0e8bcfc1 100644
--- a/systems/build-system-ppc64.morph
+++ b/systems/build-system-ppc64.morph
@@ -10,10 +10,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: bsp-ppc64-generic
morph: strata/bsp-ppc64-generic.morph
- name: tools
diff --git a/systems/build-system-x86_32-chroot.morph b/systems/build-system-x86_32-chroot.morph
index bfd77b8e..ba2d6b04 100644
--- a/systems/build-system-x86_32-chroot.morph
+++ b/systems/build-system-x86_32-chroot.morph
@@ -10,10 +10,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: tools
morph: strata/tools.morph
- name: python-cliapp
diff --git a/systems/build-system-x86_32.morph b/systems/build-system-x86_32.morph
index fe35055f..61d339da 100644
--- a/systems/build-system-x86_32.morph
+++ b/systems/build-system-x86_32.morph
@@ -10,10 +10,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: bsp-x86_32-generic
morph: strata/bsp-x86_32-generic.morph
- name: tools
diff --git a/systems/build-system-x86_64-chroot.morph b/systems/build-system-x86_64-chroot.morph
index 3bbdd914..48463cd2 100644
--- a/systems/build-system-x86_64-chroot.morph
+++ b/systems/build-system-x86_64-chroot.morph
@@ -10,10 +10,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: tools
morph: strata/tools.morph
- name: python-cliapp
diff --git a/systems/build-system-x86_64.morph b/systems/build-system-x86_64.morph
index b5e39f73..0abf5925 100644
--- a/systems/build-system-x86_64.morph
+++ b/systems/build-system-x86_64.morph
@@ -10,10 +10,8 @@ strata:
morph: strata/core.morph
- name: foundation
morph: strata/foundation.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
- name: tools
diff --git a/systems/ceph-service-x86_64-generic.morph b/systems/ceph-service-x86_64-generic.morph
index 9a36b850..803d002f 100644
--- a/systems/ceph-service-x86_64-generic.morph
+++ b/systems/ceph-service-x86_64-generic.morph
@@ -50,10 +50,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-common
morph: strata/python-common.morph
- name: chef
diff --git a/systems/devel-system-armv7-chroot.morph b/systems/devel-system-armv7-chroot.morph
index 6fe76927..9a5f48f2 100644
--- a/systems/devel-system-armv7-chroot.morph
+++ b/systems/devel-system-armv7-chroot.morph
@@ -35,10 +35,8 @@ strata:
morph: strata/lorry.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -57,6 +55,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7-highbank.morph b/systems/devel-system-armv7-highbank.morph
index 9305bd55..fd0cdfcb 100644
--- a/systems/devel-system-armv7-highbank.morph
+++ b/systems/devel-system-armv7-highbank.morph
@@ -36,10 +36,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -60,6 +58,8 @@ strata:
morph: strata/unionfs-fuse-group.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7-versatile.morph b/systems/devel-system-armv7-versatile.morph
index fc1ee9c5..423648c9 100644
--- a/systems/devel-system-armv7-versatile.morph
+++ b/systems/devel-system-armv7-versatile.morph
@@ -36,10 +36,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -58,6 +56,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7-wandboard.morph b/systems/devel-system-armv7-wandboard.morph
index 4d6eabff..7e594710 100644
--- a/systems/devel-system-armv7-wandboard.morph
+++ b/systems/devel-system-armv7-wandboard.morph
@@ -36,10 +36,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -58,6 +56,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7b-chroot.morph b/systems/devel-system-armv7b-chroot.morph
index 01187420..0c9344c1 100644
--- a/systems/devel-system-armv7b-chroot.morph
+++ b/systems/devel-system-armv7b-chroot.morph
@@ -27,10 +27,8 @@ strata:
morph: strata/openstack-clients.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -49,6 +47,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7b-highbank.morph b/systems/devel-system-armv7b-highbank.morph
index acd68b5f..4bd34876 100644
--- a/systems/devel-system-armv7b-highbank.morph
+++ b/systems/devel-system-armv7b-highbank.morph
@@ -32,10 +32,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -56,6 +54,8 @@ strata:
morph: strata/unionfs-fuse-group.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7l-altera-socfpga-devkit.morph b/systems/devel-system-armv7l-altera-socfpga-devkit.morph
new file mode 100644
index 00000000..94f85ec2
--- /dev/null
+++ b/systems/devel-system-armv7l-altera-socfpga-devkit.morph
@@ -0,0 +1,62 @@
+name: devel-system-armv7l-altera-socfpga-devkit
+kind: system
+description: |
+ A system with useful tools for doing Baserock development.
+
+ For use on Altera SoCFPGA development kit, using little-endian word
+ order.
+arch: armv7lhf
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-armv7l-altera-socfpga-devkit
+ morph: strata/bsp-armv7l-altera-socfpga-devkit.morph
+- name: tools
+ morph: strata/tools.morph
+- name: python-cliapp
+ morph: strata/python-cliapp.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
+- name: python-wsgi
+ morph: strata/python-wsgi.morph
+- name: morph-utils
+ morph: strata/morph-utils.morph
+- name: nodejs
+ morph: strata/nodejs.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: lorry
+ morph: strata/lorry.morph
+- name: baserock-import
+ morph: strata/baserock-import.morph
+- name: nfs
+ morph: strata/nfs.morph
+- name: python2-core
+ morph: strata/python2-core.morph
+- name: python-tools
+ morph: strata/python-tools.morph
+- name: python-common
+ morph: strata/python-common.morph
+- name: devtools
+ morph: strata/devtools.morph
+- name: ansible
+ morph: strata/ansible.morph
+- name: swift
+ morph: strata/swift.morph
+- name: libsoup-common
+ morph: strata/libsoup-common.morph
+- name: ostree-core
+ morph: strata/ostree-core.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
+configuration-extensions:
+- extensions/set-hostname
+- extensions/add-config-files
+- extensions/nfsboot
+- extensions/install-files
+- extensions/fstab
+- extensions/install-essential-files
diff --git a/systems/devel-system-armv7lhf-chroot.morph b/systems/devel-system-armv7lhf-chroot.morph
index 180779d9..203d5ef8 100644
--- a/systems/devel-system-armv7lhf-chroot.morph
+++ b/systems/devel-system-armv7lhf-chroot.morph
@@ -35,10 +35,8 @@ strata:
morph: strata/lorry.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -57,6 +55,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7lhf-highbank.morph b/systems/devel-system-armv7lhf-highbank.morph
index 8660e698..c0ccfa66 100644
--- a/systems/devel-system-armv7lhf-highbank.morph
+++ b/systems/devel-system-armv7lhf-highbank.morph
@@ -39,10 +39,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -63,6 +61,8 @@ strata:
morph: strata/unionfs-fuse-group.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7lhf-jetson.morph b/systems/devel-system-armv7lhf-jetson.morph
index bac4f2ab..14bc1b27 100644
--- a/systems/devel-system-armv7lhf-jetson.morph
+++ b/systems/devel-system-armv7lhf-jetson.morph
@@ -39,10 +39,8 @@ strata:
morph: strata/lorry.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -61,6 +59,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv7lhf-wandboard.morph b/systems/devel-system-armv7lhf-wandboard.morph
index c11bbbb6..6cf81846 100644
--- a/systems/devel-system-armv7lhf-wandboard.morph
+++ b/systems/devel-system-armv7lhf-wandboard.morph
@@ -39,10 +39,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -61,6 +59,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv8b64.morph b/systems/devel-system-armv8b64.morph
index 001de4b5..ab8dcd1b 100644
--- a/systems/devel-system-armv8b64.morph
+++ b/systems/devel-system-armv8b64.morph
@@ -40,10 +40,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -60,6 +58,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-armv8l64.morph b/systems/devel-system-armv8l64.morph
index cde9fe18..3cf21388 100644
--- a/systems/devel-system-armv8l64.morph
+++ b/systems/devel-system-armv8l64.morph
@@ -38,10 +38,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -60,6 +58,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-ppc64-chroot.morph b/systems/devel-system-ppc64-chroot.morph
index 59b03bdd..5e4c5f98 100644
--- a/systems/devel-system-ppc64-chroot.morph
+++ b/systems/devel-system-ppc64-chroot.morph
@@ -33,10 +33,8 @@ strata:
morph: strata/lorry.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -55,6 +53,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-ppc64-generic.morph b/systems/devel-system-ppc64-generic.morph
index 0a077609..be76353c 100644
--- a/systems/devel-system-ppc64-generic.morph
+++ b/systems/devel-system-ppc64-generic.morph
@@ -36,10 +36,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -58,6 +56,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-x86_32-chroot.morph b/systems/devel-system-x86_32-chroot.morph
index b071abfc..bcd0acfc 100644
--- a/systems/devel-system-x86_32-chroot.morph
+++ b/systems/devel-system-x86_32-chroot.morph
@@ -35,10 +35,8 @@ strata:
morph: strata/lorry.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -57,6 +55,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-x86_32-generic.morph b/systems/devel-system-x86_32-generic.morph
index 9f792f30..c03c8b73 100644
--- a/systems/devel-system-x86_32-generic.morph
+++ b/systems/devel-system-x86_32-generic.morph
@@ -40,10 +40,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -62,6 +60,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-x86_64-chroot.morph b/systems/devel-system-x86_64-chroot.morph
index 5be9910c..49fc75af 100644
--- a/systems/devel-system-x86_64-chroot.morph
+++ b/systems/devel-system-x86_64-chroot.morph
@@ -37,10 +37,8 @@ strata:
morph: strata/lorry.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -59,6 +57,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-x86_64-generic.morph b/systems/devel-system-x86_64-generic.morph
index ae0c97e8..5ee32cc2 100644
--- a/systems/devel-system-x86_64-generic.morph
+++ b/systems/devel-system-x86_64-generic.morph
@@ -40,10 +40,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -62,6 +60,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/devel-system-x86_64-vagrant.morph b/systems/devel-system-x86_64-vagrant.morph
index 4a91f84b..e142c7c5 100644
--- a/systems/devel-system-x86_64-vagrant.morph
+++ b/systems/devel-system-x86_64-vagrant.morph
@@ -38,10 +38,8 @@ strata:
morph: strata/lorry.morph
- name: baserock-import
morph: strata/baserock-import.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
@@ -60,6 +58,8 @@ strata:
morph: strata/ostree-core.morph
- name: coreutils-common
morph: strata/coreutils-common.morph
+- name: compilers-extra
+ morph: strata/compilers-extra.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/genivi-baseline-system-armv7lhf-jetson.morph b/systems/genivi-baseline-system-armv7lhf-jetson.morph
index 535696f6..59e2c86f 100644
--- a/systems/genivi-baseline-system-armv7lhf-jetson.morph
+++ b/systems/genivi-baseline-system-armv7lhf-jetson.morph
@@ -31,8 +31,8 @@ strata:
morph: strata/wayland-generic.morph
- name: graphics-common
morph: strata/graphics-common.morph
-- name: input-common
- morph: strata/input-common.morph
+- name: input-genivi
+ morph: strata/input-genivi.morph
- name: mesa-common
morph: strata/mesa-common.morph
- name: x-common
@@ -47,3 +47,4 @@ configuration-extensions:
- extensions/strip-gplv3
- extensions/fstab
- extensions/install-essential-files
+- extensions/genivi
diff --git a/systems/genivi-baseline-system-armv7lhf-versatile.morph b/systems/genivi-baseline-system-armv7lhf-versatile.morph
index c1425115..6a69e3b2 100644
--- a/systems/genivi-baseline-system-armv7lhf-versatile.morph
+++ b/systems/genivi-baseline-system-armv7lhf-versatile.morph
@@ -31,8 +31,8 @@ strata:
morph: strata/wayland-generic.morph
- name: graphics-common
morph: strata/graphics-common.morph
-- name: input-common
- morph: strata/input-common.morph
+- name: input-genivi
+ morph: strata/input-genivi.morph
- name: x-common
morph: strata/x-common.morph
- name: weston-genivi
@@ -45,3 +45,4 @@ configuration-extensions:
- extensions/strip-gplv3
- extensions/fstab
- extensions/install-essential-files
+- extensions/genivi
diff --git a/systems/genivi-baseline-system-x86_64-generic.morph b/systems/genivi-baseline-system-x86_64-generic.morph
index da0a1b3a..693437b4 100644
--- a/systems/genivi-baseline-system-x86_64-generic.morph
+++ b/systems/genivi-baseline-system-x86_64-generic.morph
@@ -31,8 +31,8 @@ strata:
morph: strata/wayland-generic.morph
- name: graphics-common
morph: strata/graphics-common.morph
-- name: input-common
- morph: strata/input-common.morph
+- name: input-genivi
+ morph: strata/input-genivi.morph
- name: llvm-common
morph: strata/llvm-common.morph
- name: mesa-common
@@ -48,3 +48,4 @@ configuration-extensions:
- extensions/install-files
- extensions/strip-gplv3
- extensions/install-essential-files
+- extensions/genivi
diff --git a/systems/genivi-demo-platform-armv7lhf-jetson.morph b/systems/genivi-demo-platform-armv7lhf-jetson.morph
new file mode 100644
index 00000000..d683a33e
--- /dev/null
+++ b/systems/genivi-demo-platform-armv7lhf-jetson.morph
@@ -0,0 +1,71 @@
+name: genivi-demo-platform-armv7lhf-jetson
+kind: system
+description: A GENIVI demo platform for a 64-bit x86 system.
+arch: armv7lhf
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
+- name: glib-common
+ morph: strata/glib-common.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-jetson
+ morph: strata/bsp-jetson.morph
+- name: connectivity
+ morph: strata/connectivity.morph
+- name: connman-common
+ morph: strata/connman-common.morph
+- name: audio-bluetooth
+ morph: strata/audio-bluetooth.morph
+- name: libdrm-common
+ morph: strata/libdrm-common.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
+ morph: strata/wayland-generic.morph
+- name: graphics-common
+ morph: strata/graphics-common.morph
+- name: input-genivi
+ morph: strata/input-genivi.morph
+- name: mesa-common
+ morph: strata/mesa-common.morph
+- name: x-common
+ morph: strata/x-common.morph
+- name: weston-genivi
+ morph: strata/weston-genivi.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: icu-common
+ morph: strata/icu-common.morph
+- name: qt5-tools
+ morph: strata/qt5-tools.morph
+- name: qt5-tools-qtmultimedia
+ morph: strata/qt5-tools-qtmultimedia.morph
+- name: qt5-tools-qtwebkit
+ morph: strata/qt5-tools-qtwebkit.morph
+- name: qt5-tools-qtwayland-genivi
+ morph: strata/qt5-tools-qtwayland-genivi.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
+- name: genivi-demo-platform-libs
+ morph: strata/genivi-demo-platform-libs.morph
+- name: genivi-demo-platform
+ morph: strata/genivi-demo-platform.morph
+- name: tools
+ morph: strata/tools.morph
+configuration-extensions:
+- extensions/set-hostname
+- extensions/add-config-files
+- extensions/nfsboot
+- extensions/install-files
+- extensions/fstab
+- extensions/install-essential-files
+- extensions/genivi
diff --git a/systems/genivi-demo-platform-x86_64-generic.morph b/systems/genivi-demo-platform-x86_64-generic.morph
new file mode 100644
index 00000000..7b92faf1
--- /dev/null
+++ b/systems/genivi-demo-platform-x86_64-generic.morph
@@ -0,0 +1,73 @@
+name: genivi-demo-platform-x86_64-generic
+kind: system
+description: A GENIVI demo platform for a 64-bit x86 system.
+arch: x86_64
+strata:
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: core
+ morph: strata/core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
+- name: glib-common
+ morph: strata/glib-common.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: bsp-x86_64-generic
+ morph: strata/bsp-x86_64-generic.morph
+- name: connectivity
+ morph: strata/connectivity.morph
+- name: connman-common
+ morph: strata/connman-common.morph
+- name: audio-bluetooth
+ morph: strata/audio-bluetooth.morph
+- name: libdrm-common
+ morph: strata/libdrm-common.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
+ morph: strata/wayland-generic.morph
+- name: graphics-common
+ morph: strata/graphics-common.morph
+- name: input-genivi
+ morph: strata/input-genivi.morph
+- name: llvm-common
+ morph: strata/llvm-common.morph
+- name: mesa-common
+ morph: strata/mesa-common.morph
+- name: x-common
+ morph: strata/x-common.morph
+- name: weston-genivi
+ morph: strata/weston-genivi.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: icu-common
+ morph: strata/icu-common.morph
+- name: qt5-tools
+ morph: strata/qt5-tools.morph
+- name: qt5-tools-qtmultimedia
+ morph: strata/qt5-tools-qtmultimedia.morph
+- name: qt5-tools-qtwebkit
+ morph: strata/qt5-tools-qtwebkit.morph
+- name: qt5-tools-qtwayland-genivi
+ morph: strata/qt5-tools-qtwayland-genivi.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
+- name: genivi-demo-platform-libs
+ morph: strata/genivi-demo-platform-libs.morph
+- name: genivi-demo-platform
+ morph: strata/genivi-demo-platform.morph
+- name: tools
+ morph: strata/tools.morph
+configuration-extensions:
+- extensions/set-hostname
+- extensions/add-config-files
+- extensions/nfsboot
+- extensions/install-files
+- extensions/fstab
+- extensions/install-essential-files
+- extensions/genivi
diff --git a/systems/gnome-system-x86_64.morph b/systems/gnome-system-x86_64.morph
new file mode 100644
index 00000000..3166a486
--- /dev/null
+++ b/systems/gnome-system-x86_64.morph
@@ -0,0 +1,78 @@
+name: gnome-system-x86_64
+kind: system
+description: A GNOME system system.
+arch: x86_64
+strata:
+- name: audio-bluetooth
+ morph: strata/audio-bluetooth.morph
+- name: bsp-x86_64-generic
+ morph: strata/bsp-x86_64-generic.morph
+- name: build-essential
+ morph: strata/build-essential.morph
+- name: NetworkManager-common
+ morph: strata/NetworkManager-common.morph
+- name: core
+ morph: strata/core.morph
+- name: foundation
+ morph: strata/foundation.morph
+- name: glib-common
+ morph: strata/glib-common.morph
+- name: gnome
+ morph: strata/gnome.morph
+- name: graphics-common
+ morph: strata/graphics-common.morph
+- name: gtk-deps
+ morph: strata/gtk-deps.morph
+- name: gtk2
+ morph: strata/gtk2.morph
+- name: gtk3
+ morph: strata/gtk3.morph
+- name: input-common
+ morph: strata/input-common.morph
+- name: llvm-common
+ morph: strata/llvm-common.morph
+- name: mesa-common
+ morph: strata/mesa-common.morph
+- name: multimedia-common
+ morph: strata/multimedia-common.morph
+- name: multimedia-gstreamer
+ morph: strata/multimedia-gstreamer.morph
+- name: python2-core
+ morph: strata/python2-core.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
+- name: libsoup-common
+ morph: strata/libsoup-common.morph
+- name: ruby
+ morph: strata/ruby.morph
+- name: tools
+ morph: strata/tools.morph
+- name: libdrm-common
+ morph: strata/libdrm-common.morph
+- name: wayland-generic
+ morph: strata/wayland-generic.morph
+- name: weston-common
+ morph: strata/weston-common.morph
+- name: x-common
+ morph: strata/x-common.morph
+- name: x-drivers
+ morph: strata/x-drivers.morph
+- name: x-generic
+ morph: strata/x-generic.morph
+- name: ostree-core
+ morph: strata/ostree-core.morph
+- name: xdg-app-common
+ morph: strata/xdg-app-common.morph
+- name: network-security
+ morph: strata/network-security.morph
+- name: icu-common
+ morph: strata/icu-common.morph
+- name: samba
+ morph: strata/samba.morph
+- name: cups
+ morph: strata/cups.morph
+configuration-extensions:
+- extensions/set-hostname
+- extensions/add-config-files
+- extensions/install-files
+- extensions/install-essential-files
diff --git a/systems/installer-system-armv8b64.morph b/systems/installer-system-armv8b64.morph
index 860a6231..824e2dab 100644
--- a/systems/installer-system-armv8b64.morph
+++ b/systems/installer-system-armv8b64.morph
@@ -8,10 +8,8 @@ strata:
morph: strata/build-essential.morph
- name: core
morph: strata/core.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: foundation
morph: strata/foundation.morph
- name: bsp-armv8b64-generic
diff --git a/systems/installer-system-x86_64.morph b/systems/installer-system-x86_64.morph
index 1e854f33..aa102c15 100644
--- a/systems/installer-system-x86_64.morph
+++ b/systems/installer-system-x86_64.morph
@@ -8,10 +8,8 @@ strata:
morph: strata/build-essential.morph
- name: core
morph: strata/core.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: foundation
morph: strata/foundation.morph
- name: bsp-x86_64-generic
diff --git a/systems/java-build-system-x86_64-generic.morph b/systems/java-build-system-x86_64-generic.morph
index f0830980..b60637ba 100644
--- a/systems/java-build-system-x86_64-generic.morph
+++ b/systems/java-build-system-x86_64-generic.morph
@@ -43,10 +43,8 @@ strata:
morph: strata/baserock-import.morph
- name: nfs
morph: strata/nfs.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-tools
morph: strata/python-tools.morph
- name: python-common
diff --git a/systems/nodejs-system-x86_64.morph b/systems/nodejs-system-x86_64.morph
index b758d5bd..7fba330b 100644
--- a/systems/nodejs-system-x86_64.morph
+++ b/systems/nodejs-system-x86_64.morph
@@ -12,6 +12,8 @@ strata:
morph: strata/foundation.morph
- name: bsp-x86_64-generic
morph: strata/bsp-x86_64-generic.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: nodejs
morph: strata/nodejs.morph
configuration-extensions:
diff --git a/systems/openstack-system-x86_64.morph b/systems/openstack-system-x86_64.morph
index 8c191be6..7cb8c20f 100644
--- a/systems/openstack-system-x86_64.morph
+++ b/systems/openstack-system-x86_64.morph
@@ -7,10 +7,8 @@ strata:
morph: strata/build-essential.morph
- name: core
morph: strata/core.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-pygobject
morph: strata/python-pygobject.morph
- name: python-common
diff --git a/systems/qt4-devel-system-x86_64-generic.morph b/systems/qt4-devel-system-x86_64-generic.morph
index 0285fa70..e8230c88 100644
--- a/systems/qt4-devel-system-x86_64-generic.morph
+++ b/systems/qt4-devel-system-x86_64-generic.morph
@@ -38,6 +38,8 @@ strata:
morph: strata/connman-common.morph
- name: enlightenment
morph: strata/enlightenment.morph
+- name: icu-common
+ morph: strata/icu-common.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/qt5-devel-system-x86_64-generic.morph b/systems/qt5-devel-system-x86_64-generic.morph
index c342ceb9..b68faf79 100644
--- a/systems/qt5-devel-system-x86_64-generic.morph
+++ b/systems/qt5-devel-system-x86_64-generic.morph
@@ -40,6 +40,8 @@ strata:
morph: strata/connman-common.morph
- name: enlightenment
morph: strata/enlightenment.morph
+- name: icu-common
+ morph: strata/icu-common.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/swift-system-x86_64.morph b/systems/swift-system-x86_64.morph
index 139c0028..f850ec45 100644
--- a/systems/swift-system-x86_64.morph
+++ b/systems/swift-system-x86_64.morph
@@ -15,10 +15,8 @@ strata:
morph: strata/swift.morph
- name: ntpd
morph: strata/ntpd.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: python-common
morph: strata/python-common.morph
- name: ansible
diff --git a/systems/trove-system-x86_64.morph b/systems/trove-system-x86_64.morph
index 3ffb8995..bd0a0ff4 100644
--- a/systems/trove-system-x86_64.morph
+++ b/systems/trove-system-x86_64.morph
@@ -11,10 +11,8 @@ strata:
morph: strata/foundation.morph
- name: core
morph: strata/core.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: tools
morph: strata/tools.morph
- name: python-cliapp
diff --git a/systems/web-system-x86_64-generic.morph b/systems/web-system-x86_64-generic.morph
index 4101f615..090abcbe 100644
--- a/systems/web-system-x86_64-generic.morph
+++ b/systems/web-system-x86_64-generic.morph
@@ -29,8 +29,12 @@ strata:
morph: strata/erlang.morph
- name: ruby
morph: strata/ruby.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: nodejs
morph: strata/nodejs.morph
+- name: icu-common
+ morph: strata/icu-common.morph
configuration-extensions:
- extensions/set-hostname
- extensions/add-config-files
diff --git a/systems/xfce-system.morph b/systems/xfce-system-x86_64.morph
index 6a1e0b2b..fedddd57 100644
--- a/systems/xfce-system.morph
+++ b/systems/xfce-system-x86_64.morph
@@ -1,16 +1,16 @@
name: xfce-system
kind: system
-description: A GENIVI devel with XFCE
+description: A system with the XFCE desktop
arch: x86_64
strata:
- name: build-essential
morph: strata/build-essential.morph
- name: core
morph: strata/core.morph
-- name: python-core
- morph: strata/python-core.morph
-- name: python3-core
- morph: strata/python3-core.morph
+- name: coreutils-common
+ morph: strata/coreutils-common.morph
+- name: python2-core
+ morph: strata/python2-core.morph
- name: foundation
morph: strata/foundation.morph
- name: bsp-x86_64-generic
@@ -19,22 +19,36 @@ strata:
morph: strata/connectivity.morph
- name: connman-common
morph: strata/connman-common.morph
+- name: input-common
+ morph: strata/input-common.morph
- name: audio-bluetooth
morph: strata/audio-bluetooth.morph
+- name: libdrm-common
+ morph: strata/libdrm-common.morph
+- name: mesa-common
+ morph: strata/mesa-common.morph
+- name: graphics-common
+ morph: strata/graphics-common.morph
+- name: wayland-generic
+ morph: strata/wayland-generic.morph
- name: x-common
morph: strata/x-common.morph
- name: x-generic
morph: strata/x-generic.morph
+- name: x-drivers
+ morph: strata/x-drivers.morph
- name: multimedia-common
morph: strata/multimedia-common.morph
- name: multimedia-gstreamer
morph: strata/multimedia-gstreamer.morph
-- name: genivi
- morph: strata/genivi.morph
+- name: gtk-deps
+ morph: strata/gtk-deps.morph
- name: gtk2
morph: strata/gtk2.morph
- name: tools
morph: strata/tools.morph
+- name: devtools
+ morph: strata/devtools.morph
- name: python-cliapp
morph: strata/python-cliapp.morph
- name: python-pygobject