Unverified Commit 01acbe0f authored by Arnout Engelen's avatar Arnout Engelen
Browse files

libphonenumber: fix reproducible builds patch

Now actually sorts the directory listings

Fixes https://github.com/NixOS/nixpkgs/issues/276443
parent 9b19f5e7
Loading
Loading
Loading
Loading
+18 −14
Original line number Diff line number Diff line
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) {
     }
     entries->push_back(DirEntry(entry->d_name, kind));
   }
@@ -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;
     }
 
 // Returns true if s ends with suffix.
     if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
        continue;
+2 −1
Original line number Diff line number Diff line
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
  };

  patches = [
    # Submitted upstream: https://github.com/google/libphonenumber/pull/2921
    # An earlier version of this patch was submitted upstream but did not get
    # any interest there - https://github.com/google/libphonenumber/pull/2921
    ./build-reproducibility.patch
  ];