summaryrefslogtreecommitdiffstats
path: root/examples/recipes/image/build.yml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/recipes/image/build.yml')
-rw-r--r--examples/recipes/image/build.yml60
1 files changed, 60 insertions, 0 deletions
diff --git a/examples/recipes/image/build.yml b/examples/recipes/image/build.yml
new file mode 100644
index 0000000..a42899f
--- /dev/null
+++ b/examples/recipes/image/build.yml
@@ -0,0 +1,60 @@
+tasks:
+ rootfs:
+ args:
+ host: 'platform'
+ depends:
+ - recipe: 'busybox'
+ task: 'install'
+ - recipe: 'toolchain'
+ task: 'build_depends'
+ args:
+ target: 'host'
+ output:
+ default: {}
+ run: |
+ mkdir -p \
+ {{destdir}}/dev \
+ {{destdir}}/proc \
+ {{destdir}}/root \
+ {{destdir}}/run \
+ {{destdir}}/sys \
+ {{destdir}}/tmp \
+ {{destdir}}/usr/bin \
+ {{destdir}}/usr/lib \
+ {{destdir}}/var
+
+ ln -s bin {{destdir}}/usr/sbin
+ ln -s usr/bin {{destdir}}/bin
+ ln -s usr/bin {{destdir}}/sbin
+ ln -s usr/lib {{destdir}}/lib
+ ln -s ../run {{destdir}}/var/run
+
+ rsync -aHAXK {{sysroot}}/ {{destdir}}
+
+
+ ext4:
+ args:
+ host: 'platform'
+ build_depends:
+ - recipe: 'e2fsprogs'
+ task: 'install'
+ - recipe: 'make_ext4fs'
+ task: 'install'
+ depends:
+ - task: 'rootfs'
+ output:
+ default: {}
+ run: |
+ IMAGE={{destdir}}/{{name}}.ext4
+
+ mkdir {{destdir}}
+ make_ext4fs -l 2G -T "$SOURCE_DATE_EPOCH" -L root "$IMAGE" {{sysroot}}
+ E2FSPROGS_FAKE_TIME="$SOURCE_DATE_EPOCH" tune2fs -U '00000000-0000-4000-8000-000000000000' "$IMAGE"
+
+ HASH=$(sha256sum "$IMAGE")
+ UUID=$(
+ python3 \
+ -c 'import sys; import uuid; print(uuid.UUID(hex=sys.argv[1][:32], version=4))' \
+ "$HASH"
+ )
+ E2FSPROGS_FAKE_TIME="$SOURCE_DATE_EPOCH" tune2fs -U "$UUID" "$IMAGE"