Guix

443 readers
1 users here now

Guix is an advanced distribution of the GNU operating system developed by the GNU Project

founded 5 years ago
MODERATORS
26
 
 

I got my Emacs setup fully functional and now I'm doing a little bit of hacking on my config files. (Because that's what you do on Christmas eve, when the children has fallen asleep.)

However, even though I use Geiser and fancy rainbow parentheses (plus extra Christmas bling), I run into these stupid invalid specifier errors. And the compiler output is neither pretty nor helpful. It basically gives me a large chunk of unformatted code and says there's an invalid specifier somewhere.

Questions:

Is it possible to make Guile do a pretty print on the error output?

Is it possible to make Guile error messages more precise about the problem?

27
1
submitted 6 months ago* (last edited 6 months ago) by sith@lemmy.zip to c/guix@lemmy.ml
 
 

I'm trying to configure my Emacs so that I get access to Guix documentation and source code when I writing my configuration files. I did RTFM, but I can't get it to work. More specifically, Geiser can only find symbol definitions if they are in the same buffer.

Actually, I realize I have the same problem as this person: https://unix.stackexchange.com/questions/761784/how-to-get-guix-perfect-setup-to-work

The Guix REPL can find the Guix source code, but the Geiser Guile REPL can't (even though the right path is loaded, it seems). The stackexchange solution is basically a hack and can't be the proper one, right? So, how do you do when developing Guix in Emacs?

Should I post a bug report about the "perfect setup" chapter in the Reference Manual or am I just incompetent?

28
 
 

Howdy!

Probably not the best place to ask, but I'll give it a try. For the sake of a flourishing Fediverse.

I'm trying out Guix and have installed Steam through the nonguix channel. Unfortunately, almost no games work. Probably because of missing/wrong version of stdlibc++ (and probably more). I got this error when I tried to launch Victoria 3:

./victoria3: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by ./victoria3)

I.e. GLIBCXX_3.4.30 is missing. How can I fix this? Is it possible to add multiple GLIBCXX versions to the Steam package? Any ideas? And shouldn't Steam be self contained?

29
 
 

The survey is available at https://guix.limesurvey.net/

30
 
 

I'd like to change my Guix System to build packages in a different location (`/dev/shm/`) so that they are built on a tmpfs partition to hopefully speed up builds (defaults to `/tmp` which is on the `/` partition on Guix System). The Guix Manual only mentions that this may be done by setting the environment variable `TMPDIR`.

I was able to do this for a system that is configured as a foreign install by modifying the SystemD service file (Guix Mailing List), but I haven't been able to figure out how to modify my `/etc/config.scm` file to do this on Guix System.

31
32
33
 
 

I usually use Psensor to monitor temperatures but it's not available on Guix yet. Can anybody recommend an alternative that does work on Guix ?

34
 
 

From the article

The great promise of Spritely Goblins is to make networking easier and safer. For the past few years, we've focused on developing a toolkit to facilitate this goal. Today, we're proud to announce an incredibly exciting project that will put this toolkit to the test in the largest real-world deployment of Spritely technology so far: a port of the GNU Shepherd system layer to Guile Goblins — the first step in making Guix the object-capability operating system!

35
 
 

Protonvpn has some instructions to connect via openvpn:

https://protonvpn.com/support/linux-openvpn/

Where I'm stuck is step 3, where the guide has you download a dns update script into /etc/openvpn.

Openvpn doesn't reside in /etc so I'm not sure how to handle that. Any advice? Thanks.

36
 
 

Compiling a rust program works correctly, but when running the binary the dynamic linker says libstdc++.so.6: cannot open shared object file: No such file or directory.

The only way I found to get around this in a manifest file is with force accessing gcc:lib which is a private package definition:

(concatenate-manifests
 (list
  (packages->manifest
   (list
    (list (@@ (gnu packages gcc) gcc-13) "lib"))
  (specifications->manifest
   (list
    "coreutils"
    "libgccjit"
    "clang-toolchain"
    "other stuff..."))))

but the @@ operator is kind of a hack since it accesses private definitions in a module and probably isn't mean to be normally used.

Has anyone found a proper way to link to libstdc++.so.6?

37
 
 

I am looking forward to hardening my system, but I'm not sure how I should go about it. Any advice?

38
 
 

I am thinking about moving to Guix, and was wondering what you all think of Shepherd?

What are things you like? What are its shortcomings? Any cool or weird things you wish you knew before using it?

For context, I am currently using Runnit.

39
 
 

For some reason, the app nm-connection-editor (Advanced Network Configuration) exists on my GNOME, but I don't even use it. I suspect that it's a part of package nm-applet. I also have system-config-printer (Print Settings, I think?) and system-config-printer-applet, but both of them don't work properly.

I want to remove both these apps, as I don't use them, but they've been introduced by services. How should I proceed?

40
41
42
 
 

I'm a Guix newbie, and I'm also not making use of Guix Home, so for the time being, I'm forced to build the entire config.scm from scratch. However, what I've noticed while building is that I get this weird log:

shepherd: Service host-name running with value #<unspecified>.

What could this be? I'm pretty sure I've set the value of host in the configuration file.

...
 (host-name "hp")
...
43
 
 

It seems to me that there's no service for pipewire available at the moment. How do I configure pipewire to run with GNOME, ideally with pipewire-pulse?

44
 
 

Currently, I'm on a Guix System, and I must say, using Nix with it, or vice-versa, is a terrible idea because of one simple reason: contamination of environment variables: PATH, LD_PRELOAD and LD_LIBRARY_PATH, just to name a few. Most of my Flakes are useless on the Guix System, and I can imagine the same for Guix expressions on NixOS.

45
1
submitted 1 year ago* (last edited 1 year ago) by csantosb@lemmy.ml to c/guix@lemmy.ml
 
 

New blog post on the 100+ Guix packages contributed by AMD, preliminary tests on one the French national supercomputers, and how it can benefit going forward to both AMD and the French and European #HPC environments.

46
1
submitted 1 year ago* (last edited 1 year ago) by velox_vulnus@lemmy.ml to c/guix@lemmy.ml
 
 

Here is my current configuration:

config.scm

(use-modules
 (gnu)
 (gnu packages admin)
 (gnu packages certs)
 (gnu packages fonts)
 (gnu packages gnome)
 (gnu packages package-management)
 (gnu packages text-editors)
 (gnu packages terminals)
 (gnu packages wm)
 (gnu packages xdisorg)
 (nongnu packages linux)
 (nongnu packages mozilla)           
 (nongnu system linux-initrd))

(use-service-modules
 desktop networking ssh xorg)

(operating-system
 (host-name "guix")
 (kernel linux)
 (initrd microcode-initrd)
 (firmware (cons*
  realtek-firmware
  %base-firmware))
 (timezone "Asia/Kolkata")
 (locale "en_IN.utf8")
 (keyboard-layout (keyboard-layout "in" "en"))

 (bootloader
  (bootloader-configuration
   (bootloader grub-efi-bootloader)
   (targets '("/boot"))))

 (file-systems (cons*
  (file-system
   (device (file-system-label "guix"))
   (mount-point "/")
   (type "btrfs"))
  (file-system
   (device (uuid "C938-C7C0" 'fat))
   (mount-point "/boot")
   (type "vfat"))
   %base-file-systems))

 (swap-devices
  (list
   (swap-space
    (target
     (uuid "4550d1a4-3566-47a2-a3bc-8d77c87acc62")))))
 
 (users (cons
  (user-account
   (name "guix")
   (comment "Guix System")
   (group "users")
   (supplementary-groups '("wheel" "netdev" "audio" "video")))
   %base-user-accounts))

 (packages (cons*
  gnome-tweaks kakoune
  nss-certs tree nix
  firefox font-google-noto
  font-google-noto-emoji
  font-google-noto-sans-cjk
  font-google-noto-serif-cjk
  font-awesome %base-packages))
 
 (services (cons*
  (service openssh-service-type)
  (service bluetooth-service-type)
  (service xfce-desktop-service-type)
  (modify-services %desktop-services
   (guix-service-type
    config =>
    (guix-configuration
     (inherit config)
     (substitute-urls (cons*
      "https://substitutes.nonguix.org"
      %default-substitute-urls))
     (authorized-keys (cons*
      (local-file "./signing-key.pub")
      %default-authorized-guix-keys))))))))

I am currently on a low-end laptop, as my device has broken down. It runs on 4GB of RAM, and GNOME is pretty heavy on this device. I am looking for a custom WM setup based on Wayland preferably (river, hyprland, sway or dwl). I do not want any fancy shortcuts for terminal or any other app. I want to be able to use a launcher and toggle between workspaces. I want snapping and multi-window gestures just like how it works on GNOME. I would appreciate shortcut icons for shutdown, wifi and sound. And last but not the least, I want to be able to control brightness and light/dark mode.

Can anyone recommend me how I can start setting up a WM in this config file? What do I need to add, apart from the WM itself?

47
 
 

a proposal of automated provisioning of secrets on guix with sops

48
 
 

Old post but better have it in this community

49
 
 

Old post, but better have it in this community

50
1
submitted 2 years ago* (last edited 2 years ago) by HulkSmashBurgers@reddthat.com to c/guix@lemmy.ml
 
 

Edit: Turns out for what I'm trying to do (mount luks encrypted raid after start up) only needs the device mapping for the raid drive and not a file-system object.

So I luks encrypted the raid and call a script to open the vault and mount it when I need to.


In my system config file I added a raid drive like so:

(mapped-devices (list (mapped-device
                                     (source (uuid
                                                  "205e5caa-694f-4457-a2a1-8affa3536e75"))
                                     (target "guix")
                                     (type luks-device-mapping))

                                  (mapped-device
                                     (source (list "/dev/sdb1" "/dev/sdc1"))
                                     (target "/dev/md0")
                                     (type raid-device-mapping))))

(file-systems (cons* (file-system
                                  (mount-point "/")
                                  (device "/dev/mapper/guix")
                                  (type "ext4")
                                  (dependencies (list (list-ref mapped-devices 0))))

                               (file-system
                                  (mount-point "/mnt/nas")
                                  (device "/dev/md0")
                                  (type "ext4")
                                  (mount? #f)
                                  (dependencies (list (list-ref mapped-devices 1)))) %base-file-systems)))

I'd now like to luks encrypt the raid drive but I'm not sure how to go about doing it. Do I simply make a another mapped-device object, specifying the raid drive uuid and "/dev/md0" as the target:

(mapped-device
   (source (uuid
                {raid uuid}))
                (target "/dev/md0")
                (type luks-device-mapping))

and then pass that as a dependency to the raid file system object?

Thanks

view more: ‹ prev next ›