<johnabs[m]>Hi all, anybody able to help with a Julia issue? I've been banging my head against it for a while, and I need it working so I can keep doing my research :/
<johnabs[m]>The bug I'm experiencing is super easy to reproduce: just install julia, then run using Pkg, Pkg.add("DrWatson"). And suddenly it screams about curl_multisocket_errors. I've never seen this before on other distros, so I suspect it's unique to guix
<winter>I cloned master, and tried to run `guix system image -t iso9660 gnu/system/install.scm` on an aarch64-linux machine. (I want to build an ISO to use with QEMU's UEFI environment.)
<winter>I then got an error about guix-setuid and I'm not sure how to debug this at all. (I can't provide the actual error at the moment, but I'm asking now just in case it's known that I can't do this on aarch64-linux or something else I'm missing.)
<ngz>I'm under the impression that the initial package list in https://guix.gnu.org/packages/ is sub-optimal. I mean: it is most than certainly useless for anyone. Nothing would be better (as in faster). Or maybe the list of the most recently added or updated packages.
<cbaines>ngz, there's probably some room for improvement indeed. A while back, there was some work to try and build a packages thing based off of the data in data.guix.gnu.org
<nckhexen>Christoph[m]: It's not content-related like that: it joins just fine if the join is delayed by a few seconds. It had something to do with ban lists(???) flooding the queue. I don't get it either.
<Baptiste>I would like to export my manifest when I'm reconfiguring my system. I've found an `export-manifest` function in guix/scripts/shell that probably would do the job but I can't seem to figure out a way to call it from a guix REPL. The function is not exported so I'm using `@@` but even with that, Guile tells me that it is unbound. How would you go
<nckhexen>Baptiste: @@ not working might be a ‘declarative modules’ thing. They can break that (unsupported) hack. The manifest produced by export-manifest isn't a hard ‘pin’; in most cases it's just an unadorned specifications->manifest call. You could write that yourself with much less ballast. (guix scripts …) can be tempting red herrings; take a look at things like packages->manifest first.
<nckhexen>efraim, cbaines: Someone forgetting about git-minimal seems more likely than them thinking ‘anything goes’, which would be worrying IMO?
<nckhexen>These limits exist for homebuilders as much as (if not more than) the CIs.
<cbaines>"anything goes" more refers to other large rebuilds, I wasn't specificly referring to git
<cbaines>although with the guidance as it stands, both git and git-minimal are OK to update on master (< 300 dependents as reported by guix refresh -l)
<nckhexen>…what? That is a very lawyerly view of the per-package limit but I can't say you're wrong 😃
<nckhexen>No, I guess it's a valid reading, carry on.
<cbaines>indeed, but I'm not sure how well that matches up with the goal of minimising pointless rebuilds and keeping Guix usable without substitutes
<antipode>Presumably a test cycle that can be broken by disabling tests in some of the packages.
<johnabs[m]>antipode: Not recommending n-cycling where n is any integer or rational number)? I for one, am shocked, and appalled at this clear bicycle favoritism. (Sorry, couldn't resist, I've been up all night xD)
<antipode>More precisely, A depends on B, and B depends on A but only for tests (if tests are disabled then B does not depend on A).
<antipode>Such a cycle can be broken even if running all the tests, by building B (with tests) against a variant of A that is built against a variant of B with disabled tests (and hence doesn't depend on A or variant of A)
<johnabs[m]>That's the closest, as you can consider the n-points on the back an infinitesimal fraction of a circle which contains infinitely many equidistant points from the center, so if you're a topologist, it counts!
<antipode>I think 'cycle' in 'N-cycle' means 'wheel', not the 2pi (360 degrees)
<johnabs[m]>antipode: Right, but is it really a wheel if it can't roll of it's own volition?
<johnabs[m]>nckhexen: I think that has more cycles than a unicycle
<johnabs[m]>Also, I just want to make sure I'm not so off topic that I'm gonna get banned 😂
<antipode>Yes, IMO being broken or having unusual restrictions in usage doesn't make an X a not-X.
<nckhexen>johnabs[m]: You don't get banned for being off-topic, only for (ideally, rudely) persisting when it's time to stop.
<johnabs[m]>Well according to topology, you ain't allowed to cut it, only stretch/deform it.
<johnabs[m]>nckhexen: Okay perfect, I'm kind of all over the place when I haven't slept, but I try really hard to not be rude around the clock :3
<nckhexen>See, you've already beat a nonzero percentage of IRC users by trying.
<antipode>Currently I'm doing group theory, and the rotation group on S^1 is not a cyclic group.
<antipode>(Cyclic groups are countable, and the rotations on S^1 aren't).
<antipode>So those 'fractional cycles' aren't really cyclic.
<johnabs[m]>antipode: I don't know enough group theory to refute you, but I'm a sophisticated enough neural network to classify "working wheel" and "not working wheel" with at least 99% accuracy! So take that :P
<johnabs[m]>nckhexen: YEAH, I'm in at least the 1/\infty percentile, the bar has been set xD
<antipode>For your internet prize, have a free C^× ((multiplicative) unit group on the complex numbers, which corresponds to the unit circle), where proper Unicode is left as an exercise to the reader.
<johnabs[m]>I graciously accept :3 Let it be known that soon-to-be Dr.BS has achieved a circle, with literally no way to prove it since it's not implemented in Unicode yet, and therefore cannot be rendered in text reliably. An excellent prize for such a mathematically acute mind to discover rational bicycles xD
<johnabs[m]>Also, I hope that link doesn't go anywhere, that's just what I'm going to have people call me once I finish my PhD xD
<nckhexen>johnabs[m]: Just FYI, ‘dr.bs’ is available for the low low price of ‘several hundred bucks’.
<johnabs[m]><nckhexen> "johnabs: Just FYI, ‘dr.bs’ is..." <- I already own the domain doctor.bs.blogspot.co.uk (okay, that wasn't true)
<daviwil_>Has anyone successfully used Emscripten in Guix? Using `guix shell --container --enable-fhs` I was able to get so far as to use the emcc compiler but compilation immediately fails because the header `gnu/stubs_32.h` is missing
<daviwil_>I'm guessing this is because multilib headers are not included in gcc-toolchain?
<daviwil_>I suppose the quickest way to get going would be to use the official Emscripten docker image
<apteryx>efraim: perhaps more packages should depend on git-minimal/fixed; 660 is getting unwieldy for 'git'
<lilyp>anything leading with --enable-fhs sounds like "I have no idea how this works, so I'm trying to make do with any hack possible"
<lilyp>Which if that's your solution to get things working in Guix, chances are no one else had any idea either
<nckhexen>daviwil_: There's no such thing as ‘multilib’ in Guix (or in 2022, one would hope, but nope). You can try running legacy stuff with --system=i686-linux. But unless that ‘_’ was a typo, good luck.
<nckhexen>(Put differently, Guix is infinitely multilib, unlike the lib32 kluge, as long as you don't cross the streams at run time.)
<daviwil_>lilyp: I'm trying to use the official Emscripten distribution as-is just to see if it works. The next step would be an attempt to package it properly, but I don't have time for that at the moment
<nckhexen>I fear something else will break next; I confirmed only that it adds gnu/stubs-32.h.
<nckhexen>If so, check whether emscripten itself can be asked not to do this ad hoc multilib stuff to begin with. But I also understand the Docker image is tempting you with its siren whalesong.
<daviwil_>The twist here is that Emscripten is using clang instead of GCC so --system isn't available. There's probably some other configuration I can do to make it work, but doesn't seem worth it at the moment. Thanks for looking into it!
<nckhexen>I meant Guix's --system argument, FWIW (which may be little).
<nckhexen>But yeah, clang ain't going to help simplify matters…
<VesselWave>Hello. How do I install cargo-make in guix container using cargo or guix itself?
<VesselWave>I neither found a rust-cargo-make package definition nor able to provide proper SSL certicates for cargo in the containeiner
<nckhexen>VesselWave: Add ‘--expose=/etc/ssl nss-certs’ to get the certs working.
<apteryx>perhaps --expose=/gnu, since ssl certs can by symlinked to the store
<VesselWave>nckhexen: Interesting thing, when I do guix shell in my home dir it doesn't update index. But in any other dir it makes network stuff. So try again in dir where you don't have .cargo
<nckhexen>I never had a .cargo in the directory I was using (was it supposed to be created? It wasn't), nor in my ~.
<nckhexen>It *does* do network stuff. It downloads cargo-make. I thought that was the point. Note that I know nothing of cargo beyond that.
<apteryx>odd, I can't seem to use '(define profile (profile (content (packages->manifest (list %bootstrap-guile))) (hooks '()) (locales? #f)))' at the REPL; I always end up with error: content: unbound variable
<VesselWave>Fixed! /etc/ssl/certs/ca-certificates.crt is a broken inside a guix container, but $GUIX_ENVIRONMENT/etc/ssl/...ficates.crt is not. So I had to override is using SSL_CERT_FILE=$GUIX_ENVIRONMENT/etc/ssl/certs/ca-certificates.crt cargo install cargo-make
<apteryx>VesselWave: broken because it's a symlink pointing to /gnu/store?
<apteryx>sanity check: guix pack --symlink specs's second value, e.g. --symlink=/usr/bin/env=bin/env is always relative to the profile it's to be created in, hence there's no valid use case to use an absolute path for it, correct?
<nckhexen>VesselWave: Can you paste in full the command you're using to create this broken link?
<nckhexen>If it does not contain the suggested ‘--expose=/gnu/store’, reconsider.
<VesselWave>‘guix shell --network -C --expose=/etc/ssl coreutils nss-certs’ and then try to cat /etc/ssl/certs/ca-certificates.crt
<nckhexen>Why didn't you add --expose=/gnu/store ?
<VesselWave>It sholdn't, it's a CONTINER. I think best approach is just to override. Why not?
<nckhexen>I don't know why not. Just a mention would have been appreciated.
<nckhexen>I think it's better to fix SSL_CERT_* (somehow, *waves hands*) automatically than to copy regular files to /etc/ssl to ease sharing. I'm not sure that iffy use case (--expose=/gnu/store) deserves that much effort or encouragement.
<nckhexen>VesselWave: You can emulate that with e.g., ‘guix shell --network -C --expose=/etc/ssl coreutils nss-certs openssl’ but it's arcane as heck.
<nckhexen>apteryx: The penultimate line was aimed mainly at you, BTW. No idea about --symlink, sorry.
<ardon>Hi Guix! I stumbled across a small quirk earlier on. I'm trying to package a local Elisp library using local-file but since the library ends in ".el", it's treated like a file rather than a directory to recur into. How do I go about this without having to rename the directory?
<apteryx>I was expecting some error message, not a backtrace
<apteryx>ardon: not sure about the local-file problem, but an origin fetch-url method is able to ingest a plain file; you could point it to your local file using the file:// prefix (aka protocol)
<apteryx>something like "file:///home/your-home/src/proj/that-file.el"
<ardon>apteryx: Thanks for the suggestion. However, I want to point to the directory though (which happens to be suffixed with ".el" like many Elisp libraries) and I'm using the `#:recursive #t' flag of local-file to achieve this
<ardon>It works fine if I rename the directory (e.g. ement.el -> ement) and then I call `(local-file "/home/your-home/src/ement")', but if I include the ".el" suffix it treats it as a file rather than a directory
<apteryx>that's odd, if you used #:recursive #t, I'd expected it'd do what you want no matter the name
<silasfox>I've used this patch (https://issues.guix.gnu.org/45725#10) to install gutenprint drivers to my guix system. And I can see that they're kind of used, because when I try to add a printer, it shows in system-config-printer and I can add it.
<silasfox>But then I get a popup that says: "Printer 'Canon-...' requires the '/gnu/store/some-hash-cups-2.3.3op2/lib/cups/filter/rastertogutenprint.5.3' program but it is not currently installed."
<Andronikos>I am getting "Zygote could not fork: process_type gpu-p rocess numfds 3 child_pid -1" inside a container with fhs. How can I fix that?
<silasfox>The thing is, rastertogutenprint.5.3 is installed, but in /gnu/store/some-hash-gutenprint-5.3.4/lib/cups/filter/, as it should be. The same thing also happens with splix drivers. Does anyone know how to teach cups where to find those filters?
<antipode>Andronikos: It would be useful to know what software you are running.
<antipode>'Zygote' sounds like Android, are you running an Android userspace in a container?
<antipode>silasfox: Usually for such things you need to add an appropriate substitute* to the package definition, though from some previous experience CUPS is complicated
<antipode>(to replace the wrong file name by the right file name)
<gnou_liber>I have a problem, and it is that the adwaita icons do not show me despite having the adwaita-icon-theme package installed. Do you know how I can solve this?
<nckhexen>Add it to the (extensions …) field of the CUPS service and see if that helps, or the error message changes. If not, patching might be needed, but I assume the patch you used wasn't fundamentally broken.
<apteryx>zimoun: to be clear, the very large handler is already in master, see (guix ui) with-error-handling. What I'm trying to do is raise a formatted-message condition at the time of parsing the option and have it handled by it
<apteryx>rekado_: try 'rm /bin/sh' in a 'guix shell -CD ghc@6' to see if you can reproduce?
<apteryx>zimoun: it works! it was really putting the with-error-handler at the right place
<Aurora_v_kosmose>I've been considering packaging some things and the sheer number of transitive dependencies just seems absurd.
<jab>Aurora_v_kosmose: I think unmatched-paren tried to package the aerc email client. It's written in go, and apparently it has been quite the pain to package.
<Aurora_v_kosmose>It's a rather unfortunate situation. I think that in promoting so heavily portable statically-linked binaries, the downsides of so many dependencies being so hidden were completely ignored.
<antipode>On VMs: I recommend against running "make check-system" on core-updates when you can do so on master instead.
<moggikorken[m]>is there a way to declare binary runtime dependencies for packages.
<moggikorken[m]>I cannot think of a good example of this that would be packaged in guix but I am trying to package sbt for my own use and thats easy enough just pull a binary and put it on the machine however it also requires sed, grep, and openjdk16 >= .
<moggikorken[m]>now I can just put those dependencies in when I use the package but I guess what I am wondering is if there is a way for a package to consist of more than one binary even so its not up to the user to figure it out? (Iv tried with inputs, native-inputs and propagated-inputs and none seem to work) and if so is there a package I can look at in official guix for ideas?
<tribals>I'm trying to understand how to configure my system. I'm adjusting my config, then applying changes with `guix deploy`, but seems like changes aren't applied despite new generation reported as current. I'm configuring guix system shepherd service.
<tribals>I need to verify that changes I made to configuration.scm reflected after `guix deploy`. To do so I want to check generated config file for shepherd service. Where it is located?
<clever>tribals: usually, the service gets restarted automatically, and has a --config flag pointing it to the new config file
<clever>check ps aux for the service, and see what args it has
<tribals>that's the issue. I has been looking to process command line with `pgrep -a <service>`. Seems like I've had an error in config, and service doesn't start. So, this method doesn't work any more. Unfortunatelly, config file name is not reported at logs either.
<clever>tribals: i assume your using systemd? what is in /etc/systemd/system/foo.service for that service?
<moggikorken[m]>unmatched-paren: hmm is there an example of this that I can look at somewhere?
<tribals>No, I'm using guix system, it is shepherd-based service, which is generated (I suppose) from `(operating-system (services ...) ...)` definition
<antipode>If you want to create a root (symlink to store item protected for GC), then there's the '--root' option of various guix commands.
<tribals>I've verified that a config is generated as I'm assuming. Seems like my assumption is wrong.
<antipode>The openat / mkdir-p/perms patches should be in theory ready now, but compiling the new guile is taking a while ...
<moggikorken[m]>unmatched-paren: I am going to have to get back to it. Im finding it hard to reason about what substutute* is doing it seems like its doing nothing and failing silently :/ (very probably its me using it wrong but I have no idea how to get guix to tell me when Im using it wrong/right)