IRC channel logs

2021-10-19.log

back to list of logs

<char>I get the idea. thanks nckx.
<nckx>Toppo.
<nckx>mekeor[m]: Did you pull in the meantime?
<mekeor[m]>i just rebooted and selected the older generation, nckx
<nckx>And now you can't roll back to it without an Internet connection? What does Guix say it needs?
<mekeor[m]>i solved my own issue by working it around. but for some reason guix wanted to download some grub and bison related stuff when rolling back
*mekeor[m] shrugs and goes on
<nckx>Aight.
<ajarara>Is there a way to run the graphical installer on an already running guix system? Something like `sudo "$(guix build -e '(and (use-modules (gnu) (gnu installer)) (installer-program))')"`
<ajarara>it almost works, but I get some error a few steps in
<Christoph[m]>In the current (3rd) episode of https://haskell.foundation/podcast/ , they argue that a configuration language should not be Turing complete in order to prevent dangerous attacks. Guix uses guile as configuration language. Is there a danger there?
<ajarara>probably another idea is to run the installer image as a VM, though I'd need to mount the new drive in the VM somehow
<gabr000>here is my package def for lutris. pls help. error in the check phase https://paste.ubuntu.com/p/MbZ4Fj46tb/
<drakonis>its #f
<drakonis>not #false
<drakonis>gabr000: #:tests? #f
<drakonis>you set #false
<gabr000>let me see...
<gabr000>the same error ocurred. when i try open lutris: Traceback (most recent call last):
<gabr000> File "/gnu/store/45scjjkib9lrjgin0p67fr31pzcla02z-lutris-0.5.9/bin/.lutris-real", line 52, in <module>
<gabr000> from lutris.gui.application import Application # pylint: disable=no-name-in-module
<gabr000> File "/gnu/store/45scjjkib9lrjgin0p67fr31pzcla02z-lutris-0.5.9/lib/python3.8/site-packages/lutris/gui/application.py", line 29, in <module>
<gabr000> gi.require_version("Gdk", "3.0")
<gabr000> File "/gnu/store/5yhmdzfwv0nn7l3d24i0qk75kv3dg94a-python-pygobject-3.34.0/lib/python3.8/site-packages/gi/__init__.py", line 129, in require_version
<gabr000> raise ValueError('Namespace %s not available' % namespace)
<gabr000>ValueError: Namespace Gdk not available
<gabr000>
<drakonis>ah yes, missing dependencies?
<drakonis>install unzip and run the importer with the recursive flag
<gabr000>importer with recursive flag?
<drakonis>ah right, lutris isnt a pypi package
<apteryx>drakonis: #f == #false by the way (learnt that recently as well ;-))
<drakonis>but you have a missing dependency
<drakonis>hm
<drakonis>lutris will very likely require some more changes due to it downloading wine binaried
<drakonis>binaries that require specific environments
<gabr000>i will try put the basic propagated packages
<gabr000>into the input
<gabr000>i tried add `(("evdev" ,python-evdev)
<gabr000> ("pygobject" ,python-pygobject)
<gabr000> ("python-magic" ,python-magic)
<gabr000> ("pillow" ,python-pillow)
<gabr000> ("requests" ,python-grequests)
<gabr000> ("pyyaml" ,python-pyyaml))) into native-inputs and inputs but got the same result
<podiki[m]>there's a (I believe) working lutris package on a custom channel on github, though given it is a channel of nonfree I'm not sure if I should link it here
<podiki[m]>(you can probably find it by searching or ask in the other channel)
<gabr000>i have guix-gaming and nonguix but not in there alsa
<apteryx>podiki[m]: you shouldn't :-)
<apteryx>gabr000: looks like it's lacking a gdk related python library?
<apteryx>mbakke: I was wondering why the likes of 'third_party/wayland-protocols' and other 'standard' libraries can't be removed from the sources of ungoogled-chromium? I guess it's build system doesn't allow for it?
*apteryx is happy to see xz using 2400% CPU on the core-updates-frozen branch ;-)
<podiki[m]>c-u-b-c still not building?
<podiki[m]>err c-u-f-b-c
<apteryx>eh. The CI failed to build it though I'm unsure why.
<apteryx>The last derivation it seems to have failed on built fine on my machine
<apteryx>it's a bit frustrating
<zacque>Hi #guix
<podiki[m]>hi there
<euandreh>IIUC, mcron doesn't send emails and doesn't look at $MAILTO, and collects messages into /var/log/mcron.log. Is that right?
<podiki[m]>definitely do see /var/log/mcron.log but never setup any mailing so can't be sure about that part
<lfam>I'm trying to build the Rust crate b3sum: https://crates.io/crates/b3sum/versions
<lfam>I used the importer to create the necessary package definitions
<lfam>Now, it fails the test suite like this:
<lfam> https://paste.debian.net/1215926/
<lfam>And this is the file implementing the test suite: <https://github.com/BLAKE3-team/BLAKE3/blob/0.3.8/b3sum/tests/cli_tests.rs>
<lfam>I'm not sure exactly what file is not found
<lfam>Oh, it's probably '/bin/sh' that's missing
<apteryx>euandreh: by default on guix, yes, I think so. Note that it has some feature to send mail to be enabled per-job though.
<apteryx>I haven't tried it yet.
<euandreh>apteryx: really? I didn't see a mention of it on the manual. Let me check if I overlooked it.
<euandreh>podiki[m]: ACK, both stdout and stderr go there
<apteryx>euandreh: info '(mcron) The redirect module'
<euandreh>apteryx: ty!
<lfam>Is there a tool like `guix refresh -l` for Rust packages? I'm thinking of changing something in the dependency graph of rust-cargo-0.53. Is that considered okay to do?
*euandreh stretch to read some nice well-written documentation
<apteryx>lfam: mostly no, because of the non-standard way of the rust-build-system of declaring rust inputs as arguments
<apteryx>(about your first question)
<lfam>Yeah, I was hoping something had been developed to assist
*apteryx wishes the rust-build-system could behave like the other build systems
<lfam>It doesn't even seem like the package dependency graph exists in any sense
<lfam>Like, rust-cargo-0.53 depends on rust-rustfix-0.5
<lfam>I make a change to a direct dependency of rust-rustfix-0.5, but it seems this does not change the derivation of rust-cargo-0.53
<lfam>Gonna try to confirm that...
<lfam>Maybe Rust itself doesn't have a concept of transitive dependencies? I'm not sure how things are expected to work in Rust land
<lfam>Confirmed. But maybe the issue is that I'm only changing a development input
<lfam>Well it's a question for the rustaceans!
<raiguy>what's the best way to change a package version? i want to change a version of an existing package in the guix repo.
<raiguy>nvm, it had a debug output that i somehow didn't notice
<lfam>raiguy: In the future, you could also try the Package Transformation Options of `guix build`
<lfam> https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html
<lfam>(It also works for `guix package`)
<zacque>Hi, how can I customise the %patch-path for a package module instead for just a single package definition?
<zacque>Right now, I can do it for a single package by parameterizing %patch-path: https://paste.debian.net/1215933/
<char>What is the deal with service interfaces (think mysql programing language bindings) having to disable tests because the tests require a running service.
<qzdlns[m]>morning guix
<davidl>How can I use a setuid program like ping (from inetutils) as a propagated input to a package and have it work in a guix environment?
<davidl>I tried guix environment --pure -N -l .guix-pkg -- bash (where .guix-pkg evaluates to a package with inetutils as propagated input)
<davidl>the error message i get in the environment is: ping: Lacking privilege for raw socket.
<Gooberpatrol66> https://issues.guix.gnu.org/46278 this patch looks like it added fwupd but guix won't let me install it. was it removed?
<jonsger>Gooberpatrol66: it was not merged. The "merge" means that bug numbers where group together :)
<Gooberpatrol66>ok
<vivien>I see that master has been merged into core-updates-frozen, thanks!
<civodul>Hello Guix!
<jpoiret>i'm getting a tramp error when trying to use sudo: "couldn't find command to check if file exists"
<jpoiret>any idea?
<civodul>jpoiret: is this when connecting from a foreign distro to a Guix machine?
<jpoiret>nope, locally on a guix system
<civodul>oh, dunno then
<jpoiret>although i'm not using emacs-tramp, perhaps that may be the issue
<jpoiret>just the bundled one
<civodul>yes, same for me
<civodul>i didn't know there was a separate emacs-tramp package
<civodul>well, i guess you'll have to M-x toggle-debug-on-error :-)
<jpoiret>on another note, why does guix pull fetch the whole texlive distribution
<jpoiret>yep, that's what i did and apparently tramp cannot find either of test or ls, which is weird
<jpoiret>re: my `guix pull --branch=core-updates-frozen` is still running after downloading the whole texlive, why would that happen then rather than on `guix package -u`?
<jpoiret>ah, because i'm locally building the texinfo?
<civodul>jpoiret: "guix pull" builds Guix and all its dependencies; presumably something must be pulling texlive
<civodul>although "guix graph --path -t bag guix texlive" says no, hmm!
<civodul>in other news: 'guix shell --check'! https://issues.guix.gnu.org/51285
<robin>python packaging q: do python packages normally have to set PYTHONPATH to include python-library inputs when wrapping scripts or does python-build-system handle it automagically?
<robin>(yt-dlc crashes immediately without some library inputs and runs when they're present, but i'm not sure how to check whether that's actually sufficient...)
<vivien>robin, if it’s a script that you run as a program, you need to wrap it with wrap-program (in (guix build utils))
<abrenon>hello guix !
<Guest98>is it possible to run guix system reconfigure on a mounted guix system?
<Guest98>like if i was dualbooting guix with another guix can i run guix system from one to the other
<Guest98>i know guix system reconfigure just updates the current system but can i update a mounted guix partition using it?
<Guest98>also does anyone please please have a working spotify package channel or something?
<Guest98>its really a pain using spotify from flatpak it doesnt work with dbus
<abrenon>I suppose it could work if you chrooted on it and told guix to use the already runnning guix daemon on the main system but I don't know how to do it
<Guest98>would guix system init work in that case?
<Guest98>or does it overwrite the whole partition
<abrenon>hmmm ^^ no idea, but isn't that just how the installer works ?
<Guest98>ye that installs a new system
<Guest98>dunno if i can use it on a pre-existing system
<Guest98>dont wanna overwrite my home directory lol
<Guest98>just wanna reconfigure my system
<abrenon>that's understandable : )
<Guest98>im only 1 obstacle away from making guix my daily driver
<Guest98>i just need a properly working spotify installation :'(
<Guest98>thats literally the only thing left
<Guest98>spotify from flatpak sucks
<Guest98>i need a proper guix package
<Guest98>couldnt find any
<abrenon>I suppose you could make one ? what do they distribute ? I suppose it's not source code ?
<excalamus>good morning, Guix!
<Guest98>not sure lol
<Guest98>gm
<Guest98>maybe i should write my own lol
<Guest98>imma do that actually lol
<abrenon>excalamus: o/
<Guest98>hope it doesnt take me 2 weeks
<Guest98>guix is literally the best thing ever
<Guest98>we just need more nonfree channels lol
<Guest98>to make it more usable
<abrenon>Guest98: if they distribute binary only, you can be sure that it will never be packaged in the official channel, but have you searched other non-official ones ? there's nonguix, there are a couple for games too
<Guest98>ye i literally searched for every channel i could fine
<Guest98>find
<Guest98>didnt find 1 package definition for spotify
<abrenon>well yes and no, because it's not only about usability, and there are many metrics for which a binary package is less "usable" than a binary one
<abrenon>so actually, I think free software only is a very interesting and important statement to make, especially given the current context in IT in general
<abrenon>the fact that it lets one create any package they like, even closed-source, proves that this approach is general enough
<robin>Guest98, packaging binaries is ime mostly a problem of patchelf'ing in rpaths; trivial for some programs, extraordinarily difficult for others
<robin>Guest98, like this (snippet from a binary mlton package): https://paste.debian.net/1215967/
<robin>(using ldd to find out what libraries the binaries need)
<robin>nix has an autopatchelf tool that's pretty simple (i rewrote most of its functionality in scheme but lost the file :/)
<robin>if it's just a binary linking to free libraries (and maybe a couple of their own) it will be pretty straightforward
<zacque>robin: Is there a package definition for mlton?
<zacque>robin: Could only find polyml in the official channel
<robin>zacque, i'm hoping to make one in the next couple weeks. mlton calls itself from its own makefiles to generate lists of prerequisites...
<robin>which is easy enough to patch, so whether it's doable depends on whether the polyml bootstrap works
<robin>no open issues mentioning polyml...i did find this though :) https://github.com/MLton/mlton/issues/350
<robin>zacque, alternatively i guess i could make a channel with binary sml packages
<zacque>robin: I read from the README.adoc that MLton seems to be bootstrappable from SML/NJ?
<zacque>robin: That will be great as well
<zacque>robin: I've been trying to build SML/NJ in the past few days, but little progress has been made
<robin>zacque, oh, apparently so. but sml/nj is possibly harder to bootstrap
<zacque>robin: Oh, crap!
<robin>one of my first guix packages was sml/nj -- little did i know what i was getting myself into -- and i think there was some pregenerated cruft i wasn't sure how to regenerate (without sml/nj...)
<jpoiret>anyone else having /builder for `/gnu/store/snw86i0xknnb21p5jn8m7hcl24wxpniq-guix-package-cache.drv' failed to produce output path `/gnu/store/j8ln50nfydlcw6vj1g4ikxlcxl1nffaf-guix-package-cache' while `guix pull --branch=core-updates-frozen`?
<zacque>robin: Wow, that must be quite a journey
<zacque>robin: But what do you mean by "some pregenerated cruft i wasn't sure how to regenerate (without sml/nj...)"?
<robin>zacque, this was three years ago so i don't remember, i might be totally wrong (maybe it came with a base image that could be recompiled from c or something along those lines)
<jpoiret>disregard what i just said, this a channel's fault
<robin>i'll paste the definition
<robin> https://paste.debian.net/1215975/ (the "i686-build-system" hack is no longer needed, sml/nj supports amd64 now)
<apteryx>civodul: Hello! I got a gawk test failure rebuilding core-updates-frozen(-batched-changes); just created a ticket for it, 51286
<robin>"Warning: When pulling the latest sources via subversion, there is no guarantee that config/install.sh will operate successfully due to a lack of usable bootfiles. In this case you might be able to generate new bootfiles using the bootstrap compiler (of an older version). Even that can be very difficult or even impossible, however, in which case you will have to wait for the next working version to be released." -- https://www.smlnj.org/dist/working/110.99.2/inde
<robin>x.html
<apteryx>sneek: later tell mothacehe any clue why core-updates-frozen-batched-changes on the CI keeps failing the evaluation stage?
<sneek>Will do.
<robin> https://www.smlnj.org/dist/working/110.99.2/index.html (bad auto-split)
<robin>i don't remember what a "bootfile" is though
<zacque>robin: Wow, what a long package definition! Will try to adapt it to the latest version =D
<robin>"To be able to use the bootstrap compiler, one must first install SML/NJ (i.e., the interactive system that contains the compiler) as well as both ML-Yacc and ML-Lex." -- https://www.smlnj.org/doc/CM/btcomp/node4.html
<robin>...doesn't sound terribly promising
<zacque>robin: Oh, crap
<zacque>robin: Ha! Seems like SML is very much like Lisp then
<robin>yeah :p
<robin>i wondered at the time whether it might be possible to bootstrap sml/nj via mlton, by porting the compilation manager to mlton
<robin>but i barely know how to use the CM, much less port it
<robin>hm, i wonder when sml/nj's first release was
<zacque>robin: SML/NJ CM is a mysterious black box...
<zacque>robin: Not sure about SML/NJ first release,
<zacque>robin: But last time I found something like the first SML implementation in Lisp on Github
<robin>technically 1997ish, but i have a feeling it might have been ML/NJ before that
<robin>zacque, oh, really? that might actually be useful
<robin>especially given https://github.com/MLton/mlton/issues/350#issuecomment-552483969 , and polyml is a very minimalistic implementation
<robin>(idk if fluet's claims about polyml shipping with "ASCII blobs" are correct or not)
<robin>and "As for the particular issue with the make polyml-mlton depending on an installed mlton: the reason is that the Makefile is using mlton -stop f to determine the in-order list of source files." is what i was referring to with mlton calls in the mlton makefiles
<robin>polyml does have at least some...odd-looking files like bootstrap/bootstrap64.txt (a 22k-line file filled with lines like "3946:C4|@22482,@13637,@22529,@22531")
<robin>and the .c files are tiny (i was under the impression it was implemented in c, maybe it's more along the lines of an sml->c compiler)
<zacque>robin: Urg, I lost the link to the repo
<zacque>robin: But can't be sure that it's useful though, I didn't look into the code
<apteryx>I've pushed 3 fixup commits to core-updates-frozen-batche-changes -- if ungoogled-chromium builds there, I'm positive a big chunk of the world will also (I've tested with a rather large profile).
<jpoiret>what's in core-updates-frozen-batched-changes?
<zacque>robin: Ya, it's more like sml->c++ compiler. I tried running polyc in "guix environment" and had to include the "gcc-toolchain" cause it complaint g++ is not found
<robin> https://smlfamily.github.io/history/SML-history.pdf might be useful (has an appendix of sml implementations, maybe describes how it was originally bootstrapped...)
<robin>"Edinburgh ML was the first implementation of the language." -- p81
<robin>...but not lisp (apparently what sml/nj was developed with though?)
<zacque>robin: I remember it has something to do with the LCF project and the github repo has something to do with edinburgh or LCF
<zacque>robin: Nope, it's implemented in Lisp? See: https://caml.inria.fr/about/history.en.html
<jpoiret>is there any way to remove the root user profile?
<robin>zacque, the history appendix says "It was a reimplementation of Cardelli ML written in itself (with the runtime system written originally in VAX assembler and later rewritten in C)",
<robin>maybe the webpage is referring to LCF specifically?
<robin> https://github.com/Ravenbrook/mlworks hmmmm
<robin>(originally from harlequin)
<zacque>robin: It's in Lisp! Ha! Quote secton 2.1: "Lisp 6 was the language used in the Stanford LCF project [Milner 1972] that Milner had developed in collaboration with Richard Weyhrauch and Malcolm Newey before coming to Edinburgh"
<zacque>robin: I've found the github repo: https://github.com/theoremprover-museum/LCF77
<zacque>robin: But not sure how useful it is
<zacque>robin: Another relevant(?) one: https://github.com/kohlhase/CambridgeLCF
<robin>also https://github.com/lonnell/cl-sml which is just a mirror of debian's (lisp) HOL88 source
<robin>poplog supports sml! i doubt it's directly useful but certainly historically interesting (simultaneously supported POP-11, CL, Prolog and SML)
<dstolfa>the history of ML is it being used as a meta language (hence ML) in a proof assistant based FOL, which over time evolved into HOL because FOL wasn't a good enough abstraction for mike to model hardware. however, it turned out that HOL was not only sufficient, but near perfect for modelling hardware (and proving things about it). out of that grew the programming languages you know (SML, OCaml, F#, ...) and a
<dstolfa>number of proof assistants with roots in LCF (Isabelle, HOL4, HOL-Light, etc)
<dstolfa>if you want to use SML these days, the best two choices are probably PolyML and mlton
<dstolfa>Poly plays nice with proof assistants as it's usually the basis of their implementation
<dstolfa>Larry gave a really good talk about this in rememberance of Mike back in 2018: https://www.cl.cam.ac.uk/~lp15/papers/Notes/ARW-2018.pdf
<civodul>apteryx: hi! i just saw the gdk-pixbuf-loaders-cache-file hook, haven't tried it, but nothing to declare at first sight!
<robin>SML.NET appears to be written...in SML
<robin>it's SMLs all the way down
<civodul>apteryx: that said, i'd really like to get rid of hooks as much as possible as discussed the other day; do you know long this one takes?
<robin>dstolfa, oh neat, i'll definitely have to read that. i've used Coq quite a bit but never really got into the history of ML variants and related proof assistants (despite reading some of milner's textbooks)
<zacque>robin: What's so interesting about POPLOG? Does it has something to do with prolog?
<dstolfa>robin: some of the references from those slides are worth reading in a bit more detail if you're interested, especially Avra's work
<zacque>dstolfa: Thanks for the history recap and the PDF file!
<robin>dstolfa, good to know, ty
<robin>zacque, pop-11 by itself didn't sound terribly interesting (https://en.wikipedia.org/wiki/POP-11), the interesting part to me is supporting cl, prolog, and sml in one runtime (although i guess you could say .NET/CIL has reached a similar point, though i don't know if there's a "prolog#")
<robin>ah, computing archaeology. search for lisp and find references to ISWIM...(in the SML history pdf)
<robin>from SML.NET's .bat build file: "call %SMLNJ_HOME%\bin\ml-build src/sources.cm TopLevel.entry bin/smlnet >bld\build.smlnet.log 2>bld\build.smlnet.err" *sigh*
<robin>SMLj also requires SML/NJ to build
<robin>HOL88 mk-ml.lisp: "DESCRIPTION: Loads compiled lisp files to create an ML system" hmm
<robin>hol88 does appear to implement (some dialect of) ML in lisp
<attila_lendvai>is there something like pkgs.mkShell for guix?
<roptat>hi guix!
<abrenon>hi roptat
<zacque>roptat: I see, that sounds interesting! Will dig to learn more about it =D
<zacque>Opss, to robin ^
*robin ponders whether it would be easier to write an SML interpreter or bootstrap from decades-old packages
<rekado_>attila_lendvai: what does pkgs.mkShell do?
<robin>(guile-sml??)
<zacque>robin: SML -> C -> SML?
<robin>zacque, if it produces human-readable c, that'd do it
<zacque>robin: I think machine executable is enough...
<robin>zacque, i think that's a bit of a grey area, but that might suffice
<robin>"His project was to develop a program for automated theorem proving, but he got caught up in using the university computer to design a boat." -- https://en.wikipedia.org/wiki/Robin_Popplestone :D
<zacque>robin: Haha!
<attila_lendvai>civodul, i don't understand what you need from me wrt the git-authenticate issue (http://issues.guix.gnu.org/50814). there is a test among the commits that documents what i believe is a serious bug. if you apply the 3 test commits, then you can see for yourself the newly added test fail (make check TESTS="tests/git-authenticate.scm"). then the only question left is whether what i wrote in the test are valid expectations or
<attila_lendvai>not. you can completely ignore the two other commits until you're convinced that there is an actual bug.
<robin>ok, poplog is a dead end i think (all the porting guides i've skimmed involve cross-compilation from an existing installation)
<civodul>attila_lendvai: hi! like i wrote, the discussion has gone too far and it's not longer clear to me what issues there are
<civodul>there's one issue you mention (authenticating the intro commit) which i said is not a bug to me
<civodul>then there are patches for mostly unrelated things (right?)
<civodul>so it's just that i'm lost :-)
<civodul>too many things for my little head in this issue
<attila_lendvai>civodul, i'm sorry for the lack of clarity, but it's not possible to cut the issue/patchset into anything smaller. i did some cleanups/refactorings that are needed for the new test. all i can do is cut the issue into two: 1) add a test 2) fix the bug. but that's equivalent to applying only commit 1-3, and then 4-5.
<attila_lendvai>scratch the specific ordering i mentioned above, the commits are ordered differently so that the failing test doesn't break git bisect.
<jpoiret>i just ran `guix pull --branch=core-updates-frozen` and now i can't find any substitutes even though ci.guix.gnu.org reports build successes for most packages i checked (`guix weather` reports them as not available tho)
<zacque>robin: Moscow ML seems to be bootstrappable from C lang, but I couldn't get it to work. Git repo: https://github.com/kfl/mosml
<zacque>robin: I try to compile it in `guix environment --container --pure --ad-hoc gcc-toolchain make busybox`, then `cd src`, then `make world`.
<robin>zacque, i'll give it a shot in a little while, caffeine time
<robin>i also found https://github.com/SOSML/SOSML (an sml interpreter...in typescript)
<rekado_>jpoiret: there have been a few changes to that branch and for the latest commits the evaluations have not been successful
<attila_lendvai>rekado_, it's something like a dummy package that only serves for specifying dependencies that you want available in a shell, i.e. to be used with the nixos equivalent of guix environment -l guix.scm
<rekado_>it’s an obstacle for me too, as I’m trying to fix bugs, but now I’m tasked to build llvm, gtk, and all that on my laptop…
<rekado_>attila_lendvai: you can use “--ad-hoc this that foo” with “guix environment”
<attila_lendvai>rekado_, i know, but i'd prefer to have a file that i check into my project, and any guix users can just fire up guix environment -l on it
<jpoiret>rekado_: wdym by evaluation?
<wigust->hi guix
<jpoiret>not familiar with the ci/substitutes story
<civodul>hey wigust-!
<civodul>sneek: seen yoctocell
<sneek>Sorry, no.
<civodul>hmm?
<civodul>wigust-: what's the status of the "guix home import" improvements and tests?
<civodul>i think we were pretty close, no?
<rekado_>attila_lendvai: you can use “guix environment -m” and use a manifest file then. It’s less boilerplate than a dummy package.
<wigust->civodul: we're waiting for new patch series in 'guix home import'
<civodul>wigust-: how about https://issues.guix.gnu.org/50912 ? perhaps we should include it?
<wigust->civodul: ouch, forget about that. Thanks, i'll look at this.
<jpoiret>so are substitutes only available per-commit, or can you fetch a substitute for a package from a previous guix commit given that it has the same derivation?
<rekado_>jpoiret: I recommend just going back a few commits. You can pick a specific commit with “guix pull --commit=”
<jpoiret>yep, that's what i'll do. commit 0df1eb029efe5ebe3f02e36fa650cae4aaba89ec doesn't seem to have evaluation problems
<jpoiret>but still, i'm wondering why we couldn't just download the already built substitutes in these cases...
<rekado_>jpoiret: the point is that the derivations in this case are NOT the same.
<jpoiret>ahhhh, my bad then!
<rekado_>the evaluation failed because of a spurious error in the test suite of ruby-prawn. It built fine on my laptop, so I just restarted the evaluation. Let’s see if that helps.
<zacque>robin: I can build Moscow ML with gcc with no problem.
<zacque>robin: Reproducible (five) steps: https://paste.debian.net/1215999/
<zacque>robin: Seems like that's the way to go?
<zacque>robin: Not sure if Moscow ML can be used to bootstrap SML/NJ or MLton
<civodul>wigust-: i was also wondering whether we should include things like ssh.scm that were in the original repo?
<civodul>it'd be useful
<robin>zacque, perfect, great find! it might take some work but istr polyml being *very* rudimentary, so i'd be surprised if this couldn't compile mlton with only minor changes
<robin>it even has rudimentary .mlb support
<robin>actually, from src/mosmlb/README.md: "TODO [...] 5. Test suite. [...] * Compile MLton if possible." :P
<robin>and moscow ml actually looks like a decent implementation itself
<robin>(doesn't help with smlnj, but i could imagine it replacing smlnj's role in hcoop.net development: fast mosml compiler for hacking, slow mlton compiler for deployment. for the...2 members (myself included) who're guix users anyway ;))
<awb99>does someone know what is the underlying issue when I get a "conflicting entries" error when I install a package? this is the log https://paste.debian.net/1216005/
<zacque>robin: Good catch, I didn't look into the mosmlb/README.md
<zacque>robin: Ha! Wish that there are more SML programmers out there
<lfam>awb99: Yes, I understand that warning
<lfam>awb99: In short, if you want to get rid of it, you should do `guix package --upgrade=. --install=pdfarranger`. That is, you should upgrade the entire profile at the same time you install pdfarrange
<lfam>(--upgrade takes a regex)
<lfam>It means that you already have a package in your profile that propagates python-pillow, but an older version than the pillow that is propagated by what you are installing
<lfam>Propagation of packages means that they are installed into your profile along with the package that propagates them, and it's something for packages to avoid when possible, for reasons like this
<lfam>So, you could upgrade the entire profile, or try only upgrading scipy when you install pdfarranger
<lfam>A more long-term option is to use a manifest with your profile, instead of imperatively managing your profile by adding and removing packages one at a time
<lfam>By using a manifest, you ensure that your entire profile is based on a single Guix revision, rather than being composed of whatever Guix revision was current at the time you installed X or Y package
<lfam>I meant to say that *packagers* should avoid using propagation when possible. Packages are not sentient and don't attempt things :)
<lfam>Unfortunately, some languages (like Python) don't offer a better option for dependency management than propagation
<awb99>thank you Ifam! what a detailed explaination!
<awb99>the weird thing is, that both python-pillow have 8.1.1. I guess one of them has grafts applied, and the other has not?
<lfam>Grafts should always be applied unless you explicitly passed --no-grafts
<lfam>Notice, although they are both 8.1.1, the hash portion of the store items' names are different
<lfam>That means that *something* is different in the dependency graph of these pillows
<lfam>And so, to Guix, they are different "versions" of the package
<awb99>Could you tell me what "propagation" means?
<lfam>It means that the propagated package is installed into your profile
<lfam>Just like pdfarranger. Normally, dependencies are not installed into the profile, but are instead found by other means
<awb99>so propagated package = transient dependency?
<lfam>No
<lfam>Well, I'm not sure what that means :)
<lfam>It means that it's a dependency that can't be found by the dependent package in a better way
<lfam>For example, with C programs, dependency locations are "baked in" to the binary via RUNPATH
<lfam>Most languages have something like that
<lfam>But Python does not
<lfam>If you aren't sure what I mean by "install into the profile", I recommend looking at the profile itself, on your filesystem
<lfam>Especially the Python portion: ~/.guix-profile/lib/python3.8/site-packages
<lfam>You'll see that it's a collection of symlinks to the actual store items
<lfam>And you'll see that there is no simple way to include two items with the same NAME-VERSION
<awb99>I see!
<lfam>Profiles are actually stored at, for example, /var/guix/profiles/per-user/lfam
<awb99>So essentially, guix IS able to keep different versions of the packages. BUT the PROFILE can only keep one symlink.
<lfam>Basically
<lfam>So, most languages make it easy to avoid this problem
<awb99>So for my profile, it needs to decide which package will be used for the symlinks.
<lfam>Yeah
<lfam>And, it might work fine. Maybe these two versions of pillow behave the same
<lfam>But, it's not what Guix tries to promise, which is a dependency graph that is "written in stone"
<lfam>Instead, one of your packages (scipy or pdfarranger) will end up using the wrong pillow
<lfam>The comprehensive solution is to use a manifest. In practice, I just try to do `guix package -u . -i foo` when I hit this issue
<awb99>so basically, I COULD use different versions of the package, but in DIFFERENT PROFILES.
<awb99>In one profile, it cannot keep different versions of different python packages.
<awb99>I am installing EVERYTHING via a manifest. But today I just wanted to try out a new app.
<awb99>And since I am unsure if I like this app or not, I did not install it via my manifest.
<lfam>Yes, different profiles are another option
<lfam>For trying things out, I recommend using `guix environment --ad-hoc foo`
<lfam>That way, your profile history does not contain the thing that you just wanted to try out, so `guix gc` can work more efficiently
<awb99>cool!
<lfam>However, `guix environment --ad-hoc foo` can be annoying for some use cases, especially for graphical applications. Like, if you want to start the program with a launcher such as dmenu, using an ad-hoc environment won't make the program available to dmenu
<lfam>Well, nothing is perfect!
<awb99>I am still searching for a way to add app shortcuts to my xfce. I run for example zoom via flatpak, and this does not bring the app icons.
<awb99>Also I would like to make app shortcuts for some of my own custom apps. Could not find out how to do that :(
<lfam>I hope somebody has some advice!
<awb99>"guix upgrade" solved the issue.
<awb99>I thought that I have automated the upgrades for my user profile. But I think I have made an error in my script.
<awb99> https://paste.debian.net/1216010/
<awb99>I have installed a system wide cron job. I thought that it would update my user profile. But it seems it does not.
<lfam>Hm, if it was system-wide, I wonder how it would "act" as your user
<lfam>Maybe a task for the new Guix Home? I think it is supposed to handle per-user cron jobs?
<awb99>well, cron jobs only run for system profile. I specified the user as which to run it.
<lfam>Ah
<lfam>I didn't realize that mcron could do this :)
<awb99>Yes, I would liek to use guix home at some point.
<awb99>But I am too afraid that guix home will make it more difficult to add my own dotfiles.
<lfam>I wonder if mcron runs your job in a login shell, or just an interactive shell. Most features of Guix require a login shell
<awb99>So for now I dont use it.
<awb99>I have no idea, how it does it.
<qzdlns[m]>hi guix!
<talos>Hi guix, hope everyone is doing well. What's everyone's opinions on BTRFS rollback on distros like OpenSUSE, Fedora. And also things like Fedora Silverblue and so forth? Of course I prefer guix, but just wondering lol
<excalamus>hi, qzdlns
<qzdlns[m]>hey excalamus
<lfam>talos: It sounds like a fantastic feature for those operating systems. In Guix, "rollbacks" are handled at another level, for better or for worse
<dstolfa>talos: rollbacks have been a thing for nearly 20 years now, this isn't really new. it's a bit orthogonal to what guix does IMO
<lfam>Overall, I think that the problem of "backups" is still almost totally unsolved on Unix and PC operating systems
<lfam>Storage versioning should be baked into the operating system at a deep level. What we have now is so hacky
<talos>Ah, I see!
<excalamus>when I call guix commands from an org file, the output has lots of control characters in it. Org mode sees the term as dumb. AFAIK, I'm using the default Guix System bashrc, etc. At any rate, I don't see anything that stands out as a problem. Maybe the default bash_completion is messing with it?
<excalamus>the issue seems to be the spinner printing a character, backspacing over it, and printing something else
<excalamus>and things related to the progress bar
<awb99>A simple package install is taking 10 minutes in this stage: "building profile with 182 packages..." Is this normal?
<excalamus>awb99, are you seeing progress? Is this a new system or did you do a gc recently? (I'm no expert, but trying to not leave you hanging)
<awb99>the package install finishes after 10 minutes. What takes the time is "building profile with 182 packages".
<awb99>I am running gc regularly.
<awb99>But I am not sure if the gc also runs on the user profile, or only on the system profile.
<excalamus> running gc is probably contributing.
<excalamus>I'm not sure
<qzdlns[m]>is there a "checking out my first patch series" docu anywhere? in the process of grokking, and I have a patch tracking number for the issue
<qzdlns[m]>totally new to patch-style-mailing-list-development
<excalamus>qzdlns, andrew tropin has a video about it: https://www.youtube.com/watch?v=XVe9SD3kSR0
<excalamus>if you find another resource, please let me know. I'm not familiar with that style either
<qzdlns[m]>yo great thank you
<excalamus>hopefully it helps, it's been a while since I watched it and I don't know how much stuck :P
<qzdlns[m]>there is some invocation with =git am= possible, but —scissor needs line numbers, and honestly it would be ideal to just zap something out of gnus into my source tree
<qzdlns[m]>I’ll write my experience down and maybe make a documentation patch for “your first … patch whatever”
<singpolyma>excalamus: if you haven't seen https://git-send-email.io it is pretty good
<excalamus>I've not seen that, thank you
<lfam>awb99: Building a profile can be kinda slow...
<lfam>10 minutes is definitely a bit extreme, although I suppose it depends on the computer
<excalamus>newbie question, but how do I rebuild a profile?
<excalamus>I should clarify that I'm not using a manifest. If I was I assume it would be guix package --manifest
<excalamus>said differently, how do I rebuild the default profile? Just do a gc and upgrade?
<excalamus>/away, back to work
<lfam>excalamus: What do you mean, rebuild the profile? What are you trying to accomplish?
<mbakke>apteryx: there are probably more things that can be unbundled still, to various degrees of difficulty
<mbakke>pro tip: run the unbundling code in a phase to save time and disk space :)
<hawthorn>i must be doing something wrong, as trying to build guix on guix system (with guix environment guix --pure) fails with some strange errors about building the manual
<hawthorn>from git; will collect a build log here in a moment
<ss2>hawthorn: there's a bug report regarding these errors: https://issues.guix.gnu.org/51259
<hawthorn>great ss2, thank you. i just assumed i was doing something wrong. i'll keep an eye on it
<ss2>Building with d1b375402f5680b1e5a77dd1fb77e1e9d94625d1 is okay for the moment.
<jpoiret>rekado_: http://ci.guix.gnu.org/eval/34033 looks like it's working now, although there's a world rebuild apparently.
<ajarara>besides source formats, is there any lint step for services like there are for packages?
<vivien>What did you do today? I waited for rust to get bootstrapped. It’s not even finished.
<pinoaffe>I shaved some yaks (of the emacs-related variety) for my thesis
<vivien>pinoaffe, are you writing a thesis about emacs or in emacs?
<pinoaffe>vivien: in emacs using org-mode
<vivien>Using org-mode is a very good excuse not to write the document itself ^^
<ajarara>whoah, `guix lint --checkers=format` doesn't format stuff in services. An opportunity to upstream some opinionated patch art??
<vivien>I personally tried org-mode and then got into another rabbit hole: HTML, with enough XSLT to generate a latex document.
<lfam>hawthorn: I found that making sure to set LC_ALL (not sure if LANG is required) appropriately in the pure environment, and re-running the bootstrap step, will lead to a successful build
<vivien>What’s your thesis about?
<pinoaffe>vivien: automata theory
<vivien>Nice!
<ngz>Awwww. %tarball-rx killed me.
<ngz>It doesn't catch giac_1.7.0-39.tar.gz :(
<attila_lendvai>damn expiring pastes... any idea if i can somehow retrieve https://paste.debian.net/1214323 ?
<Noisytoot>unless someone else downloaded it and can resend it to you, probably not
<attila_lendvai>so annoying... i saved it in a TODO in the code, and now it's gone.
<nckx>attila_lendvai: Not unless it happened to be archived elsewhere. I wish people set Never, but I've probably forgot, and unfortunately linking to https://paste.debian.net/?expire=-1 in the topic doesn't work.
<nckx>s/forgot/forgot as well/
<nckx>We're still open to alternate paste sites that don't regress on the other vaguely-defined features that Debian's has.
<Inline>no idea about termbin.com
<nckx>I like netcat, but is it the only interface?
<nckx>That's too high a barrier to entry.
<attila_lendvai>wow! i have it backed up in my todo file?! hrm, this new wave of censorship seems to have turned it into an unconcious routine for me to save stuff locally.
<nckx>We censor for your benefit, citizen.
<rekado_>jpoiret: yeah, no idea why there’s a full rebuild
<attila_lendvai>nckx, that doesn't work on me, i spent the first 10 years of my life in communism...
<nckx>:)
<pinoaffe>attila_lendvai: to be pedantic: did you live in a society devoid of states, private property and classes?
<attila_lendvai>pinoaffe, that discussion is a waste of time. i know their ilk, regardless of the ever-shifting labels they try to hide their violence behind...
<jab>Hey guix friends!
<lilyp>pinoaffe why such high requirements when we all know Sweden is the highest state of socialism? 🤷️
<nckx>I have removed the evil communism from my realname.
<nckx>Hi jab.
<jab>nckx: how's your plan for world domination going?
<attila_lendvai>socialism and capitalism are anti-concepts anyway, i.e. using such concepts in your sensemaking *hinders* your ability to make sense of your sensory input. i recommend using clearer concepts like property rights, and a direct consequence of it, freedom to trade your stuff. but damn... /me gets back to coding.
<lilyp>Property rights are a social construct 😎️
<lilyp>And also they're really anti-rights/anti-freedoms.
*nckx has to go AFK for a little while, so I hope my presence remains unnecessary :)
<attila_lendvai>lilyp, civilization is measured by how much we can avoid violence while we are resolving our conflicts, and the idea of property rights is a cornerstone of that. it might well be a social construct -- whatever that may mean --, but that doesn't make it any less essential for a reasonable coexistence of a large numbers of humans.
<lilyp>Are we really avoiding violence much, though?
<lilyp>If you were a black person in America, you'd without a doubt answer "no".
<attila_lendvai>lilyp, are we respecting property rights?
<lilyp>Well, there's organs to violently enforce them, so I guess maybe? 🤷️
<attila_lendvai>the entire contemporary west is based on fiat money and taxation... i.e. every corner of it is infused with direct violations of property rights.
<lilyp>Why is taxation specifically theft when your employer takes a way larger cut of what you produce?
*rekado_ checks the topic of this channel
<attila_lendvai>lilyp, because the exit cost of one of them is trivial compared to the other. but i'm out of this discussion.
<vivien>I must say, the whole point of free software is to go against property rights when they are used as a tool of power.
*nckx ret, and ugh.
<lilyp>… in software
<ajarara>do the contents of .guix-profile in the user dir get decided by the system config?
<nckx>You like property rights, that's great, I hope we can all agree that this doesn't logically imply they're not granted by others, now let's get back to Guix discussion.
<lilyp>ajarara: no, they're decided by your install/update actions or alternatively a manifest
<nckx>Sorry, didn't receive ajarara's message in time, now I'm the one dragging it on. Apologies.
<attila_lendvai>vivien, edging a bit back on topic: ideas are outside the domain of property rights, because if i "take" your published idea, then you don't have any less of anything. wanna keep it a secret? then don't publish it. "intellectual property" is a torturing of the original concept.
<lilyp>But what if you stole my secret from my private property PC and published it?
<ajarara>Ah if you imperatively do `guix install foo` it updates it. That's why mine is empty.
<lilyp>yep, new users get an empty home
<nckx>Yep. It's created on first use.
<nckx>*populated.
<ajarara>Great. Thanks!
<lilyp>created, populated and symlinked, three tasks at once1
<nckx>I also wanted to * my ‘use’ but it'd come awfully close to ‘it's populated on first population’ 😒
<ajarara>Hm.. is there a way to embed it in a git repo? Ideally I'd like my userspace to be just as reproducible from a checkout as my system config, which is in scm
<nckx>Use a manifest?
<lilyp>Yup, write a manifest.scm and use guix package -m
<vivien>attila_lendvai, I agree for ideas, but software is not just ideas. Otherwise, there would be no bugs ^^
<nckx>Ideas can be buggy.
<nckx>Ideas can be very buggy.
<lilyp>You can split it over several files and use -m manifest1.scm -m manifest2.scm
<lilyp>nckx: Nah, the bugs are a feature of the idea :)
<ajarara>I'm looking to be able to use emacs/bash to imperatively install packages, then have those be captured in a checkout. Trying to avoid having to edit files manually (it's what I do now, if I want something I just edit the system config and rebuild)
*attila_lendvai is back at patching up the go importer; a tiny step towards technology that increases freedom
<nckx>Gracias.
<ajarara>looks like I want --export-manifest in a pre-commit hook or something
<lilyp>yup, but be careful,--export-manifest is not always minimal
<lilyp>(also good old "NO WARRANTY" disclaimer)
<ajarara>minimal? or not enough. I see the warning pointing to also include channels
<lilyp>minimal in the sense that handwriting gives you more concise definitions and the files might be a little easier to handle
<lilyp>but OTOH you'd have to manually handle includes and what not, so that's that
<lilyp>anyway
*lilyp → bed
<ajarara>cya, and thanks!
<ajarara>I think I understand the disclaimer with channels: install a package foo, update channels, install a package bar. Foo may be out of date, and a rebuild from manifest/channel exports will inadvertently upgrade foo, right?
<abrenon>g'night
<jab>well I'm getting pretty satisfied with my opensmtpd-service...I've got the records straightened out and I've got the procedure (opensmtpd-configuration->string works fairly well.
<jab>Now it's a matter of turning that string into a file in /gnu/store and telling opensmtpd to use that as it's configuration file.
<jab>and flushing out and supporting all of the opensmtpd options. I do not think I support all of the match, filter, listen on options just yet.
<talos>Hi guix, I see on the latest builds download page that there's an option for Pinebook Pro images. I plan to try it later. In any case, do y'all plan to ever make Raspberry Pi images? I think Guix on a Pi with an SSD would work well
<talos>And if not a pi, then say Odroid or those other Pine SBCs?
<talos>BTW,what is a good book/tutorial to learn guile. Also, how does one delete previous generations of the system. I am using the Guix System and not on a foreign distro. Do I just need to run guix gc as root?
<singpolyma>talos: the guile manual is quite readable and complete in terms of technical content (if maybe outdated and funny in terms of social context)
<nckx>talos: I can answer only your last question: ‘guix system delete-generations [MIN-AGE]’, e.g., ‘2m’ (m for months!).
<nckx>To actually free the space, yes, ‘guix gc’ (needn't be as root AFAIK).
<singpolyma>nckx: will that work on foreign distro?
<nckx>singpolyma: No, because there is no system to begin with.
<nckx>‘guix system’ operates on the system-wide profile which doesn't exist on foreign distroes.
<singpolyma>Ah, ok, I somehow thought you were saying it would act on all profiles
<talos>Ohhh I see, thanks singpolymaand nckx
<talos>*and
<nckx>singpolyma: ‘funny in terms of social context’?
<nckx>:)
<vivien>Some guix system commands work in a foreign distro
<nckx>The nerve.
<nckx>You can spin up new systems with some of them, but that's not really the same.
<mbakke>talos: 'guix gc -d 2m' will delete profiles older than two months and clear space in one go
<talos>I assume that since there's a delete-generations sub-command that there's also a list-generations command?
<talos>oohhhh
<nckx>Yes.
<singpolyma>nckx: the guile manual is written as though all the world is C and guile is the first and only high level language to save us from the terror of pointers. it's not wrong, it just reads old
<nckx>mbakke: They asked about system profiles, though, not user.
<nckx>singpolyma: Heh.
<talos>Thanks mbakke btw. You guys are all awesome :D
<nckx>It's not wrong, but it omits the word ‘user’. Your system generations won't be touched.
<mbakke>nckx: oh, I thought it handled system profiles too (as root), but indeed it does not
*mbakke has some cleaning to do
<nckx>It's confusing, I don't blame you one bit. The root == everyone behaviour is already iffy IMO. Elsewhere, we have to teach users not to think of ‘root’ as ‘the system’, then this.
<nckx>talos: Thanks ☺ No idea if we're all guys though.
<talos>Ah right, well, I wasn't trying to exclude anyone lol. Y'all get the point tho :D , no matter who y'all are, y'all are awesome.
<nckx>I didn't think you were and thanks 😊 I'm sure you are too. You're using Guix (System!), for starters. Hope someone can help you with your other questions, if not, the help-guix mailing list is also worth a try.
<rekado_>I’m still having problems with my Guix git checkout
<rekado_>I got past the translations problems by deleting the generated texi files
<rekado_>but now I’m getting C++ errors when building nix/nix-daemon/guix_daemon-nix-daemon.o
<rekado_>lots and lots of errors
<nckx>I didn't get those after fixing the translations with LC_ALL in a ‘guix environment guix’. Are you using a different/older(/newer?) compiler?
<rekado_>I don’t think so?