Source: mplayer
Version: 2:1.5+svn38423-2
Severity: normal
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: shell
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

When build with /bin/sh pointing to dash or bash, a different version.h
is generated, which results in different version strings getting
embedded in various binaries:

  
https://tests.reproducible-builds.org/debian/rb-pkg/bookworm/amd64/diffoscope-results/mplayer.html

  /usr/bin/mencoder

  MPlayer·1.5+svn38423-2·(Debian)
  vs.
  MPlayer·1.5+svn38423-2·(Debian)\n

The two shell implementations have some differences in echo
implementations.

The patch to debian/rules fixes this by using a single printf call
instead of two echo calls, and adjusting the escaped strings
accordingly.


According to my local tests, with this patch applied mplayer should
build reproducibly again on tests.reproducible-builds.org when it
migrates to trixie/testing! Unfortunately, there are still outstanding
issues with embedded build paths that are tested in unstable and
experimental.


Thanks for maintaining mplayer!


live well,
  vagrant
From 744d893c714f66cd526a83acc21c3adbb9cf786a Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Sun, 25 Jun 2023 18:51:36 -0700
Subject: [PATCH] debian/rules: Use printf instead of echo.

The echo implementations may be dependent on the shell implementation.
---
 debian/rules | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/debian/rules b/debian/rules
index 7ed5090..b17fdbc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,7 +12,7 @@ include /usr/share/dpkg/buildtools.mk
 
 D_VERSION = $(shell dpkg-parsechangelog -SVersion | sed -e 's/^[0-9]*://')
 OUR_VERSION = \#define VERSION \"$(D_VERSION) (Debian)\"
-OUR_TITLE = \#define MP_TITLE \"MPlayer $(D_VERSION) (Debian)\\\n\"
+OUR_TITLE = \#define MP_TITLE \"MPlayer $(D_VERSION) (Debian)\"
 
 CFLAGS +=$(CPPFLAGS)
 
@@ -99,8 +99,7 @@ override_dh_auto_build-arch:
 	$(MAKE) install-gui-msg DESTDIR=$(CURDIR)/gui-msg
 	$(MAKE) distclean
 	./configure $(CONFIGURE_FLAGS) --disable-gui
-	echo "$(OUR_VERSION)"  >> version.h
-	echo "$(OUR_TITLE)"  >> version.h
+	printf "$(OUR_VERSION)\n$(OUR_TITLE)\n"  >> version.h
 	dh_auto_build -- mplayer mencoder
 
 override_dh_auto_build-indep:
@@ -112,8 +111,7 @@ override_dh_auto_clean:
 
 override_dh_auto_configure-arch:
 	./configure $(CONFIGURE_FLAGS) --enable-gui --enable-nls
-	echo "$(OUR_VERSION)"  >> version.h
-	echo "$(OUR_TITLE)"  >> version.h
+	printf "$(OUR_VERSION)\n$(OUR_TITLE)\n"  >> version.h
 
 override_dh_auto_configure-indep:
 	[ -f config.mak ] || ./configure $(CONFIGURE_DOC_FLAGS)
-- 
2.39.2

Attachment: signature.asc
Description: PGP signature

Reply via email to