IRC channel logs

2016-12-10.log

back to list of logs

<ovidnis>i'm trying to use stumpwm as my window manager but doing a system reconfigure i get `no code for module (gnu packages cl-stumpwm)` when cl-stumpwm is in use-package-modules
<ovidnis> http://paste.lisp.org/display/333717
<OrangeShark>ovidnis: stumpwm is in the package (gnu packages lisp)
<OrangeShark>so you should change cl-stumpwm to lisp
<OrangeShark>in the use-package-modules
<ovidnis>and in packages?
<OrangeShark>in packages that is fine
<ovidnis>cool, think its working now. thanks.
<OrangeShark>the use-package-modules is just the name of the module that contains packages
<OrangeShark>ratpoison for example happens to be in its own module
<ovidnis>i see. i wasn't totally aware of modules v packages
<ovidnis>back to the docs
<OrangeShark>modules are just normal guile modules. You can usually find the location of the package by doing `guix package --show=package-name`, it will then show the file location like "gnu/packages/lisp.scm" so it is in the (gnu packages lisp) module
<ZombieChicken>Anyone here using Gnome with a different window manager other than Metacity?
<ZombieChicken>Or know if that is possible?
<ZombieChicken>I /might/ migrate to Gnome if I can use a different window manager with it
<ZombieChicken>so I kind of need to know
<fr33domlover>ZombieChicken, isn't it Mutter now?
<fr33domlover>GNOME's default window manager, I mean
<ovidnis>whys guix system reconfigure getting caught up on permissions?
<ZombieChicken>fr33domlover: I have no clue, tbh. All I know is that I don't like floating window managers and I'm reasonably sure that Gnome's default WM isn't a tiling manager
<lfam>ovidnis: `guix system reconfigure` must be run with root privileges
<sneek>lfam, you have 1 message.
<sneek>lfam, albertoefg says: that albertoefg wants revenge
<lfam>ovidnis: Unprivileged users can build everything that goes into reconfigure with `guix system build`, but to actually reconfigure the system, you need root
<fr33domlover>ZombieChicken, which parts of GNOME do you want then?
<lfam>I don't have a GNOME system, so I can't try this out now, but I do think you can select a different window manager in GNOME.
<ZombieChicken>fr33domlover: I havn't used Gnome in years, so I was thinking of just grabbing the whole thing, but I know I'm going to want to use a seperate window manager that fits my needs more than a floating WM
<ovidnis>but if i sudo guix system reconfigure it says cl-stupmwm is an unbound variable :(
<ZombieChicken>shouldn't that be cl-stumpwm?
<ZombieChicken>i think you transposed two characters there
<davexunit>ovidnis: you need to import the module that exports that variable
<ovidnis>ZombieChicken: yeah that's what i mean. davexunit: i'm using the lisp module
***Piece_Maker is now known as Acou_Bass
<ZombieChicken>Anyone here tried setting up a RAID array using UUIDs?
<ZombieChicken>actually, does anyone know what the UUID_SUB field is when running blkid over a RAID member?
***reepca` is now known as reepca
<reepca>fun fact: if you're using erc in emacs and it disconnects and tries to reconnect and you don't notice it's trying to reconnect and manually run erc again, everything goes to pot.
<lfam>That's explains it ;)
<alezost>sneek: later tell ovidnis re "but if i sudo guix system reconfigure it says cl-stupmwm is an unbound variable". I think the problem is that you have never run "guix pull" as root, so your user has access to the latest "guix pull"-ed modules (including "cl-stupmwm" package), and your root user does not
<sneek>alezost, you have 1 message.
<sneek>alezost, civodul says: we could have 'guix publish' publish a locally-build database, or answer specific HTTP requests
<sneek>Will do.
<Petter>How can I loop through (inputs) getting both key and value?
<Petter>Think i got it.
<jmd>By Jove I think he's got it!
<Petter>I didn't get it :(
<cbaines>Petter, is this the inputs for a package?
<dvc>how do I get a 32bit glibc without building an entire cross toolchain?
<dvc>I thought it would be nice to bootstrap rust from i686 binaries, that way we only need one set of bootstrap binaries for intel
<Petter>cbaines: I'm trying to make a build system for Go.
<Petter>cbaines: And I'd like to loop through the (inputs) specified in the recipes.
<Petter>I tried this:
<Petter>(for-each (lambda (input)
<Petter> (display (string-append (car input) ": " (cdr input) "\\n")))
<Petter> inputs)
<cbaines>What did that give you?
<dvc>going afk for a while, incase someone finds/knows a solution...
<Petter>cbaines: Eh, now it appears to print what I expect. It didn't before. I must have done something correct by accident in the meantime :)
<cbaines>I've just been looking, and there is some documentation on what is in inputs here https://www.gnu.org/software/guix/manual/guix.html#package-Reference
<cbaines>each "input" is a list (not a pair)
<cbaines>as there can be a third element, which denotes the output to use
<Petter>Oh.
<Petter>Do you know how I can get the first two elements?
<cbaines>There are many ways
<cbaines>(car inputs) (car (cdr inputs)) will work
<Petter>Ah, yes. I'll try that.
<cbaines>the last expression can be shortened to (cadr inputs)
<cbaines>You can also use (first inputs) (second inputs)
<cbaines>That requires the (srfi srfi-1) module
<Petter>Would this be without the (lambda (input)) ?
<cbaines>No, first and second are just functions like car and cdr
<Petter>Shouldn't there be "input" rather than "inputs"?
<cbaines>Ah, yeah, so (first input) and (second input)
<Petter>Great, thanks! I'll see if I can hide some symlinking from the recipes now :)
<cbaines>No problem :)
<Petter>I get "ERROR: In procedure cadr: Wrong type (expecting pair):" when using (first input) and (second input).
<cbaines>After "Wrong type (expecting pair)" it should show you what it tried to run cadr on
<Petter>Yes, it's on the first of the (inputs). But I only get it with this code enabled.
<cbaines>I don't really follow, as far as I know, inputs should be a list of lists, where the inner lists have either 2 or 3 elements, so providing that is true, then getting the first and second elements of the inner lists should work
<Acou_Bass>quick query - is there a way to use distcc in guixSD for building packages? assuming ive got distcc setup on my main PC running arch, can i easily hook guix up with it to build stuff on my POS laptop quicker?
<cbaines>Acou_Bass, have you heard of build offloading in Guix?
<Acou_Bass>i suppose not :P ill have a look into it. does that involve using guix on all the machines though or does it just use distcc?
<cbaines>Yes, build offloading requires Guix on the machines that you offload to
<cbaines>I'm unsure how tools like distcc would work in the isolated build environments that Guix uses
<cbaines>build offloading has the advantage that its configurable, and usable pretty much everything (not just C/C++)
<Acou_Bass>ahh cool
<Acou_Bass>i might do that then :D setup guix on top of arch and use it for build offloading! thanks for the hint ill have a closer look into it :)
<cbaines>I've had success offloading from my GuixSD box, to a Debian box running Guix
<Acou_Bass>my laptop is single-core and an absolute shed, so some packages take an eternity to build so yeah
<cbaines>It should be easier now as well, as I believe that Guile SSH is the thing being used, rather than lsh, which was a bit trickey
<cbaines>Sounds like it would be great to offload builds
<Acou_Bass>yeah when both machines were running arch i would just distcc it
<Acou_Bass>comes in quite handy
<cbaines>you may even find that by just offloading the build, your laptop is able to use substitutes from your arch box, so you can only compile things once
<cbaines>I'm really guessing about this though
<Acou_Bass>ahh, so use the arch box almost as a secondary Hydra server, so it pulls binaries from it?
<cbaines>From reading the docs, I think that is involved in the setup, as you have to tell your laptop that it trusts the binaries from your arch box
<cbaines>I'm assuming that if it goes to offload something, and finds the binary already there, it will just use it
<Acou_Bass>probably wont do that too often because i never actually use guix on my arch desktop so the chances of it having substitutes on it is minimal :P
<cbaines>it might not though
<cbaines>I'm sure Guix will continue to spread through your machines :P
<Acou_Bass>if i wasnt so lazy to be bothered making .scm's for all the proprietary crap i use it definitely would! i ran NixOS on all my machines for a while so i do like the concept
<cbaines>Out of interest, what kind of propietary crap are you stuck with?
<cbaines>I find it hard enough to make packages for some free software projects
<cbaines>phantomjs was the last one I pushed through, and that was just making a package for a binary release
<Acou_Bass>skype is the main one... a couple of games, steam controller GUI thingy (which isnt actually proprietary but again thats just my laziness) :D
<Acou_Bass>i made a nixpkg for one nonfree game i play so i suppose i could just redo it in scheme seeing as i already know whats needed for it to work
<cbaines>luckilly, I've got by without using skype at all so far
<Acou_Bass>-_- some people are just addicted to it... ive shown them every free (or even slightly-less-nonfree) alternative but its always 'oh its missing this miniscule little feature that ive never used but now want'
<Acou_Bass>one such feature is how it puts your webcam view 'on top' of other windows, which of course every DE/WM outside of MS windows can do just by right clicking the bar and clicking 'keep on top' but no other program seems to be able to do on windows :p
<Petter>Weird. I can loop through the (inputs) specified in a recipe, but only if none of the phases return false.
***keifer_ is now known as keifer
<Petter>How do I 'continue' in a for-each loop? Or is that not idiomatic?
<cbaines>The only way to continue would be to simply do nothing
<Petter>I mean continue as in go to next entry in list.
<cbaines>Doing nothing would work in this case, consider: (for-each (lambda (x) (if (> x 4) (display x))) '(1 2 5 10))
<cbaines>In Python say, you might write that with a for loop and continue
<Petter>Aha.
<Petter>This gives me a Syntax error: (if (string=? imppath "go"))
<Petter>But with a body to it it flies.
<cbaines>You need at least one more thing in the if (if (string=? imppath "go") ...)
<cbaines> https://www.gnu.org/software/guile/manual/html_node/Conditionals.html
<Petter>I don't get it, I don't have anything to add to it.
<Petter>This is what I have, http://sprunge.us/RVPM
<Petter>And if imppath is "go" or "source" I want to abort.
<cbaines>Try to flip your thinking
<mekeor>Petter: do you want to invoke the display function if impath equals "go"?
<cbaines>instead of trying to abort, just make what you want to do conditional
<mekeor>Petter: ... if so, the parenthesis are wrong
<Petter>mekeor: No, if it equals "go" I want to continue with the next entry in the list.
<cbaines>maybe (if (not (string=? imppath "go")) (display "after"))
<Petter>cbaines: Aha.
<mekeor>Petter: http://sprunge.us/GNOi
<Petter>And for two tests? I want to exclude "go" and "source".
<cbaines>Use the and function
<mekeor>(nevermind me)
<cbaines>So, maybe, (if (and (not (string=? imppath "go")) (not (string=? immpath "source"))) (display "after"))
<cbaines>There is also string<> which I think would work like (not (string=? ...))
<cbaines>which might make your code more consise
<Petter>Great, after getting the parentheses right it works :) Thanks!
<cbaines>No problem, glad I could help
<Petter>I'm not familiar with string<>.
<Petter>The code quality in this build system is going to pretty low, so someone will have to give it a makeover later. Now, I just want it to work and get the recipes as nice as I can.
<ovidnis>what's wrong with this? http://paste.lisp.org/display/333717#1
<sneek>ovidnis, you have 1 message.
<sneek>ovidnis, alezost says: re "but if i sudo guix system reconfigure it says cl-stupmwm is an unbound variable". I think the problem is that you have never run "guix pull" as root, so your user has access to the latest "guix pull"-ed modules (including "cl-stupmwm" package), and your root user does not
<ovidnis>oh
<alezost>ovidnis: yeah, so try "guix pull" as root, and then "guix system reconfigure" (as root) again
<ovidnis>i probably should have guessed that
<atw>alezost: is this the whole "window managers must be installed as root" thing?
<alezost>atw: I'm not sure what you mean, I said that "guix system reconfigure" should be run as root
<alezost>I think generally it doesn't matter how you install a window manager; for example I don't install my WM (stumpwm) at all (I build and use it directly from source)
<alezost>but if you use a Display Manager, then you probably need to install wm into a system profile, so that the DM could find your WM
<jmi2k>Do Guix has something like optional dependencies? I'm curious to know if it's something that can be done.
<jmd>jmi2k: I don't think so. How can a dependency be optional? Either something is dependent or it is not.
<atw>alezost: yes. I use slim, so WMs have to be installed as root
<atw>a display manager that let you log in as a user, and _then_ select a WM that that user has installed would be pretty cool
<jmi2k>Like in Arch Linux, where you can install, for example, create_ap, but you have haveged as an optional dependency that can be used if installed.
<cbaines>jmi2k, I think the equivilent of an optional dependency would be a package without the dependency, and a package with the dependency
<jmd>I'm not familiar with Arch linux.
<jmi2k>jmd: I used it for two years, and it was a pretty convenient feature. For example: I had neovim with the python-neovim optional dependency to allow certain extensions.
<jmi2k>cbaines: I can work for certain packages, but if you have more than one optional dependency, package definitions can get a bit redundant.
<jmi2k>At the moment it isn't vital for me, I'm happy with Guix as is, but I wanted to know if there was something similar.
<cbaines>If the optional dependency is just at runtime, then effectively what is missing/different is documentation
<cbaines>If its needed at package build time (and maybe at runtime as well) then the package definition needs to change
<cbaines>I'm quite used to the Debian model for this, as there is Recommends, Suggests, Enhances, and a few other relationships as well
<cbaines>The main advantage of this is that for end users, the contributors to the distribution can take care of working out all the details, so every user doesn't have to know that python-neovim extends neovim, as its recorded somewhere
<cbaines>At the moment, it could go in the description, but maybe in the future it would be good to have some structured data in the package definition, and that could then be used by scripts that install packages
<jmi2k>Sounds good. I never used Debian seriously (I switched from Ubuntu-like distros to Arch Linux, I only used Raspbian briefly), but it seems like a nice way of organizing dependencies.
<efraim>openjpeg-CVE-2015-6581.patch this file seems unused
<ZombieChicken>Holy cow. Note to self; don't install a full desktop profile when trying to test something out. It isn't worth it...
<Apteryx>Hmm... My git tree got corrupted somehow, and I'm using it directly to run Guix. Any recommendations to get it re-cloned without screwing Guix?
<Petter>Have you considered downloading it again in a new dir, and update the symlinks?
<Apteryx>Petter: That sounds like a safe approach.
<Apteryx>I'm toying with git to see if I can fix it, but this seems like the best option failing that.
<Apteryx>My exact git error is: fatal: loose object bbae1510169ceb4e6e1d653928b6bd8781c9575a (stored in .git/objects/bb/ae1510169ceb4e6e1d653928b6bd8781c9575a) is corrupt
<Apteryx>Since it's a loose object, I wonder if I could just delete it.
<Petter>Maybe ask #git.
<Apteryx>Right. Thanks :)
<Petter>:)
<Apteryx>So I just deleted that loose, corrupted object and everything is fine now.
<Petter>Ok, good to know.
<Apteryx>Yeah! I read somewhere that Magit sometimes lead to corruption of git repos; not sure if this is still the case but I do use Magit.
<Apteryx>Won't stop me from using though; it's a fabulous tool.
<Petter>Even the sun has spots.
<Apteryx>Good one :)
<Petter>;)
<Apteryx>Is the Guix coding style different from the default way Emacs/paredit handles Lisp?
<Apteryx>It seems the guix lint tool doesn't want me to use "tabs", yet Emacs lisp mode/paredit seems to do.
<ovidnis>i've got ratpoison and sbcl-stupmwm in `packages' and their respective modules included, but when i'm logging in only ratpoison is a choice
<quiliro>hello
<quiliro>still can't make epiphany play youtube
***Gottox_ is now known as Gottox
***jmi2k_ is now known as jmi2k
<jmi2k>Is there a way of building a package on one machine, and use it on another? I'm thinking on copy-pasting the package folder. Any better idea?
<ovidnis>and if i declare sbcl-stumpwm as the only option then guix defaults to window maker
<cbaines>jmi2k, yep :D
<cbaines> https://www.gnu.org/software/guix/manual/html_node/Daemon-Offload-Setup.html
<cbaines>Using the guix archive command is the "proper" copy/paste way https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-archive.html#Invoking-guix-archive
<jmi2k>Great
<alezost>Apteryx: yes, we don't like tabs; check 'indent-tabs-mode' variable. BTW this variable is set by Guix's ".dir-locals.el" file, so if you edit some package module in a guix source tree, tabulation should be disabled (unless you disable dir-locals or alike in you emacs config)
<alezost>ovidnis: is "stumpwm" binary available? maybe you have the same problem as <http://lists.gnu.org/archive/html/help-guix/2016-11/msg00050.html>
<ovidnis>looks like i didn't
<ovidnis>err, stumpwm bin wasn't available
<ovidnis>i mean
<ovidnis>didn't have the sbcl-stumpwm-0.9.9-bin so i installed it and reconfig'd but still no stupmwm :(
<paroneayea>hello #guix friends
<janneke>hi paroneayea!
<cbaines>Hey :)
<jmi2k>Hi :D !
<paroneayea>hey janneke, cbaines, jmi2k!
<paroneayea>and everyone :)
<paroneayea>I was like "arg, I'm playing with guile-2.2 now and I bet irregex isn't packaged for it yet in guix"
<paroneayea>but it is!
<paroneayea>so nice to see that guix is ahead of the game in providing the guile-2.2 packages for things
<ZombieChicken>Can grub handle UUIDs? I'm trying to setup a VM to test RAID+LUKS with a seperate drive for /boot, yet it seems like the configuration doesn't like using a UUID for the ...(grub-configuration (device (uuid "xxxx-xxxx-xxxx-xxxxxxxxxxxx")))
<paroneayea>grub can handle uuids, though I don't know about the grub-configuration part of guix
<ZombieChicken>Yeah. I though I had this working last night but today it just seems to refuse to work
<civodul>ZombieChicken: i don't think you can give a uuid in 'grub-configuration', see https://www.gnu.org/software/guix/manual/html_node/GRUB-Configuration.html
<civodul>(and it would have to be a GPT UUID, not a file system UUID)
<Apteryx>How can I purge older system generations created using "guix system reconfigure" ?
<jmi2k>ZombieChicken: If you're interested, days ago I wrote a simple function to obtain a block device path given the path of one of its filesystems. I use it in my portable Guix installation, where that path changes depending on the computer I'm using.
<cbaines>Apteryx, guix gc is probably the way, I think you need to remove a symlink somewhere though
<cbaines>so that guix gc doesn't think that you still want it
<Apteryx>cbaines: I was looking for something equivalent to guix package --delete-generations
<Apteryx>But for "guix system"
<Apteryx>In the manual, it says "guix gc" will be able to remove more things if we delete the unnecessary generations which hold pointers to store items.
<cbaines>I would guess that a easy command hasn't been added yet
<civodul>exactly :-)
<civodul>Apteryx: currently you have to "sudo rm /var/guix/profiles/system-210-link" or similar
<civodul>there's no risk, as long as this is not the current generation
<ZombieChicken>civodul: I'm passing the partition UUID (actually, the drive UUID) to grub-configuration.
<ZombieChicken>at least I hope it's the drive UUID
<civodul>ZombieChicken: but drives (not partitions) don't have UUIDs, unless you're using GPT
<ZombieChicken>Well, it's what I got from running blkid over /dev/sdb
<civodul>uh?
<civodul>that doesn't work, does it?
<ZombieChicken>It does
<Apteryx>cbaines, civodul, I see!
<civodul>so is that the GPT UUID?
<ZombieChicken>I'd assume so?
<civodul>interesting
<civodul>and does 'grub-install' know what to do with that?
<ZombieChicken>I did run mkfs over /dev/sdb, so it might be the fs UUID
<civodul>oh?
<civodul>so there's no partition table?
<ZombieChicken>civodul: Well, once this install is done I'll know if it can boot w/o the install image
<ZombieChicken>No partition table
<civodul>that cannot work then, i would guess
<civodul>well you'll tell us :-)
<ZombieChicken>What I'm doing is trying to simulate my desktop, which is full disk encryption ontop of a RAID5 of 3 disk with an external /boot paritition on what is supposed to be a USB thumb drive
<civodul>ok
<ZombieChicken>so far I've managed to get guix system init to run, and once it's done I'll see if it boots and if it doesn't I get to figure out why not
<ZombieChicken>but I'm suprised grub-configuration doesn't handle UUIDs. I'm wondering why that specific (device) call isn't using the same code as everything else
<jmi2k>ZombieChicken: what about passing "/dev/disk/by-uuid/..." as device?
<ZombieChicken>I seem to recall that that is a bad idea, but I might look at it later if this doesn't work properly
<Apteryx>I've got this: killing process 16492
<Apteryx>killing process 16492: No such process