diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix index 7b71fccd6b8a8..e985202fad23a 100644 --- a/pkgs/applications/editors/emacs/generic.nix +++ b/pkgs/applications/editors/emacs/generic.nix @@ -15,6 +15,7 @@ , recurseIntoAttrs, emacsPackagesFor , libgccjit, makeWrapper # native-comp params , fetchFromSavannah, fetchFromBitbucket +, patchelf_0_15 # macOS dependencies for NS and macPort , AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit @@ -136,6 +137,9 @@ assert withTreeSitter -> tree-sitter != null; ]; nativeBuildInputs = [ pkg-config makeWrapper ] + # TODO: remove once it's fixed upstream and released: + # https://github.com/NixOS/patchelf/issues/482 + ++ [ patchelf_0_15 ] ++ lib.optionals (srcRepo || withMacport) [ texinfo ] ++ lib.optionals srcRepo [ autoreconfHook ] ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook; diff --git a/pkgs/development/tools/misc/patchelf/0.15.nix b/pkgs/development/tools/misc/patchelf/0.15.nix new file mode 100644 index 0000000000000..fc71c4aa4ea48 --- /dev/null +++ b/pkgs/development/tools/misc/patchelf/0.15.nix @@ -0,0 +1,36 @@ +{ lib, stdenv, fetchurl }: + +# Note: this package is used for bootstrapping fetchurl, and thus +# cannot use fetchpatch! All mutable patches (generated by GitHub or +# cgit) that are needed here should be included directly in Nixpkgs as +# files. + +stdenv.mkDerivation rec { + pname = "patchelf"; + version = "0.15.0"; + + src = fetchurl { + url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2"; + sha256 = "sha256-9ANtPuTY4ijewb7/8PbkbYpA6eVw4AaOOdd+YuLIvcI="; + }; + + strictDeps = true; + + setupHook = [ ./setup-hook.sh ]; + + enableParallelBuilding = true; + + # fails 8 out of 24 tests, problems when loading libc.so.6 + doCheck = stdenv.name == "stdenv-linux" + # test scripts require unprefixed bintools binaries + # https://github.com/NixOS/patchelf/issues/417 + && stdenv.cc.targetPrefix == ""; + + meta = with lib; { + homepage = "https://github.com/NixOS/patchelf"; + license = licenses.gpl3Plus; + description = "A small utility to modify the dynamic linker and RPATH of ELF executables"; + maintainers = [ maintainers.eelco ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6bdc275e473ca..31fa49e801709 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18562,6 +18562,11 @@ with pkgs; patchelf_0_13 = callPackage ../development/tools/misc/patchelf/0.13.nix { patchelf = patchelfStable; }; + + # used by emacs which is not compatible to 0.17.2 release: + # https://github.com/NixOS/patchelf/issues/482 + patchelf_0_15 = callPackage ../development/tools/misc/patchelf/0.15.nix { }; + patchelfStable = callPackage ../development/tools/misc/patchelf { }; patchelfUnstable = lowPrio (callPackage ../development/tools/misc/patchelf/unstable.nix { });