IRC channel logs


back to list of logs

<Guest72>I am trying to use Guix on NixOS, but I am having weird problems
<Guest72>some problems happens in real hardware computers, but it doesn't happen in virtual machine
<Guest72>and some problems happen in the virtual machine and it doesn't happen in real hardware
<Guest72>When I run `guix pull`, I receive this error:
<Guest72>guix/ui.scm:2117:12: In procedure run-guix-command:
<Guest72>Wrong type to apply: #f
<Guest72>substitution of /gnu/store/q0s3bi0by383cqzl9zz1wf74p6pdl3fc-libx11-1.6.A-doc failed
<Guest72>guix pull: error: some substitutes for the outputs of derivation `/gnu/store/mvf88n2v90jjxg9n8b315p22r6jrkbyb-libx11-1.6.A.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source
<Guest72>I have the code of the virtual machine if someone wants to try to run it
<raghavgururajan>Any thoughts on this (
<char>excuse my ignorance, but if you have tested it already, what am I looking for?
<apteryx>raghavgururajan: for the tests? #f, I'd reword the comment to say: ";no test suite" (conventionally no space follownig ';' for inline comments), if there are indeed no test suite.
<apteryx>the "no target" makes me think the packager didn't search farther when it failed because the test target wasn't the default 'check' one used by the gnu-build-system :-)
<apteryx>for the configure phase deletion, I'd say ";no configure script" (that's not a target, in the Makefile sense)
<apteryx>for the synopsis do we really capitalize all words like this? That seems unconventional.
*apteryx checks
<apteryx>In the manual we give example such as "“File-frobbing tool”; rather than "File-frobbing Tool". So only capitalize proper the first word or proper nouns, I'd say.
<apteryx>For the description it'd be nice to add some features taken from its README:; grep for "@itemize" for examples.
<apteryx>the rest LGTM
<apteryx>raghavgururajan: ^
<apteryx>Guest72: perhaps try with --fallback in case it was caused by networking problems, but at any rate the Guix code raising an exception due to wrong type is a bug.
<char>@raghavgururajan I installed your slstatus successfully
<Guest72>apteryx, I tried with --fallback but some derivation compilation failed
<apteryx>Guest72: which derivation failed? Could you paste the error somewhere (just the last 50-100 lines of it or so)
<Guest72>apteryx some of my derivations that failed
<raghavgururajan>apteryx: Thanks!
<raghavgururajan>char: Yay!
<libertyprime>hey guys. I've just gone through and info page instructions for installing guix on ubuntu20. i've also installed the guix emacs package via melpa now I receive the following error while trying to run a guix command in emacs:
<libertyprime>Error in evaluating guile expression: While executing meta-command: error: package/output-sexps: unbound variable
<libertyprime>Just wondering if there is an obvious fix for this. My guix installation appears to be working fine. I have even managed to update guix and install packages from a normal user
<drakonis>something is clearly not in scope
<ecbrown>libertyprime: i believe you need to actually build the guix in ~/src/guix
<ecbrown>i had this problem when trying to run emacs-guix, in fact. same error
<libertyprime>thats the insight i was looking for, thank you sir
<ecbrown>yw good luck
<libertyprime>i diligently read the info pages during setup and noticed warnings about things such as locales and fonts, but im wondering aside from that, am i likely to encounter problems later on due to me being on ubuntu rather than guixsd?
<libertyprime>or should it be theoretically smooth sailing from here?
<ecbrown>yes, probably. you ought to figure out GUIX_LOC_PATH
<ecbrown>glibc-utf8-locales etc
<ecbrown>theoretically you will run in to problems ;-)
<libertyprime>haha. ok. would it pay to focus on my scheme skills before diving into guix?
<ecbrown>well, i had advantage of knowing emacs lisp and clojure, so i don't have much trouble with syntax
<mange>libertyprime: It depends on how you use Guix, but I've certainly run into issues. Usually it's to do with environment variables that Guix sets interfering with what Ubuntu-installed programs require (XDG_DATA_DIRS, and various *_PATH environment variables, mostly).
<ecbrown>there are "idioms" that you will learn
<ecbrown>i second what mange said. on a foreign distro you could well end up with a lot of environment variables, depending on whether you go into GUI stuff like XDG_****
<ecbrown>immediately you should find the curl certificate stuff + nss-certs etc so that git clone works with https
<ecbrown>there are some good examples for example marius bakke wrote one on how to load one's own Guix xfce environment on top of CentOS 7
<ecbrown>that has a whole bunch of what you will need i think
<libertyprime>cool. thanks for that. ill be seeing u round more often. gonna hit my next coffee shop
<ecbrown>no problem, see you around
<mange>As two illustrative examples: (a) in my .profile I have to set XDG_DATA_DIRS to /usr/local/share/:/usr/share/ (which is what an empty value is interpreted as) so Guix can prepend values safely; (b) in awesomewm (my window manager) I launch other programs and I have to clear LD_LIBRARY_PATH and GI_TYPELIB_PATH to not break things.
<raghavgururajan>apteryx: Is this good?
<lispmacs>hi, I was wondering what services we have available for gathering entropy for the system. I didn't see in the manual a "haveged" service or similiar
<brendyn>core updates has two gcc-toolchain@10 's for some reason ./pre-inst-env guix show gcc-toolchain@10
<brendyn>both point to the same line
<brendyn>the line is the end of the file though?
*raghavgururajan forgot the synopsis
<raghavgururajan>apteryx: Ignore v4. I have sent v5.
***sneek_ is now known as sneek
<mange>lispmacs: Searching the manual for entropy shows up rngd-service and urandom-seed-service which look like they work from /dev/hwrng by default. Would they work for you?
<lispmacs>mange: sounds good
<lispmacs>mange: rngd-service is already part of base services?
<lispmacs>oh no, it is part of the base module
<mange>Yeah, it looks like urandom-seed-service is in %base-services, but not rngd-service.
<apteryx>Guest31: my icecat doesn't seem to like Could you please paste on, which doesn't require any javascript? Thanks.
<apteryx>raghavgururajan: it's starting to look good! Thank you for taking the time to revise it. Remaining nitpicks: "It provides following [...]" -> "It provides *the* following [...]"; test-suite -> test suite.
<apteryx>I personally don't find the comments in the patch phase bring much, e.g.: ;; To correct PREFIX path. I'd leave them out, the substitutions are explicit enough. Also I'd find it more natural if they were using the imperative style (giving instruction/doing some action) such as: ;; Correct the installation prefix.
<apteryx>raghavgururajan: that's it! Feel free to push with something along the above changes :-).
<apteryx>sneek later tell civodul Hi! Here I see: guix environment --system=i686-linux guile -- guile -c '(display %host-type) (newline)' -> x86_64-unknown-linux-gnu
<sneek>Got it.
<raghavgururajan>apteryx: Thank you!
<bricewge>Hello Guix!
<leoprikler>nckx: Protege Desktop is written in Java. Web Protege is also written in Java.
<schmillin>anyone running herd outside a vm?
<rekado>schmillin: is this the same as asking whether someone uses Guix System outside a VM?
<solene>schmillin: I use herd on my laptop
<soheilkhanalipur>Please help!
<soheilkhanalipur>ethtool -t eno1
<drakonis>Publish your config
<cbaines>soheilkhanalipur, are you using Gnome/NetworkManager?
<drakonis>Chromium isnt at fault and have you recently invoked guix pull and upgraded your system?
<cbaines>and have you got an IP address when connected via ethernet?
<remyd1>Hi. I am a bit new on guix and I am trying to setup a guix environment for HPC usage. I have a permission denied issue with "/var/guix/profiles/per-user/" folder when trying to setup a new subdirectory for a new user.
<remyd1>I tried to change the permissions on that directory, but the guix-daemon seems to setup back readonly
<remyd1>it seems to be related to that security issue:
<remyd1>Then, I followed this:
<remyd1>in order to upgrade my install on the guix node
<remyd1>and restarted the guix-daemon
<remyd1>but no luck. It does not work either.
<remyd1>For the guix install, I followed that blog post:
<remyd1>but I installed it through the install script instead of the binary
<remyd1>There was a previous installation on hat guix node, where I used the binary, but I had a weird issue. So I removed everything, except guix build users/groups.
<remyd1>and started a fresh install
<remyd1>Any idea on what I missed ? Should I reinstall the guix node ?
<remyd1>using "vimdiff /root/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/nix/libstore/ /root/.cache/guix/pull/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/nix/libstore/" the patch seems to be applied by the guix pull.
<remyd1>(for the record:
<jbv1[m]>hello guix! what do you use to format your patches/mails for the guix mailing lists?
<zhu_zihao>jbv1[m]: `git format-patch`
<zhu_zihao>actually, I use magit in Emacs
<jbv1[m]>i also use magit and i would like to send the patches directly from emacs but did not find a comfortable way
<nckx>jbv1[m]: ‘git format-patch -<number>’, but I actually use git send-email directly.
<zhu_zihao>oh, I just sent patches via mu4e manually...
<nckx>leoprikler: Thanks.
<nckx>Well, git send-email pops up emacs to do any necessary editing, so there's not much of a difference. I just don't like magit.
<jbv1[m]>ok thanks for the input. i'll experiment see what suits me best
<dstolfa>nckx: hey, i don't use magit either with emacs. i actually prefer vc-emacs over it :D
<nckx>Oh dear, something new to try.
<dstolfa>it's built-in to emacs
<vldn>hey, i try to define a (foo-service-type) but i get unbound variable for the description etc. what is the module to import to define it?
<vldn>use-service-modules shepherd doesn't help :(
<viivien>Magit does an incredible job with interactive rebase, and other less-used functions. I don’t think I could go back to the time before I used it :)
<dstolfa>viivien: yeah it's quite neat. it's not as good as magit for rebases and so on, but it does a lot of useful stuff
<nckx>vldn: I'm guessing (gnu services). use-service-modules xxx is just syntactic sugar for (use-modules (gnu services xxx)) and can't be used to import others.
<nckx>dstolfa: Now I'll certainly have to try it. *shakes fist*
<dstolfa>being able to run blame on it for almost any VCS and then press a line and it opens the file is very useful
<dstolfa>same with ediff firing up and so on
<dstolfa>merges... :)
<dstolfa>the way it stages changes is very CVS-y because it actually supports CVS, but you can make it play nice with git for that too
<nckx>I've never even used CVS so I don't know what CVS-y means. As long as it's not ‘inserts noise at the top of each file’ we're good.
<dstolfa>nckx: it's more of to do with how CVS deals with changes... i'm not sure you want to know
<nckx>Oh I'm sure I don't.
<dstolfa>if you've ever used perforce, it's kind of like that, but worse
<nckx>I'm perfectly old enough to have used it; I just chose never to do so :)
<dstolfa>(the big gripe i have with it is non-atomic commits)
<nckx>CVS, but Perforce neither.
*nckx is very basic where VCSes are concerned. Git, svn, …eh, a sprinkle of hg… and that'll be it.
<dstolfa>nckx: cvs is great, you can make your changes, commit them and then have 4 files get committed, and the 5th one fail :)
<nckx>That's a very 1950s definition of ‘atomic’. 💣
<dstolfa>i also love when you do a checkout and it just kind of hangs like 10 times before it actually completes
<nckx>‘It's not unmaintained, it's finished.’
<nckx>Has seldom been true IME.
<dstolfa>i guess it's true for `y`
<nckx>(mfw you tell me CVS is still maintained, probably.)
<dstolfa>i'm not sure it's maintained, but it is definitely used
*dstolfa stars at netbsd and openbsd
<dstolfa>though they do have alternatives you can use
<nckx>I've never used NetBSD but am sure new toasters keep coming out every month, and OpenBSD wasn't stagnant last I tried it.
<nckx>If it is becoming so: sad.
<dstolfa>both are pretty active i think
<nckx>Oh good I misunderthestood.
<dstolfa>it's just that they're still on cvs :D
<dstolfa>the code is moving really frequently, new things being added to all of the BSDs
<ecbrown>i'm not inclined to new shinies but cvs is a little stiff necked ;-)
<dstolfa>i'm okay with svn, it has issues but i'm okay with it
<dstolfa>cvs is just a tad too much of "oldness" for me
<nckx>I ran a FreeBSD mail server for a few years. Thing is I'd just learnt about Nix then, and I still don't understand how people admin these things at scale. Being paid, I guess.
<dstolfa>mailservers? yeah, pretty much being paid
<dstolfa>for freebsd itself, maintaining it at scale is actually quite easy. i'd imagine that openbsd and netbsd aren't much different
<ecbrown>on the contrary
<dstolfa>you can build your own package repository with almost no friction, and maintaining and rolling out custom kernels and base is really easy too
<nckx>I meant the OS itself. A Guix mail server has been far less work, but it's unfair because (a) I know Guix inside & out (b) it's not filled to the brim with more undocumented jails than China.
<dstolfa>ah yes, jail docs were a mess until relatively recently
<ecbrown>does guix have postfix? (i'm looking for smtp server)
<dstolfa>nowadays they behave much like docker, but you can update them fairly easily
<nckx>I'm sure it was my lack of knowledge combined with my dislike for tools like Puppet &c.
<nckx>ecbrown: Are you looking for an SMTP server, or for Postfix?
<ecbrown>am i mixing up my terms?
<nckx>We have OpenSMTPd.
<dstolfa>nckx: don't be too harsh on yourself, jail docs up until 2-3 years age were still using ancient jail_ rc.conf syntax in docs instead of jail.conf anad there was no bastille
<ecbrown>the companion of dovecot :-)
<ecbrown>ok, that's fine. i use that in openbsd, traditionally i have installed postfix. it's not an issue practically, just curious
<nckx>ecbrown: Not really, Postfix is an smptd but it's not the smtpd. I'd not recommend it unless you need to support complex setups.
*dstolfa has never needed 99% of postfix functionality
<dstolfa>or sendmail, for that matter
<ecbrown>this is why we are not mailadmins
<vldn>do we have a jmap implementation?
<ecbrown>or somethings
<nckx>I don't even think it's a very good SMTPd but that's not germane.
<vldn>like cyrus or something?
<ecbrown>vldn: i am working on cyrus
<vldn>or jmap-proxy would be nice
<ecbrown>it's third on my list
<vldn>cool ecbrown
<nckx>Cool, I don't have to answer ‘no’ :)
<ecbrown>guix should have a jmap option imo
*ecbrown gets by with msmtp
<nckx>dstolfa: <jail_ rc.conf> That's exactly what I remember, Bastille is obviously after my time.
<nckx>There was another (actually multiple) helper scripts but they were rough at the edges and rather trivial shell scripts once you peeked inside, each relying strongly on their own convention.
<canant>Uploaded file:
<canant>Hi team, is there anyone to face this error while trying to update guix-data-service database?
<nckx>cbaines ☝
<canant>Uploaded file:
<canant>sorry copy/paste error : )
<nckx>That makes more sense‌ :)
<nckx>Could have been worse.
<canant>I've followed the official README file for setting up my dev env. ( I'm expecting to update the databse automatically with the script.
<canant>BTW I'm also not able to run the psql on my current user. ( FYI cbaines nckx
<munksgaard>Is there a way of adding environment variables to a manifest file? Like, I want the environment variable FOO to be set to "bar" whenever I `guix environment -m manifest.scm`
<ecbrown>canant: is your postgres service running? herd status postgres, herd restart postgres, telnet localhost 5432
<ecbrown>(although maybe you are looking for socket, i think it listens on 5432 by default)
<canant>Uploaded file:
<canant>ecbrown it seems the service is running but I cant make a telnet connection to the specified port
<nckx>/tmp/.s.PGSQL.5432 vs /var/run/postgresql/.s.PGSQL.5432
<nckx>I think you should focus on the socket, not the port.
<nckx>But I've never run the GDS (yet).
<dstolfa>nckx: yep, doesn't surprise me there was struggle then :)
<canant>nckx thanks, I'm checking :)
*nckx AFK, TTYL, HAND.
<soheilkhanalipur>civodul: Yes, I use GNOME Network Manager
<soheilkhanalipur>Sorry for the late reply
<cbaines>was that message meant for me soheilkhanalipur ?
<tissevert>hey guix
***niko is now known as o
<ecbrown>canant: yeah my suggestion was just to make sure pg_ctl is running
<soheilkhanalipur>civodul: Oh sorry, this was for cbaines
<ecbrown>whatsoever, 5432 is my canary in a coalmine
<cbaines>canant, unfortunately there's a bit of a gap between the way sqitch connects to PostgreSQL and the way the connection from Guile is handled. Do you know if you can connect to PostgreSQL via a unix socket, or do you need to connect via the network?
<cbaines>soheilkhanalipur, as for Network Manager, does it think you're connected via ethernet?
<soheilkhanalipur>cbaines: I'm a newcomer to GuixSystem, and unfortunately I had this weird problem!
<soheilkhanalipur>Please help me in a simpler way.
<soheilkhanalipur><cbaines "سُـھِـیـل, as for Network Manage"> Yes
<cbaines>soheilkhanalipur, so, if you go to the Gnome Settings, then the Network bit, you can see an Ethernet connection which says connected, right?
<soheilkhanalipur><cbaines "سُـھِـیـل, so, if you go to the "> Yes
<cbaines>soheilkhanalipur, ok, so click the cog for that connection. Can you see an IPv4 address listed?
<cbaines>soheilkhanalipur, I don't know the specifics of your network, but that looks OK. How are you testing internet connectivity on this machine?
<soheilkhanalipur>cbaines: Sometimes I can use the network for up to three minutes without any problems.
<soheilkhanalipur>Twice this week I was able to use the network for almost 1 hour!
<cbaines>soheilkhanalipur, right, but connecting via Wifi from the same machine always works?
<soheilkhanalipur>cbaines: Unfortunately my network card has non-free firmware, and I can not connect via WiFi.
<soheilkhanalipur>cbaines: But I have no problems connecting to Wi-Fi via mobile.
<cbaines>soheilkhanalipur, OK, do you know if your computer can access your local network?
<soheilkhanalipur>cbaines: I don't get it
<cbaines>soheilkhanalipur, do you have another device on your local network you can try connecting to, like does your router/modem have a web interface perhaps?
<soheilkhanalipur>cbaines: Yes, even with the system I can change the modem settings in first minute
<cbaines>soheilkhanalipur, what about after the first minute?
<The_tubular>I was looking at what was included in %base-package and I'm kinda confused, do I need to use that ?
<The_tubular>I like to have my machine pretty slim and there's lots of stuff I don't need. What are the essential packages ?
<nckx>The_tubular: You don't have to use it at all, you can replace it with your own list.
<nckx>The_tubular: Whatever you think essential…?
<The_tubular>For example, there's like 3 text editor and stuff like wireless-tools which this machine doesn't even have Wifi so there's absolutely no point in it
<roptat>The_tubular, the system will work even with an empty list of packages
<nckx>Then remove them.
<nckx>You don't *have* to add any.
<roptat>%base-packages is a minimal set of packages that cover most of the basic needs, but you don't have to use them
<soheilkhanalipur>cbaines: I have connection, but there is nothing I can do 😕
<nckx>The_tubular: It's called %base-packages, not %minimal-packages, because the latter would be an empty list 😉
<cbaines>soheilkhanalipur, so, after the first minute, you can no longer access the modem web interface?
<The_tubular>Sorry I,m coming from gentoo which when you install it it's really minimal and you build up from there
<The_tubular>Not the opposite :P
<roptat>soheilkhanalipur, the way you describe it sounds familiar, I think something like that happened to me some years ago, but I don't remember how I fixed that
<The_tubular>I understand why stuff like eudev is there and well guile, wget and stuff, which I would consider like "minimal"
<soheilkhanalipur>cbaines: Yes, I do not have access after that
<The_tubular>Also I don't know about guix, but for example to use gentoo's package manager you needed to have bash as it was calling scripts with bashims in it. Is there some things like that in guix ?
<soheilkhanalipur>roptat: Really weird problem!
<roptat>no, guix packages are "self-contained", in the sense they always come with their dependencies, even if they're not installed
<dstolfa>has anyone had terminator randomly crash like... once every 2 days or so on guix?
<nckx>The_tubular: If something needs bash, it wil refer to bash, you don't need to install packages to satisfy others unless the others are broken.
<dstolfa>usually when you open a new one
<The_tubular>nckx Good point
<The_tubular>Could you elaborate roptat ? I'm not sure I understand
<The_tubular>I mean a "classic" package manager would install the dependencies while you install a package, what's the difference with guix ?
<roptat>The_tubular, like nckx said. If a package needs bash, it refers to it, and guix will "install" bash in the store, even if you didn't explicitely require it
<cbaines>soheilkhanalipur, I've run out of time to help, but I would try using tools like ping to ping your modem, and perhaps try checking the physical connection as well (use a different cable, different port if possible, check if the lights are flashing).
<viivien>I’d say, guix will arrange for the package to find bash without you needing to install it
<roptat>soheilkhanalipur, I think the issue was the network card "not syncing" somehow, and after some time, it would be marked as "disconnected"
<The_tubular>Gotcha, sorry for my noobish questions ^^'
<The_tubular>Haven't distro hopped in like a decade and guix is just a whole other ebast :P
<The_tubular>best *
<The_tubular>beast **
<roptat>The_tubular, it is!
<nckx>The_tubular: When package A requires bash, bash will be present in /gnu/store, but only packages like A that ‘know’ its hash can actually invoke it (or curious humans). But it's not in $PATH or anything else, i.e. what Guix means by ‘installed’.
<nckx>Important here: installed != present on the system.
<The_tubular>So a user won't be able to call the binary even though it's installed on the system correct ?
<roptat>it's not installed on the system, but it's present on the system
<nckx>Only through manual /gnu/store/<long hash>-foo-1.2.3/bin/foo.
<The_tubular>Unless you specify that that user need that binary I suppose ?
<nckx>It's not a security mechanism.
<The_tubular>What's the point of that mechanism ?
<roptat>if the user (or the system declaration) installs bash explicitly, then it's "installed" in the sense guix uses that word
<cbaines>canant, I need to go back to work now, but I've pushed a change that might help
<nckx>The_tubular: Right, then that user would ‘guix install package’ and all that would change is that (a) /gnu/store/…/bin/foo is now in $PATH and (b) foo won't get garbage collected even if no other package uses it.
<soheilkhanalipur>cbaines: I have checked this over and over again, and even bought a new LAN…
<The_tubular>Got it, I just don't understand why it does this though :P
<nckx>The_tubular: It's how the entire system of functional package and dependency management works, so it's a bit broad to answer…
<roptat>The_tubular, it helps with understanding operations and making them atomic, as well as allowing multiple incompatible dependencies to be used by different installed packages
<nckx>How would you know that binary A requires which exact build and version of libfoo if all the libfoos aren't in a separate unique directory?
<The_tubular>Gotcha roptat
<roptat>like, if a package requires bash 4 and another bash 5, there won't be a conflict as long as you don't install both of tthem explicitly
<nckx>Gentoo does all this manually (revbumps, if I remember the term, or revdep-rebuild if that still exists). Guix automates it.
<The_tubular>So here's another "noobish" question then, which package should be "user" defined and which should be "system' defined ?
<dstolfa>up to you i'd say
<viivien>That’s a really tough question
<roptat>it's up to you, usually I define the minimal set of packages in the system, that all the users (root and others) need, and all the rest is part of my user profile
<nckx>Sytem just means the package is available as soon as even the newest of users logs in, so they don't have to install coreutils, but if they *do* install coreutils their coreutils will mask the system's.
<viivien>And, system packages can be automatically updated
<nckx>Kind of?
<soheilkhanalipur>I haven't had access for a long time, help 😭😭😭
<nckx>So can user packages, I don't get it.
<viivien>There’s an unattended-upgrade service
<nckx>soheilkhanalipur: If any of us had any idea what's wrong we would.
<The_tubular>From what I see, and my purpose I feel like I should install pretty much everything in system package ... Cause well I'm ususally the only user of my machines, and auto-update are important to me
<viivien>It will update the system packages automatically, but not the user packages
<nckx>That's just a ‘someone happened to write some x that can do a but not b because they didn't bother writing that part’ though.
<nckx>And it's considered rude to update user's packages. It's not a fundamental thing.
<viivien>But then, if an obscure package blocks the unattended upgrade, you might not realize it for months
<nckx>Yeah, don't put Web browsers in your system profile :)
<The_tubular>Also, while looking at %base-package there's no cron stuff, nor logging stuff... Should I install them manually like with Gentoo ? Or is there something else II don't know yet ?
<nckx>The entire system upgrade is atomic, so you'll wait for IceCat to build so you can change your user group membership.
<nckx>Good point.
<The_tubular>Why noy nckx?
<canant>cbaines thanks for the quick patch but the issue is still exist : (
<viivien>I wouldn’t classify web browsers as *obscure* packages (except, well, tor browser ;) but yeah, having your machine freeze because you’re recompiling icecat is no joke.
<The_tubular>Icecat binary should be available though no ?
<cbaines>canant, you'll need to run make to re-generate the guix-data-service script, you're probably still using the old one
<nckx>The_tubular: Packages and services are separate. If you'd install cron or syslog, you'd get a cron/syslog in $PATH that just… sits there. Things that do stuff when the system boots are different beasts, put in (services …).
<viivien>The binary packages aren’t built before the update is pushed. So, there’s a time window between when a Rust crate has been updated, and when the dependent icecat has been rebuilt
<nckx>The_tubular: If by binary you mean substitute: maybe.
<nckx>Some users don't use substitutes, sometimes the substitutes fail, sometimes you try to install something before the substitute has been built upstream.
<The_tubular>So you don't "Install" services ... ?
<nckx>No. You declare them in your system.scm.
<nckx>Or config.scm, whatever name you prefer, I mean the same file.
<The_tubular>Yeah, I get why it can fail, but I expect it works most of the time ?
<The_tubular>I'm talking about susbistue and bin package ^
<nckx>Yes, but if no substitute is available your laptop will be very warm for a very long time just to add yourself to the video group or whatever :)
<nckx>Eventually there will be a branch that only updates *after* substitutes have been built. But there currently isn't such a branch.
<The_tubular>It's cold here anyway :P
<dstolfa>The_tubular i think said they come from gentoo, so i guess that's the expected outcome :P
<nckx>Heh. True.
<canant>cbaines yep, you're right, after make the previous issue is resolved but now I'm getting this.
<nckx>‘guix pull’ users see updates at the same time the build farm does, so if you don't wait for it to build something brand-new Guix will just poll the farm, see nothing, start building it on your machine, even if the build farm is busily building the same thing.
<canant>Uploaded file:
<The_tubular>I had another question, but I forgot it, I'll try to test some scheme stuff, and try to remember it. Thanks for your input everyone
<nckx>Good luck! I came from Gentoo (via Exherbo) too. There's hope.
<canant>cbaines I believe it's ok
<roptat>soheilkhanalipur, does gnome say you're still connected?
<cbaines>canant, that migration you added to create an index will fail if you already have the index in your local database, because you created it manually
<viivien>Could there be a mechanism where the daemon sees that there’s no substitute, and *wait* for the substitute to appear?
<dstolfa>probably, given there's `guix weather`
<dstolfa>i don't see why you couldn't automate it as a part of your service
<dstolfa>it is worth noting though, if there's no substitute available due to a bug, you won't be able to update if you require all substitutes to be available
<dstolfa>so maybe do it per-package?
<soheilkhanalipur>roptat: Yes!
<The_tubular>nckx I'm not afraid I'll eventually get it. But it's very different from other distro. Specially when you never played with Nix I guess
<dstolfa>e.g. you'd want substitutes for ungoogled-chromium, linux-libre and so on, but not for say, mutt and stuff like that
<roptat>soheilkhanalipur, can you open a terminal and type "ping -c2"?
<soheilkhanalipur>roptat, Thank you. I will try it in a few minutes
<viivien>There could also be an update git hook on the Guix git that would trigger a build before accepting a commit, so the git repo would always be up to date, plus breakages would be detected
<viivien>(I mean, the *substitutes* would always be up to date)
<dstolfa>viivien: there's been some discussion around that already here
<dstolfa>but iirc there were some other low hanging fruits that needed to be addressed before
<The_tubular>Which benefits did you see when you made the switch nckx ?
<The_tubular>I feel like I might miss use-flags down the road :(
<The_tubular>I guess if I get good in scheme I could kind of implement them ?
<dstolfa>The_tubular: absolutely
<dstolfa>though would be nice to have a more integrated solution
<The_tubular>That would be a headache for substitution though
<roptat>The_tubular, there's a project to add "parameterized packages", which would be similar to the use-flags
<The_tubular>I'll read up on that :)
<The_tubular>Is there another way to define "user" package other than with guix-install ?
<maximed>The_tubular: What do you mean with "user packages"? There is no such thing as a "user" package in Guix
<The_tubular>Well the opposite of "system" defined package
<maximed>With "system", do you mean packages listed in the operating system configuration, or packages in the upstream guix repo?
<maximed>Or something else?
<apteryx_>interesting; when tarballing files containing symlinks, it seems tar creates both a hard link and a symlink internally
<The_tubular>Operating system configuration maximed
<maximed>You can install packages per-profile (usually, one profile per user) with "guix install here-is-a-package". But that's for installing packages, not for defining packages
***apteryx_ is now known as apteryx
<maximed>Something you can do (maybe that's what you mean): write a file "stuff.scm", containing a definition of some package. Run "guix install -f stuff.scm"
<maximed>Well, maybe the exact comand is a little different.
*maximed searches for an example
<dstolfa>The_tubular: manifest
<The_tubular>Yeah I mena installing package, not defining my bad!
<dstolfa>The_tubular: see `guix package --export-manifest` and `guix package -m`
<maximed>Here's an example that's probably not what you were looking for:
<bricewge>You can also try packages without installing it "guix environment --ad-hoc sl -- sl"
<The_tubular>Well here's what I wanted to do: I wanted to pin a package to a specific version
<The_tubular>While updating the reste automagicaly with a cron job
<maximed>The_tubular: see time machines & inferiors for pinning
<The_tubular>So I though I'll put everything I wanted to update with a cron job in my system.scm
<The_tubular>Will do!
<nckx>Sorry, superbusy :-/
<nckx>Is there a QR-code reader in Guix?
<nckx>Zbar looks the part.
<The_tubular>Yeah, Zbar is what I used, no clue if it's in the repo yet
<maximed>Blog post bout time machines:
<nckx>It is, but I've never scanned a QR code in my life, I hope my webcam works :)
<nckx>It does.
<The_tubular>Mhh, most stuff I did with a QR code it was from a picture
<The_tubular>Reading that maximed
<nckx>I have to scan a photo of someone's physical telephone screen and try to figure out the format (and, ahum, possible checksums, *cough*). How very modern.
<nckx>This could not have been implemented any other way 👍
<The_tubular>maximed from what I read, you have to upgrade the package and the roll-back that specific package ?
<The_tubular>Hey cwebber :)
<cwebber>hi The_tubular !
<Guest60>Hi, I am trying to install guix on a remote dedicated server which means I can't (AFAIK) boot onto the downloadable ISO file. I am currently following the install guide and am stuck on `herd start cow-store /mnt`, with the error message "herd: service 'cow-store' could not be found". What can I do? Thanks
<dstolfa>Guest60: you could probably do it from a debian installation with `guix system init` i assume if it's too much of an issue?
<dstolfa>sample blog post
<Guest60>dstolfa: Thanks for the help, I'll have a look at that blog post, this seems to be pretty much what I'm currently trying to do (except I'm doing it from a "rescue system" instead of debian). It seems that it in blog post, `herd start cow-store /mnt` is just skipped, so I'll try to do that too
<soheilkhanalipur><roptat "سُـھِـیـل, can you open a termin"> roptat:
<roptat>alright, so it doesn't even reach your router after you lose internet, so something's wrong somewhere in between...
<roptat>soheilkhanalipur, does this happen with other distros, or only guix?
<soheilkhanalipur>roptat: During this time I even tried another modem. But after 20 minutes, the problem returned
<roptat>can you type "ip a" and "ip r" in a terminal?
<roptat>(when you don't have internet)
<soheilkhanalipur>roptat: As I said, I've been working with Guix for 7 months, and this problem has been around for almost a week. I also had Debian before, which also worked well.
<roptat>oh I see, sorry I didn't read your previous comments
***iskarian is now known as Guest1621
<roptat>if that's the case, I would suspect an issue with a kernel update, maybe, have you reconfigured recently?
<roptat>have you tried booting on an older generation, to see if the problem is with the newer ones?
<soheilkhanalipur>roptat: Yes, but I did not run the guix package -u
<soheilkhanalipur>I deleted generations…
<soheilkhanalipur>roptat: This problem first occurred when building Ungoogled-Chromium. Could this be the problem?
<soheilkhanalipur>(And I stopped the build process)
<soheilkhanalipur>Has this problem been fixed in the update?
<apteryx>hehe, seems 'guix size --map-file' has some pk output
<roptat>soheilkhanalipur, your paste looks good, so I don't know what happens
<roptat>canceling a build should not have any impact
<roptat>it's a perfectly normal and safe use-case
<roptat>this problem is most likely related to your system, not user packages, so I was asking whether you had tried booting an older system, see if that older system still works or not
<roptat>if it still works, we can say it's something in the new system, if it doesn't work anymore, it's probably related to some hardware
<\a>My (btrfs) filesystem mounted read only and did not fix when I restarted with linux-libre 5.12.10. When I booted from an older generation, with linux-libre 5.12.8, it worked (the filesystem mounted read-write)
<dstolfa>lfam: \o
<dstolfa>how are you
<lfam>I'm alright, how are you doing
<dstolfa>doing alright, minor headache from the heat and lack of AC, but alright, thanks :)
<maximed>The_tubular: Upgrading a package and rolling it back seems a bit convuluted. I would recommend using inferiors in your manifest instead.
<cbaines>good news lfam, the HoneyComb LX2 board I ordered a while back has finally been delivered!
<dstolfa>cbaines: how long did you wait for it?
<lfam>Let me know if you get stuck or want to talk about it
<lfam>The Solid Run discord channel (I know...) is also a good place to get advice
<maximed>Pin the inferior to some commit, then all ‘inferior packages’ will use the package version as defined in that commit
<lfam>I asked for help building EDK2 for the macchiatobin and someone in that channel tweaked the wiki page to make it more clear
<lfam>So, they are really helpful, as much as they can be
<cbaines>dstolfa, it was nearly 5 months from order to delivery, but I'm not sure how representative that is, and I think there were delays.
<lfam>My impression is that their supply chain collapsed for a while
<dstolfa>yeah, i was about to say 5 months sounds like covid-related supply chain issues
<lfam>Not to mention that Israel had some strong covid lockdowns
<lfam>Oh, and also NXP's fab in Texas was destroyed in February
<lfam>When it rains, it pours
*dstolfa wants to go on his laptop but the laptop runs so hot when he does builds that he'd rather not at the moment
<lfam>I'm grateful it cooled off here
<dstolfa>it should cool off here tomorrow apparently
<cbaines>I need to spend some more money on some RAM and a nVME SSD, and then I'll try and get it running
<dstolfa>would be nice after roughly 2 weeks of 30 degrees celsius and silly levels of humidity
<lfam>That will feel good
<cbaines>I'm really excited to see what kind of impact it can make to aarch64-linux substitutes. The one overdrive machine connected to bordeaux.guix.guix.gnu does OK, but it could use some help!
<lfam>Next week I'll have some time to keep trying with the macchiatobin
<lfam>The honeycomb's will make a bigger impact, though
<lfam>Err... honeycombs
<lfam>I wonder if anyone has a package for bazel?
<lfam>It's one of the unicorns of Guix packaging...
<lfam>Google's new homomorphic encryption library builds with bazel:
<lfam>It could be a big deal
<lfam>I made the same face when I saw that it uses bazel
<lfam>I see that Nix has some packages using bazel. I wonder if they built it from source...
<roptat>no way
<lfam>Sometimes I think that "trying to build bazel" is just a parlor trick used by google to evaluate job candidates
<lfam>I wonder if anyone has ever built bazel from source after the first time
<roptat>technically, it's always built from source, using itself to drive the build
<cbaines>the ungoogled-chromium package was updated 3 days ago, and there are already 4 outputs for that new version (so it's changed 3 times in the last 3 days)
<roptat>like, building guix with guix
<lfam>roptat: Right
<dstolfa>cbaines: yeah, it's really annoying in many ways... i don't update all that often (i do it once a month usually, scheduled), but i can imagine that if someone updates often, this would be a pain
<Noisytoot>Why does ungoogled-chromium change so oftern?
<dstolfa>and the CI is probably crying
<lfam>roptat: It doesn't help us very much
<lfam>The CI could build chromium a hundred times per day and not struggle :)
<cbaines>We're 16 days in to June, and the ungoogled-chromium package output has changed 13 times (one time was an actual upgrade though)
<lfam>The build farm is really big
<lfam>Chromium has a huge dependency graph. I think it's normal that the derivation would change often
<dstolfa>lfam: do you build it in a ramdisk or something to avoid I/O bottlenecks?
<lfam>I don't use it, so I also don't build it locally
<dstolfa>i meant in the CI
<dstolfa>or is it just a distcc thing
<lfam>We have 30-ish machines that each have 96 powerful cores
<cbaines>lfam, I'm more attuned to this as there isn't as much compute power behind (even though substitute availability is often higher)
<dstolfa>ah i see, does it use distcc?
<lfam>Each machine is split into 4 slots, dstolfa
<lfam>It uses Cuirass
<lfam>Anyways, the capacity is quite large. We don't have to go out of our way and use ramdisks or anything like that
<dstolfa>oh, cuirass supports dispatching compilation jobs to remotes?
<dstolfa>e.g. "compile this file on machine X, that one on Y, ..."
<lfam>Guix supports it "natively" (with offloading), and then Cuirass does its own thing too (I think?)
<lfam>No, it's not per file
<drakonis>lol they actually built bazel
<cbaines>( only runs with 72 x86_64 cores *in total*, all the machienes have hard drives, and one even has a failing hard drive at the moment)
<lfam>dstolfa: It's per derivation
<drakonis>wait nvm
<drakonis>they just used the prebuilt lol
<drakonis>even worse
<lfam>Right :(
<lfam>Nobody knows how to build it
<dstolfa>lfam: ah, i'll have to look how that works in practice for something like chromium
<dstolfa>it'd be really cool if i could just avoid using distcc for builds with guix
<lfam>dstolfa: It's basically the same thing as `guix build chromium` with offloading
<drakonis>they actually have built it
<lfam>And those machines are not, like, laptops or NUCs. They are real big servers
<lfam>They are designed for high-performance
<dstolfa>forgive my ignorance, does this mean that it distributes the things needed to build chromium (e.g. all the dependencies), but not the chromium build itself?
<drakonis>which is highly surprising
<lfam>drakonis: Please share the link :)
<lfam>dstolfa: I'm not sure what you mean
<drakonis>they dont actually have bazel 5 though
<dstolfa>lfam: basically, can it do something like this without distcc
<lfam>I don't know what distcc is
<drakonis>they have a bunch of hacks in there though
<lfam>I think you're overthinking it dstolfa
<lfam>It builds the package in the normal way
<drakonis>way too many hacks
<lfam>It's just that our computers are about as fast as you can get
<lfam>drakonis: Sounds familiar.... ahem
<drakonis>isnt it ever?
<lfam>Bootstrapping in the "old" way is always hacky
<lfam>By that, I mean before mes / stage0, tec
<lfam>If they really build it from source, it would be *amazing* to port that to Giux
<drakonis>its not hacky in the bootstrapping way
<dstolfa>lfam: ah makes sense. i was thinking more along the lines of "the build of the chromium package itself can be distributed across all the cores in the cluster in a way that avoids I/O bottlenecks without losing persistence"
<drakonis>oh wait
<drakonis>it is very hacky in the bootstrapping way
<roptat>there a list of dependencies:
<drakonis>they even handrolled some shell util
<lfam>dstolfa: No, the build stays on one machine
<dstolfa>i sort of do this with the servers i use as build machines, which are 4 32-core machines
<dstolfa>but it's a lot of setup
<lfam>Maybe there is some I/O contention, maybe the page cache handles it, idk
<lfam>There should be enough RAM that disk I/O doesn't really come into play
<lfam>Heh, the build farm is currently idle except for chromium
<lfam>That is a little fishy
<roptat>haha, the real issue is that the source for bazel contains binaries for many dependencies:
<roptat>I think it's some sort of linter for java
<roptat>or static analysis
<roptat>"to bootstrap, use the pregenerated stuff"
<apfel>hi there! What am i doing wrong?
<drakonis>the flag is wrong?
<drakonis>the I is uppercase, that lists the installed packages that match it
<drakonis>you want a lowercase i instead
<roptat>so, it looks like, we would need to build protoc, using the exact same version as the one that's part of the repository, and use it so generated the required java sources. Then, along with building all these dependencies, we would be able to run the bootstrap and build scripts
<lfam>Easy peasy
<roptat>apfel, it's "guix remove openjdk:jdk" I think
<roptat>because you have installed the jdk output, instead of the default output
<lfam>We should not forget about the "multiple outputs UI" for 1.4.0
<drakonis>yes please
<drakonis>transmission has multiple outputs
<lfam>I think I sent an email on the subject... there are so many emails
<lfam> <>
<apfel>drakonis: but i do not want to install openjdk, i want to remove it, but i am told it is not part of my profile, even though its in my path
<lfam>apfel: Did you try `guix remove openjdk:jdk`?
<apfel>roptat, lfam: i do try it right now, something is happening :)
<lfam>If you do `guix show openjdk`, you'll see these packages have "multiple outputs". They are kind of like "sub-packages".
<lfam>You refer to them on the command-line like `guix install package:output`
<apfel>lfam: yes, i know that, although until today this never was in my way. I probably did install the jdk explicitly after realizing that javac was missing. Or could there be another reason for the jdk output being present?
<lfam>It would only be in your profile if you installed it
<lfam>Things are never automatically installed there
<lfam>I agree, you were probably looking for javac
<efraim>interesting build failure in diffutils-boot0 on riscv: bash: No child processes
<apteryx>efraim: nice that you are working on riscv!
<vagrantc>efraim: ah, you're also blocked at diffutils-boot0 now?
<sneek>vagrantc, you have 1 message!
<sneek>vagrantc, efraim says: how'd you make the debian image for the hifive unmatched? I'm convinced there's something wrong with my base image so I was going to start with a fresh one and I'd rather use debian
<vagrantc>guessing sneek's message was from before i sent the email to the list
<ixmpp>The ipfs service is containerised/sandboxed, which means it cant mount the fuse filesystems at /ipfs,/ipns, right?
<maximed>ixmpp: IPFS is run in a separate mount namespace, so yes, mounting stuff at /ipfs and /ipns probably won't work. However,
<ixmpp>(it doesnt)
<maximed>if ipfs-service-configuration is modified to _not_ run it in a separate mount namespace, then it should work
<ixmpp>I thought so
<maximed>Not implemented though, and untested
<ixmpp>Just wondering if theres another option
<maximed>Here is an untested patch:
<ixmpp>Oh its ok, i know how to
<ixmpp>Thanks tho
<ixmpp>I was just hesitant to
<maximed>does anyone beside me use ipfs-service-type?
<ixmpp>Cause if i was to ever try upstream that, it'd likely be an argument
<ixmpp>I do?
<ixmpp>I already have a couple patches
<ixmpp>;; The container's file system is completely ephemeral, sans directories
<ixmpp>;; bind-mounted from the host
<ixmpp>alright, so no chance while mount is still namespaced
<ixmpp>I'll just make it conditional
<efraim>vagrantc: indeed. I made it past configure but got the no child process error as soon as I started the build phase
***lukedashjr is now known as luke-jr
<piethesailor>Hello all!
<piethesailor>I am having touble with texlive-latex-base. Downloaded through guix but my shell cant find it. any tips?
<jab>Hey #guix! I'm working on my opensmtpd mail solution! I've got opensmtpd sending and receiving emails. Dovecot is serving them. Now I just need to set up dkim signing...
<roptat>piethesailor, I think you need texlive-bin in addition to it
<piethesailor>hmm okay, Thanks roptat!
<apteryx>tar somehow creates hard links in our guix packs, when using the --symlink feature
<roptat>jab, I have that for my email:
<roptat>jab, this is where I define the service for it: and how I use it in opensmtpd's configuration:
<roptat>(when I send a message, opensmtpd relays it to dkimproxy, which signs it and relays it back to opensmtpd on a local port, then opensmtpd tags it as signed, and sends it out
<roptat>I need the tag to make sure it uses the rule to send the mail out, instead of relaying it again to dkimproxy)
<jab>roptat: I think you helped me out last time I was doing mail stuff! May I ask why you use dkimproxy instead of opensmtpd-filter-dkimsign?
<roptat>jab, because I didn't that existed :p
<jab>Also may I ask when you are going to add a guix service for gitile? That is probably one of the coolest things I've ever seen! Guix is actually building a lot of the peices for a gitlab alternative!
<roptat>jab, haha, I'll think about it :)
<jab>roptat: also it looks like opensmtpd-filter-dkimsign doesn't support dkimsigning multiple domains...maybe dkimproxy is a better solution...
<roptat>I have only one domain, so it would still work for me
<jab>gotcha. I'm hoping to most email accounts for multiple domains...just for funsies.
<apteryx>someones has this problem in Emacs? M-x diary-insert-anniversary -> diary-insert-anniversary-entry: Symbol’s value as variable is void: displayed-month
<jab>apteryx: I stopped using diary after it started to weirdly slow things down for me
<rekado>roptat: texlive-base should be enough; it includes texlive-bin.
<apteryx>jab: OK!
<roptat>rekado, oh, ok
<ixmpp>So, guix can only use sha256?
<ixmpp>Any other supported hashes?
<civodul>ixmpp: yup! see 'content-hash' at
<sneek>Welcome back civodul, you have 1 message!
<sneek>civodul, apteryx says: Hi! Here I see: guix environment --system=i686-linux guile -- guile -c '(display %host-type) (newline)' -> x86_64-unknown-linux-gnu
<civodul>currently we're using sha256 consistently for package source
<civodul>but that can change
<ixmpp>Yeah, sometimes alternates are more convenient
<civodul>apteryx: that's because "guix environment" ignores -s, oops!
<civodul>$(guix build guile -s i686-linux |grep 7$)/bin/guile -c '(pk %host-type)' returns the right thing
<civodul>lemme see what's up with guix env
<iskarian>Afternoon, guix :)
<apteryx>civodul: heya :-)
<apteryx>iskarian: good afternoon!
<civodul>apteryx: hey! ah no, "guix environment -s i686-linux" works but... you were missing '--ad-hoc' :-)
<ixmpp>Ah ok, (sha256 32) (sha512 64) (sha3-256 32) (sha3-512 64) (blake2s-256 64) are supported
<ixmpp>So no sha1, but thats somewhat fair enough
<civodul>not md5 either ;-)
<ixmpp>Ah yeah, been bitten by that before too i think
<civodul>i'm not sure what to think of the curl issue at
<ixmpp>Complicates some imports
<civodul>i tend to think that everyone should be having the same problem, not just Guix
<apteryx>civodul: duh! Thanks. About using %host-type in (guix scripts pack) for the docker-image generator, it seems it should be #:system (or #$target %host-type), if target is to be a GNU triplet as the doc string implies.
<civodul>and so basically everyone should be unable to pull from bitbucket
<civodul>but i'm "afraid" that's not the case
<civodul>apteryx: %host-type is also a triplet
<apteryx>right. But the previous code wasn't :-)
<apteryx>(utsname:machine (uname))
<civodul>ah right
<civodul>but build-docker-image says "SYSTEM is a GNU triplet (or prefix thereof)"
<apteryx>ah, so it doesn't really care
<civodul>and then it just checks the prefix
<apteryx>OK! I've found another little gem, in that 'guix pack' tarballs can contain hard links. The Guix code correctly prepares the file system with symlinks, but tar somehow arrive to produce a hard link.
<apteryx>dpkg bails out on hard links
<raghavgururajan>Hello Guix!
<apteryx>I'm trying to come up with a minimal reproducer to log an issue against GNU tar, but if you are curious to see it in action: tar -tvf $(guix pack -S /opt/gnu/bin=bin hello). The last file printed is the hard link.
<zacchae[m]>Hello to you as well!
<roptat>civodul, thanks for your patch, I'm running the build of guix on my arm machine now, I'll report when it's done, probably tomorrow ^^'
<civodul>roptat: heh, thanks :-)
<civodul>apteryx: oh right; (guix docker) uses --hard-dereference
<civodul>from commit 18a4882e3029a084d2f0c63d9d0148682a854546
<apteryx>should this be applied at large (to the tarball generator as well?)
<civodul>yes, definitely
<civodul>otherwise we have the same reproducibility issues
<apteryx>hmm. In my case there are no hard links in the input files
<ruffni>hello! how can i get the full path of the source directory which is being built within a package definition?
<roptat>ruffni, "guix build -S"
<apteryx>civodul: here's a repro script
<apteryx>no hard links used as the output of tar, so it seems --hard-dereference shouldn't be useful
<apteryx>as the input* of tar
<ruffni>roptat: no :) i mean the same way (assoc-ref outputs "out") refers to the output directory, i need a reference to where the source is built from (or at least i think i need that)
<roptat>ruffni, oh
<roptat>you can use (assoc-ref inputs "source")
<ruffni>thanks! that was what i was looking for!
<civodul>apteryx: oh, maybe i misunderstood what you wrote
<civodul>so you think it's a tar bug?
<iskarian>apteryx, if I use `tar cf data.tar ./gnu ./opt/gnu` instead, no hard links seem to be generated
<ruffni>roptat: ... but this links to the zip file.
<civodul>note that when tarring stuff from the store, you can traverse hard links (due to deduplication in the store), which tar by default stores as hard links
<civodul>hence --hard-dereference
<civodul>but maybe there's also another issue lurking here?
<roptat>ruffni, right, if that's the source that's what you get
<apteryx>civodul: yes, seems I've bumped into something else
<roptat>the gnu-build-system unzips that in the build directory
<ruffni>huh. the software looks for stuff in /usr/local/lib, but they're (still) in the source directory..
<ruffni>s/software/SConscript build/
<apteryx>about the reproducibility problem and the --hard-derefence fix; that means potentially storing the same files multiple times in the archive, no?
<iskarian>indeed, it seems any duplicated file arguments to tar seem to generate a hardlink
<apteryx>iskarian: it seems to require the presence of symlinks to be triggered though
<iskarian>apteryx, minimal example:
<apteryx>neat! I'll consult the tar people with this, and they'll probably tell me "why the hell would you do that?", hehe.
<ruffni>is it impossible to get the /tmp/guix-build-foo/ path from within the package definition?
<iskarian>ruffni, something like `(dirname ".")`?
<iskarian>ah, assuming you're in phases
<ruffni>yes; unfortunately (dirname ".") returns "."
<apteryx>seems this mail discusses it
<ruffni>is there a shortcut to parse output of a (system* ) call? because (system* "pwd") returns the right path
<iskarian>Hmm, what are you trying to do?
<ruffni>i need to substitute some hard-coded paths with the output of `pwd` (before the 'configure phase in a build of a package)
<nckx>ruffni: Why not (getcwd)? Calling an external command is heavy, unless you really mean that ‘pwd’ returns the ‘right’ thing and (getcwd) doesn't…
<iskarian>Huh, I didn't even know that existed
<ruffni>nckx: i'll try that! altough i just figured out the hard way: (let* ((port (open-input-pipe "pwd"))) (read-line port))
<nckx>That is the very hard way, but you learnt something :)
<apteryx>so, after reading that tar thread, it seems expected for GNU Tar to create hard links for any duplicated files found from the input files. Since it recurses the directories, if you pass a directory and its subdirectory, the same files will be added twice, causing symlinks.
<apteryx>I'll add something in (guix scripts pack) to resolve only the top level directories to add.
<apteryx>causing hard links*
<ruffni>nckx: i'm pretty sure i've learnt this a couple of times before... :) but thanks! (getcwd) is what i was looking for!
<nckx>I found pipes in Guile intimidating and avoided them, which in retrospect was probably a good thing, coming from the bash-centric world of Exherbo & Nix. Teaches you that, no, it isn't shell, you don't call grep every 5 seconds.
<ruffni>:) i really love how guix glues all that ancient history of posix and what not together and adds one beautiful, stringent interface to it
<nckx>It tries.
<pkill9>pipes are a bit cumbersome, but they're easy enough to use when you read them i htink
<civodul>ruffni: i like to see it that way too :-)
<nckx>Yeah, I was trying to be bidirectional and got scared off.
<ruffni>is g++ part of the gcc-toolchain package? and is it possible to have it as an input in a scons-build-system?