summaryrefslogtreecommitdiffstats
path: root/meta-agl-distro
diff options
context:
space:
mode:
authorJan-Simon Möller <jsmoeller@linuxfoundation.org>2019-08-22 23:23:50 +0200
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-03-18 21:34:02 +0000
commit5c4d183e5ff2228b8daacac090e1176bb198d845 (patch)
treeb8333a9e8536a8297a6a7c18ecc19a90fbc18d28 /meta-agl-distro
parentde577de9ed8cf40a45eaf0c35f01be633d447a63 (diff)
Enable classes for reproducible-builds in OE
The reproducible_build class will use the SOURCE_DATE_EPOCH mechanism to preset a known timestamp during compilation of binaries to help ensure binary reproducability. With this mechanism we reach very good reuse across rebuilds with basically just 2 packages changed (and these are expected): dl9pf@elrond:~/repobuild-local/build-x86-64-repro> bitbake agl-demo-platform-crosssdk Sstate summary: Wanted 17 Found 8 Missed 9 Current 4282 (47% match, 99% complete) --------------------------------------------------------------------^^^ !! NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks NOTE: Tasks Summary: Attempted 10048 tasks of which 10025 didn't need to be rerun and all succeeded. -------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^ just 13 tasks !! NOTE: Build completion summary: NOTE: do_populate_sysroot: 0.0% sstate reuse(0 setscene, 1 scratch) NOTE: do_package_qa: 0.0% sstate reuse(0 setscene, 2 scratch) NOTE: do_package: 0.0% sstate reuse(0 setscene, 1 scratch) NOTE: do_packagedata: 0.0% sstate reuse(0 setscene, 1 scratch) NOTE: do_package_write_rpm: 0.0% sstate reuse(0 setscene, 2 scratch) NOTE: Writing buildhistory dl9pf@elrond:~/repobuild-local/build-x86-64-repro> buildhistory-diff HEAD^ | sort Changes to images/qemux86_64/glibc/agl-demo-platform-crosssdk (files-in-image.txt): /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64/checksum_data was added /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64/checksum_type was added /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64/command_line was added /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64/from_repo was added /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64/installed_by was added /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64/reason was added /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64/releasever was added /var/lib/dnf/yumdb/d/4e1ef2f15bdf12ac2dcba29f87bee13623f1676d-distro-build-manifest-1.0-r0-qemux86_64 was added /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64/checksum_data was removed /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64/checksum_type was removed /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64/command_line was removed /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64/from_repo was removed /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64/installed_by was removed /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64/reason was removed /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64/releasever was removed /var/lib/dnf/yumdb/d/8ea1dc59afc8b04e7a013cdc38eb3bbaddeb37f6-distro-build-manifest-1.0-r0-qemux86_64 was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch/checksum_data was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch/checksum_type was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch/command_line was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch/from_repo was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch/installed_by was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch/reason was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch/releasever was removed /var/lib/dnf/yumdb/o/3198ffc9414564ec5ff5f321629f314fac69fc78-os-release-1.0-r0-noarch was removed /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch/checksum_data was added /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch/checksum_type was added /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch/command_line was added /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch/from_repo was added /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch/installed_by was added /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch/reason was added /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch/releasever was added /var/lib/dnf/yumdb/o/7d7c5992be19f3a2a9e2077fb422129ab40d49ea-os-release-1.0-r0-noarch was added Later, we will bump the default EPOCH timestamps with the releases/point releases. References: https://reproducible-builds.org/ Should be backported to halibut as well. v2: add change to distro configuration Bug-AGL: SPEC-2769 Change-Id: I83e1d92eadf838291f03a184a804a9b8b72f7809 Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-distro')
-rw-r--r--meta-agl-distro/conf/distro/poky-agl.conf9
1 files changed, 9 insertions, 0 deletions
diff --git a/meta-agl-distro/conf/distro/poky-agl.conf b/meta-agl-distro/conf/distro/poky-agl.conf
index bad7297d3..ef0e7f7ce 100644
--- a/meta-agl-distro/conf/distro/poky-agl.conf
+++ b/meta-agl-distro/conf/distro/poky-agl.conf
@@ -26,6 +26,15 @@ DISTRO_BRANCH_VERSION_TAG = "${DISTRO_CODENAME}/${@'${DISTRO_VERSION}'.replace('
AGL_APP_REVISION_aglrelease := "refs/tags/${DISTRO_BRANCH_VERSION_TAG}"
AGL_DEFAULT_REVISION_aglrelease := "refs/tags/${DISTRO_BRANCH_VERSION_TAG}"
+# reproducible builds:
+# enable the flag
+BUILD_REPRODUCIBLE_BINARIES = "1"
+# Set the desired timestamps
+export SOURCE_DATE_EPOCH = "1583798400"
+REPRODUCIBLE_TIMESTAMP_ROOTFS = "1583798400"
+# inherit the class
+INHERIT += "reproducible_build"
+
# SDK
SDK_VENDOR = "-aglsdk"