<yewscion>Hey Guix, I'm having an issue with scoping during packaging: If I define a procedure at the top of a package module, it is not available within the modified phases I am creating inside of each individual package. I'm currently working around this by defining the procedure inside of each lambda, but I'd rather be able to avoid repetition like that. Is there something I am doing wrong?
<iyzsong>yewscion: nothing wrong, i think there are 2 way to share the code in phases, one is via quote/unquote, another one is via modules (eg: (guix build utils)). quote is merly copy/paste, suite for small/standlone procedures. modules is more costly, the result builder (a guile script) will import those modules at build time.
<yewscion>iyzsong: Ah, copy that. Makes sense. Thanks!
<iyzsong>for unquote gexp phase, an example is %commonroad-dont-install-license-at-root in simulation.scm
<yewscion>Is there a standard way to delay the execution of a procedure inside of such an unquote/gexp phase? The procedure I'm trying to use depends on output from scandir, and I think it's being evaluated before the phase it is called in.
<yewscion>Nevermind, I had an illumination and checked the build utils, I can make do with (find-files) instead of (scandir)
<parnikkapore>Has anyone managed to get cuirass to build packages in a `guix system vm` or `guix system container`?
<parnikkapore>When I tried it, it crashed while... trying to change ownership of /gnu/store??
<XiaoBiHu_>bjc: thanks, that's good to know. I was trying to find the issue in the issue tracker, but failed to identify the correct one. Also, what would be the way to install the last working version?
<jpoiret>civodul: do you have any opinions about email@example.com ?
<jpoiret>there's an initial lstat on the directory that isn't caught
<ulfvonbelow>e.g. a sigset_t is defined as 1024 bits spread across a bunch of unsigned longs
<ulfvonbelow>is the type argument to the (array ...) subform evaluated?
<civodul>jpoiret: but then i wonder why i don't experience it? ./test-env is supposed to give a fresh localstatedir
<jpoiret>and I've looked into how the /profiles and /gcroots directory get created while running tests and it seems to me that the situation is too complex to assert whether or not they exist at this point
<ulfvonbelow>or more importantly in this case, is the length argument evaluated?
<civodul>ulfvonbelow: maybe you can do something like %struct-dirent-header?
<ulfvonbelow>is there any particular reason why we don't have (guix build syscalls) use a guile extension? I quite like the idea of some C code using, e.g., sizeof(posix_spawnattr_t) instead of diving through header files
<civodul>ulfvonbelow: the goal was to not have C at all :-) and in the case of libc interfaces, the ABI is very stable, so it's reasonable
<jpoiret>civodul: so yes, the test reproducibly passes for me if I remove the sole /profiles entry from the expected result
<civodul>what you wrote above with sigset-nwords may work
<ekaitz>I have a weird guix issue now: If I `guix build --system=riscv64-linux -f package.scm` the package I'm building detects the system as riscv64-linux, but if I `guix shell --system=riscv64-linux -f package.scm` it detects amd64
<ekaitz>efraim: did you find any issue like this while working in rv ^
<nckx>Does ‘guix shell’ not build a RISC-V output at all?
<nckx>adanska: If you're not aware, your connection keeps flapping. IRC doesn't buffer messages so you won't see anything addressed to you whilst you're disconnected.
<adanska>thanks nckx ! sorry about that, i’m writing from an iphone irc client and it doesn’t seem to be able to keep the irc connection alive whilst i’m not using it. sorry if it’s a bit spammy, i’ll wait till i get home to use the channel :)
<nckx>No problem. I use Revolution IRC and it stays connected, but that's on Android.
<adanska>yeah, i think it’s another ios restriction :p
<nckx>At least on Android, the way applications prevent getting killed by the OS is by keeping a ‘notification’ open (even when they have nothing to say). Maybe worth looking at your notification settings, or maybe it's just a different world 🤷
<adanska>re your answer: thanks! that’s what i thought to do initially but i wasn’t completely sure as the reference says that source must be an origin object. so source accepts any file-like object?
<test-once>Hey all, I got interested in guix after seeing that it is used in bioinformatics lab too.
<test-once>Yes. [ffmpeg] tcp: Failed to resolve hostname guix.gnu.org: System error Failed to open https://guix.gnu.org/guix-videos/ten-years-of-guix/02-boukema.mp4. [ytdl_hook] ERROR: [generic] None: Unable to download webpage: <urlopen error [Errno 16] Device or resource busy> (caused by URLError(OSError(16, 'Device or resource busy'))) [ytdl_hook] youtube-dl failed: unexpected error occurred
<test-once>Sorry didnt mean to paste it raw text here. Sorry if its not proper
<nckx>That does sound like a network (specifically, DNS) failure on your end. Browsers like to use NIH DNS clients & separate caches from the rest of the OS, so that could explain why you were able to browse the site, but not why the video won't play in your browser.
<nckx>test-once: It's OK, as long as it's ~3 or so lines at most.
<nckx>And a line is <500 characters on IRC. If you'd paste a longer one it would get split. Now you know more than you wanted to know.
<nckx>When pasting log output or files, anything over 3-4 lines, use the pastebin in the channel topic.
<nckx>test-once: If you're using Guix System, you can try clearing the cache with ‘sudo herd invalidate nscd’, although it doesn't always help.
<test-once>That sounds true, because sometimes Dns wont connect. I recently did setup dns in my system. Thank you !
<minima>hi, anyone else suffering from this https://issues.guix.gnu.org/57498 ? it's about bash completion in the context of guix home (when bash completion is only installed via guix home as opposed to the main guix profile)
<minima>a work-around is suggested at the end of the thread and that seems to work fine, but i was wondering if there were any other (cleaner?) ways to solve this
<minima>the work-around is a little snippet to be added at the end of bashrc
<jackhill>hmmm, maybe someone more versed us cuirass can tall me: why is the weather bad for libjami? It seems to build locally on x86-64
<ulfvonbelow>in my experience if you ever try speeding things up with --max-jobs=<number of cores> during a big manifest build you find that it acts as a filter: the later on it goes the more huge builds there are going on at once
<apteryx>disregard my timeouts message earlier, I thought the question was w.r.t. the jami tests
<ulfvonbelow>there's a symbol collision in something I'm writing and despite specifying both #:select and #:hide in the #:use-module form for one of the colliding modules, it's still giving me warnings
<apteryx>civodul: any idea why we only support a few known sites for the html-updatable-package? predicate?
<apteryx>that's used as part as generic-html-updater, which is not very generic it seems
<Altadil>PotentialUser-60: if you do a normal system update, it should automatically get to the newest version available.
<parnikkapore>How do you use cuirass to build packages in a `guix system vm`? I made a system definition for it, but Cuirass keeps erroring, yelling about not being able to change ownership of the Guix store??
<RavenJoad>Guix can create ISO install images, but is there anything special that needs to be done to create an install image for a custom operating-system?
<nckx>‘For’ can mean a lot of different things here.
<nckx>It's very easy to customise the ‘live OS’ that boots when you boot the image, or ship some extra packages to ease low-bandwidth installations (as long as you don't ‘guix pull’), or include some extra files. It's not easy to modify the installer wizard's default or base template.
<ArneBab>sneek: later tell civodul: yikes! guix challenge guile:
<lfam>I want to create a new PGP signing key for use with Guix development. Is there a particular type of key I need to create? Or is it okay to do `gpg --full-generate-key` and use the result. That creates a master key of type SC (sign and certify) and an encryption E key
<nckx>PotentialUser-60: Good luck. Also, a general note: Guix isn't finished, some things don't work or are missing. It expects you to be familiar with certain aspects of computing that other more ‘new-user friendly’ distributions don't. I wouldn't personally recommend Guix to someone who didn't figure the basics out on their own, but we'll do our best to help you out if you stick around.
<lfam>I suppose that the proof is in the pudding, and that if `guix git authenticate` works, then it's fine. But I also like to follow convention
<nckx>ACTION wants to recommend ed25519 subkeys, but doesn't want to *explain* subkeys today, dilemma.
<lfam>I know about subkeys, and use them currently. I have the offline master key and everything. I want to do something simpler
<lfam>nckx: I googled the ECC thing and it seems like a rabbit hole
<gcarlos>nckx: aborting reconfiguration because commit 44bbfc24e4bcc48d0e3343cd3d83452721af8c36 of channel 'guix' is not a descendant of 77251c5f5af193dcd031dffef744001cfc48f7e5
<nckx>PotentialUser-60: Not from experience, but Trisquel is based upon Debian upon which Ubuntu is based, both of which are the target of most tutorials and advice on the Interwebs. It's also fully Free.
<nckx>Again, I don't mean to discourage use of Guix (and others here might disagree) but I also want your experience to be positive.
<gcarlos>PotentialUser-60: I would also recommend trisquel, but i did never used it, just a guess
<nckx>(They left, but I told them about the logs earlier.)
<nckx>gcarlos: So you're invoking a ‘guix’ that is almost a month older than the one that was previously used to reconfigure the system.
<gcarlos>I'm just very confused trying to understand the way that guix handles these envs
<graywolf>Is there a specific order in which home-bash-service-type are evaluated? It seems that first added appears in the ~/.bash_profile as last, is that something I can rely on or is it considered an implementation detail?
<gcarlos>nckx: I'm not explicity sourcing it with my user but it's working fine
<gcarlos>maybe when I'm using doas to login as root i'm missing that
<nckx>lfam: ‘ECC’ just means you get ed25519 keys instead of RSA, which are smaller and (at least for a while) more secure. It doesn't complicate anything. But RSA is fine.
<nckx>gcarlos: Maybe! I use sudo, because my life is too boring otherwise.
<gcarlos>anyway I can just use to keep env and never use root without that
<gcarlos>the sudo default config, for guix, as far I know, keep the env unchanged
<gcarlos>also, I'm having a trouble on guix that I never had on other distros, is that the kernel don't the password prompt to decrypt a volume, I stay stuck on the grub screen but if I type my password it boots normally
<gcarlos>It's not strictly related to guix, but as it's the OS i'm using, i'm asking for help here :)
<apteryx>re my question, it's supported via the '=' sign, per 'info "(guix)Invoking guix refresh"'
<nckx>gcarlos: I've never had a machine that did this, but could it be due to missing display driver modules at early (initrd) boot that aren't loaded until late boot (from the root file system)?
<nckx>So the GRUB screen remains on the screen because the kernel doesn't know how to draw anything yet. That's my guess 🤷
<nckx>You could try adding your display drivers to the initrd if you're bored.
<apteryx>you'll need that ratio for hibernation anyway
<makx>vagrantc: no worries ;) been there done that with nixos
<bjc>i don't much care for hibernation, tbh. normal sleep is pretty low power draw, so the battery lasts a long time. i'd rather just eat the loss if the battery runs out than have to contend with hibernation making sleep/wake cycles extremley expensive all the time
<gcarlos>what's the difference between hibernate and sleep and what not, isn't the hibernate that put things on secondary memory and sleep on ram?
<dgr>apteryx: docu says halve but I remeber that 1:1 is recommendet for hibernation also.
<bjc>hibernation pages ram out to disk. sleep keeps the ram active so it doesn't lose
<bjc>it's for when your battery empties itself often enough that normal sleep mode is a pain
<bjc>as for using swap because you need more ram than is available: if you're actively using the machine, you're going to hate your life as it constantly pages stuff in and out. it's what you do when you have no other options
<dgr>bjc: I guess RAM also got a lot less power intensive than I'm used to.
<nckx>hybrid-sleep is a good compromise for people for whom hibernation is slow for whatever reason.
<bjc>probably not so bad with nvme drives these days, but if you can afford nvme, you can afford more ram =P
<makx>do people use guix deploy a lot? I am using deploy-rs with nix atm, but tbh, I have wasted so much time on this nix language and things not working
<bjc>it doesn't take much power to just refresh ram. it's more costly to fetch or update from it
<makx>and I speak scheme, so I am just feeling more at home anyway
<dgr>bjc: 8GB RAM is soldered on the MB - ThinkPad x280...
<bjc>8gb is enough to compile most things most of the time
<apteryx>jackhill: does libjami builds fine locally?
<bjc>you can also just add swap later with a swapfile if you need to. you don't need to configure it up front, unless you need hibernation
<dgr>nckx: don't feel bad, it cost me < 200$ and I see it as a investment to learn guix.
<dgr>bjc: I think about reformating as I now got 550MB for EFI as fat32 and the rest is a LUKS2 with btrfs with subvols and I read someware that a swapfile on btrfs isn't a good idea. Did I get something wrong?
<bjc>i don't know why swap on btrfs would be bad, so long as you don't snapshot it. if you're swapping, performance likely isn't your concern anyway
<bjc>but that's just me thinking out loud. i haven't seen anything one way or another. historically, though, there's a lot of cargo-culting around swap that goes back many decades
<apteryx>dgr: no problem with swapfile on btrfs, but it's not possible to do so with btrfs raid
<gcarlos>you must disable COW to have a swapfile on btrfs i guess
<jackhill>apteryx: well, the build succeeded, but it didn't produce the store paths I want to substitute. If I understand cuirass correctly, that build is from evaluation https://ci.guix.gnu.org/eval/604016 which is commit c75022d65f1fa18b8c4839e50f915e8f4d4fe305 from July 18th.
<dthompson>I thought you wanted to modify the load path
<vagrantc>RavenJoad: thanks, that looks like what i was looking for :)
<RavenJoad>There are a few gotchas as you go further down the article (just some forgotten redirections with ..). If you want to get a full channel out of the repo, look at the .guix-channel and .guix/modules/guile-package.scm under the "Wrapping Up" section.