IRC channel logs

2022-07-13.log

back to list of logs

<podiki[m]>I see your messages yarl at least
<podiki[m]>(and in the logs)
<yarl>:)
<rekado_>apteryx: actually, lvtk was updated to version 2! This can’t work. It’s a completely different API. We should fix that by adding lvtk-1 and renaming this to lvtk-2
<Guest11>i have issues with emacs-guix: when i M-x guix ENTER p n it is "Starting Guix REPL ... [3 times], then i get "Symbol’s value as variable is void: geiser-repl-company-p". when i repeat that step it says: Starting Guix REPL ... [2 times]" and finally: "geiser-repl--wait-for-prompt: No prompt found!" do i need to configure company-mode in a certain
<Guest11>way? does anyone here have some example config somewhere online i could take a look at?
<rekado_>Guest11: can you tell us more about how you installed it?
<Guest11>through Guix (System)
<rekado_>geiser-repl-company-p i defined in geiser-repl.el
<Guest11>it's part of my home config; in my .emacs there's the line "(guix-emacs-autoload-packages)"
<rekado_>do you have that variable?
<Guest11>how do i check that?
<Guest11>WDYM by "have"?
<rekado_>C-h v geiser-repl-company-p
<Guest11>no, that's not defined
<rekado_>what about M-x find-library RET geiser-repl
<rekado_>does that jump to a file at /gnu/store…-emacs-geiser… ?
<Guest11>huh, no. it jumps to my old elpa dir. does emacs load everything from ~/.emacs.d automatically?
<rekado_>Guest11: I don’t know. But this seems to be the problem. Can you remove it or move it out of the way?
<rekado_>have you perhaps pushed .emacs.d/lisp onto the load-path?
<rekado_>“(elisp)Library Search” is all about where Emacs looks for libraries
<Guest11>i don't think so
<Guest11>anyways, removing .emacs.d/elpa fixed the issue :) thanks rekado_!
<Guest11>ahhh, this is nice
***attila_lendvai_ is now known as attila_lendvai
<attila_lendvai>i'm running some tests, and all i get in the logs is: "shepherd[1]: Service marionette (PID 271) exited with 1." any hints on how to debug this? i see no output anywhere else... :(
*attila_lendvai wonders what happened with https://issues.guix.gnu.org/54216
<desk_lamp>Anyone know how to set up Artanis?
<desk_lamp>Not having a lot of luck with the documentation.
<jab>desk_lamp: if you figure out how to use it let me know!
<jab>I'd love to turn my blog into a 9 articles free. 1 article you pay to see.
<jab>and I think you need a server for that.
<jab>no ludo is gone!
<boud>zimoun or others interested in Maneage-Guix complementarity and how these can help each other - I've put a 'task' at https://savannah.nongnu.org/task/index.php?16228 to focus key points so far.
<desk_lamp>jab You could do it on the client if you want. It'd be easy to get around, but requiring authentication might be heavy-handed.
<jab>desk_lamp: are you saying a static website could have a login authentication method?
<jab>that is trippy.
***daviid` is now known as daviid
<apteryx>rekado: thanks for taking care of it
***alex__ is now known as alexdesiqueira
<PotentialUser-14>Hello. I am trying to ship a python/tkinter application as docker container built with guix pack. I propagate the $DISPLAY variable, but the app starts to fail _tkinter.TclError: couldn't connect to display ":0". Has anyone tried this yet and give me a hint, what I am doing wrong?
<jpoiret>you'll need to share /tmp/.X11-unix/ with the container
<jpoiret>DISPLAY=:0 only tells the application which socket to connect to, but the sockets must be accessible
<PotentialUser-14>jpoiret: I will give it a try. Thank you
<fnstudio>hi, i'm using 'guix import texlive' to try and define a texlive package; at some point in the output i get 'simple-texlive-package' but i'm not sure where this comes from in terms of modules to be imported
<fnstudio>i tried with '#:use-module (gnu packages tex)' but that doesn't seem to make guix happy
<fnstudio>guix unhappy = 'error: simple-texlive-package: unbound variable'
<Franciman>hi, I am installing guix, but when I boot the install system i get an error saying:
<Franciman>unknown filesystem
<Franciman>unkwnown filesystem
<Franciman>..
<Franciman>uhm what is happening?
<Franciman>what filesystem does it want to load?
<Franciman>i have a openSUSE install on this pc
<fnstudio>(could it be because 'simple-texlive-package' is not exported/exposed by 'gnu packages tex')
<fnstudio>ok, i copy and pasted(*) the entire 'simple-texlive-package' definition in my custom code (instead of importing it) and it "works"
<fnstudio>(*) as a Real Programmer would do :D
<fnstudio>"works" means that the package definition is parsed correctly when i do a 'guix search --load-path=... package-name'
<fnstudio>'guix install --load-path=... package-name' fails for reasons that i'm currently investigating
<Franciman>oh solved. I was using the wrong usb port apparently loool
<fnstudio>the build phase goes well, apparently, but install fails with a 'wrong-type-arg "string-append" "Wrong type (expecting ~A): ~S" ("string" #f) (#f)'
<rekado>fnstudio: yes, it’s not exported. It is not a public API because it’s ugly and in need of revision.
<fnstudio>rekado: ah i see, np, thanks
***stikonas_ is now known as stikonas
<fnstudio>rekado: which might be related to my 'guix install' failure? it looks like a string-append fails because something is not where it's supposed to be in the upstream package...
<fnstudio>oh sorry for mentioning you
<fnstudio>that was mostly me thinking out loud
<rekado>I’d need to see the package definition for that
<fnstudio>of course (it's basically what i get from 'guix import texlive mdframed')
***wielaard is now known as mjw
*rekado is cooking lunch
***Dynom_ is now known as Guest4238
<fnstudio>ok, it was just a matter of adding '#:trivial? #t' as an argument to simple-texlive-package - hopefully, unless i silently broke the package by doing that :)
<fnstudio>let's play with it...
<rolodex>Hiya. I've been using guix for a couple of years on a foreign distro without manifests, installing a couple of dozen packages through it, and I decided this morning to start with manifests. I could do with a bit of help. I ran `guix package --export-manifest > manifest.scm`, and then extracted packages into their own. I started with a games
<rolodex>manifest, with frozen-bobble in it, to test. I ran `guix package --manifest=games.scm` and it installed frozen bobble, which I wasn't expecting it to as I already have it on my system. Ok, whatever, but the real issue is that now with `guix package --list-installed`  the only package it lists is Frozen Bobble, and not ones I need for work (emacs,
<rolodex>etc). I've already created an emacs.scm manifest so I guess I could just install that, but I feel like I'm misunderstanding something? Is there no way I could carry on using the packages which are already on my system somehow?
<rolodex>Scratch this, running guix package on my emacs.scm seems to have fixed things, and used the packages already on my system. :)
<rekado>“guix package --manifest” will install *only* the packages listed in the manifest to the default profile
<rekado>if the manifest only contains frozen bubble then that’s what you get
<rekado>use separate profiles if you watn to use separate manifests
<rolodex>Right, that makes sense. Hence why why running guix package --manifest with another manifest has again wiped emacs?
<Franciman>when a package usually puts a file in /etc/, where do i find the file in guix?
<rekado>rolodex: correct
<rekado>rolodex: use “-p /somewhere/else -m emacs.scm” to install all the emacs stuff somewhere else
<rekado>you can load the profile at that other location with “guix shell”, or you could source its etc/profile file to augment the env vars
<jpoiret>Franciman: under $(guix build thepackagename)/etc
<Franciman>jpoiret: thanks a lot
<Franciman>uhm when running sway
<Franciman>I get: XDG_RUNTIME_DIR is not set in the environment
<Franciman>does this happen to you as well?
<rolodex>Thanks rekado. Sorry for all these questions, I really want to get onboard with guix propperly and be a contributing member but I'm still climbing the learning curve.
<rolodex>Looking at the cookbook, I had understood that I should create a separate profile for each manifest. ie, a games profile, an emacs profile, a terminal profile, a krita profile, etc. Is that correct?
<rolodex> https://guix.gnu.org/cookbook/en/html_node/Basic-setup-with-manifests.html
<rolodex>So I would have a file structure like .guix-extra-profiles/games/games and .guix-extra-profiles/emacs/emacs, and store my manifests in, like .guix-extra-profiles/emacs/manifest.scm
<pashencija[m]>Is it possible to either
<pashencija[m]>1) Disable initramfs
<pashencija[m]>2) Pack all kernel modules into it
<pashencija[m]>under GUIX?
<pashencija[m]> * Is it possible to either
<pashencija[m]>1. Disable initramfs
<pashencija[m]>2. Pack all kernel modules into it
<pashencija[m]>under GUIX?
<pashencija[m]>I'm stuck with debugging "no rootfs" issue on my machine
<pashencija[m]>* my machine(CM4)
<pashencija[m]>While the same image boots fine on PI4b
<pashencija[m]>* my machine(CM4-based)
<jpoiret>Franciman: do you use %desktop-services? (if you're on guix system)
<jpoiret>eg. do you have a DM like GDM or SDDM?
<jpoiret>these usually set the XDG dirs on login, but if you're manually launching via the shell you'll need to set them manually
<GNUtoo>hi, how do I use something like (assoc-ref %outputs "out") in an build or install function?
<GNUtoo>It says it's not a string, so I guess I need to make it a string but ,@(assoc-ref %outputs "out") also fails
<GNUtoo>For the string the error is: Wrong type (expecting string): (string-append "LDFLAGS=-lssl -lcrypto -L . -Wl,-rpath=" (quote (assoc-ref %outputs "out")) "/lib")
<ss2>Gnome's sushi is still failing to build.
<ss2>There was a fix just recently, but the source url is a 404.
<ss2> https://paste.rs/JzD
<unmatched-paren>GNUtoo: can you show the whole package?
<unmatched-paren>What uses does the actual `guix` package in gnu/packages/package-management.scm have, other than as an input to gwl, guix-modules, et cetera?
<unmatched-paren>I see it's used by <guix-configuration> and other things in gnu/services/base.scm.
<unmatched-paren>But what for?
<GNUtoo>unmatched-paren: I'll pastebin that
<GNUtoo> https://paste.gnutoo.cyberdimension.org/guix/13-07-2022-1/guix.scm.txt
<GNUtoo>here it says "error: %outputs: unbound variable"
*GNUtoo tries with outputs instead
<GNUtoo>same issue
*GNUtoo will make 1 more test
<unmatched-paren>GNUtoo: looks like you've got an unquote in a quote
<unmatched-paren>not a quasiquote
<unmatched-paren>, only works inside `
<unmatched-paren>also, you should probably be using gexps here
<unmatched-paren>(arguments `(...)) becomes (arguments (list ...))
<GNUtoo>ok
<unmatched-paren>and #:phases (...) becomes #:phases #~(...)
<unmatched-paren>#:make-flags (...) -> #:make-flags #~(...)
<unmatched-paren>and inside a gexp #~, you can do #$output
<unmatched-paren>which gets what you seem to want
<unmatched-paren>unquote becomes ungexp (#$) in general
<unmatched-paren>e.g. ,(cc-for-target) -> #$(cc-for-target)
<apteryx>ss2: fixed sushi's URI. sorry for the breakage!
<GNUtoo>ok, for #:make-flags, they are not arguments to arguments, they are use in build/install functions, should I still gexp them?
<GNUtoo>*used
<ss2>apteryx: no worries!
<unmatched-paren>ummm
<unmatched-paren>i'm not sure
<unmatched-paren>probably not
<unmatched-paren>just change your arguments to gexp style and use #$output to get the outputs
<GNUtoo>ok, thanks a lot
<GNUtoo>Thanks to your explanation above I can now grep for that and look at examples, before I was confused and I didn't think that part could be gexped
<unmatched-paren>(list #:foo #~(...) #:bar #~(...)) is the de facto standard style now
<GNUtoo>Using gexp should also make it more clear in my head because understanding what it's supposed to do behind without gexp is messy in my head
<unmatched-paren>but many packages still use the old quote style
<GNUtoo>ok
<unmatched-paren>Maybe I should try writing a `guix style` formatter that converts arguments to the gexp style
<GNUtoo>Can guix style work on a guix.scm file?
<unmatched-paren>maybe
<GNUtoo>maybe with "-e, --expression=EXPR"
<unmatched-paren>actually, i think the file needs to be a module in the load path (or an expression, yeah)
*GNUtoo should probably add some --file= to it
<GNUtoo>(My main use of Guix is some guix.scm files to maintain libraries)
<pashencija[m]>How to launch shell (like bash) from guix repl in initrd? I need to debug something and I'm afraid I cannot do it in scheme
<GNUtoo>There is bournish but it's extremely limited
<GNUtoo>in the default config in the initramfs it doesn't have PATH I think
<pashencija[m]>Ok, how I can debug the reason rootfs is not found?
<pashencija[m]>I loaded all the kernel modules that I found relevant. I hoped that doing something inside repl may help
*GNUtoo did that long time ago and it was painful, I hope you can somehow ship bash and run it easily
<GNUtoo>I did it on real hardware without serial port so without copy/paste...
<pashencija[m]>I cannot access serial port for writing
<GNUtoo>,bournish gives you a very limited shell, so if you can ship bash in a known location + some scripts, you can probably manage to do it better than I did
<pashencija[m]>Only for reading
<pashencija[m]>So basically it's the same. USB keyboard, monitor and luck
<GNUtoo>ok
<pashencija[m]>How do I launch bournish?
<GNUtoo>Maybe the manual has infos on that
<GNUtoo>when it fails you've got a scheme shell
<GNUtoo>you can use ,bournish in it if I recall well
<GNUtoo>it prints it on the screen anyway
<GNUtoo>apparently it can start a repl with gnu.repl
<GNUtoo> https://guix.gnu.org/en/manual/devel/en/guix.html#Initial-RAM-Disk
<pashencija[m]>I have repl
<GNUtoo>ok
<pashencija[m]>I need an understandable shell. I'm not good at scheme
<pashencija[m]>Something like bash
<GNUtoo>,bournish works?
<GNUtoo>though it's not much better
<GNUtoo>it doesn't have find for instance
<GNUtoo>but ls should work
<GNUtoo>but not ls -R
<GNUtoo>it would be better if more experienced people could step in here as I just used it to debug stuff, and I probably didn't do it in the most efficient way
<GNUtoo>you're trying to understand which modules are lacking?
<GNUtoo>pashencija[m]: if so there might be other ways to get it to boot without having to deal with this initramfs shell
<GNUtoo>for instance looking at linux logs and reading drivers can be more simple
<GNUtoo>And if it's not hardware specific you might get more luck by copy-pasting and adapting parts working configs
<GNUtoo>*parts of working configs
<pashencija[m]>But basically yes
<pashencija[m]><GNUtoo> "you're trying to understand..." <- I hope it's about modules. Not sure
<GNUtoo>what hardware is it?
<pashencija[m]>GNUtoo: I have done that. There seems to be no modules outside of buildins required to get emmc to work
<GNUtoo>dmesg prints if the eMMC is found
<pashencija[m]>GNUtoo: It's indeed hardware-specific. I have the same image for different boards
<GNUtoo>and you've got that through the serial port
<pashencija[m]>GNUtoo: Raspberry PI
<GNUtoo>You need to pass it something like loglevel=8 to get that
<pashencija[m]>RPI4 works fine, CM4 fails to boot
<pashencija[m]>GNUtoo: Where do I pass that?
<GNUtoo>Here's an example: (kernel-arguments (append (list "iomem=relaxed" "modprobe.blacklist=pcspkr" "quiet")))
<GNUtoo>The manual has more infos on it
<GNUtoo>kernel-arguments is an argument of (operating-system [...])
<pashencija[m]>I have tried that already
<pashencija[m]>Ah sure
<GNUtoo>Adding loglevel=8 or ignore_loglevel or something similar should get you all the logs on the serial port
<darosior>Hi everyone. I'm trying to install Guix on a RockPro64 using `guix system init` (as i've seen advized on some ML threads for similar SBC, and the ARM board blog post) on the eMMC. I'm a bit confused as to the course of events there. The configuration needs to specify u-boot, but `guix system init` is called on a partition created beforehand. But
<darosior>according to Pine64's wiki u-boot has to be installed at the very beginning of the disk (64th sector): https://wiki.pine64.org/wiki/RK3399_boot_sequence#Load_offsets.
<darosior>Could anyone shed some more lights on what `guix system init` will do, especially with u-boot, so i can better understand what i'm doing here? :)
<darosior>Or if anyone had prior experience on installing Guix on a RockPro64, pointers would be much appreciated
<pashencija[m]>I can recommend you using an image
<GNUtoo>Then you can verify it by looking at the kernel log which should have: "Kernel command line: [the kernel command line used]"
<pashencija[m]>Yes, of course
<GNUtoo>Then you can see things like that: "mmcblk2: mmc2:0001 <model number> 8.0 GiB"
<GNUtoo>(or not)
<GNUtoo>And you can see it mounting the rootfs or not, etc
<GNUtoo>And you can see if it loads the mmc driver it's supposed to load too
<pashencija[m]>Yeah, thank you
<GNUtoo>To find that you need to either know your hardware (by booting a live installer for instance)
<GNUtoo>or look into the device tree
<GNUtoo>for the device tree you find the node for the emmc, look at the compatible string and grep for that in linux source code (usually in drivers/mmc)
<GNUtoo>That'll find the driver and you can usually find the module name with that
<GNUtoo>#define DRIVER_NAME "omap_hsmmc"
<GNUtoo>DRIVER_NAME often matches the module name
<GNUtoo>And sometimes there are guix configs that already exist for your computer, that have the right modules for the eMMC
<GNUtoo>in gnu/system/examples/ there are examples for some computers (beaglebone black for instance)
<GNUtoo>(that's in guix source code)
<GNUtoo>The advantage of that approach is that you only need to read what's on the boot log that you get through the serial port
<GNUtoo>It works less well when you don't have that boot log though
<GNUtoo>darosior: guix system init will not be able to install the bootloader on the block device, but you can use guix system image instead
<GNUtoo>Then you need to use dd to install the image on a microSD for instance
<darosior>GNUtoo: why do you need to specify the bootloader in the operating-system configuration file then? https://guix.gnu.org/blog/2019/guix-on-an-arm-board/
<GNUtoo>I think so, and you also need to specific it somehow through -t in guix system image
<GNUtoo>guix system image --list-image-types
<GNUtoo>This has rock64-raw for instance
<GNUtoo>rock64-raw probably also adds some modules and so on to make sure it boots fine
<GNUtoo>The manual also probably has more up to date examples
<GNUtoo>Note that you could have to install the image in 2 steps, because if you do it from an x86 computer, that computer might not be able to build all packages that exist for ARM, but it usually works fine for basic images
<GNUtoo>(gdm for instance will probably not work because somewhere in its dependencies there are software that use build system don't support cross compilation yet)
<rolodex>Hi all, I started playing with with using manifest files (see 11:09:29 GMT), but i'm running into all kinds of issues, such as mu4e not running and other errors in emacs. I don't have time roll my sleeves up right now. Is there a way to just revert to the default non-manifest setup I was running before?
<rolodex>as in my default profile I suppose.
<char[m]>Greetings guix! what is the proper way to have the bluetooth-service, but have it disabled until turned on? I have tried (auto-enable? #f) and sudo herd disable bluetooth.
<civodul>rolodex: hi! you can always run "guix package --rollback" to get back to the previous generations
<civodul>re manifests, there's a section that you might have missed? https://guix.gnu.org/manual/devel/en/html_node/Writing-Manifests.html
<civodul>char[m]: hi! i think you need to have an instance of bluetooth-service-type in the 'services' field of your OS
<civodul>do you have that?
<rolodex>Oh it's just been creating new generations, doh! Thank you civodul!
<char[m]>civodul: yes I have this: (service bluetooth-service-type
<char[m]> (bluetooth-configuration (auto-enable? #f))). bluetooth works just fine. I want it to be disabled until I turn it on though.
<GNUtoo>rolodex: if before you installed packages with guix package -i you could look at guix package --list-generations
<GNUtoo>ah it was already answered sorry
*GNUtoo was scrolled up
<zakkex>I'm trying to install telegram-desktop and it's confusing me. Guix weather telegram-desktop says that substitutes are available but when I try to install it with guix install, guix tries to compile it instead of using a substitute. (the local build also fails)
<GNUtoo>Hmmm I still can't make it work somehow
<GNUtoo> https://paste.gnutoo.cyberdimension.org/guix/13-07-2022-2/guix.scm.txt
<GNUtoo>I'm trying to access output in a build function
<GNUtoo>and I've that: Wrong type (expecting string): (string-append "LDFLAGS=" "-Wl,-rpath=" ((@ (guile) getenv) "out") " " "-lssl -lcrypto -L .")
<GNUtoo>I understand that at the end of the build functions should be evaluated at build time
<GNUtoo>but I'm still confused
<GNUtoo>As I understand the modify-phases code should run at build time, right? because it's gexped (#~)
<apteryx>civodul: gexps can't be used on any argument, can they?
<GNUtoo>In that case why would simply "output" not work (it also fails if I replace $#output by output)
<apteryx>I just tried for #:scon-flags of the scon-build-system, and got /gnu/store/dfc9n04l176vj4xca5ymb22s9rq3x55w-mapnik-3.1.0-builder:1:4354: Unknown # object: "#<"
<GNUtoo>ah wait, it's outputs
<pashencija[m]>By the way, I see new u-boot at https://ftp.denx.de/pub/u-boot/
<GNUtoo>hmm I also get "Wrong type (expecting string): (string-append "LDFLAGS=" "-Wl,-rpath=" ((@ (guile) getenv) "out") " " "-lssl -lcrypto -L .")" with outputs instead
<apteryx>arg; %build-inputs is also unbound for some reason
<GNUtoo>zakkex: maybe substitutes are available for its dependencies
<apteryx>nevermind, %build-inputs *is* bound at least
<two[m]>does armhf stand for armv7?
<GNUtoo>it does
<GNUtoo>It's armv7 with hard float
<zakkex>GNUtoo: weather says that 100% (1/1) of substitutes are available, I would think that means the entire package, not just dependencies
<GNUtoo>ok, I'm not sure how it works but when installing packages there are often multiple phases, like at some point it install stuff and their dependencies, and then it tries again...
<GNUtoo>So it's strange indeed
<char[m]>I thought setting auto-enable? to #f would make bluetooth not turn on unless I turn it on
<zakkex>my best guess (with very little knowledge of guix to base it on) is that some dependency has been updated after the substitute was built and the ci server claims to have a substitute, but when installing the package guix computes a different derivation (due to the newer dependency) and doesn't see the substitute as a valid one. No idea if this is
<zakkex>actually the case (or even possible)
<two[m]>hi
<two[m]>your podcast is cool
<two[m]>is it possible to install 1 output of a package?
<GNUtoo>guix package -i gcc:lib
<GNUtoo>that installs the lib output
<vivien>For now I give up on building bash for mingw, but maybe packaging cygwin and building bash with it would work?
<two[m]>thank you
<two[m]>it seems doc outputs only include man pages for commands
<gnucode>so I guess I've got my dell optiplex 7020. I don't have time to install guix system, but I will be installing it soon!
<sneek>gnucode, you have 1 message!
<sneek>gnucode, nckx says: I didn't actually disagree, but 'a [simple] list of strings/gexps' wasn't what I took from your earlier paste.
<gnucode>nckx: gotcha. I see that you did not disagree. I think I still may be trying to "perfect" the opensmtpd service a little too much. :)
<GNUtoo>vivien: did you look if msys2 used cygwin?
<GNUtoo>(for bash)
<GNUtoo>hmmm #$output works outside of ((assoc-ref %standard-phases 'build) #:make-flags (append make-flags <some expression with $#output))
<vivien>GNUtoo, they say so
<vivien>Actually no they say they have a modified version of cygwin, https://www.msys2.org/wiki/How-does-MSYS2-differ-from-Cygwin/
<GNUtoo>I was assuming they didn't use cygwin for everything
<GNUtoo>so maybe some software depends on cygwin and some don't
<two[m]>what is the equivalent of debian -doc packages?
<GNUtoo>two[m]: the packages are usually not splitted for the documentation
<GNUtoo>(pk '((string-append #$output "/foo"))) => (((string-append ((@ (guile) getenv) "out") "/foo")))
<GNUtoo>(pk (string-append #$output "/foo")) => ("/gnu/store/g86qmbcmr77xpl6rrpqy5nf2scqwgy9c-libsamsung-ipc-gcc-android-0.0-HEAD.b4c12e2/foo")
<GNUtoo>So apparently I can't add $#output in a list?
<unmatched-paren>GNUtoo: you're using it quoted
<unmatched-paren>you need to unquote it
<unmatched-paren>`((string-append ,#$output "/foo"))
<GNUtoo>Thanks a lot!!!!
<pashencija[m]>Can we reopen https://issues.guix.gnu.org/55526?
<pashencija[m]>2022-07 is out and the issue is there
<unmatched-paren>GNUtoo: or better, just use (list ...) instead of `(...)
<unmatched-paren>that's why we use (list ...) in the gexp arguments style
*GNUtoo doesn't understand why I needed to unquote #$output but it seems to work fine now
<unmatched-paren>so that we don't have to unquote everything
<GNUtoo>The expression is quoted + gexped?
<GNUtoo>Then guix unquote it and then ungexp it?
<unmatched-paren>GNUtoo: yeah
<GNUtoo>ok
<unmatched-paren>you should probably try to convert quoting to lists to avoid confusion with gexps
<GNUtoo>Ah I start to understand now, so output is only available when building the package definition, so I need to unquote it to make it ungexped, and then when building the package we have its value
<unmatched-paren>Yeah :)
<GNUtoo>Something I often struggle with is to understand what part of the code is evaluated when, for instance here I didn't know if output was available when building the package definition or when running its code
<GNUtoo>(or if it was both somehow)
<GNUtoo>Now since that works I can deduce that output is only available when it's building the package definition
<GNUtoo>Thanks a lot for the help!!!
<unmatched-paren>No problem :)
<unmatched-paren>So, I think a decentish way to think about it would be:
<unmatched-paren>#~(...) contains a thing that becomes a derivation
<stampirl>can anyone help me with docker and docker-compose. When I run docker-compose up I get this error `ERROR: for phpmyadmin Cannot start service phpmyadmin: Unknown runtime specified /gnu/store/ykaxhb1aiv2k3svdb80l5sqqzg5j62dp-runc-1.1.1/sbin/runc`
<stampirl>last time I was using docker it was running perfectly
<GNUtoo>indeed what I struggle more with is not the actual mechanism but what's around it, like the principle is easy enough to understand but then you add code in existing code
<unmatched-paren>so anything in there is treated like it will be built in the future
<GNUtoo>So you don't know how (package [...] ) is evaluated for instance
<unmatched-paren>and what #$ does is allow you to access things that _have_ been built
<GNUtoo>s/you/I/
<GNUtoo>ok
<unmatched-paren>so ungexping a local-file builds the local-file
<unmatched-paren>and returns its store path
<unmatched-paren>(same for any file-like)
<GNUtoo>for instance if I controlled everything and I had to gexp and ungexp things would be clear
<GNUtoo>but some stuff is done behind my back
<GNUtoo>so that makes it harder to understand what guix expects in what place
<unmatched-paren>and ungexping `output` allows you to basically retrieve the path that is *going* to be built
<unmatched-paren>or something
<GNUtoo>like for instance if I take (name "some-package-name") it works because I just copy other packages do, but I've no idea if that's evaluated immediately, compiled, gexped, ungexped, etc behind the scenes
<unmatched-paren>probably inaccurate but seems like it's a good model
<unmatched-paren>GNUtoo: (name ...) isn't actually a procedure
<GNUtoo>so if there is a function that takes something quoted I know I need to quote it
<GNUtoo>(Since there is some effort to make Guix easier I just wanted to share how I saw things in the hope that it could help)
<unmatched-paren>it's treated as a literal sexp and processed by `package` which presumably is a macro that's automatically generated by define-record-type*
<GNUtoo>ohh ok, so I should look at (package at some point
<GNUtoo>Thanks a lot
<unmatched-paren>(because afaics a macro is just a procedure that allows you to treat the arguments as raw syntax instead of evaluating them)
<GNUtoo>That starts to explain things, so I guess that by default it treats build functions as s expressions too...
<unmatched-paren>GNUtoo: package is processed on the... client-side? As opposed to build-side.
<GNUtoo>So with gexp you're then more in control and things are more clear
<GNUtoo>ok
<unmatched-paren>packages are lowered to lower-level objects
<unmatched-paren>and those are processed build-side
<unmatched-paren>GNUtoo: yeah. the quoted build syntax does things behind your back
<unmatched-paren>GNUtoo: if foo is a procedure, (foo (+ 6 5)) is equivalent to (foo 11)
<unmatched-paren>but if it's a macro, (foo (+ 6 5)) is basically like calling a procedure with (foo '(+ 6 5))
<unmatched-paren>of course syntax-rules and hygenic macros complicate this
<unmatched-paren>but that's the basic idea
<unmatched-paren>if you do define-macro instead of define-syntax, this becomes obvious:
<unmatched-paren>(define-macro (foo x) `(string-append "no. " (number->string ,x)))
<unmatched-paren>that quoted sexp gets the sexp x spliced into it, and then it gets treated as code
<unmatched-paren>in a sense, quote is code->data, and macro usage is data->code
<unmatched-paren>stampgirl: how long ago did you last run it?
<unmatched-paren>the docker package was recently updated.
<stampirl>unmatched-paren: docker-compose down seems to fix it
<unmatched-paren>perhaps the update broke runc? (no idea what runc is, and i've never used docker)
<unmatched-paren>Ah, cool
<unmatched-paren>GNUtoo: https://spritely.institute/static/papers/scheme-primer.html#scheme-extensibility
<unmatched-paren>explains both macros and syntax
<GNUtoo>thanks
<unmatched-paren>GNUtoo: I *think* in principle it should be the case that nothing outside a gexp is used on the build sidu
<unmatched-paren>side
<unmatched-paren>but because of the legacy quoting build syntax that isn't the case
<unmatched-paren>which presumably is why we're migrating away...
<GNUtoo>ahh ok
<GNUtoo>That was mentioned in the new syntax for dependencies if I recall well
<GNUtoo>(in the blog post about it)
<unmatched-paren>i think the quoting syntax predates gexps
<unmatched-paren>which is why it exists of course
<GNUtoo>ahh ok
<stampirl>unmatched-paren: don't know too, I use it for webdev so I can separate stuff, but it gives me a lot of headache. Is there some replacement for docker more aligned with guix, maybe I should move to guix vm with my projects
<GNUtoo>It makes more sense now
<unmatched-paren>stampgirl: i've heard things about podman
<unmatched-paren>not sure if negative or positive :)
<drakonis>podman is good.
<jetomit>unmatched-paren: this was a nice lecture, thanks! :)
<drakonis>its main claim to glory is using modern container libraries
<stampirl>I was going to switch to podman, but can't find any documentation how to install on guix
<stampirl>simple package install doesn't work
<unmatched-paren>GNUtoo: I guess gexps were added when the developers realized that we needed a clean build side/client side seperation
<drakonis>it doesnt require a daemon
<drakonis>the paper on gexps talks about the why
<unmatched-paren>jetomit: Take it with a bowlfull of salt; many of these things predate my usage of guix
<unmatched-paren>s/full/ful/
<drakonis> https://arxiv.org/abs/1709.00833
<unmatched-paren>Preferably pepper, too.
<unmatched-paren>drakonis: Ah cool didn't know about that paper
<unmatched-paren>GNUtoo: looks like that paper might be good for you to read too
<two[m]>there isn't any documentation in the ghc package
<GNUtoo>indeed
<GNUtoo>Thanks for the link
*GNUtoo should probably have looked at the paper instead of the manual
<GNUtoo>(without the implementation details it is hard for me to understand things)
<unmatched-paren>i like bottom-up explanations too
<unmatched-paren>"don't worry about this bit, i'll explain later" annoys me slighnly
<unmatched-paren>s/slighnly/slightly
<GNUtoo>Basically I need the level under to understand the level on top, many people probably can manage without that but I'd have a hard time without
<unmatched-paren>smartphone screens *sigh*
<GNUtoo>The issue with "I'll explain later" is that in a lot of case knowledge has dependency loops
<GNUtoo>A depends on B which depends on A
<unmatched-paren>I guess
<apteryx>interesting, 'make check TESTS=tests/challenge.scm' has the differing-files test fail with: (different-files ("/bin/guile" "/lib/guile/2.0/ccache/ice-9/session.go" "/lib/guile/2.0/ccache/texinfo.go")) (the list should contain just "/bin/guile")
<apteryx>only on 1 of my machines
<unmatched-paren> https://srfi.schemers.org/srfi-72/srfi-72.html might also help
<apteryx>perhaps from a stale cached file
*apteryx rm -rf test-tmp away
<unmatched-paren>GNUtoo: and the hygienic macro Wikipedia page explains why we use define-syntax instead of define-macro in Scheme https://en.m.wikipedia.org/wiki/Hygienic_macro
<unmatched-paren>(I will stop posting links now :))
<apteryx>hmm, the tests/elm.scm test suite causes multiple PASS to appear in the output for the same file
<jonsger[m]>uff booking hotels in Paris without credit card seems to be hard (for the Guix days)...
<GNUtoo>jonsger[m]: Another way would be to find hosts in Paris
<GNUtoo>Though that's probably hard to do if you never meet people in person
<GNUtoo>*people living there
<jonsger[m]>found a portal in the mean time :)
<jonsger[m]>I met some Guix folks in person before. I even can remember who is from France, but not who is from Paris :P
<GNUtoo>I'm from Paris but I only meet 1 person working on Guix
<GNUtoo>So I've many contacts locally
<GNUtoo>So if there is some link where people organize for hosting I could try to promote it around me
<GNUtoo>(Where I live is a bit hostile, like there is no extra bed etc, so it's not the best place to be hosted at)
<vivien>I’m in Reims so not that far away but not that close either
<GNUtoo>(Though it's well setup for working)
<jonsger[m]>I booked the hotel a bit outside, yet on a metro ligne going directly to the Sorbonne campus. So neither hotel nor train is expensive, at least as I earn some money nowadays :)
<pashencija[m]>FYI: it was an issue with device tree that caused emmc not to work. Thank you for your help!
<GNUtoo>Nice
*GNUtoo wonder what issue though
<apteryx>is 'make check TESTS=tests/guix-home.sh' passing for others?
<apteryx>something to do with: guix home: error: mkdir: Permission denied
***rgherdt_ is now known as rgherdt
<jonsger[m]>apteryx: passes here, but I had to make clean-go before and bootstrap afterwards...
<rekado>apteryx: passes here on commit 82e7e05deaf22de3f3b6179b8806d2bf134b2fed
<rekado>(I also did a clean-go before)
<jonsger[m]>mine was on current HEAD
<apteryx>ah, yes, I had forgotten I had 'ln -sf /bin/sh $(guix build dash)/bin/dash' to test something, thank you :-)
<apteryx>this was for checking https://issues.guix.gnu.org/40641
***mark_ is now known as mjw
*roptat worked a bit more on the French translation, 850 strings left :)
<jonsger[m]>allez :)
*jonsger[m] tries pulling from staging :)
<jonsger[m]>mbakke efraim could we merge master into staging?
<jonsger[m]>staging seems to be helpful for firefox/icecat/icedove 102 ESR...
<apteryx>can make-systemd-service be used to synchronize Shepherd services between themselves? E.g., chaining them
<apteryx>e.g., suppose service B *requires* service A to be up and running before it runs itself, would service B reaching to service A's socket cause Shepherd to start A so that it can answer to B without B failing?
<apteryx>civodul: perhaps a question of interest ^
<apteryx>and a related discussion in https://issues.guix.gnu.org/38432
<Franciman>jpoiret: i'm learning now, i didn't :P
<Franciman>thanks a lot