16591184b4
Prior to this change, ffmpeg couldn't be built for an environment.noXlibs system, because it would fail in: ffmpeg → SDL2 → libdecor ffmpeg certainly does not need support for SDL2 windowing on a noXlibs system. This fix is important because the minidlna NixOS test, which uses the minimal profile (and therefore environment.noXlibs) and ffmpeg, can't currently build.
48 lines
2.0 KiB
Nix
48 lines
2.0 KiB
Nix
# This module gets rid of all dependencies on X11 client libraries
|
|
# (including fontconfig).
|
|
|
|
{ config, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
{
|
|
options = {
|
|
environment.noXlibs = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
description = lib.mdDoc ''
|
|
Switch off the options in the default configuration that
|
|
require X11 libraries. This includes client-side font
|
|
configuration and SSH forwarding of X11 authentication
|
|
in. Thus, you probably do not want to enable this option if
|
|
you want to run X11 programs on this machine via SSH.
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = mkIf config.environment.noXlibs {
|
|
programs.ssh.setXAuthLocation = false;
|
|
security.pam.services.su.forwardXAuth = lib.mkForce false;
|
|
|
|
fonts.fontconfig.enable = false;
|
|
|
|
nixpkgs.overlays = singleton (const (super: {
|
|
beam = super.beam_nox;
|
|
cairo = super.cairo.override { x11Support = false; };
|
|
dbus = super.dbus.override { x11Support = false; };
|
|
ffmpeg_4 = super.ffmpeg_4.override { sdlSupport = false; vdpauSupport = false; };
|
|
ffmpeg_5 = super.ffmpeg_5.override { sdlSupport = false; vdpauSupport = false; };
|
|
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
|
|
libva = super.libva-minimal;
|
|
networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
|
|
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
|
|
networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
|
|
networkmanager-openconnect = super.networkmanager-openconnect.override { withGnome = false; };
|
|
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
|
|
networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; };
|
|
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
|
|
qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
|
|
}));
|
|
};
|
|
}
|