Bug#828168: x42-plugins: midimap.lv2/manifest.ttl uses non-portable shell syntax; please make the build reproducible (shell)
Daniel Shahaf
danielsh at apache.org
Sat Jun 25 16:40:15 UTC 2016
Package: x42-plugins
Version: 20160619-1
Severity: normal
Tags: upstream patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: environment
Dear Maintainer,
While working on the “reproducible builds” effort, we have noticed that
x42-plugins could not be built reproducibly; the diff between two
builds is:
https://tests.reproducible-builds.org/debian/dbdtxt/unstable/amd64/x42-plugins_20160619-1.diffoscope.txt
│ │ │ ├── ./usr/lib/lv2/midimap.lv2/manifest.ttl
│ │ │ │ @@ -14,43 +14,43 @@
│ │ │ │ mmpset:lp_thirds_c4_colors
│ │ │ │ a pset:Preset ;
│ │ │ │ lv2:appliesTo <http://gareus.org/oss/lv2/midimap> ;
│ │ │ │ - rdfs:seeAlso <presets.ttl> .
│ │ │ │ +\trdfs:seeAlso <presets.ttl> .
This difference is down to midimap.lv2/Makefile [1] calling echo(1) with
an argument that contains a literal backslash. The behaviour of echo(1)
in that case is (according to POSIX) implementation-defined. Since
makefiles use echo(1) from the building user's shell, the build output
differs when the building user uses SHELL=bash v. SHELL=dash:
% LC_ALL=C dash -c 'echo "\t"' | xxd
0000000: 090a ..
% LC_ALL=C bash -c 'echo "\t"' | xxd
0000000: 5c74 0a \t.
I believe the attached patch will fix the issue.
Note that when built under bash, pluginlibConfig.cmakep.lv2/manifest.ttl
would contain literal «\t» sequences; I'm not sure what their effect
would be.
Cheers,
Daniel
[1] https://sources.debian.net/src/x42-plugins/20160619-1/midimap.lv2/Makefile/#L84
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-unportable-shell-syntax.patch
Type: text/x-diff
Size: 531 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20160625/54f8f9d5/attachment.patch>
More information about the pkg-multimedia-maintainers
mailing list