tvl-depot/third_party/overlays/tvl.nix
sterni ffc1fb8f5c chore(3p/sources): Bump channels & overlays
* //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
2023-08-08 20:33:01 +00:00

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";
});
});
}