summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2012-10-26 14:55:09 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2012-10-26 14:55:09 +0000
commit41d796afda6c1565acc3d265b1ec4938a9a242d9 (patch)
treec1b9f0022c266e60d9ce1aeeb9e0b6e306f293cb
parent15243493b945d87bc56d625b722060dd10799d15 (diff)
parentd57a186e0ee06133843e0674cb0a883c05457761 (diff)
downloaddefinitions-41d796afda6c1565acc3d265b1ec4938a9a242d9.tar.gz
Merge branch 'samthursfield/write-etc-os-release' of git://git.baserock.org/baserock/morph
-rw-r--r--morphlib/builder2.py15
-rwxr-xr-xtests.as-root/disk-builds-rootfs-and-kernel.script1
-rw-r--r--tests.as-root/disk-builds-rootfs-and-kernel.stdout3
-rwxr-xr-xtests.as-root/syslinux-disk-builds-rootfs-and-kernel.script1
-rw-r--r--tests.as-root/syslinux-disk-builds-rootfs-and-kernel.stdout3
-rwxr-xr-xtests.as-root/tarball-image-is-sensible.script1
-rw-r--r--tests.as-root/tarball-image-is-sensible.stdout2
7 files changed, 25 insertions, 1 deletions
diff --git a/morphlib/builder2.py b/morphlib/builder2.py
index d3768054..0de0ebff 100644
--- a/morphlib/builder2.py
+++ b/morphlib/builder2.py
@@ -14,6 +14,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+import datetime
import json
import logging
import os
@@ -541,6 +542,18 @@ class SystemKindBuilder(BuilderBase): # pragma: no cover
ldconfig(self.app.runcmd, path)
+ def write_metadata(self, instdir, artifact_name):
+ BuilderBase.write_metadata(self, instdir, artifact_name)
+
+ os_release_file = os.path.join(instdir, 'etc', 'os-release')
+ if not os.path.exists(os.path.dirname(os_release_file)):
+ os.makedirs(os.path.dirname(os_release_file))
+ with morphlib.savefile.SaveFile(os_release_file, 'w') as f:
+ f.write('Baserock %s, built from ref %s on %s\n' %
+ (self.artifact.source.morphology['name'],
+ self.artifact.source.original_ref,
+ datetime.date.today()))
+
def create_fstab(self, path):
'''Create an /etc/fstab inside a system tree.
@@ -615,7 +628,7 @@ class SystemBuilder(BuilderBase): # pragma: no cover
system_kind, self.args, self.kwargs)
logging.debug('Building system with %s' % repr(builder))
self.app.status(msg='Building system %(system_name)s',
- system_name=self.artifact.name)
+ system_name=self.artifact.source.morphology['name'])
return builder.build_and_cache()
diff --git a/tests.as-root/disk-builds-rootfs-and-kernel.script b/tests.as-root/disk-builds-rootfs-and-kernel.script
index 3b9174c2..0b3207e2 100755
--- a/tests.as-root/disk-builds-rootfs-and-kernel.script
+++ b/tests.as-root/disk-builds-rootfs-and-kernel.script
@@ -105,5 +105,6 @@ trap 'cd /; umount -d "$device"' INT TERM ERR
cd "$DATADIR/mnt"
find | LC_ALL=C sort -u
+sed -e 's/ on [0-9\-]\+//' "$DATADIR/mnt/factory-run/etc/os-release"
cd "$DATADIR"
umount -d "$device"
diff --git a/tests.as-root/disk-builds-rootfs-and-kernel.stdout b/tests.as-root/disk-builds-rootfs-and-kernel.stdout
index 929f284d..7600c167 100644
--- a/tests.as-root/disk-builds-rootfs-and-kernel.stdout
+++ b/tests.as-root/disk-builds-rootfs-and-kernel.stdout
@@ -16,6 +16,7 @@
./factory-run/boot/vmlinuz
./factory-run/etc
./factory-run/etc/fstab
+./factory-run/etc/os-release
./factory/baserock
./factory/baserock/hello.meta
./factory/baserock/linux.meta
@@ -28,3 +29,5 @@
./factory/boot/vmlinuz
./factory/etc
./factory/etc/fstab
+./factory/etc/os-release
+Baserock system, built from ref custom
diff --git a/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.script b/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.script
index 746ca3c5..ffe6c1cf 100755
--- a/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.script
+++ b/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.script
@@ -113,5 +113,6 @@ trap 'cd /; umount -d "$device"' INT TERM ERR
cd "$DATADIR/mnt"
find | LC_ALL=C sort -u
+sed -e 's/ on [0-9\-]\+//' "$DATADIR/mnt/factory-run/etc/os-release"
cd "$DATADIR"
umount -d "$device"
diff --git a/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.stdout b/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.stdout
index 1b643875..c5fe4661 100644
--- a/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.stdout
+++ b/tests.as-root/syslinux-disk-builds-rootfs-and-kernel.stdout
@@ -17,6 +17,7 @@
./factory-run/boot/vmlinuz
./factory-run/etc
./factory-run/etc/fstab
+./factory-run/etc/os-release
./factory-run/extlinux.conf
./factory/baserock
./factory/baserock/hello.meta
@@ -30,4 +31,6 @@
./factory/boot/vmlinuz
./factory/etc
./factory/etc/fstab
+./factory/etc/os-release
./factory/extlinux.conf
+Baserock system, built from ref custom
diff --git a/tests.as-root/tarball-image-is-sensible.script b/tests.as-root/tarball-image-is-sensible.script
index 6e4af67b..056cc688 100755
--- a/tests.as-root/tarball-image-is-sensible.script
+++ b/tests.as-root/tarball-image-is-sensible.script
@@ -34,3 +34,4 @@ mkdir -p "$extracted"
cd "$extracted"
tar -xf "$tar"
find . -mindepth 1 | xargs ls -dF | LC_ALL=C sort -u
+sed -e 's/ on [0-9\-]\+//' "$extracted/etc/os-release"
diff --git a/tests.as-root/tarball-image-is-sensible.stdout b/tests.as-root/tarball-image-is-sensible.stdout
index 46a9409e..4bc5e6fb 100644
--- a/tests.as-root/tarball-image-is-sensible.stdout
+++ b/tests.as-root/tarball-image-is-sensible.stdout
@@ -16,4 +16,6 @@
./boot/vmlinuz
./etc/
./etc/fstab
+./etc/os-release
./extlinux.conf
+Baserock hello-tarball, built from ref tarball-links