Debian reproducibility statistics
tests.reproducible-builds.org
tests.reproducible-builds.org
Project started in 2014 it seems.
Or... deeper parts of the compiler toolchain change, and the application doesn't re-build without changes.
Taken directly from https://reproducible-builds.org/:
"Second, the set of tools used to perform the build and more generally the build environment should either be recorded or pre-defined"
FWIW, I'm a committer on a Linux distro specifically constructed to guarantee build reproducibility (nixos.org), so I'm pretty sure I know what is generally meant by "reproducible builds" in common industry vernacular. Byte-for-byte is important, but that's hardly the whole picture.
"With this we can detect problems related to timestamps, file ordering, CPU usage, (pseudo-)randomness and other things"
https://tests.reproducible-builds.org/debian/index_variation...
It's hard work to set up a project where you can actually get exactly the same binary over and over again.
I think asking "why is Debian not reproducible" is missing the mark a little - when everything else (Windows, macOS, FreeBSD, etc etc etc) is probably not reproducible, the better question is perhaps "why is Debian trying to be reproducible, and why aren't other projects talking about this just as much" :)
I'm sure there are many, many more techniques involved in making a build reproducible. Hey, they achieved >90% already!
To fix that kind of thing, patching is required.
https://reproducible-builds.org/specs/source-date-epoch/
For things like build numbers, there's a tool called strip-nondeterminism that cleans them up:
disorderfs is nice for ferreting out readdir()-ordering effects.
The problem is if code includes the current date, or generates some randomness at build time. These issues must be identified and patched.
I'm not sure how the reproducible builds machines works for forcing two different build results, but i'd bet they're using sbuild too.
Here's a diffoscope of one of my packages which is not reproducible right now[2].
I also highly recommend the reproducible builds talk at this year's debconf with the repro build folks[3].
[1]https://wiki.debian.org/sbuild
[2]https://tests.reproducible-builds.org/debian/rb-pkg/unstable...
There are other toolsets that supposedly create byte-identical Docker images generation (Bazel, some others), but I haven't tried them.
cxxflags = ${pkg-config opencv python --cflags --libs}
Furthermore I don't see the reason why you woudn't use buck for small projects. What makes you think buck is less suitable for small projects ?
This is a big problem if you want reproducible builds with varying build directory.
https://lists.alioth.debian.org/pipermail/reproducible-build...
Might want to disclose that.
They definitely maintain software. There is a whole pile of packages that aren't maintained upstream any more that are still maintained in Debian, they write things like manual pages for commands that don't have then, they bash the build scripts into something that works on a whole pile of architectures the author never considers, they manage what is probably the worlds biggest issue track system, and then there is the security team producing patches for versions upstream no longer supports.
But probably it's just your wording. While they do maintain software, they are mostly concerned with packaging existing software, not writing new stuff.
(One of the packages I maintain in Debian is apparently dead upstream as of the last year or so, but even so I'm not very interested in becoming the new upstream and adopting big changes like a new build system.)
And just because you are easily confused, everybody should stick to .com only?
Please submit the original source. If a post reports on something found on another site, submit the latter.
If we can find a more substantive page to link to on the same topic, we'll sometimes change the URL. Usually we post a comment explaining that we did so, but it depends who's on duty at the time.
[0]https://madiba.encs.concordia.ca/~x_decarn/truecrypt-binarie...
Reproducibility doesn't really make much sense when the code _isn't_ open - knowing that unknown source code can reliably produce the same output isn't that valuable.