Re: What do we really mean by "reproducible"?

2017-01-16 Thread Holger Levsen
Hi Santiago,

I think you are confusing repeatable builds with reproducible builds.
When we talk about reproducible builds, we mean what we documented at
https://reproducible-builds.org/docs/definition/

to quote from there: "A build is reproducible if given the same source
code, build environment and build instructions, any party can recreate
bit-by-bit identical copies of all specified artifacts."

Whether a build succeeds 100% of the times tried or 2%, is basically out
of scope here.

And it's entirely plausable to have builds which fails some times, but
each time they succeed the results are 100% identical. Surely not ideal,
but… reproducible :)


-- 
cheers,
Holger


signature.asc
Description: Digital signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: What do we really mean by "reproducible"?

2017-01-16 Thread Ximin Luo
Santiago Vila:
> Greetings.
> 
> Before I use this rationale more times in some discussions out there, I'd
> like to be sure that there is a consensus.
> 
> What's the definition of reproducible? It is more like A or more like B?
> 
> A. Every time the package is attempted to build, the build succeeds,
> and the same .deb are always created.
> 
> B. Every time the build is attempted and the builds succeeds, the
> same .deb are always created.
> 
> In other words: It is ok to consider "always build ok" as a prerequisite
> to consider a source package "reproducible"?
> 

If you are going to be defining things in documents that are meant to be 
composed and reused later on, then it is better to define terms to be 
orthogonal to each other, to make this more easy. So (B) is the better option.

If you're just arguing with random people on the internet, pick whatever you 
feel like.

If you're writing a standard policy item that people should follow, I'd define 
"reproducible" as (B) but then say "builds reproducibly" is what is required, 
with the same meaning as (A).

X

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

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds


Re: What do we really mean by "reproducible"?

2017-01-16 Thread Vagrant Cascadian
On 2017-01-16, Santiago Vila wrote:
> Before I use this rationale more times in some discussions out there, I'd
> like to be sure that there is a consensus.
>
> What's the definition of reproducible? It is more like A or more like B?

I don't know if you're aware of the recently created:

  https://reproducible-builds.org/docs/definition/
  

> A. Every time the package is attempted to build, the build succeeds,
> and the same .deb are always created.
>
> B. Every time the build is attempted and the builds succeeds, the
> same .deb are always created.
>
> In other words: It is ok to consider "always build ok" as a prerequisite
> to consider a source package "reproducible"?

If it reproducibly FTBFS, well, I guess that's a form of
reproducibility... but I tend to think you need to actually have
meaningfully produced binaries, packages, objects, etc. as a result of
the build process compare to consider it reproducible.

If there's randomness or variability inherent in the build process that
causes the build to fail sometimes, I'd say that's not
reproducible... so I'd be inclined to say "A".


live well,
  vagrant


signature.asc
Description: PGP signature
___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds

Re: What do we really mean by "reproducible"?

2017-01-16 Thread Paul Sherwood

On 2017-01-16 11:26, Santiago Vila wrote:
Before I use this rationale more times in some discussions out there, 
I'd

like to be sure that there is a consensus.

What's the definition of reproducible? It is more like A or more like 
B?


A. Every time the package is attempted to build, the build succeeds,
and the same .deb are always created.


I may be wrong, but I believe that it's not possible to guarantee that 
the build succeeds every single time, even once we've locked all inputs 
to be in a known state. Cosmic rays would be one potential breakage, or 
corruption of a built intermediate artifact etc.



B. Every time the build is attempted and the builds succeeds, the
same .deb are always created.


So I expect this is likely to be more viable than your A.

However, for a given set of inputs (including tooling) that are known to 
create a successful build once, they should always succeed provided 
there are no infrastructure glitches.


I'd also say that reproducibility shouldn't be .deb specific. Other 
projects are seeking bit-for-bit reproducibility with other packaging 
mechanisms. So I'd replace "the same .deb" with the same binary 
artifacts"


br
Paul

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds


Re: What do we really mean by "reproducible"?

2017-01-16 Thread Paul Sherwood



On 2017-01-16 14:28, Santiago Vila wrote:

On Mon, Jan 16, 2017 at 02:19:44PM +, Paul Sherwood wrote:

On 2017-01-16 11:26, Santiago Vila wrote:
> Before I use this rationale more times in some discussions out there,
> I'd
> like to be sure that there is a consensus.
>
> What's the definition of reproducible? It is more like A or more like B?
>
> A. Every time the package is attempted to build, the build succeeds,
> and the same .deb are always created.

I may be wrong, but I believe that it's not possible to guarantee that 
the
build succeeds every single time, even once we've locked all inputs to 
be in
a known state. Cosmic rays would be one potential breakage, or 
corruption of

a built intermediate artifact etc.


But I'm not speaking about cosmic rays or disk failures, but things
which are intrinsic to the package itself:

A very simple and funny example: Would we call a package having this
bug "reproducible"?

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838828

(It has a mathematically-proved probability > 0 of failure).


I would say that's *not* reproducible.

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds


Re: What do we really mean by "reproducible"?

2017-01-16 Thread Santiago Vila
On Mon, Jan 16, 2017 at 02:19:44PM +, Paul Sherwood wrote:
> On 2017-01-16 11:26, Santiago Vila wrote:
> > Before I use this rationale more times in some discussions out there,
> > I'd
> > like to be sure that there is a consensus.
> > 
> > What's the definition of reproducible? It is more like A or more like B?
> > 
> > A. Every time the package is attempted to build, the build succeeds,
> > and the same .deb are always created.
> 
> I may be wrong, but I believe that it's not possible to guarantee that the
> build succeeds every single time, even once we've locked all inputs to be in
> a known state. Cosmic rays would be one potential breakage, or corruption of
> a built intermediate artifact etc.

But I'm not speaking about cosmic rays or disk failures, but things
which are intrinsic to the package itself:

A very simple and funny example: Would we call a package having this
bug "reproducible"?

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838828

(It has a mathematically-proved probability > 0 of failure).

Thanks.

___
Reproducible-builds mailing list
Reproducible-builds@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds