summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/selftest/cases/reproducible.py
AgeCommit message (Collapse)Author
2021-03-02python3-cython: Remove build paths from debug sourcesRichard Purdie
There are build paths which are in generated sources injected into ${PN}-src. These are in generated files and don't influence the binary output. As such we can correct them at do_package time by tweaking in an appropriately injected function. This fixes the reproducbility of the recipe. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-02ltp: Fixing determinism issuesRichard Purdie
Add a patch adding sorting to a couple of points in the Makefiles which removes most of the determinism issues in ltp. Build swapon before the main build to ensure libswapon.o is built deterministically as it races with swapoff. All issues reported on the upstream mailing list. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-02Add core-image-weston to reproducible build testsJan-Simon Moeller
This change adds core-image-weston to the reproducible build test. For this we also need to update the static-group and static-passwd. Besides the world package build which includes the wayland package, this adds a wayland/weston-based image to the reproducible build test. Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-02lttng: Fix reproducibility issuesRichard Purdie
Add a hack to hardcode in specific rpaths which we then remove, allowing the build to be reproducible. Strip build patches out of one of the test scripts too. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-02qemu: Determinism fixesRichard Purdie
Add a patch to address two determinism issues and allow reproducible builds. Also strip full paths we don't need out of some ptest files, we can use the installed binaries. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-02selftest/reproducible: Add ability to pull some objects from sstateRichard Purdie
When debugging why a single recipe doesn't reproduce, its a pain to wait for the world to rebuild from scratch. Update the selftest to allow this to be configured, for example you could set targets as ['perf'] and sstate_targets as ['virtual/kernel'] and then it should only be rebuilding perf in the test rather than things like the toolchain (parts of the kernel may be unavoiable as they're not in sstate). Can be run as: OEQA_DEBUGGING_SAVED_OUTPUT=/tmp/perf-diffoscope oe-selftest -r reproducible.ReproducibleTests.test_reproducible_builds to save diffoscope output. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-01systemd-bootchart: Disable LTO to fix reproducibilityRichard Purdie
LTO likely doesn't buy us much here, disable it to allow the binaries to be reproducible. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-01efivar: Fix reproducibility issueRichard Purdie
Add sorting to the globbing within the Makefile to make the output reproducible. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-01swig: Fix reproducibility issueRichard Purdie
Remove hardcoding the build configuration into the help/version output from swig to make the binaries reproducible. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-01syslinux: Fix reproducibility issuesRichard Purdie
Add sorting to wildcard expansion in the makefile to make builds reproducible. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-01gstreamer1.0-python: Set internal python library path correctyRichard Purdie
The library hardcodes paths to the python library internally and currently these are build paths. Fix this to use the correct target path and fix reproducibility in the process. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-03-01apr-util: Fix CFLAGS used in buildRichard Purdie
We need to use CFLAGS with the correct WORKDIR in them, replace those in the sysroot file with the ones appropriate to the current recipe. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-27libid3tag: Fix reproducibility issueRichard Purdie
Configure was swallowing our cflags meaning the resulting binaries were not reproducible. Tweak configure not to do that and fix reproducibility. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-27igt-gpu-tools: Fix reproducibility issueRichard Purdie
Add a configuration option to pass in srcdir, removing hard coded build paths from the binaries. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-27bootchart2: Fix manpage reproducibility issueRichard Purdie
The compressed docs contained a timestamp of the original file which meant the SDE clamping during package creation didn't work. The benefits of compression are minor, decompress the files to avoid the reproducibility issues. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26selftest/reproducible: Don't call sync between each file compareRichard Purdie
Calling sync between each file compare is horrible performance wise as we compare thousands of files. We don't care about IO latency here so disable. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26libhandy: Fix reproducibility issueRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26libsecret: Improve determimismRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26parted: Fix reproducibility issueRichard Purdie
We don't use tbe BUILDINFO line of host information in the Makefile so remove it for reproducibility. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26gst-devtools: Fix reproducibility issueRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26epiphany: Fix reproducibility issueRichard Purdie
We don't want to encide BUILD_ROOT into target packages. This is used for build time tests but in our case those would be on target anyway do use the target paths. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26gtk-doc: Fix reproducibility issueRichard Purdie
config_data was including a build system path to pkg-config, fix this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26gcr: Fix reproducibility issueRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26cups: Fix reproducibility issuesRichard Purdie
configure inspects the host's /etc/group for these configuration options, fix this to the correct values by using configure options. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26oe-selftests: add rpm to reproducible build selftestJan-Simon Möller
rpm packaging has shown good numbers wrt reproducible builds as well when testing core-image-minimal locally: Reproducibility summary for rpm: same=4671 different=0 missing=0 total=4671 Thus enable it in the autobuilder to be more widely tested. (From OE-Core rev: 84d3a90557444d8cd83d780b1c3f2b278ab07af2) Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-26reproduce: Fix exclusion list for rpmRichard Purdie
rpm uses "XXX-VERSION" compared to deb/ipk which use "XXX_VERSION" which breaks the go package exclusion. Work around with both go_ and go- for now. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-24selftest/reproducible: Remove exclusions for recipes which now reproduceRichard Purdie
git, libproxy, libcap-ng(-python), babeltrace2, rsync and groff have their reproducibility issues fixed, remove from the exclusion list. Also fix whitespace. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-17Revert "oe-selftests: add rpm to reproducible build selftest"Richard Purdie
This reverts commit 84d3a90557444d8cd83d780b1c3f2b278ab07af2. This shouldn't have been merged, its not ready yet.
2021-02-17oe-selftests: add rpm to reproducible build selftestJan-Simon Möller
rpm packaging has shown good numbers wrt reproducible builds as well when testing core-image-minimal locally: Reproducibility summary for rpm: same=4671 different=0 missing=0 total=4671 Thus enable it in the autobuilder to be more widely tested. Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-17acpica: Fix reproducibility issuesJoshua Watt
Fixes reproducibility when build acpica yacc sources by instructing bison on how to do the file prefix mapping Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-16selftest/reproducible: Update exclusionsRichard Purdie
Add ruby-ri-docs and meson back as not reproducible, remove watchdog, xorg-minimal-fonts and xmlto as issues fixed. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-16oeqa: reproducible: Add more loggingJoshua Watt
The reproducible build tests can take a long time, so having more logging messages at various points in the build can help debug where the build is taking a long time. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-16oeqa: reproducible: Fix SSTATE_MIRRORS variableJoshua Watt
The SSTATE_MIRRORS variable was misspelled, which allowed the "clean" test build to pull from the mirror. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-13selftest/reproducible: Remove no longer needed exclusionsRichard Purdie
It appears these exclusions are no longer needed with master, drop them and improve our reproducibilty metrics. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-13selftest/reproducible: Sort the unused exclusion listRichard Purdie
This makes comparisions between lists easier. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-13selftest/reproducible: track unusued entries in the exclusion listAlexander Kanavin
This helps with trimming down the list, and towards 100% reproducibility :) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-02-08selftest/reproducible: remove spirv-tools-dev from exclusion listJose Quaresma
Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-30selftest/reproducible: Add useradd-staticids to reproducible builds testsRichard Purdie
Its surprising we've made it this far without this, add in some specific uid/gid settings to ensure these don't cause false positives to the tests. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-15selftest/reproducible: add an exclusion list for items that are not yet ↵Alexander Kanavin
reproducible Hopefully over time this list will be reduced to an empty one. Non-reproducible excluded packages are not given to diffoscope and do not cause a failure, but still saved side-by-side with non-reproducible failing ones to make investigation easier. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-12-15selftest/reproducible: enable world reproducibility testAlexander Kanavin
Add systemd and pam distro features, and commercial license flag to include more recipes into the world set. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02oeqa: reproducible: Fix test not producing diffsJoshua Watt
Diffoscope changed the --exclude-directory-metadata option to require an argument. Add a test to validate that diffoscope is functioning as expected to ensure that future upgrades do not unintentionally break the reproducibility tests. [YOCTO #14025] Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-19oeqa: reproducible: Include jquery in resultsJoshua Watt
Includes jquery in the output directory to make the diffoscope output easier to navigate Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-14oeqa: reproducible: Run diffoscope on saved outputJoshua Watt
If there are differing packages and they are being saved for review, automatically run diffoscope on them and include the output in the saved output. The output is currently done in HTML format since these are typically published on a webpage by the autobuilder. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-06oeqa/reproducible: Improve test output and ensure deb+ipk comparedRichard Purdie
Adding newline characters between the packages in the failure output massively improves readability. Also ensure to output ipk failures when there are deb failures by calling self.fail() at the end, else sometimes only partial differences are returned. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-03oeqa: reproducible: Do not strip packagesJoshua Watt
Do not strip packages when testing reproducible builds. In some cases, stripped data differs between builds, but then gets removed. However, the contents affect the generation of the GCC build-id, which then differs in the resulting ELF files, even though the data that caused this is no longer there. Inhibit stripping so that their causes can be evaluated. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-02reproducible: Allow configuration of saved debug outputRichard Purdie
If OEQA_DEBUGGING_SAVED_OUTPUT is set in the environment, use this location to store reproducibile build failure output. This aids debugging on the YP autobuilder in particular. Use a date in the directory name to make it easier to find failure output. Also clean up empty directories as they're unnecessary distracting noise. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-22oeqa/reproducible: Fix unset save_dir variableRichard Purdie
Previous refactoring broke the case where save_dir was set. Fix this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-22oeqa/reproducible: Fix extra data reportingJoshua Watt
A typo was preventing the extra data about the reproducible build from being reported in the test results Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-01-22oeqa/reproducible: Add flag for building from sstateJoshua Watt
Adds a flag to control if the reproducible QA test should allow building from sstate or not. Building from sstate may not be reproducible depending on how the sstate is populated. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-12-18oeqa: reproducible: Test core-image-sato and core-image-full-cmdlineJoshua Watt
Adds core-image-sato and core-image-full-cmdline to the list of images that the reproducible build test builds. Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>