nixpkgs/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch
ranfdev cf19e96438 edgedb: init at unstable-2022-06-27
I can't init at 1.1.2 because there's an issue while vendoring the packages.
v1.1.2 seem to require two different version of the same package, causing an issue similar to
https://github.com/NixOS/nixpkgs/issues/30742.
2022-07-03 18:32:49 +02:00

35 lines
1.1 KiB
Diff

diff --git a/src/portable/install.rs b/src/portable/install.rs
index dc0d932..5394fc1 100644
--- a/src/portable/install.rs
+++ b/src/portable/install.rs
@@ -133,8 +133,16 @@ fn unpack_package(cache_file: &Path, target_dir: &Path)
for entry in arch.entries()? {
let mut entry = entry?;
let path = entry.path()?;
+ let is_inside_bin = {
+ let mut path_iter = path.iter();
+ path_iter.next(); // discards first folder
+ path_iter.as_path().starts_with("bin")
+ };
if let Some(path) = build_path(&target_dir, &*path)? {
- entry.unpack(path)?;
+ entry.unpack(&path)?;
+ if is_inside_bin {
+ nix_patchelf_if_needed(&path);
+ }
}
}
bar.finish_and_clear();
@@ -203,3 +211,11 @@ pub fn package(pkg_info: &PackageInfo) -> anyhow::Result<InstallInfo> {
Ok(info)
}
+
+fn nix_patchelf_if_needed(dest_path: &Path) {
+ let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
+ .arg("--set-interpreter")
+ .arg("@dynamicLinker@")
+ .arg(dest_path)
+ .output();
+}