diff mbox series

[FFmpeg-devel] Patch to remove build path from tools/cl2c

Message ID 875ytxpy5k.fsf@yucca
State New
Headers show
Series [FFmpeg-devel] Patch to remove build path from tools/cl2c
Related show

Checks

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

Commit Message

Vagrant Cascadian Oct. 16, 2021, 1:16 a.m. UTC
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(-)
diff mbox series

Patch

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.