IRC channel logs

2018-09-01.log

back to list of logs

<snape>jabranham: indeed, 'e' can't be part of a sha256sum!
<emacsomancer>after I create and build a custom package, and it's been grafted to /gnu/store , how do get guix to create a link in my user's .guix-profile? (Or do I just do that manually?)
<atw>emacsomancer: I think you want to add your package definition to GUIX_PACKAGE_PATH so that you can install it via e.g. guix package -i ... Also I think that "grafting" refers to something else
<atw>You can also contribute your package to upstream ☺
<atw>Oh, and GUIX_PACKAGE_PATH is documented here: https://www.gnu.org/software/guix/manual/en/html_node/Package-Modules.html#Package-Modules
<emacsomancer>atw: I was planning to contribute upstream, but was trying to test it out first. So I shouldn't do "guix build -f myfile.scm"?
<atw>emacsomancer: that should work, but note that the code in myfile.scm should evaluate to a package
<emacsomancer>atw: right, and it seems to have worked (it's built, and is in /gnu/store/), but it's not linked to ~/.guix-profile/bin/mypackage (of course I can create a link manually, but I wasn't sure how good of an idea that was)
<atw>emacsomancer: guix build does nothing but place an item in the store. For trying out a package without installing it, I usually use guix environment. I think you'd want the -l flag. The symlinks in ~/.guix-profile are managed by guix and you should not modify them by hand
<emacsomancer>atw: so to get the symlink in ~/.guix-profile to be generated, I'll need to do a "guix package -i "?
<atw>yes, but if what you want to do is run /bin/mypackage, you can accomplish that without installing mypackage. guix environment --ad-hoc is convenient for that
*atw -> zzz
<ng0>jonsger: thanks
<georges-duperon>Hi! Can `guix archive --export` include the source code in the archive?
<georges-duperon>My goal is to `guix archive --export hello > hello.nar`, copy to a non-networked machine 10 years later, and be able to rebuild from source if need be.
<nckx>^ I was wondering the same thing y'day.
<RetardedOnion>you could test it out by using a 32bit vm. i guess you dont build 32 bit software on your 64 bit system
*kmicu loves Guix maintainers. ʕノ•ᴥ•ʔノ ︵ λ𝛌𝚲𝝀
<amz3>friendly reminder that guix is written in #guile
<RetardedOnion>some people call it (((((guile)))))
<amz3>^^
<amz3>emacs 26, that's new
<janneke>RetardedOnion: people that support guile call it that? hmm
<RetardedOnion>janneke: i like guile. but the (((((( use is a bit excessive. you dont need to absolutely love everything if you support it, right?
<janneke>RetardedOnion: on the contrary!
<amz3>what use of (((((( do you think is excessive?
<OriansJ>RetardedOnion: One can choose to love imperfections or accept them or reject them. Its ultimately your choice
<amz3>you think there is too much parenthesis in guie?
<amz3>you think there is too much parenthesis in guile?
<ecbrown>i have a laptop that i use for home and work. i'd like to avoid fast user switching, and i currently ssh -Y into my work account on localhost. Q. Is there a nice guix way of doing this, so i inherit my work account's ssh keys etc
<ecbrown>like guix environment or guix container, i am thinking
<RetardedOnion>compared to nix, i get way more often confused with parenthesises. the language overall is better, but that is just something i have to learn
<amz3>you get used to it, like i like to say, you end up not counting parens at some point, because the 'flow' of expressions becomes part of your inner thinking, and you almost don't need to 'think' about getting parens right
<amz3>also there paredit and pareinfer things that some people like to use
<amz3>I don't use those
<amz3>there is also an srfi that drops parens
<amz3>see for instance https://srfi.schemers.org/srfi-119/
<amz3>I find the lake of parens confusing, it's more difficult to figure what is the current expression
<amz3>also see rainbow delimiters in emacs and rainbow blocks
<amz3>ecbrown: you would like some alternative to switching user by using ssh? somekind of
<amz3>ecbrown: I don't know about such a thing, what is the problem with ssh?
<ecbrown>there's no problem with ssh. i guess i'm wondering if i can make redundant a user account which exists primarily because of the intermingling of dotfiles
<ecbrown>like could i guix container --home=/guixcontainers/work-account and run icecat, and have .ssh .authinfo and .emacs.d be from effectively a different person
<amz3>that's what I was going to say, I use LXC for that kind of things
<ecbrown>"guix identity"
<amz3>first class identity
<ng0>RetardedOnion: have you looked at parinfer?
<ng0>there's a talk on this, people are really looking into improving the access the Lisp for those who perceive the parens as hard to handle.
<amz3>rekado_: great work on http://issues.guix.info/
<ng0>RetardedOnion: https://www.youtube.com/watch?v=K0Tsa3smr1w i think this was it
<ng0>it's clojure, but ignore that bit
<ng0>I have no problem with the parens, but even I use parinfer.. I need to learn some bits more (like ignoring it when the file is not set up for it or just making it focus on a region), but it is great.
<RetardedOnion>ng0: thanks. Will have a look at it
<ng0>sometimes you have to testdrive what you recommend :)
<ng0>available for emacs, vim, and a boatload of more editors I think. the talk works up to that
<amz3>that is one the final frontier in lisp realm
<amz3>i mean, it seems to work like magic
<ng0>parens, the last frontier
<ng0>amz3: dunno if you know the talk I linked. it also compares some of the srfi approaches
<amz3>yes I know that talk
<ng0>oh.. I read the log before I wrote
<ng0>sorry :)
<ng0>ecbrown: if it's just about the ssh key, you can use cards and chips with either gpg as a way to handle the authentication key or to hold the ssh key
<ecbrown>well, icecat and gimp and yada yada
<ecbrown>who knows if icecat even would let me run a separate instance as a separate config, now i can at least do that over ssh
<ng0>I think what you describe could be discussed in a bug ticket.. it's an interesting usecase addition
<ecbrown>i might have to run a separate browser
<ecbrown>guixdo (ala sudo)
<civodul>janneke: your guix-switch-profile Emacs macro is great!
<janneke>civodul: thanks, i's terribly ugly...but it works too well ;-)
<janneke>it would be nice to be able to switch to environment too, without having to do echo $GUIX_ENVIRONMENT first...
<janneke>i think we're working towards unification of environments and profiles, right?
<civodul>they're already unified in some way
<civodul>in the sense that 'guix environment' simply produces a profile
<snape>civodul: could you send me an up-to-date copy of Berlin's Cuirass database?
<snape>please :-)
<snape>civodul: and a copy of the logs if it's possible
<snape>otherwise it's quite difficult to work on https://bugs.gnu.org/32583 because I can't reproduce it
***rekado_ is now known as rekado
<rekado>snape: I’ll give you a copy, just a minute.
<snape>rekado: cool! thanks, take your time
*samplet built ghc-pandoc with GHC 8.4.3.
<ecbrown>nice! unfortunately i had that commented out. aeson i think?
<samplet>ecbrown: Commented out where?
<ecbrown>oh sorry. pandoc is an awesome exporter for emacs' org-mode
<ecbrown>i "assumed" that "anyone" who was installing pandoc was for use with emacs ;-)
<ecbrown>but recently i tried to install ghc-pandoc and it crashed on building aeson
<samplet>Ah OK. I am in the middle of updating the whole set of Haskell packages, so all the ghc-* packages should work together again.
<samplet>The ghc-pandoc package has a lot of dependencies, so it represents a lot of progress. :)
<rekado>samplet: that’s great news!
<ecbrown>ok i will try it out now
<rekado>ecbrown: it’s not ready yet
<rekado>GHC 8.4.3 is not yet the default.
<samplet>ecbrown: It’s in my own repo.
<ecbrown>oh ok
<rekado>samplet: how did you get around the problem of ‘--allow-newer’ no longer working?
<rekado>are you using cabal in the build system now?
<samplet>I added a “#:cabal-revision” argument to the build system.
<rekado>that’s pretty
<samplet>It is nice because it gets rid of a lot of “official revision” comments.
<rekado>right
<rekado>way better than these ad-hoc configure flags I added everywhere :)
<ecbrown>so my 9 year old wants to learn to program. she just did guix package -i python and did her first hello world. then she installed emacs and did the same in emacs lisp.
<samplet>I just do “'(#:cabal-revision ("2" "base32-hash"))”.
<samplet>It gets the URL from the package’s ‘source’.
*ecbrown is kvelling
<rekado>ecbrown: awesome!
<ecbrown>yeah then she went for super tux kart
<rekado>ecbrown: she might be having some fun with the Guile picture language.
<rekado>haha
<ecbrown>yeah, it's a bit of a cross roads. i would like to check out what Guile can do. main thing about python is she picked up from a friend and school
<ecbrown>i'd like for her to script something as a first exercise, like do something to a stack of jpegs
<rekado>the picture language is here: https://git.elephly.net/software/guile-picture-language.git
<rekado>I should add instructions on how to get started
<rekado>when in Geiser (in Emacs) you can say (circle 10) and it shows a circle
<rekado>of size 10
<ecbrown>rekado: this sounds intriguing! how do i start?
<rekado>(disk 20) and you get a black disk twice the size.
<ecbrown>that is nice. so build up graphics primtives
<rekado>then there are combinators to put things together
<rekado>I’ll try to write a blog post about this tonight.
<ecbrown>i come from mathematica, there seems to be similiar concepts? like lists of disks
<rekado>under the hood it just builds up SVGs with Guile’s sxml support, writes them to disk, and Geiser displays them right there in Emacs.
<ecbrown>that would be awesome. i'd like to check it out. i use tikz also, and eager for any nice play between emacs and code-generated graphics
<RetardedOnion>is there a go to way to patchelf shitty projects? "works on ubuntu 12" doesnt help me too much and i cant get it compiled under arch and the debian 8 vm i have
<rekado>RetardedOnion: patchelf only helps you swap out the loader. But large projects usually depend on a whole bunch of libraries that you’d need to provide in compatible versions and force them in via LD_LIBRARY_PATH. It’s not pretty.
<RetardedOnion>rekado: thanks for the answer. i guess i will just see that i run a vm for that crappy program and call it crap whenever i can. thanks. i should write the mail about libvirt already
<joshuaBPMan>Hello?
<joshuaBPMan>Ok sorry. Hello, I've got an old version of guix that I installed. I'm about to run the binary installation method of installing guixSD 15.
<joshuaBPMan>Will that overwrite my current programs that I have installed in my profile?
<joshuaBPMan>I feel like it probably will.
<rekado>joshuaBPMan: yes.
<rekado>the binary installation method provides a pre-populated store, which will be unpacked to /gnu/store
<pkill9>would that overwrite them though?
<rekado>you shouldn’t use it if you want to keep the current contents of /gnu/store (and the database)
<pkill9>surely they would have different hashes?
<pkill9>oh, yes, the database, i forgot about that lol
<joshuaBPMan>bummer. Well I don't know of an easier way to get guix installed...
<rekado>joshuaBPMan: have you tried “guix pull”?
<joshuaBPMan>I suppose I can create a list of all the progams that I have installed, and just have guix re-stall them.
<pkill9>you can easily generate a list with `guix package -I`
<joshuaBPMan>rekado: yes several times. I installed the packaged guix in parabola. It did not work as well as I would have hoped. :(
<joshuaBPMan>pkill9: thanks!
<joshuaBPMan>rekado: parabola uses guix 0.14 I tihnk.
<joshuaBPMan>The guix pull method wasn't working so well.
<joshuaBPMan>or actually the guix pull has been completely changed.
<pkill9>and pipe it into awk to get just the names: `guix package -I | awk '{print $1}'`
<joshuaBPMan>So I think that is where the issue is.
<joshuaBPMan>pkill9: thanks!
<rekado>yes, guix pull has been changed, but that doesn’t mean you can’t upgrade.
<joshuaBPMan>rekado: I've tried upgrading. Maybe I'm doing it wrong, but every guix pull I tried failed. Every time.
<joshuaBPMan>I feel like the easiest solution is just to try re-installing. I hope.
<rekado>have you asked for help here already?
<rekado>yeah, sure, that works too.
<joshuaBPMan>ummm, probably. I do appreciate your willingness to offer help though! You're one of the main developers aren't you? That speaks a lot about how much you care about the project. So thanks!
<pkill9>reinstalling is for me the more technical version of 'turning it off and on again' lol
<joshuaBPMan>haha
<rekado>I’m just one of the co-maintainers, but I also do contribute code some time.
<joshuaBPMan> guix package -I | awk "{print 1}", just showed me a bunch of "1"s. 1 on each line. I am using fish instead of bash.
<joshuaBPMan>
<rekado>$1 instead of just 1
<joshuaBPMan>ah. that did it!
<joshuaBPMan>thanks!
<joshuaBPMan>also, when I re-install guix, how do I tell it to install all the packages that I have in this newly created file?
<joshuaBPMan>possibly `cat guix-packages | guix package -I`
<rekado>you can turn that file into a manifest.
<rekado>and then use guix package -m the-file.scm
<joshuaBPMan>ok. I see the documentation for that online..
<joshuaBPMan>give me a second to research how to do that.
<rekado>ok
<pkill9>you could also pipe that list into xargs and put it in a command, e.g. `guix package -i $(cat package-list.log | xargs)`
<rekado>that’s not as good as a manifest
<rekado>in my opinion :)
<rekado>keeping a manifest is a good idea in general; you can also put that under version control and move it to diffferent machines if needed.
<pkill9>yeah, it i sbetter in the longterm
<pkill9>i put a manifest in my system configuration
<pkill9>though it does make me more hesitant to upgrade, i should probably keep them in my user profile
<pkill9>but it is nice to have a quick, maybe lazy, option
<joshuaBPMan>hmmm. I'm actually not seeing the difference between a manifest and a file just listing all of the programs you want...does the manifest install the specific version of the package that you want?
<rekado>it’s very close to a file listing all packages you want — except that it is Scheme code.
<RetardedOnion>joshuaBPMan: take this: guix package -I | awk '{print $1":" $3}' | sed 's/:out//g' | sort | uniq. see your packages that you have in GUIX_PACKAGE_PATH because you are a good guy and dont typically use -f
<rekado>in a manifest you could do wild things if you wanted to (like rewriting the dependency graph); you can reference packages by variable name or by specification string (= what you use on the command line).
<pkill9>interesting, didn't know you could do those kinda things
<pkill9>rekado: how would you rewrite the dependency graph? would you basically write a new package definition and refer to that in the manifest?
<joshuaBPMan>rekado: wow!
<joshuaBPMan>RetardedOnion: thanks!
<rekado>pkill9: here’s an example that creates package variants that are built with an older version of R: https://paste.debian.net/plain/1039938
<rekado>you’ll have to build things from source then, of course, because we cannot possibly anticipate all variants that can be generated with Guix.
<joshuaBPMan>ok, I feel like an idiot...I can't seem to run the binary installation bash file. I'm getting a permission denied error as root. I've changed the install file to be owned by root, it's group is root, and I'm running it as root. (i did a "su")...and fish says permission denied...
<joshuaBPMan>maybe I should turn off fish for a moment...
<pkill9>did you `chmod +x` the install file?
<joshuaBPMan>`ls -lha install-guix.sh`
<joshuaBPMan>-rwxrwxrwx 1 root root 13K Sep 1 14:33 install-guix.sh*
<joshuaBPMan>
<joshuaBPMan>I've no idea what's wrong other than fish is not letting bash run or something.
<joshuaBPMan>nope. that's not it. I'm running the script in bash, and it's still giving me this error:
<joshuaBPMan>bash: ./install-guix.sh: Permission denied
<joshuaBPMan>weird
<pkill9>what happens if you try to run it as a user?
<joshuaBPMan>same error
<joshuaBPMan>bash: ./install-guix.sh: Permission denied
<joshuaBPMan>It is the installation file. I've taken a peek inside the file.
<pkill9>hmm that's odd, if you run it as a user it should output 'This script must be run as root.' so it's not executing as your user either
<wigust>joshuaBPMan: What's about mount flags?
<joshuaBPMan>wigust: what do you mean?
<joshuaBPMan>ahhh! I may have a mount flag that prevents me from executing a file on my home directory!
<joshuaBPMan>Thanks wigust!
<wigust>joshuaBPMan: np ;-)
<joshuaBPMan>awesome! It seems to be working now.
<joshuaBPMan>dang on it rekado: You win.
<joshuaBPMan>[1535827870.472]: [ FAIL ] A previous Guix installation was found. Refusing to overwrite.
<joshuaBPMan>
<joshuaBPMan>hahahaha
<joshuaBPMan>what do I do now? hahaha.
<pkill9>I think the only directories guix uses is `/gnu/store` and /var/guix`, so just remove those I would think
<joshuaBPMan>pkill9 thanks
<joshuaBPMan>bummer. [1535828437.471]: [ FAIL ] A previous Guix installation was found. Refusing to overwrite.
<joshuaBPMan>I guess I'll have to modify the script or something...
<joshuaBPMan>and I did remove those directories.
<joshuaBPMan>ahh. I know why...
<joshuaBPMan>I have mounted /gnu...so I can't delet it...
<joshuaBPMan>now it seems to be re-installing
<joshuaBPMan>and I think it worked.
***Elon_Satoshi is now known as Copenhagen_Bram
*rekado added some multipart processing to issues.guix.info
<civodul>rekado: http://issues.guix.info/issue/22629 returns 500, could it be related?
<rekado>oh!
<civodul>i just realized that we should probably set max-age=3600 in 'render-static-file'
<civodul>because apparently IceCat sends If-Modified-Since only when reloading a page, not when moving to another page
<rekado>sorry about that.
<rekado>it’s fixed now
<snape>the encoding seems to have been fixed
<snape>nice!
<rekado>had to write a multipart message parser. I probably didn’t do it right, but it works for most messages.
<snape>where can I find the description of the nix protocol errors?
<snape>e.g. I'd like to know what '100' means
<snape> http://git.savannah.gnu.org/cgit/guix.git/tree/tests/derivations.scm#n189
<rekado>snape: nix/libstore/build.cc
<snape>well, according to the code it means permanent failure
<rekado>yeah
<snape>I was on it too :-)
<pkill9>joshuaBPMan: did you get guix installed and working?
<civodul>snape: it seems to be the only place where 'status' is given a special meaning
<snape>I see
<reepca-laptop>So it occurs to me that this has probably been answered, but my questionable connectivity and the logs not working means I probably haven't seen it. Anyone have any luck making it through the mariadb tests?
<civodul>reepca-laptop: it requires ~15G of free disk space on /tmp
<civodul>i've seen it fail several times because of that
<civodul>it's really a problem
<snape>civodul: btw you did a commit recently that triggered ~4000 builds on master :-)
***ngz` is now known as ngz
<civodul>snape: what?
<civodul>what was that?
<snape>civodul: https://berlin.guixsd.org/jobset/guix-master
<snape>it's either 301aa9e or 8e1395b
<snape>(or both)
<civodul>hmm, perhaps 8e1395b
<civodul>but it's 400 derivations, not 400 packages i guess
<civodul>probably things having to do with system tests since they include (guix records)
<snape>4000 builds
<snape>it looks like they are packages
<civodul>for example https://berlin.guixsd.org/eval/424 mentions php, but changing (guix records) doesn't lead to a php rebuild
<civodul>well, i don't think so
<snape>so how did that happen?
<civodul>dunno
<civodul>we'd have to check two subsequent derivations in the database
<civodul>and see the .drv of each php, for instance
<civodul>also remember that there can be different derivations leading to the same output, due to fixed-output derivations
<civodul>so maybe that's why Cuirass thinks these are new builds?
<snape>oh!
<snape>I didn't know
<snape>I should check if their outputs are the same
<snape>indeed civodul, the outputs are the same
<snape>that's a problem. :(
<snape>well, it's not a big problem because I guess Guix didn't really build them
<civodul>right
<civodul>maybe we can still add entries to Builds in this case? dunno
<snape>I think it's simpler to leave it as it is
<snape>that is: to add entries to Builds in this case, yes
<reepca-laptop>civodul: /tmp is on the same filesystem as / for me, has 468 GiB available. It seems like the relevant output in the failing build is "mysqltest: Could not open connection 'default' after 500 attempts: 2002 Can't connect to local MySQL server through socket '/tmp/guix-build-mariadb-10.1.35.drv-0/build/mysql-test/var/tmp/2/mysqld.1.sock' (111 "Connection refused")"
<civodul>snape: yes, it sounds reasonable
<civodul>no big deal anyway
<snape>yeah
<civodul>reepca-laptop: i've seen that too, but Mark and i discussed it recently and bug-guix and the ENOSPC thesis was attractive
<roptat>rekado: "recent issues" actually look like the oldest ones :)
<civodul>i think it should be "recently active issues", no?
<rekado>yes, that’s correct
<rekado>I’ll change that tomorrow.
*rekado —> zzZZ
<roptat>good night :)
<civodul>night!