<vagrantcish>i see there's an lvm-device-mapping now ... are there other pieces needed for / to be on lvm on Guix System?
<sundbry>Hello #Guix, I am working on packaging some go software. The software I am packaging has more than a few go dependencies. I have shim'd a `go-get` phase into my go-build-system to download the dependencies using the standard `go get`. However, it appears the guix build container has DNS (or perhaps all networking) disabled. Is there a way I can enable networking for a build? It's not a perfect offline reproducible build,
<sundbry> but I dont have the schedule to repackage each dependency in the tree individually.
<vagrantcish>guix doesn't allow network access from the build environment
<sundbry>There's never going to be an escape hatch? I want to build not just this go program, but java/clojure programs too, and maven depdendencies will be a huge mountain to get to the first viable build of my app
<vagrantcish>i believe it is pretty fundamental to the design of guix's functional package management
<vagrantcish>you could build your software using "guix environment"
<luhux`>I'm using guix environment --container, but creating a container takes at least 200MB of RAM. Is there a way to reduce RAM usage?
<sundbry>Yeah I understand the lack of purity, and why you wouldnt want those packages in the core distribution, but for user applications the cheat mode allowing network deps like node_modules etc would go a long way to making it useful
<sundbry>I can't imagine we would ever have all the node modules on npm that someone might ever need to build some typical node software
<vagrantcish>sundbry: there's no way to cheat, though ... guix wouldn't know where to install those things downloaded from the network, and your package might build, but it would be missing dependencies ...
<mange>For the last few days I've been getting a bunch of error messages when pulling substitutes. I used to be able to use --fallback to get around them, but now it's failing to fetch sources because it's also trying to get them from ci.guix.gnu.org. I can still use --no-substitutes, but that's a bit more extreme.
<mange>The particular error I'm getting is: unexpected substituter message 'In procedure put-string: Wrong type argument in position 1 (expecting open output port): #<closed: string 7f91251af540>
<civodul>bdju: oh i see, thanks, i'll report a bug
<mange>Is there something going on with the substitute servers, or my connection to them? It doesn't fail 100% of the time, but it seems to be increasingly common.
<mange>I don't know how to find out what's actually running, but the guix-daemon binary reports "guix-daemon (GNU Guix) 1.2.0-6.799f066". I'll restart my daemon now to make sure that I'm actually running that version.
<mange>Yep, failed again with the same message. I get a "substitute: updating substitutes from 'https://ci.guix.info'... 100.0%" line before it fails, too, so I can actually talk to the substitute server.
<maav>AFAIR 30X codes go through the not-404/202 path, therefore they are treated as errors with extra delay instead of redirections... OTOH redirections may be tricky and lead to surface area for attacks
<abcdw>For example I have a project, which depends on guix "version X", I can write it in channels.scm and use `guix environment -C`.
<abcdw>Now I want to use this project as a channel, I create .guix-channel, but how to make it use channels.scm to set dependencies?
<abcdw>Can I write something like (dependencies (load "channels.scm"))?
<civodul>abcdw: hi! .guix-channel is not code, it's just data, so you cannot write this
<civodul>i'm not sure i fully understand the use case though!
<abcdw>I don't want to duplicate dependencies between two files .guix-channel and channels.scm. The first one is needed to provide a project as a channel, the second on is needed to setup the development environment for the project.
<abcdw>civodul, not sure that I do it right at all, but it is my first idea how to organize the code.
<sss2>hi all, have anyone using build offloading ?
<sss2>do i need any special setup to offload from i686 to x86_64 ?
<abcdw>btw, how to eval a file with properly set load-path s? Is something like `guix eval` exists?
<rekado_>“guix repl” exists, which can also load a file
<abcdw>rekado_, Thank you, figured out how to deal with it.
<abcdw>civodul, Tried to do the other way: Read .guix-channel content from channels.scm file, but (guix channels) doesn't export read-channel-metadata-from-source function :/
<zimoun>civodul: I am confused by #45173 about ’guix search’
<zimoun>mothacehe: I need pair training about the Cuirass web frontend. Because once I know “guix weather foo” that something is wrong, then I am not able to find the log and so I build it locally. Hum! :-)
<civodul>abcdw: but to work on a the code of a channel, you don't need a channels.scm file; or am i missing something?
<civodul>perhaps you should describe your workflow on the ML
<mothacehe>zimoun: I don't think that Cuirass offers more that the search interface to find all the builds of a given package.
<mothacehe>civodul: nice that you started some experiments on advertise/discover feature :)
<civodul>mothacehe: small scale: my laptop and the one next to me :-)
<civodul>we should recommend gzip:3 when not using --cache
<civodul>using lzip compression is just too slow for on-the-fly compression
<ces>Can someone share a config without gdm? perhaps give some pointers. Can i remove it inside modify-service on %desktop-services somehow? Also, someone said i should also disable elogind, anyone know about any of this? I am mildly scared i will break my system.
<rekado_>modify-services can have more than one clause
<ces>But, would it then be (modify-services %s (sevice-type bla bla) ... (remove bla bla ..))
<zimoun>civodul, mothacehe: does it make sense to use one machine as bayfront or the Fosshost proposal to be testing machines, building only wip-* branches. Because I (user?) am tired to not have susbtitutes because of IO. When I am sure the packages build because I did locally. :-) Even it is really improved these days and I know the mothacehe’s and cbaines’ invaluable work to fix it.
<civodul>zimoun: yes, i think cbaines was looking into using one of these as a build machine
<civodul>re substitute availability, it's largely a software issue at this point
<civodul>thanks to mothacehe's recent hack on Cuirass, we no longer have the problem on berlin where GC would run for like half of the day
<rekado_>ces: the first argument to modify-services is a list of services
<civodul>so if the build throughput remains low, it's mostly an offloading/Cuirass issue
<civodul>(the Coordinator doesn't have this service AFAIK)
<rekado_>ces: this can be %desktop-services, or it could be a modified list
<rekado_>you can also make it look nicer with a let binding
<ces>rekado_: Can you check this snippet from my services? I think i can't really explain it without. I wonder if the remove should be placed here, or if it should (or could) go inside the (modify-service) http://paste.debian.net/hidden/b285549c/
<cbaines>civodul, zimoun I'd like to make better use of bayfront/milano-guix-1. One option there might be to use the Guix Build Coordinator to build things for substitutes. That should work pretty well, and produce better results than the current Cuirass+offloading setup.
<zimoun>civodul: yeah, I agree. I am following the both works about offloading and I am familiar with what mothacehe is trying to implement. Both are really helping. My point is: when waiting the fix (couple of weeks, maybe months), try a temporary fix. Berlin is full when Bayfront is less. At this point, it’s configuration
<rekado_>weird error: guix package: error: rename-file: No such file or directory
***new[m]1 is now known as newline[m]
<cbaines>I also think there's some benefits in separating out building things for testing purposes, and building things in master for substitutes.
<cbaines>The two fosshost machines are busy building patches/staging/core-updates things
<ces>rekado_: I get the modify-service part, but i jsut wonder how it works in relation to remove, does the thing i did make sense, or would the modify-services just "overwrite" it and declare a new modified %desktop-services?
<zimoun>cbaines, civodul, mothacehe: my point is about configuration. Remove all the wip-* branches from Berlin and build them on Bayfront. Nothing fancy, nothing perfect, just a fix waiting the right thing. But saving ressources. Berlin building only master, staging and core-updates (which is already a lot :-)). I do not know.
<abcdw>civodul, To get all the dependencies and to setup the environment I do something like:
<cbaines>jeko, congratulations! Do you know what the issues you encountered were?
<jeko>cbaines: yep… A lot haha mostly because I don't know what I'm doing. The last one was : Because I rum Qemu with hostfwd=tcp:127.0.0.1:10022-:22 I had to authorize the ssh key both on the VM (guest) and my PC (host)
<mothacehe>which is still quite a lot, but we have some progress to do in this area
<bdju>jonsger: oh, the older ones are better supported? I thought I heard the current free drivers used don't support the older cards. good to know.
<bdju>I used to have an HD 7770. that is pretty old.
<rekado>bdju: the GPU I use in my old desktop machine is an Nvidia, actually. It does have 3D acceleration and works out of the box.
<jas4711>mothacehe: okay. one alternative work-flow for me would to start with the official installer ISO and automate installation -- is there any support for that? i'm thinking some way to inject a config.scm
<rekado>jas4711: I really don’t recommend using the installer ISO as the foundation for a mutable system
<rekado>it’s much nicer to generate a system declarativel
<bdju>rekado: I had bad experiences in the past with nouveau being worse performance than just using intel integrated graphics (and I don't really like nvidia as a company) but that's good to know. which model is the nvidia gpu you use?
<bdju>is there a way to check if a GPU would need blobs without actually getting one and trying it? doesn't seem like h-node has a spot for that. I wonder if some nvidia stuff newer than the quadro 600 would work
<zimoun>mothacehe, g_bor[m]: Hey, we just had a discussion in the Outreachy context about walking the history tree with guile-git. Is it currently possible?
<guix-vits>bdju: there is Vikings solding ryf-hardware. theirs pc was sold with an card, then they stop ship it along due to some issues. should be tricky.
<mothacehe>zimoun: the log related bindings of libgit2 are not implemented yet in guile-git
<maav>lafrenierejm: i've seen these warnings but i wasn't sure they were an issue. i'd try with guix environment guix --ad-hoc guile-semver and then building from configure onwards, as the pkg-config info is stored if you only call make again
<dannym>Remove it and guix will be flaky in actually using the channel like you wouldn't believe
<dannym>But the guix info docs sound like you only need that when you want guix to search a subdirectory for it or something, not something that is required
***scs is now known as Guest45799
<dannym>Anyway, just wanted to know what it is for in the first place (personally, my channels always worked without that file--maybe Heads' engineers are doing something unexpected...)
<blendergeek>I am trying to build a simple test program that uses gmime on my GuixSD computer. I get the following error message: "gmime-test.c:2:10: fatal error: gmime.h: No such file or directory". How do I add the Guix Store paths to my include path?
<rekado>blendergeek: are you building a Guix package or just trying to compile something the traditional way?
<blendergeek>rekado: I am just trying to compile something the traditional way.
<rekado>blendergeek: you will need to tell the compiler where to find gmime.h by setting C_INCLUDE_PATH or the like
<rekado>if you use “guix environment” you can also set the variable according to $GUIX_ENVIRONMENT/include
<rekado>but if you use gcc-toolchain these variables should have been set for you already
<lafrenierejm>When attempting to build the create firstname.lastname@example.org, build fails with "ld: cannot find -ljack" even though I'm providing jack-1 from packages/audio as an input: (inputs `(("jack" ,jack-1))`).
<sys2>hi #guix! I'm way behind on updates because of this bug: https://issues.guix.gnu.org/44559. Is there an easy workaround? I've tried a bunch of workarounds (build --without-tests, rollback then pull, etc), but nothing has worked yet
<smithras>I'm writing a package definition for wlr-randr, which is just xrandr for wayland (designed for wlroots/sway). I'm a bit unsure which file to put the definition in though - wayland is in freedesktop.scm but this isn't a freedesktop tool, should it go in wm.scm with sway?
<mdevos>sys2: is this still an issue? I don't have any issues with that lately
<mdevos>sys2: I'm not using guile3.0-gnutls though, only gnutls (as dependency of GNUnet)
<mdevos>sys2: btw guix build says guile3.-gnutls is superseded by gnutls
<sys2>mdevos: it's been for awhile, I haven't been able to get past this so I just haven't updated in awhile
<mdevos>I'm rebuilding with --check right now, let's see hat happens
<sys2>I tried changing the clock... but then another cert check fails... so I'd almost need to download first, change the clock, and build/install without hitting the network
<sys2>s/another cert check/a "normal" https request unrelated to this specific bug/
<mdevos>sys2: as a workaround: if you don't mind compiling from source, you can git clone the guix repo and locally make some changes to gnutls definition
<mdevos>(adding #:tests? #f to (arguments ...) I think)
<sys2>I tried that too, but then pull still tries to upgrade this package. I'm guessing I just go to the file with gnutls, check out whichever version is 3.6.12, add "gnutls" to the end (no quotes), and install?
<mdevos>It's building right now, let's see what happens
<sys2>still running ./pre-inst-env guix package -i openldap (it's running check even though my local repo has tests off for gnutls)
<sys2>the 3.6.15 gives me: guix build: error: gnutls: package not found for version 3.6.15. not sure how to get the current guix if pull fails
<mdevos>(about why there are multiple versions of gnutls in guix: the @3.6.12 is used as build dependency for other packages, but when actually installing/upgrading packages, references to @3.6.12 are rewritten in-place in binaries to @3.6.15)
<sys2>which (oddly) outputs: /gnu/store/xs211l124dy9gi9ybvajdv58a7h0yf5f-gnutls-3.6.14 (and doc and debug)
<mdevos>sys2; that's bad. Could you rollback to an earlier guix generation, where guix pull worked, then time-travel back to the present?
<mdevos>sys2: actually, that makes sense, due to grafting
<mdevos>it's a mechanism to avoid huge rebuilds if an important package is upgraded
<mdevos>instead of rebuilding all packages with email@example.com.Y, the references to firstname.lastname@example.org.X are rewritten in-place in binaries to email@example.com.Y
<mdevos>(And saved in a separate /gnu/store/etcetera directory of course)
<sys2>happy to try whatever. eventually I'll try a clean install (torn between guix and gentoo-- guixsd has some nice properties gentoo doesn't, but if I'm running from source gentoo's USE flags are nice to have, but IME the system's a bit messier)
<mdevos>(btw firstname.lastname@example.org tests pass on current guix)
<sys2>that makes sense. appreciate you trying to help :). let me know if you have more suggestions, but I don't want to take too much of your time either when I can reinstall in a few weeks
<mdevos>btw you can find old guix here: /var/guix/profiles/per-user
<sys2>so would I run a guix pull from one of those directories?