Compare commits

..

4 Commits

8 changed files with 165 additions and 28 deletions

36
flake.lock generated
View File

@ -165,11 +165,11 @@
]
},
"locked": {
"lastModified": 1757075491,
"narHash": "sha256-a+NMGl5tcvm+hyfSG2DlVPa8nZLpsumuRj1FfcKb2mQ=",
"lastModified": 1757920978,
"narHash": "sha256-Mv16aegXLulgyDunijP6SPFJNm8lSXb2w3Q0X+vZ9TY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f56bf065f9abedc7bc15e1f2454aa5c8edabaacf",
"rev": "11cc5449c50e0e5b785be3dfcb88245232633eb8",
"type": "github"
},
"original": {
@ -185,11 +185,11 @@
]
},
"locked": {
"lastModified": 1756679287,
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
"lastModified": 1757808926,
"narHash": "sha256-K6PEI5PYY94TVMH0mX3MbZNYFme7oNRKml/85BpRRAo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
"rev": "f21d9167782c086a33ad53e2311854a8f13c281e",
"type": "github"
},
"original": {
@ -270,11 +270,11 @@
"spectrum": "spectrum"
},
"locked": {
"lastModified": 1756913421,
"narHash": "sha256-bApi+D4wQJe4tG03VySlb4lJOBWqpl8DK8niSfKT87U=",
"lastModified": 1757518086,
"narHash": "sha256-qUJFqN9KGhh2nh4ksaFGfGNIuL7p+8PstjtODLbWuSk=",
"owner": "astro",
"repo": "microvm.nix",
"rev": "2ba6697616834ff8c58ebc6180e4833c6d781b82",
"rev": "f6e7494efa2b17deb2a69a45932d34dc205bd3bb",
"type": "github"
},
"original": {
@ -307,11 +307,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1757103352,
"narHash": "sha256-PtT7ix43ss8PONJ1VJw3f6t2yAoGH+q462Sn8lrmWmk=",
"lastModified": 1757891025,
"narHash": "sha256-NfiTk59huy/YK9H4W4wVwRYyiP2u86QqROM5KK4f5F4=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "11b2a10c7be726321bb854403fdeec391e798bf0",
"rev": "4c38a024fa32e61db2be8573e5282b15d9733a79",
"type": "github"
},
"original": {
@ -323,11 +323,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1757020766,
"narHash": "sha256-PLoSjHRa2bUbi1x9HoXgTx2AiuzNXs54c8omhadyvp0=",
"lastModified": 1757810152,
"narHash": "sha256-Vp9K5ol6h0J90jG7Rm4RWZsCB3x7v5VPx588TQ1dkfs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe83bbdde2ccdc2cb9573aa846abe8363f79a97a",
"rev": "9a094440e02a699be5c57453a092a8baf569bdad",
"type": "github"
},
"original": {
@ -339,11 +339,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1757068644,
"narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=",
"lastModified": 1757745802,
"narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9",
"rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
"type": "github"
},
"original": {

View File

@ -36,6 +36,11 @@ let
config.allowUnfree = true; # Allow proprietary software
};
pkgs-kabbone = import ../packages {
inherit system;
inherit pkgs;
};
lib = nixpkgs.lib;
users.defaultShell = "pkgs.zsh";
@ -43,7 +48,7 @@ in
{
hades = lib.nixosSystem { # Desktop profile
inherit system;
specialArgs = { inherit inputs pkgs-stable user location nixos-hardware agenix microvm nixpkgs lanzaboote; };
specialArgs = { inherit inputs pkgs-stable user location nixos-hardware agenix microvm nixpkgs lanzaboote pkgs-kabbone; };
modules = [
agenix.nixosModules.default
microvm.nixosModules.host
@ -205,7 +210,7 @@ in
jupiter = lib.nixosSystem { # Desktop profile
inherit system;
specialArgs = { inherit inputs user location nixos-hardware agenix; };
specialArgs = { inherit inputs user location nixos-hardware agenix pkgs-kabbone; };
modules = [
agenix.nixosModules.default
./jupiter

View File

@ -17,7 +17,7 @@
# └─ default.nix
#
{ config, nixpkgs, pkgs, user, lib, ... }:
{ config, nixpkgs, pkgs, user, lib, pkgs-kabbone, ... }:
{
imports = # For now, if applying to other system, swap files
@ -25,6 +25,7 @@
[(import ../../modules/wm/sway/default.nix)] ++ # Window Manager
(import ../../modules/wm/virtualisation) ++ # libvirt + Docker
[(import ../../modules/wm/virtualisation/kvm-amd.nix)] ++ # kvm module options
#[(import ../../modules/kabbone/corosync-qdevice.nix)] ++ # corosync qdevice quorum
(import ../../modules/hardware); # Hardware devices
boot = { # Boot options
@ -54,8 +55,9 @@
# };
environment = {
systemPackages = with pkgs; [
linux-firmware
systemPackages = [
pkgs.linux-firmware
pkgs-kabbone.corosync-qdevice
];
};

View File

@ -17,7 +17,7 @@
# └─ default.nix
#
{ config, pkgs, user, ... }:
{ config, pkgs, user, pkgs-kabbone, ... }:
{
imports = # For now, if applying to other ssystem, swap files
@ -40,10 +40,11 @@
};
# environment = {
# systemPackages = with pkgs; [
## simple-scan
## intel-media-driver
## alacritty
# systemPackages = with pkgs-kabbone; [
# corosync-qdevice
### simple-scan
### intel-media-driver
### alacritty
# ];
# };

View File

@ -0,0 +1,75 @@
{
lib,
config,
pkgs,
pkgs-kabbone,
...
}:
let
cfg = config.services.corosync-qnetd;
dataDir = "/var/run/corosync-qnetd";
in
{
# interface
options.services.corosync-qnetd = {
enable = lib.mkEnableOption "corosync-qnetd";
package = lib.mkPackageOption pkgs-kabbone "corosync-qdevice" { };
extraOptions = lib.mkOption {
type = with lib.types; listOf str;
default = [ ];
description = "Additional options with which to start corosync-qnetd.";
};
};
# implementation
# implementation
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
users.users.coroqnetd = {
isSystemUser = true;
group = "coroqnetd";
home = dataDir;
description = "Corosync-qnetd Service User";
};
users.groups.coroqnetd = { };
# environment.etc."corosync/corosync-qnetd.conf".text = ''
# totem {
# version: 2
# secauth: on
# cluster_name: ${cfg.clusterName}
# transport: knet
# }
# logging {
# to_syslog: yes
# }
# '';
systemd.packages = [ cfg.package ];
systemd.services.corosync-qnetd = {
serviceConfig = {
User = "coroqnetd";
StateDirectory = "corosync-qnetd";
StateDirectoryMode = "0700";
};
};
environment.etc."sysconfig/corosync-qnetd".text = lib.optionalString (cfg.extraOptions != [ ]) ''
COROSYNC-QNETD_OPTIONS="${lib.escapeShellArgs cfg.extraOptions}"
'';
};
meta = {
#buildDocsInSandbox = false;
#doc = ./mautrix-whatsapp.md;
maintainers = with lib.maintainers; [
kabbone
];
};
}

View File

@ -0,0 +1,49 @@
{
lib,
pkgs,
stdenv
} :
stdenv.mkDerivation rec {
pname = "corosync-qdevice";
version = "3.0.3";
src = pkgs.fetchFromGitHub {
owner = "corosync";
repo = "corosync-qdevice";
rev = "v${version}";
sha256 = "sha256-9FyLhcGHNW73Xao7JiODzgyDKIynEAHJUlNppX+nPfw=";
};
enableParallelBuilding = true;
nativeBuildInputs = with pkgs; [
autoconf
automake
libtool
pkg-config
libqb
systemd
];
buildInputs = with pkgs; [
corosync
nss
];
configurePhase = ''
./autogen.sh
./configure \
--prefix=$out \
--enable-systemd \
--disable-upstart
'';
buildPhase = ''
make
'';
meta = {
description = "daemon for quorum on clusters";
homepage = "https://github.com/corosync/corosync-qdevice";
platforms = lib.platforms.linux;
license = lib.licenses.gpl3;
};
}

4
packages/default.nix Normal file
View File

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
corosync-qdevice = pkgs.callPackage ./corosync-qdevice.nix {};
}

1
packages/result Symbolic link
View File

@ -0,0 +1 @@
/nix/store/7azph9v0lqnb3imkgvdlb0p8j98wy5vy-corosync-qdevice