Message ID | 875ytxpy5k.fsf@yucca |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] Patch to remove build path from tools/cl2c | expand |
Context | Check | Description |
---|---|---|
andriy/commit_msg_x86 | warning | The first line of the commit message must start with a context terminated by a colon and a space, for example "lavu/opt: " or "doc: ". |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/commit_msg_ppc | warning | The first line of the commit message must start with a context terminated by a colon and a space, for example "lavu/opt: " or "doc: ". |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
diff --git a/tools/cl2c b/tools/cl2c index e3f92bab1c..48444e61a7 100755 --- a/tools/cl2c +++ b/tools/cl2c @@ -23,11 +23,13 @@ input="$1" output="$2" name=$(basename "$input" | sed 's/.cl$//') +# Avoid embedded the build path, using only the basename of the input file. +base_input=$(basename "$input") cat >$output <<EOF // Generated from $input const char *ff_opencl_source_$name = -"#line 1 \"$input\"\n" +"#line 1 \"$base_input\"\n" EOF # Convert \ to \\ and " to \", then add " to the start and end of the line.
The attached patch removes build paths from the resulting binaries, which makes it easier to verify the reproducibility of a build without needing to know the path from which it was originally built. I ran "make fate" with and without the patch applied, and all of the tests that passed as of commit 3cc3f5de2afda5b8f880c0817e9d67c2dafbfe1e still passed (fate-sws-slice-yuv422-12bit-rgb48 and fate-sws-slice-bgr0-nv12 both failed regardless of weather the patch was applied). This was originally reported at https://bugs.debian.org/985187 With this change applied, the ffmpeg package in Debian should build reproducibly: https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/ffmpeg.html Thanks for maintaining and developing ffmpeg, it is a very useful tool! live well, vagrant Subject: [PATCH 1/1] tools/cl2c: Strip full path from input file in embedded output. Without this patch, the full build path gets embedded into various binaries shipped in the package, for example, libavfilter.a contains a reference to: #line 1 "/build/1st/ffmpeg-4.3.2/libavfilter/opencl/avgblur.cl" By not embedding the build path, it makes it easier to recreate the build environment and reproduce the build: https://reproducible-builds.org/docs/build-path/ Originally submitted to Debian as: https://bugs.debian.org/985187 Signed-off-by: Vagrant Cascadian <vagrant@reproducible-builds.org> --- tools/cl2c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)