/r/GUIX

Photograph via snooOG

GNU Guix is a purely functional package manager, and associated free software distribution, for the GNU system.

GNU Guix is a purely functional package manager, and associated free software distribution, for the GNU system. In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection.

A user-land free software distribution for GNU/Linux comes as part of Guix.

/r/GUIX

3,407 Subscribers

5

GUIX and Fish-shell

Hello, I'm new to the Gnu GUIX world, and recently installed it. I have installed fish, and after I install anything else I get a prompt about setting the environment variable GUIX_PROFILE (which I have set now) and sourcing the etc/profile file. My question is, what is the most 'GUIX' way of setting this up? And why is it not setup already, since GUIX is managing the shell here? Thanks!

3 Comments
2024/08/16
16:04 UTC

3

dart-sass exposed glibc locale issue

Or maybe my own ignorance?

I'm trying to get back into Linux after taking a break from it for like a year. I decided to try out Guix, and it feels very comfortable already.
I understand that I may have missed something. Since I want to build things with HUGO, I figured I should also learn dart-sass (flutter as well?)

I'm going everything from tar files, because hugo and dart-sass don't have packages in GNU Guix, but when it came to running

./dart

./sass

./flutter

They would have the error "No such file or directory" on the dart executable, which generate an strace as such

execve("/home/myuser/bin/dart-sass/sass", ["sass"], 0x7ffeb1f75c80 /* 80 vars */) = 0
brk(NULL)                               = 0x15cf0000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fecbd2c5000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
readlink("/proc/self/exe", "/gnu/store/bc6pws90m95bkhgkizlr0"..., 4096) = 64
openat(AT_FDCWD, "/gnu/store/bc6pws90m95bkhgkizlr0fh1jviaq6ff-bash-5.1.16/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=6819, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 6819, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbd2c3000
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/5gfp7a5h5kqxykxy5h9a696bz1507a8b-readline-8.1.2/lib/libreadline.so.8", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\t\0\0\0\0\0\0\0"..., 48, 308696) = 48
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=346304, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 354056, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fecbd26c000
mprotect(0x7fecbd283000, 221184, PROT_NONE) = 0
mmap(0x7fecbd283000, 176128, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fecbd283000
mmap(0x7fecbd2ae000, 40960, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x42000) = 0x7fecbd2ae000
mmap(0x7fecbd2b9000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4c000) = 0x7fecbd2b9000
mmap(0x7fecbd2c2000, 1800, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fecbd2c2000
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/5gfp7a5h5kqxykxy5h9a696bz1507a8b-readline-8.1.2/lib/libhistory.so.8", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\t\0\0\0\0\0\0\0"..., 48, 40832) = 48
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=47592, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 49888, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fecbd25f000
mprotect(0x7fecbd262000, 32768, PROT_NONE) = 0
mmap(0x7fecbd262000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fecbd262000
mmap(0x7fecbd268000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x7fecbd268000
mmap(0x7fecbd26a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x7fecbd26a000
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/y555s0q0775qxzhy4br6qsid7dhmxxmx-ncurses-6.2.20210619/lib/libncursesw.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\t\0\0\0\0\0\0\0"..., 48, 440560) = 48
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=461760, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 465784, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fecbd1ed000
mmap(0x7fecbd205000, 245760, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7fecbd205000
mmap(0x7fecbd241000, 98304, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x54000) = 0x7fecbd241000
mmap(0x7fecbd259000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6b000) = 0x7fecbd259000
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/ixwl0vnvm9zrrg89nxh62llh3li701dw-gcc-11.3.0-lib/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\1\0\1\300\4\0\0\0\v\0\0\0\0\0\0\0"..., 48, 97560) = 48
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=100760, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 103496, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fecbd1d3000
mmap(0x7fecbd1d6000, 73728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7fecbd1d6000
mmap(0x7fecbd1e8000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7fecbd1e8000
mmap(0x7fecbd1eb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7fecbd1eb000
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\223\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0000\0\0\0\5\0\0\0GNU\0\2\200\0\300\4\0\0\0\1\0\0\0\0\0\0\0"..., 64, 848) = 64
pread64(3, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0", 32, 912) = 32
newfstatat(3, "", {st_mode=S_IFREG|0555, st_size=2335360, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fecbd1d1000
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
mmap(NULL, 2080720, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fecbcfd5000
mprotect(0x7fecbcffd000, 1839104, PROT_NONE) = 0
mmap(0x7fecbcffd000, 1470464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7fecbcffd000
mmap(0x7fecbd164000, 364544, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18f000) = 0x7fecbd164000
mmap(0x7fecbd1be000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e8000) = 0x7fecbd1be000
mmap(0x7fecbd1c4000, 53200, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fecbd1c4000
close(3)                                = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fecbcfd2000
arch_prctl(ARCH_SET_FS, 0x7fecbcfd2740) = 0
set_tid_address(0x7fecbcfd2a10)         = 8058
set_robust_list(0x7fecbcfd2a20, 24)     = 0
rseq(0x7fecbcfd30e0, 0x20, 0, 0x53053053) = 0
mprotect(0x7fecbd1be000, 16384, PROT_READ) = 0
mprotect(0x7fecbd1eb000, 4096, PROT_READ) = 0
mprotect(0x7fecbd259000, 16384, PROT_READ) = 0
mprotect(0x7fecbd26a000, 4096, PROT_READ) = 0
mprotect(0x7fecbd2b9000, 8192, PROT_READ) = 0
mprotect(0x4da000, 4096, PROT_READ)     = 0
mprotect(0x7fecbd301000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7fecbd2c3000, 6819)            = 0
openat(AT_FDCWD, "/dev/tty", O_RDWR|O_NONBLOCK) = 3
close(3)                                = 0
getrandom("\xcf\x44\xad\x00\xab\xc1\x41\x8c", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x15cf0000
brk(0x15d11000)                         = 0x15d11000
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=2998, ...}, AT_EMPTY_PATH) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2998
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=369, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 369, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbd300000
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=3808, ...}, AT_EMPTY_PATH) = 0
read(3, "# GNU libc iconv configuration.\n"..., 4096) = 3808
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/gconv/gconv-modules.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
newfstatat(3, "", {st_mode=S_IFDIR|0555, st_size=4096, ...}, AT_EMPTY_PATH) = 0
getdents64(3, 0x15cf46a0 /* 3 entries */, 32768) = 96
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/gconv/gconv-modules.d/gconv-modules-extra.conf", O_RDONLY|O_CLOEXEC) = 4
newfstatat(4, "", {st_mode=S_IFREG|0444, st_size=53974, ...}, AT_EMPTY_PATH) = 0
read(4, "# GNU libc iconv configuration.\n"..., 4096) = 4096
read(4, "B1002//\tJUS_I.B1.002//\nmodule\tJU"..., 4096) = 4096
read(4, "59-5//\nalias\tISO_8859-5//\t\tISO-8"..., 4096) = 4096
read(4, "59-16//\t\tINTERNAL\t\tISO8859-16\t1\n"..., 4096) = 4096
read(4, "-SE-A\t1\nmodule\tINTERNAL\t\tEBCDIC-"..., 4096) = 4096
read(4, "97\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcos"..., 4096) = 4096
read(4, "1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcost\nal"..., 4096) = 4096
read(4, "6//\t\tIBM1046//\nalias\tCP1046//\t\tI"..., 4096) = 4096
brk(0x15d32000)                         = 0x15d32000
read(4, "\tto\t\t\tmodule\t\tcost\nalias\tRUSCII/"..., 4096) = 4096
read(4, "03//\nmodule\tCSN_369103//\t\tINTERN"..., 4096) = 4096
read(4, "\tmodule\t\tcost\nalias\tISO-IR-8-1//"..., 4096) = 4096
read(4, "IBM1156\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule"..., 4096) = 4096
read(4, "\t\tIBM1166//\nalias\tCP1166//\t\tIBM1"..., 4096) = 4096
read(4, "alias\tROMAN9//\t\tHP-ROMAN9//\nalia"..., 4096) = 726
read(4, "", 4096)                       = 0
close(4)                                = 0
getdents64(3, 0x15cf46a0 /* 0 entries */, 32768) = 0
close(3)                                = 0
futex(0x7fecbd1c3a6c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=23, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 23, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbd2c4000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=59, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbd2c3000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=167, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 167, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcfd1000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_NAME", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=77, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 77, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcfd0000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_PAPER", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=34, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 34, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcfcf000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFDIR|0555, st_size=4096, ...}, AT_EMPTY_PATH) = 0
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=57, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 57, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcfce000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_MONETARY", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=286, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 286, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcfcd000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=2586930, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 2586930, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcc00000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_TIME", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=3284, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 3284, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcfcc000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=54, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 54, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcfcb000
close(3)                                = 0
openat(AT_FDCWD, "/home/myuser/.guix-profile/lib/locale/2.35/en_US.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=353616, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 353616, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fecbcf74000
close(3)                                = 0
getuid()                                = 1000
getgid()                                = 998
geteuid()                               = 1000
getegid()                               = 998
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
ioctl(-1, TIOCGPGRP, 0x7ffcf6f89f3c)    = -1 EBADF (Bad file descriptor)
sysinfo({uptime=5556, loads=[14688, 42336, 46432], totalram=33602703360, freeram=27330994176, sharedram=128290816, bufferram=721354752, totalswap=0, freeswap=0, procs=1356, totalhigh=0, freehigh=0, mem_unit=1}) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
uname({sysname="Linux", nodename="henry", ...}) = 0
newfstatat(AT_FDCWD, "/home/myuser", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/myuser", {st_mode=S_IFDIR|0700, st_size=4096, ...}, 0) = 0
getpid()                                = 8058
getppid()                               = 8055
getpid()                                = 8058
getppid()                               = 8055
getpid()                                = 8058
getppid()                               = 8055
getpgrp()                               = 8055
ioctl(2, TIOCGPGRP, [8055])             = 0
rt_sigaction(SIGCHLD, {sa_handler=0x44ab70, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, 8) = 0
prlimit64(0, RLIMIT_NPROC, NULL, {rlim_cur=128052, rlim_max=128052}) = 0
brk(0x15d53000)                         = 0x15d53000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
openat(AT_FDCWD, "/home/myuser/bin/dart-sass/sass", O_RDONLY) = 3
newfstatat(AT_FDCWD, "/home/myuser/bin/dart-sass/sass", {st_mode=S_IFREG|0755, st_size=592, ...}, 0) = 0
ioctl(3, TCGETS, 0x7ffcf6f89ed0)        = -1 ENOTTY (Inappropriate ioctl for device)
lseek(3, 0, SEEK_CUR)                   = 0
read(3, "#!/bin/sh\n\n# This script drives "..., 80) = 80
lseek(3, 0, SEEK_SET)                   = 0
prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=1024, rlim_max=4*1024}) = 0
fcntl(255, F_GETFD)                     = -1 EBADF (Bad file descriptor)
dup2(3, 255)                            = 255
close(3)                                = 0
fcntl(255, F_SETFD, FD_CLOEXEC)         = 0
fcntl(255, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
newfstatat(255, "", {st_mode=S_IFREG|0755, st_size=592, ...}, AT_EMPTY_PATH) = 0
lseek(255, 0, SEEK_CUR)                 = 0
read(255, "#!/bin/sh\n\n# This script drives "..., 592) = 592
pipe2([3, 4], 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, [INT TERM CHLD], [], 8) = 0
lseek(255, -53, SEEK_CUR)               = 539
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fecbcfd2a10) = 8059
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x44ab70, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, {sa_handler=0x44ab70, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, 8) = 0
close(4)                                = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
read(3, "/home/myuser/bin/dart-sass\n", 512) = 26
read(3, "", 512)                        = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8059, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 8059
wait4(-1, 0x7ffcf6f89118, WNOHANG, NULL) = -1 ECHILD (No child processes)
rt_sigreturn({mask=[INT]})              = 0
close(3)                                = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x448270, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=0x448270, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(255, "exec \"$path/src/dart\" \"$path/src"..., 592) = 53
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fecbd0122a0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, {sa_handler=0x44ab70, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7fecbd0122a0}, 8) = 0
execve("/home/myuser/bin/dart-sass/src/dart", ["/home/myuser/bin/dart-sass/src/da"..., "/home/myuser/bin/dart-sass/src/sa"...], 0x15d32e80 /* 79 vars */) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/home/myuser/bin/dart-sass/src/dart", {st_mode=S_IFREG|0755, st_size=4805728, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/myuser/bin/dart-sass/src/dart", {st_mode=S_IFREG|0755, st_size=4805728, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/myuser/bin/dart-sass/src/dart", {st_mode=S_IFREG|0755, st_size=4805728, ...}, 0) = 0
geteuid()                               = 1000
getegid()                               = 998
getuid()                                = 1000
getgid()                                = 998
access("/home/myuser/bin/dart-sass/src/dart", X_OK) = 0
newfstatat(AT_FDCWD, "/home/myuser/bin/dart-sass/src/dart", {st_mode=S_IFREG|0755, st_size=4805728, ...}, 0) = 0
geteuid()                               = 1000
getegid()                               = 998
getuid()                                = 1000
getgid()                                = 998
access("/home/myuser/bin/dart-sass/src/dart", R_OK) = 0
openat(AT_FDCWD, "/home/myuser/bin/dart-sass/src/dart", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300n\34\0\0\0\0\0"..., 128) = 128
close(3)                                = 0
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/bc6pws90m95bkhgkizlr0fh1jviaq6ff-bash-5.1.16/share/locale/en_US.utf8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/bc6pws90m95bkhgkizlr0fh1jviaq6ff-bash-5.1.16/share/locale/en_US/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/bc6pws90m95bkhgkizlr0fh1jviaq6ff-bash-5.1.16/share/locale/en.utf8/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/gnu/store/bc6pws90m95bkhgkizlr0fh1jviaq6ff-bash-5.1.16/share/locale/en/LC_MESSAGES/bash.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
newfstatat(2, "", {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x2), ...}, AT_EMPTY_PATH) = 0
write(2, "/home/myuser/bin/dart-sass/sass: "..., 103/home/myuser/bin/dart-sass/sass: line 20: /home/myuser/bin/dart-sass/src/dart: No such file or directory
) = 103
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(127)                         = ?
+++ exited with 127 +++

I think it's correct to say with glibc locality files, because I checked, there is no US English in any of these files, which is strange to me, but that is precisely what locale setting I have.

LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

However I'm not sure how to proceed. Do I just cut my losses and change my locale? I see several possible solutions, but they seem to be for specific things that don't explicitly apply in this situation.

Love learning about this system, Guix really is an operating system for an operating system.

2 Comments
2024/08/12
09:39 UTC

9

Trouble wrapping my nix brain around guix

Hi! Currently day 2 of being on guixsd, I'm having fun but I'm also a little confused

I'm trying to wrap my head around how I would implement something like a nix module in guix, I think services are what I'm supposed to be looking at but I'm not sure.

As an example, I want to have an audio.scm file which would install and configure audio-related packages for me (pipewire,ardour,pavuctl,etc.)

what I've cobbled together by going through some guix services: (I wrote this all in reddit so syntax might be off but I'll figure it out when I actually try to implement it.)

(define myaudio-service-type
 (service-type (name 'myaudio)
 (description "Blah")
 (extensions
  (list (I HAVE NO IDEA WHAT IM EXTENDING)))))

Ideally i would pull both audioprogramfoo + bar into this service..? Though I don't know how.

(define-record-type* <audioprogramfoo-configuration>
 (project-dir audioprogramfoo-configuration-project-dir
              (default $HOME/audio/audioprogramfoo/projects))

Is this how I would point at the users' home directory? not sure. Can guix system write into a users dir? would I have to use guix home? can I use guix home and guix system together in the same .scm file? In nix using home-manager and nix together in the same file was... weird.

sorry long question, I havent looked at guix home at all really, but I'm hoping to have this be user-agnostic, one user shouldn't be able to access another users ardour projects obviously.

(define-record-type* <audioprogrambar-configuration>
 (plugin-dir audioprogrambar-configuration-plugin-dir
             (default $HOME/audio/audioprogrambar/plugins))

I don't know how to put these both into myaudio-service-type, nor how to choose which are enabled or disabled by default, I hope to be able to just add (services (service myaudio-service-type to my system configuration and have my defaults enabled, things like pipewire/pavuctl installed by default, but other things like arduour/guitarpro etc not installed unless i pass something like (myaudio-configuration (guitar-enable #t)) ?

In Nix I was able to have my configuration looking something like

modules = {
  audio = {
    enable = true; # This would install/config my defaults, pipewire,pavuctl,etc.

    ardour = { # ardour & guitarpro would be not installed/disabled by default, enabling them here.
    enable = true;
    project-dir = /something/other/than/default/justforfun
    };

    guitarpro.enable = true;
  }; # Audio modules end here, can configure other modules or just close modules here.

  gaming = {
    enable = true; #installs steam,lutris,gamemode,etc.
  };

  desktop = { # If this was a real config, audio and gaming would probably reside within desktop.. oh well. just an example.
    sway.enable = true;
  };
};

Ultimately this is the type of configuration I'm trying to convert over to guix. I don't know if I'm on the right path or where to go from here. Any tips or guidance would be greatly appreciated

8 Comments
2024/08/11
20:59 UTC

4

guix-jupyter: guile and stdout ?

So, I can install guix-jupyter and jupyter, via something like

> guix install jupyter guix-jupyter

I then start jupyter:

> jupyter notebook

And in the browser, I create a new Guix notebook.

In a cell in that notebook, I enter/evaluate

;;guix environment g <- guile

And after a brief pause, I see confirmation:

Out[1]: Running GNU Guile kernel.

If I evaluate a procedure, I can see its return value: e.g.

(use-modules (srfi srfi-1))
(string-join (list "foo" "bar") "--")

results in

Out[2]: "foo--bar"

But I don't know how to see the "side-effect output" of procedures which e.g. write to stdout, like the following:

(display "foobar")

Evaluation in the notebook results in

Out[3]: #<unspecified>

(I do see the output in the logging message in the terminal where I ran jupyter notebook, e.g.

foobarguile kernel[1]: sending execution result for "(begin (display \"foobar\"))"

I guess I was hoping for something like the python behavior(?):

;;guix environment p <- python python--ipykernel

print("foo")

results in

foo

(and not Out[1]: foo). And

import sys 
sys.stdout.write("foo")

results in

foo 
Out[2]: 3

(where 3 is apparently the length of the string "foo"...)

Back to guile, some side-effects do seem to be displayed properly. For example:

;;guix environment gp <- guile guile-picture-library 
[...] 
(use-modules (pict)) 
(fill (circle 100) "blue")

results in a blue circle drawn next to Out[1]:

So I'm wondering if there is a way to see the stdout in guile upon cell evaluation! Something like what you see in the geiser emacs REPL.

Thanks for any suggestions.

2 Comments
2024/08/09
13:04 UTC

8

Is it possible to compile everything myself with custom build flags like gentoo?

Like -O3 or -OS? I know you can tune it for your cpu but can you also remove flags, like you can on gentoo with the -? For example, my system has no bluetooth and i'd like to not build the bluetooth stuff

3 Comments
2024/08/03
17:32 UTC

2

Unable to install qtile

The qtile package is failing to build and the guix website also says that it is failing to build it:https://ci.guix.gnu.org/build/5244594/details. Please help.

3 Comments
2024/08/02
16:00 UTC

7

Shebang is blowing my mind

I have written a simple script to update my ddns. Executing it by hand works fine but calling it using mcron fails. The mcron log shows: ddns.bash: line 16: ip: command not found. My only guess is that there might be something wrong with the shebang allthougt it looks perfectly right to me. Am i missing something (-u mcron?) ?

8 Comments
2024/07/31
15:36 UTC

2

Testing and building local packages with ./pre-inst-env

So I installed Guix using apt install guix. Furthermore, I also checked out guix, which I will refer to here as $GUIX_CHECKOUT just like in the cookbook. I ran ./bootstrap and ./configure --localstatedir=/var to generate the ./pre-inst-env script.

All fine until now. I placed the .scm files including my package definitions inside $GUIX_CHECKOUT/gnu/packages and then tried to build them via ./pre-inst-env guix build my-package

However, no matter what I try it only seems to find packages that were coming with the install guix and not my local ones. I thought the purpose of ./pre-inst-env was exactly this, to be able to build and test local packages without having to change the actual guix installation. Or am I missing something here?

3 Comments
2024/07/31
07:25 UTC

1

How to hand config to wesnothd-service-type

Im looking for a way to hand a config file or config options (e.g. accepted_versions) to the wesnothd-service-type. Any experience?

2 Comments
2024/07/30
19:07 UTC

3

I can't install anything with guix install without breaking gnome

I'm struggling to understand the core of this issue, but I just finished installing Guix system with gnome as the desktop. Everything was running fine until I try to install anything with guix install.

For example: guix install audacious

Audacious will get installed, but with a missing launcher icon. When I logout and back in, Gnome loses all default artwork (wallpapers, icon theme, etc), except now audacious will have an icon. If I remove audacious and logout and back in, all the Gnome artwork returns. I've tried other packages and it happens if I have anything installed in the default profile (~/.guix-profile).

The other thing to note is guix install always gives a hint to set GUIX_PROFILE to the default profile, but it should already be set. guix package --list-profiles lists both ~/.config/guix/current and ~/.guix-profile

This is a new install and I haven't really done anything else except install a browser via flatpak. I think it has something to do with profiles, but I can't wrap my head around it.

I'm pretty new to guix and can't find anything in the handbook that explains it, so any help would be appreciated.

3 Comments
2024/07/27
16:17 UTC

6

WIP qtile build with wayland output

because i'm a wayland girl but not a fan of sway personally :)

it builds without a hitch but i still need to work on refining the code. hoping to upstream this but unsure of the best means to go about submitting it since it requires the building of several new dependencies.

https://gitlab.com/bigbookofbug/bugchan/-/tree/master/bugchan?ref_type=heads

2 Comments
2024/07/26
14:29 UTC

10

Guix: nixpkgs integration

Hello folks!

  • What is the state of nixpkgs integration in Guix ?
  • Are nixpkgs easy to setup in Guix ?
  • Are nixpkgs manageable with Guix's Scheme/Guile, or would we need to use Nix ?
6 Comments
2024/07/23
08:29 UTC

30

CUDA coming soon into nonguix

I do not promote the use of non-free software (neither should you), I just happen to have that need for a work project.

That said, CUDA is close to working with nonguix ;)

https://gitlab.com/nonguix/nonguix/-/merge_requests/497

Would love a review,

Cheers, nice wkend !

0 Comments
2024/07/19
12:23 UTC

5

No pass on GUIX

I use this for a few top level passwords in conjunction with gnupg. There doesn't seem to be a "pass" in the normal guix store though. Am I missing something or is such a basic tool common across most distros not available? If so is there a good workaround?

10 Comments
2024/07/13
09:04 UTC

2

XIM doesn't work: "No IM module matching GTK_IM_MODULE=xim found"

0 Comments
2024/07/09
11:59 UTC

34

Introducing Guile Swayer: Customize Sway Window Manager with Guile Scripting!

Hello Lisp and Guile enthusiasts,

I've been an Emacs user for a while, previously relying on StumpWM, an X11 window manager written in Common Lisp. I firmly believe that window managers should be scriptable because the customization required by users often exceeds what can be achieved with simple configuration parameters. Unfortunately, Sway/i3 lacks a straightforward programmable interface for deep customization—until now. I'm excited to introduce Guile Swayer: a project that provides complete control over Sway/i3 using Guile!

The aim of this project is to establish a robust core engine that seamlessly communicates with Sway via the IPC protocol. This core engine serves as a foundation upon which numerous configurable modules can be effortlessly toggled and customized by users.

Guile Scheme is chosen as the scripting language for this endeavor (belongs to the Lisp family). Guile and Lisp languages have a proven track record of extensibility in major applications such as Emacs, Eww, Guix, and StumpWM.

Currently, six modules have been developed:

  • Auto Reload: Automatically reloads the Sway configuration upon detecting changes in specified directories.
  • General: Simplifies the definition of keybindings and submaps within the Sway window manager. It offers a structured approach to configuring and dynamically managing keybindings and submaps.
  • KBD: Translates Emacs-like keybindings into compatible Sway keybindings. This module integrates seamlessly with General by accepting a translation procedure provided by KBD.
  • Which Key: Assists users in discovering available keybindings and commands interactively. When initiating a key sequence, Which Key displays a popup showing all possible completions. This feature enhances the learning and retention of keybindings, reducing the need for frequent documentation checks.
  • Workspace Grid: Organizes workspaces in a grid layout, facilitating efficient management of multiple workspaces.
  • Workspace Groups: Organizes workspaces into groups or tasks, ensuring that switching to one workspace automatically switches to other configured workspaces.

github repository: https://github.com/ebeem/guile-swayer

You can check the README and the wiki pages on github.

example of which-key, a module built using guile-swayer

6 Comments
2024/06/28
18:54 UTC

6

Getting a beater to play with Guix

I'm a little apprehensive over messing around with things on my daily driver, and I know niche operating systems like this one can have trouble with some hardware. So, if you know of any refurbished laptop/PC models in the 250-700CAD range I should look at to start tinkering with the glory of my very own Lisp machine, I'd appreciate it.

EDIT: How's this one? Got recommended on a server, but dunno how much that dude knows about Guix...

13 Comments
2024/06/27
20:36 UTC

10

Java Development

Can I get a rundown of how to set up a Java development environment on Guix? I've never used Java before, and trying to figure out on Guix has been fruitless so far.

9 Comments
2024/06/27
01:48 UTC

3

guix pack wrong store path to shared objects

I'm currently packaging a common lisp executable that depends on two libraries with cffi bindings, sbcl-woo and sbcl-cl-yaml, which depend on libuv and libyaml. The executable works fine when using install, however when using guix pack or guix shell --container I get an error that it can't find the libyaml or libuv shared objects with the path to the store. However when I inspect the store in the container, the dependencies are there just under a different path (different hash).

Does anyone have any idea what could be happening here? Somewhere along the line the hash gets updated, but the packages still maintain a reference to the old path maybe?

5 Comments
2024/06/23
18:40 UTC

7

How to make shared object files visible to programs

Now I am aware that the ideal scenario would be proper packaging, but I want to:

  1. better understand how guix handles the way programs are supposed to find them
  2. know how to best and quickly handle this situation if I just quickly need to launch some programs without undertaking packaging it+dependencies

Just an example:

I successfully built lem (with sdl2) on my machine (though to succeed here I also had to manually set LD_LIBRARY_PATH). To launch it requires sdl2, sdl2-ttf, sdl2-image and openssl.

I run guix shell sdl2 sdl2-image sdl2-ttf openssl, if I then try to run the lem binary, it is unable to find the SDL or openssl .so files.

If I manually add their locations to LD_LIBRARY_PATH I can run lem just fine.

This is obviously not an elegant solution.

What are better or proper ways to handle this in guix without doing a full on packaging? Is there a clean way to handle this in a manifest file maybe?

6 Comments
2024/06/18
06:43 UTC

13

Source $GUIX_PROFILE/etc/profile with Fish shell (helpful gist)

I made a lil gist (soon to be a fisher-installable plugin) that takes care of the guix profile sourcing for anyone using fish shell :) I noticed some issues when I tried to run $GUIX_PROFILE/etc/profile with replay, bax, or bass, so I just rewrote the profile in native fish (also exports the environment vars so it'll work even if your root shell is using sh or bash instead of fish)

1 Comment
2024/06/17
20:55 UTC

5

`emacs-vterm` no longer opens a terminal buffer on Emacs 29.3

In Emacs 29.3 on Guix System, when opening vterm I receive a string of messages to the *Messages* buffer and an empty buffer where I expect vterm to be. Has anyone else encountered this issue and can provide a solution?

Special values for INDEX are:
-11 foreground for cells with underline attribute, foreground of
the `vterm-color-underline' face is used in this case.
-12 background for cells with inverse video attribute, background
of the `vterm-color-inverse-video' face is used in this case." (cond ((and (>= index 0) (< index 8)) (face-foreground (elt vterm-color-palette index) nil 'default)) ((and (>= index 8) (< index 16)) (face-background (elt vterm-color-palette (% index 8)) nil 'default)) ((= index -11) (face-foreground 'vterm-color-underline nil 'default)) ((= index -12) (face-background 'vterm-color-inverse-video nil 'default)) (t nil))), 2
Error adjusting window size: (wrong-number-of-arguments ((vterm-mode-abbrev-table vterm-mode-syntax-table vterm-copy-mode t) (index) "Get color by index from `vterm-color-palette'.
Argument INDEX index of the terminal color.
Special values for INDEX are:
-11 foreground for cells with underline attribute, foreground of
the `vterm-color-underline' face is used in this case.
-12 background for cells with inverse video attribute, background
of the `vterm-color-inverse-video' face is used in this case." (cond ((and (>= index 0) (< index 8)) (face-foreground (elt vterm-color-palette index) nil 'default)) ((and (>= index 8) (< index 16)) (face-background (elt vterm-color-palette (% index 8)) nil 'default)) ((= index -11) (face-foreground 'vterm-color-underline nil 'default)) ((= index -12) (face-background 'vterm-color-inverse-video nil 'default)) (t nil))) 2)
save-current-buffer: Wrong number of arguments: ((vterm-mode-abbrev-table vterm-mode-syntax-table vterm-copy-mode t) (index) "Get color by index from `vterm-color-palette'.
Argument INDEX index of the terminal color.
Special values for INDEX are:
-11 foreground for cells with underline attribute, foreground of
the `vterm-color-underline' face is used in this case.
-12 background for cells with inverse video attribute, background
of the `vterm-color-inverse-video' face is used in this case." (cond ((and (>= index 0) (< index 8)) (face-foreground (elt vterm-color-palette index) nil 'default)) ((and (>= index 8) (< index 16)) (face-background (elt vterm-color-palette (% index 8)) nil 'default)) ((= index -11) (face-foreground 'vterm-color-underline nil 'default)) ((= index -12) (face-background 'vterm-color-inverse-video nil 'default)) (t nil))), 2
save-current-buffer: Wrong number of arguments: ((vterm-mode-abbrev-table vterm-mode-syntax-table vterm-copy-mode t) (index) "Get color by index from `vterm-color-palette'.
Argument INDEX index of the terminal color.
Special values for INDEX are:
-11 foreground for cells with underline attribute, foreground of
the `vterm-color-underline' face is used in this case.
1 Comment
2024/06/11
06:43 UTC

0

Indian English Keymap on Guix

Does anyone have an idea of why guix is the one and only linux distro(that I could find) to have to indian english keyboard layout as an option?

Edit: I am talking about tty.

4 Comments
2024/06/09
18:36 UTC

7

Looking for WiFi card replacement that supports open source firmware/drivers

Hi, I have a System76 Lemur Pro (lemp11) laptop, which has a WiFi card that the Guix installer does not like because apparently the firmware is nonfree. I totally understand this rationale and want to find a replacement WiFi card but finding something that clearly supports free firmware and drivers has proven difficult to find/confirm from listings. Apparently Ahteros is a good make, but it isn't clear to me if that's a blanket approval or not.

My current WiFi card is an M.2 2230 with an E-Key. Do you all have any recommendations on what exactly I should be looking for in listings and where to procure such a card? Thanks for any advice you can give!

2 Comments
2024/06/08
03:27 UTC

3

guix/guile equivalent of nixpkgs lib.fakeHash ?

Is there a constant or something that is equivalent of nixpkgs' lib.fakeHash which is use as a placeholder hash ?

4 Comments
2024/06/07
23:14 UTC

2

How to troubleshoot "Error: Unable to initialize GTK+, is DISPLAY set properly?" in a --emulate-fhs shell container?

Hello, I'm trying to get a non-free binary to run and I get "Error: Unable to initialize GTK+, is DISPLAY set properly?". From what I've found this isn't a Guix error but I'm looking for tips on how to troubleshoot.

The binary is Transcribe! https://www.seventhstring.com/xscribe/download\_linux.html) and was built on Xubuntu. 20.04. The package in the AUR for it is https://aur.archlinux.org/packages/transcribe.

After running into a few library path issues I think I got the environment set up correctly with

guix shell --container -F gstreamer gtk+ libsm gst-plugins-base gcc-toolchain --preserve='^DISPLAY$' --preserve='^XAUTHORITY$' --expose=$XAUTHORITY

But then I get

~/Downloads/transcribe [env]$ ./transcribe

14:44:05: Error: Unable to initialize GTK+, is DISPLAY set properly?
~/Downloads/transcribe [env]$ echo $DISPLAY

:0.0

Thanks for any help!

4 Comments
2024/06/06
14:53 UTC

10

Does guix packages suffer from the same performance issues as nix packages?

I tried nix recently and I found that Nix packages are tremendously slow because optimization flags are turned off in favor of reproducibility.

For instance, nix' python is reportedly slow, and my tests with GCC (compiling python using pyenv) took 10 times more than using the Debian's GCC.

So, my question is: does this policy of turning off optimization flags apply to guix as well?

8 Comments
2024/06/03
05:01 UTC

3

Is there a way to import config to Scheme/Guile with Guix ?

Like NixOS has Nix Flakes, or atomic (immutable) OSes has ostree images

6 Comments
2024/06/02
08:23 UTC

5

Mixing --emulate-fhs and --profile

I am trying to launch a containerized shell environment using something like,

guix shell --container --emulate-fhs --profile="${SOME_PROFILE}" -- ls

Running this code results in the following error: Profile can't be used with package options.

The error is thrown from a script, I think in: "guix/guix/scripts/environment.scm"

I also noticed a bug report from sometime around 2022 having a similar issue. From my understanding, this is caused by the '--emulate-fhs' option freaking expanding into a package list(behind the scenes), which triggers an error as the invocation will be trying to load packages from both a profile and command line arg list??

Has anyone run into this issue and figured a solution? (I will update the post linking the bug report from 2022. I am on my phone now)

1 Comment
2024/05/29
22:50 UTC

Back To Top