Re: Eradicating PulseAudio

2023-08-23 Thread Robby Zambito


宋文武  writes:

> Hello, you can disable the autospawn for PulseAudio by
> put "autospawn = no" in ~/.config/pulse/client.conf.
>
>
> It was not started by shepherd but autospawn by applications (eg: pulsemixer),
> for reference:
> https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Running/

Thank you for this tip. I thought it was being started by Shepherd
because the process becomes a child of Shepherd after it is auto
started. Adding this line to my configuration does help. PulseAudio no
longer aggressively starts itself if I stop my pipewire-pulse service.

Unfortunately some packages on my system (the primary package that comes
to mind I cannot specifically say, but it comes from a different
channel) depend on PulseAudio, and will manually start it if it is not
running when I start the application.

I am hoping for some way to do something equivalent to masking a package
in Gentoo[1], so I can avoid having PulseAudio installed at all. I
realize something like this might depend on package parameterization[2],
but if there is some hacky way to do this with the current version of
Guix, suggestions would be appreciated!

Thanks,
Robby

Footnotes:
[1]  https://wiki.gentoo.org/wiki/Knowledge_Base:Masking_a_package

[2]  https://guix.gnu.org/blog/2023/parameterized-packages-for-gnu-guix/




Eradicating PulseAudio

2023-08-21 Thread Robby Zambito
Hi,

Please help me eradicate PulseAudio from my system. It causes me nothing
but pain. My most commonly run commands according to my bash history are
pulsemixer followed by pgrep pulseaudio, which I use to debug my audio
issues, and pkill pulseaudio followed by herd restart pipewire which I
use to resolve my audio issues caused by pulseaudio being started by
Shepherd.

I don't need or want PulseAudio. The only reference I have to PulseAudio
in my system or home config is the following: 

(service alsa-service-type
 (alsa-configuration (pulseaudio? #f)))

In my system service configuration, with hopes to disable it
(unsuccessfully). I use %base-services rather than %desktop-services to
avoid the pulseaudio service that the latter includes.

How can I transform every package on my system to remove PulseAudio from
being an input? How can I stop Shepherd from starting PulseAudio against
my will, when there is no pulseaudio service in my home or system
configuration?

FWIW every package on my system is either installed through my system
config.scm or my home config.scm, so I can apply Scheme transformations
to every package easily.

I also see that there is an issue open to add a PipeWire Home
service[1]. I have a very similar service for my own setup that I wrote
myself. I skimmed through it, but I cannot see anything that actually
stops PulseAudio from loading. Does anyone know if this patch will just
resolve my issue?

Many thanks,
Robby

Footnotes:
[1]  https://issues.guix.gnu.org/63863




Using NoiseTorch with Sway and Polkit

2023-07-19 Thread Robby Zambito
Hi Guix,

I am trying to run NoiseTorch on my desktop, which runs swaywm and
pipewire. I added the following configuration to my system:

(setuid-programs
  (append
   (list
(setuid-program (program (file-append noisetorch "/bin/NoiseTorch"
   %setuid-programs))

and rebuilt my system. When I run NoiseTorch from my path (the system),
I get this error:

XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no 
such file or directory
XGB: conn.go:48: Trying connection without authority info...
panic: x protocol authentication refused: Authorization required, but no 
authorization protocol specified


goroutine 1 [running]:
github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular/clipboard.Start()

/tmp/guix-build-noisetorch-0.12.2.drv-0/src/github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular/clipboard/clipboard_x11.go:28
 +0x354
github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular.NewMasterWindowSize(0xc0001b,
 {0x7b04b4, 0xa}, {0x0, 0x}, 0x0)

/tmp/guix-build-noisetorch-0.12.2.drv-0/src/github.com/noisetorch/NoiseTorch/vendor/github.com/aarzilli/nucular/shiny.go:83
 +0x114
main.main()

/tmp/guix-build-noisetorch-0.12.2.drv-0/src/github.com/noisetorch/NoiseTorch/main.go:77
+0x371

When I install NoiseTorch as my user and run it directly I get the following:

robby@lambda ~$ /home/robby/.guix-profile/bin/NoiseTorch
XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no 
such file or directory
XGB: conn.go:48: Trying connection without authority info...
XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no 
such file or directory
XGB: conn.go:48: Trying connection without authority info...
XGB: conn.go:47: Could not get authority info: open /home/robby/.Xauthority: no 
such file or directory
XGB: conn.go:48: Trying connection without authority info...
 AUTHENTICATING FOR org.freedesktop.policykit.exec 
Authentication is needed to run 
`/gnu/store/bpvbbg981p5cmj1qvr0c81czjgp0bq4l-noisetorch-0.12.2/bin/NoiseTorch' 
as the super user
Authenticating as: Robby Zambito (robby)
Password: 
 AUTHENTICATION FAILED 

The GUI will open (unlike the other method), but it will prompt saying
it does not have the "capabilities to function properly", and a button
to grant it the capabilities it needs (requiring root). Clicking the
button will prompt for my password, but entering the correct password
does not work (I have tried dozens of times, I know I'm typing it right)

I found a supposed solution to this for Nix, but this solution yields
the same results for me:
https://github.com/NixOS/nixpkgs/issues/18012#issuecomment-335350903

If anyone has any insight that would be greatly appreciated!

Robby



Re: Getting Guix to shutdown my laptop properly with Sway and no DE

2023-07-09 Thread Robby Zambito
Hi,

I don't have any suggestions for you, I just wish to add that I am also
having the same issue, and I use Sway and Elogind (but no display
manager). I have been dealing with it by hard powering off also, but it
would be nice to have a proper solution :)

Robby



Re: Getting Guix to shutdown my laptop properly with Sway and no DE

2023-07-09 Thread Robby Zambito


dan...@tutanota.com writes:

> Hi Robby, 
> thanks for your response.
>
> Do you mind sharing your config? 
> I never managed on Guix to autologin and automatically start Sway without a 
> display manager.
>
> Daniele

Hi Daniele,

I actually don't have auto login / auto start Sway - I just login with a
TTY, and then I use `herd start sway` with a little guix home service
that I wrote:

(shepherd-service
  (documentation "SwayWM")
  (provision '(sway))
  (requirement '(dbus))
  (respawn? #f)
  (auto-start? #f)
  (start #~(make-forkexec-constructor
(list #$(file-append (specification->package "dbus") 
"/bin/dbus-run-session") "sway")
#:log-file (string-append #$log-dir "/swaywm.log")))
  (stop #~(make-system-destructor
   (string-join (list #$(file-append (specification->package "sway") 
"/bin/swaymsg")
  "exit")

This isn't perfect (I use the system sway binary, but I use swaymsg from
my home profile - which means they can be different package version; and
herd stop sway doesn't work), but it's been good enough for me to not
care to fix.



Re: OBS Studio memory leak

2023-06-13 Thread Robby Zambito


Guillaume Le Vaillant  writes:

> It looks like an issue with the shader cache of mesa.
> After clearing it, I don't see the memory leak anymore.
>
> Could you try doing a "rm -r $HOME/.cache/mesa_shader_cache/*" and see
> if it also solves the issue for you?

This worked for me! Thank you!



Re: OBS Studio memory leak

2023-06-13 Thread Robby Zambito


Hey,

>>
>> Hi,
>>
>> I don't know if its related, but I have a big memory leak issue with
>> vlc. When trying to play a video with it, if the video output module it
>> set to gl or vdpau_display, it consumes all the RAM of the machine in
>> a few seconds (and I have to kill it fast to prevent the machine from
>> hanging). However if I force the video output module to xcb_xv, it works
>> fine.
>>
>> Do you have the same issue with vlc? If yes, it may indicate a bug
>> with video acceleration (VA-API/VDPAU or mesa).
>>
>> PS: My machine's GPU is an AMD Radeon RX 6800 XT.
>>
> Hey
>
> Tried the same thing in VLC and it freezes on GPU accel and starts leaking 
> memory while also becoming hard to kill.
> Maybe this also explains why some mpv GPU accel settings don't work also in 
> the exact same way.
> I have an AMD RX 6900 XT on this machine.
>
> I could probably try this on the laptop with Intel and the unmentionable 
> video devices.

I think we may be on to something here. I have an AMD RX 6650 XT, and
VLC does also start to leak for me.

Guillaume, when you say you forced the video output module to gl,
vdpau_display, or xcb_xv, how did you set that?

Robby



Re: OBS Studio memory leak

2023-06-12 Thread Robby Zambito


Ott Joon  writes:

> Hey there
>
> I have the exact same issue and I think this has to do with
> gstreamer. Some other programs are also affected by this bug. What
> seems to happen is the gst-plugin-scanner starts searching for plugins
> and just doesn't finish and leaks memory a ton. My 128GB of RAM will
> be full in seconds if I launch anything that uses gstreamer. Even
> virt-manager if you have gst-plugin-* packages installed as then the
> gst-plugin-scanner is awakened. I had to remove them or unset
> GST_PLUGIN_SYSTEM_PATH. Unfortunately OBS seems to have this feature
> built in, so it's not something you can remove. This is all I know at
> the moment.
>
> Ott

Hi Ott,

Thanks for the lead. I tried pinning gstreamer and gst-plugins-base to
older versions available in Guix, and removing gst-plugins-base from
being an input to OBS (though I'm not positive this removes it from all
recursive inputs), but I'm still having the issue :(

Here is what I have so far:

(let ((parent (specification->package "obs")))
  (package
   (inherit parent)
   (inputs (modify-inputs (package-inputs parent)
  (replace "gstreamer"
   ((options->transformation '((with-version . 
"gstreamer=1.20.3")))
(specification->package "gstreamer")))
  (replace "gst-plugins-base"
   ((options->transformation '((with-version . 
"gst-plugins-base=1.20.3")))
(specification->package 
"gst-plugins-base")))

Also tried with (remove "gst-plugins-base") instead of the replace.

Robby



Re: Guix home - 'pinning' ?

2023-06-12 Thread Robby Zambito
Hi,

> when using guix-home, is there a way to pin a given package to its 
> current version, so that it stays as it is despite 'guix pull'    
> bringing new commits ?

In your (home-environment (packages ...)) list, you should specify the
package that has the correct version that you want. There are two ways
to do this. You can either create an inferior channel, and specify the
package by looking it up in that channel, or you can apply a
transformation to the package to specify the version.

Using an inferior package will pull the package from a previous version
of Guix - including all of its package inputs. This will pin all of the
transitive dependencies of the package as well. See: info guix Inferiors
for information on how to define an inferior, and how to select a
package from that inferior.

If you want to pin a package to a specific commit, version, branch, etc
of that package, you can use transformations. See: info guix "Defining
Package Variants" for how to use options->transformation, and info guix
"Package Transformation Options" for the available options you can set.

Hope this helps :)

Robby



OBS Studio memory leak

2023-06-11 Thread Robby Zambito
Hi Guixers,

For some reason when I use the obs package I quickly leak memory until
my system runs out completely, and I have to reboot to resolve it. I had
obs-wlrobs, but removing it made no difference. I am able to use the
most recent release through Flatpak / Flathub, but ideally I could use
the Guix package instead.

Is anyone else having this issue? Or could anyone provide insight into
how I could resolve this on my system?

Thanks,
Robby



Re: Adding PolicyKit actions

2023-05-31 Thread Robby Zambito


Robby Zambito  writes:

> ```
> (service polkit-service-type
>(polkit-configuration
> (actions (list
>   (plain-file "org.spice-space.lowlevelusbaccess.policy"
>"
>\"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN\"
>   
> \"http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd\;>
> 
>
>   The Spice Project
>   http://spice-space.org/
>   spice
>
>   
> Low level USB device access
> Privileges are required for low level USB device access (for usb 
> device pass through).
> 
>   yes
>   no
>   yes
> 
>   
>
> ")
> ```

Follow up on this: I am able to evaluate this `service` expression in
`guix repl`. I am also able to use `,lower` and `,build` on the
`plain-file` in the REPL. Building the system with an empty list for the
actions works.

Maybe this is a bug? It seems like this is the correct way to configure
polkit actions from what I can find.



Re: Adding PolicyKit actions

2023-05-29 Thread Robby Zambito
Hi Felix,

> Are you using %desktop-services?

I am not. I only use %base-services instead. %desktop-services also
contains PulseAudio, which conflicts with my usage of PipeWire, so I've
added things from %desktop-services as I've needed them.

Thanks,
Robby



Adding PolicyKit actions

2023-05-29 Thread Robby Zambito
Hello,

The root issue I am trying to solve right now is allowing USB
redirection to virtual machines. I've tracked down a promising solution
here: https://serverfault.com/a/1073230 which involves adding a new
PolicyKit action for low level USB access. Digging into the Guix source
I was able to find the definition of polkit-configuration (the manual
merely mentions that it exists; I may be able to help write more
documentation here if I figure this out :) ) and I'm hitting a wall
trying to figure out what I am doing wrong.

Here is the configuration I have added to my polkit-service in my system
configuration:

```
(service polkit-service-type
 (polkit-configuration
  (actions (list
(plain-file "org.spice-space.lowlevelusbaccess.policy"
 "
http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd\;>


  The Spice Project
  http://spice-space.org/
  spice

  
Low level USB device access
Privileges are required for low level USB device access (for usb 
device pass through).

  yes
  no
  yes

  

")
```

Looking at the code it looks like `polkit-configuration` has an
`actions` field that should be a list of file-like objects, which I
think is what my code should be doing.

However, I get this error when I build my system:

```
Backtrace:
   5 (primitive-load "/gnu/store/avr2qvlgydsvny8dkjl5mvjc0b6?")
In guix/build/union.scm:
192:6  4 (union-of-directories "/gnu/store/dikmqs3qk5x4v5lhz417?" ?)
In srfi/srfi-1.scm:
634:9  3 (for-each # ?)
In guix/build/union.scm:
   194:28  2 (_ "/gnu/store/hvq9rhwkslc9kqhyjaa6mzb61i069jyd-lowleve?")
56:13  1 (files-in-directory "/gnu/store/hvq9rhwkslc9kqhyjaa6mzb?")
In unknown file:
   0 (opendir "/gnu/store/hvq9rhwkslc9kqhyjaa6mzb61i069jyd-l?")

ERROR: In procedure opendir:
In procedure opendir: Not a directory
```

Not very helpful to me :/

Any help would be appreciated!

Thanks,
Robby



Re: Cannot run virt-manager as my user

2023-05-29 Thread Robby Zambito


David Conner  writes:

> I have a similar libvirtd service configuration on my system, but I've
> only used libvirt a handful of times. Do you want access to the user's
> libvert socket?

I have no strong preference towards using a user-specific libvirt socket
versus the system libvirt socket, as I'm running this on my single user
system.

> If you run =libvirtd --help= this tells you where the user session
> socket will be set up.
>
> I tried using =virsh -c qemu:///session=

This worked the same as `virsh -c qemu:///system` for me (as which one
doesn't really matter to me), and it gave me the idea to try using
/session in virt-manager instead. In virt-manager I went to File > Add
Connection..., set the hypervisor to Custom URI... and set the URI to
qemu:///session like you said.

This worked! I'm not sure why I can't use the system one, but this is
good enough for me :). I'm also not actually sure why this works, since
I don't have the socket file shown by `libvirtd --help`...

Oh well :D good enough for me!

Thanks,
Robby



Re: Cannot run virt-manager as my user

2023-05-29 Thread Robby Zambito
Hi,

Ruijie Yu  writes:

> Does it work on a new tty, or if you explicitly run `sg libvirt …`? If
> so, the only thing you need is a new terminal window with you on the
> libvirt group.  If that doesn’t work, try rebooting as well. 

I had rebooted several times before writing this email, however I just
tried `sg libvirt virsh` as my user and that worked... so I tried just
running `virsh` and that also worked. I still run into the same error
when running either `virt-manager` or `sg libvirt virt-manager` from the
terminal though.

Thanks
Robby



Cannot run virt-manager as my user

2023-05-28 Thread Robby Zambito
Hi,

I am trying to set up virt-manager on my system in order to set up some
virtual machines. I added the libvirtd service to my system by adding
the following service to my system configuration:

```
(service libvirt-service-type)
```

and I've added myself to the libvirt group.

I can see the service running when I do:

```
robby@lambda ~$ sudo herd status libvirtd
Status of libvirtd:
  It is running since 10:34:29 PM (5 minutes ago).
  Running value is 256.
  It is enabled.
  Provides (libvirtd).
  Requires ().
  Will be respawned.
```

I can see the libvirt-sock file that I should be able to use:

```
robby@lambda ~$ groups
users libvirt netdev audio video dialout wheel
robby@lambda ~$ ll /var/run/libvirt/libvirt-sock
srwxrwx--- 1 root libvirt 0 May 28 22:34 /var/run/libvirt/libvirt-sock
```

But I cannot use virt-manager or virsh as my user. I see the following
behavior using virsh:

```
robby@lambda ~$ virsh -c qemu:///system
error: failed to connect to the hypervisor
error: internal error: Unable to get system bus connection: Could not connect: 
No such file or directory
robby@lambda ~$ sudo virsh -c qemu:///system
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
   'quit' to quit

virsh #
```

So I can use virsh while running as root - but I should also be able to
use it when running as my user...

When I try to connect using virt-manager, I see the following similar error:

```
Unable to connect to libvirt qemu:///system.

internal error: Unable to get system bus connection: Could not connect: No such 
file or directory

Libvirt URI is: qemu:///system

Traceback (most recent call last):
  File 
"/gnu/store/sa4wwfmvlrry69gyilhb961gpbbamayf-virt-manager-4.1.0/share/virt-manager/virtManager/connection.py",
 line 923, in _do_open
self._backend.open(cb, data)
  File 
"/gnu/store/sa4wwfmvlrry69gyilhb961gpbbamayf-virt-manager-4.1.0/share/virt-manager/virtinst/connection.py",
 line 171, in open
conn = libvirt.openAuth(self._open_uri,
  File 
"/gnu/store/nb6yaafwa44jqfg9s5fbr5nbsa46panm-python-libvirt-8.6.0/lib/python3.10/site-packages/libvirt.py",
 line 147, in openAuth
raise libvirtError('virConnectOpenAuth() failed')
libvirt.libvirtError: internal error: Unable to get system bus
  connection: Could not connect: No such file or directory
```

Since this seems to be an issue relating to dbus, here are the following
services I have running related to that:

At a system level:
```
(service dbus-root-service-type)
(service elogind-service-type)
```

As my user:
```
(service home-dbus-service-type)
```

Maybe there is some conflict between running dbus as my user and as
root?

Any advice for getting virt-manager working would be greatly
appreciated!

Thanks,
Robby



Re: No ethernet service during install

2021-08-01 Thread Robby Zambito
On Sun, Aug 01, 2021 at 05:03:13PM -0400, Leo Famulari wrote:
> That's unfortunate. Can you tell us what card it is? Ethernet (at least 
> gigabit and slower) is usually supported by linux-libre, so I'm curious to 
> know which card is missing support.

lspci says that it's a Broadcom NetXtreme II BCM5709 Gigabit Ethernet
card.



Re: No ethernet service during install

2021-08-01 Thread Robby Zambito
Hello Florian,

Thanks for the reply.

> Maybe (possibly) your ethernet card is not supported by Linux-libre.

It seems like this is the case unfortunately :( I tried doing the
installation from the shell, rather than using the graphical
installation. Running `ip link set  up` gave me an error
that it is missing Free firmware.

> Do you have a USB ethernet adapter with which you can try?

No, unfortunately. It seems like I will need to get creative. Perhaps I
can do some IP over USB or something like that.

Thanks,
Robby



No ethernet service during install

2021-08-01 Thread Robby Zambito
Hello,

I am trying to install GNU Guix on my Dell R710 server, but during the
installation I am running into this error:

> No ethernet service available, please try again.

I've tried rebooting, using both the stable and latest releases, and
using different ethernet ports on the machine. Each time I end up with
the same error.

I've tracked down the error to this file
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/installer/newt/ethernet.scm
(at least I don't see that error anywhere else but that file), but I am
unsure how I can try to debug the issue.

Any suggestions for resolving this would be appreciated!

Thanks,
Robby