<yenda>this is so wierd, emacs can find ubuntu-font but not DejaVu under i3 <yenda>I even tried installing fontconfig <yenda>+ DejaVu within my profile and in the sytem packages <yenda>i3 uses it fine via pango but emacs cannot find it <yenda>ACTION thinks he's going to settle for ubuntu <amz3>paroneayea: seems like rekado_ 's haunt setup will be big! <sbidin>how can I see exactly what is contained within %base-packages? <dmarinoj>is "guix pull" recommended before every "guix system reconfigure"? <yenda>I've been trying to change the fonts for 2 hours :'( <yenda>sorry about guix pull I don't know, I use the source and git pull && make directly <yenda>does it make sense to declare packages for user in config.scm ? <davexunit>I don't want to reconfigure the system when I want to update my profile <yenda>but there is stuff like fonts and emacs and few programs that I absolutely want anyway <davexunit>I thought you were talking about specifying individual user profiles <yenda>well what I also had in mine was to have a config that kindof replace a set of dotfiles on steroids <yenda>you have something similar to config.scm <davexunit>you can manage the user profile by creating a "manifest" file with all of the packages <yenda>^ this I have to look at ~ Yoda <davexunit>for dotfiles, I don't use guix but rather a small Guile script that symlinks the files to my home directory from a git repo <yenda>do you have a link to this guile script ? <lfam>Is there a step-by-step for creating a new package and building it? I've tried Andreas Enge's slides from GNU Hackers Meeting 2013 but I think they might be out of date. Or I am misinterpreting them. <lfam>For example, there is Makefile rule to make "sync-synopses" but there is a rule to make "sync-descriptions" <lfam>I meant to say "there is no Makefile rule to make "sync-synopses"" <davexunit>lfam: those tasks are for GNU projects, IIRC. are you a GNU maintainer? <lfam>Ah. No, I am not a GNU maintainer. I am trying to package syncthing ( https://syncthing.net/ ). I have a package definition written and I'd like to test it. <yenda>look in guix/gnu/packages for exemples lfam <davexunit>alright, do you have a working guix development environment? <lfam>I have a working guix installed via binary on Debian stretch <davexunit>(we can test the package without this, but for upstreaming purposes we'll need it) <lfam>I couldn't successfully build guix from source although I want to nail that down, too <davexunit>now that you have guix installed, you can easily get a guix dev env <davexunit>clone the git repo, cd to it, and run 'guix environment guix' and guix will fetch everything needed to build <davexunit>but you can test your package without this for now. <lfam>So, I could bootstrap the source installation of guix with the tools from the binary installation? <lfam>I will do that soon, thanks! <davexunit>for now, you can set GUIX_PACKAGE_PATH to point to the directory with your syncthing package file <davexunit>this file must be defined as a Guile module. are you familiar with Guile's define-module syntax? <lfam>I rewrote another package definition to make the syncthing recipe. I think I get it although I am a complete scheme noob. <davexunit>and though we have someone working on a go compiler package, we don't yet have one ready for you to use. <lfam>Ah, I was hoping that gccgo would suffice. Unfortunately, I know as much about the go world as I do scheme. <lfam>Well, the real reason I am trying to package syncthing is that I'd like to dive into scheme through guix, but I really like syncthing. I doubt I'll be the one to bring go to guix. <lfam>Once I find something else to package, what step would come after defining GUIX_PACKAGE_PATH to point at my_new_package.scm? <davexunit>lfam: run 'guix build foo' where 'foo' is the package name <davexunit>if your guile module is defined properly, with the correct module dependencies, and the package recipe syntax is correct, guix will attempt to build it <lfam>Thanks for your help! I will find something with simpler dependencies and try my hand at that. <davexunit>good luck. feel free to ask questions as you go. there's usually someone around that is willing to help, but some times are more popular than others. <rekado->boegel: I've never been to FOSDEM and I rarely go to conferences unless I give a talk. <amz3>rekado-: is your blog already using haunt? <osmano807>I'm having all kinds of trouble with GuixSD :/ <osmano807>guix system reconfigure generates an empty boot script and the system just keep rebooting itself <davexunit>osmano807: which version? could you write to bug-guix@gnu.org and include the guix version and your OS config file? <osmano807>davexunit: I just did an guix pull yesterday <davexunit>osmano807: you've been able to boot a previous working config at least, right? <davexunit>running 'guix system build' instead of 'guix system reconfigure' will return the output directory of the new system config, and you can inspect that before rebooting. <osmano807>davexunit: argh, the same console-keymap-service thing. If I enable it, all kind of things happen. Before was an empty grub.cfg, now an empty boot script <osmano807>davexunit: I was able to boot only the initial system configuration since install, when all files generate 'correctly', the boot is stuck after starting dmd <davexunit>does it work fine without console-keymap-service? <davexunit>I haven't noticed this on my guixsd systems. <osmano807>I'm beginning to think that virtualbox is doing something <yenda>By the way if someone is willing to help getting the java platform to work properly (aka add certificates for java) I'm here to work on that <taylanub>ACTION wonders if Rust can bootstrap from C or whether it's another self-hosting-only compiler <taylanub>ugh, what do I do upon "configure: error: Option 'CONFIG_SHELL=.../bin/bash' is not recognized" again? I wish everyone just used Autotools. <davexunit>I don't remember. maybe replace the configure phase? <taylanub>hmm, also before erroring out it reports a bunch of CGF_BLAH variables whose values are outside /gnu/store. *sigh* <yenda>^ taylanub maybe something like that ? <taylanub>nope, probably have to change the configure phase because their configure script doesn't conform to Autotools-generated configure script conventions <davexunit>everyone thinks they can write a better build system that the autotools <yenda>taylanub: rewrite the build with autotools and pull request them <yenda>oh you are installing in virtualbox ? <osmano807>yenda: I'm trying to get an usable system (packages, etc) before getting rid of Windows on this machine <yenda>I still have all these unicode fails on icecat <yenda>but it was even before I tried to change the font <yenda>just installed the font in my profile and restarted emacs :/ <yenda>I guess I was trying too hard <mark_weaver>so, I found in the past, when I ran ratpoison, that I had to run 'fc-cache -f' after installing new fonts before some things could see them. <mark_weaver>the reason is that fontconfig has some automatic machinery to detect when its font cache is stale, but that depends on the fonts having modification times (like make does), but in Guix everything in /gnu/store, including fonts and user profiles, have timestamps at 1970. <yenda>mark_weaver: indeed, I restarted the computer as well I guess it had the same effect <mark_weaver>but yeah, many programs probably only check for fonts at startup. <yenda>do you think we could fix the font packages by adding a call to fc-cache or changing the files timestamp ? <mark_weaver>the timestamps have to be deterministic and fixed, for reproducability. <yenda>right, and the call to fc-cache ? <mark_weaver>as for post-install hooks, we don't have anything like that <mark_weaver>I actually think the proper way would be to move the font cache into the profile, and then generate the font cache as part of profile generation <yenda>mark_weaver: btw I added the ubuntu and inconsolata fonts should I send a patch ? <yenda>I'm just trying to set up gnus as mail client first <yenda>because my webmail is broken <yenda>I'll submit patches for i3 too <mark_weaver>according to wikipedia, the license is rejected by Debian and OSI. <yenda>I put non-copyleft and linked to their license.txt <mark_weaver>but that doesn't necessarily mean that we can't use it <mark_weaver>Debian is more restrictive than we are when it comes to non-functional works like fonts or images. <yenda>inconsolata is silofl1.1 I guess <yenda>there is no license or any kind of package it's just an otf file <mark_weaver>according to Wikipedia, the license is not "FSF approved" either, but they say that because it's not a free software license, but that's not the standard we need to meet here. <yenda>but the official page says It will be released under the new Open Font License of SIL <taylanub>maybe I'm doing something wrong, but it looks like Rust's configure system misdetects my CPU architecture :\\ <mark_weaver>taylanub: we shouldn't be relying on auto-detection anyway. <mark_weaver>we now pass --build=<triplet> to configure scripts by default <mark_weaver>if that doesn't work for the package in question, then you should probably do the equivalent. <taylanub>oh, ok. can I get the correct triplet from guix? <taylanub>yeah, I need to override the configure phase because this configure script doesn't work with the default one <mark_weaver>the triplet is passed as the 'build' keyword argument to all phases, so something like (lambda* (#:keys build #:allow-other-keys) ...) <yenda>how do you indent .scm files ? <yenda>indent regions mess up the traditional alignment I see in argument section <mark_weaver>I hacked emacs to handle the keywords better, and some of us are using that hack. <yenda>is the hack available somewhere ? <mark_weaver>actually, that copy of the code is for an older version of emacs. <mark_weaver>but there's a comment in there "This next cond clause is the only change -mhw" <mark_weaver>and so the thing to do is to find the source for 'scheme-indent-function' in emacs (using C-h f) <yenda>doesn't it work to just redefine it in the init file ? <mark_weaver>you don't have to restart emacs, just C-x C-e with point just past the final right paren of the new function. <osmano807>anyone have a clue why the booting is stuck after "waiting for udevd..." and "Service udev has been started"? <davexunit>osmano807: are you sure it's stuck? can you change to another tty and login? <mark_weaver>osmano807: I don't know, but I was thinking about the "empty grub.cfg" thing, and I wonder if something in /gnu/store got modified or corrupted somehow. <mark_weaver>osmano807: Guix depends on /gnu/store never changing <davexunit>now if only I can get modify-phases syntax to indent properly <mark_weaver>if it wants something that was already generated/compiled in the past, it just uses it from /gnu/store <mark_weaver>however, if something in there got corrupted, that would be bad. <mark_weaver>because it would continue trying to use that corrupted thing <davexunit>osmano807: do you see any text about services failing to start <mark_weaver>unfortunately, I believe that ext4 filesystems sometimes leave empty files if there is a crash at the wrong time. <davexunit>our default services list has a bunch mingetty instances <mark_weaver>I've heard reports, and I've experienced it at least once myself. <osmano807>mark_weaver: could be it. I've been bitten by this on Android <osmano807>I could reinstall, but it would take a few hours. <mark_weaver>well, that's an understatement; the problems you're having have never been reported before by anyone <osmano807>mark_weaver: any suggestions to use instead of ext4? <mark_weaver>hmm, well, I've been using ext4, and I think that's what almost all of us are using currently <yenda>me too on 3 machines and 7 harddrives <mark_weaver>I think there's a mount option that would prevent this issue, at the cost of reduced performance <mark_weaver>I've found it to be extremely rare, to the point where I'm willing to cope with it when it happens. <mark_weaver>but if it happened so soon after freshly installing Guix, I'd probably just reinstall. <mark_weaver>if it happened now, I'd work to identify and fix the damage <mark_weaver>well, I think that's probably false, but I'd have to check <mark_weaver>we certainly support ext3, and I vaguely recall that ext3 might not have this particular issue (although I'm not sure) <guixnewbie>I did a guix pull, which compiled the newest guix and updated the list of available packages (?). Then I did a guix gc, which removed some stuff. <guixnewbie>Then I found out I didn't have access to uname and grep. <guixnewbie>Now guix has decided to update my entire system? It's currently downloading ghc, which is a hefty 100 MB. <guixnewbie>(I had ghc before, but I do not understand why it has to download it again when I didn't ask it to.) <guixnewbie>I also actually had grep before, but I suppose doing a guix package -i grep made it go and download the newest grep instead. <mark_weaver>guixnewbie: if you have any ghc packages installed, then it needs a new 'ghc' to generate the ghc library cache (or something like that) <mark_weaver>the only thing changed in your profile will be 'grep', but some other things will be downloaded and put in /gnu/store <guixnewbie>So I should have two copies of the same ghc now? <yenda>there should be a warning on guix website "don't install this software if you live in Belgium" (might be in others country as well but it's the one I know for sure has ridiculous download quotas) <yenda>this ghc thing seems pretty inneficient is it something we can fix or it is normal ? <guixnewbie>Yes, it appears I have two ghcs now. :) And I guess one isn't just symlinked to the other -- they're copies, even though the versions are the same (7.8.4). <guixnewbie>Will doing guix gc again remove one of them? That's my intuition at the moment. <yenda>probably one has the library cache and the other one doesn't ? <guixnewbie>I don't think I downloaded anything that has to do with haskell aside from ghc. It pulled some libraries on its own then? <guixnewbie>It still feels strange to me that wanting to install just grep would force this ghc download and update. Does it depend on grep, which I updated, so that's why? <guixnewbie>Or am I wrong, since that should only entail having two greps at once, only one of which is ghc's dependency? <mark_weaver>if you don't want two greps, then don't upgrade part of your system without upgrading all of it. <guixnewbie>Ah, I see. How can I upgrade all at once though? <mark_weaver>"guix package -u" to upgrade everything in your user profile, and "guix system reconfigure <config>" to upgrade your base system. <guixnewbie>So this is actually a feature. Upgrading only part of the system would sometimes break it if I were on something like Arch (using pacman). <mark_weaver>guixnewbie: if it downloaded ghc when you made a modification to your profile, then you probably still have something ghc-related in your profile. <mark_weaver>what matters, for purposes of profile-creation, is what is in the profile. <mark_weaver>it triggers if there is any package in your profile whose name begins with "ghc" <mark_weaver>(and yes, that's a bit hacky; we need a better way to determine whether a package provides a ghc library) <guixnewbie>Ah, so having ghc itself as part of my profile is enough. That's why then. I had ghc in my profile. <mark_weaver>in that case, it uses the latest version of 'ghc' to build a new ghc package cache for the set of ghc packages in your profile. <mark_weaver>however, the version of ghc in your profile will not be changed until you ask to change it. <guixnewbie>A question: does the /gnu/store hash coming before -profile always match my username? <mark_weaver>btw, to be clear, the reason that there are two ghc's with the same version number is because someone else that they depend on, or were built with, changed, so they are different builds. <mark_weaver>all of that information about what the package depends on, and the build tools used to build it, etc -- all of the things that might affect the built package, are hashed, and that's the hash you see in the /gnu/store/XXXX filename. <yenda>talking about newbie problems the clock is 2 hours early on this machine but not on the other one, even though the timezone is the same <mark_weaver>guixnewbie: every time you build a profile that's not identical to one you've built before, it will have a different hash. <mark_weaver>yenda: does the output of "date -u" match current UTC? <guixnewbie>mark_weaver: Ah, I see. So, how can I set zsh as my shell, when the path within /etc/passwd will change on each upgrade? <guixnewbie>I had hardcoded the path and then, of course, it broke when I upgraded. <mark_weaver>'guix gc' will remove anything in the store that is not referenced from the places that it knows to look. <mark_weaver>it knows to look in user profiles, system profiles, and everything that is reachable from those. <yenda>mark_weaver: invalid time specification <mark_weaver>but if you just link to something in /gnu/store from some other place, it won't necessarily be protected from GC. <mark_weaver>what are the values of your TZ and TZDATA environment variables? <mark_weaver>yenda: what about "/run/current-system/profile/bin/date -u" ? <guixnewbie>Unrelated to yenda's issue: I logged out of xfce and tty7 is now dead (blank, with blinking console cursor at top-left). <guixnewbie>Usually the login service would be displayed there now. <alezost>ha-ha! I've tried "date -u" in shell – OK; then in eshell – "Invalid time specification". <alezost>"which date" in eshell says "eshell/date is an alias for `current-time-string' in `em-unix.el'" <mark_weaver>ACTION searched for that string in the coreutils and glibc sources, and failed to find it. <mark_weaver>guixnewbie: can you log into a text console and type "deco status xorg-server" ? <mark_weaver>it might be related to you updating your system profile (using "guix reconfigure"). maybe a reboot is needed now (and yes, that's lame, but our init daemon that manages services needs more work) <guixnewbie>mark_weaver: Yes, I did a reboot and things work now. <guixnewbie>mark_weaver: I'll keep that in mind for next time, however. I suppose just restarting xorg if it had died could have been enough to fix the issue. <mark_weaver>guixnewbie: yeah, "deco restart xorg-server" might have worked. <mark_weaver>actually, the fact that ghc and grep needed to be upgraded before leads me to believe that your system was at least a few weeks out of date. <mark_weaver>our grep doesn't change very often, only when we do a "core-updates" cycle. <guixnewbie>mark_weaver: I only just installed guixsd ~3 days ago, so I don't know about that. However, now was the first time I ever did a guix pull. <mark_weaver>if you don't run 'guix pull', then after installation you are getting the versions of all packages as they were when that installer was released. <guixnewbie>Ahh, so that's what happened then. I guess it's time for a guix package -u. :) Or, actually, a system reconfigure... <yenda>mark_weaver: guilty, I'm making eshell my shell, not aware of limitations <boegel>rekado-: we're planning on organising an EasyBuild User Meeting in Ghent the days before FOSDEM'16, I'd love to get a Guix expert to join us there for a talk and maybe some hands-on work on integrating Guix and EasyBuild <boegel>rekado-: we're also going to submit a proposal for another HPC devroom at FOSDEM, a talk on the topic of your paper (Guix in HPC environment) would be fantastic (if our devroom makes the cut) <pizzaiolo>Hey mark_weaver, are there torrents for guixSD? <mark_weaver>perhaps, although when we move to ftp.gnu.org we will get mirrored by all the GNU mirrors <mark_weaver>I'm not sure there are enough Guix users yet for torrents to be very helpful here. <mark_weaver>I don't expect that there would be very many people actively seeding our USB installer at any given time. <yenda>mark_weaver: do you know why date -u has the time right but not the desktop clock ? (same on i3 and xfce) <osmano807>pizzaiolo: wasn't there once an GSoC project to use GNUnet for package distribution? <yenda>mark_weaver: Sat Aug 15 18:10:28 UTC 2015 <mark_weaver>so, your hardware clock must be set to your local time instead of UTC. <yenda>it looks like it's stucked at 15 Aug 18:16:38 ntpd[7316]: Listening on routing socket on fd #22 for interface updates <guixnewbie>instead, run: ntpd -qg -c /gnu/store/path-to-ntpd.conf <mark_weaver>guixnewbie: or you can just run "date MMDDhhmm.ss" e.g. "date 08151821.50" or whatever is the current local time there <mark_weaver>well, if you get it close, then if there's an ntp daemon running it should fix up the rest. <mark_weaver>and we provide an ntp-service which yenda may or may not have installed. <osmano807>guixnewbie, mark_weaver: I think the package still has ntpdate <mark_weaver>I think the ntp daemon is reluctant to change the date by a huge amount though, and especially moving the clock backwards can be problematic for some software <mark_weaver>e.g. if you are running a build at that time, it can really confuse 'make'. <taylanub>"you'd need to grab an early version of rustc which wasn't written in Rust, then compile each snapshot version until you're up to date" putting this off for now, to be done One Day :\\ <davexunit>did you suggest to the rust folks that maybe that's an awful idea? <mark_weaver>it's natural for language designers to want to write their compiler in their new language <mark_weaver>I don't think we'll be able to convince them otherwise. <mark_weaver>but I have a few ideas for how to avoid having to trust every new pre-compiled binary that a project releases, which I expressed in an email on guix-devel at one point. <mark_weaver>and also, maybe some day we can implement some of these languages as front ends for guile, and use guile to bootstrap their compilers :) <mark_weaver>or at least just enough support to compile their compilers. <taylanub>I remember that e-mail. (I brought in CCL in binary form so it concerned me.) for Rust the situation is at least a little better though; we can really bootstrap it from C with the above method, though it involves drudgery. <mark_weaver>"How to reduce our vulnerability from self-hosted compilers" <davexunit>mark_weaver: thanks. I think that is a good idea. <yenda>well ntpd worked. what do you mean ? I did'nt find it cool it required to install a package <yenda>maybe that's why my clock was wrong in the first palce ? <yenda>i have the desktop-services and console-keymap <yenda>I'm also sad that it doesn't work in eshell :( I want eshell to be my only terminal someday <yenda>still no udpates on go :( I hope codemacs will be done soon with the package <yenda>mark_weaver: I see that you use gnus, was it hard to set up ? <yenda>I'm back at trying to choose a mail client for emacs :D <rekado->yenda: I use mu4e (searching, reading, writing mail) + msmtp (sending mail) + offlineimap (fetching/syncing email) for email in Emacs. <mark_weaver>yenda: since your hardware clock was set almost exactly to your local time, I guess that it's how you had it set up to begin with. <mark_weaver>I vaguely recall hearing that windows expects the hardware clock to be set to local time, which is suboptimal but probably for historical reasons. <mark_weaver>the problem with the hardware clock being local time is: what do you do when daylight savings time starts+ends. <yenda>mark_weaver: I had a windows install previously yes, this was my gaming computer in a previous life <yenda>rekado- yes I'm hesistatiing between rmail, gnus, maybe wanderlust <mark_weaver>I don't know which to recommend, they all seem to have their issues <mark_weaver>Gnus has been my email client for a long time, but I don't recommend using it on a remote IMAP server. too slow. <mark_weaver>so now I have a setup where I use 'offlineimap' to keep a local mirror of my imap server <mark_weaver>and I also use notmuch to index my mail for searching <mark_weaver>but some of the details had to be adjusted to the latest software, and I didn't fully implement all of the advice. <rekado->I used notmuch before and found that it didn't do enough for my taste (e.g. refiling, or deleting email). <rekado->mu4e is pretty okay and it's the one email solution for Emacs that I have been using for the longest time. <mark_weaver>ah, okay. I haven't tried it yet, but probably should! <davexunit>notmuch is solid, but I have stability issues with offlineimap <yenda>do I need msmtp if I have an imap account from an external provider ? <mark_weaver>yenda: it depends. msmtp will allow anything on the system to send email the same way, without configuration. <mark_weaver>alternatively, you can configure each program that sends mail to send directly to the external provider. <mark_weaver>I always send email from emacs, so I just set up emacs to do it. <mark_weaver>I guess the other issue is how to support queuing outgoing mails when you don't have network access. <yenda>mark_weaver: but if I use gnus with offlineimap it counters the problems of it being slow on remote servers doesn't it ? <guixnewbie>How do I actually build a new, custom package? I'm going through the docs but am not getting it. <guixnewbie>I have a package definition in some-name/package.scm. <guixnewbie>Doing guix build some-name fails with an "unknown package". <mark_weaver>guixnewbie: set GUIX_PACKAGE_PATH to $HOME/some-name and ensure that the module name on the file is (package) where the bit in parens is the filename without the .scm <alezost>guixnewbie: see (info "(guix) Package Modules") ***pikos is now known as gamabunta
***shamangeorge is now known as pikos
***pikos_ is now known as gamabunta
***davi_ is now known as Guest49870
<guixnewbie>More package build newbiness: I copied the sample hello package, but cannot build it as guix complains it doesn't know what gawk is (gawk is set as a dependency). I have gawk installed. <rekado->guixnewbie: when using "guix build" it doesn't matter what you have installed. <rekado->a suitable build environment is prepared, containing only the declared and implicit inputs. <rekado->when you say it complains, what exactly is the complaint? <guixnewbie>rekado-: Sorry for disappearing. The exact complaint is "ERROR: Unbound variable: gawk". <guixnewbie>rekado-: When you say a suitable build environment is prepared, do you maybe mean I have to prepare one myself via guix environment? <davexunit>guixnewbie: sounds like you haven't imported the proper module that has the gawk variable <guixnewbie>Ah, I was importing (guix packages gawk) instead of (gnu packages gawk). <davexunit>would you like to send a patch to fix it? :) <guixnewbie>Sure, right after I figure out how. No need to help just yet, I know where to look. :) <yenda>guixnewbie: I've been in the process of learning how to package for guix very recently, you can check my github for some exemples of local packaging, I try to document the problem I encounter in readme. And ofc you can just check the sources in guix/gnu/packages for even more <guixnewbie>yenda: Thanks for the tip! I actually stole your system config.scm when installing, but didn't notice the other stuff. Will do. <yenda>any of you using helm in emacs ? I'm looking at excluding .go files from find-file <yenda>the problem is that go uses .go extension for source files <yenda>so a trick would be to exclude only when .scm files are there <yenda>I hope he doesn't mind me spreading his words <phant0mas>mark_weaver: don't check my latest patch just yet, needs some improvements