04f7cc3880
The point where this broke is likely when llvmPackages_11.stdenv started respecting stdenv.hostPlatform.linker and thus using GNU binutils' ld.bfd for linking. That linker can't deal with clang's C++ ABI. To fix this we introduce a modified version of llvmPackages_11.stdenv which uses llvmPackages_11.bintools for linking purposes (I also aim to upstream this in some form, but am not sure about the details atm, so we'll just do this in the tvl overlay for now). This is the precondition for getting our C++ packages in //third_party to work again. Additionally the following fixes were necessary: * abseil-cpp needed to be updated (by overriding the version from nixpkgs for now, since I can't update the subtree on my own) to fulfill grpc's requirements (grpc 1.41.0 needs abseil-cpp LTS 20210324). * gtest needs a patch from nixpkgs which fixes the path to its include directory for CMake. * We need to build re2 with clang as well, otherwise linking will fail. Fixes b/132. Change-Id: I7b64579fe96451547babe070fd35db398581e49d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3701 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: tazjin <mail@tazj.in>
62 lines
1.8 KiB
Nix
62 lines
1.8 KiB
Nix
# This overlay is used to make TVL-specific modifications in the
|
|
# nixpkgs tree, where required.
|
|
{ depot, ... }:
|
|
|
|
self: super: {
|
|
# Required for apereo-cas
|
|
# TODO(lukegb): Document why?
|
|
gradle_6 = (super.gradleGen.override {
|
|
java = self.jdk11;
|
|
jdk = self.jdk11;
|
|
}).gradleGen rec {
|
|
name = "gradle-6.5.1";
|
|
nativeVersion = "0.22-milestone-3";
|
|
|
|
src = builtins.fetchurl {
|
|
url = "https://services.gradle.org/distributions/${name}-bin.zip";
|
|
sha256 = "0jmmipjh4fbsn92zpifa5cqg5ws2a4ha0s4jzqhrg4zs542x79sh";
|
|
};
|
|
};
|
|
|
|
clang-tools_11 = self.clang-tools.override {
|
|
llvmPackages = self.llvmPackages_11;
|
|
};
|
|
|
|
# stdenv which uses clang, lld and libc++; full is a slight exaggeration,
|
|
# we for example don't use LLVM's libunwind
|
|
fullLlvm11Stdenv = self.overrideCC self.stdenv
|
|
(self.llvmPackages_11.libcxxStdenv.cc.override {
|
|
inherit (self.llvmPackages_11) bintools;
|
|
});
|
|
|
|
# Add our Emacs packages to the fixpoint
|
|
emacsPackagesFor = emacs: (
|
|
(super.emacsPackagesFor emacs).overrideScope' (eself: esuper: {
|
|
tvlPackages = depot.tools.emacs-pkgs // depot.third_party.emacs;
|
|
|
|
# Use the notmuch from nixpkgs instead of from the Emacs
|
|
# overlay, to avoid versions being out of sync.
|
|
notmuch = super.notmuch.emacs;
|
|
|
|
# Build EXWM with the depot sources instead.
|
|
exwm = esuper.exwm.overrideAttrs(_: {
|
|
src = "${depot.path + "/third_party/exwm"}";
|
|
});
|
|
})
|
|
);
|
|
|
|
# dottime support for notmuch
|
|
notmuch = super.notmuch.overrideAttrs(old: {
|
|
passthru = old.passthru // {
|
|
patches = old.patches ++ [ ./patches/notmuch-dottime.patch ];
|
|
};
|
|
});
|
|
|
|
# Use latest SBCL, nixpkgs hasn't upgraded yet
|
|
sbcl = self.sbcl_2_1_9;
|
|
|
|
# Fix Steam issues with web views (nixpkgs#137279)
|
|
steam = super.steam.override {
|
|
extraPkgs = pkgs: with pkgs; [ pango harfbuzz libthai ];
|
|
};
|
|
}
|