IRC channel logs

2021-08-04.log

back to list of logs

***KM4MBG is now known as Jack-KM4MBG
<Noisytoot>it builds for riscv64-unknown-linux-gnu, but I get "riscv64-unknown-linux-gnu-ld: cannot find crt1.o: No such file or directory
<Noisytoot>collect2: error: ld returned 1 exit status" if I try to compile a hello worlds program
<vivien>Well, I did an email mistake today.
<vivien>I’m sorry if anyone’s mail client crashed because of me. I did not intend for this to happen.
<iskarian>What could crash a mail client?
<vivien>I sent a patch, on guile-user@gnu.org, to update gnulib, so it’s huge. The problem is, it is displayed inline.
<vivien>And it’s really slow to open.
<iskarian>aha, that is pretty big, but I've seen bigger!
<lfam>Ugh I keep screwing up my patch submissions. I'm out of practice
***Jack-KM4MBG is now known as jackhill
<lfam>I've sent a bunch of patches removing programs that depend on unsupported OpenSSL 1.0
<lfam>Notable, it removes adb (Android debugger) and its dependent, fastboot
<lfam>And those patches can be found here: <https://bugs.gnu.org/49859>
<Guest27>Hey! I'm running into an issue using guix where my ethernet connection drops every 4 seconds or so, and then reconnects
<lfam>Guest27: That's weird! And it doesn't happen when you use a different OS with the same hardware?
<Guest27>lfam: Nope! I've only come across this with guix
<lfam>Do you know specifically the model number of your ethernet hardware?
<lfam>And, how do you observe that it drops?
<Guest27>lfam: I don't know the specific model number, but I can try to find out. While using gnome, I'd recieve a notification every 4 seconds stating that my network connection was lost, and then it would reconnect; this would continue on and on
<Guest27>Also observed while using xfce
<lfam>`lspci` might show it
<lfam>The name / model number, that is
<Guest27>"Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)"
<lfam>You might check `dmesg` (or `sudo dmesg`) when that happens, to see what the kernel has to say
<lfam>Also, `uname -a` to see exactly which kernel version you are using
<Guest27>Hmmm, `dmesg` doesn't seem to show any consistent error regarding ethernet service
<Guest27>5.13.6 #1 SMP 1 x86_64 GNU/Linux
<lfam>Weird
<Guest27>It's not causing too many issues; I mainly have to just refresh my browser every once in a while if the connection drops when clicking on a link. It's just super strange and not an issue I've ever come across before lol
<lfam>I'd suggest trying a "barebones" system with no desktop, to try and figure out if the problem is with the kernel, firmware, or the high-level userspace configuration tools, but that sounds difficult if you can't stay online consistently to download packages
<Guest27>I'll try that, I appreciate the help and advice!
<lfam>Maybe this is relevant: https://www.linuxquestions.org/questions/linux-hardware-18/realtek-rtl8111-8168-8411-ethernet-controller-r8168-driver-install-r8169-driver-doesn%27t-work-4175641982/
<lfam>I don't remember off-hand how to check which driver is in use. Maybe it's buried in dmesg or /var/log/messages
<muradm>hi Guix
<MysteriousSilver>\o
<irfus>hello!
<efraim>mesa FTBFS on aarch64 on core-updates-frozen
<efraim>I'm working on it, checking out the one test which fails for me
***SaiKarthik[m] is now known as Karthik[m]
<civodul>Hello Guix!
<bsturmfels>hi folks, is anyone here running Guix on a Talos II?
<jahor> Hi! No questions today. Just wanted to say thanks to all maintainers! I haven't used Guix in a while and by that time all the things which have been keeping me away from this distro had been fixed.
<civodul>hey bsturmfels!
<bsturmfels>I'm interested to know what kind of video card you're using on the Talos
<abrenon>good morning
<bsturmfels>hi civodul! :)
<civodul>bsturmfels: there's been work porting to powerpc64le, but i don't think anyone tried running full Guix System there
<civodul>hey jahor, good to know :-)
<abrenon>is there any java compiler available in guix ? guix search java, guix search javac and guix search openjdk don't yield anything relevant
<bsturmfels>civodul, thanks - I've actually just installed it on top of Debian on my Talos II via guix-install.sh and the basics that I've tried seem to be working smoothly. Maybe I should email email some of those folk about their video hardware
<bsturmfels>abrenon: try icedtea:jdk
<abrenon>thanks
<civodul>bsturmfels: yes, you should ping help-guix or guix-devel
<civodul>i suppose very few substitutes are available, too
<cbaines>bordeaux.guix.gnu.org has at least some substitutes for powerpc64le, but there's still plenty of room for improvement
<bsturmfels>thanks civodul
<bsturmfels>well it would be a shame to have 32G of RAM and 32 cores and not have to build anything ;)
<civodul>heh :-)
<civodul>cbaines: nice!
***rt is now known as robin
<dootano[m]><apapsch> "dootano: the next time it..." <- Network issue logs, which I asked yesterday:
<dootano[m]>/var/log/messages
<dootano[m]>Before turning on Wi-Fi
<dootano[m]> http://paste.debian.net/1206526/
<dootano[m]>After internet down
<dootano[m]> http://paste.debian.net/1206527/
<dootano[m]>After turning off Wi-Fi
<dootano[m]> http://paste.debian.net/1206530/
<Soheil[m]>dootano: +++
<ekaitz>hi guix!
<ekaitz>anyone can point me to any reference of how to develop a web-app that needs a database service? i just want to keep it separate from my system
<ekaitz>in an environment or something like that, what's the best approach?
<civodul>ekaitz: hi! i don't know of tutorials, but you could look at things like Guix Data Service or Cuirass, which use PostgreSQL
<ekaitz>civodul: hmm they wrap-program, which is cool. But this makes me have another question... where does postgre store its stuff?
<civodul>ekaitz: i'm no postgres expert, but i think it's no different from other distros: it stores its stuff somewhere in /var, and you access it through its server anyway
<ekaitz>i see, but i need a service and all that :S not very convenient for a project where I need to spend like 30 minutes
<civodul>maybe postgres is not the right thing for your project, dunno :-)
<civodul>you could try sqlite if you don't plan to scale up
<ekaitz>civodul: i don't choose here mate, it's a project someone else did I need to edit
<civodul>ah ok
<ekaitz>the sad life of the freelancer fireman
<muradm>hi, any info on this one? http://issues.guix.gnu.org/49804
<muradm>this is related issue: http://issues.guix.gnu.org/49771
<vivien>Hello guix, is there a reason why we don’t have xdg-open in PATH?
<vivien>Is there a package to install?
<efraim>probably xdg-utils
<vivien>efraim, thank you, that’s the one!
<civodul>muradm: hi, thanks for pinging! hopefully one of the committers will look at it and provide feedback in the coming days
<civodul>feel free to ping again in one week if you don't get feedback
<muradm>civodul: thanks, hope dies last )))
<civodul>:-)
<muradm>currently i have to do this: https://paste.rs/n9S
<muradm>which is not very pretty..
<muradm>i had also another question in my mind regarding service-extension, does it apply only to existing services? i.e. (service-extension file-system-service-type (const %seatd-file-systems)) can only apply seatd-file-systems to existing file-system-service-type?
<muradm>what if file-system-service-type is not defined anywhere, what will happen if some other service still defines (service-extension on it?
<muradm>basically I'm trying to write something like this: https://paste.rs/P9v
<muradm>but can't figure out this last pam-mount-service-type extension form
<muradm>Wrong type to apply
<muradm>or should i extend pam-root-service-type?
<muradm>here is another way of asking same: https://paste.rs/hpk
<bricewge>muradm: That's cool you are working in a seatd service, I'll like to see it in Guix
<muradm>bricewge: yes, i was trying to make it running few weekends, last weekend i finally switched to seatd/greetd, now trying to clean things up
<muradm>elogind is rip in my config.. :)
<bricewge>pam-mount isn't extensible
<bricewge>See sysctl-service-type for a simple extendable service
<muradm>(compose concatenate) you say... i se
<muradm>can multiple pam_mount.so entries co-exist in pam configuration?
<muradm>i could probably do samething pam-mount-service-type does, but embedded straight in seatd configuration
<muradm>but these pam_mount.so will conflict with another pam_mount.so on pmvarrun... (face palm)
<muradm>any one using pam-mount-service-type at all as it is now?
<muradm>because even current implementation is somewhat inconsistent and have issues
<bricewge>There is a single commit on this service, so I would guess very few people are using it
<muradm>for consistent behavior, i had to do this: https://paste.rs/E7u
<muradm>i.e. mount /run/pam_mount as tmpfs, so that pmvarrun values are not preserved between reboots
<muradm>this works better, but i'm not sure about edge cases, if /run/pam_mount could be remounted without reboot
<bsturmfels>hi folks, I'm planning to send in a patch removing the Python 2 program "fabric". I packaged this a few years back, but it's no longer building and I don't personally use it anymore. Would it be appropriate to also remove the "python2-bcrypt", "python2-paramiko", "python2-pynacl" and "python2-fudge" dependencies which are only currently used by "fabric"?
<bsturmfels>and if so, should that be done in a single patch, given these are related?
<civodul>bsturmfels: thanks for offering Python 2 cleanups, these are much welcome!
<civodul>i think you could do one patch per package (so it's clearer to everyone what gets removed), in reverse topological order ;-), but either way is fine IMO
<civodul>we'll wait for a week or so after you post the patches so people have a chance to chime in
<bsturmfels>thanks civodul will do. So reverse topological would be dependencies first, then fabric right?
<civodul>right
<civodul>so that each commit remains valid (no missing packages)
<bsturmfels>oh, ok I think I misunderstood - I'll need to remove fabric first so there's no missing packages
<abrenon>still digging into the opam importer, I cannot help but notice that git repositories versioning packages definitions are used as sources instead of actual opam repositories
<abrenon>this wasn't the case when the importer was added (b24443bff9f9f3f36353eea2ef35e6dc3745a417)
<abrenon>but seems to have happened in cce654fabdf09cac7d18f9bad842ba8445aa022c during a massive refactoring of the importer
<abrenon>roptat: what was the main reason behind this change ? can't it be problematic to not have exactly the same source as opam itself would ?
<bsturmfels>If I do `git send-email --to=guix-patches@gnu.org 0000-cover-letter.patch 0001-... 0002-...` will that do the right thing, or make a mess?
<bsturmfels>I'm aiming to have multiple patches attached to a single mailing list thread
<bsturmfels>where the patches were generated by `git format-patch` (via Magit)
<mbakke>bsturmfels: that will make a big mess, send the cover letter first, then the remaining patches to '<assigned-bug-id>@debbugs.gnu.org'
<mbakke>I wonder if we can make that easier, on either the git or debbugs side.
<bsturmfels>thanks mbakke!
<mbakke>%guile-static-stripped from (gnu packages make-bootstrap), of initrd and bootstrap fame, has trouble resolving 'getpw' & co from its embedded libc on the core-updates-frozen branch
<mbakke>...leading to boot failures.
<bsturmfels>mbakke: I think that worked out like I hoped, thanks for your help: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49874
<mbakke>bsturmfels: looks good :-)
<roptat>abrenon, I don't remember exactly, I think it was easier to use the git repository, and we download less stuff as long as we keep it in cache (we can pull to the latest version easily, vs re-downloading the full archive)
<abrenon>true, we'd have to download index.tar.gz everytime before being able to know if it has changed or not
<abrenon>this ad-hoc discovery of two particular git repositories isn't similar to what opam actually does and prevents us from retrieving an arbitrary opam-compliant repository
<abrenon>unless we can leverage the HTTP Last Modified header to estimate if it needs to be refreshed
<abrenon>is there anything to do it in guix current download tooling ?
<roptat>not that I remember
<abrenon>I see that http-fetch/cached that you used in the original commit handles 304 Not Modified answers
<abrenon>that sounds good
<roptat>oh, great!
<roptat>if you're willing to work on the importer, I'd be happy to review/merge a change to using index.tar.gz instead of a repository
<roptat>would even be better if the importer could support multiple repositories
<abrenon>yeah, I had the same idea yesterday
<roptat>would be great for coq packages that still require some ocaml dependencies from opam's repo
<abrenon>when after several sorry hours of torturing the poor thing I managed to "import" a package for grew, but ANSITerminal was unknown, because it had to give up "core" opam in the process
<abrenon>so yeah, definitely a must have
<abrenon>I don't know if I'm "willing" to work on the importer, but I've wasted several hours so far not making any progress except gaining a very shallow understanding of what's going on
<abrenon>so let's call it a start maybe
<roptat>:)
<roptat>I can also have a look, but I can't promise it'll be timely
<roptat>finally working on updating our translations...
<abrenon>I must do more than just stand by and watch knowledgeable people do the actual work
<roptat>I'd be happy to help if I'm around on IRC
<abrenon>but I wish I could understand where to look for things I don't understand and general strategies to work on guile code without having to come back here everytime and whine
<roptat>pushed the big nls update :)
<abrenon>that's great !
<roptat>remote: postdrop: warning: uid=138253: File too large
<roptat>remote: CommandError: Command "/usr/sbin/sendmail -oi -t" failed with retcode 75
<abrenon>s/great/big/
<roptat>so I think no mail to guix-commits@, but it made it to the repo
<roptat>(I checked it with make as-derivation before sending it, so hopefully no breakage)
<roptat>bah, looks like I can't even use the coq repository with the current importer...
<roptat>Erreur Git : reference 'refs/remotes/origin/HEAD' not found
<abrenon>^^
<abrenon>I haven't even tried that
<abrenon>here's a know-how question I'd love to get some lights on: is there a central collection of guile libraries ?
<roptat>there's a list, but it's not exhaustive
<abrenon>I had a couple questions yesterdays regarding use-modules, people found the library it was from for me but didn't teach me how to fish
<roptat> https://www.gnu.org/software/guile/libraries/
<abrenon>thank you so much !
<roptat>I think it's simply by experience, having seen the use-module before, they know which library it comes from
<abrenon>is there a way to browse it by module or something ?
<roptat>no
<abrenon>ow : /
<abrenon>ok, so in practice how do you people do it ? I find an unknown value in haskell, I can hoogle its type
<abrenon>I can on hackage find the library it's from
<abrenon>here I have a value, I can only suspect it's from one of the (web …) modules
<abrenon>but I can't know for sure which and I don't know where to look to be sure
<roptat>I usually just go to the manual to find it...
<roptat>or ask around ^^'
<abrenon>but it slows learning quite a bit
<roptat>yeah, I don't know how to solve this
<roptat>probably emacs has a solution to go to the documentation directly
<abrenon>another related question: where to look for a given project's dependencies ?
<abrenon>at first I thought all use-modules in guix's source code were local to it
<roptat>it depends on the project, usually the INSTALL or README file will have this info, for some lanugages there's a file with the dependencies
<abrenon>and was very upset to learn about libgit yesterday
<roptat>there's nothing special for guile
<abrenon>ok
<roptat>unless you count the guix recipe :)
<abrenon>well it certainly counts
<abrenon>good point
<abrenon>is guix recipe in the package itself ?
<maximed>abrenon: Sometimes a guile project includes a guix package definition in its source code
<maximed> Usually named "guix.scm"
<maximed>If it's packaged in guix proper, you can do "guix edit guile-SOMETHING" to see the definition
<maximed>or "guix show guile-SOMETHING" if you're only interested in the list of dependencies
<abrenon>yeah sorry for the stupid question, that was just a "mirrors reflecting mirrors" kind of situation, if I had forgotten I was talking about guix itself, I'd have guix searched it and then open it in the appropriate gnu/packages/...
<roptat>you can guix edit guix :)
<Noisytoot>roptat, https://bpa.st/BY7Q fails with 'dynamic linker name not known for this system "riscv64-elf"'
<roptat>Noisytoot, are you sure it's a valid target triplet?
<abrenon>yeah, I could've but I'm already in my local clone of guix, text editor open, so I'd rather :e gnu/packages/… than guix edit which would yield a separate window
<roptat>-elf doesnn't sound like a kernel type
<maximed>Noisytoot: and supported by Guix? Guix doesn't support all combinations
<roptat>abrenon, and a separate file unless you use ./pre-inst-env ;)
<abrenon>?
<roptat>by default "guix edit" would open the only file it knows about, from the store
<Noisytoot>maximed, Do you mean that Guix doesn't package a GCC that compile for it, or that Guix doesn't run on it?
<abrenon>oo I see
<roptat>it has no way to know it's in a checkout of itself, and it's not the same revision anyway
<Noisytoot>roptat, It's bare-metal, not for any kernel
<maximed>See glibc-dynamic-linker in (gnu packages bootstrap)
<abrenon>but still doesn't fix the window thing + I must keep things simple if I'm to understand anything at all
<roptat>yeah, sorry
<abrenon>on the bright side, I finally managed to make sure this promising if-modified-since was indeed from (web http) : )
<abrenon>note to self: if it's not in a dependency, it could be a core lib of the language itself ^^'
<maximed>Noisytoot: more specifically, Guix needs to know what the file name for the "dynamic linker" must be
<maximed>this depends on the system
<maximed>so Guix keeps a table of SYSTEM/TARGET -> "dynamic linker" mappings
*roptat afk
<maximed>maybe "riscv64-elf" could be mapped to "no-ld.so"
<maximed>But that's for ‘bare bones’ systems, without a libc
<maximed>Maybe you need "riscv64-linux"
<Noisytoot>I am using it to compile an operating system, not a program that runs on another operating system
*abrenon carries on to learn about argument parsing
<Noisytoot>maximed, The same thing but with "riscv64-unknown-linux-gnu" works, but when I try to compile a program, I get "riscv64-unknown-linux-gnu-ld: cannot find crt1.o: No such file or directory
<Noisytoot>collect2: error: ld returned 1 exit status"
<efraim>--target is to run on that target architecture, --system is to emulate (if necessary) being a certain system
<efraim>using riscv64 as an example, --target=riscv64-linux-gnu --system=riscv64-linux
<maximed>Noisytoot: does "guix build hello --target=riscv64-linux-gnu"?
<maximed>* work?
<maximed>or is this only when manually making a manifest (with cross-binutils, cross-libc and cross-gcc))
<maximed>I don't know how one is supposed to do the latter.
<Noisytoot>maximed, it works
<Noisytoot>file /gnu/store/afv9qkdxh8wpfgkyqadp5avxppy8q7nl-hello-2.10/bin/hello
<Noisytoot>/gnu/store/afv9qkdxh8wpfgkyqadp5avxppy8q7nl-hello-2.10/bin/hello: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), dynamically linked, interpreter /gnu/store/8n3cdnafvlpg0m68gz4spns4lx87x1sf-glibc-cross-riscv64-linux-gnu-2.31/lib/ld-linux-riscv64-lp64d.so.1, for GNU/Linux 2.6.32, not stripped
<maximed>I dont know anything about riscv64, but that seems about right
<Noisytoot>It only fails if I try to manually build a program using riscv64-unknown-linux-gnu-gcc
<pkal>Hi, does anyone know why my local guix cannot find a package version that is listed on guix.gnu.org?
<pkal>Specifically go 1.16.5
<silasfox>Hello #guix!
<apteryx>perhaps you need to update with 'guix pull' ?
<maximed>pkal: it shows go@1.16.5 on my system (guix show go)
<apteryx>how, in mcron Guile syntax, can I specify that a job should run every 3 days at 4 AM?
<apteryx>is this correct? '(next-day-from (next-hour '(5)) (range 1 31 3))
<apteryx>well, 5 AM here (that's OK too ;-))
<leoprikler>looks like double quoting, no?
<apteryx>that confuses me as well, but in 'info (mcron) Two hours every day', the example reads as: (job '(next-hour '(1 2)) "my-program")
<apteryx>I think the first arg is eval'd, so the first quote gets stripped
<apteryx>I guess I can just try it and then see with 'herd schedule mcron'
<civodul>hey apteryx!
<apteryx>civodul: heya!
<civodul>apteryx: i've come to use Vixie cron syntax...
<apteryx>haha, that says a lot :o
<civodul>yeah, it's hard to admit, but i find it more understandable
<silasfox>Has anyone here ever tried Xmonad on top of GuixSD? I can get it to run, but I can't xmonad --recompile it, I always get an error message about ghc not finding the XMonad module.
<abrenon>silasfox: this is my current setup
<PurpleSym>silasfox: See https://issues.guix.gnu.org/issue/47335
<silasfox>PurpleSym: thank you, I'll look into that.
<leoprikler>hmm, what is the purpose of next-day-from?
<apteryx>civodul: perhaps the manual is mostly lacking a formal description of every function, with the accepted arguments. There's a bunch of example thrown around, but no real reference it seems.
<leoprikler>it looks like (next-hour '(5)) should suffice
<apteryx>leoprikler: every 3 days?
<leoprikler>oh, every three days then no :(
<leoprikler>if mcron becomes anachronistic, will it become mancron? 🤔️
<roptat>re
<apteryx>just realized that 'sudo guix system reconfigure' may not be the same as 'sudo -E guix system reconfigure' (the former was complaining that the (guix ui) module was not found)
<apteryx>on Guix System
<civodul>apteryx: yeah, the mcron manual could be improved
<Soheil[m]>Still no one wants to help dootano? Sometimes I get frustrated with the Guix community! 😒😔
<roptat>Soheil[m], haven't seen that message
<maximed>Also, it's quite possible noone has much of an idea what's going on
<roptat>right, looking at the logs, it sounds like a difficult question
<roptat>Soheil[m], are you dootano[m] too? I see your name is the SSID ^^'
<pkal>apteryx: I've done pull, but guix show go still only gives me two options (1.14.10 and 1.4-bootstrap-20171003)
<roptat>but honestly I see "Aug 4 12:03:29 localhost NetworkManager[347]: <info> [1628062409.8362] manager: NetworkManager state is now CONNECTED_GLOBAL" and this seems to be the last message related to network in the log
<maximed>pkal: what is the output of "which guix"?
<maximed>If everything is properly set up, it should be "/home/USER-NAME/.config/guix/current/bin/guix"
<Soheil[m]>roptat: Yes he is my friend and we both have this problem! And we try to solve the problem!
<Noisytoot>maximed, Where is the table of SYSTEM/TARGET -> "dynamic linker" mappings?
<maximed>and not /home/USER-NAME/.guix-profile/bin/guix
<maximed>Noisytoot: (gnu packages boostrap)
<maximed>* boostrap
<apteryx>Soheil[m]: I lack context; could you please restate succintly the problem?
<Noisytoot>* bootstrap
<apteryx>Soheil[m]: or if you send an email to help-guix@gnu.org already, point me to it
<pkal>maximed: /usr/local/bin/guix in my case
<apteryx>sent*
<pkal>ah, but that is a symlink to /var/guix/profiles/per-user/root/current-guix/bin/guix
<maximed>pkal: what's "$PATH"?
<roptat>Soheil[m], from the logs, it looks like you have an ipv4 address and fail to get an ipv6 address, but I can't see anything suggesting you loose connectivity
<pkal>maximed: /home/philip/.guix-profile/bin:/home/philip/.bin:/home/philip/Code/go/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
<roptat>so I don't understand what happens...
<maximed>it should include ~/.config/guix/current/bin before /usr/local/bin
<pkal>I'll try that out
<roptat>even before ~/.guix-profile
<maximed>pkal: "(guix)Getting Started" has some recommendations on how to set up things
<Soheil[m]>apteryx
<apteryx>pkal: perhaps you just need to start a new shell or run 'hash guix' ? The PATH should be taken care of automatically by 'guix pull' IIRC.
<Soheil[m]>I have the GuixSystem on my computer for several months. And I do not know much about GNU/Linux.
<Soheil[m]>When I connect to a PPPOE modem via Wi-Fi, the internet is disconnected after about 10-15 minutes (Wi-Fi is connected)
<Soheil[m]>After the internet is disconnected from the computer, I will not be able to connect to the internet with any other device! And after disconnecting the Wi-Fi connection in GuixSystem, everything goes back to normal and the problem disappears!
<Soheil[m]>Help! I am not a professional!
<Soheil[m]>Same for LAN connection!
<maximed>Apparently some things need to be added to ~/.bash_profile
<apteryx>Soheil[m]: so do I understand that 'PPOE modem' is some modem + access point (AP) combo, such as provided by Internet companies?
<apteryx>Soheil[m]: and when the Internet connection is interrupted, it stops working from any device, correct?
<roptat>Soheil[m], it stops working for all devices in your home at the same time, or only one at a time?
<roptat>(trying to see if it's the router's fault rather than your system, but I doubt it...)
<roptat>when you say same for lan, does that mean you also loose access via cable at the same time, or that it is the same symptoms: connected for 10-15 minutes by cable and then it suddenly doesn't work anymore?
<roptat>also what do you mean it goes back to normal after you disconnect wifi? do you mean it works again for 10-15 minutes, or for longer? you mean "reconnect", right?
<Soheil[m]>apteryx: Yes
<pkal>maximed: apteryx: Adding ~/.config/guix/current/bin did the job, thanks!
<pkal>seems I messed something up when installing guix
<apteryx>pkal: good you got it resolved!
<roptat>Soheil[m], also how do you know "the internet is disconnected" when at the same time you say "wi-fi is connected", what's the difference?
<Soheil[m]>roptat: all devices in my home at the same time
<apteryx>Soheil[m]: so do I understand that the problem is: when you connect your Guix System machine to your router/modem via any mean (be it LAN or wifi), it somehow causes the modem to loose its Internet connection after about 15 minutes?
<maximed>I don't know about anything ‘PPOE modems’, but is this wireless access point running from an iPhone (as a ‘hot spot’)? When my computer is connected to an iPhone, it sometimes gets disconnected after some minutes for no apparent reason.
<Soheil[m]>apteryx: Yes
<Soheil[m]>maximed: No, it's an Android…
<maximed>Soheil: Does the modem keep any logs you can access?
<Soheil[m]>roptat: I mean, after I lost access to the Internet, my Wi-Fi connection still hasn't been disconnected
<roptat>I never managed to activate the wifi or usb modem on my android...
<apteryx>Soheil[m]: wait, so that access point is served from Android? So where is the PPPoE modem in this?
*apteryx is confused
***guix_data_servic is now known as canant
<irfus>Soheil[m]: do you have any network related services enabled on Guix system, dnsmasq maybe?
<roptat>does the android itself loose connectivity?
<apteryx>Soheil[m]: from the little I know, I'm guessing that your problem probably has more to do with your particular setup than with Guix System. Perhaps your Guix System is taxing the bandwith more compared to the other devices you use, causing the Android AP to reset or die for some reason.
<irfus>Soheil[m]: to summarise your issue, a few minutes after you connect to a wifi connection with your guix system (provided by either a router or phone hotspot, I don't think it matters which), all devices on the network (including the guix system) lose remote connectivity while remaining connected to the wifi itself. And this gets resolved once the guix system is disconnected from the wifi neetwork. Is this correct?
<Soheil[m]>apteryx: I do not know exactly what you are saying…
<Soheil[m]>Suppose I am connected to a modem / router with several different devices and I use the Internet without any problems. Now I turn on GuixSystem, and I also browse the web. The connection is lost after 10-15, and this is only because of GuixSystem
<apteryx>Does it happen also if you boot another live GNU/Linux distribution on that device and repeat the scenario?
<civodul>roptat: thanks for the translation updates!
<Soheil[m]>apteryx: I have not tried
<roptat>civodul, yw, I'll try to do that more often, maybe once a month?
<apteryx>Soheil[m]: OK, if you could get that other data point that would be helpful to determine wheter it's a problem with Guix System or somewhere else.
<irfus>Soheil[m]: also might be useful to see your guix configuration, if you could share that.
<civodul>roptat: once a month sounds good to me, but perhaps it depends on the rate at which translators can update their work? :-)
<roptat>I can try and collect statistics on that
<Soheil[m]>irfus: I am sending now…
<abrenon>are there functions to inspect the content of values to ease the debug ?
<abrenon>due to my lack of understanding the language, I can't figure whether some association list I'm considering has one or two entries with a given key
<roptat>what kind of value?
<roptat>`(("a" . 1)) has one value, 1, `(("a" 1)) has one value, and it's a list, '(1)
<Soheil[m]>irfus: http://paste.debian.net/1206560/
<roptat>ah sorry, not your question
<roptat>you can try something like (filter (lambda (entry) (equal? (car entry #;(the key)) <key>)) <alist>)
<roptat>that would return only the elements associated with the given <key> is <alist>
<abrenon>hmmm I think there's (assoc-ref ) for that too
<abrenon>but I mean, when I discover a language, I like to play with simple programs, see what's going on and such
<abrenon>like, the output I get from the repl
<abrenon>can I format a value like this and print it to inspect what's going on at runtime while I'm trying to modify the opam importer ?
<roptat>assoc-ref will only give you the first value associated with the key
<maximed>'write' displays the value
<abrenon>(maybe that's a bad practice, but well I guess my question is more general: what do you folks usually do in that situation ?)
<abrenon>that sounds great ! thanks
<roptat>oh, you can try (pk <the-value>)
<maximed>(write '(stuff)) --> output: (stuff)
<roptat>it prints the value, and returns it
<maximed>(pk '(stuff)) --> output: ;;; (stuff)
<roptat>it can take more arguments, and I think it returns the last one
<maximed>And, for completeness, 'read' reads a S-exp from (current-input-port)
<roptat>I usually do something like (some-code (pk 'some-code-argument arg))
<abrenon>I'll try both : )
<abrenon>oh, pk sounds useful, so it saves a wrapping in (begin …) ?
<Soheil[m]>irfus: Is there an incorrect configuration?
<abrenon>are the ";;;" something semantic in the language ?
<maximed>abrenon: ";;;" is for comments in Guile
<maximed>(actually, simply ; is for comments in Guile. The following ;; are purely conventional)
<maximed>It is ignored by 'read'
<abrenon>oh, ok : )
<roptat>also, pk sends to stderr I think
<irfus>Soheil[m]: doesn't look like it
<abrenon>they proved very useful, thank you again
<roptat>Soheil[m], I can't see what could be wrong here... how can a system disable internet on the router...
<podiki[m]>Maybe sending some ppoe hang up or restart signal? If it is a ppoe connection. Or triggering some rate limit or reset based on usage?
<roptat>Soheil[m], from the syslogs I see a lot of jami related messages, maybe that could be it? I can't see it in your config though
<podiki[m]>Quick question: does the guix system installer so LVM in the guided partitioning?
<podiki[m]>Do lvm
<maximed>roptat: Jami can be used without the Jami service
<roptat>oh ok
<Soheil[m]>roptat: Yes, that's weird! I thought the problem was with the modem/router; However, this assumption is also rejected due to the fact that when this issue occurs with the Guix connection…
<roptat>Soheil[m], sorry, you're missing the end of the sentence or I didn't understand why the assumption is rejected
<apteryx>Soheil[m]: my original guess remains plausible, especially if you run services such as Jami or perhaps other DHT (bittorrent) based technology. Perhaps your Internet provider doesn't like it and stops your link for a while (yay for net neutrality!)
<maximed>Jami also does some hole punching. Maybe the NAT-PMP or something implementation is buggy in the router, and causes the router to crash and restart
<apteryx>or more likely perhaps your Android-based AP is overwhelmed and crashes or resets (I wouldn't trust a phone to be a very capable wifi access point/router)
<Soheil[m]>roptat: I wanted to say the issue is from Guix…
<Soheil[m]>Anyway, I'm not a native English speaker, sorry
<roptat>Soheil[m], don't worry, I understand, I'm not a native speaker either
<cehteh>is it possible to make a local substitute server a cache? when clients ask for packages that are not available then the substitute server fetches (and maybe builds) them
<civodul>Soheil[m]: there are people speaking French, German, and Spanish at least on this channel, so don't hesitate to speak one of these if it helps
<maximed>cehteh: There is no mechanism for on-demand building of substitutes in Guix AFAIK
<maximed>Is just fetching substitutes sufficient?
<cehteh>would be a start
<cehteh>i configured the substitute server as offload as well so it wont matter
<maximed>If so, using "discover?" and "publish?" in guix-service-type and guix-publish-service-type may help
<cehteh>the point is that packages only need to be fetched from the web once and then are locally available for all machines, that improves performance and is less load on the official servers
<maximed>If enabled, Guix machines on the local network will fetch substitutes from each other
<maximed>(and they will still fall back to ci.guix.gnu.org)
<cehteh>yes the thing is when the substitute is not available then the client will go to the offical server
<cehteh>yes
<cehteh>ideally i want one 'guixfarm' server here which caches and builds, and all client only fetch from that one
<cehteh>if something is not available there then the guixfarm server fetches and caches it on the clients behalf
<roptat>if you setup 'guixfarm' as an offload server, I think it would work like you want
<maximed>The client will still fetch ‘narinfos’ from ci.guix.gnu.org though (it is required to make discover? ‘secure’ (ignoring eavesdropping) on unreliable networks)
<roptat>have it the only substitute url, that way you won't build locally, and if it's not found on guixfarm, the build will be offloaded to it, which it can then either substitute from berlin or build
<cehteh>not really .. when a client ask it fo a package thats not available then the client goes itself to the ci.guix.gnu.org and fetches the package
<maximed>cehteh: To what is this a response?
<roptat>I mean, don't use ci as a substitute server on your machine, only on 'guixfarm'
<cehteh>ah
<roptat>then, your local machine will be forced to build what's not on 'guixfarm', which will trigger offloading to 'guixfarm'
<roptat>and then 'guixfarm' will have a chance to substitute from ci
<cehteh>it tries that even when offloading? i thought offloading will always build
<maximed>I think what roptat means is that the local machine will ‘build’ the package by asking ‘guixfarm’ to do it instead of doing it itself
<maximed>nevermind
<roptat>offloading doesn't force a build, it only means that, instead of a local build, it performs the build on another machine
<roptat>but if there's no need for a build, offloading will not build anything
<cehteh>ah ok thanks
<dilley>is it possible to configure user packages in a config.scm?
<cehteh>anyway would be nice if such an feature (which sould be pretty simple or?) could be added. that means one could leave out the complete offloading setup, making a substitute server itself just fetch/build the package a client asking for
<roptat>the issue is that, when you fetch a substitute you only send the name of the derivation
<cehteh>offloading would be only required for packages/channels that are unknown to the substitute server then
<roptat>if the substitute server hasn't built it, it has no way to know what that derivation is, so it can't build
<roptat>at best, it can ask it to other servers...
<cehteh>could the the protocol extended to be slightly more chatty in this case? server respons with "not locally availabel but i may get it for you when you tell me more"
<lfam>cehteh: It's easy to set up an Nginx mirror cache for substitutes
<lfam>This is actually what we do on the build farm, in front of `guix substitute`
<lfam> https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/nginx/mirror.conf
<lfam>"the point is that packages only need to be fetched from the web once and then are locally available for all machines, that improves performance and is less load on the official servers" <-- It will provide that for you
<dilley>if you cant set user packages in config.scm is there a solution to keep user profile consistent among multiple systems?
<cehteh>dilley: yeah i wanted a 'all users' layer too, but you can use manifests and syncronize them between machines for each user
<cehteh>you can install packages globally in config.scm, but you need to reconfigure the system then for each change
<lfam>I think that the upcoming `guix home` will handle that, dilley and cehteh
<cehteh>waiting for it
<dilley>lfam: oh cool. i'll wait it out.
<lfam> https://lists.gnu.org/archive/html/guix-devel/2021-07/msg00004.html
<lfam>"Guix Home is a tool for managing home envirnoment (dotfiles, user's Guix profile and user's Shepherd services) in a declarative way, very similar to how Guix System manages operating system."
<dilley>this looks amazing
<cehteh>lfam: that nginx proxy caches by itself, it wont share the guix store?
<lfam>cehteh: Right, it's totally separate from any Guix that might exist on the machine running Nginx
<lfam>It's just an Nginx cache
<cehteh>bummer :D .. mkay
<lfam>Room for improvement! But it's hard to write something performant here... it's why we use Nginx on ci.guix.gnu.org
<lfam>Like, we already have `guix publish` but it's slow
<cehteh>for small office its ok
<lfam>"The purpose of guix publish is to enable users to easily share their store with others, who can then use it as a substitute server"
<cehteh>having a frontend makes sense (did you look at varnish?)
<lfam>I think that Nginx works fine
<cehteh>yeah
<lfam>Not sure if anyone looked at Varnish
<cehteh>varnish would allow to load balance on many machines iirc, but its not so important, was just a curious question
<lfam>We actually started using Nginx for this long before ci.guix.gnu.org existed, on the old hydra.gnu.org build farm. It was a desperate hack to overcome serious performance limitations
<lfam>I'm actually not sure if we are still using that mirror.conf configuration... I'm using it for my own things
<lfam>So, it does work :)
<lfam>I'm not sure we need a load balancer... yet :)
<muradm>hi guix
<cehteh>while guix publish is http .. so it may just put a 'guix_cache' into its header if configured then the client knows that when it gets a 404 or whatever when something is not available it may ask again with more info to fetch the package from upstream servers
<cehteh>i dont know the exact queries it uses now, but i guess that should be possible eventually right?
<lfam>I don't know about these things
<muradm>sourceforge is down?
<lfam>Works for me
<apteryx>lfam: hi! About removing packages that depend on old openssl; I think it's good overall, but I wouldn't want to loose 'adb'. It seems its use of openssl wouldn't put much at risk, considering most of its uses are shuffling data over the wire between a computer and a local device
<muradm>pam-mount.sourceforge.net is broken some how...
<lfam>I understand that point of view apteryx
<lfam>But, I don't agree
<lfam>muradm: Works for me, too
<lfam>apteryx: I guess that maybe we have a difference of opinion about what Guix is. Is it an operating system distro? A collection of software? Some other thing?
<cehteh> http://pam-ssh.sourceforge.net/ apropos sourceforge .. i am missing that in guix
<lfam>I thought we would have to keep openssl-1.0 as a hidden-package for the Rust bootstrap, until we improve the bootstrap and no longer need that old openssl
<lfam>Overall I think Guix is 1) tools for software and 2) an operating system
<lfam>To me, "keep using unsupported openssl releases" doesn't fit either of those. Although I know it would hurt to lose adb, I think it's important to offer packages that we can support
<lfam>Guix is at a stage of development where the really difficult maintenance questions will begin to appear
<cehteh>cant that be kept as inferior?
<apteryx>cehteh: it could, yes. But it's not as convenient for its users.
<lfam>It's similar to how we removed the qucs packages because we removed Qt 4
<lfam>I know that made some people unhappy
<cehteh>adb is pretty important .. not that there is any hardcore free-software android, but without adb you loose all chances to have a somewhat free/owned os on a smartphone
<apteryx>lfam: there's no strong disagreement here; I'm just saying that 'adb' is a tool I use regularly and it'd be a shame to loose it because it relies on some older OpenSSL for obscure reasons.
<lfam>Funding the work to keep an up to date Android toolchain available would be high-impact thing that free software organizations could do...
<cehteh>isnt guix all about that you can have software with perhaps conflicting/old dependencies installed
<lfam>That's one nice thing about Guix cehteh. Another nice thing is that you can easily integrate packages from outside of the "official" repository
<cehteh>i dont use adb often, but its a insanely important tool when you want to install your own android image on a smartphone
<apteryx>yes, or just copy files
<cehteh>problem is that for many users it is that "you can" != "i can" ... guix maintainers often forget that there are people out there who for some reasons can not maintain/install their own packages and rely on the distribution doing that
<lfam>So, is Guix where old software goes to die? :) I thought that was guix-past
<lfam>It would be nice to have a mechanism for dealing with packages that you aren't supposed to use
<muradm>lfam: now works for me also, interesting, about 30 minutes i was getting 500, any way.. thanks
<cehteh>at least software thats important AND has no newer version should be kept imo, maybe with a big warning flag or in a 'bitrot' channel, its a pretty unfortunate situation as it causes a lot problems and has security implications. but some things are just iportant
<lfam>cehteh: There is the guix-past channel that is the "bitrot" channel, I suppose
<cehteh>ok
<lfam>I mean, I hear that it's important based on the feedback I'm getting, which is more than usual :) But it's not important enough to be kept up to date
<cehteh>well i look forward when a better release pipeline gets employed, not everyone hitting by devel bugs :D
<lfam>I'm being sarcastic, I know. The Android toolchain is not a simple update
<cehteh>devel->head->stable->archived
<lfam>Well, we can always just use the hidden-package
<lfam>Hopefully this discussion spurs some action
<cehteh>hidden sounds bad somehow :D things should be discoverable, i already have my stuggles with guix as it is now
<apteryx>lfam: I like to think Guix is about empowering users. Now, if keeping an outdated adb poses a real security risk to its users, that'd be a good reason to remove it. Otherwise I'd keep it around until we can figure out how to update it properly, since it's an important tool. A bit like we didn't purge the whole python2 dependency graph just because Python 2 is unsupported since 2020.
<lfam>cehteh: I disagree. It's important to guide users to do safe things
<lfam>apteryx: It's a valid comparison, but the difference is that we can remove adb with basically no consquence, but removing Python 2 would break the entire distro :)
<lfam>But yeah
<cehteh>thats not what i meant, i agree with you, but it needs more support
<lfam>I'm not going to remove adb in 2 weeks, don't worry. I can tell there is not a consensus on it
<lfam>But, I do think we should discuss the larger issue of "is Guix a collection of historical software"?
<lfam>And, I keep mentioning guix-past, but nobody seems to think it's a viable option
<lfam>cehteh: There's lots of hidden-packages. They are hidden for good reasons
<cehteh>for examples it would be nice if packages can have tags how they are supposed to be installed (system, user, env) .. and i always fumble that the docs dont mention which packages are in %base-services/%desktop-services this should be noted right at the package description ..
<lfam>That's a good suggestion
<lfam>I'm not sure about the implementation (tags) but the problem you describe is real
<cehteh>lfam: but those are not for direct user usage or? like adb which isnt something the system needs, but something the user wants to install willingly and needs to use interactively
<lfam>We wouldn't hide adb, ceheth
<lfam>cehteh
<apteryx>I see 'guix-past' as a good place to look for abandoned, legacy packages. 'adb' is not updated but it's not dead. I wouldn't think to configure the 'guix-past' repository to find it.
<lfam>I mean, Android 7 is dead
<cehteh>has adb some successor?
<cehteh>i am not that faimilar with the android tooling, i am happy when i get a lineageos installed
<lfam>Current Android is version 11 and nobody is issuing security updates for Android 7
<cehteh>ah yes ofc
<lfam>adb is part of Android cehteh. The current version would be the one from Android 11. So, we need to update our entire Android toolchain. But roptat pointed out that the Android build system changed since then so it's not exactly trivial
<lfam>Most distros deal with this problem of "how to make sure that vulnerable software is only used in safe scenarios" but not even trying
<cehteh>ok
<lfam>I mean, by not even trying
<cehteh>have a these tags and some maybe even mandatory "must be run in a -C env" :D
<lfam>Guix makes it a bit easier for us... but it's still makes me uncomfortable to think that we should try it
<cehteh>ok thats nannying users, not so good
<maximed>cehteh: I don't know any packages that must be run with "--container"
<leoprikler>what's the new android build system btw?
<leoprikler>gn or bazel?
<roptat>soong/blueprint
<maximed>If some packages do, that seems like a bug?
<lfam>Something called "soong"
<lfam>I guess that even the Android team couldn't figure out how to deploy bazel ;)
<roptat>yeah, it looks a bit like bazel
<lfam> https://source.android.com/setup/build
<lfam> https://android.googlesource.com/platform/build/soong/+/refs/heads/master/README.md
<roptat>I tried to build it, but it makes lots of assumptions on where it's running from...
<lfam>I noticed that at least boringssl, if not more of recent Android, requires Go. Which is tricky because our Go tooling is still kind of poor
<ruffni>is there an easy way to view the nginx-config file of 3 generations ago (without rolling back the system)?
<lfam>So, we'd need to first overhaul Go, then try to build Android... it's a lot of work
<leoprikler>tbf Go tooling in general is kind of poor tho :P
<roptat>soong is written in go :p
<lfam>That's what I said leoprikler :)
<lfam>Oh, you mean in general
<lfam>Well, ours is even worse
<maximed>ruffni: Use "guix system --list-generations"
<maximed>if provenance tracking is enabled, the configuration file can be found in the output
<lfam>I mean, we need to overhaul Go, too. Or remove it eventually
<leoprikler>Imagine linking statically in 2021, current year argument.
<lfam>It doesn't sound that different from Guix ;)
<lfam>Go basically implemented Guix internally
<leoprikler>Guix does dynamic linking tho?
<lfam>The only difference is that their static references are baked in, whereas ours can be rewritten if we really need to
<lfam>Yeah, kind of. But with unique names
<cehteh>needs 'guix defeat' -- creating an env for some package but that then uses the native inferior package management for whatever you using there, npn, cpan, ctan .. in a crappy way :D
<lfam>So, it's like static linking implemented via the dynamic linking tools
<lfam>Like, it's not dynamic in a meaningful way, except when we use grafts
<lfam>Compared to e.g. Debian
<lfam>And the Go build tools implement a memoized cache
<lfam>It's quite similar
<leoprikler>I do think that there's still a difference
<leoprikler>I mean alternatively we could not hardcode library paths at all and instead just set RUNPATH to an extremely long string
<cehteh>15 years ago i never imagined that static linking will have such a big comeback :D
<leoprikler>though there are probably limitations on the length of that string, I imagine
<lfam>To me, static linking is a big factor in Go's success, and I think it demonstrates the value of the technique. Go is successful and cross-platform in a way that other languages are not
<lfam>It has its pros and cons but there are definitely some good things about it
<lfam>For example, these binaries "just work": https://syncthing.net/downloads/
<cehteh>can we make a tool that uses usermodelininux and links *everything* to it, busybox/userland/application/squashfs image ... then you have one single executable which starts a fully configured container :)
<lfam>Syncthing wouldn't be as successful if it was not cross-platform or hard to deploy
<leoprikler>Do they "just work" on Guix tho?
<lfam>Yup!
<lfam>I've used them on Guix System
<cehteh>i am working on a distributed filesystem, hoping eventually that replaces syncthing for me :)
<leoprikler>cehteh you're probably thinking of something 'guix pack'-esque
<ruffni>maximed: i did (without the double dashes ;) not sure whether provenance tracking is on, though. could i then use guix time-machine? or how would i go from there?
<leoprikler>At least some parts of soong are sane tho: https://android.googlesource.com/platform/build/soong/+/master/docs/best_practices.md#network-access
<cehteh> https://github.com/cehteh/uberallfs
<cehteh>notthing useable yet
<maximed>ruffni: do you see ‘configuratiebestand: /gnu/store/2anlfmipcmp2aczhndqjhcswdp34p4m7-configuration.scm’ or something like that in the output?
<maximed>If so, provenance tracking is enabled
<maximed>That file is the Guix System configuration. Presumably it contains the nginx configuratino
<maximed>There's also canonieke bestandsnaam: /gnu/store/m6a21z3drsr0mg7ba42q4xz1gs6abyj0-system
<maximed>Maybe the nginx configuration can also be found in the "/etc/" subdirectory
<ruffni>ah, yes, so it is enabled! thanks
<ruffni>but: this is only the guix config, i'm interested in the /gnu/store/<hash>nginx.conf file (which was used in that generation)
<maximed>ruffni: maybe do guix graph --type=references /gnu/store/m6a21z3drsr0mg7ba42q4xz1gs6abyj0-system
<maximed>/gnu/store/<hash>nginx.conf should appear somewhere in the output
<lfam>You might also be able to look into the old profiles, at /var/guix/profiles ...
<lfam>Or some path like that
<lfam>The system profiles should all be in there
<maximed>lfam: Apparently, the nginx configuration does not appear in /.../etc/
<maximed>And apparently ruffni is looking for old generated nginx configurations
<ruffni>lfam: yeah, i already found that. unfortunate. so as a quick hack (and since being on a reeealy young system this was feasible): find /gnu/store/ -name "*-nginx.conf"
<ruffni>i thought i could find out which is which by looking at the timestamps. but these are all UTC 0
<ruffni>maximed: thanks! this seems to be what i was looking for!
<lfam>Nice
<lfam>If you ever do need to find things the "hard way", `echo /gnu/store/*string*` is faster than find
<apteryx>is milano a beefy machine?
<civodul>apteryx: i think so
<cbaines>apteryx, 32 cores and 64GB of RAM
<cbaines>it has quite slow storage though
<cbaines>why do you ask?
<apteryx>cbaines: OK!
<iskarian>lfam, do you have a reference for specific issues with Go building boringssl?
<apteryx>cbaines: I'm prospecting for a machine to run a jami service which would be in the hands of the guix-sysadmin, for our own communication needs
<iskarian>Also, Go does support dynamic linking Go modules, it's is a bit rough, but we could look into it?
<iskarian>s/it's is/it's/
<cbaines>apteryx, I'd probably consider the networking/port requirements. I think there's a firewall between milano and the internet
<Soheil[m]>Solved!
<Soheil[m]>As roptat said, the issue was Jami
<Soheil[m]>I disabled Jami foreground/background service and my problem was fixed after a long time!
<roptat>\o/
<Soheil[m]>It's really weird and funny that for so long, Jami foreground/background service was causing this! 😂
<roptat>although, not nice that you can't use jami
<Soheil[m]>Thanks! ❤️ maximed apteryx irfus
<Soheil[m]>Endless Thanks! ❤️ roptat
<Soheil[m]>I love Guix community ❤️ 😉
<apteryx>Soheil[m]: great you found the cause! Now you could try disabling UPnP support in Jami to see if it was that.
<apteryx>cbaines: OK; we'd have to test but so far Jami seems to be able to mediate through pretty much anything AFAICT, since the connections are always opened from the inside.
<roptat>I'm trying to build some old haskell software, and I'm not a haskell programmer. I get some weird errors "No instance for (Semigroup Opts) arising from the superclasses of an instance declaration"
<roptat>ok, apparently I had to define an instance for Semigroup Opts, and it's happy
<roptat>whatever that means ^^'
<dstolfa>Soheil[m]: it's one of the best communities out there imo :D
<dstolfa>roptat: i haven't written haskell in ages, but haskell has typeclasses. a Semigroup class is probably what you might expect of an algebraic semigroup, and Opts is probably your run of the mill type. defining an instance of Semigroup for Opts is just defining how semigroup algebraic operations would work on an Opts type
<roptat>yeah, I managed to do that, I know what a typeclass is, thankfully
<roptat>now I have to sort out why ld doesn't work
<roptat>I guess because I'm trying to link to a recent library
<dstolfa>roptat: glad you got it working :). are you doing some formal stuff? i see you mentioning coq up there and haskell here, which i can only assume is probably coq generating some executable specification? :)
<roptat>right now it's some haskell code that's trying to link to z3
<roptat>no coq involved, but coq is where I learned about typeclasses
<cehteh>now i should address the remaining issues i have, no ctrl-c in kitty, crappy font rendering in urxvt, any idea what causes that? do i need some additional setup for fonts?
<roptat>maybe it's urxvt itself not finding the fonts at the proper location? (hard-coded path, ...)
<dstolfa>cehteh: have you tried running `fc-cache -rv`?
<dstolfa>that tends to fix a lot of problems
<cehteh>doesnt fix it here
<dstolfa>:-(
<cehteh>kitty and emacs have fine font rendering only urxvt is crap
<cehteh>but kitty ignores ctrl-c
<cehteh>another problem :D
<dstolfa>the kitty ignoring ctrl-c is weird... i'm running kitty on guix system and on a foreign distro using guix just fine
<roptat>do you use a keyboard layout where c is not at he same physical position as on qwerty?
<cehteh>nope
<cehteh>it works in rxvt
<cehteh>do i need to install some terminfo or such?
<roptat>no idea
<cehteh>ah got the ctrl-c working, i imported a kitty conf from some other installation which i never tested much (failed wayland on debian) and kitty_mod was set to ctrl :D
<roptat>oh
<roptat>mh, builder for `/gnu/store/dsh785vcwvcab3hz05pzldald61sg7pv-ghc-descartes-0-0.5eb0eea.drv' failed to produce output path `/gnu/store/7yzlv473ap6nbraqp8hhmcid758myz7g-ghc-descartes-0-0.5eb0eea-static'
<roptat>I never specified a static output, and even specifying explicitely (outputs '("out")) doesn't work, does the build system force a static output?
<cehteh>other thing, when i want wireguard dynamically configureable by the user with the nm-applet, what do i install and under system or user?
<cehteh>these things could be improved documentaton wise
<roptat>the wireguard service would be entirely managed by the shepherd
<cehteh>would/could/must?
<roptat>will
<cehteh>i see that one can configure it as system service, but when i want network manager to do that?
<roptat>I see we have packages for network-manager-{openvpn,vpnc,openconnect}, but no wireguard
<cehteh>yes
<cehteh>thats what made me wonder
<roptat>maybe with a network-manager-wireguard, it would work better? There's a config option in the nm service
<roptat>you will have to write that package
<cehteh>currently when i open the 'add vpn' dialog as user from nm-manager it doesnt show anything
<roptat>see vpn-plugins here: https://guix.gnu.org/manual/devel/en/html_node/Networking-Services.html#index-network_002dmanager_002dconfiguration
<cehteh>and to begin with, to make those available i dont even know if these packages need to be installed in the system or as user
<roptat>neither, they must be specified in the nm config
<roptat>(in the system config)
<cehteh>would be cool if herd gets some 'sudo' like functionality, so that users for example can do 'herd restart cups' or somesuch
<roptat>you can do sudo herd restart cups (if that's a system service)
<roptat>but you can also use the shepherd for user services
<cehteh>yes they can already 'sudo herd restart ..' ... but if integrated in herd this could do permission checks per service and request
<cehteh>writing a sudoers file which allow only certain commands like 'restart cups' but not 'stop cups' ... but 'stop wireguard' would be allowed etc would become extremely ugly
<cehteh>yes seamless integration between user and system herd i am talking about
<roptat>but then there would be a clash between a potential user cups service and the system cups service
<cehteh>not necessary it could detect that and then may need a --system or --user flags to disambiguate (while running cups 2 times is arguably ugly, but this was only any example)
<cehteh>without --system/--user it could prefer the --user if exists, anyway as long its well defined its possible
<roptat>having some troubles generating a pot file for the website: "ice-9/read.scm:126:4: In procedure read-expr*:" and "#<unknown port>:1:3: unexpected end of input while reading subexpression of ,@"
<roptat>having played a bit with POTFILES, one of the issues seems to be this ,@: https://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree/website/apps/download/templates/download-latest.scm#n123
<roptat>another one would be this ,@: https://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree/website/apps/packages/templates/package.scm#n87
<ruffni>i'm trying to configure my nginx with ssl (using certbot-service). are the certificates created before nginx is started? can i expect to find the certificates at /etc/letsencrypt/live ?
<roptat>ruffni, there's an issue with certbot if this is the first time you generate the certificates
<ruffni>i see :)
<roptat>certbot needs a running nginx to be able to answer the challenge and create the certificate
<ruffni>and yes, this is
<ruffni>so i first run it without ssl?
<roptat>but nginx cannot run if it's configured to use the certificate first
<roptat>yes, you need to run without ssl first, generate the certificate and reconfigure
<the_tubular>Is there anything I should add to my config.scm if I plan to use docker ?
<the_tubular>There's probably something to start the daemon right ?
<dstolfa>the_tubular: docker-service-type should be everything you need
<the_tubular>I don't know what that is ...
<dstolfa>the_tubular: see here https://guix.gnu.org/manual/en/html_node/Miscellaneous-Services.html
<abrenon>roptat: yes, static outputs seem to be produced as part of the normal process (at least I get them all the time when compiling my programs and never worried about that)
<the_tubular>There's no example with docker dstolfa
<roptat>abrenon, I just added a phase to create an empty output
<roptat>that way guix is happy
<abrenon>I've seen that you've managed to fix the Semigroup instance thing, great
<abrenon>it's a very well-known thing
<abrenon>I don't know the amount of material you've found about it, but just in case: have you read this https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid ?
<roptat>nope, I just found an example where I had to do "instance Semigroup [a] where (<>) = (++)", I tried a few things and found a solution for my type Opts
<abrenon>TL;DR a necessary fix of a bad earlier design choice
<roptat>basically copying the mappend from the "Monoid Opts" instance I had
<rekado> https://lists.gnu.org/archive/html/guix-devel/2021-08/msg00009.html
<rekado>civodul: !
<rekado>civodul: what a long, productive run this has been!
<civodul>rekado: heh thanks :-)
<civodul>we're looking for new folks to take these two seats!
<civodul>if you're reading this, consider making yourself known :-)
<dstolfa>oh! thanks for all of the work you've put into the maintenance and everything civodul!
<mroh>the_tubular: just add `(service docker-service-type)` to your config.
<abrenon>you can observe the change itself between https://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Monoid.html and https://hackage.haskell.org/package/base-4.11.0.0/docs/Data-Monoid.html
<roptat>I can't really read haskell though ^^'
<dstolfa>the_tubular: sorry, missed your message... thankfully mroh to the rescue! :)
<ngz>Hello. I get a missing /doc/guix-cookbook.ru.texi error when I try to call make on the repository.
<rekado>ngz: run ./bootstrap
<the_tubular>Thanks mroh :)
<roptat>so fast :)
<abrenon>oohh sorry, the big difference to notice, underlined by the "NOTE: Semigroup is a superclass of Monoid since base-4.11.0.0." is between
<abrenon>class Monoid a where
<abrenon>vs.
<abrenon>class Semigroup a => Monoid a where
<ngz>rekado: duh. OK. Thank you :)
<roptat>superclass makes more sense to me than the syntax "=>", thanks :)
<the_tubular>I'm getting : error: docker-service-type: unbound variable
<dstolfa>the_tubular: you probably need to import the (gnu services docker) module
<abrenon>the second, more recent, puts an additional condition to become a Monoid for a type a: you must have provided a proof that it's a Semigroup before even trying to prove that it's also a Monoid
<abrenon>I don't really like "Superclass" that sounds very object-oriented to me, but if that the term they use, I guess it's technically correct
<roptat>and suddenly => makes sense
<dstolfa>abrenon: while i agree that this is technically correct, it's very annoying from a programming standpoint...
<abrenon>yeah, this special arrow is a "hypothesis"
<dstolfa>did they really name it "hypothesis"?
<dstolfa>it's literally an implication arrow
<abrenon>no, I call it that
<dstolfa>ah
<abrenon>ratther like a turnstile in a logic derivation
<abrenon>the best understanding I can give of it is: assuming this stands, then you have […] (what follows)
<dstolfa>well, it's just implication
<dstolfa>or a function
<abrenon>like, "hey, I can sort any list !"
<dstolfa>not a haskell function, but a logical notion of a function
<dstolfa>i guess ocaml might call it a "functor"
<abrenon>really ? any list ? don't you need to be able to compare elements ?
<abrenon>ok, that's right: sort :: Ord a => [a] -> [a]
<the_tubular>dstolfa is it just (gnu services docker) ?
<dstolfa>the_tubular: i think so, not 100% sure
<the_tubular>Cause this throws me the same error I had before
<abrenon>«assuming Ord a (is true), sort is a function from [a] to [a]
<abrenon>»
<roptat>but nothing attached to that function?
<abrenon>no
<abrenon>and that's the big difference with functors
<roptat>like a proof it's actually sorted at the end?
<abrenon>and what sold Haskell to me and made me stop to try and "fix" ocaml with a useless polymorphism it didn't need
<the_tubular>Yeah, (gnu services docker) is not working :/
<abrenon>well yeah sort is such proof, and the proof is correct only if you can compare (that is, provide a proof that you can compare elements…)
<roptat>(now I'm trying to see the similarity with coq that doesn't exist :p)
<abrenon>but it does exist: proofs are programs and conversely, Curry-Howard correspondance is a thing
<roptat>I mean sort is any function from [a] -> [a]
<roptat>by itself it's not really a proof of anything...
<roptat>anything useful at least
<abrenon>no, not any list
<dstolfa>roptat: all you need to know that any term that type-checks to a given type under a sound type-theory is a proof of an equivalent logical proposition given by an isomorphism in the two categories describing the type theory and logic
<dstolfa>it's not much more complicated than that really
<abrenon>how can you sort when you can't compare elements ?
<dstolfa>haskell just tries to be fancy with notation and naming
<dstolfa>but it's really simple
<abrenon>yeah, it's absolutely just syntactic sugar
<roptat>I mean, sort: _ -> []
<abrenon>the compiler handles the polymorphism and passes the proofs around as needed
<maximed>dstolfa: "sort :: Ord a => [a] -> [a]" internally desugars to something like "sort :: (a -> a -> Ordering) -> [a] -> [a]
<abrenon>but like dstolfa it's really what you'd have done by passing the input module to the functor, to get a sorter module that can sorts lists of elements of your type
<maximed>abrenon: GHC doesn't really pass any proofs around. There are no proofs in Haskell AFAIK, unless you refer to Liquid Haskell
<abrenon>sorry, I call them "proofs" but they are really implementations of course
<maximed>ok
<abrenon>it's just that "instance" and "where" parlance that makes the parallel explicit
<abrenon>to me it really sounds (on purpose) like doing maths: "this type I've just defined as such property (instance …) as I'm going to prove (where) and the implementation is a 'proof' that it indeed does"
*dstolfa recently turned his terminal foreground orange and finds it very pleasant on the eyes...
<abrenon>I must go but it was nice talking about ocaml and haskell with you all
<abrenon>thank you
<dstolfa>abrenon: thanks! cya around :)
<abrenon>see ya : )
<maximed>tbf, in something like Coq, you can include, say, the Monad laws in the record type for Monad instances
<roptat>dstolfa, agreed :)
<maximed>so if you have an instance of "Monad a", you know the monad laws are upheld
<roptat>yeah
<dstolfa>maximed: yeah but surely that depends on the underlying CIC, which hindley-milner (and in turn haskell) doesn't have
<dstolfa>i haven't done much coq, but that sounds like a very dependently-typed thing
*dstolfa mostly used isabelle, HOL4 and ott -> isabelle when it comes to proofs due to SML having a formal specification
<roptat>so we do have a bit of people interested in formal methods in guix :)
<roptat>a few*
<roptat>not sure what the English term should be
<the_tubular>Anyone knows how to start docker in your config.scm ?
*dstolfa wonders if there's a single lisp programmer out there that isn't interested in mathematics or just outright a mathematician
<maximed>dstolfa: dependent types can be avoided actually (and can avoid universe level trouble sometimes), albeit by separating the record "MonadImpl (m : Set -> Set)" for the implementation of the monad and the proof of the monad laws "MonadLaws (m : Set -> Set) (impl : MonadImpl m) { law1 :: forall x y, something = something syntactically different; other laws I forgot } -- oops that's dependently typed
<cehteh>some may be linguists :)
<vats>the_tubular: Docker service is documented in Miscellaneous Services: https://guix.gnu.org/manual/en/html_node/Miscellaneous-Services.html
<maximed>rather mild though IMO
<sneek>Welcome back vats, you have 1 message!
<sneek>vats, nckx says: specification->package+output
<maximed>It has been a while since I used Coq, the syntax is probably wrong
<the_tubular>vats adding this : (gnu services docker)
<dstolfa>maximed: i always feel like anything that doesn't take a convoluted reflexivity proof that's a path using HoTT is "lightly dependently typed", but i may be too deep in this mess.
<the_tubular>Doesn't work, is there somewhere I need to add it ?
<dstolfa>i made the mistake of going to local weekly category theory seminars, which was just an alias for "algebraic topologists talk all about HoTT" and one thing lead to another...
<vats>the_tubular: (gnu services docker) would go in your (use-modules ...) form.
<roptat>the_tubular, in your use-modules form
<roptat>at the top of the file
<vats>To get a basic setup running you can write (service docker-service-type), iirc.
<muradm>hi guix
<muradm>is it fair to have same package compiled with different flags?
<maximed>for what purposes, muradm?
<maximed>and what flags?
<the_tubular>I think that works, now I'm getting : service 'dockerd' requires 'elogind', which is not provided by any service
<sss1>hi all, does guix have something similar to nix ~/.nixpkgs/config.nix ?
<drakonis>sure?
<maximed>sss1: I'm not familiar with nix, can you explain what "nix ~/.nixpkgs/config.nix" does?
<vats>the_tubular: So there must be a `services` form in your config. You need to provide (elogind-service) and (service docker-service-type) to that form.
<sss1>maximed: it's used to ovverride/redefine packages internals and options, like this: https://bpa.st/IP6A
<maximed>sss1: there is "guix build -f some-code-evaluating-to-a-package-object.scm"
<maximed>e.g., (package (inherit hello) (native-inputs `(("autoconf" autoconf) ,@(package-native-inputs))))
<sss1>interesting
<sss1>thx for info
<maximed>that will compile "GNU hello" with autoconf added to native-inputs (fairly useless though)
<the_tubular>vats does elogind also need something in gnu modules ?
<sss1>ok, got it, so i can ovverride any part of package ?
<muradm>i use pam-mount module to mount /run/user/<userid> dir with seatd. pam-mount also includes pmvarrun program that kinda keeps track of number of user sessions. while it seems to be possible to have multiple pam_mount.so entries in PAM, that pmvarrun program has no context in which counter is kept. pam-mount is compiled in guix to keep counters under /run/pam_mount/<username>. In order to avoid collisions with other pam_mount.so users, i
<muradm>was thinking to have seatd-pam-mount, compiled to keep counters under /run/seatd/pam_mount/<user>. pam-mount has a compilation flag for where those counters should be stored
<maximed>sss1: technically, it's not really overriding a package, but rather defining a variant of the package that has some fields set somewhat differently
<maximed>I don't know how ‘overriding’ in nix works
<roptat>I think it's similar to "parameterized packages" which we don't have (yet?)
<drakonis>overriding is r
<drakonis>is uh
<maximed>but yes, you can change the 'inputs', 'propagated-inputs', native-inputs'
<sss1>ah, it's just term what i used, it's probably called differently in nix
<drakonis>one moment, it's in the docs
<muradm>seatd-pam-mount would inherit standard pam-mount package with only one flag changed
<maximed>and the source code used ('source')
<drakonis> https://nixos.org/guides/nix-pills/nixpkgs-overriding-packages.html
<maximed>and, if required, you can add or replace build phases, or #:make-flags, etc. ('arguments' field)
<drakonis>it serves a purpose to replace a function with another
*roptat afk
<vats>the_tubular: I think it's provided by (gnu services desktop)
<maximed>muradm: Seems a reasonable use case to me, though I don't know how pam_mount.so and pam in general works
<maximed>though some configuration setting would be preferred I think
<maximed>"pam_mount.so where_are_the_counters=/run/seatd/pam_mount" or something like that
<maximed>That might require changes upstream though
<the_tubular>vats That seems to work, thanks for answering my noobish questions :)
<muradm>maximed: pmvarrun -u <user> -o 1 will increment number of mount uses. of course in the best case it should be pmvarrun --context seatd -u <user> -o 1, but there is no way to do it out of the box in pam-mount (checked the sources). and it would hard to push something to pam module. easier seems to have package compiled with different target path.
<vats>the_tubular: You can check if any service is running by `sudo herd status` on the shell.
<the_tubular>Yes, I know that one. herd isn't foreign to me, but the scheme part ... is harder :P
<vats>the_tubular: I see. I'm a baby schemer as well.
<vats>crawling all over the docs to figure out basic stuff.
<the_tubular>I'm getting : sudo: policy plugin failed session initialization
<the_tubular>While using sudo
<lfam>iskarian: I don't know if anybody ever tried building boringssl for Guix
<lfam>I think it's probably not something we'd package. Rather, it's embedded into programs that use it
<iskarian>Ah, I see.
<muradm>this didn't work to add configure flag, why? https://paste.rs/Dxe
<lfam>Did you ever define ,flags?
<roptat>I think "(#:configure-flags ''())" is incorrect, should be (#:configure-flags flags)
<roptat>(here flags is bound to the value of #:configure-flags in the parent package)
<the_tubular>Anyone knows why sudo is throwing me this error ?
<muradm>lfam: damn.. typeo.. this works https://paste.rs/dDZ, thanks
<the_tubular>Welp, apparently I killed sudo :(
<lfam>I googled your error message, and the first result is this: https://stackoverflow.com/questions/54345009/pam-open-session-system-error-and-sudo-policy-plugin-failed-session-initializa
<lfam>Another result also mentions password expiration
<lfam>Maybe your password had an expiration date set?
<lfam>In general, the more details that you give, the more likely you are to get answers
<the_tubular>Umm, I set up my password using the guix installer
<lfam>Okay
<the_tubular>I have no idea if it defaults using a expiration
<lfam>I'd be surprised
<the_tubular>Anyway I can confirm this ?
<lfam>Maybe `passwd --status the_tubular`?
<the_tubular>This returns : P 07/22/2021 -1 -1 -1 -1
<the_tubular>From this I guess there's no expiring date correct ?
<lfam>Not sure, `man passwd` has the info about what each field means. I've never used `passwd --status` before
<the_tubular>I'd be surprise, because it happens right after I did sudo guix system reconfigure /etc/config.scm
<lfam>For me on Debian it looks like "lfam P 06/13/2017 0 99999 7 -1"
<lfam>Hm
<lfam>I would reboot in that case
<the_tubular>Haa, good idea!
<the_tubular>Let me do that first
<lfam>Reconfiguring can leave your system in an inconsistent state and you should really reboot after
<the_tubular>Can't even sudo reboot ...
<lfam>I would just run `sync` and then power cycle it
<lfam>It should be fine
<the_tubular>su root gives me : su: System error
<lfam>Also, if you have allowed root login, you could switch to another TTY and login as root
<lfam>I'm not sure if it allowed by default on Guix System
<the_tubular>I tried that, while logging in, it shows a message to the terminal
<the_tubular>And kicks me right out of root
<the_tubular>Should I just use the power button ?
<the_tubular>Or did I borked it really bad ?
<lfam>You can probably judge if it's safe to power cycle. Like I said, I would first sync the filesystems and then cut the power
<the_tubular>Welp, rebooted and now I'm in grub rescue mode ...
<the_tubular>This is going downhill real fast ...
<lfam>Yikes
<the_tubular>It says my disk uid isn't found, but I didn't mess with that at all
<lfam>Is this the first time you reconfigured?
<the_tubular>No, but the first time I rebooted after a reconfifure
<the_tubular>I barely know how to use grub-rescue though
<lfam>I'm sorry, this is really not supposed to happen!
<lfam>If the disk can't be found, it either means that 1) the UUID in config.scm is incorrect or 2) the kernel is missing some module required to use the disk. There *are* other possibilities but somewhat less likely in my opinion
<lfam>I also don't know how to use grub-rescue. I hope somebody else can help!
<the_tubular>Yeah, hope someone can help me figure this out ... :/
<lfam>When you reconfigured, do you remember what you had changed in your config.scm?
<the_tubular>Last time I reconfigure ?
<the_tubular>Or all my reconfigure before rebooting ?
<the_tubular>Last time I reconfigure I added (gnu service desktop)
<lfam>I guess all of them
<muradm>there is (substitute "file-name" list-of-substitutions), is there easier way to just delete contents by line number?
<lfam>I'm mostly wondering if you changed the kernel, firmware, file-systems, or bootloader the_tubular
<lfam>muradm: I would use a patch file for that
<lfam>muradm: It's definitely possible to use Scheme for that, but reviewers would ask you to use a patch instead
<the_tubular>Yes, I had to use a LTS kernel to use ZFS
<lfam>I see
<lfam>Which one?
<the_tubular>I used 5.10
<lfam>From Guix?
<muradm>lfam: where to store patch file then?
<lfam>In our source code, they are stored at 'gnu/packages/patches' and registered in 'gnu/local.mk'
<the_tubular>(define my-kernel linux-libre-5.10)
<the_tubular>This is what I used
<lfam>I'm not sure how ZFS is supposed to work on Guix
<muradm>lfam: that is hard option for me.. :)
<the_tubular>Yeah, it's iffy lfam
<the_tubular>Well it was working fine ...
<the_tubular>Now I'm stuck in grub-rescue :(