libphonenumber: patch code generation tool for build reproducibility

Fixes #230284
Ref https://github.com/google/libphonenumber/pull/2921
This commit is contained in:
Pierre Bourdon 2023-05-14 19:54:02 +02:00
parent 5278c612ae
commit 671ac5d2a5
No known key found for this signature in database
GPG key ID: 6FB80DCD84DA0F1C
2 changed files with 29 additions and 0 deletions

View file

@ -0,0 +1,24 @@
diff --git a/tools/cpp/src/cpp-build/generate_geocoding_data.cc b/tools/cpp/src/cpp-build/generate_geocoding_data.cc
index 205947e831..1e628e2cd2 100644
--- a/tools/cpp/src/cpp-build/generate_geocoding_data.cc
+++ b/tools/cpp/src/cpp-build/generate_geocoding_data.cc
@@ -97,7 +97,8 @@ class DirEntry {
DirEntryKinds kind_;
};
-// Lists directory entries in path. "." and ".." are excluded. Returns true on
+// Lists directory entries in path. "." and ".." are excluded. Entries are
+// returned in a consistent order to ensure reproducibility. Returns true on
// success.
bool ListDirectory(const string& path, vector<DirEntry>* entries) {
entries->clear();
@@ -135,6 +136,9 @@ bool ListDirectory(const string& path, vector<DirEntry>* entries) {
}
entries->push_back(DirEntry(entry->d_name, kind));
}
+ std::sort(
+ entries->begin(), entries->end(),
+ [](const DirEntry& a, const DirEntry& b) { return a.name() < b.name(); });
}
// Returns true if s ends with suffix.

View file

@ -11,6 +11,11 @@ stdenv.mkDerivation rec {
sha256 = "sha256-xLxadSxVY3DjFDQrqj3BuOvdMaKdFSLjocfzovJCBB0=";
};
patches = [
# Submitted upstream: https://github.com/google/libphonenumber/pull/2921
./build-reproducibility.patch
];
nativeBuildInputs = [
cmake
pkg-config