IRC channel logs

2018-05-16.log

back to list of logs

<thomassgn>anyone up? a bit late I know, but does patches for the website go to the regular patches list?
<thomassgn>I'll ask again in the morning maybe...
<bavier``>thomassgn: they can go there or guix-devel
<thomassgn>cool, thanks!
<marusich>I noticed that the ImageMagick 6.9.9-43 source is missing. Also, LibreOffice 5.4.7.1 source is missing.
<marusich>I discovered this when I ran guix pull and found that I could not build these things.
<marusich>Anyway, I've drafted a fix for LibreOffice, and I'm testing that it builds now. If it's successful, I'll push the change and send an email. I haven't started on ImageMagick, so if anybody here wants to try fixing it, please feel free.
<marusich>I should have known, but LibreOffice apparently takes a loooong time to build :(
<thomassgn>hehe, indeed. I still have a bug with libreoffice I should finish, but everytime I try to build I start doing other things while waiting :P
<efraim>the longest thing I've ever built was chromium, that was about 18 hours on my fast aarch64 board
<efraim>rust, webkitgtk, python-cython, nss also take a while
<thomassgn>hehe, yea. So happy for binary substitutes!
<marusich>nss was a slow one, yeah.
<civodul>Hey Guix!
<civodul>
<marusich>hello
<jonsger>civodul: are they any plans to update the gcc in commencement from gcc5 to gcc6?
<civodul>jonsger: yes of course, probably in the next core-updates cycle
<jonsger>oke nice :)
<civodul>this is complicated by a change in how GCC handles C_INCLUDE_PATH et al.
<jonsger>seems so, on one machine it fails to build perl-5.26.1 and on the other gcc-6.4.0...
<jonsger>civodul: so the "code" for this is not out yet in a branch?
<civodul>jonsger: right there's no code yet :-)
<civodul>switching to gcc@6 would be easy (very little code), the difficulty is discussed at https://bugs.gnu.org/30756 if you'd like to take a look
<civodul>bloggy post! https://gnu.org/s/guix/blog/2018/tarballs-the-ultimate-container-image-format/
<efraim>yay!
<efraim>i was actually going to try getting guixsd running on scaleway's arm64 machines and then writing a blog post about it
<civodul>would be nice!
<roptat>civodul: "directories where libraries are to be search for" -> "searched for" I think
<efraim>if I want to create a simple service to add a text file, it would be: (extra-special-file "/path/to/file" "my text here")?
<marusich>civodul, very nice blog post! I hope to have the chance to play with "guix pack --relocatable" soon.
<marusich>efraim, not sure, but I think you need to do something more like (extra-special-file "/path/to/file" FOO), where FOO is a "file-like object". So maybe you could do (extra-special-file "/path/to/file" (plain-file "my-file" "my file's contents"))
<marusich>I haven't looked closely though, so I might be wrong.
<marusich>My understanding is that basically, extra-special-file causes "/path/to/file" to point (via a symlink, I think?) to FOO.
<marusich>Note that if you want to create files in /etc (but not its subdirectories, apparently...), you can extend the etc-service-type.
<efraim>according to the manual, yes, a symlink
<efraim>marusich: thanks, i'll look more at the etc-service-type
<civodul>thanks, marusich
<civodul>i hope it'll be as useful as it's been fun to play with :-)
<catonano>I have a Debian machine running in the Amazon cloud. How do I know if it supports user namespaces ? I' d like to try this relocatable thing
<efraim>file /./gnu/store/45218wx8qklzvlgikx8861a593idnh8y-hello-2.10/bin/hello
<efraim>/./gnu/store/45218wx8qklzvlgikx8861a593idnh8y-hello-2.10/bin/hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /gnu/store/fw7538g5qkw2z74767gfpw059izkqfrr-glibc-2.26.105-g0890d5379c/lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, not stripped
<efraim>from my aarch64 box
<efraim>civodul: so it looks like it works, i'll find somewhere to add it to the manual, with the caveat that not all aarch64 machines support it
<marusich>catonano, I recall that you can perhaps check the configuration that was used for compiling the kernel. See if Debian added /proc/config or something.
<catonano>marusich: thanks, I found this https://superuser.com/questions/1094597/enable-user-namespaces-in-debian-kernel#1122977
<marusich>Yeah. It sounds like it may be a little complicated on Debian, since apparently they had (have?) a patch that disables user namespaces by default... I think you'll have to experiment and do more Internet searching to find the answers.
<marusich>When in doubt, try it out!
<efraim>I think I had a script I ran on debian to enable it for guix environemnt or guix VM or something
<efraim>Nothing fancy, I just couldn't remember the path
<efraim>From the superuser post it would be 'echo 1 | sudo tee /proc/sys/kernel/unprivileged_userns_clone'
<rekado>civodul: I wonder if the new “guix pack -R” could take an optional argument for a custom wrapper.
<rekado>I’d imaging that people wanting to provide guix packs for other operating systems would be able to provide a custom wrapper that effectively spawns a GNU/Linux VM using the mechanisms of the target platform.
<rekado>but maybe it’s easier to just use guix system vm for that.
<marusich>Wow, LibreOffice is *still* building. I must sleep. Goodnight.
<antilope>hi all
<antilope>I throw 'guix pull' and I get this message
<antilope> http://pasteall.org/pic/show.php?id=7b663e42f64fa13f4691231043cbfeac
<civodul>rekado: 'guix pack -R' could take an optional argument, but i wouldn't know how to handle other OSes
<antilope>it stays there and does not advance, what can it be and how do I solve it?
<Apteryx_>Oh; download failed "http://mirror.hydra.gnu.org/file/ImageMagick-6.9.9-43.tar.xz/sha256/09vfxb1ljfma7mvkcqp17bs7adlrfh6kc6k9hifkhgxf51vr7hk6" 404 "Not Found"
<catonano>Apteryx_: I reported thhison the list thhis morning
<catonano>I reported this on the list
<Apteryx_>catonano: OK! thanks
<antilope>should I install 'pulseaudio' as root or user?
<civodul>antilope: as user
<antilope>ok
<antilope>:)
<antilope>What 'theme gtk' do you recommend? I'm using 'lxappearance'
<civodul>ACTION is pretty ignorant about GTK+ themes :-)
<snape>o/
<antilope>I want some programs to run with the '.xinitrc' file, but it does not work. As I do in guix, is there another method? I'm using twm awesome
<civodul>antilope: i do that in ~/.xsession, which needs to be executable and to start at least one X client (usually the window manager)
<civodul>heya snape!
<snape>nice article civodul
<civodul>thanks
<snape>I'm going to use guix pack -R to install a copy of Emacs on my collegue's computer and symlink Eclipse to it :p
<pkill9_>lol
***pkill9_ is now known as pkill9
<civodul>heheh :-)
<antilope>guix pull run as root or user?
<civodul>antilope: it's per user, see https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-pull.html
<antilope> http://pasteall.org/pic/show.php?id=7b663e42f64fa13f4691231043cbfeac
<antilope>because when launching 'guix pull' it comes out and it stays that way, how do I solve it?
<snape>ouch
<civodul>antilope: it takes a while, unfortunately, but if you wait for 5 to 20 minutes (depending on various factors) it'll complete
<civodul>oh, out-of-memory is pretty bad
<civodul>well well, it's also memory-hungry as you can see
<antilope>I'm using a virtual machine and it has 1.5gb of memory
<antilope>:|
<roptat>it needs just a bit more than 1.5 GB of memory
<roptat>but it's pretty easy to change the amount of memory of a virtual machine
<roptat>2GB should be plenty. If you can't do that, you can still create a swapfile
<antilope>I will increase and I will try
<antilope>It would be good to correct this problem, use a lot of memory guix
<antilope>I'll be back
<antilope>how active the audio, already install pulseaudio and pavucontrol?
<antilope>help
<roptat>can you run pavucontrol?
<antilope>yes
<roptat>so it should be working, right?
<roptat>did you select the correct device?
<antilope>the buttons so blocked
<roptat>oh
<roptat>is there any kind of error message?
<antilope> http://pasteall.org/pic/show.php?id=f0b2ccd140c6fe8eb4e387fdd6f6bca2
<roptat>"Dummy output" is not a very good sign
<roptat>the other warnings are unrelated
<roptat>maybe your audio device is not supported? or maybe your user is not in the audio group?
<dustyweb>hello #guix!
<catonano>hello dustyweb
<dustyweb>civodul: nice job on the tarball blogpost :)
<davexunit>civodul: I second this!
<davexunit>does anyone know if the latest ubuntu enables unprivileged user namespaces by default?
<davexunit>that would go a long way towards making these "just work" on a lot of systems
<dustyweb>ooh yeah
<dustyweb>btw, I recently had the interesting experience where I couldn't upgrade my server because of ram limitations and something that wanted to compile
<dustyweb>so I compiled it locally and passed the closure over
<dustyweb>totally worked
<davexunit>oh nice
<davexunit>I need a guixsd server...
<dustyweb>it's nicer now that we have an official letsencrypt service
<davexunit>ooh I didn't know about that. nice!
<davexunit>I really need to transition my linode to guixsd somehow
<davexunit>using an aging old debian release...
<pkill9>what' sthe different between 'let' and 'let*'
<pkill9>?*
<davexunit>pkill9: with let*, variable bindings can refer to the variables that are defined before it
<davexunit>(let* ((x 1) (y (+ x 1))) y)
<davexunit>(let ((x 1) (y (+ x 1))) y) <= error! x is not bound when y is defined
<efraim>let is run in parallel, let* is consecutive
<davexunit>you can think of 'let' as binding everything all at once, and 'let*' is defining each variable sequentially
<davexunit>(let ((x 1) (y 2)) (+ x y)) is equivalent to ((lambda (x y) (+ x y)) 1 2)
<oleo>and let* ?
<catonano>(lambda (x) (lambda (y) (+ x y)))
<davexunit>((lambda (x) ((lambda (y) (+ x y)) 2)) 1)
<oleo>arright
<catonano>or something
<davexunit>guile implements some of the let forms as primitives, but in a world where guile didn't implement let at all, you could write macros that expand to what I've shown you
<davexunit>macros are cool :)
<catonano>I whish guile had macroexpand-1
<catonano>the NEWS file mentions a problem with it but I don't undestand what that is
<civodul>davexunit: i think Ubuntu enables this
<Rukako>davexunit: why is let a primitive in guile?
<Rukako>the only reason that I can think of would be if there was support for Hindley–Milner
<civodul>it could be a macro implemented in terms of 'lambda' but it would be less efficient
<pkill9>does 'copy-recursively' accept wildcards?
<civodul>nope!
<civodul>you'd use 'find-files' for that
<pkill9>ah ok
<pkill9>so you would do (copy-recursively (find-files "filename*"))?
<civodul>actually the first argument to copy-recursively must be a directory name
<civodul>so it's not that simple
<pkill9>oh ok
<civodul>see the docstrings in guix/build/utils.scm
<davexunit>Rukako: yeah, what civodul said. it's for efficiency because let is used everywhere.
<davexunit>civodul: ooh that is great news, if true. 16.04 did not enable this.
<lyr3>Good morning, Do you guys use that pacman2pacman software?
<lyr3>any feedback
<lyr3>wrong room, haha
<pkill9>woo, made my first function that isn't a package definition
<davexunit>lyr3: it's okay :)
<lyr3>davexunit: parabola
<nckx>lyr3: Heh. A Guix equivalent has been hand-waved about, but doesn't yet actually exist.
<nckx>^ context from a quick search: ‘a plugin for pacman which allows it to download from torrent and HTTP mirrors simultaneously, and to constantly seed downloaded packages back up’
<snape>lyr3: but an equivalent would probably be useful for Guix :-)
<snape>oh nckx said the same thing, sorry
<nckx>np :-)
<lyr3>snape: indeed!
<roptat>hm... it should be easy to seed your own substitutes, but I don't see how users could find torrents
<davexunit>there's a need for some distributed consensus system
<nckx>‘the download URL that pacman gives to the pacman2pacman.-get script (through XferCommand) is used as a webseed for the torrent’, whatever that means.
<nckx> <https://wiki.parabola.nu/Pacman2pacman>
<davexunit>distributed downloads could only work reliably for bit-reproducible packages
<roptat>I know it's possible to search torrents by name, so with a naming convention like guix-package-<guix-hash>.torrent it should be possible to look for corresponding torrents
<roptat>then we need to be sure it's the correct one and not the work of some attacker :)
<nckx>Note that this pacman2pacman thing is just (AFAICT) a torrent mirror service, *not* a decentralized upload-your-own-builds trustfest.
<davexunit>ah that might be easier
<davexunit>so long as we confirm that what's being served matches what is on the thing that is being mirrored
<roptat>but maybe there's a way to match after the fact that the torrent contains the same thing as hydra
<roptat>the same way you can download substitutes from untrusted serveurs
<nckx>davexunit: I don't know how secure BitTorrent's own hash is nowadays, but aren't builds from Hydra signed anyway?
<davexunit>ah that's true, if we're downloading a signed copy then we're all set
<roptat>is there a guile library for bittorrent? :D
<davexunit>this might be a really nice feature to have to improve download speed until we have true decentralized, consensus-based downloads
<davexunit>I don't think so
<roptat>too bad
<davexunit>but it could be done
<davexunit>depending on how much surface area there is to cover
<roptat>I'd like to experiment with it
<davexunit>I implemented the websocket spec a couple years ago without too much trouble
<davexunit>but I don't know complicated bittorrent is under the hood
<davexunit>I've only ever used clients, never APIs
<bavier`>civodul: wow, second on the front page of HN :)
<nckx>Oh, wow.
<davexunit>nice!
<davexunit>though I'm scared to go read comments...
<bavier`>davexunit: heh, they don't seem that bad actually, from a cursory glance
<davexunit>oh good
<nckx>Ironically, #2 is now ‘The sad state of sysadmin in the age of containers’.
<nckx>Also GNU is apparently ‘unsexy’ y'all be warned.
<bavier`>:P
<nckx>Our friend has obviously never met rms.
<lyr3>I did early this month on Sao Paulo
<lyr3>such a cool lad, if you ofc dont fck with him
<davexunit>he was mean to me the first time I ever attempted to speak with him back in 2012
<bavier`>in the "sad state of sysadmin in the age of containers" comments, someone says "Reproducible build tools are a thing. Try Nix sometime. nixpkgs has, say, Hadoop."
<snape>RMS has amazing qualities. One of them being to always reply to emails.
<davexunit>and then I worked for the fsf for awhile and about a year after I quit we were at the same event and he stopped me and said "you look familiar. what is your name?"
<bavier`>could someone with an HN account please clarify that nixpkgs takes the "fuck it, I'm out approach" in the case of Hadoop (and many other packages)
<davexunit>I could try bavier`
<davexunit>do you have evidence of said approach for hadoop?
<bavier`>davexunit: yes, just a sec
<bavier`>davexunit: https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/cluster/hadoop/default.nix
<bavier`>they download the tarball and patchelf the binaries
<lyr3>davexunit: he was mean to me....buaaah
<lyr3>there was a boy trying to prank Stallman with some opensource bs...gone too bad!
<lyr3>But he was mostly kind and receptive to everyone
<lyr3>and he spekas brazilian portuguese very well
<davexunit>lyr3: I don't appreciate the condescending tone
<davexunit>bavier`: thanks
<davexunit>bavier`: left a comment
<bavier`>davexunit: thank you good sir
<thomassgn>lyr3: Appreciate not having disrespecting behaviour here.
<roptat>davexunit: is there anything that's usefull to implement a protocol in guile?
<roptat>like, I could use bytevectors, but I don't know if that's the best way to do it :)
<davexunit>roptat: there's no high-level abstractions really
<davexunit>usually you just figure out what read/write ops you need to do over a port
<davexunit>and write your own parsers/serializers
<antilope>hello
<antilope>all
<davexunit>hello
<roptat>davexunit: ok, thanks
<roptat>oh, is there a canonical way to represent dictionnaries?
<davexunit>when you say dictionary are you talking about a hash table?
<davexunit>guile has a hash table data type that you can use
<Rukako>not sure for guile but in racket at least it is just `((key . ,value) (key2 . ,value2))
<davexunit>there's also the associative list structure, which may be a better fit, depends on the situation.
<davexunit>Rukako: yeah, that's an alist.
<davexunit>it has the nice property of being a functional data structure
<davexunit>whereas a hash table is a mutable thing
<Rukako>zile is quite comfortable
<davexunit>so which one to use is situational
<Rukako>I never had teh chance to use it before
<antilope>as active the sound in guix, already install press audio and pavucontrol
<antilope>pulseaudio
<roptat>thanks!
<Rukako>how can I remove a package form %base-packages?
<antilope>my user is in the audio group
<antilope>how do I see that 'daemon' are being executed in guix?
<davexunit>Rukako: here's an example: (delete sudo %base-packages)
<Rukako>ooh, awesome
<davexunit>'delete' will return a new list with the given object removed
<Rukako>is this pure or does it change %base-packages?
<Rukako>ah
<Rukako>thanks
<davexunit>you must import the module that provides the 'sudo' package for my example to work
<davexunit>so you would import whatever module has the package you want to delete
<pkill9>how do you tell guix to build 'in place'? i did it a while back but can't remember
<Rukako>davexunit: also, where can I see what is included in the list of base-packages?
<wigust>pkill9: What do you mean by “in place”? Are you talking about https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-build.html
<davexunit>Rukako: that variable is defined in the (gnu system) module
<Rukako>thanks!
<davexunit>so you can open up gnu/system.scm in the repo to see the source
<antilope>help, how do I activate the sound in guix?
<bavier`>antilope: usually sounds "just works" for me. have you run pavucontrol to make sure sound isn't muted?
<antilope>bavier`: if lance 'pavucontrol' is blocked
<antilope>*lance run
<antilope>is mute, sound does not come out
<antilope>maybe you have to throw some 'daemon'?
<antilope>install the basic system with a twm
<antilope> http://pasteall.org/964552
<pkill9>wigust: i mean when using the gnu-build-system in a package definition, is there a way to tell it that the output of 'make' will be in the source directory and not a separate one? But, thinking about it, this may not be the issue and i may be misremembhering what i did
<bavier`>pkill9: I know cmake-build-system has an #:out-of-source? argument, but I don't recall if gnu-build-system does
<pkill9>bavier`: thanks that was what i was thinking of
<pkill9>looking at guix/build/gnu-build-system.scm, it looks like it does have that flag
<pkill9>i'm curious why zenity needs webkitgtk
<bavier`>pkill9: one of zenity's dialogs requires html rendering capabilities
<bavier`>sad but true
<roptat>is there a difference between an empty list and an empty alist?
<daviid>bavier`: hello! any news on the guile-cv front?
<thomassgn>hm, anyone know what timelimits hackernews has on posting? posted my last response 1 hour ago and it still says I'm too fast. (and I'm not behind a proxy or anything with more users)
<civodul>someone on HN linked to Exodus, which does a similar job to "guix pack -R"
<civodul>very smart
<civodul>it has a trick for ELF binaries which is really interesting because it doesn't rely on user namespaces: https://github.com/intoli/exodus#how-it-works
<civodul>we may want to have that as an option eventually :-)
<Rukako>thomassgn: do you use a new user?
<Rukako>they apply some restrictions on new users
<Rukako>they also apply restrictions to people who post controversial stuff or disagree with the admins often
<Rukako>*a new account, sorry
<thomassgn>Rukako: yes, it's a new user. Never posted to HN before...
<thomassgn>If someone wants to reply to justinsaccount a bit down the list of comments; he talks about a docker file, I packaged czmq and zyre just now. https://notabug.org/thomassgn/guixsd-configuration/src/master/modules/ton-tull.scm#L210
<bavier`>daviid: nothing new to report, sorry :(
<Rukako>if I want to disable non-ed25519 keys from openssh, how should I go about it?
<Rukako>in my non-nixy system I just edited the /etc/ssh/sshd-config file or whatever it was
<Rukako>but I can't find a similar file in my guix vm
<Rukako>and there isn't an option concerning the host keys in the guix config
<civodul>hey Rukako
<civodul>Rukako: indeed there seems to be no way to specify that in openssh-configuration currently
<civodul>i'd suggest you file a bug or send a patch
<Rukako>I will try to patch it I think
<Rukako>the code seems clean enough
<civodul>cool, let us know if it turns out not to be that clear ;-)
<Rukako>should I start by manually editing the ssh.scm file in my vm?
<Rukako>or is there something else that I should do first?
<civodul>you should edit it in a git checkout
<Rukako>I see, and how should I go about testing it?
<civodul>you could run: ./pre-inst-env guix system vm your-config.scm
<civodul>though, hmm, i think the latest kernel upgrade broke 'guix system vm'
<Rukako>what does system vm do?
<civodul>it builds a VM running the specified config
<Rukako>ah, I see
<civodul>see https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-system.html
<Rukako>since I am already on a vm I will just reconfigure I think :p
<civodul>heh
<civodul>if you run "herd stop ssh-daemon" before reconfigure, your new ssh service will be automatically loaded and started
<Rukako>oooh
<Rukako>nice
<Rukako>thanks
<civodul>yw
<civodul>ACTION -> zZz
<civodul>good day/night!