[rb-general] rb-prefix-map spec: don't be as democratic to consumers

Ximin Luo infinity0 at debian.org
Fri Mar 10 14:46:00 CET 2017


Daniel Shahaf:
> [..]
> 
> Letting consumers choose semantics would hinder adoption by producers:
> it would burden producers with figuring out how to set BUILD_PATH_PREFIX_MAP
> to values that would be interpreted correctly regardless of which semantics
> the consumer chooses.
> 
> [..]
> 
> I was thinking of a different use-case.  One use-case, the "two libxz's"
> example, is that of an upstream project that wants to allow multiple
> downstreams to build it reproducibly, regardless of which compiler those
> downstreams use.  Each individual downstream would use either gcc or
> clang, but the upstream project needs to support both.
> 
> [..] nor on whether $(CC) is gcc or clang [..]
> 

This has never been an aim of the reproducible builds project. I don't think we should spend effort trying to achieve it, and there are many many things to do on this front besides this envvar. No language anywhere AFAIK specifies the binary output of a given piece of source code.

If you are talking about consistent standard debuginfo paths, this is also outside the scope of this variable, which is a way to achieve broad reproducibility and does not constrain the semantics of the actual reproducible result.

I think I had already covered these points with:

"Producers who build general software that uses this envvar, MUST NOT expect any special contracts on the output emitted by general consumers based on this variable"

and

"Consumers MUST ensure that, at minimum: for all (source, target) prefix pairs in the parsed list, with rightmost pairs taking priority: strings in the final build output, that represent build-time paths derived from "source", instead appear to represent potential run-time paths derived from "target"."

OTOH if someone wants to build a consistent standard for debuginfo paths *in the future*, they may use this variable as a mechanism, but only in a constrained (i.e. not whole-distribution) setting:

"On the other hand, if you know you will only support a limited set of consumers, you may expect that they apply these mappings in specific ways."

X

-- 
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git


More information about the rb-general mailing list