fix build from earlier nixpkgs update

This commit is contained in:
Colin 2023-10-27 13:29:26 +00:00
parent 66524685a9
commit ad2fef5b48
4 changed files with 78 additions and 11 deletions

View File

@ -2,23 +2,48 @@
let
fetchpatch' = {
saneCommit ? null,
nixpkgsCommit ? null,
prUrl ? null,
hash ? null,
title ? null,
revert ? false,
}:
let
url = if prUrl != null then
# prUrl takes precedence over any specific commit
"${prUrl}.diff"
else
else if saneCommit != null then
"https://git.uninsane.org/colin/nixpkgs/commit/${saneCommit}.diff"
else
"https://github.com/NixOS/nixpkgs/commit/${nixpkgsCommit}.patch"
;
in fetchpatch2 (
{ inherit url; }
{ inherit revert url; }
// (if hash != null then { inherit hash; } else {})
// (if title != null then { name = title; } else {})
);
in [
# (fetchpatch' {
# # nope: something else broke mesa
# title = "mesa: 23.1.8 -> 23.1.9";
# nixpkgsCommit = "58fdb93d6f5fd794406ea5152a8641e7247b8242";
# revert = true;
# hash = "sha256-1Q31YZbQVC4KIRM7lYhEj50uBDpGM0SlWVCrIB5gGzQ=";
# })
# (fetchpatch' {
# # nope: something else broke prawcore
# title = "python311Packages.prawcore: 2.3.0 -> 2.4.0";
# prUrl = "https://github.com/NixOS/nixpkgs/pull/258535";
# revert = true;
# hash = "sha256-PdV6435gBoAifZplz4kZ/AsVsPk7RFhULZLHxU9Wgow=";
# })
(fetchpatch' {
# merged 2023/10/24
title = "mkdocs-minify: disable tests to fix build";
prUrl = "https://github.com/NixOS/nixpkgs/pull/263084";
hash = "sha256-m/ipSH7MSWOKWjFwdMmWUUJEQs1H/zhWvzsEEm3oofo=";
})
(fetchpatch' {
title = "gsound: enable introspection/vala when cross compiled";
prUrl = "https://github.com/NixOS/nixpkgs/pull/263107";

View File

@ -157,10 +157,39 @@ let
# };
# fix up the nixpkgs command that runs a Linux OS inside QEMU:
# qemu_kvm doesn't support x86_64 -> aarch64; but full qemu package does.
qemuCommandLinux = lib.replaceStrings
[ "${final.buildPackages.qemu_kvm}" ]
[ "${final.buildPackages.qemu}" ]
vmTools.qemuCommandLinux;
qemu = final.buildPackages.qemu.override {
# disable a bunch of unneeded features, particularly graphics.
# this avoids a mesa build failure (2023/10/26).
smartcardSupport = false;
spiceSupport = false;
openGLSupport = false;
virglSupport = false;
vncSupport = false;
gtkSupport = false;
sdlSupport = false;
pulseSupport = false;
pipewireSupport = false;
smbdSupport = false;
seccompSupport = false;
enableDocs = false;
};
# qemuCommandLinux = lib.replaceStrings
# [ "${final.buildPackages.qemu_kvm}" ]
# [ "${qemu}" ]
# vmTools.qemuCommandLinux;
# this qemuCommandLinux is effectively an inline substitution of the above, to avoid taking an unnecessary dep on `buildPackages.qemu_kvm`
qemuCommandLinux = ''
${vmTools.qemu-common.qemuBinary qemu} \
-nographic -no-reboot \
-device virtio-rng-pci \
-virtfs local,path=${builtins.storeDir},security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
''${diskImage:+-drive file=$diskImage,if=virtio,cache=unsafe,werror=report} \
-kernel ${final.linux}/${final.stdenv.hostPlatform.linux-kernel.target} \
-initrd ${vmTools.initrd}/initrd \
-append "console=${vmTools.qemu-common.qemuSerialDevice} panic=1 command=${vmTools.stage2Init} out=$out mountDisk=$mountDisk loglevel=4" \
$QEMU_OPTS
'';
vmRunCommand = final.buildPackages.vmTools.vmRunCommand qemuCommandLinux;
in
# without binfmt emulation, leverage the `vmTools.runInLinuxVM` infrastructure:
@ -794,14 +823,13 @@ in {
# gnome-user-share = addNativeInputs [ final.glib ] super.gnome-user-share;
mutter = (super.mutter.overrideAttrs (orig: {
# 2023/07/31: upstreaming is blocked on argyllcms, libavif
nativeBuildInputs = orig.nativeBuildInputs ++ [
final.glib # fixes "clutter/clutter/meson.build:281:0: ERROR: Program 'glib-mkenums mkenums' not found or not executable"
final.buildPackages.gobject-introspection # allows to build without forcing `introspection=false` (which would break gnome-shell)
final.wayland-scanner
];
# N.B.: not all of this suitable to upstreaming, as-is.
# mesa and xorgserver are removed here because they *themselves* don't build for `buildPackages` (temporarily: 2023/10/26)
nativeBuildInputs = lib.subtractLists [ final.mesa final.xorg.xorgserver ] orig.nativeBuildInputs;
buildInputs = orig.buildInputs ++ [
final.mesa # fixes "meson.build:237:2: ERROR: Dependency "gbm" not found, tried pkgconfig"
];
# Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
mesonFlags = lib.remove "-Ddocs=true" orig.mesonFlags;
outputs = lib.remove "devdoc" orig.outputs;
}));

View File

@ -49,8 +49,18 @@ in {
mesonFlags = [ "-Dtests=disabled" ];
}) prev.libwacom;
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
(py-next: py-prev: {
# 2023/10/26: tests are i think not at all compatible with python3.11
prawcore = dontCheck py-prev.prawcore;
praw = dontCheck py-prev.praw;
})
];
# 2023/07/31
# fails a test (didn't see which one)
# only for binfmt-emulated aarch64 -> aarch64 build
umockdev = dontCheckEmulated prev.umockdev;
# 2023/10/26: should be removable when praw* dontChecks are removed?
visidata = dontCheck prev.visidata;
})

View File

@ -2,6 +2,10 @@
# prefer to encode these in `sane.programs`
# resort to this method for e.g. system dependencies, or things which are referenced from too many places.
(self: super: with self; {
electrum = super.electrum.overrideAttrs (upstream: {
# 2023/10/26: workaround broken ledger-bitcoin build (since that's only needed if we want to talk to a Ledger wallet)
propagatedBuildInputs = lib.remove self.python3.pkgs.ledger-bitcoin upstream.propagatedBuildInputs;
});
gnome = super.gnome.overrideScope' (gself: gsuper: with gself; {
evolution-data-server = gsuper.evolution-data-server.override {
# OAuth depends on webkitgtk_4_1: old, forces an annoying recompilation