-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Description
Rebuilding TDLib for iOS and macOS produces artifacts with different checksums, even when the build environment and build cache remain unchanged. Interestingly, OpenSSL builds have the same checksums.
Steps to reproduce
OpenSSL builds
cd td/example/ios
./build-openssl.sh
shasum -a 256 third_party/openssl/macOS/lib/*.aRunning this script twice produces identical checksums:
88ce8def2830675b85854e9f4655c336f76592ec98cdf253fe3735910e8e1afb third_party/openssl/macOS/lib/libcrypto.a
743b9f5d0c5b68a3ee8d54bacd3b831fccf0e62d7d1edf4b9321c7bea6215bde third_party/openssl/macOS/lib/libssl.a
TDLib builds
cd td/example/ios
./build.sh
shasum -a 256 build/install-macOS/lib/*.aFirst run checksums:
7850935e7c0bec00a3e972bebadb8aca878ac9802e58181fd00102584a7d7a3e build/install-macOS/lib/libtdactor.a
a5b9a7591863877b2b5466965fb7f4fc19ce5849b40965d61955da2b69167057 build/install-macOS/lib/libtdapi.a
ce1c5b9e900cd956b7dfee45bfd79cf8868d064296f4e9f1104184e7d4d1dd84 build/install-macOS/lib/libtdclient.a
8e019f90e2a6422b3ef651ec37ac98c85723fbd63dd82eb81dadc5114b76a285 build/install-macOS/lib/libtdcore.a
26aa14d3162bac098ab06c3077c701b3360b3b6e0361276f9966b12437e2a480 build/install-macOS/lib/libtddb.a
2221a43b35e26768eb5a1f642af8326718f6026d5f83e27584eec64d681f806f build/install-macOS/lib/libtde2e.a
2819184425c185af353696d5da24fbf1f620ba9138081fee0557e0e88e14c3b8 build/install-macOS/lib/libtdjson_private.a
abfd2d89fff24b2624a1adde7c990439575d76b4e0b4779d5b0f2eb4b15996fb build/install-macOS/lib/libtdjson_static.a
4c5d36b151a465acfeef88671ed6ad6029b79647469ed68d245d488776c8317a build/install-macOS/lib/libtdmtproto.a
d931033d520f669960928066c186d52d533dc798fc6c0d222ef1aedd88b7dbbd build/install-macOS/lib/libtdnet.a
0c94fbbe48d0168ea249fdc88af28247a294863287f0a76265f9a8f62748d9d3 build/install-macOS/lib/libtdsqlite.a
a5de8f9a95b0e5bafafc92dff580ca33716238bf9afef012711fe66e5f397880 build/install-macOS/lib/libtdutils.a
Second run checksums:
0135557d4ee28eb6f57e7af16caeeb1b2c3466863b4c1d596f80ca0ddf156f39 build/install-macOS/lib/libtdactor.a
3c9f9cce806f59675e9d65afbd26a0a9d37dfcc831782cbe49361b7da37b4fbc build/install-macOS/lib/libtdapi.a
8333f3e4c1f4ce75a98f58cb7ad36184961a02ffdb7a5d9bb4839cdd809f9779 build/install-macOS/lib/libtdclient.a
ba2b28d1f651aeb2cc4f23504c3fff9f642af6e231433921522a67f19bf2b31d build/install-macOS/lib/libtdcore.a
ed310bffab22f8fd74fa6f94c439be0617498afbdb75fd82609f4e0356f67158 build/install-macOS/lib/libtddb.a
36f80f4626ef11e18c44aad4049e3f877ea8c1f591d6f1f9f2b2397fa4897571 build/install-macOS/lib/libtde2e.a
2d91cc960620c54ef4a5f98fcb167298af1a43f047b2ce38b58b7dde00de645f build/install-macOS/lib/libtdjson_private.a
ad6b92bed4e6fa5e75cc7d0dacd20c7e91ff31f6f7fcc0f808799263dbf2c24b build/install-macOS/lib/libtdjson_static.a
2cbc77bcbfa1904c3b182164389160696b76ffee66aee3698d8029da95c8bb76 build/install-macOS/lib/libtdmtproto.a
e98df0cd7f494e7f4672609f7a416eb90a55322434d66c1c66e1012ad0ba004a build/install-macOS/lib/libtdnet.a
61ef5aa46ede68c902698ee2b55ec301d51b7efa12d1887dd98a7ffc90c6e3cb build/install-macOS/lib/libtdsqlite.a
02d0b8b7da42dca9016aad1c590fef2a87e5efc537cf1bfa4a7d330120d9220c build/install-macOS/lib/libtdutils.a
Expected behavior
All builds should produce identical artifacts with matching checksums when source code, toolchain, and environment remain unchanged (reproducible/deterministic builds).
Actual behavior
Every TDLib rebuild for iOS and macOS produces completely different checksums for all libraries. The builds for Android and for JVM Linux are deterministic.
Metadata
Metadata
Assignees
Labels
No labels