You are here

IRC logs for #guix, 2015-03-30 (GMT)

[00:06:12]* arescorpio has joined #guix
[00:13:39]* oblo has quit (Quit: Sto andando via)
[00:35:42]* Emulatorman has joined #guix
[00:48:49]* ijp has quit (Quit: brb doubling the cube)
[00:49:54]* leothrix has joined #guix
[00:53:07]* zacts has joined #guix
[00:56:19]* davexunit has quit (Quit: Later)
[01:33:07]* Rastus_Vernon has quit (Quit: bye)
[01:39:52]<mark_weaver>{0}grant: the file-systems field is all messed up
[01:40:27]<{0}grant>mark_weaver: Mine, or generally?
[01:40:34]<mark_weaver>you need to use 'cons*' instead of 'cons', and cons two (file-system ...) forms onto %base-file-systems
[01:40:47]<mark_weaver>what you've got there is one file-system with duplicate fields.
[01:40:48]<{0}grant>mark_weaver: Ah, well I had the latter at first.
[01:41:14]<{0}grant>Then assumed I was tiredly doing something foolish, then said correction looked /way/ off and is/was.
[01:41:18]<mark_weaver>also, since you are providing devices instead of labels, they should contain (title 'device) instead of (title 'label)
[01:42:26]<mark_weaver>if you want to use wicd, then you should remove (dhcp-client-service ...) and add (wicd-service)
[01:43:00]<mark_weaver>and you'll need 'wicd' in the list passed to 'dbus-service'
[01:43:16]<mark_weaver>I have (dbus-service (list avahi wicd))
[01:43:19]<{0}grant>I really have never used it non-trivialy, bu I might as while try using wicd as is there seems to be decent general automation in-route there.
[01:44:30]<mark_weaver>also, since you made yourself a group, you probably want (group "grant") instead of (group "users") in your user-account
[01:45:04]<mark_weaver>and you should have (locale "en_US.utf8")
[01:45:15]<{0}grant>I might just remove said gorug, I'm not sure why I even had it in there to start besides messing around.
[01:46:04]<{0}grant>mark_weaver: Not "en_US.UTF-8" ?
[01:46:39]<mark_weaver>it might be that both work, I don't know.
[01:46:51]<mark_weaver>but I know that mine works anyway
[01:47:56]<{0}grant>Do we need to specify swap? I didn't see anywhere mentioning this, but I've been trying real hard as of recent to fix my sleep schedule ... so it's probably very possible I was sloppy and missed it.
[01:51:58]<mark_weaver>yes, add something like (swap-devices '("/dev/sdaX"))
[01:52:48]<{0}grant>mark_weaver: Ah, yeah, sorry you're correct.
[01:52:52]<mark_weaver>see section 6.2 of the manual (System Configuration)
[01:54:50]<mark_weaver>you should probably add one of the packages that provides a SLIM service.
[01:55:01]<mark_weaver>e.g. xfce, ratpoison, or windowmaker
[01:55:21]<{0}grant>Did I remove ratpoison?
[01:55:24]* {0}grant goes to check.
[01:56:00]<mark_weaver>ah, you have guile-wm
[01:56:07]<mark_weaver>but that's not usable out of the box
[01:56:39]<mark_weaver>and almost certainly lacks a session definition for display managers such as SLIM.
[01:56:42]<{0}grant>Doesn't Windowmaker currently come with the slim-service, or is that some other depend I have?
[01:58:28]<mark_weaver>it might work, dunno
[01:58:39]<mark_weaver>the way SLIM sessions were managed was recently changed
[01:59:12]<{0}grant>In any case, ty mark_weaver. Just started the sys-init and it seems to be chugging along just fine. :^)
[01:59:47]<{0}grant>Tomorrow, hopefully on a lot more sleep than I've allotted myself today -- I can close to finish up that machine, and do a little on said probable dedicated build-box.
[02:00:01]<mark_weaver>it used to be that you had to pass the list of sessions to slim-service. now you just add the relevant packages to your system-wide profile and it happens automatically.
[02:00:52]<{0}grant>Oh, that's pretty neat.
[02:01:32]<mark_weaver>windowmaker still seems to be the default fallback session, but I'm not sure it will work properly if it's not in the system-wide profile.
[02:02:36]<{0}grant>I don't have enough effort in me tonight to fool around anymore, but yeah, I'll keep an eye out.
[02:02:37]<mark_weaver>{0}grant: you don't need to import (gnu packages) or (gnu system)
[02:03:07]<mark_weaver>you don't need (guix monads) either
[02:05:05]* leothrix has quit (Remote host closed the connection)
[02:10:03]* ArneBab has joined #guix
[02:13:09]<{0}grant>Hm, Guix is warning me that "wicd" is an unbound variable, even though I have it in my (use-package-modules), (packages), and (services).
[02:13:11]* ArneBab_ has quit (Ping timeout: 246 seconds)
[02:13:28]<{0}grant>When I put it in (use-service-modules) that causes a different error.
[02:13:38]<{0}grant>put it in also*
[02:14:32]<{0}grant>Hm, took it out of dbus-service and it's seemingly going.
[02:15:07]* leothrix has joined #guix
[02:15:07]* leothrix has quit (Changing host)
[02:15:07]* leothrix has joined #guix
[02:25:21]* zacts has quit (Ping timeout: 252 seconds)
[02:27:55]<{0}grant>mark_weaver: We have lift-off! Ty, main box is now booting to and connected the internet via Guix. :^)
[02:28:16]<{0}grant>There seems to be an issue with my home directory on this box, but I'll mess with that tomorrow.
[02:36:01]* zacts has joined #guix
[02:49:23]* taylanub has quit (Disconnected by services)
[02:49:39]* taylanub has joined #guix
[03:23:44]* sprang has quit (Ping timeout: 265 seconds)
[03:35:50]* zacts` has joined #guix
[03:36:09]* zacts has quit (Ping timeout: 248 seconds)
[03:37:47]* zacts` has quit (Remote host closed the connection)
[03:38:39]* OrangeShark has quit (Quit: Leaving)
[03:39:33]* zacts has joined #guix
[03:54:26]* mbuf has joined #guix
[04:01:05]* leothrix has quit (Remote host closed the connection)
[04:01:59]* leothrix has joined #guix
[04:06:32]* leothrix has quit (Ping timeout: 256 seconds)
[04:51:24]* arescorpio has quit (Excess Flood)
[05:02:50]* leothrix has joined #guix
[05:07:48]* leothrix has quit (Ping timeout: 255 seconds)
[05:21:39]* sprang has joined #guix
[05:22:45]* zacts has quit (Ping timeout: 244 seconds)
[05:23:45]* zacts` has joined #guix
[05:31:56]* zacts` has quit (Quit: ERC Version 5.3 (IRC client for Emacs))
[05:45:42]* sneek has quit (Ping timeout: 256 seconds)
[05:50:51]* phant0mas has joined #guix
[05:55:36]* fasheng has joined #guix
[06:18:05]* phant0mas has quit (Ping timeout: 245 seconds)
[06:27:57]* zacts has joined #guix
[06:51:57]* leothrix has joined #guix
[06:52:03]<rekado>Since rebasing my solfege package to a more recent version of Guix I get this error whenever I use substitute* in a build phase:
[06:52:04]<rekado>ice-9/boot-9.scm:106:20: Throw to key `decoding-error' with args `("scm_getc" "input decoding error" 84 #<input: solfege/ 11>)'.
[06:52:18]<rekado>Is this locale-related?
[06:56:19]* Digit has quit (Remote host closed the connection)
[06:57:06]* leothrix has quit (Ping timeout: 256 seconds)
[06:59:48]* Digit has joined #guix
[07:09:52]<rekado>ah, works fine after wrapping in (with-fluids ((%default-port-encoding #f)) ...)
[07:48:09]* Emulatorman has left #guix ()
[08:01:38]* atheia has joined #guix
[08:06:25]* wingo has joined #guix
[08:07:22]* civodul has joined #guix
[08:09:05]<civodul>Hello Guix!
[08:10:44]* phant0mas has joined #guix
[08:14:59]* ph4nt0mas has quit (Read error: Connection reset by peer)
[08:30:58]* ph4nt0mas has joined #guix
[08:36:57]* nee has joined #guix
[08:40:57]<taylanub>can mips problems generally be detected by building with --system=mips64el? if so, perhaps packagers should be encouraged to consistently test this so we don't keep bothering mark_weaver :\
[08:41:31]* leothrix has joined #guix
[08:42:04]<taylanub>more generally, one might want to test all possible systems. maybe this and a couple other things (like the -K flag) could be stuffed into a convenient 'guix build --test' command.
[08:42:48]<taylanub>it would run lint too
[08:43:00]<civodul>taylanub: --system works only if your system can locally build the thing, or can offload to a machine with the given system type
[08:43:12]<Sleep_Walker>do we have support for cross copmilations or support for build through qemu?
[08:43:17]<civodul>so for mips, most of us can't do more than rely on hydra
[08:43:25]<taylanub>oh, x86_64 being able to build with --system=i686-linux is a special case of sorts?
[08:43:44]* taylanub knows little about hw architectures
[08:43:46]<taylanub>I see
[08:43:57]<civodul>there's special code in the daemon to use the Linux personality(2) syscall and enter i686 mode
[08:45:02]<taylanub>would --target work? detect at least some of the errors maybe?
[08:45:58]<civodul>--target implies cross-compilation
[08:46:08]<civodul>so you would probably detect other issues, related to cross-compilation
[08:46:16]<taylanub>hm, ok
[08:46:24]<civodul>then in theory, if you manage to cross-compile, you could run the mips binary with qemu
[08:46:25]* phant0mas has quit (Ping timeout: 245 seconds)
[08:46:30]<Sleep_Walker>I think there was some support for running transparent architecture emulation through binfmt :)
[08:46:31]* leothrix has quit (Ping timeout: 252 seconds)
[08:46:35]* ph4nt0mas has quit (Ping timeout: 246 seconds)
[08:47:26]<Sleep_Walker>but I won't focus on this for now
[08:48:24]<Sleep_Walker>I think that LVM, encryption, more packages and services is more important now
[08:49:06]<Sleep_Walker>OTOH we could add packager field in guix package and send e-mail automatically for build failures on hydra
[08:49:24]<Sleep_Walker>(otherwise I won't know about MIPS failures)
[08:49:27]<civodul>there's actually a 'maintainers' field, which is currently unused
[08:49:37]<civodul>i've been thinking that we should start using it
[08:49:54]<Sleep_Walker>good idea
[08:50:11]<Sleep_Walker>I can add myself to the packages I added
[08:50:51]<civodul>well, we need to discuss it, and add a (guix maintainers) modules or some such
[08:50:58]<civodul>similar to (guix licenses) but for people
[08:52:31]<taylanub>can't wait to have a Scheme object represent me :D
[08:52:40]* ph4nt0mas has joined #guix
[08:58:58]<Sleep_Walker>hehe, there will be first variable with underscore in schem ;b
[09:01:34]<civodul>we all deserve an incarnation in the world of Scheme values, don't we? :-)
[09:04:40]<taylanub>off-topic/maybe-relevant: systemd intending to keep a fork of Linux for better control. "We will no longer need GNU/udev/ntpd/NetworkManager/syslogd/Linux. Instead we will soon have GNU/systemd, [a] much simpler, unified platform. GNU/systemd will be a better target for third-party developers and easier to support."
[09:07:46]<Sleep_Walker>looks like prank
[09:08:36]<taylanub>sounds like an early April Fools joke, but given the reported willingness to stay compatible with upstream Linux it doesn't seem that absurd either
[09:09:24]<Sleep_Walker>it's not said by Lennart, Kay or Greg (who works for linux foundation and would be against fork)
[09:09:47]<Sleep_Walker>it's linked to some (to me) unknown guy who doesn't have any other repository on GitHub
[09:10:02]* sneek has joined #guix
[09:10:57]* taylanub asks in #systemd
[09:15:53]<Sleep_Walker>I can't locate the author among authors
[09:16:13]<Sleep_Walker>probably prank
[09:16:28]<Sleep_Walker>(and good one if people actually believes that :)
[09:16:53]<Sleep_Walker>it would be also company unwise as systemd is funded by RH and they are big kernel code contributor would maintain also its fork
[09:23:49]<taylanub>#systemd seems to consider it a prank, the GitHub account of Ivan seems to be a fake, and no other source seems to be available. false alarm I guess.
[09:24:41]<Sleep_Walker>yeah, that is not how RH operates :)
[09:27:08]<taylanub>oh, "Gotyaovitch" -> "Got ya" hahaha
[09:27:19]* taylanub is naive
[09:46:11]<Sleep_Walker>what can I do to help with LVM support?
[09:46:27]<civodul>implement it? :-)
[09:46:35]<Sleep_Walker>(don't expect the patch is scheme - I'm still on the beginning of The Little Schemer)
[09:46:44]<Sleep_Walker>s/patch is/patch in/
[09:46:52]<civodul>the first thing would be to think how we'd declare it in the 'operating-system' thing
[09:47:20]<Sleep_Walker>like which LVM group to activate
[09:47:33]<Sleep_Walker>(vgchange -a y "group")
[09:48:34]<Sleep_Walker>hmm, maybe I could patch initrd generation and hardcode it for myself for now
[09:49:52]<civodul>that's another way to approach it, yes
[09:50:06]<civodul>and then if you can share with us something that works for you, we can try to generalize it
[09:50:23]<Sleep_Walker>I know the steps I need
[09:50:30]<Sleep_Walker>I just can't express it in Scheme
[09:51:43]<Sleep_Walker>I reached the disk space for GuixSD and can't build packages anymore so I need either repartition whole notebook or add LVM support :b
[09:53:21]* oblo has joined #guix
[09:56:45]* fasheng has quit (Ping timeout: 256 seconds)
[09:57:50]<mark_weaver>ugh, I upgraded tzdata, and just noticed that this will cause a rebuild of glib and everything on top of it, simply because glib uses tzdata to enable one of the tests.
[09:58:45]<mark_weaver>maybe the tzdata update should go to core-updates instead
[10:03:06]<Sleep_Walker>if you think that such changes may happen more often we could split the package
[10:04:26]<mark_weaver>it's not worth it. it can wait for the next core-updates merge
[10:29:20]<rekado_>I have an error when running a Python-based application:
[10:29:22]<rekado_>ImportError: /gnu/store/08n65fxky70imkljc422zqc5xh14wiv7-pbtranscript-tofu-0.4.1.c7bbd5472/lib/python2.7/site-packages/pbtools/pbtranscript/ undefined symbol: PyUnicodeUCS4_DecodeUTF8
[10:29:41]<rekado_>does anyone know what the cause of this might be?
[10:30:58]* leothrix has joined #guix
[10:35:11]* leothrix has quit (Ping timeout: 250 seconds)
[11:18:09]* {0}grant has quit (Ping timeout: 255 seconds)
[11:19:55]* {0}grant has joined #guix
[12:00:47]<civodul>mark_weaver: oops; alternately, we could have a "stable" tzdata for the purposes of glib
[12:01:01]<civodul>oh Sleep_Walker already proposed that
[12:01:04]<civodul>forget it
[12:01:34]<civodul>rekado_: i suspect lacks the right lib in its RUNPATH
[12:10:15]* ijp has joined #guix
[12:19:48]* leothrix has joined #guix
[12:21:41]* sprang has quit (Ping timeout: 265 seconds)
[12:25:14]* leothrix has quit (Ping timeout: 248 seconds)
[12:32:37]* ijp has quit (Quit: *groan* banking stuff)
[12:46:46]* mbuf has quit (Quit: Leaving)
[13:09:53]<taylanub>'ps -C foo' doesn't seem to work during the ngircd build. anyone know why this might be? 'ps' output shows there's definitely instances of sh running, yet 'ps -C sh -o pid=' doesn't print anything
[13:13:30]* ewemoa has joined #guix
[13:23:24]<civodul>taylanub: i don't know about -C, could it be that it wants an absolute file name
[13:24:19]<taylanub>I tested outside guix by running e.g. /gnu/store/.../bin/display (imagemagick) and 'ps -C display' worked fine, so I don't think it's the absolute and long file names
[13:29:45]<civodul>apparently 'ps -C' works by browsing /proc/PIDs
[13:29:54]* mtakkman has joined #guix
[13:29:58]<civodul>could you try to run it in strace in the build environment?
[13:30:01]<civodul>that may give a clue
[13:42:07]<taylanub>it seems the reason is that running a shebang script will make its name be the file's name and not the interpreter's, even though in full ps output (e.g. 'ps -elfww') the file's name appears as an argument to the interpreter
[13:47:43]* davexunit has joined #guix
[13:47:44]<taylanub>maybe I should just patch the line that calls './ sh' instead of
[13:52:16]* leothrix has joined #guix
[13:57:47]* leothrix has quit (Ping timeout: 272 seconds)
[14:05:32]* alezost has joined #guix
[14:11:37]* leothrix has joined #guix
[14:13:45]* sneek has quit (Read error: No route to host)
[14:13:53]* sneek has joined #guix
[14:28:56]* ijp has joined #guix
[14:38:32]<taylanub>hah, I think I know why getpid sometimes fails, and it's pretty horrible: it greps for the given string in 'ps -ax' output (which contains whole command lines with arguments) and tests whether the result is greater than 1 to see if it's a valid PID. in our build environment, PID 1 is guile with an absolute file name including the hash, which may easily (but does not always) contain the string
[14:39:15]<civodul>ooh, i've seen this kind of issue in some test suite before
[14:39:28]<civodul>basically sloppy grep over the list of command names
[14:50:11]<Sleep_Walker>pgrep accepts `-f'
[14:52:50]<taylanub>Sleep_Walker: that behavior is what we're trying to avoid :-)
[14:53:52]<taylanub>I guess pgrep can achieve the same result as 'ps -C'. (that's indeed the route I'm taking now, patching the one place where is used against an interpreter name where ps -C only works for the script's name.)
[14:55:49]<Sleep_Walker>I do agree that it is not clean solution to any task
[14:56:23]<Sleep_Walker>but still improvement over ps | grep :)
[15:15:33]<{0}grant>Okay, version 2 of my os-config on this box, and when I try to log in as my user it says it can't cd to /home/grant ... which leaves me to believe my filesystem configuration is still wrong. What I have so far:
[15:18:04]<civodul>{0}grant: when you log in as root, does /home/grant exist, and what are its owner/permissions?
[15:19:34]<{0}grant>civodul: Okay, just logged in as root -- went to ../home/ and didn't see a grant dir generally.
[15:20:08]<{0}grant>I wonder if it's on sda2, but didn't mount to it?
[15:20:11]* {0}grant goes to check.
[15:21:13]<{0}grant>Nope, sda2 has a lost+found dir ... which looks like it tried to go something, but was unable to make said dir.
[15:22:14]<{0}grant>Okay, so sda2 /is/ mounted to my root directory.
[15:22:35]<{0}grant>Just my user doesn't have a home-directory dir.
[15:22:51]<{0}grant>Should I just make one... or?
[15:24:06]<{0}grant>Seemingly worked.
[15:26:58]<{0}grant>Rebooting and crossing fingers. :^)
[15:28:13]* nee has quit (Remote host closed the connection)
[15:29:35]* {[]}grant has joined #guix
[15:29:41]<{[]}grant>And, just wonderful!
[15:30:19]<{[]}grant>Very odd that guix refused to make a home dir for my 'grant' user though, via my os-config file. Could easily be user error on my end though.
[15:33:08]<atheia>{[]}grant: do you have home on a separate partition by any chance?
[15:33:49]<{0}grant>atheia: Yeah, root on /dev/sda1 and home on /dev/sda2.
[15:34:27]<{0}grant>But since this is specified in the configuration -- I don't see how this should/would make a difference though. :^P
[15:35:07]* ijp has quit (Quit: brb founding new religion)
[15:35:47]<civodul>normally the home dir is created along with the user account the first time you boot
[15:36:08]<atheia>{0}grant: I don't know if this is plausible, but I had similar symptoms when I set up my computer with a separate home partition.
[15:36:34]<atheia>At the time I thought the issue was that I had not mounted home before issuing the guix system init command from the installation medium.
[15:37:02]<atheia>Like I say, this may be a red herring.
[15:37:36]<atheia>especially if, as civodul says, home is normally only set up on first boot, not during system init.
[15:38:32]<{0}grant>atheia: In any case, it's not a huge concern to me -- it was just very odd and annoying to me last night, after a very long and sleep deprived day. :^P
[15:39:52]<{0}grant>And it really then not that annoying either, a more of a "screw it" situation that I figured I would figure out the following day in a number of minutes when I got a decent amount of refueling.
[15:41:33]<{0}grant>Later today, I'll likely said up that buildbox, or rather at least start on it.
[15:42:34]<{0}grant>The hydra situation that past few days has actually been better than I remember the last time I've checked in with Guix though, which was promising, but may also just of been a fluke.
[15:43:19]<{0}grant>Either case, I have a spare box and 1tb drive that fits said requirements and a decent enough connection here where I think such an effort on my end would be worthwhile.
[15:43:31]* Emulatorman has joined #guix
[15:48:37]<{0}grant>Peacing out on this box, staying online on the other. o/
[15:48:41]* {0}grant has quit (Quit: Lost terminal)
[15:54:54]* ijp has joined #guix
[16:07:50]* civodul has quit (Quit: ERC Version 5.3 (IRC client for Emacs))
[16:24:21]* Digit has quit (Read error: Connection reset by peer)
[16:24:49]<mark_weaver>{[]}grant: your home directory might be on the root partition, hidden by the /home mount point
[16:25:02]* Digit has joined #guix
[16:25:27]<mark_weaver>the way to find out is to mount another copy of your root partition somewhere else
[16:25:35]* mark_weaver goes afk
[16:29:05]* atheia has left #guix ("ERC Version 5.3 (IRC client for Emacs)")
[16:30:45]* Digit has quit (Read error: Connection reset by peer)
[16:31:24]* Digit has joined #guix
[16:39:10]<mark_weaver>{[]}grant: do: mount --bind / /mnt
[16:39:55]<mark_weaver>your home on the root partition might then be visible in /mnt/home/*
[16:41:36]* {[]}grant has quit (Remote host closed the connection)
[16:44:34]<Sleep_Walker>nice trick
[16:45:40]* oblo has quit (Quit: Sto andando via)
[16:46:02]<mark_weaver>then you can umount /mnt and it will unmount /mnt leaving / alone
[17:04:23]* bubu^ has joined #guix
[17:40:33]* auntie has quit (Remote host closed the connection)
[17:47:58]* mtakkman has quit (Quit: ERC Version 5.3 (IRC client for Emacs))
[17:48:36]* yang has joined #guix
[18:21:48]* ph4nt0mas has quit (Ping timeout: 256 seconds)
[18:22:19]* ph4nt0mas has joined #guix
[18:30:08]* Emulatorman has left #guix ()
[18:31:22]* ph4nt0mas has quit (Ping timeout: 264 seconds)
[18:32:18]* Emulatorman has joined #guix
[18:36:30]<Sleep_Walker>has anyone give a thought ext* filesystem tunning for use with Guix?
[18:37:08]* Emulatorman has left #guix ()
[18:37:16]<Sleep_Walker>(reducing block size, increasing number of i-nodes, ... )
[18:37:40]<Sleep_Walker>or is ext4 clever enough already?
[18:53:29]* ph4nt0mas has joined #guix
[18:59:44]<mark_weaver>Sleep_Walker: why would smaller blocks be appropriate for Guix?
[19:00:35]<Sleep_Walker>I'm not sure how symlinks are stored in filesystem
[19:01:25]<Sleep_Walker>reducing block size reduces minimal space occupied by file
[19:02:20]<Sleep_Walker>if we have big difference between ammount of data stored and ammount of disk space occupied, it can be probably improved
[19:04:17]<mark_weaver>if the target of a symlink is less than 60 bytes, it is stored directly in the inode
[19:04:38]<mark_weaver>smaller blocks entail other costs
[19:06:07]<mark_weaver>but anyway, I don't think anyone has thought much about how to tune ext4 for Guix. I haven't run out of inodes yet anyway, although I'm perpetually low on disk space.
[19:08:32]<Sleep_Walker>$ I=0; while read line; do if [ "${#line}" -ge 61 ]; then I=$((I+1)); fi; done < <(ls /gnu/store/*); echo $I
[19:10:17]<Sleep_Walker>another item to investigate to my TODO list
[19:14:02]<Sleep_Walker>ok, on my system is the difference ~700 MB on 14GB of data
[19:14:12]<Sleep_Walker>that is not that bad
[19:17:21]<taylanub>out of the 3485 symlinks I have in ~/.guix-profile, exactly 1 is 60 bytes, the rest more :-)
[19:18:45]<mark_weaver>and what ratio of files on the system are symlinks?
[19:18:54]<taylanub>the longest is 127. pretty unfortunate that we waste space on almost all symlinks in a profile, but it's probably still a minor thing in total
[19:20:25]<davexunit>I don't think there's a way to do what we do without symlinks
[19:21:15]<Sleep_Walker>the topic is filesystem tunning - whether anyone tried to tune store of so many symlinks
[19:21:54]* civodul has joined #guix
[19:21:56]<Sleep_Walker>how to alter configuration to store them efficiently
[19:22:04]<mark_weaver>but how many symlinks are there? mostly they are in the profiles
[19:22:26]<Sleep_Walker>but it seems that ext4 does good job already by default
[19:22:43]<mark_weaver>if you make the block size smaller just to optimize those symlinks, you will pay for it elsewhere
[19:23:06]<taylanub>if ext4 had a way to easily enlarge the symlink space of an inode, it might had been worth it, but we're splitting hairs anyway.
[19:23:29]<mark_weaver>but then you're increasing the size of every inode
[19:23:52]<mark_weaver>there are tradeoffs to consider
[19:24:35]<mark_weaver>that's why I'm curious what percentage of inodes are symlinks
[19:24:48]* taylanub runs find /gnu/store -type f | wc -l
[19:24:59]* mark_weaver goes afk
[19:31:42]* alezost has quit (Quit: I use GNU Guix <>)
[19:33:30]* alezost has joined #guix
[19:39:01]<taylanub>approx. 672.0k files in my store, opposed to 3.5k symlinks in my profile. that's 0.5%. although this is a single-user system and I have a bunch of uninstalled packages due to development. maybe in a system with a dozen users, each with a lot of packages and many of them shared, it might be more... we might want to analyze this better some time in the future.
[19:41:16]<Sleep_Walker>taylanub: you're not counting symlinks in /gnu/store
[19:42:02]<mark_weaver>profiles are in the store
[19:42:54]<mark_weaver>anyway, it obviously depends on how many old profiles you have laying around
[19:43:20]<mark_weaver>but it seems likely that symlinks are a small percentage of files
[19:43:22]<Sleep_Walker>I have 280k symlinks in /gnu/store
[19:43:47]<Sleep_Walker>out of 445k files in /gnu/store
[19:44:26]<Sleep_Walker>(I was overwhelmed by number of files in my system)
[19:44:32]<mark_weaver>how many profiles do you have? and have you run 'guix gc' to delete those old profiles?
[19:45:11]<Sleep_Walker>I usually have ~15 generations
[19:45:21]<Sleep_Walker>I should check root as well
[19:45:31]<Sleep_Walker>but I'm in the middle of repartitioning...
[19:48:42]<mark_weaver>I don't believe Guix contains any code to format filesystems, so the only thing to change would be documentation. if you'd like to propose that we recommend the users choose a smaller block size, it would require some study of how it would affect both the storage efficiency and performance under various loads.
[19:50:06]<mark_weaver>I suspect that choosing a smaller block size would lead to negative consequences that are more important than storage efficiency, but admittedly it's just a guess.
[19:50:51]<civodul>mark_weaver: BTW, what do you think of ?
[19:51:10]<Sleep_Walker>as I said above (21:22) - ext4 seems to be doing quite good job by default
[19:53:42]<mark_weaver>Sleep_Walker: indeed you did. apologize
[19:54:42]<mark_weaver>civodul: adding a phase to check for missing rpaths sounds very useful!
[19:54:54]<mark_weaver>civodul: the libunistring thing on mips sounds interesting
[19:55:01]* mark_weaver checks
[19:56:14]<mark_weaver>civodul: fwiw, I just checked on librenote, and the natively-built libunistring appears to have all the needed runpaths to find libgcc_s
[19:56:25]<mark_weaver>so it may be an issue with cross-compilation
[19:57:25]<mark_weaver>(I checked by running 'ldd' on from current master)
[20:01:45]<civodul>mark_weaver: good!
[20:01:54]<civodul>mark_weaver: the libunistring was a cross-built one, so that's a different issue
[20:02:03]<civodul>i mean, that's probably an issue with cross builds in general
[20:03:58]* remi`bd has joined #guix
[20:06:57]* mark_weaver has 229K symlinks in /gnu/store and 625K normal files
[20:08:27]<Sleep_Walker>and what about `du -sx /' and `du -sx --apparent-size' ?
[20:09:30]* bubu^ has quit (Quit: Leaving, bye bye)
[20:19:19]* wingo has quit (Ping timeout: 250 seconds)
[20:46:08]* alezost has quit (Quit: I use GNU Guix <>)
[21:13:37]* ijp has quit (Quit: brb setting off a combinatorial explosion in the maths department)
[21:23:59]* civodul has quit (Quit: ERC Version 5.3 (IRC client for Emacs))
[21:40:15]* Digit has quit (Remote host closed the connection)
[21:43:08]* {[]}grant has joined #guix
[21:43:14]* Digit has joined #guix
[21:59:56]* davexunit has quit (Quit: Later)
[22:02:29]* {[]}grant has left #guix ("ERC Version 5.3 (IRC client for Emacs)")
[22:24:16]* OrangeShark has joined #guix
[22:34:45]* agumonkey has quit (Ping timeout: 245 seconds)
[22:35:36]* agumonkey has joined #guix
[22:37:58]* zacts has quit (Ping timeout: 264 seconds)