From c25ea7c2fce28f732af2a613b18594d5670128cc Mon Sep 17 00:00:00 2001 From: Rohan Barar Date: Sat, 2 Aug 2025 22:41:32 +1000 Subject: [PATCH] integrate libvirtd group support + document in install guide + remove NixOS patch --- .DS_Store | Bin 0 -> 8196 bytes bin/winapps | 5 +++-- docs/libvirt.md | 2 ++ packages/.DS_Store | Bin 0 -> 6148 bytes packages/winapps/.DS_Store | Bin 0 -> 6148 bytes packages/winapps/default.nix | 1 - packages/winapps/winapps.patch | 11 ----------- 7 files changed, 5 insertions(+), 14 deletions(-) create mode 100644 .DS_Store create mode 100644 packages/.DS_Store create mode 100644 packages/winapps/.DS_Store delete mode 100644 packages/winapps/winapps.patch diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d24f42c413b1b4aaac5336577b2667ab26e864d7 GIT binary patch literal 8196 zcmeHM&2AGh5FR%v-82Ov1X3?ZD{-w#soDs{CFF-v2?}Zg2muP&CbUsD>!`aSpsG^N z@D98JSDu7-;RN5Zd=n%MH*aqsLmK1x08mw1x_kVhEEt2n|Pn$=Hvz z)^HMPWPFbqS(pq(n8ZW4%A7<=Ybz}SmVrqIICsxdiw5|Fsr>x``c{9bqJSCls7pc0 z>f3ZHZxjy9yMXWB!0(39+S(5>m&wjwT5uMeyz{nxAV>A66%E63>+m(-HKg>tlk1lE zqT3lY3)d?$h+5sCbEp8_b_XVJUUq}F9F^rTXom`0*BwsI$u$ehM@Plt-4%CzbK`i$ zJ-WBPw&HFSH;#{U&W&5Q@9#Eyem{_()vQREBZV&O`&0P^S7y#1>W6_ZgMGBH^);%{ zQ>s#pn$Qm+`F;m2&vDhDRq9ha$&_r@R)r{4k zUD~EHMr=Uu(ALyZf2Pn&3jK^;DfAXSn(pl!&on-2p4#y7JvQC?|VdP1fTqg2t{NktQYAqBC>+ru|svpS-TJ*}-mU!RH?2KJ2H&%h~o9ByJ{nNX1VMySs+nSfwX3_~%n4&cCD1pa{Er zfb|OLAh{A8Z3$)px8w}-~XTUSz7lk1D1ia7!cWNy;_FF$q(VQG3VMY z>N`{}Y&X_gK_FB*4z1F0=+i$8aqYsCF(sqNTB8N!ufGVm2w91J{;Sxr;?EiQ4Vyp% A(EtDd literal 0 HcmV?d00001 diff --git a/bin/winapps b/bin/winapps index fc90efa..306890b 100755 --- a/bin/winapps +++ b/bin/winapps @@ -301,9 +301,10 @@ function waGetFreeRDPCommand() { function waCheckGroupMembership() { # Identify groups the current user belongs to. # shellcheck disable=SC2155 # Silence warnings regarding masking return values through simultaneous declaration and assignment. - local USER_GROUPS=$(groups "$(whoami)") + local USER_GROUPS=$(id -nG "$(whoami)") - if ! (echo "$USER_GROUPS" | grep -q -E "\blibvirt\b") || ! (echo "$USER_GROUPS" | grep -q -E "\bkvm\b"); then + if ! echo "$USER_GROUPS" | grep -qE '\b(libvirt|libvirtd)\b' || \ + ! echo "$USER_GROUPS" | grep -qE '\bkvm\b'; then waThrowExit "$EC_NOT_IN_GROUP" fi } diff --git a/docs/libvirt.md b/docs/libvirt.md index d32ef37..1b41038 100644 --- a/docs/libvirt.md +++ b/docs/libvirt.md @@ -46,6 +46,8 @@ Together, these components form a powerful and flexible virtualization stack, wi sudo reboot # Reboot the system to ensure the user is added to the relevant groups. ``` + Note: On NixOS, the group name for libvirt is `libvirtd` and not `libvirt`. In addition, user and group management on NixOS is handled through the Nix configuration files and not via traditional tools like `usermod`. Please see "Adding User to a group" on [this NixOS Wiki page](https://wiki.nixos.org/wiki/User_management). + Note: Due to a known bug in `rpm-ostree`, which affects various distributions such as Silverblue, Bazzite, Bluefin, Kinoite, Aurora, UCore, and others, the commands provided earlier may not properly add your user to all required groups. If the `groups $USER` command does not show your user as being part of the necessary groups, you'll need to manually add these groups to `/etc/group` if they are present in `/usr/lib/group`. To resolve this: diff --git a/packages/.DS_Store b/packages/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b6729e2aa9bcd87fa58d4e3c560ae83e03cf6034 GIT binary patch literal 6148 zcmeH~&rjPh6vv;TqbX=o4j}btY1aY;l?ucqE9|fX1IaHN$9)Ap1 z{*wJW+xOW9t#pXnK*&#e{`$vzaq^LD$3!GLWw>H$~qT?bT#Ho(H zj|XXzkDAS2VqvlJVX5j>y%p~?yi`RvibmtS6Aiy}>sYBYeyB(Bx1?Wm{nZ1NjiMy$ z4|PJ)>m%gHNs{$c(NW{9m+Rcn40tuK*7fU?NxQwTnW) zQCB(wj=(H|Mbq^8{QvU&{eL#ewHyIQ;9U_AmBa9`gHN(&>)gljSu5dZa5j!Bjp`H> i_BhrRK8ovbZ5WeWfd*Dfqv(OT9|4WQ6^_7vCGZC{udlNJ literal 0 HcmV?d00001 diff --git a/packages/winapps/.DS_Store b/packages/winapps/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..053967660478598e167eabc9e3bdc9f4ad5074eb GIT binary patch literal 6148 zcmeHKyH3ME5S)b+k`J?H zx3}Z7r|{kZkoj(X2}}Wu>5ABE7@DrD59};5iek^$p+SooUhq7q{yw4H3D$VPBkpm` zf4gZmt7WrUvO-_)iavWc<49SrWVPgMx#O1X7AriRuns3Iqh?42Qh`(;6-WjCu>$Pb zYU7Dx##A5`NCmzW(EmfBE7riy(S98adVJUQk)j&Mc9$TQnAgD0kt;NDD$%JDR}67F z^CjwPVCU#`i0#bh#Lf~o6tUfzFIEnzju}&dRG_cGxlgCs|F7vk-2eNeoTUP(z@Jh; zMvL3UoSziEb?|Z8YYY93{%NeWa)#a^fD>)S7e{qP$E>S?oukp2H##v70;)?|D)1W$ Fd;kKuDZT&z literal 0 HcmV?d00001 diff --git a/packages/winapps/default.nix b/packages/winapps/default.nix index 75b7b64..8a48b25 100644 --- a/packages/winapps/default.nix +++ b/packages/winapps/default.nix @@ -37,7 +37,6 @@ stdenv.mkDerivation rec { ]; patches = [ - ./winapps.patch ./setup.patch ]; diff --git a/packages/winapps/winapps.patch b/packages/winapps/winapps.patch deleted file mode 100644 index 478d0ac..0000000 --- a/packages/winapps/winapps.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/bin/winapps -+++ b/bin/winapps -@@ -295,7 +295,7 @@ function waCheckGroupMembership() { - # shellcheck disable=SC2155 # Silence warnings regarding masking return values through simultaneous declaration and assignment. - local USER_GROUPS=$(groups "$(whoami)") - -- if ! (echo "$USER_GROUPS" | grep -q -E "\blibvirt\b") || ! (echo "$USER_GROUPS" | grep -q -E "\bkvm\b"); then -+ if ! (echo "$USER_GROUPS" | grep -q -E "\blibvirtd\b") || ! (echo "$USER_GROUPS" | grep -q -E "\bkvm\b"); then - waThrowExit "$EC_NOT_IN_GROUP" - fi - }