IRC channel logs

2021-05-23.log

back to list of logs

*rekado works on a new texlive importer
<daviid>note that g-golf/init.scm has also changed (wrt dependencies, not just configure.ac), so its substitute code in guix needs to be updated as well
<vldn>how to edit the guix binary from source and build it within guix?
<vldn>like adding an importer
<raghavgururajan>leoprikler: In gtk4 pack-def, despite pre-check phase, tests fail with an error "Could not open display". Thoughts?
<ulfvonbelow>I've been reading the code that runs for mcron when it's used as a standard (vixie) cron, and I think crontab only barely accidentally doesn't hand out root privileges to anyone that asks, because it uses system instead of system* to invoke $EDITOR which invokes bash which happens to decide to set the effective uid to the real uid (AFAIK this isn't specified in any standard, it's just what bash does).
***ornxka_ is now known as ornxka
***janneke_ is now known as janneke
<leoprikler>raghavgururajan: hum, you're creating an Xvfb and setting DISPLAY as usual
<leoprikler>do you have a little more info than that?
***rekado_ is now known as rekado
<raghavgururajan>leoprikler: Nohing more at the moment. Gonna rebuild it on bayfront.
<solene>hello
<xmmx>Hello.
<xmmx>I'm planning to add ghc-8.10.4, for that do I have to upgrade the current ghc from 8.8.3 to 8.8.4 ?
<solene>is there a way to avoid downloading a file twice when updating it in the packages definition? When upstream doesn't provide the sha256 I'm building the package from guix, wait for it to complain and get the checksum that I update in the file and build again which re-trigger a download, it's a waste of bandwidth. I guess there is a way to avoid this?
<xmmx>solene: I was just think about this. I want to know that too.
<efraim>sometimes I'll download the file with wget, run 'guix hash /path/to/file' and then add it to the store with 'guix download file:///path/to/file'
<nckx>That's the supported way.
<xmmx>Any shortcut way to find hash for any tags of git repo ?
<nckx>solene: I don't see a (security etc.) argument against storing the downloaded file instead of throwing it away, though. It would just sit there, ready to be re-used if needed, or be collected at the next GC otherwise.
<nckx>If you're feeling patchy :)
<nckx>xmmx: Shortcut from what?
<solene>nckx: that's what NixOS is doing, it downloads the file once and you fix the checksum and the file is already there for second attempt.
<solene>efraim: that looks perfect! :)
<nckx>solene: How did you end up in the ‘change, try, change, retry’ workflow instead? It's not documented AFAIK.
<xmmx>nchx: sha256 for specific git version/tag
<nckx>xmmx: Shortcut that is shorter than what?
<solene>nckx: I didn't find how to do it so I found a half solution myself by experimenting
<nckx>solene: That would be better. Probably something they added after Guix was inspired.
<nckx>Oh.
<xmmx>nckx: clone a git repo; checkout to a version/tag and guix hash
<nckx>xmmx: The shortest one I think I know is ‘git clone, cd, git checkout TAG, guix hash -rx’.
<nckx>So that.
<xmmx>Okay, I'll script it then.
<xmmx>I thought there was shortcut in 'guix' command itself just like we have 'guix download' for tarball.
<nckx>Sorry, ‘not yet’... Like the other question: not implemented but would probably be happily accepted.
<solene>guix download /path/to/file will add it to the store AND output the checksum
<solene>maybe store is the wrong term here ^^'
<nckx>No, it's correct.
<solene>am I supposed to rebuild guix (./configure && make) after I update the repo with git pull?
<nckx>solene: You seldom have to (ABI changes are rare), but it can't hurt & things will be faster if you do.
<solene>ok
<solene>there is something that disturbs me, if I have a local guix installation from git, should I only do guix commands from it or it's only for building packages and install new packages?
<xmmx>Why guix def points ghc-8 to ghc-8.6 while 'guix install ghc@8' installs 8.8.3.
<cbaines>guix install ghc@8 will pick the latest version of ghc@8 available, regardless of Guile variables
<tissevert>hi guix
<nckx>Hi tissevert.
<tissevert>solene: I only use my local git clone of guix for packaging, so to pass commands like lint and such, and the «regular» install to actually use guix for my system
<tissevert>(guixSD, here, are you using guix from another system ?)
<solene>I'm using guixSD
<nckx>sneek: Later tell xmmx: The code behind ‘ghc@8’ looks at all package objects, picks out the ones with ‘ghc’ as name, then picks the highest ‘8[.x[.y...]]’ version. At no point does it look at variable names. They are totally separate.
<sneek>Got it.
<tissevert>(tired of BSD… ? ^^)
<nckx>Oh, that solene? Really?
<tissevert>yeah of course
<solene>D:
<solene>am I that known? xD
<nckx>:)
<tissevert>you bet
<tissevert>you're already a star ; )
<solene>tissevert: you nickname reminds me... about xmpp?
<tissevert>fediverse
<tissevert>we've exchanged a couple toots in the past
<solene>yes, I remember, I've looked on mastodon but didn't find your name
<tissevert>well I'm much less famous than you are
<nckx>solene: You certainly shouldn't be disturbed. The two Guixes are different in that they see different package collections, but you shouldn't be able to break your system by using the wrong one. At worst, an unintended downgrade when you forget ./pre-inst-env, or an error because your system configuration refers to a package that doesn't exist upstream. But nothing should break. I mix the two constantly.
<solene>tissevert: mastodon has poor search features and I was looking for @tissevert :P
<tissevert>and I'm much less experiences
<solene>nckx: so when I want to upgrade the system, the process as root should be: guix pull && guix system reconfigure
<solene>on the other hand, as an user, I can use guix pull && guix package -u
<nckx>That's possible, but it's only an example. If there's a line it's personal, not universally ‘between user and system’ or anything like that.
<nckx>solene: I don't recommend pulling as root but it works. I use the equivalent of: guix pull && sudo guix system reconfigure && guix package -u.
<nckx>My root user has never pulled.
<solene>hmm, ok, but you said before that it wasn't mixed :D
<ecbrown>that has borked my user account before, sudo updates
<nckx>I was talking about git guix vs. pulled guix, but your <so when I want to upgrade> line mentions guix pull in both cases, only the user differs?
<tissevert>oh gotta go : /
<tissevert>sorry see you later people !!
<solene>if I want to update the Guix manual, should I edit the files in doc?
<ecbrown>solene: yes
<nckx>solene: Yes. The .texi source files, not the generated .info* ones.
<ecbrown>the texi's i believe
<solene>right! I was editing a .info-4 :/
<solene>I found that wireguard persistent keepalive was already set to false and was configurable, but it's not documented
<nckx>Thanks!
<ecbrown>solene: are you of "solene of openbsd fame?" big welcome to guix if so :-)
<ecbrown>(and an infinitessimally smaller big welcome otherwise lol)
<nckx>(Nah seriously you're not well-known or anything.)
<solene>^^'
<solene>ecbrown: it's me
<ecbrown>:-D
<dstolfa>there are people from all over the FLOSS world here, nice
<stikonas>hmm, that's one danger of having pre-generated files in a repo :). People try to edit them instead of source files
<nckx>stikonas: That's why they're not 😛
<solene>I'm trying to figure out to rebuild the doc files though and I'm not successful :D
<solene>wireguard keep alive is defined https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/vpn.scm#n542 but it's not listed in the "export" here https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/vpn.scm#n50 is it wrong?
<nckx>solene: make should work?
<solene>indeed
<nckx>solene: Indeed that looks like a bug.
<solene>let me work on that :p
*nckx shall fix.
<nckx>Oh, that's better, thanks!
<nckx>solene: public-key seems to be missing as well.
<nckx>The joys of manually-synchronised lists.
<solene>ls
<solene>oups :)
<nckx>Could be worse.
<solene>this is cool https://guix.gnu.org/guix-refcard.pdf
<solene>I have no idea who translated "Cookbook" by "Recette de cuisine" in French on Guix website but it's not helping anyone IMO :D (it's litteraly translated cook book and you expect real cooking recipes)
<solene>ops "Livre de recette" sorry :D still, not helpful
<solene>why not, but it's weird to read...
<nckx>Sounds the same in English TBH.
<xmmx>Im planning to update ghc to 8.10.4. Do I have to update the current version 8.8.3 -> 8.8.4 ?
<sneek>Welcome back xmmx, you have 1 message!
<sneek>xmmx, nckx says: The code behind ‘ghc@8’ looks at all package objects, picks out the ones with ‘ghc’ as name, then picks the highest ‘8[.x[.y...]]’ version. At no point does it look at variable names. They are totally separate.
<zimoun>hi!
<zimoun>sneek: later tell apteryx, updating the version number should also automatically update the version in the refcard <https://guix.gnu.org/guix-refcard.pdf>. At least be in the checklist :-) (Refcard still on v1.1.0 :-))
<sneek>Will do.
<xmmx>nckx: They why is it defined this way '(define-public ghc-8 ghc-8.6)' and '(define-public ghc ghc-8)'
<nckx>So packages (which refer to inputs by variable name) can choose a major version of GHC.
<zimoun>xmmx, you mean add a new GHC package. Because updating the default requires to update all the ghc-* packages to be consistent with the LTS version. IIUC how Guix deals with Haskell stuff. :-)
<xmmx>zimoun: What do you want me to do ?
<solene>are there GUI programs to read .info files? I'm not really fan of the "info" command :/
<xmmx>You can convert them to pdf.
<solene>I need 2 GB of latex it will take a looong time to download
<catonano>solene: the best option I kno of is reading info manuals in Emacs.
<solene>catonano: I'm trying to not do everything with emacs. I found pinfo (available in guix) to have a lynx like info reader, quite nice!
***zimoun` is now known as zimoun
<catonano>solene: ah good !
<zimoun>solene: emacs C-h i :-)
<solene>I'll certainly be considered a renegade if I say I don't want to use Emacs :D
<dstolfa>solene: there's a few of us that prefer vim, how else will the holy war go on
<xmmx>:)
<solene>I suppose there are not many Visual Studio editor here, it seems it became very popular quickly
<solene>*editor users
<rekado>pinfo doesn’t display images, nor does it render variable pitch fonts, which is a little sad.
<zimoun>xmmx, I am just pointing that updating the default GHC does not mean only update ’(define-public ghc’ because it is used by ’default’haskell’ in guix /build-system/haskell.scm. However, adding a new variable ’ghc-8.10’ would be cool. :-)
<dstolfa>solene: i hate it in every way. i have never gotten a contribution to any software project from a VS code user that wasn't poorly formatted because their editor did something stupid
<dstolfa>like randomly convert spaces to a tab in 1 line
<dstolfa>or wrap lines completely wrong
<zimoun>solene, well the fact that vscode is not packaged for Guix, AFAIK, should answer your question, ;-)
<solene>;)
<xmmx>zimoun: Thanks for the tip.
<rekado>dstolfa: unfortunately, you can get terrible formatting with Emacs, too. Depends on the user.
<dstolfa>rekado: oh absolutely, this was one of the reasons why i moved to vim. tooling for C and C++ just aren't there yet to get away from manual formatting and emacs fought me on it too many times
<catonano>I remember reading about someone trying to convert info files into html files but I can't remember
<xmmx>zimoun: Do I have to change from 8.8.3 -> 8.8.4 then make new 8.10.4 ?
<rekado>catonano: the texinfo project evaluates moving to HTML for the on-disk format.
<catonano>rekado: ah good to know !
<PotentialUser-23>Hi, the installation of the new version stops after receiving: snd_hda_intel: no codecs found. But I turned off audio and wifi in bios settings because there are no free drivers for them. Is it being solved?
<zimoun>xmmx, and all the ghc-* packages are currently consistent with one LTS. Currently 14.27 defined in guix/import/stackage.scm, compatible with ghc-8.6.5. It is then checked by the linter, see check-haskell-stackage in guix/lint.scm. Does it make sense?
<xmmx>zimoun: Okay
<zimoun>xmmx, I do not know. I guess 8.10.4 should be inherit from 8.8.3. And I have not read carefully read the release notes, but I guess 8.8.3 should be enough to boostrap 8.10 series.
<zimoun>BTW, if you have to update ghx-8.8 from 8.8.3 to 8.8.4, why not. :-)
<xmmx>zimoun: Good to know.
<xmmx>Currently I'm building ghc 8.8.4
<zimoun>cool!
<zimoun>solene: considering the Guix ecosystem, I would recommend Emacs for 3 things: read Info C-h i, Git stuff with M-x magit, read/comment Bugs/Patches with M-x debbugs. Not Emacs for all as editing and so on, but only for these 3 things. IMHO, Emacs does much better than alternatives. (And Org-mode is also something really poweful, another sory ;-))
<dstolfa>org-mode is the only reason i still consider jumping back to emacs
<dstolfa>it's just so good
<zimoun>yeah, Org and especially coupled with Org-Babel is pwa! :-)
<apteryx>I've packaged Gnulib, mostly for the info/html manual, Autoconf macros but also maintainers scripts. I'm hinking its best home is perhaps (gnu packages base), but I'm open to suggestions if you think otherwise :-)
<sneek>Welcome back apteryx, you have 1 message!
<sneek>apteryx, zimoun says: updating the version number should also automatically update the version in the refcard <https://guix.gnu.org/guix-refcard.pdf>. At least be in the checklist :-) (Refcard still on v1.1.0 :-))
<apteryx>zimoun: hmm. Currently that's to be done manually?
<solene>I'm trying to update openttd but for some reasons the new package doesn't include open{sfx,fgx}... that's super weird :D
<vbox>Hi, I'm testing Guix 1.3 (latest iso standalone) on VirtualBox 6.1 (latest on Windows). After a few minutes of inactivity, guix freezes with a black screen. Do you know a remedy?
***roptat_ is now known as roptat
<zimoun>apteryx: I guess.
<apteryx>rekado: yay about a new texlive importer! Don't forget to mention it fixes https://issues.guix.gnu.org/45656 in your commit.
<ecbrown>apteryx: i have this done for qt6: https://ericcbrown.com/qtbase-dag.pdf
*ecbrown wonders if there's floss friendly graphical pastebins
<solene>is it possible to have ccache for the build? That would save me A LOT OF TIME :D
<solene>vbox: does something happen if you ask virtualbox to send a shutdown signal? That would permit to see if the VM is hanging and dead or if it's unresponsive to mouse/keyboard actins
<nckx>solene: No.
<ecbrown>solene: there is an offload build facility, to send to a larger computer to build and then it fetches the artifacts back
<solene>ecbrown: I'm just struggling with a package that fails once it reach 99% of its build and I have to do it again and again every time I make a simple change to see if it fixes the build. Using ccache I'd reach the 99% step in a few seconds
<vbox>solene: no, nothing happens. Now that I think about it I can fix it by disabling auto suspend.
<solene>vbox: seems like your system is going in suspend mode and virtual box doesn't enjoy that?
<vbox>solene: I also have other linux vms and they don't have this problem..
<ecbrown>vbox: i have this problem with gdm, i usually run "headless" but have a gui screen. i don't think you can disable suspend after 20 min unless logged in as user
<ecbrown>(many trips to the basement to kick start my computer lol)
<ecbrown>an option is to replace gdm with sddm
***pkill9_ is now known as pkill
***pkill is now known as pkill9
<zap>solene: another solution is use -K flag for 'guix build'. You will have build tree available in /tmp after the buld has failed
<zap>there you could add changes and for example run make if the package uses gnu-build-system
<solene>interesting
<ecbrown>yes, i wonder if you have to build up a "guix environment" too, may be a big job depending on complexity
<vbox>solene, ecbrown: Sorry. I was wrong. I have now tried to run "systemctl suspend" on CentOS 8 and the problem still occurs. The problem is VirtualBox!
<solene>I'm not really surprised
<vbox>:-)
<ecbrown>meh virtualbox
<dstolfa>virtualbox is the most unreliable thing i've ever had the displeasure of using
<ruffni>i'm porting ufw to guix. it installs just fine. but ufw expects /etc/default to hold some initial values. i think that's a debian thing for storing default settings. how is this handled in guix?
<pkill9>in guix, the service would typically launch ufw with a config file specified, and the config file would be generated in the store
<ruffni>so i'd install the package and configure a ufw-service (inheriting from 'etc' service)?
<pkill9>i think one issue would be that typically services in guix are configured in the configuration.scm file, rather than using commandline, the next time it reboots it would discad the settings changed using commandline
***bsima1 is now known as bsima
<ruffni>huh
<pkill9>i think you would create a service that runs something like (invoke "ufw" "--config" (ufw-config `(blah blah)))
<pkill9>where ufw-config would be a function that takes a configuration record, and returns a gexp (e.g. plain-file) that produces a text file in the store that is a ufw configuration
<pkill9>so the service would end up running `ufw --config /gnu/store/...-ufw.conf` or something
<ruffni>so this /gnu/store/...ufw.conf is in a profile or in the ufw package?
<pkill9>it would be generated, so neither
<ruffni>huh
<pkill9>as in
<pkill9>generated by a gexp
<ruffni>aaah, that's what that means ;)
<pkill9>a g-expression is scheme cod ethat generates a file in the store i think
<pkill9>packages and profiles are g-expressions when it comes odwn to it
<ruffni>this sounds like what i'm looking for! except that ufw doesn't have a --config option (i think) but expects files to be in /etc/default/ufw and /etc/ufw (but this is easily patchable)
<pkill9>yea you can also just extend /etc service like you suggested actually
<pkill9>but it's preferable to use commandline, just because it's less reliance on 'state' (i.e. the 'state' of the /etc directory)
<pkill9>i think /etc is just used when it isn't possible to do directly via commandline
<ruffni>do you know of any examples i could look some stuff up? this is pretty new for me and my impression of the docs for services is that they're not as verbose/complete (maybe) than the part for the packages? or am i just looking in the wrong places?
<pkill9>or would require a lot of patching which would mean more maintenace
<pkill9>yea i don'tthink there's as much docs for creating services
<pkill9>i'm not sure sorr
<pkill9>sorry*
<HiddenKarma>Hello, is there any reason tensorflow is not at version 2.*?
<ecbrown>ruffni: ufw on guix would be sweet. i am fighting with iptables and nftables now :-(
<vbox>I go out. Thanks for your help ;)
<roptat>how can I use a given guile library inside a gexp?
<redline>Hello
<ruffni>ecbrown: i'm trying to get ufw to work; next one is fail2ban
<ruffni>do i understand correctly that /etc is persistent?
<ruffni>is it wrong (in the spirit of guix) to patch /etc/default/ufw to /gnu/store/<hash>-ufw-<v>/etc and copy said directory to /etc/ufw if it doesn't yet exist?
<roptat>the content of /etc will be replaced by guix on boot
<ruffni>by the 'etc' service?
<roptat>ruffni, ultimately, yes
<roptat>or any service that extends it
<ruffni>by the composition of all services registered extending etc. got it.
***cage_ is now known as cage
***cage_ is now known as cage
<nckx>Guix doesn't currently delete ‘unclaimed’ files in /etc but it's not guaranteed to stay that way.
<pkill9>it only replaces files within /etc, not the whole directoyr
<pkill9>directory*
<ruffni>so for now it could work with /etc/ufw. what would advantages be of replacing the whole /etc (like nckx implies)?
<ruffni>gotta go, bye for now!
<zap>roptat: you mean library like (json) ?
<zap>If yes then with-extensions and source-module-closure are your friends
<dstolfa>is there a way to get guixsd installer to default to gnome wayland rather than x11?
<nanounanue>Hi veryone
<nanounanue>After running a `guix pull` yesterday, I am getting the following error: `guix gc: error: setting synchronous mode: unable to open database file` in *every* `guix` command
<nanounanue>Apparently the system thinks that it don't have any space free on device, though `df -h` reports 50 Gb free
<nckx>dstolfa: Looking at the code, it doesn't seem so. You'd choose GNOME, then when given the chance to edit your configuration near the end, remove GDM from %desktop-services and replace it with SDDM. Not trivial by far.
<nanounanue>If I try to run any command like `touch` I got the following error: `/run/current-system/profile/bin/touch: cannot touch 'test': No space left on device`
<dstolfa>nckx: hmm, but is gdm the issue here? i was under the impression that gnome defaulted to wayland, but for some reason i see a bunch of xorg stuff running?
<nanounanue>Any ideas?
<nckx>Our GNOME *supports* Wayland, but only when launched from SDDM (and you choose the ‘Wayland’ session type before logging in). It's certainly not the default.
<nckx> https://guix.gnu.org/devel/manual/en/html_node/Desktop-Services.html
***efftee is now known as ft
<ss2>nanounanue: your root partition is full. You better try to make some space there, otherwise guix will have a hard time working with the database.
<dstolfa>ah i see. thanks nckx
<nckx>nanounanue: Does ‘df -i’ show that you're out of inodes? (I doubt it; I think I know what this is: are you perchance using ext4?)
<nckx>nanounanue: Hm, touch anyplace? Then it's not that after all.
<nanounanue>ss2: thanks for your answer but if I run `df -h` I have plenty of space
<nanounanue>df: /run/user/1000/doc: Operation not permitted
<nanounanue>Filesystem Size Used Avail Use% Mounted on
<nanounanue>none 3.8G 0 3.8G 0% /dev
<nanounanue>/dev/nvme0n1p3 230G 171G 48G 79% /
<nanounanue>/dev/nvme0n1p1 498M 223M 275M 45% /boot/efi
<ss2>please use a paste service.
<nanounanue>tmpfs 3.8G 0 3.8G 0% /dev/shm
<nanounanue>none 3.8G 28K 3.8G 1% /run/systemd
<nanounanue>none 3.8G 0 3.8G 0% /run/user
***ChanServ sets mode: +o nckx
<nanounanue>cgroup 3.8G 0 3.8G 0% /sys/fs/cgroup
<nanounanue>none 3.8G 0 3.8G 0% /var/cache/fontconfig
***nanounanue was kicked by nckx (nanounanue)
***ChanServ sets mode: -o nckx
<nckx>nanounanue: Welcome back. Please use a service like paste.debian.net for multi-line messages.
<nanounanue>nckx: Thanks, first time in an erc channel, I will follow your advice from now on
<nckx>It's all right. I need to set a one-character alias to quiet users, I only have one to kick :)
<dstolfa>nckx: the config file in the installation doesn't contain gdm
<dstolfa>at least not when GNOME is selected as the DE to install?
<nckx>dstolfa: %desktop-services.
<nckx> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/desktop.scm#n1229
<dstolfa>oh i see, when you said remove it i thought you meant just deleting it out of the config file, not programmatically removing it from desktop-services :)
<nckx>Hence you need to import one of two (I always forget which one myself) modules that provides the sane DELETE procedure, and delete gdm from %desktop-services.
*nckx got interrupted.
<nckx>Yeah, hence the ‘not trivial’ above I'm afraid.
<nanounanue>nckx: So basically, it seems that I have space in disk... (according to df at least). But any pointer about the error `guix gc: error: setting synchronous mode: unable to open database file error?`
<nckx>(use-module (srfi srfi-1)) (modify-services %desktop-services (delete gdm-service-type))
<nckx>is the one.
<nckx>nanounanue: That just sounds like database corruption.
<dstolfa>nckx: i guess it's easier to do this after the installation than trying to modify the config file in the installer
<nckx>Probably.
<nckx>Less risky anyway.
<nanounanue>nckx: I was assuming that, It is good to know that I was in the right track. Is there any way to solve the db corruption?
<nckx>Probably not, you'll have to restore a backup. But first, try ‘guix environment --ad-hoc sqlite -- sudo sqlite3 /var/guix/db/’, enter ‘pragma integrity_check;’, to see if my answer is even correct.
<nckx>Sorry /var/guix/db/db.sqlite.
<nanounanue>nckx: Thanks, let me try it
<nckx>I don't know if it could produce a false positive ‘ok’. I know very little about sqlite.
*nckx AFK.
<nanounanue>nckx: Don't worry. The command fail with the same error: `guix gc: error: setting synchronous mode: unable to open database file`
<nanounanue>So, I am assumming that the backup is the only option ...
<nckx>nanounanue: No, stupid me, you're not able to do *anything* with Guix so... OK: does ‘ls /gnu/store/*/bin/sqlite3’ show anything? (It should, many things depend on sqlite.) Then invoke one of those full file names directly instead of using Guix environment.
<nckx>Also check your dmesg for any hint of what's actually going on with your file system.
<nanounanue>nckx: The first test failed. When I try to look into the db I got: `unable to open database file`
<nckx>That's vague.
<nckx>Anything more useful in dmesg?
<nanounanue>nckx: And regarding `dmesg`, one line (well several ones) that looks suspicious: `[ 5042.371549] EXT4-fs warning (device nvme0n1p3): ext4_dx_add_entry:2354: Directory (ino: 655404) index full, reach max htree level :2`
<nckx>So it *is* what I thought. I don't understand why you can't touch files outside of the store, though.
<solene>I got openttd to work correctly! \o/
<nckx>dir_index is a horrible ‘feature’ but it should only keep you from writing new files to /gnu/store, not your entire file system.
<nckx>Running ‘sudo tune2fs -O ^dir_index /dev/nvme0n1p3’ will probably fix your bogus ‘no space left on device’ errors, at the expense of performance of directories with very many entries like /gnu/store. But you only have one choice...
<nanounanue>nckx: Oh
<nckx>Not much point in a faster broken file system :)
<nanounanue>nckx: Hahahaha
<nanounanue>nckx: True
<nanounanue>nckx: Let's try it
<dstolfa>people who have been running guixsd on a laptop for a while: how much space do your generations usually use?
<nanounanue>nckx: I didn't expect that. I ran `sudo tune2fs -O ^dir_index /dev/nvme0n1p3` and I returned almost immediately.
<nanounanue>nckx: So I don't know what happened, but the problem persists (Or should I log out and then log in?)
<nckx>It just sets a bit in the superblock. I'm not even sure if it requires a reboot to take effect (I'm a bit weary to ask you to reboot since a read-only / will not).
<nckx>I guess it does.
<nckx>Do you still get the same (new) messages in dmesg?
<nckx>dmesg --follow and do some failing things.
<nanounanue>nckx: weird. I did as you suggested. I tried `touch`, or run `chromium`, getting the `No space left on device` error, but nothing in `dmesg` showed up
<nckx>This is weird. Did you see my earlier comment about ‘df -i’ (not -h)?
<nckx>I can't think of what else it could be.
<nanounanue>nckx: I didn't see your suggestion, I apologize. But running `df -i` shows that I don't have any inodes available in `/`.
<nanounanue>nckx: I have 15M and 15M in use
<nanounanue>nckx: Is there a way to increase that?
<nckx>nanounanue: Not without recreating the file system from scratch.
<nckx>No need to apologise. Mystery solved, at least.
<nckx>You probably know what inodes are so you probably know the only solution is to delete some files :-/
<nckx>(If you don't; well, it is.)
<nckx>This doesn't happen often (about 1-2x a year?) but enough that we should consider tweaking the mkfs.ext4 defaults in the installer… And by ‘we’ I'd ideally mean ‘someone who knows or at least uses ext4’, not me committing some random good-looking numbers.
<nckx>...I got disconnected, those 3 messages ☝ are older.
<ss2>oh yes, I'd be for such a tweak. I've resorted to doing this manually, and still not sure if I've found the right balance.
<nckx>nanounanue: If you have a spare drive and a live medium (like the Guix System installer), you could move everything off of / with rsync -aHAX[...], reformat it with -i ‘8192’ (twice as many inodes as default 16k, *if* UC), and move everything back with the same rsync options.
<nckx>There's no easy solution here.
<nckx>If you happen to find 10,000 small files you can safely delete, that would help for now.
<nckx>ss2: Is my 16k default number correct?
<nckx>It's what the docs say but ¯\_(ツ)_/¯
<ss2>I don't know the default number, but I alays do a mkfs.ext4 -i (or is it -I?) 4096
<ss2>and the inode count seems to be okay afterwards.
<nckx>That's definitely better on the side of caution, but it quadruples the overhead (instead of doubling it). But it's safer.
<ss2>yeah, if the count is too high, you quickly run out of space.
<nanounanue>nckx: Thanks
<nckx>This whole problem is such a blast from the past.
<ss2>yes, this has done me several long nights figuring this out.
<nanounanue>nckx: I will try it. I will let you know what happens
<nckx>Good luck.
<nanounanue>nckx: But before moving on, given this problem, maybe I should use another thing instead of `ext4`?
<nckx>Btrfs doesn't have this problem.
<ss2>would it be advisable to do a garbage collection? that would significantly clear up inodes.
<ss2>for a quick fix. and then move the contents?
<nckx>If they remove some stuff so they can write to the DB.
<nanounanue>ss2: The problem is that *every* `guix` command is failing with: `guix gc: error: setting synchronous mode: unable to open database file`
<nckx>It wouldn't fix the problem but it would result in less data that needs to be copied back and forth during the migration, so good idea.
<ss2>nanounanue: but have you freed an inode yet?
<nanounanue>Could I delete (safely) from `guix-extra-profies`? I have a `texlive`profile that I am not using, but I don't know if I can just delete it ...
<nckx>nanounanue: Can you delete a few (ideally more) files, or move them somewhere else in the unlikely event that every file on your drive is holy?
<ss2>yes, you can
<nckx>nanounanue: Yes.
<ss2>texlive takes up a lot of space, and is a lot of small files too.
<nanounanue>ss2: Exactly that's what I was thinking
<nanounanue>nckx: Should I remove that profile just with `rm -R ...`
<nanounanue>?
<ss2>nckx: thinking of, I once tried to rsync a store to an external partition, which I never got it right, since it would have taken ages moving the amount of inodes, and I'd always run into issues of broken hard links or something similar.
<nckx>I don't know what you mean by ‘guix-extra-profiles’ so I'm not sure.
<nckx>Oh, it's a cookbook thing.
<nckx>I guess so? You know what it contains better than we do. It shouldn't break your system.
<nckx>ss2: I back up full (Guix) systems with rsync and they restore identically, but I believe you. So many tiny details to go wrong.
<nanounanue>nckx: Thanks!
<nanounanue>ss2: COuld you point me to some instructions to do the backup with rsync? Or to any source using a tar? (I think nckx) mentioned that earlier
<nckx>It wasn't me; tar is a reasonable tool for this job but I'm not familiar with it at all.
<nanounanue>ss2: Sorry about all this questions, I just started to use `guix` like 6 months ago (super hapy about it, don't think that I will going back to a egular distro, btw)
<ss2>same for me.
<ss2>anyway, tbh, my solution then, to solve this inode issue was to actually reinstall, after formating the partition manually with the proper inode count.
<ss2>since, if you've got your ready declaration, you'll be back to the same system anyway.
<ss2>if you want to do a hard reboot, with a fresh system, and all previous generations lost.
<nckx>Here's part(!) of my back-up script's frankly ridiculous rsync options: --{archive,ignore-times,no-recursive,numeric-ids,fake-super,acls,hard-links,sparse,xattrs}
<ss2>or you try to move the store with rsync, which I've never succeeded so far, but nckx says it is possible.
<ss2>nckx: do you run it offline, or online?
<nckx>nanounanue: If you're changing to btrfs anyway, I'd reinstall like ss2 says, since you can't copy your current system to btrfs and simply boot. It will try to mount / as ext4.
<nckx>And it's less error-prone.
<nckx>ss2: On-line, hourly, to a remote server.
<nckx>Lessons learnt & all that :)
<nanounanue>nckx: ss2: I will reintall then. I will just backup my home directory.
<nckx>Probably for the best.
<nckx>Just don't select ext4 out of habit...
<dstolfa>ext4 inode limits strike again?
<nckx>If you do want to keep ext4, switch to a VT with Shift+Alt+F2 at that point in the installation, and create the file system yourself with -i 4096 or 8192 (lower = safer + more wasteful), then continue from there.
<nckx>dstolfa: It's that day of the week!
<dstolfa>what is the default bytes per inode ratio on guix?
<dstolfa>i always partition it myself
<nckx>We don't (yet?) override the upstream default, which the documentation claims is 16k.
<dstolfa>ah yes, that'll do it.
<nckx>Despite my quip above I've never actually encountered this in the wild. The previous ~4 people I've helped with bogus ENOSPCs had plenty of free inodes. This was a first.
<nanounanue>nckx: Good to know that I was the first! (hopefully the last one)
*nckx hopes bcachefs development & upstreaming doesn't stall.
<ss2>there was a period where I'd encounter this every day, across several machines. Good times.
<nckx>nanounanue: The first whilst I was around, anyway.
<nckx>I know it's happened before.
<nanounanue>nckx: Could be related that my laptop ran out of battery in the middle of a guix upgrade?
<dstolfa>i wish btrfs had better management utilities
<nckx>That could be related to the potential DB corruption we never debugged. Could.
<ss2>is btrfs deemed okay these days? I was too early using it, and had weird data problems afterwards. Since then I haven't really trusted or used it again.
<nckx>I wish btrfs had a better fs... (sorry, disillusioned early adopter).
<nckx>☝ what ss2 said.
<nckx>Who hurt you → btrfs.
<dstolfa>btrfs has lost my data about 5 times before, but it got better since
<dstolfa>the tools still suck
<ss2>yeah, know, was my own fault.
<dstolfa>but the fs is usable
<nckx>Lol, I just ran out of space on / because I was yakking about file systems instead of paying attention to make check-system.
<dstolfa>i think i'll end up running btrfs, i wanted to give it another fair try anyway
<dstolfa>and i use timeshift a lot
<dstolfa>so i could get timeshift to be happy with btrfs
<dstolfa>and surely if fedora defaults to it, there's some level of reliability of it
<nanounanue>dstolfa: makes sense
<robin>i've been using btrfs for years; i think i switched after meeting the maintainer at a red hat conference (i was too shy but my friend asked my question about why it doesn't use zippers internally :))
<robin>it gets cranky if you run out of disk space but i've never had data loss from it
<alexandra>hi there, I just installed guix on my computer, and I need to recompile the kernel to add support for my wireless card. is there a way to do this with the config.scm file or something like that? I'm not really used to using a system like this
<robin>alexandra, what model is your wireless card? guix uses linux-libre, so only cards with free firmware (or no firmware) are officially supported
<alexandra>robin: it's an intel 7260
<robin>alexandra, probably not supported by guix, according to the h-node database :( the manual suggests a few models that do work in (info "(guix) Hardware Considerations")
<apteryx>ecbrown: looking good!
<apteryx>ss2: never had any problems with Btrfs; been using it since 2017 perhaps? I have it setup as a Btrfs RAID 1 array with zstd compression on my desktop; and in case of questions its developers in #btrfs (that was on freenode, not sure if they moved to libera) have been very useful.
<apteryx>I can recommend it without hesitation
<robin>zstd compression is really nice with guix, especially if you tend to keep lots of generations around and are lazy about GCing like me :)
<nckx>+1, zstd really makes a difference.
<dstolfa>nckx: so it's fairly straightforward to get into wayland-gnome from the installer actually, the thing you need to include is just srfi
<dstolfa>then you can use modify-services and it's easy
<nckx>Well, that's straightforward for some users, daunting for others, but I'm happy to hear it worked.
<dstolfa>yeah i mean i guess it would be ideal to have a little "tick" option in the installer for SDDM instead of GDM, but it's not really the end of the world. the docs are great, but maybe it would be handy to include the "slim-service-type" example from the docs into the sddm-service-type one too
<dstolfa>aside from that, it's easy to follow along
<dstolfa>at least if you know some lisp
<dstolfa>anyway, that was the last thing i needed in my config file. it might be time to move it from a vm to hardware the next chance i get
<nckx>\o/
<drakonis>ix: so i'm trying to figure out what exactly has to be put together to create a flakes analogue in a guix system
<drakonis>there's module importing as part of guile the language, inferiors through guix and channels for pinning
<ix>Yeah it actually should be doable
<ix>Inferiors are limited
<ix>In certain ways
<drakonis>do explain
<ix>Can't remember the detail rn
<solene>for Go software, is it ok to package the static binaries proposed by upstream?
<ix>I was fiddling with them and hit a wall to their malleability
<ix>Tl;dr they are not 1:1 interchangeable with normal packages
<drakonis>what exactly do you use flakes for anyways?
<drakonis>i'd easier to figure out something if i knew what you usually need them for
<ix>drakonis: I don't know how to summarise that
<ix>Theres someone else in here who wants to help though
<ix>I spoke to someone else about flakes in guix
<ix>I'll search logs
<ix>drakonis: https://logs.guix.gnu.org/guix/search?query=flakes
<ix>Seems it was "cheers" who is not here
<drakonis>ah so you're trying to use the feature that lets you arbitrarily include a repository to your inputs?
<ix>drakonis: probably
<ix>drakonis: I mean plenty of inspiration from my config, I guess, but yeah thats the main one. Even without that, channel config isn't easy to make declarative, and even if you do via inferiors, you can't build an entire inferior system, so thats alrealy one limit
***alextee2 is now known as alextee
<pineapples>I was convinced that Guix' implementation of channels covers the needs of Nix Flakes adopters
<drakonis>i should point you towards existing configs
<drakonis>they manage building different systems with a single config just fine
<thorwil>hi! i would like to package https://sourceforge.net/projects/eq10q/. is there some trick or accpeted workaround for getting a stable download link from sourceforge?
<ix>drakonis: not about making multiple systems, about making inferior systems. I can't use a declaratively specified guix without just pinning it in channels.scm, which is yikes
<drakonis>i see
<drakonis>hm
<drakonis>actually you can do it without channels.scm
<drakonis>hold up
<ix>pineapples: nope, as is evident from people continually asking about it in here
<ix>drakonis: I said it above, you can make inferior packages, but not systems
<drakonis>i see
<drakonis>okay
<drakonis>that should be worth investigating theb!
<drakonis>then!
<drakonis>i'm not sure if you're willing to work on that
<ix>Me? No. I've said repeatedly, I don't even have the capacity to fiddle with nix these days, let alone learn a new thing
<drakonis>ah okay
<drakonis>that's fair
<nckx>solene: Binaries built upstream? No. Of course you can package whatever you want for you own use.
<nckx>Or create a channel. But it won't be accepted into Guix proper.
<solene>nckx: ok :)
<ss2>apteryx: oh, thanks for replying. Was reading around and am considering to try it eventually.
<nckx>thorwil: Click on the ‘problems downloading? here's a non-JS link that actually works! remember those?’ link at sourceforge, then turn it into a mirror://sourceforge URL.
<nckx>In this case, <mirror://sourceforge/eq10q/eq10q-2.2.tar.gz>.
<thorwil>nckx: heh, just when i figured that out ;) thanks!
<tissevert>wow ChanServ just quit on the otherside
<nckx>It has here too. It's just another daemon that needs restarting sometimes.
<nckx>The Otherside is a many-layered shithow, but that's not one of them.
<nckx>*show
<tissevert>oh, I had never seen this before
<tissevert>I guess I spend more time around IRC now ^^
<nckx>It's not supposed to happen often :)
<tissevert>thanks for your explanations !
*nckx had more to say but we're all sick of hearing about IRC.
<pineapples>ix: Well. I'm down for new features that open up new possibilities, even though I haven't found use for them yet
<pineapples>Thanks for the clarification
<solene>is it possible to use guix lint -c refresh but only with installed packages?
<solene>guix package -I | awk '{ print $1 }' | while read pkg ; do guix lint -c refresh $pkg ;done
<solene>:D
<civodul>solene: or "guix refresh $(guix package -I | cut -f1)" :-)
<solene>it's super fun to hack on guix (i love lisp), I had absolutely no fun on NixOS, it's a lot more complicate and "corporate"
<solene>:O
<solene>what happens if I use "guix refresh rsync" with the system wide guix and not the one from my git repo? It's weird to me to have 2 guix commands
<nckx>solene: It'll just look at the version of rsync shipped with the system-wide guix, and tell you whether it's old. Using ‘./pre-inst-env guix refresh rsync’ from your git repo will look at the rsync version in the git repo.
<nckx>It's quite ‘simple’.
<pkill9>solene: what does it mean for it to be more 'corporate'?
<solene>pkill9: it seems really company driven, I made a few commits and got a job offer related to NixOS... They rely on github and there are a few paid services to help NixOS development (I remember one about paying to download existing derivations instead of setting up such service)
<solene>I have the test "channels" that FAILS when I use make check in my guix repo, can someone else reproduce it?
<solene>you need to fill forms to submit bugs and patches too (on github)
<solene>I have nothing against establishing some rules though
<pkill9>yea, it's nice being able to just email bugs and patches
<civodul>sneek: seen mbakke
<sneek>mbakke was in #guix 4 days ago, saying: civodul: wooo, thanks! \o/.
<nckx>mubarak: ...and welcome ☺
<mubarak>nckx: thanks
<mubarak>should i copy->paste my post there
<nckx>Yes.
<mubarak> I've installed Guix 1.3.0 amd64 with Mate Desktop on my laptop. when I login and when i increase/decrease screen backlight it ask me for my password.