<ng0>at least I can start it though <ng0>I think I need to wrap scheme48 though <ng0>and no documentation.. woo <ng0>"That'll open up a repl with standard r5rs scheme in the environment, scsh's command language, and a large posix library (docs to come). " meh.. someone with an github account should open an issue about this <civodul>not fully baked so don't publicize ;-) <ng0>I've just passed it on to someone with the comment that it's a quick first, dirty hack <cehteh>civodul: in the system configuration are a lot lists used %base-services and use-*-modules etc etc. it happens to me that i run into a lot problems with multiple definitions because descktop includes networking and so on. why are these lists not uniqued as in 'first stanza wins'. that would make a lot things simpler and one doesnt need to rewrite the buildin defaults with modify-services and so on <ng0>paroneayea: but is this the same scsh? <civodul>cehteh: automatically removing duplicates may lead to unexpected results i think <cehteh>why unexpected? if its pretty defined its ok <ng0>I haven't checked how much has been changed on the one on github <ng0>and of course www.scsh.net <ng0>commit 9dd2c68ad0cb86b06b51a2f03e521f3f67ece0e2 <ng0>Author: Roderic Morris <roderic@ccs.neu.edu> <ng0>Date: Tue Jul 7 13:26:53 2009 -0400 <ng0>okay it at least started with some import <ng0>Also, I reached out to tcsh upstream and hope I'll fix the two other tests soon <ng0>and archlinux is as clueless as I am about libmp4v2 real/current upstream, so the search continues <davexunit>happy to see that most packages are reproducible! <ng0>someone just told me, it would be great if guix could be instructed to compile by default only what's not reproducible and use substitutes for the rest. Also, the output/list should be signed by a number of n developers and integrated into the sources. I'm not sure if I was able to summarize it all, but I'm tired. <ng0>it's just a first draft, I know <davexunit>as if we didn't already know about this stuff? <davexunit>integrating into the sources isn't a good idea <davexunit>you could interrogate N substitute providers and only download from one of them if there is consensus on the hash. <ng0>The problem with the list signing is also, that it is currently done automatically. I assume. I have no time to look today at the source of the page <davexunit>but substitutes are signed with a key when they are downloaded. <ng0>I'm tired. I think I ask the person for details tomorrow <davexunit>manual signing does not make any sense at all. <ng0>I think it was about the generated list of what's reproducible nad what's not <mark_weaver>iyzsong-w: fyi, I pushed a 'gnome-updates' branch that updates gnome components to 3.22. I'm running it on my system now. <mark_weaver>(apologies if that message was repeated, but I lost my connection shortly after my first attempt to send it) <iyzsong-w>mark_weaver: cool! recently, I don't have internet access at home, so i leaved my keyboard, hope to back to soon :-) <enderby>hi, i'm having trouble getting magit to use gnutls nss-certs. i installed nss-certs and added the env variables - so git via CLI works fine cloning/pushing/pulling, but magit still gives the same error <bldtg>can anyone help me with getting my package fully working? <lfam>bldtg: Sure, how's it going? <mark_weaver>enderby: is this on GuixSD, or Guix running on top of another distro? <mark_weaver>enderby: see section 7.2.9 (X.509 Certificates) in the Guix manual. <enderby>and it works for git now via CLI, but magit doesn't seem to get the env variables <enderby>not sure if i'm setting the correctly <mark_weaver>if you type M-x getenv and then GIT_SSL_CAINFO, does it show the right value? <enderby>/home/myusername/.guix-profile/etc/ssl/certs/ca-certificates.crt: <enderby>much appreciated, btw saw you had a thread on this back in 2014, ha <bldtg>lfam: good, sort of. I'm trying to package xfce4-whiskermenu-plugin. So far I've written the definition, got some help with building it successfully, but when I do ./pre-inst-env guix package -i xfce4-whiskermenu-plugin, and then try to run it with xfce4-popup-whiskermenu, it returns "/home/brandon/.guix-profile/bin/xfce4-popup-whiskermenu: line 47: /gnu/store/1ycnyi7542c3km3f52yr52mpcn1my3xf-xfce4-whiskermenu-plugi <bldtg>n-1.6.2/bin/xfce4-panel: No such file or directory" <lfam>bldtg: Can you share the package definition? <bldtg>lfam: how would I go about doing that? seems a bit long for irc. <lfam>bldtg: Put it on paste.lisp.org <lfam>Maybe whiskermenu assumes xfce4-panel will be available at $PREFIX, which would explain why whiskermenu looks in its own store directory for xfce4-panel. <lfam>bdltg: I wonder about this line in xfce4-popus-whiskermenu.in: <lfam>@CMAKE_INSTALL_FULL_BINDIR@/xfce4-panel --plugin-event=whiskermenu:popup:bool:$ATPOINTER <bldtg>lfam: I think I bit off more than I can chew here <lfam>bldtg: You're almost there! <lfam>bldtg: If you build the package from your paste, and then look at the executable file it creates, '/gnu/store/...-xfce4-whiskermenu-plugin-1.6.2/bin/xfce4-popup-whiskermenu', the last line creates the error <bldtg>lfam: I'm not really sure how to fix it. I don't know scheme. <bldtg>lfam: I assume I have to do something similar to what nix did in my package definition <lfam>bldtg: There's a good example of using substitute* in a custom build phase to fix a bad path in the package definition of python-tempest-lib <lfam>One difference is that you'll need to build the string that is being replaced with the (assoc-ref) procedure to get the store path of xfce4-whiskermenu-plugin <lfam>We do this a lot so there are tons of examples in the packages. Let us know if you get stuck <bldtg>lfam: this would be a lot easier if I knew scheme <bldtg>lfam: or knew more about building and packaging in general <marusich>And by "ultimate" I mean "the one I used" :) <marusich>As for packaging, the guide in the Guix manual is a good place to start. There are many simple packages in the git repository for Guix which provide easy examples to follow. <marusich>And once you get past the first introductory stages of learning Scheme, you can easily tinker with Guile, while referring to the Guile reference manual, which is also really good. <Apteryx>What's the most likely reason that IceCat displays a blank page? CSS or JavaScript? ***orly_owl_ is now known as orly_owl
<Apteryx>Interestingly, I just tried loading the same webpage using Firefox ESR 45.6 and didn't see any of these 2 errors. <Apteryx>bldtg, marusich: The SICP book is also available straight into your Emacs as a texinfo book after installing the 'sicp' package. <civodul>"available in your nearest Info reader" <roelj>How many packages does Guix have at the moment (roughly)? <roelj>nee`: Ah, how could I miss that. Thanks! <civodul>roelj: or "guix package -A | wc -l" :-) <roelj>civodul: 4702, woah, that 4700 figure was pretty accurate! <ngz>Hello. Gnome3 is not recognizing ~/.guix-profile/share/applications/ so applications install through guix do not appear in the overview. I assume I could make .local/share/applications a symlink to the former directory. Is there a better way? <roelj>ngz: (put that in your .bashrc). (Note: if you're using Wayland, Wayland doesn't read ~/.bashrc, so that won't work for Wayland). <ngz>Thanks. I actually put this in .profile. I cannot remember why though. I tried Wayland, and it doesn't read any configuration file AFAICT. <roelj>ngz: Right. I don't know how to get it to work on Wayland. <rekado_>civodul: nice reproducibility overview! Should we have bug reports for each of the packages that currently show up as not reproducible? <rekado_>then we could collectively gather info about possible sources of irreproducibility <civodul>rekado_: in some cases (Perl, Python, Guile), an issue in the compiler/toolchain makes many packages non-reproducible <civodul>we don't want one bug report for each Perl/Python/Guile package ;-) <civodul>we already have bug reports for some of them <civodul>BTW, i wonder if we could include Diffoscope or Diffoscope-like output in the HTML page <rekado_>it’s odd that there are no issues shown for clisp <rekado_>because I remember filing a bug about reproducibility problems with the clisp memory dumper <civodul>rekado_: the current page sometimes says "0 issues" when it should say "dunno" <civodul>the Python issue is not fixed, for instance <cbaines>I have a cryptic error from guix system container: guix system: error: canonicalize-path: No such file or directory <cbaines>Any tips on getting information about where in the code this is occuring, or what the path is it thinks doesn't exist? <cbaines>I'm running guix from a local checkout of the repository, so I can just edit the code to try and debug this <civodul>cbaines: do you use 'local-file' in your config? <civodul>i'll do something so that 'canonicalize-path' error reports are better <ng0>For system fancyness, is someone really motivated to write an shepherd integration and service for plymouth? I made it build for now. But if you touch plymouth in the process, I advise you not to, or directly send changes upstream. Or have some fun backporting automake-1.14 <ng0>I would send the patch, but it's an early boot application, so without system integration no proof of work <ng0>ACTION sends the patch <ng0>take it or leave it, I can't work on a plymouth service right now as I'm still cursing the gnunet-service and several other services :) <ng0>Oh, I have to resend. I can't keep track of the years.. I thought I already did some changes last year in freedesktop module <htgoebel1>OT: Any hints where I can find anybody having experience in cross-compiling for OS X? <htgoebel1>I have just a small program, but until this is not solved, I can't continue working on Guix. <roelj>htgoebel1: Do you want to cross-compile it with Guix, or any other way? <htgoebel1>roelj: Not need for Guix, any Linux would do for my use-case. AFAIK homebrew is for buildind *on* OSX, while I need to build *for*. <rekado_>htgoebel1: I'd be interested in that too. <rekado_>we have quite a few OSX users here and it would be neat if I could let them use parts of Guix for building software. <rekado_>I guess this would require building our bootstrap binaries outside of Guix and then cheat. <roelj>htgoebel1: Right. I don't know about that. :) <roelj>Can guix-daemon run as a regular user when unprivileged user namespaces are enabled? <rekado_>note that you still need the SDK, which falls under the Xcode license terms <roelj>Does anyone know how to enable the *unprivileged* user namespaces access in CentOS 7? <rekado_>roelj: AFAIK you have to enable them on the kernel line at boot time. <roelj>rekado_: Yes, I added 'user_namespace.enable=1', but then only root has that capability. <roelj>/proc/sys/kernel/unprivileged_userns_clone is still missing :( <roelj>I need it to test my new workflow language on our cluster.. <htgoebel1>rekado: I've seen osxcross already (thnaks anyway) and am hoping for an easier way :-) osxcross looks complicated. But I did'n find anything better yet, so I'll try this way. <roelj>htgoebel1: Not sure why you want to cross-compile so badly, other than not having to touch such a machine ;), but you could also try to boot a VM with OS X (it's called Hackingtosh I believe). <htgoebel1>roelj: The only machine I've found does not boot. So I'm going ton the cross-road. <pareidolia>Question: For Nix tasks like launching vms is done with NixOps. I have the impression that the equivalent functionality is already present in Guix. Is this correct? <rekado_>pareidolia: guix has "guix system vm" <myglc2>Is there a way to run emacs-guix from a user account in the "wheel" group so that I can delete generations from the *Guix Generations* buffer? <sneek>Welcome back davexunit, you have 1 message. <sneek>davexunit, lloda` says: your f64 unboxing patch may be buggy, could you check the irc logs at 13:01 ff <ng0>I think awesome needs lua propagated... everytime I want to restart awesome (reload config) it aborts the session and throws me back to the login screen <pareidolia>I'm running guix standalone. My kernel is KVM-enabled, but I get "Could not access KVM kernel module: Permission denied" when I try to do guix system vm .... <davexunit>the better solution would be to find where the 'lua' binary is referenced and patch in the absolute file name of the lua binary in /gnu/store <pareidolia>Can anyone hint me how to debug guix system vm ? <htgoebel1>roelj: While still downloading XCode I managed to get the OS X VM running :-) So for now I'll not continue working on cross-compiling. Maybe later. <roelj>htgoebel1: Cool. Good luck! :) <ng0>yep, what I get when lua is in my profile is an OSD font, shortly before crashing: "Can not execute login command" or something like that <rekado_>pareidolia: use ,pp in the guile REPL <ng0>maybe related to the lua bug yesterday <pareidolia>rekado_: I'm a guile noob. How can I do that to a file? <rekado_>pareidolia: alternatively, you could open the file in Emacs and record a macro to search for a parenthesis and add a newline character, then run the macro over the file. <pareidolia>Ah. Of course my build users need to be in the kvm group (root:kvm ownershop on /dev/kvm) <dadinn>quick question, is there a Debian package to install guix? If no are there any plans for it? Would be great instead of going through the System Install manual by hand... <buenouanq>ooor you could just install guixsd and forget about systemdebian ;3 <ng0>at least whonix pocked on this recently and the result on debian side was to use nix <ng0>because Guix differs too much from their use <lfam>dadinn: The difficulty with packaging Guix for Debian is that we violate some of their principles. For example, Guix is based on a set of bootstrap binaries, but Debian requires everything to be built from source. <lfam>On the other hand, installing the Guix package manager on Debian is really painless. It was the first thing I did with Guix, before I knew anything about Guix. <lfam>Installing GuixSD is slightly more complicated, with more more room for failure, but it's still not too bad, and we are here to help :) <ng0>I opened a bug on the awesome-wm behavior <lfam>I'm not sure if you are interested in installing Guix, the package manager, or GuixSD, the full system <dadinn>I am trying to create a bash script, which if ran as root would set up everything (according to the manual). Does such thing exist already? <lfam>dadinn: For Guix or GuixSD? <dadinn>The Guix Software Installation procedure, over a Debian <pareidolia>Is there support for EFI booting Grub in GuixSD? <lfam>dadinn: That process is simple enough that you could easily adapt it to a shell script. And I'd be surprised if nobody has put it into a system like ansible or chef; perhaps you'll find something in the guix-devel archives. <lfam>dadinn: I'm talking about the process in the manual section 2.1 Binary Installation. <lfam>I'd just chain those instructions together in the shell with && <lfam>dadinn: If your on Debian Jessie or older, you'll have to adapt the part that symlinks the systemd service file in to place. That part assumes a new systemd, which can handle symlinked service files. <janneke>how do i avoid get collisions like these -- warning: collision encountered: /gnu/store/8dfvnp3x82f6dp4siph3z0zydy0y6p4v-glibc-2.24/lib/libpthread-2.24.so /gnu/store/zpwn4cfrvylfwvqbak03vhiypk7j23d4-gcc-toolchain-6.3.0/lib/libpthread-2.24.so <ng0>has someone tried starting dwm with the default desktop-services in the system definition? our of curiosity I added many window/desktop managers to the profile and dwm is the only one which isn't displayed. by displayed I mean hitting F1 in loging screen <cehteh>M-x guix-all-available-package (and guix-search...) bugs out here with "wrong type argument: arrayp,nil" is that a known bug? <rekado_>lfam, dadinn: I have a puppet module for the installation of Guix. <Apteryx>Why would `guix package -u icecat` redownload the full thing, and compile it from source when in the end it just grafted it? <davexunit>Apteryx: it needs to build the thing that gets grafted <Apteryx>But since it was already installed at the same version I would have thought it could have used that directly? <Apteryx>My understanding is that grafts get applied to binary (built) derivations. <davexunit>well you didn't have the same icecat already installed <davexunit>otherwise it wouldn't have built from source <davexunit>the version number is only one small piece of the puzzle <davexunit>you have probably updated guix since installing icecat <davexunit>which could have changed a dependency of icecat or something like that <Apteryx>Yes I did (using guix from git so that happens often) <davexunit>and it built from source because there was no substitute available, which means that our build farm hasn't yet built it. <Apteryx>I think I found the culprit in the broken XFINITY page javascript: navigator.appVersion<"5" <Apteryx>This compares two strings, such as "45"<"5" which returns true for some reason. <Apteryx>And then goes calling window.crypto.random which doesn't exist in IceCat 45 <buenouanq>it's comparing strings and "4[...]" is indeed less than "5" <Apteryx>Buggy code. Wonder why it runs fine in Firefox 46 on Windows but not in Firefox 45 on Guix. Must be another code path which depends on the phase of the moon (like platform type?) ;) <lfam>Apteryx: I hate the xfinity web site. I have so many problems with it <Apteryx>If I hadn't a corporate windows box around I wouldn't be able to pay the bills! lol <lfam>I wonder if I can pay in person at their Palpatine-ish headquarters here in Philadelphia <Apteryx>I wouldn't be suprprise if you can't. <Apteryx>Oh, on Windows, with Firefox ESR 45.6, the "navigator.appVersion" string is "5.0 (Windows)", which explains why the code works there. <Apteryx>On GuixSD, the navigator.appVersion is "45.0" <lfam>That hole is where the emperor's shuttle passes through <Apteryx>Should GuixSD really put "45" rather than "5.0 (Windows)" in its navigator.appVersion field? I remember the approach here was to copycat mainstream to hide in the masses and not leak possible identifiers. <Apteryx>For example, the userAgent we use is: "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0" <janneke>ACTION finally found a way to reproduce recent emacs segfaults <janneke>i haven't been able to do some decent work in days <cbaines>civodul, thanks for your canonicalize-path changes! <cbaines>I've just got back to my computer, and seen your message and new commits <cbaines>I've tried the new code and it works :D <Apteryx>Holy... I had finished typing my message to XFINITY then proceed to click on the "Chat" button, and surprised it crash and I lost my nice message ;) <katco>hey all, i'm having trouble running a go binary i've built on my machine on a machine without guix installed. i suspect this has something to do with it: fuke ./foo "...interpreter /gnu/store/iwgi9001dmmihrjg4rqhd6pa6788prjw-glibc-2.24/lib/ld-linux-x86-64.so.2...", but i don't know enough about elf binaries to know. any ideas? <cbaines>Would you like to modify the file to make it run? <cbaines>Or is building a Guix package an option (this is probably cleanest/neatest) <katco>cbaines: i'd prefer a way to tell guix's version of go to compile against standard ubuntu libs <katco>cbaines: unfortunately not =/ <katco>cbaines: this is a case of me wanting to use the guix toolchain to build binaries for machines without guix <davexunit>katco: you need to do very special things to make that happen <davexunit>every binary contains an absolute file name for the "program interpreter" <katco>davexunit: ok; that's the bit i'm seeing i guess? completely ignorant of this topic <davexunit>katco: so here's the tough question: what should it be? <katco>davexunit: stop me if i'm wasting your time, but what is a "program interpreter"? obj => machine? <davexunit>katco: do you know how shebangs work in script files? <katco>davexunit: i believe /lib64/ld-linux-x86-64.so.2 ***anonymous_ is now known as GNUnymous
<davexunit>katco: it's similar to that. just like the script has an absolute file name of the script interpreter, these ELF binaries have an absolute file name to the dynamic linker <davexunit>which is called the "program interpreter" when viewing the output of 'readelf -l' <katco>davexunit: oh, so it's the program that performs linking prior to execution? <katco>ok, so guix obviously does some special things with linking, it's setting a custom linker... that does seem rather insurmountable ***GNUnymous is now known as GNUnymous_IRC
<katco>how hard is it to -- at compile time -- request that it use ubuntu's interpreter? <davexunit>so, when you want a binary to run on another distro without guix installed, there are some questions that need answering. <davexunit>the most important being: which distro or distros? <davexunit>as you mentioned, /lib64/ld-linux-x86-64.so.2 is the dynamic linker on ubuntu on 64 bit CPUs <davexunit>I don't know Go, but if you want to produce binaries for ubuntu you'll need to arrange for Go to produce binaries with that dynamic linker <davexunit>one thing that I've done, that is easier but much more of a hack, is to use the 'patchelf' utility to rewrite a binary with a new dynamic linker. <katco>davexunit: go has an ldflags flag that i can use to pass flags to ld <katco>davexunit: that's handy to know; however the binary is built and pushed as part of a pipeline <davexunit>katco: I don't understand that last message about a pipeline <davexunit>also, you will face additional challenges if your binary needs to dynamically load shared libraries. <davexunit>what you're talking about is more generally known as building "relocatable" binaries. <katco>davexunit: sorry, pipeline in that there is a type of build process that atomically builds this binary and pushes it to server without giving me a chance to intervene <katco>davexunit: well that's what confused me initially; ldd from the remote machine reports all libs resolve fine <davexunit>if you're using guix at all then you can intervene however you wish <katco>davexunit: it uses guix's version of go (and gcc toolchain) to build <davexunit>you'll need specialized versions them to create the correct binaries. <davexunit>the compilers in guix do not build relocatable binaries because when using guix and guixsd that would be a big disadvantage. <davexunit>we use things like runpath to hardcode the file names of .so files and such <katco>what is the disadvantage there? <davexunit>and things like being able to have multiple versions of a library on the same system <davexunit>the way we do things it's easy to have multiple binaries depend on different versions of any given shared library because the binary contains an absolute file name to the library it was built against. <davexunit>relocatable binaries is a whole different beast. <lfam>Speaking of Go, now is a great time to try packing the release candidate of Go 1.8 <davexunit>I just recently went down this road to make a relocatable version of Guile for making binary bundles of a game I'm working on. <katco>davexunit: again, you are always really helpful when i come in here asking crazy questions. thanks for teaching :) <davexunit>luckily I was *just* exploring the same topic <lfam>pareidolia: Yes, but I think it's not fully baked yet. Search the guix-devel archives for 'grub-efi'. The discussion spans a few months <katco>davexunit: it looks like go tool link allows me to set the interpreter; unsure how to get at that through go build <lfam>pareidolia: But, it apparently works! <davexunit>katco: well you have a starting point, at least. <katco>davexunit: yeah for sure! and some reading to do thanks to you <davexunit>I used 'readelf -l /path/to/binary' to check that the dynamic linker was set right before booting up my ubuntu vm to test <erliphant>qq about guix publish. I built a package one one machine that I ran guix publish on. I setup a second machine to use that machine as a substitute server. But I can't seem to install the package from the second machine. I'm clearly missing something but I'm not sure what. <davexunit>erliphant: perhaps the versions of guix are different between the machines? <erliphant>No - definitely the same. I think this is some more obvious user error. <davexunit>do you see any messages about downloading substitute info from that server? <davexunit>oh, and have you imported the 'guix publish' server's auth key? <erliphant>I think it is more fundamental - like it doesn't know about the version at all <lfam>erliphant: On each machine, compare the output of `guix build --derivations foo` <erliphant>@davexunit - nix-cache-info is good. @lfam - they match but it's not the version I built manually. Basically I rebuilt the gnu "hello" package, bumped the version and wanted to try to install that from another machine. <davexunit>erliphant: does the other machine have that package recipe? <erliphant>@davexunit - that makes sense. So you need to sync the recipe somehow. There is no index? <pareidolia>When setting up my desktop.cm for system init, can I set my video driver? <davexunit>erliphant: I think the confusion stems from the differences between guix and mainstream package managers like apt-get <davexunit>if we pretend these 'guix publish' and substitute things don't exist <pareidolia>Apparently %default-xorg-modules contains a lot of drivers by default <davexunit>guix is a source-based distribution, like Gentoo or something. <davexunit>the guix client takes a package "recipe" and asks the guix daemon to build it. <davexunit>every package recipe has a unique id, which you can see if you look at the first 32 characters of any file/directory in /gnu/store <davexunit>now, building *everything* from source is not practical most of the time, so we have this thing called "substitutes" <davexunit>guix will ask "hey, I was going to build this recipe that has this ID, but do you happen to have an already built version?" <ng0>ACTION sighs .. I think I need help on the gnunet-service. someone offlist never came back to me weeks ago, so I will rebase and resend what I have now. <davexunit>a package recipe of GNU hello package at version 1.0 will have a *different* ID than the recipe for the GNU hello package at version 1.1 <davexunit>so if your 'guix publish' server has a built version of GNU hello 1.1 and you ask it for GNU hello 1.0, it will say "sorry, I don't have that" <davexunit>(the ID is affected by many other things besides the version number, this is just one simple example) <davexunit>so, in order for guix to ask for the binary for hello 1.1, it needs to have the recipe for hello 1.1. <davexunit>the client has *all* of the knowledge about what packages are available to it. <davexunit>and this is because downloading pre-built binaries is simply an optimization, not a strict requirement. <erliphant>@davexunit - ok this makes sense. Than I guess what I'm asking is what is the method for distributing recipes (if there is one). I assume guix pull updates the latest recipes as its first step?/ <davexunit>yes, it updates guix, and guix contains all of the upstreamed package recipes. <davexunit>erliphant: did you change this package in a git checkout of guix or some other way? <davexunit>there's two main ways people maintain their own special package recipes: a fork of the guix git repo, or a completely separate git repo that they point guix to via the GUIX_PACKAGE_PATH environment variable. <ng0>can someone of you people using guile longer than I am review the scsh patch? because I have no idea if the resulting binary works or only partially works :) At least iIt doesn't break <erliphant>@davexunit - I only bumped the version number in the definition. I did realize this would affect the hash and produce a new identity. Everything you've said makes sense to me. Thank you. <davexunit>(the latter doesn't *have* to be a git repo, it's just a convenient way to sync things across many machines and track the changes) <erliphant>@davexunit - I've also looked at the guix api. If people want to extend it for internal use (eg. add a new build system) I assume they'd need to fork guix itself. <davexunit>guix is a collection of guile modules, you could write your own guile modules that use the guix api and use them. <davexunit>so you could write your own build system without having to touch guix core at all <davexunit>you just need to know a thing or two about how guile modules work. <erliphant>@davexunit - could this introduce the risk that two packages might produce the same identity but have different build results due to the code that went into producing them? <erliphant>I guess you'd need to make that code available inside the chroot jail? Or is that all decided before the jail is even created? <davexunit>erliphant: it's not possible to define two different things with the same identity <davexunit>you'd have to find a SHA-256 hash collision for that to happen :) <erliphant>@davexunit - I assumed the hash was taken of the inputs. But not necessarily of the built artifacts because compilers embed timestamps etc. <erliphant>@davexunit - some (naughty) compilers not all obviously <davexunit>package name, package version, processor architecture, all inputs (source code included) <erliphant>@davexunit - I get it. We define a dependency on the scheme modules we want to add. <erliphant>@davexunit and these are pulled into the chroot jail as part of the build. <erliphant>@davexunit - this makes sense too. Thanks very much. <ng0>civodul: someone just pointed out this mistake to me on the not yet public announced page: Which of our packages "is" not reproducible? <ng0>should be "are", anyone else with push access can fix this too <lfam>"is" would be correct if there was a single package that is not reproducible. But in this case, I think that's too optimistic ;) <ng0>I didn't see it as a mistake either.. oh now I see what you mean :) <catonano>could anyone please explain to me what "(core dumped) "$@" > $log_file 2>&1" mean ? i was building gnunet with the --kkeep-failed switch and in the output there's tis line a couple of times <catonano>has a core dump file been dumped anywhere ? <alezost>myglc2: emacs-guix operates with the same permissions as emacs, so you can delete system generation only under root (if you'll run Emacs as root, you'll do it at your own risk!) <sneek>Welcome back alezost, you have 1 message. <alezost>civodul: that's because there is "gzip/" before the hash part, which is not handled by `guix-prettify-regexp' variable. Is "gzip" the only thing that can be met there? <alezost>cehteh: re "M-x guix-all-available-package" I don't reproduce; how did you install emacs-guix? <cehteh>yes, it computes some time and then errors out with that error <alezost>cehteh: sorry what do you mean by "yes"? did you install emacs-guix with guix? <alezost>cehteh: what is the output of "M-x guix-version"? <cehteh>this netbook is incredibly slow :D <cehteh>yes but be patient .. i try to do that in ssh, working on manually on the netbook wont let me copy paste <lfam>This seems to be the crux of the toxcore bug: "Concretely, the issue is that if A's longterm static private key is stolen, an attacker can impersonate anybody to A without A realizing." <pareidolia>I need to debug grub-install, but it isn't mentioned anywhere in the scheme files <lfam>Also "We have a largely undocumented, untested, and not well-understood code base of about 19 ksloc (C)." <cehteh>GNU Emacs 25.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.20.9) of 2017-01-12 fyi <pareidolia>Can I run some phases of the installation process manually from guile? I need to debug the grub installation <cehteh>pareidolia: whats your config.scm? <ng0>lfam: thanks :) and: well... I don't really fix things I only use as a necessity because other people I talk with use it. I have no plans (or time) to get involved in fixing it. if that's what you mean <pareidolia>cehteh: /dev/sdb is GTP and has an EFI system partition <lfam>ng0: I was just sharing it so you had been warned <ng0>I stopped trying to fix pybitmessage for example. pybitmessage was the reason why I quit github the last time <alezost>cehteh: it looks like it just didn't return any result (nil is not handled proprely there). Let me think why you get nil there... <ng0>thanks, I'll read the ticket then <cehteh>alezost: that connects directly to the guix api, nothin i can do manually to check it? <cehteh>also its a new/test installation i could make you a ssh login when you want to test things <alezost>cehteh: there is a lot you can do, I'm just thinking how to dig it <pareidolia>Can I load the system definition in guile and ask it to install the bootloader directly? <cehteh>pareidolia: likely .. but i dont know how :D <alezost>cehteh: do other commands fail as well? for example "M-x guix-packages-by-name emacs" <cehteh>but i did search before, that failed <alezost>pareidolia: I think you'll get a better luck with your question on guix-devel@gnu.org <alezost>cehteh: what exactly fails? "M-x guix-search-by-regexp" ? with what regexp? <cehteh>alezost: search-by-regexp emacs works but .* (wanted to emulate the all-packages) failed <alezost>cehteh: btw do you have any custom packages in GUIX_PACKAGE_PATH? <cehteh>i have some packages in operating-system packages <alezost>could you switch to *Guix REPL* and evaluate the following there: (length (package/output-sexps "/var/guix/profiles/per-user/ct/guix-profile" 'package 'all-available '() '(id))) <alezost>hm, ok, so the scheme side defines all packages correctly, but the elisp side receives an empty list for some reason, thinking... <dadinn>lfam: sorry been away for a while, back to your question: it is Debian Jessie I am on <alezost>cehteh: ok, now could you "M-x ielm" and evaluate the following there: (guix-eval-read "(package/output-sexps \\"/var/guix/profiles/per-user/ct/guix-profile\\" 'package 'all-available '() '(id))") <alezost>does it fail with the same nil error? <dadinn>lfam: i have backports repo, shall I upgrade systemd? <lfam>dadinn: No, just copy the service file instead of symlinking it. And change the path of the program it starts to '/var/guix/profiles/per-user/root/guix-profile/bin/guix-daemon' <lfam>I think that recommending a symlink was premature. <lfam>I keep having to give this instruction! <cehteh>alezost: sorry, no that prints a sexp <alezost>cehteh: ouch, unexpected; well, I mean this is the proper behaviour, but I thought it would fail; what about evaluating (guix-eval-read "(package/output-sexps \\"/var/guix/profiles/per-user/ct/guix-profile\\" 'output 'all-available '() '(id))") ? <alezost>because it's all 4000 packages and each one is checked if it is installed in your profile or not <cehteh>yes .. returned a list, no error <alezost>(I personally never use "guix-all-available-packages" command) <alezost>wait, maybe you have an old version of the elisp code; could you look at "M-x list-load-path-shadows" <alezost>are there any duplicates of guix-... stuff? <cehteh>note that this is a verbatim install from 1 or 2 days ago <pareidolia>I got EFI grub working by installing it externally with Gentoo <cehteh>pareidolia: your failed installation didnt report any errors on installing grub? <cehteh>in my experience usually grub is quite picky when it reports problems you should take them seriouly, when it doesnt usually it works <pareidolia>And then grub-install --efi-directory=/mnt/guix/boot/efi --boot-directory=/mnt/guix/boot <pareidolia>cehteh: No it was clear no EFI binaries were placed anyw <alezost>cehteh: ok, now this will be a *really slow* command, if you don't mind :-) could you run in ielm please: (guix-output-list-get-entries "/var/guix/profiles/per-user/ct/guix-profile" 'all-available) <alezost>make sure "M-x toggle-debug-on-error" is enabled <pareidolia>In fact, I did not find 64 bit efi GRUB modules anywhere on the system <cehteh>mhm .. i dont even know if my boot is bios or efi :D <cehteh>fonts/ grub.cfg grubenv i386-pc/ locale/ <alezost>cehteh: what do you mean? did it fail or succeed? <cehteh>it failed, same error, but didnt thrown me into the debugger (yes it was enabled, is that per buffer?) <cehteh>pareidolia: can you try to revert to a bios boot on that platform? <alezost>cehteh: if you do "M-: (bui-list-displayed-params 'guix-output)", the output is (name version output installed synopsis) right? <alezost>not "M-;" "M-:" – it should be bound to eval-expression <alezost>or evaluate it in ielm, sorry for overloading you <alezost>ok, one more evaluation in *Guix REPL* please: (length (package/output-sexps "/var/guix/profiles/per-user/ct/guix-profile" 'package 'all-available '() '(package-id id name version output installed synopsis))) <cehteh>guix gc: error: build failed: getting status of `/gnu/store/trash/58sxxmzxvvcx4sxmk8zmxx6zdryd8zj6-elogind-219.14/share/zsh/site-functions/_loginctl': No such file or directory <cehteh>that didnt helped, i thiought maybe the store was broken somehow, is there a guix fsck? <ng0>oh. I see efraim just pushed my suckless packages. hm. the general question about pen-testing software is still open. is this acceptable for us? in the future i will add much more <alezost>cehteh: actually, I'm stuck: 'guix-eval-read' fails but 'guix-output-list-get-entries' (which is a wrapper for the same command) succeeds! <cehteh>guix gc --verify=contents,repair .. lets see <cehteh>alezost: yes i guess so, somehow its strange <alezost>cehteh: can you evaluate the following in ielm and try "M-x guix-all-available-packages" again: "(defun guix-output-list-get-entries (profile search-type &rest search-values) (guix-eval-read (guix-make-guile-expression 'package/output-sexps profile 'output search-type search-values '(package-id id name output))))" <lfam>I decided to ignore the question I raised about wificurse. It had been on my mind due to recent legal battles over wifi de-authorization in the USA <cehteh>alezost: now the version column is always '-' ... <alezost>cehteh: because I removed several params (including version); try to reevaluate the same defun but with all params: (package-id id name version output installed synopsis) <cehteh>now i guess some package has some odd version or name or whatever <alezost>I mean evaluate this "(defun guix-output-list-get-entries (profile search-type &rest search-values) (guix-eval-read (guix-make-guile-expression 'package/output-sexps profile 'output search-type search-values '(package-id id name version output installed synopsis))))" and try all packages again <cehteh>try'n'error now .. leaving out the synopsis <cehteh>alezost: thats it, some 'synopsis' breaks it <alezost>cehteh: great, now we need to find out synopsis of what package does it :-) <cehteh>or .. handle any, even garbage synopsis <alezost>also I wonder why I don't have this error <cehteh>lemme restart emacs and try all-available packages again with gc --verify=repair finished now (but it didnt reported problems <alezost>are you sure you don't have GUIX_PACKAGE_PATH set? Check with "M-x getenv GUIX_PACKAGE_PATH" <cehteh>ct@satellite ~$ echo $GUIX_PACKAGE_PATH <cehteh>and i am pretty sure i didnt set it <alezost>what is the value of %load-path in Guix REPL? <cehteh>ERROR: In procedure module-lookup: Unbound variable: %load_path <alezost>cehteh: not "%load_path" but "%load-path" <cehteh> Could not add your entry to the paste database: <cehteh>Thanks to some spammers you need to provide at least 2 linebreaks <cehteh>can one print the 'synopsis' from any guix commandline command? guix package -A .... <cehteh>i am thinking about printing all synopis and then | sort | less .. that should show any outright odd ones at the beginning or end <lfam>cehteh: Using recsel from recutils: `guix package -s . | recsel -p synopsis` <ng0>for the first time in months I'm making progress with the pike package :) <lfam>The description output of `guix package` is in the recutils format <ng0>but I'm still hitting the weird bug where I substitute chokes on a file <alezost>cehteh: you can run it like this: GUILE_LOAD_COMPILED_PATH=/home/ct/.config/guix/latest GUILE_LOAD_PATH=/home/ct/.config/guix/latest guile .../packages.scm <alezost>cehteh: recsel is not needed if you run the script I posted <alezost>btw could you paste all package names (from "guix package -A" output for example), so that I can compare this list with the packages I have <janneke>i have narrowed down my emacs crashes and tried to send a bug report <cehteh>i dont see anything outright wrong in the synopsis list <cehteh>alezost: your packages.scm barfs <cehteh>alezost: all i see that there are packages without synopsis <cehteh>could that be the problem? no synopsis would return a nil <cehteh>packages is the list generated by your guile snippet <alezost>empty synopses shouldn't be a problem, but what packages do you mean? <cehteh>that seem to be the package names <cehteh>ah no there are newlines in the synopsis :D <alezost>right; I have compared your list and mine, and there are no difference except several new packages added to master recently <alezost>so I have no idea what the root of your mysterious problem is :-( <cehteh>i see one unicode char in synopsis there, moment <cehteh>synopsis: GUI test tool and automation framework written in <U+200B>Python <cehteh>could that pose a problem? maybe depending on locale (is the guile regex engine locale sensitive?) <cehteh>ACTION seen weird bugs with regex and locales before <alezost>that synopsis should definitely be fixed, but I think you've fonud the problem <cehteh>mhm export LC_ALL=C; emacs ... still problem <lfam>We should just fix that synopsis <lfam>Yes, but it's a mistake nonetheless <alezost>cehteh: I think LC_ALL=C is not suposed to display unicode symbols <cehteh>and if it cause the error, then such a weird synopsis should be handled gracefully <cehteh>can i purge that package from my store? <cehteh>err from the available list, i dont have it installed <cehteh>just to find out if that causes the error <lfam>You can use Git to go back and forth in the Guix project history and test this issue <alezost>cehteh: try "M-x guix-packages-by-name python2-dogtail" <cehteh>alezost: do you have that package in your list or is that one of the newer ones <alezost>cehteh: I have but my emacs displays unicode properly I guess the problem is that Geiser <cehteh>that guix-packages-by-name works <alezost>cehteh: evaluate in Guix REPL: (package/output-sexps "/var/guix/profiles/per-user/ct/guix-profile" 'output 'name '("python2-dogtail") '()) <alezost>is that symbol displayed as "\\u200b"? <alezost>ok, then it's not a problem – apparently it works :-) <cehteh>.. now i bisect package names :D <cehteh>.. at least i try, is there a regex over name only? <civodul>cbaines: cool! that had annoyed me a couple of times too :-) <civodul>alezost: right, it's just that "/gzip" thing <alezost>cehteh: one last thing to try: evaluate in "M-x ielm": (with-current-buffer (guix-get-repl-buffer) (geiser-eval--send/wait `(:eval (:scm "(package/output-sexps \\"/var/guix/profiles/per-user/ct/guix-profile\\" 'output 'all-available '() '(id synopsis))")))) <alezost>civodul: ok, will be fixed in the next release, thanks for reporting :-) <cehteh>cant see, X forwarding and it didnt redraw the screen <civodul>alezost: awesome! no big deal though :-) <cehteh>mhm maybe that emacs is dead now, 100%cpu and no progress <alezost>cehteh: try pressing C-g a couple of times <alezost>emacs doesn't like long lines very much <cehteh>yes but seems the x11 forwarding is stalled too, no C-g comes through <alezost>cehteh: try it like this: (car (assq 'result (with-current-buffer (guix-get-repl-buffer) (geiser-eval--send/wait `(:eval (:scm "(package/output-sexps \\"/var/guix/profiles/per-user/ct/guix-profile\\" 'package 'all-available '() '(id synopsis))")))))) <cehteh>bisecting the error there, i think that makes some progress <ng0>anyone got an idea what I could use in place of /dev/null in a really terrible configure script? I decided to patch it because substitute can't cope with the file <cehteh>going further, give me some time <alezost>cehteh: oh now I see how you bisect package names, good idea! <ng0>for lines similar to theese: rm -f config.warnings 2>/dev/null <cehteh>some logfile and if everything goes well then you delete the logfile eventually <ng0>a short solution? pike is a mountain of code <ng0>I don't want to add more confusion to a system I don't understand (yet( <alezost>cehteh: do you bisect with "M-x guix-search-by-name"? <cehteh>^[a-z].* fails but ^[a-m].* and ^[n-z].* work <ng0>basically my idea is to replace the shebang of a file ( which gets dynamically created at a time I can't control and also can't be patched by substitute ) with a variable and the variable like $SHELL <cehteh>alezost: are there some limits on return values or regex lengths, maybe because this machine has very little ram (2GB) <cehteh>emacs gc behaving oddly or whatever? <alezost>cehteh: I don't know about such Emacs limits, I didn't have problems with 1GB (it was a year ago though), but there are several gc-related variables... <ng0>is there any reason this will fail in an configure.in where I run their weird autoconfigure_run script again after patching it: <alezost>cehteh: try (setq gc-cons-threshold 10000000) <cehteh>alezost: bte back to the other emacs .. yes the return begins with (result <ng0>the expected result is /bin/sh where CONFIG_SHELL is also set before <ng0>eh ... /gnu/store/…/bin/sh <ng0>I'll just try. will be easier than substitute. And then report a limitation of the substitute function <alezost>cehteh: maybe gc is the problem indeed. Have you tried "M-x guix-all-available-packages" after evaluating (setq gc-cons-threshold 10000000) <cehteh>still bisecting and it looks like the returned size is the problem <cehteh>and i set the threshold but problems remain <cehteh>(setq gc-cons-threshold 1000000000) ... trying <cehteh>well shouldnt it return an error or such somewhere? <alezost>cehteh: yes, you can check the value with "C-h v gc-cons-threshold" <cehteh>but indeed it really depends on the size of the returned results <sankey>is it possible to re-introduce the configure phase in a package which uses python-build-system? <alezost>cehteh: last check if you don't mind: evaluate in ielm this: (with-current-buffer (guix-get-repl-buffer) (geiser-eval--send/wait `(:eval (:scm "(package/output-sexps \\"/var/guix/profiles/per-user/ct/guix-profile\\" 'package 'all-available '() '(package-id id name version output installed synopsis))")))) <alezost>cehteh: does it fail or return something?