<Guix-beginner7>Lutris uses a meson build file but it has python modules I need to load. Is there a crafty way to add it using phases or should I guix import them from pypi and add them as guix modules?
<pkill9_>Guix-beginner7: i would import them from pypi
<apteryx>"out" should be sufficient to run the program, but if you need something unusual such as a static library, or HTML documentation, then it is expected that the user look for other outputs.
<nckx>raghavgururajan: Wanting only :out is probably the most common, in fact. :foo is usually ‘big stuff that most people don't want’.
<nckx>Maybe a :* (let's not hard-magic :all) notation on the command line would be cool, yah.
<raghavgururajan>apteryx Ah I see. But why for gtk+ there is 'out' 'bin' 'lib' 'doc'? The 'out' isn't sufficient to run. I always get error when I just put 'gtk+' in inputs. Either missing command or library error.
<nckx>raghavgururajan: Because ‘sufficient’ depends on the context.
<raghavgururajan>nckx I agree is common. But I see 'out' as 'all' logical. Because when nothing is mentioned, it installs everything. When minimal is required or user knows what they are looking for specifically, then user can mention specific output.
<nckx>raghavgururajan: You're a bit misleading 😉 Your list doesn't make sense, indeed, but then that's not the real list of outputs: it's out,bin,doc, with :lib being simply the default :out. And that makes a lot of sense. The vast majority of gtk+ users want to own the libs, so :out is indeed ‘sufficient to run’ in the majority of cases.
<Guix-beginner7>I am trying to build Lutris. It's a meson build file but it needs some python modules. I imported evdev from pypi but it's complaining about missing kernel-headers.. Figure I should get it as isolated as possible
<apteryx>lfam: it seems debian's package for libantlr3c does conditionals that determines wheter 64 bit object code compilation is enabled or not dependening on the *host*. How would I achieve this in Guix?
<anadon>OK, paper draft sent to guix-devel and no rejection notice, but no confirmation either.
<apteryx>lfam: seems there's a "system" build system argument passed around that I could test.
<rekado>and then we can load the file, parse it with (email email)’s “parse-email” etc
<brendyyn>rekado, I'm still hella confused about wrap-script. how ever I look at it, the (car cl) is duplicated. I created a test bash script that does echo "$@". `./foo hi' returns "hi". After wrapping it, it returns "./foo hi".
<brendyyn>does the interpreter not take car of passing on the zeroth argument on its own?
<jackhill>Veera: the only way I now is look at what's in your store (e.g. `cd $(guix build <package-name>); find .`) I don't think we track files the same way traditional package manager do. Maybe someone will correct me?
<jackhill>Veera: oops, sorry I was scrolled up and didn't see the other responses. Yay other people had something useful to say :)
<brendyyn>id check XDG_DATA_DIRS and XDG_CONFG_DIRS
*apteryx facepalms: Icecat -> Settings -> Applications "file" was mapped to Action "libreoffice".
<rekado>apteryx: hah, I was just about to recommend checking that
<apteryx>I think the reason it was set like this is because I had issue with Icecat opening the correct application in the right place, though. This is on Guix System.
<rekado>for the record: go to about:preferences, search “applications”, and play with the table mapping content types to actions.
<apteryx>rekado: shouldn't the installed apps be picked up automatically, based on the MIME type of the file and their .desktop description (I don't really know what I'm talking about, but I think it has to do with this :-))
<rekado>I don’t know. My preferences here are “Always ask”
<brendyyn>you can look in gnu/build/python-build-system.scm, and gnu/build/meson-build-system.scm, and have a brief look at how they are different. each build system exists as a series of "phases" that do thing like patch shebangs, run configure, make, etc...
<sarg>Is there a way to install individual locale? Don't want to pull (make-glibc-utf8-locales glibc) into my config to change only hardcoded list of locales.
<brendyyn>its possible to take the phase from another build system and include it. it takes setting #:modules and #:imported modules in a way you wouldn't easily guess, but fortunately there are examples in guix already. if you search the repo you will see examples like:
<kmicu>So it’s official: Guix will be leaving GNU and starting new libre operating system organization KINDNU (which is like GNU but with more kindness). Also there’s new experimental branch of Guix called ‘welltyped’ where we start writting modules in Shen to check if a good type system can help us prevent runtime errors in Guix, help appriciated.
<brendyyn>Parra, that being said guile is a powerful language that you can use to build up your ideal system. you can write your on zig based build system bit inheriting most of the gnu-build-system and making the small changes you need. packages can be definied by simply `inherit'ing them and swapping in your build system. obviously everything will break at first and you will need to go through making fixes
<starcrATI[m]>kmicu: Well thats cool I guess, is there a blog post or something similar ? I'd like to know more about this :)
<kmicu>Automotive systems require high degree of correctness that’s why we will focus on introducing seL4 as an additional Guix kernel and write replacement modules in Shen.
<Parra>brendyyn: that would be great, but I'm not sure I'm able to do it, I'm not enough expert in guile
<hulten>I always found Ubuntu in the Tesla vehicles a bit unsettling (but maybe any similar software complexity is for cars).
<brendyyn>Parra, start by packaging just 1 program you want, switching it to zig, then have a study of gnu/build/gnu-build-system.scm.
<brendyyn>i think guix does not limit you fundamentally. you cannot expect swapping out a whole core compiler to be trivial and not require lots of debugging
<kmicu>(Those new tasks will be developed in addition to usual Guix work so progress on introducing Hurd will not be impacted.)
<brendyyn>Parra, also look in gnu/packages/.. for mentions of %current-target-system. you can see how some packages define special rules for a given targed, if you want to make packages work on an obscure system
<Parra>brendyyn: you are right, I will experiment with it
<Parra>the real need is to provide full cross compiling for different triplets than linux
<hulten>Does someone understand what the /gnu/store/*-*-configuration/ items are, or any directory in /gnu/store/ that don't end with a version number?
<Parra>I've tried mingw32 but it fails, and macos is not planned to be in there
<rekado>hulten: these are probably the results of profile hooks
<rekado>see line 1525 in guix/profiles.scm for one example
<hulten>Thanks, I'm reading the comments in the source to make sense of it (right now, I don't know what a profile hook is).
<hulten>My *guess* so far is that certain software maybe tries to do non-guixy things like writing configuration where it shouldn't, and these hooks are ways to work around this?
<rekado>hulten: profile hooks are for generating stuff when a profile is built.
<rekado>such as configuration files or databases that depend on the contents of the profile.
<mbakke>hmm, on the 'core-updates' branch, 'guix build -s armhf-linux foo' on an x86_64 system returns "x86_64-linux" for (%current-system).
<mbakke>at least inside the (patches ...) field of an origin
<hulten>rekado, I understand that these are ("data") objects, by default symlinks, pointing to stuff in real packages (the /gnu/store/*-PACKAGE-VERSION/ directories).
<hulten>I suppose that the symlinks to binaries in the texlive package is a peculiarity of the build process (or demands) of TeX Live?
<hulten>Because I would not expect binaries but rather configuration or database stuff (consistent with the %default-profile-hooks list).
<hulten>I am talking about /gnu/store/*-texlive-configuration/bin/*.
<rekado>hulten: texlive-configuration generates a union to make the configuration work.
<rekado>hulten: see the comment there: ;; Build a modifiable union of all texlive inputs. We do this so ;; that TeX live can resolve the parent and grandparent directories ;; correctly. There might be a more elegant way to accomplish this.
<nckx>In fact, I think that further proves my point: ‘ERROR: m3u8 download detected but ffmpeg or avconv could not be found. Please install one’ isn't only quite clear, but gives the user a choice. It's not ‘please install ffmpeg to use this script at all’.
<bricewge>I did not realize the size increase was that large.
*nckx doesn't actually download from YT with YTDL so has never even needed ffmpeg.
<bricewge>I'll close the issue. Thanks for reviewing it though.
<zzappie>kmicu: pine people say that only non-free components are WiFi and Bluetooth firmware and modem
<nckx>bricewge: We're obviously looking at that error in different ways. I think it's a rare example of a damn good one and friendly, you think it's ugly and shouldn't even be shown to users at all (my reading at least). I get that.
<nckx>bricewge: My pleasure. Sorry you didn't get what you wanted from me 🙂
<nckx>I should've used the real error instead of my silly note. My bad. I was too lazy to find a video that triggered it and just typed something.
<nckx>Because despite discussing a script called youtube-dl, I forgot that Youtube existed. I… guess that's a good thing?
<bricewge>Less time wasted more time spend coding; definitely good overall.
<nckx>kmicu: <replicant> That's a wild link, although I'm sceptical of how it's written (I am 100% certain the court did not rule that he had to ‘work on more constructive things like adding support for phones with a removable battery only’, for example. Not in those words).
*nckx (defiantly) I'll waste my own time, I don't need no stupid Google to help me!
<sirgazil>brendyyn: I think it is about time that users of the Guix System start calling it a/the GNU operating system. I think calling this "GNU/Linux" leads to false expectations about hardware support and software availability (just to mention the practical side of things).
<brendyyn>sirgazil, I say I run the GNU operating system anyway ;)
<nckx>It's a bit annoying that our ‘base32’ isn't the common one (at least one person a year gets confused by this), but I can imagine some client/manager/professor not liking running /gnu/store/fuckubob-icecat every day. I guess.
<zzappie>kmicu: omg this replicant article is awesome. I agree nckx that it looks strange in some parts not to mention they posted it on April 1st
<nckx>Oh god, I didn't even notice that. I hate today so much.
<lfam>"Exploiting these weaknesses, Vranken was able to create a server that impersonated downloads.openwrt.org and served a malicious update. As long as the malicious file is the same size at the legitimate file, it will be executed by a vulnerable device."
<lfam>"But Vranken found that it was possible to bypass the hash check by adding a space to the beginning of an input string in the checksum_hex2bin function."
<nckx>‘Security researcher Guido Vranken, however, recently found that updates and installation files were delivered over unencrypted HTTPs connections’
<nckx>Common mistake. HTTPs is only half as secure as HTTPS.
<lfam>I wonder how easily you could bypass our hash check and signature verification
*nckx really happy they build owrt from source right now :-/
<nckx>lfam: Ever done more than wonder? I poked around a bit but got bored before I found anything of interest. I don't have the patience.
<rekado>we can override the ruby that’s used by the ruby-build-system.
<PurpleSym>Do we have an installer nightly somewhere? I can recall Ludo asked people to test it, but I can’t find it on the mailinglist. The one one the website is failing with a null pointer dereference for me.
<nckx>PurpleSym: No, you'd generally just build it yourself with the one-liner in the manual.
<nckx>So… now I have (symlink (match (find-files "." "\\.so\\.[^.]*\\.[^.]*$") ((head _ ...) head)) "libnetpbm.so"), and that's not including the new #:modules (…) :-/
<nckx>That's a lot of noise just to avoid hard-coding the soname.
<alextee[m]>rekado: i managed to move on quite a bit, now i stumbled across another configure script that uses "/bin/sh", but this is all generated as part of that make command, so i can't really patch it in-between. maybe i should somehow make "sh" available at "/bin/sh"? is that possible?
<raghavgururajan>apteryx Btw, I forgot to ask. When I ran `guix lint`, I didn't get any errors regarding indentation.
<alextee[m]>rekado: so i almost managed to build mruby-zest in an environment (it just fails at link time now with libuv but that can easily be fixed). however i get build failures because of this and im not sure how to fix it: /tmp/guix-build-mruby-zest-ghaction.drv-0/source/deps/mruby-file-stat/configure: line 4383: /bin/sh: No such file or directory
<mbakke>NieDzejkob: about 70%. sure of the first reboot. They actually had a similar problem on that same network a while back (and called me), but then they just set a static IP and moved on (the network was apparently somewhat experimental at the time).
<alextee[m]>3 packages: libuv built with -fPIC, mruby-zest special branch (from mruby-zest-build repo) and zyn-fusion is the same repo as the zynaddsubfx package, so maybe we can just inherit or something
<mbakke>FWIW the laptop in question was one of those rebranded things from a local reseller
<mbakke>waiting for confirmation on the actual brand, I see the reseller now stocks Compal
<mbakke>side story, when the same laptop was on my network, they were unable to SSH to one particular server, but they could jump through another machine on the local network without problems. I could see SSH packets coming back from the router, but not getting accepted by their PC O_o
<mbakke>so we've known for a while that the laptop has some funny network issues