Merge branch 'staging-next'
Rebuild on Hydra seems OK-ish. mongodb.nix needed some conflict resolution (scons versions); all four versions seem to build fine.
This commit is contained in:
@@ -214,15 +214,7 @@ let
|
||||
# fontconfig default config files
|
||||
ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
|
||||
$support_folder/
|
||||
ln -s ${latestPkg.out}/etc/fonts/conf.d/*.conf \
|
||||
$latest_folder/
|
||||
|
||||
# update latest 51-local.conf path to look at the latest local.conf
|
||||
rm $latest_folder/51-local.conf
|
||||
|
||||
substitute ${latestPkg.out}/etc/fonts/conf.d/51-local.conf \
|
||||
$latest_folder/51-local.conf \
|
||||
--replace local.conf /etc/fonts/${latestVersion}/local.conf
|
||||
# Latest fontconfig is configured to look for the upstream defaults inside the package.
|
||||
|
||||
# 00-nixos-cache.conf
|
||||
ln -s ${cacheConfSupport} \
|
||||
@@ -236,7 +228,11 @@ let
|
||||
# 50-user.conf
|
||||
${optionalString (!cfg.includeUserConf) ''
|
||||
rm $support_folder/50-user.conf
|
||||
rm $latest_folder/50-user.conf
|
||||
''}
|
||||
# Since latest fontconfig looks for default files inside the package,
|
||||
# we had to move this one elsewhere to be able to exclude it here.
|
||||
${optionalString cfg.includeUserConf ''
|
||||
ln -s ${latestPkg.out}/etc/fonts/conf.d.bak/50-user.conf $latest_folder/50-user.conf
|
||||
''}
|
||||
|
||||
# local.conf (indirect priority 51)
|
||||
|
||||
@@ -111,8 +111,8 @@ let
|
||||
copy_bin_and_libs ${pkgs.utillinux}/sbin/blkid
|
||||
|
||||
# Copy dmsetup and lvm.
|
||||
copy_bin_and_libs ${pkgs.lvm2}/sbin/dmsetup
|
||||
copy_bin_and_libs ${pkgs.lvm2}/sbin/lvm
|
||||
copy_bin_and_libs ${getBin pkgs.lvm2}/bin/dmsetup
|
||||
copy_bin_and_libs ${getBin pkgs.lvm2}/bin/lvm
|
||||
|
||||
# Add RAID mdadm tool.
|
||||
copy_bin_and_libs ${pkgs.mdadm}/sbin/mdadm
|
||||
@@ -235,7 +235,7 @@ let
|
||||
--replace cdrom_id ${extraUtils}/bin/cdrom_id \
|
||||
--replace ${pkgs.coreutils}/bin/basename ${extraUtils}/bin/basename \
|
||||
--replace ${pkgs.utillinux}/bin/blkid ${extraUtils}/bin/blkid \
|
||||
--replace ${pkgs.lvm2}/sbin ${extraUtils}/bin \
|
||||
--replace ${getBin pkgs.lvm2}/bin ${extraUtils}/bin \
|
||||
--replace ${pkgs.mdadm}/sbin ${extraUtils}/sbin \
|
||||
--replace ${pkgs.bash}/bin/sh ${extraUtils}/bin/sh \
|
||||
--replace ${udev} ${extraUtils}
|
||||
|
||||
+64
-11
@@ -1,17 +1,70 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf (!config.boot.isContainer) {
|
||||
|
||||
environment.systemPackages = [ pkgs.lvm2 ];
|
||||
|
||||
services.udev.packages = [ pkgs.lvm2 ];
|
||||
|
||||
let
|
||||
cfg = config.services.lvm;
|
||||
in {
|
||||
options.services.lvm = {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = if cfg.dmeventd.enable then pkgs.lvm2_dmeventd else pkgs.lvm2;
|
||||
internal = true;
|
||||
defaultText = "pkgs.lvm2";
|
||||
description = ''
|
||||
This option allows you to override the LVM package that's used on the system
|
||||
(udev rules, tmpfiles, systemd services).
|
||||
Defaults to pkgs.lvm2, or pkgs.lvm2_dmeventd if dmeventd is enabled.
|
||||
'';
|
||||
};
|
||||
dmeventd.enable = mkEnableOption "the LVM dmevent daemon";
|
||||
boot.thin.enable = mkEnableOption "support for booting from ThinLVs";
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf (!config.boot.isContainer) {
|
||||
environment.etc."tmpfiles.d/lvm2.conf".source = "${cfg.package}/lib/tmpfiles.d/lvm2.conf";
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
systemd.packages = [ cfg.package ];
|
||||
|
||||
# TODO: update once https://github.com/NixOS/nixpkgs/pull/93006 was merged
|
||||
services.udev.packages = [ cfg.package.out ];
|
||||
})
|
||||
(mkIf cfg.dmeventd.enable {
|
||||
systemd.sockets."dm-event".wantedBy = [ "sockets.target" ];
|
||||
systemd.services."lvm2-monitor".wantedBy = [ "sysinit.target" ];
|
||||
|
||||
environment.etc."lvm/lvm.conf".text = ''
|
||||
dmeventd/executable = "${cfg.package}/bin/dmeventd"
|
||||
'';
|
||||
})
|
||||
(mkIf cfg.boot.thin.enable {
|
||||
boot.initrd = {
|
||||
kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
|
||||
|
||||
extraUtilsCommands = ''
|
||||
copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/pdata_tools
|
||||
copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/thin_check
|
||||
'';
|
||||
};
|
||||
|
||||
environment.etc."lvm/lvm.conf".text = ''
|
||||
global/thin_check_executable = "${pkgs.thin-provisioning-tools}/bin/thin_check"
|
||||
'';
|
||||
})
|
||||
(mkIf (cfg.dmeventd.enable || cfg.boot.thin.enable) {
|
||||
boot.initrd.preLVMCommands = ''
|
||||
mkdir -p /etc/lvm
|
||||
cat << EOF >> /etc/lvm/lvm.conf
|
||||
${optionalString cfg.boot.thin.enable ''
|
||||
global/thin_check_executable = "$(command -v thin_check)"
|
||||
''}
|
||||
${optionalString cfg.dmeventd.enable ''
|
||||
dmeventd/executable = "$(command -v false)"
|
||||
activation/monitoring = 0
|
||||
''}
|
||||
EOF
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user