programs: buildCost: introduce a new level between min and light

This commit is contained in:
Colin 2024-05-13 19:45:34 +00:00
parent 9bf0dbabae
commit 43d32641f3
13 changed files with 17 additions and 13 deletions

View File

@ -121,7 +121,7 @@
nixpkgs.hostPlatform.system = target;
})
(optionalAttrs (variant == "light") {
sane.maxBuildCost = 1;
sane.maxBuildCost = 2;
})
(optionalAttrs (variant == "min") {
sane.maxBuildCost = 0;

View File

@ -758,7 +758,7 @@ in
];
qemu.sandbox.enable = false; #< it's a launcher
qemu.buildCost = 1;
qemu.buildCost = 2;
rsync.sandbox.method = "bwrap";
rsync.sandbox.net = "clearnet";

View File

@ -23,7 +23,7 @@
"tmp"
];
buildCost = 1;
buildCost = 2;
# XXX(2023/07/08): running on moby without `WEBKIT_DISABLE_SANDBOX...` fails, with:
# - `bwrap: Can't make symlink at /var/run: File exists`

View File

@ -37,7 +37,7 @@ in
# fs.".config/geary".dir = {};
# fs.".local/share/folks".dir = {};
buildCost = 2; # uses webkitgtk 4.1
buildCost = 3; # uses webkitgtk 4.1
persist.byStore.private = [
# attachments, and email -- contained in a sqlite db
".local/share/geary"

View File

@ -16,7 +16,7 @@
sandbox.whitelistDri = true; #< required
sandbox.whitelistWayland = true;
buildCost = 1;
buildCost = 2;
secrets.".local/share/komikku/keyrings/plaintext.keyring" = ../../../secrets/common/komikku_accounts.json.bin;
# downloads end up here, and without the toplevel database komikku doesn't know they exist.

View File

@ -16,7 +16,7 @@
"tmp"
];
buildCost = 2;
buildCost = 3;
# disable first-run stuff
fs.".config/libreoffice/4/user/registrymodifications.xcu".symlink.text = ''

View File

@ -13,7 +13,7 @@ let
wanted-feeds = feeds.filterByFormat [ "text" "image" "podcast" "video" ] all-feeds;
in {
sane.programs.newsflash = {
buildCost = 1; # mainly for desktop: webkitgtk-6.0
buildCost = 2; # mainly for desktop: webkitgtk-6.0
persist.byStore.plaintext = [ ".local/share/news-flash" ];
fs.".config/newsflashFeeds.opml".symlink.text =
feeds.feedsToOpml wanted-feeds

View File

@ -10,6 +10,6 @@
".local/share/io.github.alainm23.planify"
];
buildCost = 1; # webkitgtk-6.0; slow for desktop
buildCost = 2; # webkitgtk-6.0; slow for desktop
};
}

View File

@ -27,7 +27,7 @@ in
'' + (upstream.preFixup or "");
});
buildCost = 1;
buildCost = 2;
sandbox.method = "bwrap";
sandbox.net = "clearnet";

View File

@ -20,7 +20,7 @@
"/sys/devices"
];
buildCost = 1;
buildCost = 2;
# wike probably meant to put everything here in a subdir, but didn't.
# see: <https://github.com/hugolabe/Wike/issues/176>

View File

@ -13,6 +13,6 @@ in
];
fs.".config/wireshark".dir = {};
buildCost = 1;
buildCost = 2;
};
}

View File

@ -15,7 +15,7 @@ in {
sane.programs.zeal = {
# packageUnwrapped = pkgs.zeal-qt6; #< TODO: upgrade system to qt6 versions of everything (i.e. jellyfin-media-player, nheko)
packageUnwrapped = pkgs.zeal-qt5;
buildCost = 2;
buildCost = 3;
persist.byStore.plaintext = [
".cache/Zeal"
".local/share/Zeal"

View File

@ -297,11 +297,15 @@ let
'';
};
buildCost = mkOption {
type = types.enum [ 0 1 2 ];
type = types.enum [ 0 1 2 3 ];
default = 0;
description = ''
whether this package is very slow, or has unique dependencies which are very slow to build.
marking packages like this can be used to achieve faster, but limited, rebuilds/deploys (by omitting the package).
- 0: this package is necessary for baseline usability
- 1: this package is a nice-to-have, and not too costly to build
- 2: this package is a nice-to-have, but costly to build (e.g. `libreoffice`, some webkitgtk-based things)
- 3: this package is costly to build, and could go without (some lesser-used webkitgtk-based things)
'';
};
sandbox.net = mkOption {