IRC channel logs

2022-03-18.log

back to list of logs

<nckx>What's the smallest TeX package that can ‘make pdf’ Guix?
<nckx>Ach ja. texlive it is.
<nckx>3,533.0 MB will be downloaded 👍
<EndOfAnEra>nckx: what's the name of this package?
<nckx>I'm not sure I understand the question. ‘make pdf’ in the Guix source tree says it wants TeX and I don't the first thing about TeX beyond (1) that there's a ‘monolithic’ package named ‘texlive’ (2) it's huge.
<nckx>*don't know
<EndOfAnEra>ok texlive, I'll have a look at it and why it's that big
<nckx>Specifically texlive-texmf-20210325 which is 3.24 GiB alone.
<nckx>EndOfAnEra: Because it's ‘all of TeX’ I presume, and I haven't been following the modularisation efforts enough to know if they ever went anywhere.
<nckx>Do you know much about TeX?
<EndOfAnEra>nckx: exactly
<EndOfAnEra>nckx: no I do not know TeX
<nckx>That sure makes a couple of us.
<jonsger>:)
*jonsger please don't remind me on the LaTeX stuff I wanna package on my "todo" list :P
<nckx>🤖 VICTIM LOCATED
<nckx>Nah, you're safe, I don't even know enough to know what to ask for.
*vagrantc also joins the not-knowing-tex party!
<EndOfAnEra>nckx: I believe that you'd need to write your own package definition to trim it down the way you want.
<EndOfAnEra>nckx: if you do "guix edit texlive" you can see the package definition and how it's built
<nckx>That sounds both plausible and like work. I'll just download 3.24 GiB at 600 KiB/s…
<acrow>nckx: do you have a tex or latex document? I'm not sure of the guix answer but I think you want either the pdftex or pdflatex binary. I searched for that and got texlive-pdfx. though I have no idea how big that is. it may pull texlive in anyway. Of course, there may also be font dependencies that you need. Getting a minimal tex distribution is a tall order. :)
<EndOfAnEra>it's not the right distro if you lack bandwidth imo.
<EndOfAnEra>on the other hand, it may be just as big in the other distros
*jonsger used the last time an online latex editor :(
<EndOfAnEra>but providing your own package definition is worth learning, and becomes very useful in the future
<nckx>acrow: https://paste.debian.net/plain/1234783 — ad etceteram. I don't have a TeX document, I just want to pdficate the Guix manual which apparently takes a nice detour to TeXland.
<nckx>EndOfAnEra: Couldn't agree more.
<nckx>sneek: later tell allana Did you get my reply to your PM? I'm not sure if you were just curious or wanted one.
<sneek>Got it.
<nckx>sneek: botsnack
<sneek>:)
<acrow>nckx: well, texlive will certainly get you covered; but that error calls out tex and texi2dvi and I don't think those are in any way exotic.
<nckx>Hm, I'm downloading texlive-texmf from bordeaux.
<nckx>Which is 3rd in my list of tootservs.
<nckx>Which is… is that odd?
<EndOfAnEra>nckx: it seems to download this package of 3.5gb ftp://tug.org/historic/systems/texlive/2021/texlive-20210325-texmf.tar.xz
<EndOfAnEra>nckx: maybe you can find a smaller package, that way you only need to replace that variable to point to a different location
<nckx>acrow: What's the least exotic tex distribution that would have those?
<acrow>nckx: we need a mathematician :)
<podiki[m]>is there a reason whey CONFIG_UNICODE is not set for our kernel config?
<nckx>Because it's a pretty exotic and (opinion incoming) horrible non-feature?
<nckx>podiki[m]: More seriously, do you have a use-case for it?
<podiki[m]>I have an sdcard that was formatted with ext4 casefold (from another device), cannot be mounted
<nckx>EndOfAnEra: AFAICT there is no variable, or I don't know where to find it. You seem to know more?
<podiki[m]>so this is the first I've heard of casefold and confgi_unicode
<nckx>Damn, that's a good use-case for a horrible horrible feature.
<EndOfAnEra>nckx: on "guix edit texlive", line 42 of gnu/packages/tex.scm
<EndOfAnEra>there is a (define texlive-texmf-src, which performs the download from that URL
<podiki[m]>it was not my option to format the card that way, but that's what a device does (that runs Arch, a new handheld....)
<nckx>Line 42 is #:use-module (guix gexp).
<acrow>nckx: there are, at least, 183 texlive packages to choose from. Wow, I wish we had a texlive-minimal package. I feel your pain.
<nckx>So a feature that should never have been added to Linux and was strong-armed in by Google is now mandatory for interop. How's that Hurd escape pod coming?
<nckx>acrow: I actually tried tex-minimal just in case 😉
<EndOfAnEra>nckx: hmm I may be using a newer version. It should download that from an URL somewhere. But looking at a directory listing, I don't see any smaller version of that package http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2021/
<podiki[m]>nckx: obviously I don't know the history or technical details, but color me surprised that a kernel option is needed for an ext4 mount. sadface
<nckx>podiki[m]: I don't see a reason not to enable it. I'll give it a try, see if it pulls in anything else.
<podiki[m]>what is the status for other distros on this? I see a very old bug report on Debian, closed because it sounded like they enabled it
<podiki[m]>it is just a case of a lost battle that now is (it seems) expected?
<nckx>That is my guess.
<nckx>If it's needed for interop I'll enable it.
<atka>its for case insensitivity is it not?
<nckx>atka: Yes.
<podiki[m]>an option in ext4 that can be set yeah
<atka>eww
<podiki[m]>Arch has it set in their default config
<EndOfAnEra>if you have a server somewhere, you can download that package and trim it down, and serve it somehow
<nckx>It's to turn Linux into Windows.
<podiki[m]>does it do anything on its own? or just allow using that in filesystems?
<nckx>EndOfAnEra: That's true, but it would require knowledge of what to trim, and that's just the ‘modular texlive’ project but… worse. Because done by me, an idiot, who knows nothing of texlive.
<nckx>Now I'm downloading linux-libre-5.16.12-guix.tar.xz from bordeaux at 60 KiB/s. What's going on…
<EndOfAnEra>sounds like an update
<nckx>Yeah, they were updated today or yesterday.
<podiki[m]>btw nckx, my guess is that the card is formatted this way precisely because of the mix use with that umentionable's OSes stuff
<nckx>Which is plenty of time for berlin to fetch the balls. And it's plenty of time for guix.tobias.gr to fetch the balls.
<nckx>podiki[m]: This is just making me sad. Soon ’Linux’ software is going to expect case-insensitivity (dlopen("GlibC.so")) and bugs will be closed WONTFIX and I'll start drinking again.
<EndOfAnEra>if you do guix gc, it deletes the downloads that were used as inputs, which I find to be a bug
<podiki[m]>that sounds like a nightmare
<atka>podiki[m]: can you just share a folder on your network? instead of mounting the card in guix?
<EndOfAnEra>nckx: haha <3
<podiki[m]>I also prefer kebabs to 🐫s :)
<nckx>EndOfAnEra: It's ‘guix build --source linux-libre’. And it's guix from 10 March, so the recent Linux-Libre update shouldn't matter.
<atka>simple nfs share or something and mount it on your device
<podiki[m]>atka: I'm sure I can find another way, or just use my Arch computer; was just surprised to find this out
<nckx>Just to be clear, I do plan on enabling this option in Guix if it doesn't drag in something else too nasty, sad or no.
<nckx>If the source download finishes this week.
<podiki[m]>I would assume our ext4 mkfs can make casefolding partitions already anyway?
<EndOfAnEra>nckx: do you have a cafe nearby, it might be worth going to a public wifi
<EndOfAnEra>download with phone :)
<nckx>EndOfAnEra: I'm on 30 MiB/s wi-fi, I don't think that's the problem. It's something about me <-> bordeaux.
<nckx>I'm also one country over from bordeaux so it's weird.
<podiki[m]>something something wine
<EndOfAnEra>yes my connection is fast from .nl, maybe there's a way to specify mirrors
<EndOfAnEra>or actually, my VPN is connected to the backbone at the server so it's naturally fast
<nckx>It would have been faster had I downloaded it with --no-substitutes, oh irony.
<nckx>EndOfAnEra: Nice.
<nckx>CONFIG_UNICODE=y selects nothing else.
<atka>so if I have a server running guix I can set that up as a build machine to offload to, freeing up my slow laptop from build duties?
<nckx>Yup.
<atka>woah, I have to do this, I've been doing it some manually before guix
<nckx>EndOfAnEra: What's your download speed from bordeaux?
<nckx>atka: Search for ‘offload’ in the manual.
<nckx>But note that one of its warts is that it won't fall back to localhost if the network is down.
<nckx>Not by design, just the status quo.
<atka>that's what I'm reading atm, just was checking if that was really the case
<nckx>Unless apteryx fixed it…
<atka>ok, I can work around that no problem
<nckx>Apart from that it's perfect for the laptop/(V)PS use case.
<atka>man guix just keeps getting better and better, currently focusing on containers though
<atka>getting sidetracked!
<podiki[m]>guix shell --container is pretty cool
<Lumine>Good whatever the appropriate time of day it is!
<podiki[m]>looking at guix pack right now to share some software easily on a foreign distro where I can't install things in the usual way
<the_tubular>What does that do exactly podiki[m] ?
<atka>podiki[m]: yeah there's so many useful features packed into this "package manager"
<the_tubular>It starts your profile in a container ?
<atka>you can make contained application bundles with all the deps required to run
<nckx>Hullo Lumine!
<atka>to share with someone not running guix afaik
<Lumine>Yep, it's pretty nifty
<podiki[m]>the_tubular: yeah, it makes a container to run things in, like docker
<podiki[m]>and pack is to...pack up something into a singular file to share and unpack
<the_tubular> Ohh I though the guix container and guix shell --container were different
<podiki[m]>oh
<the_tubular>I mean, they must be different ?
<acrow>nckx: you might be able to get by with texlive-bin texlive-tex-plain. That would be only 666MB. I bet you still need to add texlive-tex-texinfo but that is still quite a space savings.
<nckx>Ah, thanks.
<nckx>I'm at 80% of texlive-texmf-20210325 now so I'll just wait, but thanks, I'll make a note of that option.
<podiki[m]>the_tubular: "guix container" is not a command right? maybe you are remembering from "guix environment"?
<acrow>nckx: well, that is where I would start.
<the_tubular>guix container --help Usage: guix container ACTION ARGS...
<acrow>nckx: Yep, I understand. I had not explored guix tex packaging before.
<the_tubular>It is a command podiki[m] :)
<podiki[m]>oh whoops, misread the output :)
<podiki[m]>TIL
<podiki[m]>so that's how you can talk to an existing guix shell --container
<podiki[m]>cool
<podiki[m]> https://guix.gnu.org/en/manual/devel/en/html_node/Invoking-guix-container.html#Invoking-guix-container
<podiki[m]>or to talk to guix system container (also neat!)
<acrow>nckx: I suppose you already know that tex itself is quite small, but Knuth did such a good job that people have continued to build off it for more than, gee, has it been 40 years? I think he may have done that in the 70's! 50 yrs. Really, amazing!
<nckx>I know a lot about TeX from a historical perspective but not from a technical or current one.
<nckx>Is't it the reason people still erroneously write UNIX?
<nckx>Ah, no, that is troff(1).
<acrow>nckx: How so? I had not heard that.
<nckx>Um, from memory: basically Ritchie went through an ‘OMG we can do small caps now’ phase like every teenager and used them too much, including in the paper that introduced Unix, so many people thought Unix was called UNIX.
<nckx>(There's a fake explanation floating about that ‘UNIX’ is the trademarked name and ‘Unix’ is free but… that is 100% not how trademarks work and bogus.)
*nckx sells MICROSOFT WINDOWS floppies; gets arrested.
<Lumine>Haha
<podiki[m]>I love weird stories (lore) like that
*nckx should have used small caps :(
<nckx>podiki[m]: Same!
<podiki[m]>I thought it was gonna be why everyone typed \unix instead :)
<acrow>nckx: Nice, I didn't know that.
<podiki[m]>side note (not to get too off topic) but reminds me of the fantastic book Canticle for Leibowitz and all the lost "lore" pre-apocalypse, like a shopping list
<nckx>Reminds me of The Book of Dave (which I've never read).
<nckx>It's a bit of a trope now but a good one.
<acrow>podiki: I suspect that is a macro in latex that produces the perfect typographical rendering of whatever is legally that thing. :)
<nckx>Dear guix-maintainers My name is Mr. Mohamed. I am the manager of the auditing and accounting department (SCBT). It is obvious that this proposal will come to you as a surprise.
<nckx>Oh sh—
<vagrantc>ok, have updates for genext2fs and genimage ... might just submit them for patch review, as i suspect there are various image generation things using them
<the_tubular>lol nckx
<nckx>Yeah, I remember unknowingly breaking something with an somethingext2fs update once. Thanks vagrantc!
<the_tubular>So podiki[m] if I understand correctly guix container is like docker -it ?
*nckx built 8 kernels in less time than it took to download 20% of texlive from France.
<podiki[m]>the_tubular: I know almost nothing about docker, sorry; but guix container and/or(?) guix shell --container for of an isolated run environment sound similar
<podiki[m]>guix system can make a container or a docker image, maybe that is the closet equivalence?
<podiki[m]>err... I mean guix pack can make a docker image
<podiki[m]>and guix system image
<nckx>podiki[m]: AUX_FILES
<nckx>Nope.
<nckx>Let's try that again.
<nckx> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=f73af2f88e6b398ad8a433e57c7078b01ae7a5d5
<nckx>At least it was nothing embarrassing.
<podiki[m]>you and your dirty clipboard
<podiki[m]>:)
<podiki[m]>it is not an Arch default to make an ext4 partition like that as far as I know, but a new device (the Steam Deck, SteamOS based on Arch) does that for it's microsd cards
<podiki[m]>not sure about its root partition
<podiki[m]>nckx: and thanks for the quick change! I'll do a reboot in the near future and confirm
<nckx>Thanks.
<nckx>And sorry for misquoting you.
<podiki[m]>for the record, the exact syslog message was "localhost vmunix: [67295.918339] EXT4-fs (sda1): Filesystem with casefold feature cannot be mounted without CONFIG_UNICODE"
<podiki[m]>no, that is what said, just didn't want to add any confusion
<nckx>(SteamOS is non-free, right? So I can always say I freedom-censored you.)
<atka>:)
<podiki[m]>(not sure, the new version is not available yet beyond a recovery image; the new one should just be modified Arch, at least before adding their proprietary software on top. It is just a KDE desktop otherwise)
*vagrantc still balks a little at having to submit patches after waiting for the bug number ...
<atka>podiki[m]: steamos is very much non-free
<podiki[m]>(so I think the base is likely modified linux kernel [has firmware], and then their software on top)
<podiki[m]>I wonder if the source that will be released will be not much more than a wrapper of installing Arch, possibly modified kernel
<podiki[m]>anyway, let me not derail freedom, but you know I'll be putting some guix in there
<atka>as a package manager?
<atka>or guix system
<nckx>podiki[m]: :)
<podiki[m]>probably try both, though we'll see how linux-libre fares
<atka>yeah, I would be curious what parts of the hardware break, touchpads, wifi, etc
<podiki[m]>first step is trying guix pack (expect no problems) which will be fun to use; new steamos uses a read-only filesystem for the actual OS stuff
<podiki[m]>I'm hoping nomodeset is the worst of it....(other than wifi)
<atka>what about the igpu? nomodeset won't fix blobs no?
<nckx>podiki[m]: How read-only? A (say) ext4 image mounted read-only, or something like squashfs that literally can't support writes?
<vagrantc>ok, only 9 more 'This packages' since I last fixed them all some months ago ...
<podiki[m]>interesting to see ideas that could come out of nix/guix and fedora silverblue (immutable os) making the rounds
<vagrantc>i was almost scared to run guix lint :)
<podiki[m]>nomodeset let me boot newer amd gpu with linux-libre
<sneek>Yey! rekado is back :)
<nckx>vagrantc: We put them in to keep you around.
***alMalsamo is now known as lumberjack123
<podiki[m]>limited in what you can do, but it worked when I tried
<atka>podiki[m]: good to know, I've been testing kinoite (silverblue) for a couple months and is a pretty good guix-lite
<vagrantc>nckx: hah! thanks for thinking of me!
<podiki[m]>nckx: have not had time to look yet, but I think it is like android(?) with 2 system partitions to allow upgrades with fall back; you can enable a mode to write, guessing normally limited to just /home otherwise
<atka>podiki[m]: you can boot the deck from sdcard so testing guix should be easy!
<nckx>Ah, OK, so with some luck you just need to mkdir /gnu and can bind-mount your way to PM heaven.
<podiki[m]>yeah
<podiki[m]>guix pack --relocatable looks like just the tool for such a situation too
<podiki[m]>alas I have a lot of grading to do this weekend and next week, but I'll definitely be writing up what I do
<atka>please do, I'd be interested in what you find
<podiki[m]>guix can fit in nicely for systems where you can't do normal software installation
<nckx>texlive be graftin' for a solid 15 minutes now.
*nckx sighs.
<atka>I wonder if guix on silverblue is a thing?
<sneek>wb AwesomeAdam54321
<atka>is guix package -i the same as guix install?
<nckx>Yes.
<atka>danke
<nckx>Oh FFS: ‘texi2dvi: pdftex exited with bad status, quitting.’ No error message.
<nckx>…but it built guix.pdf so me haps.
<nckx>vagrantc [bug numbers]: Yes, that's still how it's done.
<djeis>So... I just did a system init on a fresh host, booted it, pulled, and tried to build a slight tweak to the config I'd already deployed and it's claiming there's something wrong with the existing boot parameters struct.
<djeis>Ah, right. Forgot to source the updated guix. Just wasn't expecting the one I deployed to be so much older that it couldn't read its own boot params.
<nckx>That particular change is relatively but extremely recent.
<nckx>Should be less of an issue as time swiftly passes.
***iyzsong-www is now known as iyzsong-w
<lfam>AUX_FILES
<lfam>lol
<podiki[m]>I've been called worse
<brendyn>i don't see any zoneinfo dir in my system. is tzdata supposed to be in the system profile
<brendyn>even the example configurations don't have it
<unmatched-paren>i'm not sure how to use the `config` field in the `home-fish-service-type`. it seems to let you add extra fish configs in case the built-in options aren't enough, but any time i try to add a file to it and reconfigure, guix reports no such file or directory...
<unmatched-paren>so, does guix home have a way to add arbitrary new configuration files to your home, even if they aren't supported by it as a home service?
<efraim>unmatched-paren: https://git.sr.ht/~efraim/guix-config/tree/master/item/efraim-home.scm#L731 , with the files themselves defined higher in that file
<unmatched-paren>efraim: thank you! :)
<efraim>I went a little overboard when first starting with guix-home and had to trim it back when I actually started using it
<efraim>so some of the services I still have to hand start
***iyzsong-www is now known as iyzsong-w
<jts>does anyone happen to know the best way to add a known directory to the RUNPATH of every binary built by a CMake project?
<atka>anyone know the proper kernel argument for luks allow-discards on guix? (kernel-arguments (cons "luks.options=allow-discards" %default-kernel-arguments)) isn't it.
<civodul>Hello Guix!
<atka>hello
<Lumine>Hey
<mothacehe>apteryx: i created a cuirass jobset to run the new btfs system tests: https://ci.guix.gnu.org/jobset/wip-btrfs-raid-tests
***jonsger1 is now known as jonsger
<AIM[m]1>How do I setup the auto mount for pcmanfm in guix?
<AIM[m]1>I've install fuse, udisks2 and pcmanfm
<AIM[m]1>installed*
<ennoausberlin>Hello. I want to play around with my own channel. But guix pull gives me "guix pull: error: Git error: could not find appropriate mechanism for credentials"
<gnoo>how does your channels.scm look like? afaik just this should work: (channel (name 'my-packages) (url "/home/me/.cache/guix/my-packages"))
<ennoausberlin>gnoo: paste.debian.net/hidden/05288929
<ennoausberlin>The gitlab server is upgrading right now and the repo is not public. You probably can not connect
<gnoo>oh my god
<gnoo>i added a couple of kernel parameters and now guix starts nearly twice as fast
<gnoo>namely:
<gnoo>(sysctl-service-type config => (sysctl-configuration (settings (append '(("vm.dirty_writeback_centisecs" . "6000") ("vm.laptop_mode" . "5")) %default-sysctl-settings))))
<gnoo>and
<gnoo>(kernel-arguments '("nmi_watchdog=0" ""))
<gnoo>it used to take about 2 mins and a little more to start, but now it's 1 min and a little
<gnoo>btw, love that new gnu/linux-libre image while booting :)
<gnoo>hmm, the cost of that fast startup is a very slight startup delay on each program you open for the first time, or so it seems
<gnoo>anway, my emacs opens 3 seconds faster than weechat, can't complain there ;-)
<gnoo>(previously - ~28 seconds, now ~17.64 seconds to start emacs)
<AwesomeAdam54321>Before sending patches to update gnu/packages/gnunet.scm, do I have to ensure that the tests work and if some don't, to fix/disable it?
<gnoo>yes, or maybe send the patch and say that this patch doesn't work and you ask for help if you're unfamiliar with it
<gnoo>omg this thing is like magic
<gnoo>way less heat is emitted too
<gnoo>previously i used this laptop as a heater
<gnoo>now i can't do that anymore
<gnoo>WHY DID NOBODY TELL ME ABOUT THIS???!!!!???
<Gues1>I'm trying to install guix manually and I get an error in the install phase which says "guix system: error: cannot close compressed log file (gzip error = -1)". The last log message was "applyin 16 grafts for gtk+-3.24.30"
<Gues1>Anyone got any ideas on how to debug that?
<civodul>Gues1: hi! did your machine run out of disk space?
<Gues1>Hmm.... that's interesting
<Gues1>on / I've use 99%. But on /mnt (which I think I'm installing into) I've only used 1%
<civodul>AwesomeAdam54321: yes; see also https://issues.guix.gnu.org/54036
<civodul>maybe you can chime in in that thread?
<Gues1>I was running:
<Gues1>guix time-machine -C /mnt/etc/channels.scm -- system init /mnt/etc/config.scm /mnt
<Gues1>That should be using up space in /mnt, right?
<civodul>it also uses space on the host, in /gnu/store, /var/log, etc.
<Gues1>Right, in this case the "host" is a USB drive (i.e. my installation medium)
<civodul>alright, so normally it has a tmpfs overlaid on its root file system
<civodul>what do "df -h" and "free -h" say?
<Gues1>Actually, I'm wondering I forgot to do:
<Gues1>herd start cow-store /mnt
<Gues1>Which is in the manual.
<Gues1>Would that cause the problem?
<civodul>yes, definitely
<civodul>because in that case everything would go to that tmpfs
<civodul>so you could run out of memory
<Gues1>OK. Right. That makes sense.
<civodul>out of curiosity, were there reasons why you chose not to use the graphical installer?
<Gues1>I had to reboot and restart the installation, and I think I might have left that out the second time. Makes sense.
<Gues1>The graphical installer was crashing for me.
<Gues1>I think at the point it was partition the disk maybe? But can't be sure.
<Gues1>Definitely getting much further with the manual install.
<Gues1>Thanks civodul, I'll try again after cow-store.
<Gues1>So just for me to understand, there is a tempfs that keeps all the downloads by default during installation. Presumably so that I don't maintain state on my USB stick between installations. By default all my installed packages go there. But after that cow-store command, I set the default to writing directly into the store on /mnt instead. Does this
<Gues1>mean that the store on the USB is effectively not in use any more at that point, and all the "guix install x" commands now use the store on /mnt?
<gnoo>you should probably install packages only after you've booted the system and then as the user you'll be using it as
<gnoo>that you you won't be having two guix clones, one in /root/ and one in ~/
<Gues1>Right, yeah. That make sense. I'm just curious about how this plays out during the installation.
<gnoo>also that packages installed as root won't be visible to normal users unless you put that in your config.scm
<gnoo>(form root's login account)
<Gues1>Ah, I didn't know you could make them visible at all. That's interesting. I've mainly used guix in a foreign distro so far.
<gnoo>you can have some common packages like wm, clipboard, alsa-utils, openssh, rsync, file as global so it'll work even when you login from other machines (like say ssh or rsync)
<gnoo>you can do that with the (packages) list in (operating-system)
<gnoo>but be careful to not have more than what you need in there, to upgrade those packages you'll need to reconfigure the whole system
<Gues1>That sounds handy
<Gues1>Installation didn't fail with disk space this time, but it didn't boot into guix. I'm going to give a go of going through the whole install again. This time doing the cow-store thing. See if that makes a difference.
<gnoo>what do you mean boot into guix? i don't think it'll do that, you have to reboot
<Gues1>Yeah, I rebooted. But then it failed to start.
<gnoo>oh, are you sure that either efi or bios is the one your bios is selecting? unlike other distros, guix only installs to one of them
<gnoo>so if your bios selects bios method but you did efi, you can
<gnoo>'t boot
<gnoo>happened to me 3 times before i realised
<gnoo>check in bios settings if there is a way to boot to efi directly as the first thing
<Gues1>Yeah, I'm suspecting something like that. I think I'm using UEFI in the bios. And I set up an EFI partition. So hopefully guix installer would have respected that. But I'm not too familiar with that, so might have done something wrong.
<gnoo>you used the manual install, right? what did you use in bootloader-configuration ?
<gnoo>this: ? (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets (list "/boot/efi"))))
<Gues1>Give me a second to boot back into the installer and check the config.scm
<gnoo>i'm thinking of moving away from efi tbh, efi is so slow, takes 5 more seconds to boot because of it
<Gues1> (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets '("/boot/efi")) (keyboard-layout keyboard-layout)))
<gnoo>yeah that's efi, now check your bios
<Gues1>BIOS seems like it's using UEFI to me...
<Gues1>Could I have messed up the partitions? I'm trying to use cryptsetup
<gnoo>do you get any error messages?
<Gues1>Not during installation.
<gnoo>it just doesn
<gnoo>'t boot ? no error there ?
<Gues1>Nothing. It goes into a pre-boot memory check. Then when it gets out of that it just powers off immediately.
<maximed>I'm writing a package definition for a Go library. When building it, I get ‘no Go files in /tmp/guix-build.../$FOOBAR’. The issue is that this $FOOBAR contains the repository root, whereas the go module is only in a subdirectory. How does one tell go-build-system to look into the build system instead?
<Gues1>Actually, no. If I let the hardware scan complete it says "no bootable devices found
<maximed>I found the solution: point #:unpack-path to the root
<Gues1>I'm installed and logged in. Thanks gnoo and civodul!
<gnoo>ohh, what was the problem ?
<Gues1>It was the BIOS needed me to no only set it to boot with UEFI, but also add the EFI path to GUIX explicitly.
<Gues1>i.e. add the boot device, and then browse to what (from memory) was something like /EFI/Guix/guix.cfg  (or something like that)
<Gues1>It's a bit annoying having to unlock the encrypted drive twice at startup. Is there a way around that?
<maximed>Gues1: On some distros, there's some kind of ‘keyfile’
<maximed>perhaps it can be ported to Guix
<Gues1>maximed I guess that it happening twice is normal then? It isn't because I've done something wrong.
<maximed>Gues1: If you do full disk (*) encryption, then yes ((*) ignoring some very early boot code)
<maximed>(yes = normal, not wrong)
<nouun>Has anyone got Bitlbee plugins working? purple-mattermost is packaged and I've installed it but I can't use it.
<civodul>nouun: hi! purple-mattermost works for me!
<maximed>nouun: bitlbee is missing PURPLE_PLUGIN_PATH
<civodul>but i use it via Guix System
<civodul>oh
<maximed>seems like it needs to be added to native-search-paths, like pidgin does
<civodul>could be
<civodul>the bitlbee service sets PluginDir in its config file
<civodul>but it also sets PURPLE_PLUGIN_PATH
<civodul>so yes
<civodul>i can make that change right away
<nouun>Is the Bitlee service part of Guix or is it RDE? I don't see it from a quick search.
<maximed>nouun: Guix System
<maximed>search for bitlbee in the manual
<nouun>Ah, page hadn't loaded fully.
<maximed>Does someone know how to address the following Go packaging problem: <https://paste.debian.net/1234823/>?
<maximed>(Curiously, .../vault/api does not have this problem)
*civodul has no idea
<maddo>question: is something like flakes in nix on the roadmap/discussion for guix?
<maximed>maddo: Depending on what you are looking for, ‘channels’ might be useful
<maddo>I know there are channels, but channels are not as hermetic as flakes are in nix, exactly the reason nix is moving away from them
<maddo>you can technically pin a channel with guix inferiors, but it seems more of a hassle compared to a flake file]
<civodul>maddo: "channels" in Guix are different from "channels" in Nix
<civodul>back to your question, i think the way to approach it is more like what are the limitations of what Guix currently provides?
<civodul>what are good ideas that can be borrowed from flakes or other designs?
<civodul>i don't see any obvious answer to either of these, but then i'm not (no longer :-)) a Nix expert either
<maddo>how are channels different in nix vs guix (I'm not an expert in guix, I'm a mainly nixos user and I wanted to make the jump as scheme is a much more comfortable language for me than nothaskell)
<civodul>ah, so we need to bridge the gap then :-)
<civodul>maddo: see https://guix.gnu.org/manual/devel/en/html_node/Channels.html
<civodul>it's pretty quiet here for a Friday
<Lumine>It won't be when I get my beers
<Lumine>:D
*nckx mumbles from a dark corner.
<Lumine>Morning nckx!
<civodul>howdy nckx!
<nckx>Hi all!
<AwesomeAdam54321>hi
<lil>Hello! I'm trying to enable ssh service on hurd qemu vm, but get error after `hurd start ssh-daemon': sshd-config line 13: Unsupported Option UsePAM
<lil>fatal: cannot bind any address
<civodul>lil: i've seen that; fortunately it's just a warning
<civodul>"cannot bind" is a different story though
<civodul>comrades, did you know that the first commit was made 10 years minus one month ago?
<Lumine>Oh damn, almost the 10th anniversary then
<civodul>yup!
*Lumine puts on a party hat one month in advance
<lil>How to solve fatal error with sshd?
<apteryx>civodul: :-) almost 10 years already, thanks for igniting such a fun project
<civodul>apteryx: and much more than 10 person-years went into it!
<civodul>lil: could it be that something else is already listening on the same port that sshd wants to bind to?
<lil>also I trying to ping gnu.org but nothing happen after press enter
<civodul>that's expected: ICMP doesn't leave QEMU
<lil>ok
<civodul>but does, say, "telnet gnu.org http" work?
<apteryx>civodul: indeed! that's one cool thing about free software; you invest some of your time, and you get it back tenfold :-)
<lil>civodul: Server lookup failure: gnu.org:http, Temporary failure in name resolution
<lil>I ran qemu image with qemu-system-i386 -enable-kvm -m 512 -snapshot -hda
<lil>may be I miss something?
<civodul>lil: if you're on Guix System, consider using the hurd-vm (aka. childhurd) service
<civodul>it'll Just Work
<civodul>otherwise here you need to add a bunch of options to tell QEMU to emulate Ethernet hardware that GNU Mach knows about
<lil>now I am on debian with guix
<apteryx>lil: perhaps you need to explicitly provide -nic user ?
<apteryx>see: info '(QEMU) Network options'
<civodul>"--device" "rtl8139,netdev=net0" "--netdev" "user,id=net0"
<civodul>that's what childhurd does
<lil>ura
<lil>yahoo
<civodul>awesome
<lil>or something like this
<lil>next issue is how to ssh connect to vm
<lil>but as I can understand its easier to install guix system than manually copy all stuff
<civodul>yeah
<Lumine>Well, I don't have my party drinks yet here but I just wanted to say that out of all the systems over the years that I've gone through, Guix is the most comfortable and fitting for me. A happy user on a brand new mini pc. :) And hoping to contribute one of these days when I actually know something. :D
<civodul>Lumine: ah ha! thanks for sharing your satisfaction as a user!
<civodul>it's always pleasant to read that :-)
<civodul>i hope we can keep increasing satisfaction for all of us and for those who've never heard of it yet
<Lumine>:)
*lfam finally gets around to trying to make b2sum tunable
<civodul>lfam: ah! should be a single line
<lfam>I also need to provide sensible values of "march" for when the package is untuned, right?
<civodul>no, just make sure it's compiled for the baseline
<civodul>that is, without -march flags
<lfam>Oh, so I could just remove the "march=native" bit?
<civodul>exactly
<lfam>Okay
<civodul>we should always remove those anyway
<lfam>Yeah
<lfam>I've been lazy about this
<lfam>Mainly because it worked for me
<nouun>Hola, I'm back again. I switched to the bitlbee service and added `(plugins '("bitlbee-discord"))` but it's not listed when I run `plugins`.
<lfam>I had also prepared a patch to expose local-build from gnu-build-system. It's no longer related to this particular package, but is that something we want to do?
<lfam>Or would it be like opening Pandora's box?
<civodul>nouun: it should be (plugins (list bitlbee-discord))
<nouun>I tried that but it said it expected a string?
<civodul>so that the config references the variable called 'bitlbee-discord'
<civodul>i'm talking about bitlbee-configuration
<nouun>Ah wait I tried to do '(bitlbee-discord), doing (list bitlbee-discord) works.
<nouun>Thank you. :)
<nckx>The ' equivalent would be '(,biltbee-discord) .
<maddo>is bitlbee discord actually usable?
<maddo>I mean, from a UX perspective, you need a window (buffer if you emacs) per channel; a single server can have o9k channels
<nouun>It still doesn't seem to be able to find it.
<nckx>nouun: Did you import the (gnu packages messaging) module?
<nckx>Oh, you mean at run-time.
<nouun>Yea, everything builds properly but running `plugins` doesn't list it.
<nouun>maddo: I'm only really active in one channel so that wouldn't be too much of an issue for me.
<nckx>lfam: That was swift 👍
<lfam>Are you even more swiftly signaling approval for the b2sum commit?
<lfam>:)
<Noisytoot>nckx: '(,biltbee-discord) would be the list '((unquote bitlbee-discord)), do you mean `(,bitlbee-discord)?
<nouun>Oh, it seems that using bitlbee-purple was messing it up, everything works now. Thanks.
<nckx>Yes Noisytoot.
<nckx>Do not toy with the typomaster.
<nckx>It's also bitlbee and not biltbee, work with me here.
<nckx>lfam: It seems obviously correct so my approval is cheap.
<lfam>It works!
<nckx>\o/
<lfam>It's funny say it was swift, since the situation has been suboptimal since October
<lfam>I just didn't feel like adjusting my benchmarks and spending time on this until today
<nckx>We should also divide our users into classes.
<nckx>Pay $500 a month or more, and your patches will be reviewed within the calendar year.
<lfam>🤔
<lfam>Indeed, my bank account is available for deposits
<KE0VVT>lfam, $60/hr is expensive
<lfam>I was mostly being facetious, but people do get hired to implement things
<KE0VVT>People need to get paid.
<lfam>It's a fascinating subject, how these kinds of projects get worked on
<lfam>Energy for patch review waxes and wanes... not sure how to improve that
<zimoun>hi!
<civodul>lfam: we need stars! i'd "star" anyone who actually reviews patches
<civodul>i might even offer an e-beverage
<zimoun>using the template gnu/system/examples/lightwight-desktop.tmpl, it starts the log screen, I type ’alice’ as user but them I failed with the password.
<zimoun>is it not empty?
<civodul>zimoun: nope, it's uninitialized
<lfam>civodul: I like to look at the "scoreboard": `git shortlog --numbered --summary --committer v1.3.0..HEAD`
<KE0VVT>What's lightweight-desktop?
<lfam>But the fact is, when I'm tired, I'm tired
<civodul>zimoun: so either you go to tty1, log in as root, and run "passwd alice"; or you set the 'password' field: https://guix.gnu.org/manual/en/html_node/User-Accounts.html
<civodul>lfam: but wait, that doesn't distinguish between "authored commits" and "other people's commits"
<lfam>That's true civodul
<civodul>i had a script to do that
<lfam>But, I think that most of the work is "other people's commits"
<lfam>And, it's a good scoreboard either way
<civodul>true
<lfam>I agree, we should have a way to count only reviewed commits
<lfam>And we should go out of our way to praise review activity
<civodul>yup!
<civodul>maximed does an awesome job as non-committer (not the only one, but i often stumble upon their reviews)
<lfam>Yeah, maximed is doing a lot of valuable work
<zimoun>civodul: thanks
<civodul>which reminds me of teams; we really ought to do something
<civodul>so we have a clearer picture of who does what, who can feel responsible for what, etc.
<civodul>instead of this giant happy mess :-)
<robin>civodul, like http://meatballwiki.org/wiki/BarnStar in wiki-land :)
<Lumine>Beers are here \o/
<lfam>If only we could return to a bon vieux temps
***KE0VVT is now known as Kolev
<unmatched-paren>gnoo: "btw, love that new gnu/linux-libre image while booting :)" <- i don't see anything, is it that new?
<gnoo>i just reconfigured today and there it was!
<unmatched-paren>ah, okay :)
<Lumine>:o there's a new grub image?
<gnoo>maybe -- i'll check the commit logs ;)
<unmatched-paren>also, those kernel parameters you were talking about look intriguing, but i'm not sure if i should use them without doing a bit more research; where did you learn about them?
<gnoo>archwiki
<unmatched-paren>k
<gnoo>it was like power-management or something
<gnoo>lot's of stuff, i only copied what seemed necessary
<unmatched-paren>my battery runs down pretty quickly, so this should be useful
<unmatched-paren>i already have thermald and tlp running, but i'll see what else i can find
<gnoo>yeah, mine runs for about 30 mins
<gnoo>i'll try thermald and tlp, thanks
<unmatched-paren>much of it looks to be systemd specific...
<unmatched-paren>thermald is intel-only, fyi
<gnoo>yeah, goto the middle of the article with kernel stuff
<unmatched-paren>guix has services for them in (gnu services pm)
<unmatched-paren>check the manual; `Configuring the System / Services / Power Management` off the top of my head
<gnoo>thanks!
<unmatched-paren>ok, i'll try `nmi_watchdog=0` first
<unmatched-paren>is `vm.dirty_writeback_centiseconds` relevant to SSDs?
<gnoo>i think it makes much sense on hdds, not much on ssds
<unmatched-paren>ok, i guess i'll ignore that one... my boot time is actually really fast (faster than it's ever been with any other distro) but my battery is getting a bit old
<gnoo>i don't think guix well ever match boot speed of void (runit) -- it was like 19-15 seconds for me
<gnoo>on this old machine, that's the fastest i've ever seen
<unmatched-paren>and i presume you have an hdd, right?
<gnoo>yes, and very old cpu
<gnoo>Launched January 9, 2011; 11 years ago
<gnoo>lol
<unmatched-paren>the price i pay for this new laptop is unreplaceable proprietary bios and far worse compatibility with non-windows oses, of course
<unmatched-paren>i have to use a thinkpenguin wifi dongle because my wifi card uses iwlwifi
<gnoo>yeah, it's sad to see hardware with drm-like properties
<gnoo>i don't use wifi at all
<unmatched-paren>the dongle is a bit less stable, too
<gnoo>ethernet when at home and usb-tethering on the rare case of using this outside of home where i absolutely need wifi
<unmatched-paren>hm, i wonder how i can configure udev in my config.scm to disable wake-on-lan
<gnoo>can't you disable it on the bios?
<unmatched-paren>fair point :)
<gnoo>mine was disabled from the start
<unmatched-paren>maybe mine is, idk
<unmatched-paren>rebooting now to try out the new kernel option...
***unmatche1-paren is now known as unmatched-paren
<unmatched-paren>maybe it's a placebo effect, but the system does feel slightly snappier with the nmi_watchdog disabled
<gnoo>well it might not be much noticeable on new hardware and an ssd ;-)
<gnoo>although i was surprised people actually read backlogs, i thought noone did that
<unmatched-paren>haha
<unmatched-paren>i think it's making guile start faster
<unmatched-paren>oh, yes, gnoo: about tlp, which desktop are you using? some of them ship power daemons that conflict with it
<unmatched-paren>specifically gnome
<unmatched-paren>just a small warning :)
<gnoo>sway, no dm here :)
<gnoo>75 pacakges -- that's a lot
<unmatched-paren>i'm on sway too :)
<unmatched-paren>i once tried enabling tlp back when i used ubuntu, and i got a kernel panic when i shutdown
<unmatched-paren>i think it might have been because of the gnome power management, but i'm not sure
<unmatched-paren>either way, i don't get one on guix
<gnoo>hmm, thermald might be really useful -- i had a shutdown today due to overheating
<unmatched-paren>it's an Official Intel(R) Project(tm), so it should almost certainly work fine so long as the daemon doesn't decide that your computer is not one it works on
<unmatched-paren>try `guix shell thermald`, then `sudo thermald` to check before enabling the service
<unmatched-paren>that's what i did
<gnoo>ok
<gnoo>hmm, it daemonized
<unmatched-paren>that means it's working fine :)
<unmatched-paren>you can just enable the service now i guess
<gnoo>thanks! i'll add this to /etc/config.scm
<gnoo>any way to make dhcp-client-service-type respect /etc/resolv.conf.head ?
<nckx>That's a resolvconf thing, right? I don't think there's a Guix service for that.
<nckx>(Isn't it also a bit old-fashioned? Not that I know what's the ‘modern’ way.)
<KarlJoad>Do I need to add my user to a group to shutdown the system without sudo privileges in a Guix System system?
<nckx>You shouldn't need root privileges to begin with.
<nckx>How are you trying to shut down?
<nckx>I think loginctl is the recommended standard, but some desktop environment provide a button too.
<KarlJoad>nckx: I am trying to write a shutdown command for StumpWM, which will end up making a shell call.
<nckx>With ‘loginctl poweroff’ I presume?
<nckx>Does StumpWM show the error message (if any)?
<mekeor[m]>does anyone have wezterm packaged for guix?
<unmatched-paren>mekeor[m]: i tried
<unmatched-paren>you'd better give up now
<unmatched-paren>:P
<unmatched-paren>rust is a nightmare
<mekeor[m]>do you have the source code of your attempt, unmatched-paren?
<singpolyma>unmatched-paren: it's a poor maintainer who blames their upstream ;)
<unmatched-paren>mekeor[m]: i'm afraid i threw it out after deciding i didn't really need ligatures, sorry :(
<unmatched-paren>actually, it might still exist in my channel's git history... one moment
<singpolyma>If you just want ligatures I think guix has kitty already
<unmatched-paren>last time i tried to use kitty the fonts looked really thin
<unmatched-paren>anyway, i'm happy with foot now personally :)
<unmatched-paren>mekeor[m]: sorry, looks like i never checked it in to my channel
<lilyp>Every time I tune into this channel, some pervert's addicted to feet.
<Lumine>Take it as a sign
<atka>anyone know how the kernel argument for passing the discard option to luks devices at boot? I think it depends on how/what tool is generating initramfs/initrd, dracut uses rd.luks.options=allow-discards, arch uses cryptdevice=UUID=xxxxxxxxxxxxxxxxxx:cryptname:allow-discards for example
<atka>I've tried (kernel-arguments (cons "luks.options=allow-discards" %default-kernel-arguments)) and a couple other ways
<nckx>It all depends on what the initrd actually does with that option, not what it's called. Guix's initrd will happily ignore *whatever* it's called :)
<nckx>Mmm, kittyfeet 🐾
<nckx>atka: What I mean is: there *is* no kernel option that does that.
<atka>surely guix allows trim commands to be passed to luks boot devices?
<atka>it is a feature of dmcrypt
<atka> https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/dm-crypt.html
<nckx>It surely does not.
<atka>that is not good
<nckx>There is no feature in dm-crypt that looks at some magical kernel argument.
<nckx>I don't know where you got that impression.
<nckx>It's up to the initrd to define some interface to which options it passes to cryptsetup, and Guix has no such interface as of yet.
<nckx> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/mapped-devices.scm#n214
<atka>well however initrd is using cryptsetup open to unlock the device it just needs to append --allow-discards to it
<nckx>Yes. It would be added to the code I linked above.
<atka>ok thanks
<nckx>I think we should just add it by default, no?
<nckx>Discard is a good thing. Are there any drawbacks to doing the good thing always?
<atka>yes I would think so
<atka>the drawback is minor securty concern
<atka>about leaking some metadata of the unterlying filesystem
<nckx>Oh, that stuff. Right.
<atka>an attacker could theoretically determine type of filesystem and amount of free space
<atka>so not a serious threat to 99.99% of users
<nckx>And this is valuable in which threat model?
<nckx>Yeah, I agree, it's pointless paranoia theatre.
<nckx>But someone is going to loudly sing & dance if we do make it the default. Dang.
<atka>maybe? I dunno, it seems like a sane default to me
<nckx>Uhuh.
<nckx>It is.
<nckx>Is there a negative equivalent to ‘rd.luks.options=allow-discards’?
<nckx>I think we should use Dracut options whenever possible, it's the most common de facto standard.
<Aurora_v_kosmose>:/// Saint Ignucius, preserve us from projects ignoring autoconf in exchange for Docker & finicky makefiles...
<atka>I don't think theres a no discard option
<nckx>Dang II.
<nckx>Aurora_v_kosmose: Aah, the good old docker-build-system.
<atka>its ok, but since fde is pretty common all types of devices these days, it should be supported as ssds and flash is everywhere too
<nckx>I agree.
<Aurora_v_kosmose>nckx: We have such a thing?
<nckx>Oh no.
<Aurora_v_kosmose>Ah, alright. Just sympathizing with the pain. Appreciated.
<unmatched-paren>i can't really blame them for ignoring autoconf... REAL programmers use raw makefiles with hand-written ./configure scripts :)
<nckx>atka: I just hoped it would be a quick one-line patch I could squeeze in now. But it'll be more than that and I can't.
<nckx>unmatched-paren: REAL programmers always write such bad software, it's odd.
<unmatched-paren>:)
<lfam>Lol
<unmatched-paren>*REAL* programmers spend all their time writing their makefile and never release any software
<atka>nckx: thanks for trying
<Aurora_v_kosmose>Structured editing is love, structured editing is life
<unmatched-paren>the reason there's so much bad software is that nearly all the *REAL* programmers who might have made good software are still busy writing their makefiles
<Aurora_v_kosmose>I found it astonishing really in companies how many absolutely refused to learn autotools despite how useful I find them, and prefered to muck about with much worse one-off solutions.
<Aurora_v_kosmose>And Docker has actively encouraged the growth of such behavior.
<Aurora_v_kosmose>To the point where some projects consider it normal that their software is basically impossible to build outside of Docker.
*unmatched-paren has never gone near docker and doesn't really know what it's for.
<Aurora_v_kosmose>unmatched-paren: Basically organizational isolation of programs to facilitate development & deployment./
<Aurora_v_kosmose>They're self-contained units with their own view of the system, filesystem, etc & don't interfere with eachother.
<unmatched-paren>hm, sounds VEEERY familiar :D
<Aurora_v_kosmose>unmatched-paren: Yeah. Guix is how you do it right.
<Aurora_v_kosmose>unmatched-paren: By the way, Guix Pack is capable of producing Docker images as output.
<unmatched-paren>huh
<KarlJoad>nckx: Sorry for the wait. I have not gotten that far yet. I had always used `halt` or `shutdown` with sudo to shutdown the computer from the command-lien.
<atka>nckx: line 215 of mapped-devices.scm, is it not possibe to add "--allow-discards" after "type" "luks1"
<Aurora_v_kosmose>Unlike Guix, the organizational isolation relies on much more complicated kernel machinery that has broken with security implications several times.
<Aurora_v_kosmose>For Docker, that is.
<unmatched-paren>idea: the `guix-enterprise` channel: only packages that use SVN as their VCS and can only be built with Docker are included
<unmatched-paren>also they all have to be either java or javascript and have at least 300 dependencies
<Aurora_v_kosmose>Docker is honeslty one of the worst OCI runtimes in my opinion, while gVisor is one of the most sane takes.
<Aurora_v_kosmose>Roughly, it's a userspace memory-safe kernel to run on top of.
<unmatched-paren>rust, i guess?
<Aurora_v_kosmose>Golang, actually.
<unmatched-paren>ok
<unmatched-paren>interesting how all these devops tools seem to be written in go... that, kubernetes, and docker all use it afaik
<Aurora_v_kosmose>Its whole build system has for an explicit goal to make it easy to make self-contained executable bundles, as well as the language itself being designed for ease of learning & minimal footguns primarily.
<unmatched-paren>podman, too...
<Aurora_v_kosmose>I'm not particularly fond of Golang as a language because in its quest for simplicity (while staying away from being a Lisp), it turned itself into a somewhat crippled language that can't easily be fixed by users.
<atka>podman work well on guix? rootless possible?
<unmatched-paren>yeah, no tagged unions severely cripples it imo
<Aurora_v_kosmose>Golang's primary benefit in my opinion has been the mass popularization of CSP
<unmatched-paren>apparently they are improving the error handling and adding generics in Go 2, but i'd still need tagged unions before giving it a serious shot
<unmatched-paren>i think nim is better, but to bootstrap it we need FPC, but that isn't bootstrapped either
<unmatched-paren>(which is why i'm working on a pascal compiler)
<Aurora_v_kosmose>Oh interesting.
<unmatched-paren>nim's macros are about as powerful as lisp's, actually
<Aurora_v_kosmose>I was interested by Nim, but I tried it a bit at an awkward time I think. The documentation & standard library code didn't match.
<unmatched-paren>as far as i can see
<Aurora_v_kosmose>Nim's macros explicitly have access to the AST do they not?
<unmatched-paren>yes
<Aurora_v_kosmose>Then indeed, they're as powerful.
<unmatched-paren>they can execute arbitrary code at compile time
<unmatched-paren> https://nim-lang.org/docs/tut3.html
<Aurora_v_kosmose>I recall them being somewhat complicated to use when I tried it, but that's just an ergonomics/ui concern. Much like defmacro vs define-syntax
<unmatched-paren>^ nim macro tutorial
<Aurora_v_kosmose>And given the former can be implemented via the latter...
<unmatched-paren>nim also has templates, which are less powerful but easier to use
<Aurora_v_kosmose>Lisps are nice. :)
<unmatched-paren>(and nothing like C++ templates :)
<Aurora_v_kosmose>unmatched-paren: Glad to hear that.
<unmatched-paren> https://nim-lang.org/docs/tut2.html#templates
<unmatched-paren>they're a bit like syntax-rules i think
<unmatched-paren>for example, this is the definition of `!=`:
<unmatched-paren>template `!=` (a, b: untyped): untyped = not (a == b)
<Aurora_v_kosmose>Fairly straight-forward.
<lilyp>well, you could also do bool operator!=(auto x, auto y) { return !(x == y);} in C++
<Aurora_v_kosmose>that is true.
<lilyp>and if you did it with a lambda it'd even be implicitly constexpr
<Aurora_v_kosmose>But yeah, outside of for-work use, languages that don't include macros don't generally rate for my attention these days.
<Aurora_v_kosmose>Being stuck waiting on language & compiler devs to fix missing features & details is just bad design.
<unmatched-paren>a more complex nim template from their manual: https://paste.debian.net/1234857/
<unmatched-paren>so you can actually create new block-like structures with nim templates and macros
<Aurora_v_kosmose>Nice.
<unmatched-paren>so, yeah, if i can write a good enough pascal compiler for bootstrapping, i'll certainly be using it :)
<Aurora_v_kosmose>unmatched-paren: What are you writing it in?
<unmatched-paren>i... --don't know yet-- :P
<unmatched-paren>most of what i've been doing is research into compilers
<unmatched-paren>i'll certainly be using QBE: https://c9x.me/compile
<unmatched-paren>it supports x86_64, arm64, and riscv64; it's a bit like llvm but much lighter
<unmatched-paren>i'll probably use either C or Typed Racket, since i can't stand dynamic typing :)
<Aurora_v_kosmose>Is that sarcasm or...?
<atka>how does one edit a system file like mapped-devices.scm and rebuild for local testing?
<Aurora_v_kosmose>atka: You can use '-L' with build to load arbitrary files, so you can just redefine a given package and build while loading that definition.
<atka>ok thank you
<unmatched-paren>Aurora_v_kosmose: not sarcasm :)
<Aurora_v_kosmose>unmatched-paren: Ah alright~
<unmatched-paren>i genuinely don't like it. any benefits it might give you are solved by tagged unions
<unmatched-paren>QBE prior art: https://sr.ht/~mcf/cproc/, https://myrlang.org (dormant), and sourcehut's in-progress secret programming language (https://drewdevault.com/2021/03/19/A-new-systems-language.html)
<unmatched-paren>the third one actually seems quite promising for bootstrapping; i stumbled across their website and the spec is several times smaller than C's and the grammar is context-free
<Aurora_v_kosmose>My own preference is pretty much what CL does. I've heard some call it gradual typing.
<unmatched-paren>you could probably implement a complete <***> compiler in assembly without too much hassle
<Aurora_v_kosmose>I've also heard progressive typing. Which seems not to be a thing so *shrug*
<unmatched-paren>the problem with racket is that guix has no racket-build-system yet
<unmatched-paren>apparently the racket build system `raco` is quite stateful and so doesn't work well with guix's functional nature
<unmatched-paren>but i don't think i'd actually need any external libraries for two reasons:
<drakonis>stateful how?
<unmatched-paren>(1) QBE does not need bindings, since it's just a program that you feed SSA to and it barfs out asm
<unmatched-paren>(2) pascal is easy to parse with a hand-written recursive descent parser
<unmatched-paren>drakonis: see https://yhetil.org/guix-devel/86blg6xncq.fsf@gmail.com/
<unmatched-paren>it tries to update some files in the store apparently
<atka>Aurora_v_kosmose: would I $ export GUIX_BUILD_OPTIONS="-L /my/edited/mapped-devices.scm" and do sudo guix system reconfigure to test out changes on real hardware? messing with luks options for boot drive here.
<Aurora_v_kosmose>atka: Ah... I'm not totally sure how you would do for system level like that, but that sounds about right. Might need to use "-E" with sudo.
<Aurora_v_kosmose>Though, iirc, -L expects a directory within itself rathern than a file (I mispoke earlier), but yeah.
<Aurora_v_kosmose>s/within itself rathern/as an argument rather/
<atka>ok, I'll play around, what could go wrong :)
<unmatched-paren>so i think i'll try playing about with racket a bit :)
<Aurora_v_kosmose>atka: Please do use a VM. Don't risk nuking your primary system.
<atka>I don't know how luks and trim stuff works in a vm
<atka>and its a test rig
<atka>I'm new to this guix/scheme stuff, thanks for the concern though
<unmatched-paren>Rust is also an option, but it's a bit of a pain to bootstrap so i'd rather not
<drakonis>i see.
<unmatched-paren>D too
<Aurora_v_kosmose>atka: Depends on what emulates your disks. With libvirt/qemu/kvm, you can setup qcow2 volumes to shrink when you discard stuff in them.
<Aurora_v_kosmose>So it virtually considers it has N space, consuming M, while only taking M+overhead on the host.
<atka>ok, I'll play around with that too
<atka>Is there a system hacking manual for guix somewhere?
<atka>how does one learn how to edit the system files?
<Aurora_v_kosmose>The manual does have sections on hacking Guix itself, but I don't think there's anything specifically about hacking guix system.
<unmatched-paren> https://guix.gnu.org/manual/devel/en/html_node/System-Configuration.html#System-Configuration <- here you go :)
<atka>thank you!
<atka>actually I don't think that's it
<Aurora_v_kosmose>You'll need to check qemu's manpage for whatever are the appropriate drive arguments for discard.
<Aurora_v_kosmose>If you decide to use the "Running Guix in a VM" direct invocation.
<atka>I'm trying to edit the files that get called by system configuration, not the system config itself
<unmatched-paren>ah, sorry
<Aurora_v_kosmose>Ah, I though that last subchapter was why you linked that.
<atka>I'm not really sure, I'm very new to guix
<Aurora_v_kosmose>You chose a complicated project to bite off as your first one.
<atka>well I have my system configured mostly
<atka>I understand that but this functionality is a must for me
<Aurora_v_kosmose>Understandably. I'd probably have needed to do the same if I didn't decide to just use Guix as a foreign package manager on Debian.
<atka>just want to edit a line or two in this file and reconfigure my system to see if it works but can't find out how
<atka> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/mapped-devices.scm#n214
<Aurora_v_kosmose>Yeah, I think my suggestion earlier will at least be the right way to start.
<joe92191>after a guix install i rebooted and i didnt have a internet connection so setup a static ip and pinged and i still get no connection
<atka>Aurora_v_kosmose: I will just use trial and error until I prevail!
<atka>thanks for the build -L insight
<unmatched-paren>atka: that is the correct answer :)
<nckx>atka: Add "--allow-discards" after "open", no?
<atka>nckx: yes either there or after "luks" but I don't think order matters, I can test real quick
<nckx>Thanks. Not at computer right now.
<atka>nckx: okay tested a few different ways, it can be before "--type" or after "luks"
<nckx>It's personal but after "open" just seemed most logical to me. Thanks for testing. Now it just needs to be made conditional. Not just on a kernel parameter (in fact that mustn't be the primary interface) but on a (discard? #t) mapped-device field.
*nckx AFtouchscreen.
<atka>nckx: yes that is logical, thank you for being attentive to the needs of the people!
<atka>nckx: maybe allow-discard? discard can mean something different
<Aurora_v_kosmose>discard on non-discardable devices is just a no-op.
<atka>I mean, discard on a filesystem level will trim in realtime where the allow-discards luks parameter only allows trim to be passed
<atka>so then you can set up a periodic trim or one offs with fstrim -Av
<Aurora_v_kosmose>True. It's preferable to use periodic trim in general.
<Aurora_v_kosmose>with systemd there's as fstrim.timer for that. On shepherd I don't think there's anything yet.
<atka>yes, just didn't want discard #t to be mistaken for actual realtime discard
<unmatched-paren>i should probably set up periodic fstrim...
<unmatched-paren>is it safe to do it on every ssd? or do i need to check something?
<atka>every modern ssd should be fine
<Aurora_v_kosmose>unmatched-paren: It is on modern SSDs.
<atka>early ones had half baked trim or could anyway
<unmatched-paren>i guess i'll try doing it now
<atka>which could lead to data loss
<unmatched-paren>see what happens
<unmatched-paren>:)
<unmatched-paren>my ssd is pretty new
<Aurora_v_kosmose>There was something about queued vs non-queued instruction which is still flakey with a lot of drives.
<Aurora_v_kosmose>Async trim is flakey, unfortunately.
<unmatched-paren>so should i try it?
<atka>yes, you should run it
<Aurora_v_kosmose>I wouldn't, personally.
<unmatched-paren>ok
<atka>wait why?
<Aurora_v_kosmose>Samsung likes nuking drives on queued trims.
<unmatched-paren>hm, conflicting answers :)
<Aurora_v_kosmose>Synchronous is safer.
<Aurora_v_kosmose> https://en.wikipedia.org/wiki/Trim_(computing)#Disadvantages
<atka>so what are you saying? issuing fstrim -Av should be safe most ssds since ~2015 or so yeah?
<civodul>apteryx, nckx: can berlin be reconfigured, same Guix commit but updated config?
<nckx>atka: You are right, shouldn't omit the allow-. I've also become sceptical of honouring a kernel command line option at all. They complicate code. I can't see a defensible 'I need to {dis,en}able discards to unbreak my boot' use case here, like there is for the fsck.* options.
<nckx>So IMO, no need.
<unmatched-paren>according to `hwinfo --disk`:
<unmatched-paren> Model: "Micron/Crucial Disk"
<unmatched-paren> Vendor: pci 0xc0a9 "Micron/Crucial Technology"
<unmatched-paren>so not a samsung
<nckx>civodul: I defer to apteryx, they last touched it. :-)
<civodul>alrighty! :-)
<Aurora_v_kosmose>atka: So basically queued-vs-nonqueued is at fs-level options. fstrim is a question of whether you're batching it or not.
<Aurora_v_kosmose>atka: Batching is generally safer and more efficient with resources.
<unmatched-paren>might be worth noting that this is a NVMe
<Aurora_v_kosmose>I think but can't say for sure that that doesn't change things much.
<Aurora_v_kosmose>Other than IO speeds & form-factor, obviously.
<atka>and secure erase commands etc
<unmatched-paren>i won't bother, sounds too risky
<atka>but trim and blkdiscard similar
<Aurora_v_kosmose>atka: I think it uses the same ATA commands as all others
<atka>Aurora_v_kosmose: negatave
<atka>negative*
<atka>well, hdparm will not work
<Aurora_v_kosmose>That's more flaws on hdparm's side than indicative of anything on the ATA level.
<nckx>civodul: Just read the reason for the reconfiguration. Awesome. Ta.
<nckx>So it's reliable now?
<Aurora_v_kosmose>oh my, interesting. NVMe command set is not a subset or intersection of ATA or SCSI commands.
<Aurora_v_kosmose>(Though it has equivalents)
<Aurora_v_kosmose>I wonder if internally the drive translates them or if it actually operates on that new command set.
<atka>nckx: can you clarify the IMO, no need? as in you'll allow discards but don't feel the need to add a kernel argument parameter?
<Aurora_v_kosmose>s/subset/sub|super-set/
<atka>Aurora_v_kosmose: yeah the nvme-cli commands are much better imo
<atka>no need to unlock the drive, add a master password, then erase etc
<nckx>I'd make it configurable at the Scheme record level, not run-time overridable from the command line, yes indeedy.
<Aurora_v_kosmose>atka: Neat. I personally haven't relied on secure erase since it ultimately requires trusting the manufacturers without any way to actually verify if they're trustworthy.
<atka>nckx: ok but discards will be available sometime in future on luks boot/fde setups?
<nckx>WDYM?
<nckx>They will be if someone adds the code we're discussing.
<atka>sorry my comprehension is lacking right now, ok yes I see
<nckx>Might be me. Could be you. Who's to say.
<nckx>;-)
<atka>I would love to learn
<civodul>nckx: i think so! for now, we only have http://4zwzi66wwdaalbhgnix55ea3ab4pvvw66ll2ow53kjub6se4q2bclcyd.onion pointing to ci.guix, but that's already good since it allows people to get substitutes over Tor
<atka>I am only week ~2 in guix
<nckx>Cool, atka!
<nckx>civodul: Timely. Great.
<atka>I need to go for a walk and get some fresh air, but would like to learn as much as possible and contribute any way I can, bug reports, documentation, patches eventually, eager to get involved
<nckx>atka: I'm happy to help more hands-on once I get behind a proper keyboard later.
<atka>awesome, I'll be around
<nckx>Yay.