IRC channel logs

2019-06-24.log

back to list of logs

<pkill9>what does "@" mean in guile?
<pkill9>nice OriansJ
<str1ngs>(@ (mod mod) proc) references a public procedure directly
<str1ngs>(@@ (mod mod) proc) references a private procedure directoy
<str1ngs>so it might be safer to say it references bindings directly from a module
<pkill9>in Haunt (static site generator written in guile), in part swhere it generates HTML, it adds a "class=..." using those, but they don't seem to reference a procedure, for example "(table (@ (class "table"))", what's happening there?
<str1ngs>pkill9: haunt is a special case. (@ (id "foo")) is used to build attributes
<str1ngs>specifically html attributes
<str1ngs>haunt uses sxml you might find the a good read. https://www.gnu.org/software/guile/manual/html_node/SXML.html
<pkill9>ah neat, thanks
<str1ngs>no problem
<pkill9>how does Haunt change what the @ is used for? does it "overwrite" the original use (referencing public procedures)? Or does it it repurpose it, i.e. still refer to public procedures but in a way that generates HTML attributes?
<str1ngs>I don't think the two are related in this case
<str1ngs>when I mentioned @ earlier I was not aware of the context sorry to confuse the issue.
<pkill9>ok no problem
<rekado_>pkill9: @ is simply the SXML marker for attribute lists. Note that this is not code, it’s data.
<rekado_>nothing is evaluated there.
<pkill9>rekado_: does it change the functionality of "@" from the default (referencing public procedures)?
<dadinn>hi guys
<dadinn>i have some trouble installing the binary install, due to the install script failing because of pgp keys... the gpg keyserver doesn't work and I can't get the keys to verify the downloads
<dadinn>This is a recurring problem, you either need a way to override this in the script, or fix the fucking servers...
<dadinn>actually, I have an old install/configure script here which has an --force flag to override :P https://github.com/dadinn/guix-setup/blob/master/guixinst.sh
<Minall>Hello guix!
<Minall>Where can I find the modules that contains awesomeWM? I'm trying to install it
***MinceR_ is now known as MinceR
<rvgn>Hello Guix!
<rvgn>Does wine/wine64 in guix comes with gui front-end?
<Marlin[m]>Guix
<Marlin[m]>Guile can't find the libraries i installed
<Marlin[m]>chickadee and sdl
***affinespaces_ is now known as affinespaces
<g_bor[m]>Hello guix!
<g_bor[m]>rvgn: hello!
<g_bor[m]>What I would need to get along with the gnasg browser plugin, is to see what trisquel is doing.
<g_bor[m]>So far I could not find an easy way to inspect their packages. If you could help me out there, then I might come up with something.
<cbaines>g_bor[m], do you mean gnash?
<g_bor[m]>cbaines: yes
<g_bor[m]>sorry about the typo
<cbaines>no problem, just wanted to make sure we're talking about the right thing
<g_bor[m]>This is what I got so far: https://gitlab.com/g_bor/flash-channel
<cbaines>At least in Debian, it looks like gnash has been removed https://tracker.debian.org/pkg/gnash
<g_bor[m]>yes, most of the times it is not very useful without the browser plugin, which is npapi, latest supporting browser being 52-esr.
<g_bor[m]>We don't have that, so I did a build without it
<cbaines>g_bor[m], if you look at this page https://packages.debian.org/source/stretch/gnash
<cbaines>at the bottom, the link to gnash_0.8.11~git20160608-1.3.debian.tar.xz contains the Debian package recipe
<cbaines>it looks like quite a complicated package, producing many binary packages
<g_bor[m]>Ok, I belive I can enable the plugin build with packaging npapi-sdk, but we still don't have a browser that can pick it up :)
<civodul>Hello Guix!
<sneek_>civodul, you have 1 message.
<sneek_>civodul, dongcarl says: Did you have a possible solution for https://lists.gnu.org/archive/html/guix-patches/2018-03/msg00049.html ? Would love to patch if I knew the solution.
<cbaines>morning civodul, I hope you had a good trip back :)
<civodul>hey cbaines!
<civodul>yup, you too?
<cbaines>civodul, yeah, it went pretty smoothly
<civodul>good
<civodul>had to get up at 6am, so i'm still somewhat jetlagged
<cbaines>even though my flight was as 10:45, I ended up getting up around 6:30 am also... which was a bit early
<cbaines>In other news, my instance of the Guix Data Service has actually caught up! https://prototype-guix-data-service.cbaines.net/branch/master
<civodul>oh
<civodul>yeah! good that it's manage to process all these commits :-)
<civodul>actually, when it's late, it might be able to benefit from substitutes
<cbaines>Indeed
<cbaines>It even managed to process the latest core-updates commit https://prototype-guix-data-service.cbaines.net/revision/9c2563a80b6f1d8fb8677f5314e6180ea9916aa5
<cbaines>however, the derivation numbers look off, so I'm wondering if something went wrong with processing the derivations...
<civodul>i think it looks good, no?
<civodul>9K derivations, like on master
<civodul>ah no, i see what you mean
<civodul>BTW, the "target" column shows things like "mips64el-linux", where it should be "mips64el-linux-gnuxyz"
<civodul>where's the page to display diffs between revisions again?
<cbaines>civodul, I took the form off the home page, as I didn't think it was that useful. I need to fix the comparison feature as it's a bit broken in places
<cbaines>It still exists though, you need to enter a URL like https://prototype-guix-data-service.cbaines.net/compare?base_commit=6cea61ebb580dee651a73371d20011009ff8905e&target_commit=f1aa44ada932b7841531fef95c3174c841b2e014
<civodul>ok
<civodul>i think it can be useful
<civodul>also querying the other way around, like you type "ruby" and it shows you the versions with a link to commits where that changed
<cbaines>civodul, indeed
<cbaines>As for the system/target stuff, yeah, maybe I'm misusing the systems as the targets
<cbaines>civodul, is there an ideal way of constructing the appropriate target GNU triplets for a package?
<rekado>dadinn: the GPG server pool is not under our control.
<rekado>sneek_: later tell pkill9 no, SXML does not change the meaning of @. It is data, not code. Just like '(@ (guile) string-append) does not “change” the meaning of (@ (guile) string-append) — one is a list containing of a symbol, a list, and a symbol, while the other is syntax.
<sneek_>Okay.
<roptat>hi guix!
<g_bor[m]>hello!
<g_bor[m]>do I have to do anything special before updating postgresql?
<g_bor[m]>I believe we keep the old packages when doing that, am I correct?
<g_bor[m]>I would rather avoid breaking services for users...
<g_bor[m]>ok, it seems that if I avoid changing the variable name then it will work out just fine.
<civodul>cbaines: you cannot guess what the triplet will look like, it's a different notation
<civodul>so you have to hard-code it
<civodul>hey roptat! had a good trip back? :-)
<civodul>howdy rekado & g_bor[m]!
<g_bor[m]>I am wondering though, if it would worth to introduce a variable like we do in java, and flip that when the default changes... But given the stateful nature of this, maybe it is not a good idea to change the default at all, and expicitly request the package in the service...
<g_bor[m]>civodul: howdy!
<g_bor[m]>civodul: I remember a bug maybe a few weeks ago, where the conclusion was to always inherit in the same module.
<g_bor[m]>I can't find that discussion right now...
<g_bor[m]>Do you remember what conditions trigger that problem?
<roptat>civodul, yeah, the train stopped 20 minutes before Rennes though
<civodul>g_bor[m]: yes, it has to do with unresolvable circular dependencies when two modules refer to each other's variables from the top level
<roptat>but I met an engineering student in the train and we talked about guix ^^
<civodul>fun :-)
<civodul>it stopped before Rennes?
<civodul>you had to walk or what? :-)
<civodul>so apparently http://hydra.gnu.org/nar/guix redirects but it shouldn't, i must have messed up with hydra.gnu.org-locations.conf
<roptat>no, it just stopped for ~15 minutes
<roptat>they said the signals told the driver to stop, but I don't know what happened exactly
<civodul>heh
<roptat>civodul, you can re-activate the overdrive at my place
<roptat>the ssh-daemon didn't start at boot
<g_bor[m]>civodul: ok, the I am on safe ground. In channel code I usually have a single package per module, that ensures that the module graph is a dag. In this screnario it seems to be safe to inherit in another module... I wanted to be sure that this is safe to do.
<civodul>yeah
<civodul>roptat: done!
<civodul>it should get back to work now
<roptat>ok, I'll attempt an upgrade of guix and reconfigure
<civodul>let me know if you need to reboot so we can disable it first
<roptat>ok
<PotentialUser-49>Does Guix work on any of the BSDs?
<roptat>PotentialUser-49, I don't think so
<roptat>PotentialUser-49, although there's no theoretical limit to what kind of kernel could be supported by Guix, it's "just" a matter of porting it
<arshin>is ccache utilized by guix?
<str1ngs>no, that would defeat repeatable builds
<str1ngs>You could though maybe in theory use ccache as CC. to temporary test a build incrementally but after would you would want to disable that for the final build.
<civodul>the store is a build cache, though :-)
<str1ngs>technically not the something :P
<str1ngs>the store is a much grander scale of input and outputs :P
<arshin>civodul: it's very "functional" though, right? if the next package changes only 1 file then guix will recompile the whole thing anyway
<arshin>*next version of package
<civodul>yes
<civodul>so it's coarse-grain compared to ccache
<civodul>every time i run "guix upgrade" i have to remember to do "guix install guile-json@1" after that...
<civodul>mbakke: glibc-mesboot-2.16 has parallel build failures
<civodul>(underspecified makefile dependencies leading to random build failures in parallel)
<civodul>it had failed to build on berlin, so i restarted it and it worked the second time
<civodul>we could build it with #:parallel-build? #f to be on the safe side
<civodul>thoughts?
<nee`>Hey, I 'guix package -i' installed elixir, it has git as input and hardcodes a path to it, but when I run 'guix gc' it removes the git binary and the elixir package breaks. Shouldn't installing elixir prevent git from beeing deleted by gc?
<nee`>Also I can get the same git build by doing 'guix build elixir', but not by doing 'guix package -i git'.
<PotentialUser-25>nee`: what is the hardcoded path?
<str1ngs>nee`: it hard codes the git executable path?
<str1ngs>maybe it's being substituted? in which case the input should not be gc'd if it's in a root other wise known as an active profile
<nee`>PotentialUser-25: it was in a manual upgrade of elixir I made in a git checkout of guix.
<PotentialUser-25>let's look at the derivation code
<rekado>civodul: howdy!
<rekado>civodul: last night when I lay awake I thought about this Guile JSON problem…
<civodul>heh! :-)
<civodul>we'll get to it
<PotentialUser-25> http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/elixir.scm
<rekado>does Guix need to provide an upgrade path or can the switch to the latest version be instantaneous?
<PotentialUser-25>it looks like git is in inputs but not propagated inputs
<PotentialUser-25>nee, maybe that is the issue
<civodul>rekado: it can be instantaneous, we just need to upgrade (guix self) i guess
<rekado>I thought that the easiest way forward would be to load a compatibility wrapper instead of (json) directly.
<civodul>oh i don't think it's necessary
<efraim>Not good on the freedom side, but the new RPi 4 was just announced with up to 4GB of RAM
<str1ngs>hmmm I don't think inputs get gc'd like that
<nee`>PotentialUser-25: I thought it only has to be in propagated-inputs when the path is not hardcoded. And that both inputs and propagated inputs should be gc protected.
<PotentialUser-25>strange
<PotentialUser-25>you are right actually.
<str1ngs>I think the issue here is installing with ./pre-inst-env guix but GCing with host guix
<nee`>str1ngs: Ah does that cause problems? I didn't know.
<str1ngs>I'm not confident to say yes, but it could be a factor
<str1ngs>please test gain but this time gc with ./pre-inst-env
<str1ngs>s/gain/again/
<roptat>I don't think it should make a difference
<nee`>str1ngs: ok will test it
<roptat>if elixir is referenced from a gc root, and it itself references git by its store path, git should not be garbage-collected, independently of which guix you used
<roptat>maybe there's a reference to git that wasn't substituted during package building?
<nee`>both 'guix gc --list-dead | grep git' return '/gnu/store/5hyjiyjzfhlnh5zzrqwnf8z9ywyy97q1-git-2.20.1'. So it would be deleted by either.
<roptat>can you try 'guix gc -R `./pre-inst-env guix build elixir`'?
<roptat>does it reference a git variant?
<nee`>roptat: no it doesn't, but I noticed the master branch elxir is 1.8. My manual upgrade is still 1.7. Does it list it for you in 1.8?
<roptat>yes
<roptat>nee`, can you make sure you're running guix from ~/.config/guix/current/bin/guix and run 'hash guix' (to remove bash's command location cache)?
<roptat>if you update guix recently, you should have the latest version of elixir
<nee`>I'm upgrading everything now. 'type guix' says /run/current-system/profile/bin/guix. I hope this isn't a problem anymore, but it was a weird case because I thought git being an input should prevent gc.
<roptat>no, only propagated-input are protected from gc, as well as anything referenced by its store path
<roptat>so if 1.7 didn't embed a reference to git's store path, it's normal that git is gc'd
<nee`>Thanks for the help everyone. I'm glad to have learned about guix gc -R.
<nee`>Eh, I can't build elixir 1.8 because the tests have a 60s timeout now, which is too short for my server.
<pkill9>weird, i had a dream where i acknowledged to myself that i started using Guix since july last year
<sneek_>pkill9, you have 1 message.
<sneek_>pkill9, rekado says: no, SXML does not change the meaning of @. It is data, not code. Just like '(@ (guile) string-append) does not “change” the meaning of (@ (guile) string-append) — one is a list containing of a symbol, a list, and a symbol, while the other is syntax.
<pkill9>rekado: I mean the part where it lacks a reference to a procedure, e.g "(@ (id "foo"))" instead of "(@ (id "foo") procedure)"
<rekado>SXML is quoted
<pkill9>oh actually i think i get it, when it's data, it's completely different to it's meaning as code?
<pkill9>and in SXML those @ parts are data?
<rekado>a quoted expression is “inert”
<rekado>*all* of SXML is data
<pkill9>ok
<rekado>it’s just a convention with procedures acting on that data
<rekado>the sxml->xml converter takes the symbol “@” to mean the beginning of an attribute list.
<pkill9>can a quote be evaluated ?
<rekado>a piece of data can be evaluated as code with “eval”, but that’s not what happens with SXML.
<pkill9>ok
<rekado>(eval '(+ 1 2) (current-module))
<rekado>this evaluated the quoted expression '(+ 1 2) — a list of three atoms — as code within the context of the current module.
<rekado>*evaluates
<rekado>SXML is not a quoted programme. It is not evaluated.
<rekado>it merely describes a tree.
<pkill9>cool, thanks for helping me understand
<rekado>no problem. If you want more examples hop over to #guile and we can discuss this further.
<nckx>rvgn: ‘winefile’, or ‘wine explorer’, although I don't know why the latter is badly themed and lacks a menu bar.
<nckx>There isn't a big ‘Welcome to Wine! Where do you want to go today?’ fungui because Wine is a set of libraries, not an application.
<nckx>winebob.exe
<nckx>Oh, and ‘winecfg’ allows you to configure Wine. A bit.
<demotri>I have a `guix publish` service running on one machine. On a second, I start a `guix gc --verify=repair`. It starts a download of a missing store entry, but always gets stuck after 16KiB transferred. Any ideas?
<roptat>interesting, coq 8.10 (beta) tests then checks all files :)
<roptat>also, since I talked about it in Strasbourg, here is a channel with every coq version from 8.6: https://framagit.org/tyreunom/guix-coq-channel
<civodul>roptat: yeah, neat!
<civodul>you should register it on the "delta" :-)
<civodul>demotri: weird, anything on the stdout/stderr of 'guix publish'?
<demotri>civodul: With wget, I'm hanging at 320K. No erros only the GET info: GET /nar/gzip/9alic3caqhay3h8mx4iihpmyj6ymqpcx-guile-2.2.4
<roptat>civodul, do we already have it?
<civodul>roptat: i dunno, did someone hack it while going back home? :-)
<roptat>I didn't :)
<civodul>demotri: can you try stracing 'guix publish' to see when it hangs?
<civodul>strace -f -p PID -o /tmp/log
<civodul>where PID is the PID of 'guix publish'
<demotri>civodul: Good idea. I will try that.
<demotri>Last line of my strace: 29957 write(27, "\347\331\224K\207\244\34\rN\31\301\262\256\232\332J}4\352\330Je=y,B\335\210\260b\225\326"..., 65536
<demotri>civodul: Actually I don't care. The only thing is, I want that store-entry back. It was lost somehow, but it is a guile-2.2.4, it is essential, and pretty nothing works without it.
<demotri>Can I do a "guix import" on it? This command doesn't import it, because it (should) be there. "gc repair" is only looking at substitutes, not at local files. Hm.
<demotri>Any other idea on how to get that store entry repaired?
<saslibre>Hello guix!
<quiliro>hello saslibre
<civodul>demotri: you can do "guix archive --export -r" on one end and "guix archive --import" on the other end
<civodul>still, weird
<civodul>nckx: i stumbled upon your installer fixes at https://issues.guix.gnu.org/issue/35901 and i think you can go ahead with those!
<Marlin[m]>Hey guix
<Marlin[m]>How do you get chicken scheme eggs?
<Marlin[m]>I got an error saying chicken-install can't access the filesystem at /gnu/store and ends up not being able to install
<Marlin[m]>Maybe we should get some eggs packaged?
<Marlin[m]>I'll put that on my list
<civodul>Marlin[m]: yes, and also it sounds like a packaging issue in that chicken-install shouldn't try to write to /gnu/store
<civodul>instead it should probably write to /var/chicken or something
<Marlin[m]>oh
<Marlin[m]>same happens with python pip and similar stuff
<demotri>civodul: "guix import" is not importing it, probably because it already exists (or at least should). Maybe I will reinstall the server, seams to be the fastest and cleanest way
<roptat>demotri, guix import is for importing package definitions from other package managers ;)
<demotri>roptat: I meant "guix archive --import", sorry. :-)
<nckx>civodul: 👍
<roptat>civodul, should "delta" be a remote database or embedded inside guix's code?
<civodul>roptat: it would be a service, but probably with a CLI
<civodul>and an API
<civodul>for those reading along, a "delta" is a "bunch of channels" :-)
<civodul>we discussed the idea of a channel registry in Strasbourg this week-end
<bavier>what does the idea of a "delta" provide?
*bavier who is just starting to get comfortable with channels
<roptat>it's a way for users to look for existing channels
<bavier>a channel discovery service?
<nckx>Why this name?
<roptat>we were looking for "a bunch of channels"
<roptat>and found "delta" but if you find a better name...
<roptat>bavier, exactly
<bavier>oh, "delta" as in "river delta"
<roptat>channels listed there should respect user's freedoms of course
<nckx>Oh. Clever.
<bavier>I suppose the name also works as in "difference", since channels offer a way to differentiate your guix
<roptat>so an example would be my channel with multiple versions of coq (including a beta version), a channel with every version of perl that are still supported, etc
<roptat>anything that is free software but doesn't belong in guix
<roptat>so I've looked a bit at artanis, it looks fun :)
<roptat>but it won't work unless I create /etc/artanis/artanis.conf :/
<Marlin[m]>haunt is awesome
<cap>Greetings. I'm a bit overwhelmed by guile. Can anyone recommend a guid to learn how to build configfiles for guix? The page about the configfiles in the guix documentation is not enough for me.
<cap>Also, is it possible to have the file system configuration in a separated file?
<str1ngs>cap: you can have the file system in a separate file. you could define the file-system field as a variable in fs.scm and then load that file with (load "fs.scm") and use a the a variable in place of file-systems field
<str1ngs>cap: though if you are new to system declarations. I would avoid this complexity for now
<str1ngs>cap: also there are pre existing system templates. I would start with one of those, the cover most use cases.
<str1ngs>they*
***langdon_ is now known as langdon
<bavier>OriansJ: your bootstrap cc is on HN front page
<nckx>Hurrah/uh oh.
<cap>str1ngs: Thank you. I see your point but the default configs were not covering my usecase, so I decided to learn it the hard way. :) Where do I need to put the fs.scm?
***langdon_ is now known as langdon
<str1ngs>cap: if you put it in the same directory as your config, then you can do this. (load (string-append (dirname (current-filename)) "/fs.scm"))
<str1ngs>cap: I have not tested that, but in theory that should work.. :P
<str1ngs>also keep in mind if you plan to copy to /etc/config.scm then this breaks your config.
<str1ngs>also (current-filename) in some cases does not expand right. but in this case it should. if you are having problems just hardcode the full path with (load "/path/to/fs.scm")
<quiliro>cap: i suggest to use the config in only one file until you understand guile better
<quiliro>guile is the language used for guix and guix config files
<quiliro>cap: what is your exact problem?
<cap>quiliro: I copied a config to another system, without changing the filesystem config and reconfigured… so I just wanted to make sure, this wouldn't happen again.
<cap>quiliro: beside this I'm trying to get wayland running
<arshin>cap: which compositor?
<civodul>mbakke: hey! we'll have to patch or upgrade Guile on core-updates due to a bug in the (web server) module of 2.2.5
<Minall>Hello guix!
<nckx>Hullo Minall.
<pkill9>hello #guix