Simon Bruder
f945341668
This applies the REUSE specification to the repository, so the licensing information can be tracked for every file individually.
51 lines
1.7 KiB
Nix
51 lines
1.7 KiB
Nix
# SPDX-FileCopyrightText: 2021-2023 Simon Bruder <simon@sbruder.de>
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
{ config, lib, ... }:
|
|
let
|
|
cfg = config.sbruder.unfree;
|
|
in
|
|
{
|
|
# Options that affect multiple modules
|
|
options.sbruder = {
|
|
unfree = {
|
|
allowAssets = lib.mkOption {
|
|
default = true;
|
|
type = lib.types.bool;
|
|
description = "Allow restricted selection of unfree assets to be installed.";
|
|
};
|
|
allowSoftware = lib.mkOption {
|
|
default = false;
|
|
type = lib.types.bool;
|
|
description = "Allow restricted selection of unfree software to be installed.";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
nixpkgs.config.allowUnfreePredicate = (pkg: lib.elem (lib.getName pkg) (
|
|
lib.optionals cfg.allowAssets [
|
|
"corefonts"
|
|
"vista-fonts"
|
|
"wallpaper-unfree" # defined in users/simon/modules/sway.nix
|
|
] ++ lib.optionals cfg.allowSoftware [
|
|
"cups-kyocera-ecosys-m552x-p502x" # exception: the file header says MIT license, but explicitly forbids modifications WTF?
|
|
"makemkv" # exception: runs in sandbox, only way to get DRM garbage to work properly
|
|
"p7zip" # exception: rar source code is not free, but available; p7zip with `enableUnfree` includes it
|
|
|
|
# exception: used for programming the NitroKey,
|
|
# available under essentially a 3-BSD license with two additional restrictions:
|
|
# one usage restriction and one (pointless as the source is available) reverse engineering restriction
|
|
"nrfutil"
|
|
|
|
# games (okay if they run sandboxed)
|
|
"osu-lazer" # also is free except for one dependency
|
|
"steam"
|
|
"steam-original"
|
|
"steam-runtime"
|
|
]
|
|
));
|
|
};
|
|
}
|