diff options
author | Jan-Simon Möller <jsmoeller@linuxfoundation.org> | 2019-08-22 23:23:50 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2020-03-18 21:34:02 +0000 |
commit | 5c4d183e5ff2228b8daacac090e1176bb198d845 (patch) | |
tree | b8333a9e8536a8297a6a7c18ecc19a90fbc18d28 /meta-agl-distro/conf/distro/poky-agl.conf | |
parent | de577de9ed8cf40a45eaf0c35f01be633d447a63 (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/conf/distro/poky-agl.conf')
-rw-r--r-- | meta-agl-distro/conf/distro/poky-agl.conf | 9 |
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" |