xo-umbrella2/overlays.nix
Roland Conybeare d75ef849fd nix env: drop unused fish-overlay
No longer needed, since we fixed pty issue
2026-07-08 08:47:46 -04:00

205 lines
6.1 KiB
Nix

let
# this approach (overlays) is effective, but has super wide cross-section,
# since absolutely everything has to be rebuilt from source
#
amf-headers-overlay = self: super: {
amf-headers = super.amf-headers.overrideAttrs (old: {
src = self.fetchFromGitHub {
# nixpkgs sha256 stale for version 1.4.36 asof 4sep2025
owner = "GPUOpen-LibrariesAndSDKs";
repo = "AMF";
rev = "v${old.version}";
sha256 = "sha256-0PgWEq+329/EhI0/CgPsCkJ4CiTsFe56w2O+AcjVUdc=";
#sha256 = "sha256-0PgWEq+329/EhI0/CgPsCkJ4CiTsFe56w2O+AcjVUdc=";
#sha256 = "sha256-u6gvdc1acemd01TO5EbuF3H7HkEJX4GUx73xCo71yPY=";
};});
};
# complains about 'no more ptys'
dejagnu-overlay = self: super: {
dejagnu = super.dejagnu.overrideAttrs (old: {
doCheck = false;
});
};
swtpm-overlay = self: super: {
swtpm = super.swtpm.overrideAttrs (old: {
doCheck = false;
});
};
# libffi tests run, but only if sandbox disabled
libffi-overlay = self: super: {
libffi = super.libffi.overrideAttrs (old: {
doCheck = false;
});
};
# libqmi test seems to stall on ubuntu
libqmi-overlay = self: super: {
libqmi = super.libqmi.overrideAttrs (old: {
doCheck = false;
});
};
# fop 2.8 source moved.
# mirror://apache path 404s because Apache relocated old releases into source/.
# Keep nixpkgs' 2.8 + repoint to permanent archive.
#
fop-overlay = final: prev: {
fop = prev.fop.overrideAttrs (old: {
src = final.fetchurl {
url = "https://archive.apache.org/dist/xmlgraphics/fop/source/fop-2.8-src.tar.gz";
hash = "sha256-b7Av17wu6Ar/npKOiwYqzlvBFSIuXTpqTacM1sxtBvc=";
};
});
};
# nodejs test-runner-output test fails.
# advice is that this test is notoriously flaky, and sibling
# tests are already disabled in nixpkgs 25.05
#
node-overlay = final: prev: {
nodejs_22 = prev.nodejs_22.overrideAttrs (old: {
doCheck = false;
});
};
# salsa upstream/1.36 tag was re-pointed and dropped `wrapawk`
# (release-tarball-only, never committed).
# Use the canonical Debian orig tarball from snapshot.debian.org:
# permanent + content-addressed by file hash, so can't drift.
#
fakeroot-overlay = final: prev: {
fakeroot = prev.fakeroot.overrideAttrs (old: {
src = final.fetchzip {
url = "https://snapshot.debian.org/file/ea895c6632fcf1b38cc84987d1b4daf833ffd430";
extension = "tar.gz"; # snapshot URLs carry no extension, we must apply ourselves
hash = "sha256-0vM8SsJ+uqp2kAot0/NF/8e/YJX81rlnEdXdgLbyRhc=";
};
});
};
# lato:
# 1. upstream moved the zip /download/ -> /files/ (fixed in nixpkgs master),
# -> Track new URL
# 2. latofonts.com now bot-blocks the default fetcher UA (403).
# -> supply user agent
#
lato-overlay = final: prev: {
lato = prev.lato.overrideAttrs (old: {
src = final.fetchzip {
url = "https://www.latofonts.com/files/Lato2OFL.zip";
stripRoot = false;
curlOptsList = [ "--user-agent" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36" ];
hash = "sha256-n1TsqigCQIGqyGLGTjLtjHuBf/iCwRlnqh21IHfAuXI=";
};
});
};
# plotly:
# GitHub regenerates archive tarballs non-reproducibly -> pinned archive hash drifts.
# Fetch the git tree instead, for stability.
#
# Tag v5.24.1 is a lightweight tag at 5d79b80c (not moved).
#
plotly-overlay = final: prev: {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(pyfinal: pyprev: {
plotly = pyprev.plotly.overrideAttrs (old: {
src = final.fetchFromGitHub {
owner = "plotly"; repo = "plotly.py"; rev = "v5.24.1";
forceFetchGit = true;
hash = "sha256-wEhStV4ZArZpGMi3w+xEbHHqxNmJ/PZhGuzIvoaQ2l4=";
};
});
})
];
};
# flasgger:
# upstream re-tagged v0.9.7.1 to a commit that already incorporates the
# flask-2.3 and py3.12 fixes nixpkgs 25.05 applies as patches.
# nixpkgs master pins this exact new content hash.
# Adopt the new src and drop the obsolete patches
#
flasgger-overlay = final: prev: {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(pyfinal: pyprev: {
flasgger = pyprev.flasgger.overrideAttrs (old: {
src = final.fetchFromGitHub {
owner = "flasgger"; repo = "flasgger"; rev = "v0.9.7.1";
hash = "sha256-ULEf9DJiz/S2wKlb/vjGto8VCI0QDcm0pkU5rlOwtiE=";
};
patches = [];
});
})
];
};
# igraph:
# 1. dockerTools.buildLayeredImage's flatten-references-graph
# helper depends on python igraph at runtime.
# 2. igraph's runtime deps are tiny (texttable)
# but it declares optional-dependencies for plotting
# (plotly, matplotlib, cairocffi).
# 3. Optional deps buildPythonPackage propagate into the build
# closure via buildPythonPackage, drags in monster
# scikit-image with django + selenium + arrow-cpp + fbthrift + ..
# 4. We just want ability to build docker images, so drop the
# plotting deps + skip tests.
#
# Could in future apply this overlay only to dockerTools
#
igraph-overlay = final: prev: {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(pyfinal: pyprev: {
igraph = pyprev.igraph.overridePythonAttrs (old: {
doCheck = false;
nativeCheckInputs = [];
optional-dependencies = {};
});
})
];
};
# tests excruciatingly slow
mailutils-overlay = self: super: {
mailutils = super.mailutils.overrideAttrs (old: {
doCheck = false;
});
};
# 2 tests fail with 25.05
notmuch-overlay = self: super: {
notmuch = super.notmuch.overrideAttrs (old: {
doCheck = false;
});
};
# ghostty tests require ptys
ghostty-overlay = self: super: {
ghostty = super.ghostty.overrideAttrs (old: {
doCheck = false;
});
};
in
[
amf-headers-overlay
dejagnu-overlay
libffi-overlay
libqmi-overlay
fop-overlay
node-overlay
fakeroot-overlay
lato-overlay
plotly-overlay
flasgger-overlay
igraph-overlay
swtpm-overlay
mailutils-overlay
notmuch-overlay
ghostty-overlay
]