feat: switch to incus-lts and fix lab-tool SSH syntax

- Use incus-lts (6.0.4) instead of latest incus to avoid cowsql build issues
- Re-enable incus on congenital-optimist with LTS version
- Restore incus-admin group membership for users
- Fix missing parentheses in lab-tool SSH module
- This provides stable containerization without build failures
This commit is contained in:
Geir Okkenhaug Jerstad 2025-07-04 15:57:32 +02:00
parent 2069f289ff
commit 250ba5e2ea
5 changed files with 9 additions and 28 deletions

View file

@ -46,7 +46,7 @@
../../modules/users/sma.nix ../../modules/users/sma.nix
# Virtualization configuration # Virtualization configuration
# ../../modules/virtualization/incus.nix # Disabled: cowsql build issue ../../modules/virtualization/incus.nix # Re-enabled with LTS version
../../modules/virtualization/libvirt.nix ../../modules/virtualization/libvirt.nix
../../modules/virtualization/podman.nix ../../modules/virtualization/podman.nix
]; ];

View file

@ -20,6 +20,7 @@ in {
"wheel" "wheel"
"networkmanager" "networkmanager"
"libvirt" "libvirt"
"incus-admin"
"podman" "podman"
"audio" "audio"
"video" "video"

View file

@ -21,6 +21,7 @@
"wheel" # sudo access "wheel" # sudo access
"networkmanager" # network management "networkmanager" # network management
"libvirt" # virtualization management "libvirt" # virtualization management
"incus-admin" # container management
"podman" # container runtime "podman" # container runtime
"docker" # docker compatibility (if needed) "docker" # docker compatibility (if needed)
"media" # shared media access for NFS shares "media" # shared media access for NFS shares

View file

@ -1,37 +1,13 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let
# Fix cowsql build issue with glibc 2.40
cowsql-fixed = pkgs.cowsql.overrideAttrs (oldAttrs: {
patches = (oldAttrs.patches or []) ++ [
(pkgs.writeText "cowsql-float-t-fix.patch" ''
--- a/src/lib/serialize.h
+++ b/src/lib/serialize.h
@@ -37,7 +37,9 @@
#define SERIALIZE_H_
#include <uv.h>
+#ifndef _MATH_H
typedef double float_t;
+#endif
struct serialize;
'')
];
});
incus-fixed = pkgs.incus.override {
cowsql = cowsql-fixed;
};
in
{ {
virtualisation.incus = { virtualisation.incus = {
enable = true; enable = true;
ui.enable = true; ui.enable = true;
package = incus-fixed; package = pkgs.incus-lts; # Use LTS version to avoid cowsql build issues
}; };
environment.systemPackages = [ environment.systemPackages = [
incus-fixed pkgs.incus-lts
pkgs.lxc pkgs.lxc
]; ];

View file

@ -82,7 +82,10 @@
(port (open-pipe* OPEN_READ "/bin/sh" "-c" ssh-cmd)) (port (open-pipe* OPEN_READ "/bin/sh" "-c" ssh-cmd))
(output (get-string-all port)) (output (get-string-all port))
(status (close-pipe port))) (status (close-pipe port)))
(values (zero? status) output))))))) (values (zero? status) output)))
(lambda (key . args)
(log-error "SSH command failed for ~a: ~a ~a" machine-name key args)
(values #f "")))))))))))
;; Copy file to remote machine using scp ;; Copy file to remote machine using scp
(define (copy-file-to-remote machine-name local-path remote-path) (define (copy-file-to-remote machine-name local-path remote-path)