openssl: Fix documentation DEPENDS
PATCH 1/1 openssl: Fix documentation DEPENDS
perl is required to generate the OpenSSL documentation, and therefore should be present at do_compile. If not, OpenSSL will skip the documentation generation, which isn't reproducible
--- meta/recipes-connectivity/openssl/openssl_1.1.1c.bb | 2 ++ 1 file changed, 2 insertions(+)
meta/recipes-connectivity/openssl/openssl_1.1.1c.bb +2 -0
@@ -10,6 +10,8 @@ LICENSE = "openssl" LIC_FILES_CHKSUM = "file://LICENSE;md5=d343e62fc9c833710bbbed25f27364c8" DEPENDS = "hostperl-runtime-native" +# Perl is required to generate documentation +DEPENDS_append_class-target = " perl-native" SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ file://run-ptest \
Signature · 1 line
2.21.0
Quoted 4 lines · Joshua Watt
perl is required to generate the OpenSSL documentation, and therefore should be present at
do_compile. If not, OpenSSL will skip the documentation generation, which isn't reproducible
I'm not sure I follow you. If perl is present, documentation is generated. If perl is not present, documentation is not generated. Where is the non-reproducibility in this?
Alex
Quoted 8 lines · Alexander Kanavin
On Tue, 27 Aug 2019 at 14:46, Joshua Watt <[email protected] <mailto:[email protected]>> wrote:
perl is required to generate the OpenSSL documentation, and therefore should be present at
do_compile. If not, OpenSSL will skip the documentation generation, which isn't reproducibleI'm not sure I follow you. If perl is present, documentation is generated. If perl is not present, documentation is not generated. Where is the non-reproducibility in this?
RSS doesn't clear out the sysroots if it goes back and executes previous tasks as part of a rebuild. As such, if perl gets added by a later task, then bitbake goes back and re-executes the task (I don't remember exactly which one... do_configure maybe?), perl may be present when it wasn't before.
This is generally true of all RSS dependencies, and until it gets resolved the best we can say for reproducible builds is that two builds from stratch without sstate can be binary identical. It will have to be resolved eventually, but my current plan is to do the reproducible build test as two clean builds for now so if there is a lot of push back we can drop it.
Quoted 2 lines
Alex
Quoted 6 lines · Joshua Watt
RSS doesn't clear out the sysroots if it goes back and executes previous tasks as part of a rebuild. As such, if perl gets added by a later task, then bitbake goes back and re-executes the task (I don't remember exactly which one...
do_configuremaybe?), perl may be present when it wasn't before.
I am still not understanding. The sysroot is populated once before anything in configure/compile/install/package executes. How would perl then magically appear later on in the sysroot?
Alex
Quoted 12 lines · Alexander Kanavin
On Tue, 27 Aug 2019 at 15:08, Joshua Watt <[email protected] <mailto:[email protected]>> wrote:
RSS doesn't clear out the sysroots if it goes back and executes previous
tasks as part of a rebuild. As such, if perl gets added by a later task,
then bitbake goes back and re-executes the task (I don't remember exactly which one...do_configuremaybe?), perl may be present when it
wasn't before.
Quoted 1 line
I am still not understanding. The sysroot is populated once before anything in configure/compile/install/package executes. How would perl then magically appear later on in the sysroot?
It's not populated just once. Any task can add things to the RSS as the build progresses. However, the RSS is only cleaned out at one specific point early in the build, which I can't recall ATM.
Quoted 2 lines
Alex
Quoted 4 lines · Joshua Watt
It's not populated just once. Any task can add things to the RSS as the build progresses. However, the RSS is only cleaned out at one specific point early in the build, which I can't recall ATM.
Can you point me to a specific example of tasks adding things to RSS please? I'm fairly sure I haven't seen this happen yet, so would like to know the mechanism and use cases.
Alex
Quoted 11 lines · Alexander Kanavin
Quoted 5 lines · Joshua Watt
It's not populated just once. Any task can add things to the RSS as the
build progresses. However, the RSS is only cleaned out at one specific
point early in the build, which I can't recall ATM.Can you point me to a specific example of tasks adding things to RSS please? I'm fairly sure I haven't seen this happen yet, so would like to know the mechanism and use cases.
It definitely does happen. An easy example is quilt-native for do_patch. Another would be file-native or rpm-native for do_package.
Cheers,
Richard