about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libphonenumber/build-reproducibility.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libphonenumber/build-reproducibility.patch')
-rw-r--r--nixpkgs/pkgs/development/libraries/libphonenumber/build-reproducibility.patch32
1 files changed, 18 insertions, 14 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libphonenumber/build-reproducibility.patch b/nixpkgs/pkgs/development/libraries/libphonenumber/build-reproducibility.patch
index 202370a80fc5..137c9045c77d 100644
--- a/nixpkgs/pkgs/development/libraries/libphonenumber/build-reproducibility.patch
+++ b/nixpkgs/pkgs/development/libraries/libphonenumber/build-reproducibility.patch
@@ -1,8 +1,6 @@
-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 {
+--- a/tools/cpp/src/cpp-build/generate_geocoding_data.cc.orig	1970-01-01 01:00:01.000000000 +0100
++++ b/tools/cpp/src/cpp-build/generate_geocoding_data.cc	2024-01-16 19:03:45.409089423 +0100
+@@ -94,7 +94,8 @@
    DirEntryKinds kind_;
  };
  
@@ -12,13 +10,19 @@ index 205947e831..1e628e2cd2 100644
  // success.
  bool ListDirectory(const string& path, vector<DirEntry>* entries) {
    entries->clear();
-@@ -135,6 +136,9 @@ bool ListDirectory(const string& path, vector<DirEntry>* entries) {
+@@ -114,8 +115,14 @@
+     // http://pubs.opengroup.org/onlinepubs/9699919799/functions/readdir.html
+     errno = 0;
+     entry = readdir(dir);
++    if (errno != 0) {
++      return false;
++    }
+     if (entry == NULL) {
+-      return errno == 0;
++      std::sort(
++          entries->begin(), entries->end(),
++          [](const DirEntry& a, const DirEntry& b) { return a.name() < b.name(); });
++      return true;
      }
-     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.
+     if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
+        continue;