-
Notifications
You must be signed in to change notification settings - Fork 563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Binary schema data is not reproducible. #226
Comments
What does deterministic exactly mean? |
@nameoverflow Deterministic means Reproducible Builds. 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. |
@nameoverflow |
Yes. The binary schema data files produced by rime_deployer are not reproducible. Sorry I didn't make myself clear. |
Given the same set of input files, the build output are the same on the same machine. make -f Makefile.xcode thirdparty
make -f Makefile.xcode
cd xbuild/bin
LD_LIBRARY_PATH=../lib/Release Release/rime_deployer --build
mv build build.1
LD_LIBRARY_PATH=../lib/Release Release/rime_deployer --build
mv build build.2
for x in build.1/*; do diff $x ${x/build.1/build.2} || (echo "diff found"; break); done If the issue is in reproducibly fetching the set of data files with rime/plum, then librime is not the responsible part. We've tried to make binary data files work for different CPU architectures. But it turns out data files built on different machines are compatible but not strictly identical. |
That's not necessary. Could it be caused by YAML schema file's filesystem timestamps? Does the binary schema file contain timestamp information? |
I tested on my computer. Touch all the YAML files and rebuild. The result is different. So this is indeed caused by YAML files' timestamp. |
I'm aware of the issue with timestamps, yet decide to leave it there a little longer. But the situation may change in the future. I plan to make the data deployment process fully separate from the IME, run on user demand. |
Fixed at #720 |
Hello,
I am building rime-data on Guix. Guix is a functional package manager. It requires the binary output of any package to be reproducible. But it seems that the binary schema data files produced by rime_deployer are not reproducible, thus the binary output of rime-data is not reproducible.
Developers of librime, can you confirm that the binary schema files produced by rime_deployer are not reproducible? Is this by design?
The text was updated successfully, but these errors were encountered: