IRC channel logs


back to list of logs

<nckx>The boot flag is an old BIOS thing, I doubt any UEFI firmware will care, but it has 0 drawbacks so: yes.
<alextee[m]>ah okay then
<nckx>In absence of GPT, some UEFI implementations search all FAT partitions for /EFI/boot.efi or a similar hard-coded name, or maybe one out there uses the boot flag as a hint.
<nckx>The hard-coded name is why I'm hesitant to ever recommend MBR on UEFI systems: Guix will use a different one.
<nckx>But hey, you'll probably be lucky & fine 🙂 Good night.
<alextee[m]>thanks, let's hope it works now. gn
<leoprikler>could we make it possible to install services in user profiles?
<str1ngs>leoprikler: do you want to run services as the user?
<mange>leoprikler: In theory yes, but it's not straightforward. I run my own instance of shepherd which starts my user-level services.
<leoprikler>I know, that I can write my shepherd/init.scm, but I'd like to do that with a guix manifest
<str1ngs>shepherd supports user services in ~/.config/shepherd/init.scm though I'm not sure you can use guix services this way.
<mange>Part of the issue is that Guix services don't correspond to shepherd services, so there's a mismatch when talking at the system level and at the user level.
<leoprikler>you mean services that only install files, dbus services, etc?
<leoprikler>That might be a bit more complicated indeed
<leoprikler>Files would need to be installed in the right config dir (~/.config or ~/.local/share), depending on application
<leoprikler>not sure what dbus service does, but I think they're registered by adding a file to some location
<bendersteed>hello people
<bendersteed>I'm working on a racket build system in guix, but I'm kinda new to this so I have a silly question. Where do we add a file for packages to be built by make? I don't see them in
<leoprikler>bendersteed: you probably want to add your source files to the MODULES variable
<bendersteed>i did, but I don't see any reference to gnu packages foo modules
<bendersteed>so I thought there was some other way to include them
<leoprikler>ahh, those are in gnu/
<bendersteed>perfect, thanks!
<mange>leoprikler: There are some other things that system services do that might not make sense in a user service context. Extending udev, adding users/groups, etc. It's not a simple thing to just say "run this as a user service" unless you're happy to spin up a container where you instantiate those services. That feels like a bad solution to the problem.
<alextee[m]>installation succeeded!
<leoprikler>mange: sure, but they don't have to do that. Of course, one would have to programmatically filter such service extensions, but even if we only allowed shepherd-service-type and a few others to be extended by user services, there'd be the benefit of managing all the configuration in the manifest.scm
<leoprikler>(rather than having to manually keep track of shepherd/init.scm)
<alextee[m]>when i run the system reconfigure command, i get a warning that "guix pull was never run", should i ignore this?
<alextee[m]>(i just did guix pull and it finished successfully)
<leoprikler>you can
<leoprikler>the reconfigure command checks for root's guix, which is not actually needed
<alextee[m]>oh so i should do sudo -i guix pull?
<mange>alextee[m]: If you run "sudo guix reconfigure ..." without having run "sudo guix pull" then it will perform the reconfigure with an out of date guix. You can use "sudo -E guix reconfigure" to use your user's guix version instead (which is up to date after "guix pull").
<leoprikler>"sudo guix pull" should suffice
<leoprikler>mange: is -E really a requirement?
<leoprikler>I have so far not once used a wrong guix by accident (even without -E)
<alextee[m]>er, what you both are saying is in conflict with what the manual says:
<alextee[m]>Note: Note that sudo guix runs your user’s guix command and not root’s, because sudo leaves PATH unchanged. To explicitly run root’s guix, type sudo -i guix …
<leoprikler>sudo guix pull updates /root/.config/guix
<leoprikler>but sudo guix system ... uses your ~/.config/guix
<alextee[m]>oh, interesting
<leoprikler>(at least as far as I'm aware)
<alextee[m]>does the user guix "inherit" from root?
<alextee[m]>as in, whatever i install or do in the root's guix will apply to all users as well?
<leoprikler>no, they are completely separate
<mange>leoprikler: I don't think that's true. "sudo guix ..." should use/update the same guix. I would be *very* surprised if what you said is true.
<mange>If you run "sudo bash" and then echo $HOME in that shell, what does it print?
<leoprikler>does guix pull update itself or does it update $HOME/.guix?
<mange>I'm on a Ubuntu machine at the moment, which from my understanding has different sudo behaviour for this.
<leoprikler>Running zsh on guix it prints /root
<mange>So then "sudo guix ..." will use /root/.config/guix/current/bin/guix as its guix.
<leoprikler>bash does the same
<mange>Both for pull and for reconfigure.
<leoprikler>does it really?
<mange>Whereas "sudo -E" will let through $HOME.
<reepca>in guix/scripts/system.scm, MAYBE-SUGGEST-RUNNING-GUIX-PULL uses config-directory, which is defined using XDG_CONFIG_HOME, falling back to HOME if that's not present.
<leoprikler>"sudo which guix" gives me /home/$user/.config/guix/current/bin/guix
<leoprikler>which guix inside sudo bash too
<mange>Hmm, okay. That sounds like I'm wrong then.
<alextee[m]>sudo which guix gives me my user's guix
<reepca>basically, "sudo guix system" will work fine. "sudo -E guix system" will work the same, but prevent the frivolous warning.
<leoprikler>The check runs on the (wrong) assumption, that which guix == $XDG_CONFIG_HOME/guix/current/bin/guix.
<alextee[m]>ok, thanks. that warning is a bit confusing
<reepca>alextee[m]: aye, it's actually really hard to get it right because different systems use different sudo behavior. We had (may still have) a similar confusing warning about "your guix is over a week old, consider running guix pull, etc etc" whenever guix was run with sudo with the same root cause
<reepca>heh, "root" cause... unintentional pun
<leoprikler>I must admit, you got me to chuckle.
<leoprikler>how does guix know its age?
***janas is now known as rsmith
***rsmith is now known as robsmith
<reepca>mtime of the symlink in /var/guix/profiles or something like that is what it uses now
<alextee[m]>does guix system reconfigure actually re-download everything the system needs? i see it downloading the same things it did during the installation
<alextee[m]>i thought these were in the store
<wdkrnls>Hi Guix, can anyone point to some examples of how to write a shepherd service? All the examples in the official documentation are incomplete.
<wdkrnls>I'm looking to reproduce Emacs as a daemon:
<joshuaBPMan>wdkrnls: YES!!!!
<joshuaBPMan>let me find you the relevant manual's a bit terse to be fair.
<wdkrnls>Are you thinking of this?:
<wdkrnls>I'm a little confused about the guix-shepherd part.
<wdkrnls>I'm pretty sure I'm aiming for something like this:
<wdkrnls> (make <service>
<wdkrnls> #:provides '(emacs)
<wdkrnls> #:requires '()
<wdkrnls> #:start (system "emacs --daemon")
<wdkrnls> #:stop (system "emacsclient --eval '(kill-emacs)'")
<wdkrnls> #:actions (make-actions
<wdkrnls> (restart (system "emacs --daemon")))))
<wdkrnls>The manual got me excited thinking there was a "doc/examples" directory, so I looked in the "/gnu/store" but found nothing there.
<wdkrnls>Just the GNU license file.
<wdkrnls>I can't seem to find where "make" is coming from either. I was thinking it was some kind of generic constuctor for service objects, but guile doesn't seem to know about it.
<wdkrnls>I tried (apropos "make") but didn't see any promising results.
<alextee[m]>how do i change my shell in guix?
<alextee[m]>also where is /etc/security/limits.conf?
<str1ngs>wdkrnls: make is part of the (oop goops) modules. it constructs a class
<str1ngs>wdkrnls: see
<wdkrnls>Thanks, str1ngs!
<str1ngs>wdkrnls: here's a complete working init.smc
<str1ngs>err init.scm
<str1ngs>it's not all guix related
<joshuaBPMan>wdkrnls: I was thinking that about the manual.
<joshuaBPMan>Your service is pretty great if you want your service for a user started shepherd.
<joshuaBPMan>But you could also make a system service I believe as a user. You'd have to take a look at the source code for some examples...
<joshuaBPMan>guix/gnu/services/ anything in there.
<alextee[m]>hmm guix keeps hijacking /etc/passwd and changing the shell back to bash..
<alextee[m]>oh you're supposed to put it in the system conf
<alextee[m]>so basically guix takes control of everything
***pc is now known as Guest91288
<alextee[m]>gnome doesnt work when i set my shell to (file-append zsh "/bin/zsh"), is that not the correct way to set the shell?
<alextee[m]>it works in ctrl+alt+f2
<mange>Yeah, that looks like how you're meant to set your shell. When you say that Gnome doesn't work, what is it doing?
<alextee[m]>bounces me back to the login screen
<alextee[m]>xfce works though
<alextee[m]>there are probably some gnome logs somewhere im too dumb to find
<alextee[m]>like, i enter my password and press enter, and the screen flashes really quickly and it gets back to the login screen
<mange>I vaguely remember hearing someone mentioning that happening to them a while ago, but I can't find it or any of the details.
<alextee[m]>well, i'll go with xfce for now and move on i guess. my next problem is trying to set up audio (jack server) :-)
<poet>Hello, is celestia no longer available?
<poet>guix package: error: celestia: unknown package
<alextee[m]>is it okay to tinker with things in my .guix-profile? i am specifically looking for a way to change /etc/security/limits.conf
<alextee[m]>or what is the proper way to edit that? do i need to make the edits in the config.scm file instead?
<mange>poet: It seems to still exist for me. What version of Guix are you on?
<poet>mange: guix (GNU Guix) 1.0.1
<mange>alextee[m]: In the manual ("(guix) Base Services") there's a service called pam-limits-service which looks like it creates that file.
<brendyyn>alextee[m]: its not ok
<mange>poet: If you run "guix pull" you should get an updated Guix along with its package lists. Celestia was added in June, which was after the May release of 1.0.1.
<alextee[m]>mange: brendyyn thanks! ill try setting the service
<poet>mange: Okay, I'll give that a try. Thank you for your help. =)
<mange>Let me know how you go!
<poet>mange: I did 'guix pull' and got "nothing to be done." Then I did 'guix package -i celestia' and got:
<poet>guix package: error: celestia: unknown package
<mange>Can you run "which guix" for me?
<mange>Can you try running "hash guix", then "which guix" again?
<poet>Same: /usr/local/bin/guix
<poet>I just installed Stellarium and gnuastro, and those worked just fine, for whatever it's worth.
<mange>Okay, well, it should be ~/.config/guix/current/bin/guix. :P Can you try running "source ~/.config/guix/current/etc/profile", then "which guix" again?
<mange>Also, are you on a foreign distro?
<poet>Yes, Debian 10
<poet>'which guix' now gives:
<mange>Okay, that's good! That's just because we didn't set the GUIX_PROFILE environment variable before sourcing it, which is fine for now.
<mange>You should not be able to install celestia.
<reepca>see section 4.6 Invoking 'guix pull', especially where it says "The result of running 'guix pull' is a "profile" available under '~/.config/guix/current' containing the latest Guix. Thus, make sure to add it to the beginning of your search path..."
<poet>Oh, okay. Is that an oversite on my behalf? I thought I followed the install instructions verbatim...
<reepca>we should probably have this information closer to the install instructions
<mange>Thanks reepca, I was just looking for that. We should really add that to the installation instructions, rather than having it a few sections later.
*reepca thinks most of us are spoiled by guix system
<mange>Also interesting that it just specifies those two environment variables (PATH and INFOPATH), and not sourcing the /etc/profile file within the profile. I'm pretty sure the Guix system only sets the environment variables if it can't find the profile file.
<mange>poet: I don't think anyone can blame you for missing that. The documentation wasn't at all clear. :)
<poet>Okay, fair enough. =)
<poet>mange: Okay, celestia is installing... but I've got a new warning: "guile: warning: failed to install locale"
<alextee[m]>sweet, the pam service generated the limits.conf file
<mange>poet: That's not a serious warning. It's probably because of mismatches in glibc versions, which is probably because the new version of Guix is using a more recent version.
<alextee[m]>i wonder, are not supposed to install programs normally under / ? for anything you install from source, you should be making packages and installing the packages instead?
<alextee[m]>are you*
<poet>mange: Okay. Can I make it go away though?
<poet>mange: Celestia is installed. =)
<reepca>See section 2.6.1 of the manual. The short version is "guix install glibc-locales".
<mange>Also, I've just checked and the instructions in section 4.6 about guix pull are actually better than my "source .../etc/profile". You should follow the manual rather than what I say. :P
<poet>guix install glibc-locales
<poet>whoops wrong prompt
<reepca>bash: whoops: command not found
<poet>reepca: Lol!
<brendyyn>uh oh im getting cannot link .... no space left on device ;(
<poet>mange and reepca: Everything seems to be working now. Thank you for your help. I genuinely appreciate it. =)
<mange>brendyyn: guix gc?
<brendyyn>mange: probably that would fix it but i have plenty of space. i guess its this inode thing ;/
<brendyyn>actually there are plenty of free inodes
<alextee[m]>i added a (service alsa-service-type) to my services and i get an error "cannot build derivation" for ...system.drv "dependencies couldn't be built"
<alextee[m]>is there a way to troubleshoot this?
<reepca>brendyyn: where are you getting that error message from? I know there's a limit to how many links a single inode can have, but in that case the daemon is supposed to just not deduplicate that particular file.
<brendyyn>reepca: I ran guix weather
<reepca>alextee[m]: most likely a service of alsa-service-type is already in %desktop-services (or %base-services, whichever you're using). You could check the definition in ~/.config/guix/current/share/guile/site/2.2/gnu/services/base.scm or ~/.config/guix/current/share/guile/site/2.2/gnu/services/desktop.scm to make sure.
<mange>If you want to remove a service from the default service lists, you can use "remove". There's an example in the manual a at "(guix) Using the Configuration System".
<alextee[m]>reepca: oh alsa-service-type is in the desktop services, thanks. perhaps the error message could be improved to say something like you included this service twice
<brendyyn>when computer A can offload to computer B, does that mean that A has a backdoor in to B? i.e, full remote access?
<mange>brendyyn: I think A only needs access to the Guix Daemon RPC calls, which aren't full remote access. They can run arbitrary code in an isolated build environment (by sending a derivation to be evaluated), but not necessarily on the host itself.
<mange>There's a pretty high chance I'm wrong about that, though. :)
<alextee[m]>it seems that pulseaudio isn't running on startup. shouldn't it be running by default? do i need to add it somewhere (services?)?
<alextee[m]>running "pulseaudio" on the terminal seems to start it
<alextee[m]>but since the alsa service is supposed to auto route to pulse i would expect it to start pulse by default
<alextee[m]>i think i need to define a service for it
<reepca>alextee[m]: I'm not familiar with how pulseaudio and alsa do their stuff, but have you tried running audio and it didn't work?
<alextee[m]>what do you mean by "running audio"?
<mange>Yeah, I had the same question. I have a vague feeling pulseaudio starts on-demand, or something.
<reepca>well I mean running some program you expect to make sound - aplay or something
<alextee[m]>reepca: no pulseaudio is turned off
<alextee[m]>i did some modifications to it though through ~/.pulse/
<alextee[m]>it works when i start pulseaudio manually
<reepca>I don't have anything special with alsa or pulseaudio in my config and it works okay, though I vaguely recall having to set something in my environment...
<mange>The fact that there isn't a pulseaudio-service-type makes me think that something else must start it, and that might only happen when you actually try to play some sound.
<bdju>pulso starts when something tries to use it, IIRC
<bdju>you can kill it and then open pavucontrol and it should start
<bdju>this is also important to know because if the first thing to use pulse on your system is root, it screws it up for your user. I had some issues with that in the past
<bdju>I think while trying to get mpd to run as a service. in the end I just start mpd in my window manager config
<alextee[m]>well, i need to run pulse and then start jack and route pulse to jack on startup, so i'd need to make a service anyway
<bdju>there's probably a way to do it right, I just had issues. like if you can tell the service to run it as your user or something.
<alextee[m]>thanks bdju , i'll keep that in mind
<bdju>no problem
<reepca>anyone have news on if I can remove "export ALSA_PLUGIN_DIR=$HOME/.guix-profile/lib/alsa-lib" from my ~/.bashrc yet? I remember it was needed at some point but I don't see any reference to it in the packages now
<mange>alextee[m]: Isn't that a user-level pulse setting, not a root one? reckons the configuration goes in ~/.pulse/ and ~/.pulse/daemon.conf, which are both user-level. No need for a service. :)
<alextee[m]>mange: yes i already did that. pulse wouldnt work in my use case without that ~/.pulse/
<alextee[m]>oh i missed the daemon
<alextee[m]>maybe that's what makes it start
<alextee[m]>but i want to make jack run on startup anyway, i need a service for that i think
<mange>What do you mean by "what makes it start"? Pulseaudio starts when something tries to use it. So if you start mpd, for instance, it should also start pulseaudio.
<mange>Starting jack on startup will need a service.
<alextee[m]>on my system it doesn't start when i try to play something (with mpv or something in the browser) and my volume control doesn't work
<alextee[m]>it only seems to start when i manually start it
<alextee[m]>oh actually i don't need a service. i can just add a .desktop entry in ~/.config/autostart
<alextee[m]>great, now my system is set up for pro audio! although i see a lot of the programs i am used to missing from the repositories, hopefully i can help with their packaging
<peanutbutterandc>Can someone please help me figure out why this package definition: is giving me qt is an unbound variable error despite it appearing to be rightly used (with the modules imported)?
<efraim>peanutbutterandc: qt is deprecated, you'll have to use qtbase and then add the other qt modules you need
<peanutbutterandc>efraim, How would I do that, please?
<efraim>in inputs I'd change 'qt' to 'qtbase' and then try to build it. if it says something like "error! cannot find qtsvg" then add qtsvg to the inputs also
<peanutbutterandc>efraim, It worked (so far). Thank you. :)
<peanutbutterandc>Another question: Can anyone please recommend me a better way to resolve this issue: for this package: please? (or perhaps make a PR to fix it?)
<efraim>I think I'd go for 'wrap-program' instead of the substitutions. I'm not sure of a good way to search the repo for one that uses wrap-program and the trivial-build-system though
<efraim>but you'd have to set the PATH to include the /bin directory of the inputs and then use that to wrap the script
<efraim> this one is probably close enough to get started
*efraim gets back to working
<peanutbutterandc>efraim, Whoa. That looks neat. Thank you very much. I do have a few questions but seeing that you're busy I'll try to poke my way through.
<raghavgururajan>Hello Guix!
<efraim>peanutbutterandc: I can try to answer here and there. dehydrated in gnu/packages/tls also looks useful
<peanutbutterandc>efraim, If only I could find a documentation for it. Thank you nevertheless. :)
<reepca>Finally got a working power supply for my laptop again, "guix pull" has been stuck on "Updating channel 'guix' from Git repository at ''..." for about 20 minutes
<efraim>I find it can clone slowly if it's empty
<efraim>s/empty/a fresh clone/
<reepca>... on a somewhat unrelated note, what are "safe" temperatures for power bricks? This one is hitting 170 F...
<efraim>I'm not sure, but that sounds a little hot
<efraim>is it too hot to hold comfortably in your had? That's the closest I have to safe temperatures
<alextee[m]>how can i change my gpg pinentry program? it seems that my ~/.gnupg config is ignored
<alextee[m]>gpgconf shows me a bunch of stuff from /gnu/store
<alextee[m]>(i am trying to sign commits and gpg -ab a file but i get an error saying "gpg: signing failed: No pinentry"
<alextee[m]>i have pinentry-tty and pinentry-gnome3
<efraim>pinentry-program /home/<your-name>/.guix-profile/bin/pinentry in your ~/.gnupg/gpg-agent.conf
<alextee[m]>i still get the same error, hmm
<efraim>maybe you need to restart gpg-agent
<efraim>and do you have a pinentry binary at that location?
<alextee[m]>i just did a reboot
<alextee[m]>yes it says "OK Pleased to meet you"
<alextee[m]>oh it worked
<alextee[m]>gpgconf --kill gpg-agent
<alextee[m]>this did it, thanks
<reepca>efraim: aye, too hot to hold without pain.
<efraim>reepca: is it drawing lots of power to charge your laptop? ie charging and compiling at the same time?
<roptat>hi guix!
<efraim>do you have something you can use to dissipate the heat?
<reepca>the battery's mostly-charged now, though, and between that and pointing my desk fan at it it's down to 130 F now (~52 C)
<efraim>years ago I used my parents' marble countertop, that was cold even in the summer
<efraim>~50⁰C should be good
<reepca>scary part is that it wasn't compiling at the time - just downloading from savannah (which apparently is limited to about 50KiB/s right now, yikes). Makes me wonder what would have happened if I had it compiling, charging from empty, on my bed, without the fan pointed at it...
<g_bor[m]>hello guix!
<g_bor[m]>The guile 2.2.6 test suite on core-updates consistently fails on me. Could this be related to the low spec of the machine?
<efraim>i can test it on bayfront
<efraim>but it could be
<g_bor[m]>I suspect that the web-server is not spun up in time, and that's what makes the first three tests fail with connection refused.
<g_bor[m]>It is a single core 2G ram VM.
<g_bor[m]>efraim: thanks
<civodul>Hello Guix!
<g_bor[m]>civodul: heloo!
<g_bor[m]>efraim: I tuned this wm a bit, added one more core and gave 8G ram to it...
<Franciman>hello guix
<MarcelineVQ>Franciman: www
<Franciman>MarcelineVQ, !
<efraim>yay for needing to read python sources to figure out CDLL(find_library("pam"))
<fishinthecalcula>Hi Guix! I recentely made a big mistake: I'm dualbooting Debian and the Guix System, one fine day I wasn't paying attention to the apt-get logtrace and it "update-grub"ed under me and now I'm locked out the Guix System. I mounted Guix rootfs to see where the current system is stored in the store and given that I have the store in a separate partition from Guix's rootfs, I tried without luck to handcraft a menuentry for
<fishinthecalcula>debian's grub like this but grub doesn't find the linux image.
<fishinthecalcula>Do you have any idea why might that be?
<fishinthecalcula>Or do you know of some way to mount both Guix rootfs and the store inside a menu entry?
<roptat>from inside the rootfs, you could try to run guix system reconfigure, that would reinstall guix's grub
<roptat>hopefully without breaking everything :p
<roptat>I think grub is run from a derivation, so another possibility is to find that derivation and re-run it
<fishinthecalcula>> from inside the rootfs, you could try to run guix system reconfigure, that would reinstall guix's grub
<fishinthecalcula>Do you mean using the guix symlink in my profile?
<fishinthecalcula>Should I "su $myotheruser" or something? Or is the reconfigure process independent from the user who launches it?
<fishinthecalcula>Ok even better (i hope) i found the grub.cfg in the store I'll try merging it with the one produced by debian
<peanutbutterandc>Hey there, can anyone please help me understand the errors thrown while building this package: ? Logs: CMake-Log:
<reepca>peanutbutterandc: from what I can tell they have a somewhat unusual build system for that project, as instead of the usual top-level invocation of cmake, they want you to run it in one of the two given subdirectories ("slowmoVideo" or "V3D"). So you'll need to replace the cmake-build-system's invocation of cmake (which currently passes "../source") with one that passes "../source/slowmoVideo". Alternatively, you could add a phase after
<reepca>'unpack which chdir's into slowmoVideo (source -> source/slowmoVideo) and assume that there's no existing directory named "build" in source, which is probably a safe assumption.
<zimoun>civodul: Hi! I have seen your comment on SWH.
<reepca>tl;dr version: (modify-phases %standard-phases (add-after 'unpack 'select-subproject (lambda _ (chdir "slowmoVideo"))))
<zimoun>Does SWH not require metadata about packages?
<peanutbutterandc>reepca, Whoa. I don't really even understand that code. Where can I read up about these (add-after) and all these procedures? I don't remember seeing the packaging section in the reference manual having all this info.....
<peanutbutterandc>reepca, Thank you, BTW. Also, where would I add this, please?
<peanutbutterandc>I am a guix/guile n00b
<brendyyn>peanutbutterandc: its a part of modify-phases
<brendyyn>peanutbutterandc: there is basically a list of phases that do things like configure, make, make install, and these things like add-after let you insert new phases in excactly where they need to be
<peanutbutterandc>brendyyn, Ah. I see. That makes sense.
<peanutbutterandc>That would probably mean right after (build-system) I presume?
<reepca>huh, C-s'ing through the manual I only see one mention of modify-phases and it doesn't seem to give full documentation of it.
<brendyyn>peanutbutterandc: after 'unpack
<brendyyn>its creating the phase 'select-subproject
<reepca>peanutbutterandc: actually modify-phases returns a new list of phases, so you put the whole modify-phases form after #:phases in the package's arguments field.
<brendyyn>and it's a procedure that simply changes the current directory, and then moves on to the next direttory
<reepca>like this: (package ... (build-system cmake-build-system) ... (arguments `(#:phases (modify-phases %standard-phases ...))))
<roptat>brendyyn, if you look at the sources for guix, you'll find tons of examples, searching for "modify-phases" :)
<roptat>I meant peanutbutterandc of course ^^'
<peanutbutterandc>Thank you everyone for your help. I am editing the .scm file right now. I am very grateful. One more question: If you were teaching me to fish instead of handing me a fish, what would you recommend a n00b like me go through - step-by-step - to be as proficient as yourselves in guix?
<peanutbutterandc>It doesn't seem trying to go through the reference manual is going to teach me basically everything.
<reepca>get acquainted with grep -R (or M-x rgrep if you use emacs). Seriously, it's super useful.
<roptat>tbh I started contributing to guix when I didn't even know about functional programming. What helped me a lot was finding examples in the existing source base and asking questions :)
<peanutbutterandc>reepca, I do use it already. But just don't have a clue as to what to search for with grep -R
<peanutbutterandc>roptat, Like the way I am doing right now? o.O
<roptat>right, I wanted to package a few things I was missing. I already had some experience with packaging though, so I knew what I wanted guix to do exactly
<reepca>in this case, if I wasn't sure what modify-phases did, I'd grep through the entire guix source tree looking for it. I'd also probably search for the regexp "define.*modify-phases", which isn't technically guaranteed to get you the definition, but very likely. I'd read whatever comments and documentation were provided.
<roptat>also I found that having the "all in one page" web version of the manual (for guix and guile) was a lot more useful than the info reader for these manuals
<peanutbutterandc>reepca roptat Hmmm... I see...
<roptat>although it freezes the browser for a little while when loading...
<roptat>although these questions about packaging could be answered in the cookbook now
<roptat>we only have a basic packaging tutorial, but we could cover more parts of the packaging workflow
<peanutbutterandc>roptat, reepca - Any other books that you'd recommend to someone who also happens to be a guile n00b?
<roptat>I only learned by reading a short tutorial on the very basics, then reading the guile manual and guix source code
<roptat>tbh I don't feel very confident about what I write in guile ^^'
<reepca>I can't really speak from experience, since I took the easy road of "interested in lisp for several years before doing anything with guix", and I started with common lisp. An understanding of the simple evaluation rules and the reference manual seems to me to be all you really need though.
<reepca>(and the willingness to dig through code to learn - by example or definition - what it does)
<peanutbutterandc>reepca, roptat I see. Thank you for your guidance. :)
<peanutbutterandc>I got the following error, however: case, if I wasn't sure what modify-phases did, I'd grep through the entire guix source tree looking for it. I'd also probably search for the regexp "define.*modify-phases", which isn't technically guaranteed to get you
<peanutbutterandc>There. Sorry.
<roptat>it says it's not in a directory where "slowmoVideo" exists
<brendyyn>peanutbutterandc: id recommend studying the guix source code. for example id recommend starting by trying to understand guix packaing in depth. for example what is `package'? what does it output, and how does it magically result in a program being compiled. youll want to know what a record-type is and which things are one, which things are just lists etc
<peanutbutterandc>roptat, That probably means I first have to cd through to where it is building. How would I do that? o.O
<brendyyn>learn by packaging some programs your interesting in and getting them working
<roptat>peanutbutterandc, I'd look at the directory structure in /tmp/guix-build-slowmovideo-latest-git.drv-1
<brendyyn>then open up a related module in the guix source code and go through it trying to understand it. youll come along things like `cut', which you can read about in the releveant SRFI. i find this a nice way to learn
<peanutbutterandc>brendyyn, Hmm... I see, sir. I've been trying to do just that (but it isn't as intensive. Here are a few fruits of my labor (really glad about packaging chordpro, though - I understand basically all of it):
<roptat>the unpack should leave you in the first subdirectory of the tarball it decompresses, or in a "source" directory if it comes from a version control system
<reepca>cloned the source, it's in the src subdirectory
<brendyyn>you can study some book like the little schemer, but they teach more fundamental things that are quite different from what is used in most lines of guix code
<reepca>(chdir "slowmoVideo") -> (chdir "src/slowmoVideo")
<peanutbutterandc>reepca, Thank you very much. I feel like a baby being spoon-fed. :)
<peanutbutterandc>brendyyn, So you'd recommend that instead of reading through books, I learn by poking around, reading code/comments, etc., am I correct? I should probably follow that then. I am probably wasting too much time feeling guilty about not completing the pdfs.
<brendyyn>peanutbutterandc: i think the best way to learn is to find a goal youd like to achieve and begin working towards it. maybe you could dive in to some big task like getting KDE running on guix.
<g_bor[m]>should be set to 2
*g_bor[m] sent a long message: < >
<g_bor[m]>also this from
<g_bor[m]>and this:
<peanutbutterandc>brendyyn, I see. I would like to work on proper desktop integration on foreign distros though. for eg: GUI apps don't show up in menus with guix, however flatpak ones do. Perhaps I should take a stab at that someday...
<peanutbutterandc>reepca, Sorry to bother you again but I'm getting this error: (and I have no experience with Cmake, C and family, either, to be honest)
<reepca>Hm. That top-level CMakeLists.txt *really* is outdated. I should probably just read the instructions in the readme...
<peanutbutterandc>It says something like mkdir build and the cd build and cmake ../
<peanutbutterandc>I think
<reepca>ah. Okay, so the configure step of cmake-build-system takes care of making the build directory and entering it, but it needs to be initially in the source directory (which in this case is src). So, hopefully one last time, (chdir "src/slowmoVideo") -> (chdir "src")
<brendyyn>peanutbutterandc: thats rather tricky. one issue is with fontconfig which hardcodes a path to find fonts. guix programs will not look at the host systems path, so all fonts have to be installed via guix. maybe you could figure out how to patch it so it works automatically for guix-on-foreign-distro
<peanutbutterandc>reepca, It works thank you. I probably need qt5script module thingy. Another error
<peanutbutterandc>brendyyn, Haha I feel like a high school kid in a meeting with NASA rocket scientists. :D But yes, I would very much like to be able to contribute. I hope to get everyone's guidance here.
<peanutbutterandc>This is the current error: Any ideas please? guix search didn't result in anything for that
<brendyyn>git log|ag Brendan|wc -l => 79.
<peanutbutterandc>I need to go and attend some chores (just a hobbyist here) and will be back later...
<peanutbutterandc>Thank you for all the help :)
<brendyyn>ive made 79 patches so far ;) just a small time contributor so far
<reepca>qtscript looks like what it wants.
<peanutbutterandc>reepca, Silly me. I was looking for qt5script. *sigh* [chores have been postponed for now :D ]
<peanutbutterandc>brendyyn, That's still a lot!
<civodul>hi zimoun!
<civodul>zimoun: i don't think SWH needs info about packages, but we'll see
<g_bor[m]>efraim: this wa the guile test suite passsed, so 8G ram and two cores works fine
<g_bor[m]>while 1 core and 2G ram not.
<g_bor[m]>I still believe it is a bug in the testsuite.
<g_bor[m]>Should I report it upstream?
<civodul>g_bor[m]: thanks for the RAID things! could you reply to the bug report?
<brendyyn>peanutbutterandc: i was working on distro integration until i ended up switching to Guix System. Guix's nature makes it so it always wants to swallow up your entire system, and trying keep it as a hybrid system will also be inadequate.
<g_bor[m]>civodul: I did that, but it accidentally went to bug-guix.
<peanutbutterandc>brendyyn, I see. Still, it seems that I could supply a few of my friends with the latest (or a certain) version of some of the softwares we use (and they're only comfortable with Linux Mint). So...
<brendyyn>yeah its a supported use case
<peanutbutterandc>brendyyn, I'm talking about TuxGuitar, to be honest. Which is awesome. Also on flatpak (but guix is cooler). But the guix version didn't give any sound the last time I checked (on a foreign distro)
<peanutbutterandc>Here is the newest error I'm encountering:
<peanutbutterandc>What is the syntax for (arguments)?
<peanutbutterandc>I meant that's how it looks and the error is: "invalid field specifier"
<peanutbutterandc>I'm probably messing up the syntax
<reepca>ah, yeah, so field specifiers take a single value. In this case, that single value is a list of keyword-value pairs. So move the #:tests? #f into the same list as #:phases (before #:phases or after the (modify-phases ...) form, but not in between)
<reepca>it should end up looking like (arguments `(#:tests? #f #:phases (modify-phases ...)))
<peanutbutterandc>reepca, I see. Thank you it appears to be working now. :)
<g_bor[m]>civodul: ok, it seems it enden up the right place after all
<nckx>Debbugs can be remarkably clever sometimes.
<leoprikler>how clever?
<nckx>leoprikler: Not open a new bug when you send mail to nnn@ and bug-guix@ by accident.
<nckx>Probably some other anti-oopise features.
<leoprikler>ahh, I saw that too
<leoprikler>that probably uses the in-reply-to header to find the right bug
<peanutbutterandc>reepca, It works! However, while running, the program `slowmoUI` wants the location of `ffmpeg`. Is it possible to have it point to /gnu/store/...../ffmpeg and /gnu/store/..../anotherthing by default or so? Here is the file:
<peanutbutterandc>I just realized that despite having ffmpeg as the (input) for a package definition, guix install-ing said package does not actually install ffmpeg in my profile... hun...
<leoprikler>and it shouldn't
<leoprikler>the ffmpeg command should be rewritten to /gnu/store/.../bin/ffmpeg
<roptat>civodul, any more feedback on
<roptat>I'd like to push, but I want to make sure I understood you correctly :)
<fps>the guix documentation for the mcron service points to
<fps>which is 404
<roptat>peanutbutterandc, there's probably a call to ffmpeg in the source, something like exec("ffmpeg") or system("ffmpeg") (if that's a C program), you should rewrite the ffmpeg using a new phase
<roptat>a phase that would use something like (substitute* "something.c" (("ffmpeg") (which "ffmpeg")))
<peanutbutterandc>roptat, Ah... yes. That thing that I did with imglapse the other day. I see. Thank you. I will look into it.
<roptat>that "which" is run at build time (it's a scheme function) and it will resolve to the full path to ffmpeg binary. The substitute* will change any string that says "ffmpeg" into that full path
<peanutbutterandc>I see.
<roptat>you'll have to locate the file that does the call, and make sure you only replace that call, not something else by accident
<roptat>(like that susbtitute* I showed you would replace a function call like ffmpeg_init into a non valid C: /gnu/store/.../bin/ffmpeg_init :))
<peanutbutterandc>However, regarding why ffmpeg isn't installed in my profile when I install slowmovideo... any ideas please?
<roptat>right, ffmpeg is only an input, inputs are not installed in your profile
<roptat>that's why we embed full paths to them
<peanutbutterandc>Oh, yes, I have had an encounter with that issue:
<roptat>then it's detected by guix and "installed" in your repo
<peanutbutterandc>roptat, I see...
<peanutbutterandc>And propagated-inputs are actually installed in one's profile no matter what, I believe?
<roptat>but you shouldn't use propagated-inputs unless you really need to (and you don't :p)
<peanutbutterandc>So I could just get rid of this issue by having it switched over to propagated-inputs?
<peanutbutterandc>Why wouldn't one want that? o.O (I'm a n00b)
<roptat>sure, but it might then cause conflicts
<peanutbutterandc>Ah... that makes sense
<roptat>basically, if A and B depend on C and propagate it, you need to update both or none of them, but you can't update them independently
<peanutbutterandc>I feel like guix is going to be the unix of package managers: everything seems to be so well thought out.
<roptat>using propagated inputs everywhere would make guix behave like any other package manager, and that sucks ;)
<peanutbutterandc>I see. That makes a whole lot of sense.
<roptat>if A and B only keep references to C, then you can update A independently of B and it can refer to C'
<peanutbutterandc>And (native-inputs) is meant to be pre-installed in the profile?
<roptat>no, it's the same as inputs, but it's meant for cross-compilation
<roptat>if you don't do cross-compilation, it's the same as an input
<peanutbutterandc>Oh... okay. That makes sense. I think I have learned all about (input) section of guix packaging. Neat! Thank you very much!
<roptat>like, if the build system needs to run a python script, it should use the native python, not the target python which it probably cannot run
<peanutbutterandc>Hmm... I see
<roptat>in practice, we don't do a lot of cross-compilation, so it doesn't really matter
<roptat>as a rule of thumbs, only put binaries used at build time (but not a run time) in native-inputs
<leoprikler>would be interesting if we could do cross-compilation through offloads
<leoprikler>e.g. a strong x86 machine building for a small arm chip
<peanutbutterandc>Run time ones go to (propagated-inputs). Remember that from the manual and previous chat at IRC
<roptat>leoprikler, a cross-compiled package has a different hash from a natively-compiled one
<roptat>no, try not to use propagated-inputs
<leoprikler>because of different inputs?
<peanutbutterandc>roptat, Even for run-time-dependencies? o.O
<roptat>but you can offload to an x86 machine running a binfmt something
<roptat>peanutbutterandc, you should either rewrite the call to the dependency to embed a full path, or wrap the program inside a script that sets up the right environment variables
<roptat>(which embed the full path to the dependency ;))
<leoprikler>but what about native vs normal inputs in this case
<roptat>if you offload to a binfmt thing, it builds natively
<peanutbutterandc>roptat, I see. The (wrap-program) thing. That seems to be preferred by basically all guix geeks here in IRC.
<roptat>depends on what you want to package, it's not very useful for a library
<roptat>leoprikler, qemu-binfmt-service-type
<roptat>in case you want to have a look in the manual :)
<roptat>"[...] it will build Inkscape for ARMv7 as if it were a native build, transparently using QEMU to emulate the ARMv7 CPU"
<roptat>and I think the build farm used that in the past to build substitutes for armhf and aarch64
<civodul>roptat: ah! just replied to, sorry for the delay!
<roptat>no problem, thanks :)
<peanutbutterandc>roptat, Question: could I use (wrap-program) for ffmpeg here: ? rather than using (substitute*)? If so, how do I go about doing that?
<roptat>if it's a program, I'd say yes
<roptat>you can search for examples in the guix sources :)
<roptat>I think you have to create a phase before the 'install phase, where you call wrap-program
<peanutbutterandc>roptat, So another #phases: (modify-phases) after this one here
<roptat>no, if you use twice the same argument, I think the first is ignored
<roptat>you have to do something like #:phases (modify-phases %standard-phases (add-after 'unpack ...) (add-before 'install ...))
<peanutbutterandc>And may I know what exactly wrap program does? It does wrap the program but is a program 'foo' replaced by another 'foo' which calls the actual 'foo'? o.O
<roptat>again, there are tons of examples of packages that add more than one custom phase :)
<peanutbutterandc>I see...
<roptat>mh... actually it might be *after* the install phase, I don't remember
<roptat>its supposed to replace 'foo' with a script that sets up environment variables, then call the actuall foo which is renamed into .foo-real or something like that
<peanutbutterandc>Oooh. I see. This is like ancient knowledge embedded within the source code that n00bs like us whose only source of wisdom is the reference manual are too n00b to understand. :D
<roptat>don't worry :)
<roptat>I discovered that with top, when I found a .icecat-real process ^^'
<peanutbutterandc>I see
<peanutbutterandc>Okay so what I'm supposed to do is have a wrapper program that sets the PATH variable to... What am I supposed to do again? *confused*
<roptat>ho, if you haven't seen it yet, I'd recommend
<roptat>not completely related to current topic, but you might learn a few things
<roptat>I think you need the PATH variable to point to ffmpeg
<peanutbutterandc>roptat, Thank you. I will watch it. Bookmarked :)
<peanutbutterandc>But if ffmpeg isn't installed (because `input`) to any guix profile, that probably means I have to actually point to the exact one. Which probably means I will have to do (assoc-ref output "ffmpeg"). But that goes more along the substitute route.... I will look around then. Thank you
<roptat>that's why you want to make a wrapper
<roptat>wrap-program will allow you to create a wrapper that points to the exact path to ffmpeg
<roptat>same with using a substitute*
<roptat>in both cases, you're trying to embed the full path to ffmpeg, either directly or thread $PATH
<roptat>or maybe via*
<peanutbutterandc>I see. I will ask around here again if I slip up.
<g_bor[m]>hello guix!
<g_bor[m]>with these new vm settings I got a little further on core-updates.
<g_bor[m]>now python-3.7.4 fails three tests
<g_bor[m]>failing test are test_concurrent_futures test_mailbox and test_sqlite
<g_bor[m]>does that ring a bell?
<g_bor[m]>wow! I just encountered a really bad failure mode...
<g_bor[m]>I tried to run the previous command again, and got:
<g_bor[m]>guix build: error: fport_write: Broken pipe
<g_bor[m]>then got a backtrace, then an exception thrown while printing backtrace
<g_bor[m]>then seemingly shepherd just gave up...
***elais[m] is now known as elais[m]1
***elais[m]1 is now known as elais[m]
<civodul>g_bor[m]: could you check if this has to do with ?
<civodul>what does /var/log/guix-daemon.log say?
<g_bor[m]>ok, I just sent a bug report with a screennshot, now I have to force-restart it.
<g_bor[m]>but it was neither offloading nor keep failed.
<g_bor[m]>the log is empty after the restart. Is that expected?
<g_bor[m]>I've also seen a file system repair on the root at boot time...
<g_bor[m]>Is it possible that the disk was accidentally filled up while a build was running, and that caused corruption?
<g_bor[m]>df reports 17G free space on the root volume... I believe that should be enough...
<str1ngs>peanutbutterandc: or use native-path. personally I think it's better then a wrapper
<str1ngs>peanutbutterandc: after reading the thread, substitute would work bette3r
<peanutbutterandc>str1ngs, I ran into this issue: with substitute; so I'm thinking about going the wrapper route so that I can learn the trick well (I'm still a n00b).
<alextee[m]>is there a way to make sudo herd schedule mcron refresh? i changed my mcron task and ran sudo guix system reconfigure, but "sudo herd schedule mcron" shows me the old tasks before the change
<str1ngs>peanutbutterandc: is the script bash?
<peanutbutterandc>str1ngs, Yes, the imglapse one is just normal shell script
<str1ngs>peanutbutterandc: I think if you make ffmpeg and less propagated-inputs would resolve this as well
<roptat>alextee[m], try "sudo herd restart mcron"
<str1ngs>would require coreutils as well
<roptat>after a reconfigure, some services need to be restarted
<alextee[m]>roptat: sweet, thanks
<nckx>peanutbutterandc: Could you make the substitution regex more specific (you can match on parts of the string if needed)? Wrapping's fine otherwise; propagation not so much.
<civodul>alextee[m]: like roptat writes, you probably forgot to run "herd restart mcron" after "reconfigure"
<nckx>(That's nckx for: ‘propagation wrong bad; avoid at all costs’ 🙂 )
<str1ngs>wrappers are just as bad, they both have there use cases
<alextee[m]>yeah that was it, thanks
<nckx>str1ngs: This is not a use case for propagation, period.
<nckx>Wrappers are much less worse. 😉
<str1ngs>actually yes it is, since it's a shell script
*nckx is not doing this dance again.
<str1ngs>nobody asked you to dance to begin with :)
<leoprikler>when is there a use for propagation?
<Franciman>ready to give another chance at the rust importer
<Franciman>this time I want to play tactically
<g_bor[m]>the python test failure was not deterministic
<Franciman>efraim, i tried your script to import rust packages, but it failed before it started
<alextee[m]>if i understand correctly, the procedure to create and install a new package is: 1. create a package file mypackage.scm, 2. set the GUIX_PACKAGE_PATH to point to the package's directory, 3. guix install mypackage?
<Franciman>alextee[m], you may want to consider using channels
<Franciman>instead of modifying GUIX_PACKAGE_PATH
<Franciman>but it's ok
<alextee[m]>Franciman: you mean i should fork the repository and upload it somehwere and work on that repository?
<Franciman>you can specify additional repos
<Franciman>have a local git repository
<Franciman>where you put all personal packages
<alextee[m]>oh and they get appended if i define that repository as a channel
<Franciman>yes. I'm not so knowedgable tho
<Franciman>I think if you just want to start trying, modifying GUIX_PACKAGE_PATH is ok
<alextee[m]>that's really convenient. having a git repository for my packages is easier to work with than plain files
<Franciman>but i myself find adding channels more robust and elegant
<alextee[m]>i will try the channels approach
<alextee[m]>yeah, i agree
<roptat>also, you can use the -L option
<roptat>which I find more convenient than GUIX_PACKAGE_PATH, because you can do -L . for instance
<roptat>"guix build -L . my-package"
<roptat>"guix install -L . my-package" and such
<str1ngs>channels have some draw back when working with local files. in that if something has not been committed in the tree it's not available since guix does a clone. something to consider
<alextee[m]>oh thanks. maybe i should use the -L command while w orking, and when i want to commit i can just use the channel
<peanutbutterandc>nckx, Yes, sir! Understood!
<peanutbutterandc>No propagation, if at all possible
<peanutbutterandc>alextee[m], That is basically what I do, too. Here's my channel (and I'm just a n00b, still): Guix is fun!
<fps>hmmm, i get an error when using EDITOR=emacs crontab -e as user with mcron service enabled:
<alextee[m]>peanutbutterandc: this is very helpful! thanks!
<fps>anybody else using mcron successfully as user?
<alextee[m]>fps: i think you need to define it in /etc/config.scm instead of using crontab, see 8.8.2 Scheduled Job Execution. i just did that and it seems to work
<fps>alextee[m]: well, i want unprivileged users to be able to create cron jobs
<fps>i'll try the per user guile way instead..
<fps>followig the manual, created a file in .config/cron/ and ran mcron:
<fps>gives me an error and just hangs
<fps>i guess that's expected. it just runs and runs the job from time to time
<fps>but hmmmmm, this is not quite what i expected. why do i have the mcron service running then?
<fps>which doesn't appear in 'herd status' either
<efraim>Looks like the errors I had when I tried to use cron as a user
<alextee[m]>is it considered safe to share my /etc/config.scm file?
<fps>ok, so shepherd is broken [it can't start openssh at boot] and mcron is broken :) things you find out when trying to run a distribution seriously :) i wonder how i could help get those resolved?
<alextee[m]>it has details about what's installed and users, etc. so i'm guessing not
<fps>efraim: the latter is fine it seems.. mcron is running and scheduling the job
<fps>efraim: but having to have the user logged in and running mcron manually is a bit weird for a cron system ;)
<efraim>alextee[m]: I have mine in version control and online:
<fps>should the mcron daemon appear among the services in herd status?
<efraim>If it was started by shepherd
<alextee[m]>efraim: i think the convenience of doing that outweights the minor security risks, i'll probably do it too
<roptat>alextee[m], same here:
*bavier bootstrappin' the openjdk's ...
<bdju>I watched the guix videos! good stuff. I would like to see more
<fps>hmm, is there a way to have shepherd reload all services without a reboot?
<fps>`e.g. after switching a system generation?
<fps>because i added an mcron-service to the service-list and reconfigured the system, but did not reboot
<fps>no mcron service runnign
<civodul>fps: reconfigure restarts services that were stopped and loads services that were still running
<civodul>such that "herd restart FOO" will spawn the new service
<fps>service mcron could not be found
<fps>it seems that (service mcron-service-type) doesn't actually produce a service in the resulting system
<civodul>right, because there's no job to run :-)
<civodul>you need to have at least one mcron job
<fps>i have one in my user directory
<fps>but it seems mcron doesn't support running user jobs out of the box
<fps>or at least the default mcron service configuration doesn't install a per user mcron job
<civodul>roptat: your overdrive is still unreachable BTW, have you heard from it? :-)
<roptat>I didn't
<roptat>I'll take a look
<civodul>ok, thank you!
<civodul>fps: job specifications can specify the user under which to run jobs
<civodul>not sure if that's what you have in mind
<fps>civodul: nah, modern cron systems usually allow users to run crontab -e to edit their cron jobs
<fps>and the systemwide cron then runs them with no additional fuss
<fps>i have an unprivileged user on my guix box and i want him to be able to install his own cron jobs
<civodul>fps: yup, that's not supported out of the box
<civodul>(it's "modern" from the 80s BTW :-))
<civodul>the way to do it would be to run mcron by yourself as your user
<civodul>it's inconvenient
<civodul>well it's ok, but it could be simpler!
<fps>wouldn't the more convienient way be to have the default mcron-configuration install a job that runs the user's mcron?
<fps>nah, on a many user system that would produce quite a few extra processes.. hmm
<fps>running mcron manually is about as useful as using "at". the user would have to manually log in after every reboot
<fps>and then run the mcron process..
<fps>not acceptable :)
***jonsger1 is now known as jonsger
***ChanServ sets mode: -b Gamayun*!*@*
***CompanionCube is now known as shikhin
***shikhin is now known as shikhinCube
<alextee[m]>how can i specify an openvpn configuration for a client from openvpn configuration files? i can't figure it out from the manual
<alextee[m]>normally you put these under /etc/openvpn/ovpn_udp or tcp it seems
<alextee[m]>i understand that you specify the name of the server in config.scm, but it assumes that openvpn is already configured with the server info
<mange>Are you looking at all the openvpn-client-configuration options in "(guix) VPN Services" in the manual?
<alextee[m]>yeah, i keep glancing over them but i can't seem to figure out where i should put the server info. i would guess openvpn-remote-list, but that only takes a name and a port
<alextee[m]>im new to openvpn though and i might be missing something
<alextee[m]>it would be helpful if there was an example configuration in the manual
<alextee[m]>i have a bunch of .ovpn files i received from my vpn provider
<mange>If you open the .ovpn files, can you make a guess at what sort of configuration you need?
<mange>It might be possible to write a ovpn-file->openvpn-client-configuration procedure, but I don't think anything like that exists in Guix.
<dutchie>I'm not sure of the most "guix-y" way to set up a service, but I believe if you just run "openvpn foo.ovpn" it should work as a foreground service
<alextee[m]>there's certificates and stuff in the ovpn files that i can't tell how to specify to guix. maybe it needs me to create separate files for them and pass the files, idk. i guess i will do the openvpn foo.ovpn thing in my autostart scripts