IRC channel logs

2018-04-08.log

back to list of logs

<swedebugia>hi
***oW-NAPfzaZHT7 is now known as rec_arts_anime
<pkill9>hi
<swedebugia>\\:)
<efraim_>Just popping in for a minute, I have an aarch64 guix binary from the end of March at http://flashner.co.il/~efraim/
<efraim_>roptat: ^^
***Piece_Maker is now known as Acou_Bass
<bavier>hello guix
<bavier>making use of the qemu-binfmt service for the first time
<bavier>pretty cool
***Gamayun_ is now known as Gamayun
<siraben> Where should I put the paths that Guix tells me to?
<siraben>e.g. In .profile or .bashrc ?
<siraben>This installation is Guix on top of Debian
<ngz>I put Guix related environment variables in .profile. I don't know if that's the canonical way, though.
<siraben>My .profile is already populated with some things
<siraben>By default, apparently
<siraben>Lemme pastebin
<siraben> https://pastebin.com/7TP3G9Xh
<siraben>So I'm not sure where exactly to paste the "export ..." line
<ngz>siraben: What are the contents of your .bash_profile ?
<siraben>I don't have one
<siraben>It's .bashrc
<siraben>It's a fresh Debian install too. OK, so now I added some paths to my .bashrc and everything seems fine,
<siraben> https://pastebin.com/XShZHJYh
<ngz>I think adding to .bashrc is not a good idea anyway.
<siraben>Why not?
<ngz>Because, IIRC, it kind of defeats "guix environment"
<siraben>So what's the ideal setup?
<ngz>I think I already answered to this question: I put it in .profile, but it may not be the canonical way. However, I have .bash_profile sourcing both .profile and .bashrc.
<siraben>Hmm, can you do a pastebin of your .profile?
<ngz>See http://paste.debian.net/1019255/
<siraben>And how do you have .bash_profile sourcing .profile?
<siraben>I'm new to setting environment variables
<ngz>I have : [[ -f ~/.profile ]] && source ~/.profile in .bash_profile
<ngz>And the same with ~./bashrc
<siraben>I thought [[ ]] was for if statements?
<siraben>What does the -f do
<ngz>Yes. It tests if "~/.profile" exists as a file.
<siraben>Why use .bash_profile? How does it differ from .bashrc ?
<ngz>You may want to learn a bit about Bash. .bash_profile is loaded less often than .bashrc.
<ngz>Basically, each time you create a terminal emulator, you load .bashrc, but not .bash_profile.
<siraben>Recommend learning resources for bash and using the shell?
<ngz>Maybe https://bash.cyberciti.biz/guide/Main_Page
<ngz>I don't think it explains the difference between .bashrc .bash_profile ... You want want to search the internet about them.
<siraben>Right. Thanks for the tip.
<siraben>What are you running? GuixSD or on top of another distro?
<ngz>Guix on Debian
<siraben>Does it conflict with Debian's packages at all? How do you avoid a franken-debian?
<ngz>It doesn't conflict in any way with Debian packages.
<siraben>How so?
<ngz>They use distinct package databases.
<siraben>Ah that explains why there are so many dependencies in the beginning
<ngz>Yes
<siraben>And if a program needs some packages that aren't in Guix?
<siraben>e.g. libpoppler
<ngz>Guix is self-contained. If a program is available as a guix package, all its dependencies are in Guix.
<ngz>Otherwise, you use the Debian package.
<siraben>Ok.
<siraben>Do you use a shell other than Bash? e.g. Zsh
<ngz>no
<siraben>Doesn't the self-contained nature lead to a lot of duplicated packages?
<siraben>Ok so everything works fine. However, the installation of Guix was a very manual process, what scripts are there to automate the process?
<ngz>I think there is an installation script available somewhere. I'm not sure where it resides.
<siraben>There's a debian-guix thing on GitHub
<siraben>However it's old, and builds from souce
<siraben>source*
<ngz>Guix re-uses dependencies so it doesn't lead to package duplication.
<ngz>I think there is a script on the Guix side. It was discussed on the ML a few weeks ago, IIRC.
<siraben>You run GNOME on Debian? Was that configured by the installer or by Guix?
<siraben>Do you*
<ngz>My Gnome is from Debian, not from Guix
<siraben>How long have you been using Guix?
<ngz>I didn't use the installer
<ngz>I don't remember. More than 2 years.
<ngz>I need to go AFK.
<siraben>Ok
<siraben>Hi all, running "info guix" returns "No menu item 'guix' in node '(dir)Top'.", any suggestions
<siraben>?
<wigust>siraben: What's your ‘INFOPATH’? And please, use paste.debian.net because of pastebin blocks Tor users.
<siraben>'echo $INFOPATH' gives /home/siraben/.guix-profile/share/info
<siraben>wigust: Noted. Will use paste.debian.net in the future.
<siraben>Also what exactly does "guix pull" do? Recompile itself from source?
<wigust>siraben: Does the path you showed contains ‘guix.info.gz’?
<siraben>wigust: No.
<wigust>siraben: You could install ‘guix’ package to get it.
<siraben>I thought guix was already installed?
<wigust>siraben: Or check ‘/run/current-system/profile/share/info’ for a ‘guix.info.gz’.
<siraben>OK, installing
<siraben>Ah I'm on Debian
<siraben>Huh, installing Guix helped. Thanks!
<siraben>What does guix pull do exactly?
<siraben>Nvm I have the info
<siraben>How long should I expect "guix pull" to take?
<roptat>hi Guix :)
<roptat>siraben: between 5 minutes and 2 days depending on your RAM available
<siraben>Wow it maxes out my CPU and using 80.2 % of 3.8 GB RAM
<siraben>Won't this get longer as more packages get added to Guix?
<lo_mlatu>No `module.h` and `platform_device.h` in linux-libre-headers,why? If I want to compile some kernel modules, how can I get the headers?
<roptat>siraben: unfortunately yes
<roptat>but we're working on it
<roptat>lo_mlatu: linux-libre-headers
<siraben>roptat: Why isn't the Boehm garbage collector in the Guix repository?
<siraben>roptat: Yep, still compiling
<lo_mlatu>roptat: yes?
<roptat>oh sorry I got confused, hm so no idea
<lo_mlatu>pity
<siraben>Wow this is like waiting for 'sudo apt update' to finish
<siraben>roptat: Which areas of Guix still need help?
<siraben>roptat: How could I contribute to documentation?
<roptat>documentation is in doc/guix.texi
<wigust>siraben: Check https://libreplanet.org/wiki/Group:Guix/GSoC-2018 and https://git.savannah.gnu.org/cgit/guix.git/tree/TODO You could start with https://www.gnu.org/software/guix/manual/html_node/Contributing.html
<wigust>siraben: People usually start with a packaging though, e.g. as you mentioned a Boehm garbage collector would be great to have in Guix package collection
<wigust>siraben: Also, if people cannot answer here, you could ask more folks on help and devel mailing lists, see https://www.gnu.org/software/guix/contact/
<roptat>make guix-binary.aarch64-linux.tar.xz failed at "Creating manual page database..." with "ERROR: Wrong type to apply: #f" /tmp/guix-build-manual-database.drv-0 is empty
<siraben>I'm getting Error (initialization): User siraben has no home directory on my Emacs (installed by Guix)
<siraben>wigust: Thanks for the tip. I'll look into adding the Boehm garbage collector to Guix
<janneke>siraben, wigust: just jumping in here, but libgc is packaged in gnu/packages/bdw-gc.scm
<siraben>janneke: What if I'm not running GuixSD?
<siraben>+ does it mean I can add "#include <gc/gc.h>" to my C files?
<janneke>siraben: yes, you can
<janneke>Guile is using libgc too
<siraben>janneke: Where is it in the Guix package list?
<janneke>siraben: guix package -A libgc
<siraben>Yay
<janneke>i'm not sure if you can search in the package descriptions
<janneke>i.e. say: guix <something> boehm, and get a hit
<siraben>Is there a PDF copy of the Guix manual?
<siraben>Guix info manual*
<siraben>Why does installing libgc seem to trigger a download of every package I have installed?
<siraben>e.g. git grep gmp utils, perl, libs etc.
<janneke>siraben: are you installing libgc by building it from source?
<siraben>I did "guix package -i libgc"
<janneke>did you authorize the usage of binary substitutes?
<siraben>err it's downloading everything...
<siraben>I thought it did by default?
<siraben>Is it related to when I ran "guix gc" an hour ago
<janneke>guix gc will remove all packages that are not installed in a profile
<siraben>What do I run to check what is installed in my profile?
<janneke>and unless you install guix using an install script, you'll have to authorize binary substitute servers
<janneke>run guix package -I
<siraben>So everything not in guix package -I is deleted when I run guix gc ?
<janneke>siraben: technically, everything not in `guix package -l' for every user that uses guix
<janneke>packages installed in previous generations of a profile are kept too
<siraben>What are these "generations"
<siraben>Snapshots that I can rollback to?
<janneke>yes
<siraben>Now it's recompiling a lot of things
<janneke>yes, if you don't want that, youll have to run something like:
<siraben>So I shouldn't run guix gc in the future?
<janneke>sudo guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub
<janneke>siraben: guix gc is best used wisely ;-)
<siraben>So I did that sudo guix ... and it's still recompiling everything
<siraben>I guess it's fine, since it's for reproducible builds?
<siraben>\\o/ much verbose
<wigust>siraben: No, it means you don't have a substitute server authorized or a substitute server didn't build a thing yet. Also, you don't need to use ‘sudo’ with ‘guix’.
<siraben>How do I get that substitute server to build things?
<siraben>Hmm but I get permission denied because of "/etc/guix/acl"
<wigust>siraben: I suggest you to read a manual, because it contains the information you asking for (except substitutes authorization you don't need root permissions, sorry). https://www.gnu.org/software/guix/manual/html_node/Substitute-Server-Authorization.html
<siraben>Why "guix build" over "guix package -i"
<siraben>The info guix build isn't clear
<siraben>I think it's doing this because I interrupted the last "guix pull"
<wigust>siraben: The manual doesn't compare them, true. But it describes what are they used for.
<wigust>siraben: every ‘guix COMMAND’ described separately.
<siraben>'guix weather' returns 93.3 substitutes avaliable
<siraben>Hmm and yet compiles my packages from source...
<hoplaahei>hi. Is it possible to have encrypted root with unencrypted /boot in guix?
<civodul>hi hoplaahei
<civodul>in principle it should be possible but it's an unusual config
<siraben>How strange?
<siraben>!*
<hoplaahei>civodul: I'm assuming such a config is needed for encrypted root without libreboot?
<civodul>hoplaahei: no, you can have a single encrypted root partition containing everything
<hoplaahei>oh good
<civodul>there's an example config doing that at https://www.gnu.org/software/guix/manual/html_node/Using-the-Configuration-System.html
<siraben>Would there eventually be a GUI for the installation, to make it easier for those that aren't familiar with the command line?
<siraben>Or are there tools in progress that need help?
<siraben>So I have installed libgc, wrote a simple C program with the "#include <gc/gc.h>" at the top, and compiled with "gcc -o test test.c -lgc"
<siraben>But when I run ./test I get "error while loading shared libraries: libgc.so.1: cannot open shared object file: No such file or directory"
<lo_mlatu>OK now I get `modul.h` after updating the version of `linux-libre-headers` to 4.15.13, but still no `platform_device.h`. Has anyone ever developed kernel modules on guixsd?
<hoplaahei>civodul: could I adapt that config to UEFI, or should I use legacy boot?
<civodul>hoplaahei: you can adapt it to UEFI (that's what i have on my laptop)
<civodul>siraben: note that you need to install 'gcc-toolchain', not 'gcc': https://www.gnu.org/software/guix/manual/html_node/Application-Setup.html#The-GCC-toolchain
<hoplaahei>civodul: ok ty for the info
<siraben>civodul: What's the difference?
<civodul>siraben: as the page above explains, 'gcc-toolchain' provides everything you need: gcc, libc, ld-wrapper, etc.
<siraben>civodul: Oh my gosh, thank you so much! I was getting a big headache.
<siraben>civodul: How do you know to install gcc-toolchain instead of gcc?
<siraben>civodul: I can't thank you enough! All my programs are compiling beautifully.
<civodul>yw :-)
<civodul>the manual explains this, but it's a common and easily made mistake
<siraben>civodul: Where in the manual?
<civodul>the URL above
<siraben>Ah section 2.6.6 The GCC toolchain
<siraben>civodul: Where do I get libclang?
<siraben>Nvm it's part of clang
<civodul>ACTION pushed the new 'guix pull' self-build method \\o/
<ngz>Oh. Congratulations... but what is it ? :)
<civodul>ngz: see <https://bugs.gnu.org/27284> :-)
<civodul>if you run "guix pull" you'll see the difference
<ngz>civodul: I'm currently running it.
<ngz>I read the thread first.
<ngz>I get a lot of warnings.
<ngz>I assume this is because I run it for the first time since your commit.
<ngz>Hmm compiling is stalled.
<civodul>ngz: hmm hmm!
<civodul>is it?
<wigust->ACTION pulled successfully
<civodul>pheww
<civodul>the first pull is still quite bad
<civodul>subsequent pulls should be better
<ngz>civodul: I had to ^C. Trying again.
<pkill9>how do I specify an output of a package build in a package definition?
<pkill9>like for example icedtea:jdk
<ngz>civodul: It seems to go better this time. Compiling.
<atw>pkill9: ("glib:bin" ,glib "bin") like that, I think
<pkill9>thanks, that worked
<efraim_>Its really because we don't clear the line before reprinting
<civodul>oh right, we should fix that
<jonsger[m]>it's also switching between loading files and compiling files, civodul is this intended?
<lfam>civodul: With the new `guix pull`, I noticed the user interface "spinner" tends to get mixed up with the textual output, like this: https://paste.debian.net/1019313/
<lfam>It seems to come and go, perhaps caused by peculiarities of tmux.
<wigust->ACTION has the same issue with spinner in tmux
<pkill9>is it possible to use a git source and get all the submodules?
<pkill9>e.g. git clone --recursive
<pkill9>oh sweet you can
<pkill9>ACTION needs to refer to the source code more
<pkill9>how do you get the base32 of a git commit?
<roptat>civodul: guix pull worked fine, but there's no \\n at the end
<dustyweb>hm
<civodul>roptat: hmm right
<civodul>lfam: oh right, i think it's not tmux's fault
<civodul>that's because compute-guix-derivation can end up building stuff due to grafts
<civodul>well ok, the UI sucks
<pkill9>also where do i sphmm the only way i know to get the hash is to put a valid but incorrect one in, then copy the actual one when it fails
<rekado>pkill9: “guix hash -rx .” inside the git checkout.
<pkill9>thansk
<pkill9>thanks*
<rekado>I’m getting some new errors when fetching arbitrary git commits with Guix:
<rekado>“Server does not allow request for unadvertised object <the commit hash>”
<rekado>I wonder if that’s just this repository on Github or if Github changed something.
<rekado>It’s fine when I tag the commit.
<civodul>with what command for instance?
<rekado>This is the repository: https://github.com/rekado/scala-bootstrap.git
<civodul>scala-bootstrap!
<rekado>It’s a package definition that uses git-fetch
<rekado>well, it’s scala archaeology
<civodul>heh
<rekado>trying to get an old scalac to compile, which hopefully can be used to build a later scala compiler.
<civodul>well, the "unadvertised object" thing may be a server-side setting
<rekado>fetching commit “f7a9ccce7d72603cab1a64544fcb08dff575c142”, for example, fails, but after tagging that commit it’s fine.
<rekado>I originally forked this from an archived github repository, but then uploaded this to a new project on github to ensure that the “archived” status of the original repo doesn’t affect this.
<rekado>the old Scala sources look weird. They have .java endings but the code does not seem to be actual Java code.
<civodul>after yale haskell, that's another bit of interesting archeology :-)
<pkill9>how do i move files from {build directory}/bin to {build directory}/lib ?
<pkill9>basically this thing spits all the libs into bin
<pkill9>then 'validate-runpath' phase fails because the binary doesn't find them in 'lib', cos they were alld umped in 'bin'
<pkill9>which is just silly lol
<pkill9>since the developers expect people to just use a 'portable' version so just dump it all into one folder
<pkill9>nevermind, upstream provided a flag to use linux system layout