ffc1fb8f5c
* //users/grfn: vendor ddclient module and package into depot //3p/ddclient now contains the removed package expression and NixOS module with the following changes: - Include former uid/gid settings from ids.nix which have been removed by upstream with the ddclient module. - Rename to deprecate-ddclient, since it is impossible at the moment to prevent the corresponding mkRemovedOptionModule from being imported (https://github.com/NixOS/nixpkgs/issues/245265). I wrote a patch for nixpkgs that would at least allow individual mkRemovedOptionModule to be disable, but it is stuck for now: https://github.com/NixOS/nixpkgs/pull/245274. * //tools/magrathea: We need to pass -host to csc due to https://github.com/NixOS/nixpkgs/pull/246923 now. I don't fully grasp what this means, but it works and we are hardly cross-compiling, so it should be fine until I can get some answers from the change author. * //3p/nixpkgs:nixos-option: provide latest Nix as input https://github.com/NixOS/nixpkgs/pull/237442 adapted nixos-option to API changes in Nix's libraries which means it needs to be built against Nix 2.15, not 2.3. Let's hope it stays up to date with the latest Nix version in the future, so we can keep this override as is. Sadly this means that machines in depot will depend on two versions of Nix going forward. * //3p/nixpkgs:tdlib: update to match emacs-overlay Change-Id: Iac4dba58a076ecf25e8647fd9a06cbabf2f7809e Reviewed-on: https://cl.tvl.fyi/c/depot/+/9004 Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
136 lines
4.2 KiB
Nix
136 lines
4.2 KiB
Nix
# This overlay is used to make TVL-specific modifications in the
|
|
# nixpkgs tree, where required.
|
|
{ depot, localSystem, ... }:
|
|
|
|
self: super:
|
|
let
|
|
# Rollback Nix to a stable version (2.3) with backports for
|
|
# build-user problems applied.
|
|
nixSrc =
|
|
let
|
|
# branch 2.3-backport-await-users
|
|
rev = "46a91f2abaee85135cbb447c13957d3c5e9091a9";
|
|
in
|
|
self.fetchFromGitHub
|
|
{
|
|
owner = "tvlfyi";
|
|
repo = "nix";
|
|
inherit rev;
|
|
hash = "sha256:0rwyrh471c5y64axyd8vzzzmzlscg97fsrjbgbm1a93wnzxcvnvk";
|
|
} // { revCount = 0; shortRev = builtins.substring 0 7 rev; };
|
|
|
|
nixTarball = (scopedImport
|
|
{
|
|
# The tarball job always uses currentSystem which we need to purify
|
|
builtins = builtins // { currentSystem = localSystem; };
|
|
}
|
|
"${nixSrc}/release.nix"
|
|
{
|
|
nix = nixSrc;
|
|
nixpkgs = self.path;
|
|
systems = [ ];
|
|
}
|
|
).tarball;
|
|
in
|
|
depot.nix.readTree.drvTargets {
|
|
nix_2_3 = super.nix_2_3.overrideAttrs (_: {
|
|
src = "${nixTarball}/tarballs/nix-${nixTarball.version}.tar.xz";
|
|
});
|
|
nix = self.nix_2_3;
|
|
nix_latest = super.nix;
|
|
|
|
# nixos-option now unfortunately depends on (at the time of writing) Nix 2.15
|
|
# instead of Nix 2.3 as before. The intention seems to be to keep it in sync
|
|
# with the latest Nix and it uses unstable interfaces of Nix (the libraries).
|
|
# TODO(sterni): can we link it statically and avoid a second Nix store path?
|
|
nixos-option = super.nixos-option.override {
|
|
nix = self.nix_latest;
|
|
};
|
|
|
|
# Too match telega in emacs-overlay or wherever
|
|
tdlib = super.tdlib.overrideAttrs (_: {
|
|
version = "1.8.15";
|
|
src = self.fetchFromGitHub {
|
|
owner = "tdlib";
|
|
repo = "td";
|
|
rev = "64264b0f775a027fa9e0bf72051a8b2a5a2df071";
|
|
sha256 = "1qs8pizap7glm98kjjliph1s7dn4fffwvs5ml8nv9d55dispjc4f";
|
|
};
|
|
});
|
|
|
|
home-manager = super.home-manager.overrideAttrs (_: {
|
|
src = depot.third_party.sources.home-manager;
|
|
version = "git-"
|
|
+ builtins.substring 0 7 depot.third_party.sources.home-manager.rev;
|
|
});
|
|
|
|
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.
|
|
depotExwm = esuper.exwm.overrideAttrs (_: {
|
|
src = depot.path.origSrc + "/third_party/exwm";
|
|
});
|
|
|
|
# Workaround for magit checking the git version at load time
|
|
magit = esuper.magit.overrideAttrs (_: {
|
|
propagatedNativeBuildInputs = [
|
|
self.git
|
|
];
|
|
});
|
|
})
|
|
);
|
|
|
|
# dottime support for notmuch
|
|
notmuch = super.notmuch.overrideAttrs (old: {
|
|
passthru = old.passthru // {
|
|
patches = old.patches ++ [ ./patches/notmuch-dottime.patch ];
|
|
};
|
|
});
|
|
|
|
# nix-serve does not work with nix 2.4
|
|
# https://github.com/edolstra/nix-serve/issues/28
|
|
nix-serve = super.nix-serve.override { nix = self.nix_2_3; };
|
|
|
|
# Avoid builds of mkShell derivations in CI.
|
|
mkShell = super.lib.makeOverridable (args: (super.mkShell args).overrideAttrs (_: {
|
|
passthru = {
|
|
meta.ci.skip = true;
|
|
};
|
|
}));
|
|
|
|
# Pin a newer version of crate2nix from git, which is not officially
|
|
# released but supports `dep:`
|
|
crate2nix = super.crate2nix.overrideAttrs (old: rec {
|
|
version = "0.11.0-rc.1";
|
|
|
|
src = self.fetchFromGitHub {
|
|
owner = "kolloch";
|
|
repo = "crate2nix";
|
|
rev = "v0.11.0-rc.1";
|
|
hash = "sha256:02yvn61w16sgkdxa019l5y9i2ybyk8h4516718gmarqxx5ws2kz8";
|
|
};
|
|
|
|
cargoDeps = old.cargoDeps.overrideAttrs (_: {
|
|
inherit src;
|
|
outputHash = "sha256:03yny9ikqzfpi2mr27r82g54an2s8k9lqi2i4fqalg7g0s2cr2yd";
|
|
});
|
|
});
|
|
}
|