Package: patchelf
Version: 0.8-2

Patchelf breaks hardlinks. The attached patch will fix that.
See also: https://github.com/NixOS/patchelf/issues/32

--- a/src/patchelf.cc
+++ b/src/patchelf.cc
@@ -360,19 +360,10 @@
 
 static void writeFile(string fileName, mode_t fileMode)
 {
-    string fileName2 = fileName + "_patchelf_tmp";
-
-    int fd = open(fileName2.c_str(),
-        O_CREAT | O_TRUNC | O_WRONLY, 0700);
+    int fd = open(fileName.c_str(), O_TRUNC | O_WRONLY);
     if (fd == -1) error("open");
-
     if (write(fd, contents, fileSize) != fileSize) error("write");
-
     if (close(fd) != 0) error("close");
-
-    if (chmod(fileName2.c_str(), fileMode) != 0) error("chmod");
-
-    if (rename(fileName2.c_str(), fileName.c_str()) != 0) error("rename");
 }
 
 
@@ -1122,7 +1113,7 @@
 
     if (elfFile.isChanged()){
         elfFile.rewriteSections();
-        writeFile(fileName, fileMode);
+        writeFile(fileName);
     }
 }
 

Reply via email to