summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Coldrick <adam.coldrick@codethink.co.uk>2015-04-16 14:42:45 (GMT)
committerJavier Jardón <jjardon@gnome.org>2015-04-22 22:20:09 (GMT)
commit39b553e11c1636acb719746ecd6eb41f6eff8369 (patch)
tree9fdd483a3d361da9c8abae94e406fc0dca87f3b0
parent54c03de00b882b2f214f29837d00cea38d0ca685 (diff)
downloaddefinitions-39b553e11c1636acb719746ecd6eb41f6eff8369.tar.gz
Split PyGObject into its own stratum
Also make morph depend on PyGObject, it will be needed for OSTree. Change-Id: Icfa9abb95f884ca9b1dd720648567bd704e74d85
-rw-r--r--strata/morph-utils.morph2
-rw-r--r--strata/python-pygobject.morph14
-rw-r--r--strata/python-pygobject/pygobject.morph (renamed from strata/virtualization/pygobject.morph)0
-rw-r--r--strata/virtualization.morph7
-rw-r--r--systems/build-system-armv7lhf-highbank.morph2
-rw-r--r--systems/build-system-armv7lhf-jetson.morph2
-rw-r--r--systems/build-system-armv8b64.morph2
-rw-r--r--systems/build-system-armv8l64.morph2
-rw-r--r--systems/build-system-ppc64.morph2
-rw-r--r--systems/build-system-x86_32-chroot.morph2
-rw-r--r--systems/build-system-x86_32.morph2
-rw-r--r--systems/build-system-x86_64-chroot.morph2
-rw-r--r--systems/build-system-x86_64.morph2
-rw-r--r--systems/ceph-service-x86_64-generic.morph2
-rw-r--r--systems/devel-system-armv7-chroot.morph2
-rw-r--r--systems/devel-system-armv7-highbank.morph2
-rw-r--r--systems/devel-system-armv7-versatile.morph2
-rw-r--r--systems/devel-system-armv7-wandboard.morph2
-rw-r--r--systems/devel-system-armv7b-chroot.morph2
-rw-r--r--systems/devel-system-armv7b-highbank.morph2
-rw-r--r--systems/devel-system-armv7lhf-chroot.morph2
-rw-r--r--systems/devel-system-armv7lhf-highbank.morph2
-rw-r--r--systems/devel-system-armv7lhf-jetson.morph2
-rw-r--r--systems/devel-system-armv7lhf-wandboard.morph2
-rw-r--r--systems/devel-system-armv8b64.morph2
-rw-r--r--systems/devel-system-armv8l64.morph2
-rw-r--r--systems/devel-system-ppc64-chroot.morph2
-rw-r--r--systems/devel-system-ppc64-generic.morph2
-rw-r--r--systems/devel-system-x86_32-chroot.morph2
-rw-r--r--systems/devel-system-x86_32-generic.morph2
-rw-r--r--systems/devel-system-x86_64-chroot.morph2
-rw-r--r--systems/devel-system-x86_64-generic.morph2
-rw-r--r--systems/devel-system-x86_64-vagrant.morph2
-rw-r--r--systems/installer-system-armv8b64.morph2
-rw-r--r--systems/installer-system-x86_64.morph2
-rw-r--r--systems/openstack-system-x86_64.morph2
-rw-r--r--systems/trove-system-x86_64.morph2
-rw-r--r--systems/xfce-system.morph2
38 files changed, 85 insertions, 6 deletions
diff --git a/strata/morph-utils.morph b/strata/morph-utils.morph
index 99a0562..77b7cb7 100644
--- a/strata/morph-utils.morph
+++ b/strata/morph-utils.morph
@@ -3,6 +3,8 @@ kind: stratum
build-depends:
- morph: strata/core.morph
- morph: strata/python-cliapp.morph
+- morph: strata/python-core.morph
+- morph: strata/python-pygobject.morph
- morph: strata/python-wsgi.morph
chunks:
- name: python-ttystatus
diff --git a/strata/python-pygobject.morph b/strata/python-pygobject.morph
new file mode 100644
index 0000000..a371ccc
--- /dev/null
+++ b/strata/python-pygobject.morph
@@ -0,0 +1,14 @@
+name: python-pygobject
+kind: stratum
+description: |
+ Python GObject bindings
+build-depends:
+- morph: strata/python-core.morph
+# Depends on 'foundation' for GLib
+- morph: strata/foundation.morph
+chunks:
+- name: pygobject
+ morph: strata/python-pygobject/pygobject.morph
+ repo: upstream:pygobject
+ ref: 276341d7ddab180020c31e6837bd28fd25784de0
+ unpetrify-ref: baserock/morph
diff --git a/strata/virtualization/pygobject.morph b/strata/python-pygobject/pygobject.morph
index a423537..a423537 100644
--- a/strata/virtualization/pygobject.morph
+++ b/strata/python-pygobject/pygobject.morph
diff --git a/strata/virtualization.morph b/strata/virtualization.morph
index 0065e08..9eb11f5 100644
--- a/strata/virtualization.morph
+++ b/strata/virtualization.morph
@@ -7,6 +7,7 @@ description: |
or ebtables, for example.
build-depends:
- morph: strata/python-core.morph
+- morph: strata/python-pygobject.morph
- morph: strata/connman-common.morph
- morph: strata/lvm.morph
- morph: strata/xorg-util-macros-common.morph
@@ -75,11 +76,6 @@ chunks:
build-depends:
- libvirt
- urlgrabber
-- name: pygobject
- morph: strata/virtualization/pygobject.morph
- repo: upstream:pygobject
- ref: 276341d7ddab180020c31e6837bd28fd25784de0
- unpetrify-ref: baserock/morph
- name: libsoup
morph: strata/virtualization/libsoup.morph
repo: upstream:libsoup
@@ -92,7 +88,6 @@ chunks:
unpetrify-ref: baserock/morph
build-depends:
- libsoup
- - pygobject
- name: virt-manager
repo: upstream:virt-manager
ref: 8b7ebd4538ffbd2d246fdeee4f1bb1c452585575
diff --git a/systems/build-system-armv7lhf-highbank.morph b/systems/build-system-armv7lhf-highbank.morph
index b9ee8e7..017c08c 100644
--- a/systems/build-system-armv7lhf-highbank.morph
+++ b/systems/build-system-armv7lhf-highbank.morph
@@ -19,6 +19,8 @@ strata:
morph: strata/python-cliapp.morph
- name: python-wsgi
morph: strata/python-wsgi.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
- name: morph-utils
morph: strata/morph-utils.morph
- name: nfs
diff --git a/systems/build-system-armv7lhf-jetson.morph b/systems/build-system-armv7lhf-jetson.morph
index 6c59cb2..8b2cdc9 100644
--- a/systems/build-system-armv7lhf-jetson.morph
+++ b/systems/build-system-armv7lhf-jetson.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/build-system-armv8b64.morph b/systems/build-system-armv8b64.morph
index b79487e..242e9c9 100644
--- a/systems/build-system-armv8b64.morph
+++ b/systems/build-system-armv8b64.morph
@@ -20,6 +20,8 @@ strata:
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
diff --git a/systems/build-system-armv8l64.morph b/systems/build-system-armv8l64.morph
index 63dcb43..b2b432f 100644
--- a/systems/build-system-armv8l64.morph
+++ b/systems/build-system-armv8l64.morph
@@ -20,6 +20,8 @@ strata:
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
diff --git a/systems/build-system-ppc64.morph b/systems/build-system-ppc64.morph
index 600eb68..c8471f4 100644
--- a/systems/build-system-ppc64.morph
+++ b/systems/build-system-ppc64.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/build-system-x86_32-chroot.morph b/systems/build-system-x86_32-chroot.morph
index 61bf4ea..4aa33cc 100644
--- a/systems/build-system-x86_32-chroot.morph
+++ b/systems/build-system-x86_32-chroot.morph
@@ -15,6 +15,8 @@ strata:
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
diff --git a/systems/build-system-x86_32.morph b/systems/build-system-x86_32.morph
index f485287..21d0b79 100644
--- a/systems/build-system-x86_32.morph
+++ b/systems/build-system-x86_32.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/build-system-x86_64-chroot.morph b/systems/build-system-x86_64-chroot.morph
index e8cd7b8..a9d8bd0 100644
--- a/systems/build-system-x86_64-chroot.morph
+++ b/systems/build-system-x86_64-chroot.morph
@@ -15,6 +15,8 @@ strata:
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
diff --git a/systems/build-system-x86_64.morph b/systems/build-system-x86_64.morph
index b943340..21d20f5 100644
--- a/systems/build-system-x86_64.morph
+++ b/systems/build-system-x86_64.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/ceph-service-x86_64-generic.morph b/systems/ceph-service-x86_64-generic.morph
index 95b17dc..5942330 100644
--- a/systems/ceph-service-x86_64-generic.morph
+++ b/systems/ceph-service-x86_64-generic.morph
@@ -24,6 +24,8 @@ strata:
morph: strata/ntpd.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
diff --git a/systems/devel-system-armv7-chroot.morph b/systems/devel-system-armv7-chroot.morph
index 18f82d3..cb63860 100644
--- a/systems/devel-system-armv7-chroot.morph
+++ b/systems/devel-system-armv7-chroot.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/devel-system-armv7-highbank.morph b/systems/devel-system-armv7-highbank.morph
index 40303dc..0f3e87d 100644
--- a/systems/devel-system-armv7-highbank.morph
+++ b/systems/devel-system-armv7-highbank.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-armv7-versatile.morph b/systems/devel-system-armv7-versatile.morph
index 8f68970..57eec8c 100644
--- a/systems/devel-system-armv7-versatile.morph
+++ b/systems/devel-system-armv7-versatile.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-armv7-wandboard.morph b/systems/devel-system-armv7-wandboard.morph
index f139ebc..7dceb69 100644
--- a/systems/devel-system-armv7-wandboard.morph
+++ b/systems/devel-system-armv7-wandboard.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-armv7b-chroot.morph b/systems/devel-system-armv7b-chroot.morph
index 5ce8c9c..5859a0f 100644
--- a/systems/devel-system-armv7b-chroot.morph
+++ b/systems/devel-system-armv7b-chroot.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/devel-system-armv7b-highbank.morph b/systems/devel-system-armv7b-highbank.morph
index 51de350..6ff4744 100644
--- a/systems/devel-system-armv7b-highbank.morph
+++ b/systems/devel-system-armv7b-highbank.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-armv7lhf-chroot.morph b/systems/devel-system-armv7lhf-chroot.morph
index e6db8b2..b197938 100644
--- a/systems/devel-system-armv7lhf-chroot.morph
+++ b/systems/devel-system-armv7lhf-chroot.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/devel-system-armv7lhf-highbank.morph b/systems/devel-system-armv7lhf-highbank.morph
index 03ad8fd..f910ad9 100644
--- a/systems/devel-system-armv7lhf-highbank.morph
+++ b/systems/devel-system-armv7lhf-highbank.morph
@@ -19,6 +19,8 @@ strata:
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
diff --git a/systems/devel-system-armv7lhf-jetson.morph b/systems/devel-system-armv7lhf-jetson.morph
index a07a66d..ebd4b07 100644
--- a/systems/devel-system-armv7lhf-jetson.morph
+++ b/systems/devel-system-armv7lhf-jetson.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/devel-system-armv7lhf-wandboard.morph b/systems/devel-system-armv7lhf-wandboard.morph
index b2191c8..8ebe4a1 100644
--- a/systems/devel-system-armv7lhf-wandboard.morph
+++ b/systems/devel-system-armv7lhf-wandboard.morph
@@ -19,6 +19,8 @@ strata:
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
diff --git a/systems/devel-system-armv8b64.morph b/systems/devel-system-armv8b64.morph
index c5e32be..d38fc13 100644
--- a/systems/devel-system-armv8b64.morph
+++ b/systems/devel-system-armv8b64.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-armv8l64.morph b/systems/devel-system-armv8l64.morph
index 64df471..d0492c7 100644
--- a/systems/devel-system-armv8l64.morph
+++ b/systems/devel-system-armv8l64.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-ppc64-chroot.morph b/systems/devel-system-ppc64-chroot.morph
index 0c4f3b4..d14fb12 100644
--- a/systems/devel-system-ppc64-chroot.morph
+++ b/systems/devel-system-ppc64-chroot.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/devel-system-ppc64-generic.morph b/systems/devel-system-ppc64-generic.morph
index 6ad076e..116de32 100644
--- a/systems/devel-system-ppc64-generic.morph
+++ b/systems/devel-system-ppc64-generic.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-x86_32-chroot.morph b/systems/devel-system-x86_32-chroot.morph
index 5e2e11b..0191be0 100644
--- a/systems/devel-system-x86_32-chroot.morph
+++ b/systems/devel-system-x86_32-chroot.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/devel-system-x86_32-generic.morph b/systems/devel-system-x86_32-generic.morph
index 2a6f817..82fecd3 100644
--- a/systems/devel-system-x86_32-generic.morph
+++ b/systems/devel-system-x86_32-generic.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-x86_64-chroot.morph b/systems/devel-system-x86_64-chroot.morph
index e679cca..eb7df42 100644
--- a/systems/devel-system-x86_64-chroot.morph
+++ b/systems/devel-system-x86_64-chroot.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/devel-system-x86_64-generic.morph b/systems/devel-system-x86_64-generic.morph
index 82fc0ca..026c996 100644
--- a/systems/devel-system-x86_64-generic.morph
+++ b/systems/devel-system-x86_64-generic.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/devel-system-x86_64-vagrant.morph b/systems/devel-system-x86_64-vagrant.morph
index 647e627..bccfd11 100644
--- a/systems/devel-system-x86_64-vagrant.morph
+++ b/systems/devel-system-x86_64-vagrant.morph
@@ -18,6 +18,8 @@ strata:
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
diff --git a/systems/installer-system-armv8b64.morph b/systems/installer-system-armv8b64.morph
index b2606ae..22596a6 100644
--- a/systems/installer-system-armv8b64.morph
+++ b/systems/installer-system-armv8b64.morph
@@ -15,6 +15,8 @@ strata:
morph: strata/bsp-armv8b64-generic.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
diff --git a/systems/installer-system-x86_64.morph b/systems/installer-system-x86_64.morph
index cea09c0..0e464b9 100644
--- a/systems/installer-system-x86_64.morph
+++ b/systems/installer-system-x86_64.morph
@@ -15,6 +15,8 @@ strata:
morph: strata/bsp-x86_64-generic.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
diff --git a/systems/openstack-system-x86_64.morph b/systems/openstack-system-x86_64.morph
index ecd99cc..1d7cab7 100644
--- a/systems/openstack-system-x86_64.morph
+++ b/systems/openstack-system-x86_64.morph
@@ -9,6 +9,8 @@ strata:
morph: strata/core.morph
- name: python-core
morph: strata/python-core.morph
+- name: python-pygobject
+ morph: strata/python-pygobject.morph
- name: python-common
morph: strata/python-common.morph
- name: foundation
diff --git a/systems/trove-system-x86_64.morph b/systems/trove-system-x86_64.morph
index ab50f7f..680e5de 100644
--- a/systems/trove-system-x86_64.morph
+++ b/systems/trove-system-x86_64.morph
@@ -17,6 +17,8 @@ strata:
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
diff --git a/systems/xfce-system.morph b/systems/xfce-system.morph
index dad3d3d..6a33055 100644
--- a/systems/xfce-system.morph
+++ b/systems/xfce-system.morph
@@ -35,6 +35,8 @@ strata:
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