Search

Items tagged with: Guix



It turns out that G-expressions don't handle references in vectors created using the read syntax (for example, #(1 2 3))
codeberg.org/guix/guix/pulls/1…

This will be useful if you have extensive usage of serializers like guile-json, which use vectors to represent arrays.

#guix

#guix


#guix


#guix #hpc #mpi


#guix


#guix



Introducing the mega Nonguix :P
ultrarare.space/en/posts/manag…

Here's English version! Updated for nix-shell-wrapper interface change and the new with-nix-profile. Added a new section for extra setups to workaround issues introduced by different packaging practices. Let me know if there're more of them.

#guix #nix


竊包不能算偷……竊包!打包人的事,能算偷麼? 😈
ultrarare.space/posts/manage-n…

Probably I'll translate it into en at some time. For now I just tell you what's new in the post:

  guix package --search-paths \
       -p /run/current-system/profile \
       -p /nix/store/csj09rkmgyjc9y7wzvscla2lavhwc0rg-readest-0.11.1
  ...
  export PATH="/run/current-system/profile/bin:/run/current-system/profile/sbin:/nix/store/csj09rkmgyjc9y7wzvscla2lavhwc0rg-readest-0.11.1/bin"
  export XDG_DATA_DIRS="/run/current-system/profile/share:/nix/store/csj09rkmgyjc9y7wzvscla2lavhwc0rg-readest-0.11.1/share"
  export XCURSOR_PATH="/run/current-system/profile/share/icons:/nix/store/csj09rkmgyjc9y7wzvscla2lavhwc0rg-readest-0.11.1/share/icons"

@hako@boiledscript.com:

Tweaked the interface a bit and added docstring. Here's code for nix-shell-wrapper and nix-shell-wrapper->package:
codeberg.org/hako/Rosenthal/sr…

Too many backslashes are used in the docstring, duplicating the examples here as well:

(nix-shell-wrapper "cowsay"
  '("github:NixOS/nixpkgs/nixos-26.05#coreutils"
    "github:NixOS/nixpkgs/nixos-26.05#cowsay")
  #:run-command '("env" "LANG=C.UTF-8" "cowsay" "hello"))

(nix-shell-wrapper "python-with-numpy"
  "with (import (builtins.getFlake \"github:NixOS/nixpkgs/nixos-26.05\") {}); python3.withPackages (ps: [ps.numpy])"
  #:expression? #t
  #:run-command '("python"))

#guix



#guix #nix


#guix


The media in this post is not displayed to visitors. To view it, please go to the original post.

Added a with-nix-profile macro. It can be used in package declaration of Guix System and Guix Home, transforming nix-shell-wrapper into packages and collecting Nix packages from them.

With the collected Nix packages, an additional build-nix-profile command is provided to build and link the resulted profile to the specified path, also registering GC root.

What's left is to write services to execute this build-nix-profile command and extend search paths ;)

To avoid loading incompatible libraries from the other distribution and crashing programs, like what may happen when using Guix and Nix on foreign distros, the constructed Nix profile won't contain executables and commands are provided by the nix shell wrappers.

See also the first few lists in codeberg.org/hako/Rosenthal/sr… and let me know what are missing.

#guix #nix

#guix #nix


The media in this post is not displayed to visitors. To view it, please go to the original post.

I didn't fully understand nix shell, so here's improved nix-shell-wrapper interface (haven't pushed yet). Probably interesting to Nix folks as well :)

#guix #nix

#guix #nix


#guix #nix


Collection of reproductible #eda #podman images for electronic design development, using #guix, classified by domain (#asic, #fpga, #synthesis, etc.)

codeberg.org/csantosb/eda-tool…

Use it as:

podman pull codeberg.org/csantosb/eda-tools/guix-kicad:0.1

podman run -it --rm --network=host -e DISPLAY -v "$PWD":"$PWD" -w "$PWD" -e HOME guix-kicad:0.1 kicad

Similar commands exist for #yosys, #ghdl, etc.


Tweaked the interface a bit and added docstring. Here's code for nix-shell-wrapper and nix-shell-wrapper->package:

codeberg.org/hako/Rosenthal/sr…

Too many backslashes are used in the docstring, duplicating the examples here as well:

(nix-shell-wrapper "cowsay"
  '("github:NixOS/nixpkgs/nixos-26.05#coreutils"
    "github:NixOS/nixpkgs/nixos-26.05#cowsay")
  #:run-command '("env" "LANG=C.UTF-8" "cowsay" "hello"))

(nix-shell-wrapper "python-with-numpy"
  "with (import (builtins.getFlake \"github:NixOS/nixpkgs/nixos-26.05\") {}); python3.withPackages (ps: [ps.numpy])"
  #:expression? #t
  #:run-command '("python"))

#guix
#guix


The media in this post is not displayed to visitors. To view it, please go to the original post.

Here's improved example on constructing the Nix command, with a Scheme procedure for nix shell (more flexible than nix run and more similar to guix shell) wrappers.

#guix

#guix


The media in this post is not displayed to visitors. To view it, please go to the original post.

There're chances that Guix misses service packages you want to use, and you can actually deploy your services with them from other sources, before the packages are properly packaged.

Besides the oci-service-type, Nixpkgs is also a good fit. The nix run command is similiar to guix time-machine + guix shell so you can have version-pinning as well.

Here's a rough example for the setup.

#guix #nixpkgs


Hey, everyone. I want to spend the next few weeks learning @guix and installing it as a replacement for Debian. The learning curve looks daunting. Where do I start?

I want to do it on real hardware and I have a spare laptop. Sadly @daviwil's nice tutorials appear outdated...?

What I have: an ambition for software freedom and a love of Lisp. What I need: an understanding of the packaging model and (sadly) support for non-free hardware.

Point me to a recent .iso? Point me to a good explainer for noobs? Thanks!

#askfedi #Guix


Hey #Guix!

Now `guix pull` and `guix time-machine` supports Git symref. And?

It allows to easily have unmerged Pull-Request.

Consider the fictive PR 567 improving package foo.
And such CI processed this PR with the evaluation 1234.

Then

guix time-machine \
-C guix.bordeaux.inria.fr/eval/12… \
-- shell foo bar

where channels.scm file points to refs/pull/567/head.

Done! 🤩

#guix


#guix #Zig


There are already a lot of Emacs starter themes, @sacha and Prot made a full Yay Emacs episode on them[1], and also Emacs is going to have an official newcomer-presets thing[2].

Maybe #guix should focus on a different approach, lets implement the guile/wisp code switcher that the @spritely has in some of its articles, or lets support Jessica in the VSCode Guile extension effort[3].

1: sachachua.com/blog/2026/04/yay…

2: sachachua.com/blog/2026/04/wha…

3: fosdem.org/2026/schedule/event…



#guix #nix


The media in this post is not displayed to visitors. To view it, please go to the original post.

I finally gave it a try and here it is: home-writable-files-manager-service-type.

home-symlink-manager-service-type can be replaced to it:

(home-environment
 (essential-services
   (cons* (service home-writable-files-manager-service-type)
          (modify-services ((@@ (gnu home) home-environment-default-essential-services)
                            this-home-environment)
            (delete home-symlink-manager-service-type)))
   ...))

It copies files managed by Guix Home into /home as regular files and makes them writable, with the exception of directories: they are still symlinked.

On home activation, changed files (indentified by hash) will be copied to a backup directory as with home-symlink-manager-service-type.

Cc: @ekaitz_zarraga@mastodon.social
#guix


The media in this post is not displayed to visitors. To view it, please go to the original post.

mirror-substitutes now adds a new on-demand operation mode. I have also refreshed README of the repository.

In contrast to the approach that requires a preknown list of Guix / Nix store items and can be regulated by the operator, this new one mirrors substitutes on user request. (The scope is still limited to specified upstream servers but you as the operator can't select the content.)

The benefit it brings is to only mirror substitutes that are actually used. This usually reduces transfer and storage requirement on a Guix / Nix mirror.

#guix

#guix


I wonder if it's possible to use #Xapian for #toys (the #Guix channel search engine), and here it is: toys-xapian (demo available at search.guix.moe/).

I'll maintain this instance as part of guix.moe (also as a backup to the toys.whereis.social instance, there has been some downtime this week) when I think it's stable.




For anyone that is interested in Guix System ZFS support, here's implementation. Right now it's usable but isn't ready for merging into Guix.

Let me know if there's bug in the implementation if you manage to have a try. It's much welcomed if you can also help with TODOs listed in the PR.

I have deployed it on my systems and I'll update my dotfiles for this PR soon(currently a different implementation is used by the published configurations), so there're example configurations you can view.

#guix

#guix


#guix


The media in this post is not displayed to visitors. To view it, please go to the original post.

2026-02-11 build is out!

The desktop environment has been changed to niri + Noctalia shell. It now also starts Guix System installer automatically, though you're expected to finish keyboard layout setup on tty1 first if you do not use QWERTY.

This build also provides (untested) aarch64-linux images.

#guix #nonguix


2026-01-18 build of my Guix System installation LiveCDs ("LiveCDs" section in codeberg.org/hako/Testament) is out! Notably I have finally finished testing Xorg support for NVIDIA proprietary driver! More information on the setup is updated in Nonguix README. Installer used for this build will add the following comments to the generated configuration so you can edit it before installation: ``` ;; Uncomment the following line for NVIDIA proprietary driver support. ;; (nonguix-transformation-nvidia #:configure-xorg? #t) ``` #guix #nonguix


RE: boiledscript.com/notes/ahlefb6…


The media in this post is not displayed to visitors. To view it, please go to the original post.

Finished reworking the LiveCDs! Now there're two variants:
- Default
- HiDPI, with a larger console font

No NVIDIA variant, since nouveau + firmware is suffcient for the installation task.

Updated the "LiveCDs" section of codeberg.org/hako/Testament. New images are now placed in Guix Moe's storage. When updating, changes to links and channels.lock will be in the same commit.

The new images provide similiar experience to the official one, additionally with:
- substitutes from Guix Moe, to speed up downloading in slow regions (within the LiveCDs, not added to the installed system)
- Linux and Linux LTS kernel options
- fish shell for manual installation
- simple desktop environment built around niri on tty7

The set-keymap script now also works with the installer: when setting keyboard layout in the installer, it's also applied to other ttys and niri's configuration.

Here're a few issues that may affect the experience and should be avoided if you want to install now:
- codeberg.org/guix/guix/issues/…
- codeberg.org/guix/guix/issues/…

#guix #nonguix


2026-01-12 build of my Guix System LiveCDs is out!

Source, usage and downloads are available in codeberg.org/hako/Testament (see the LiveCDs section). This build is from commit 12b811db05e1.

In the next build I plan to rework the LiveCDs, integrate guided installer from Guix and add a NVIDIA variant. Hopefully by then I'll be able to update the images monthly, no ETA though ;)

#guix #nonguix



The media in this post is not displayed to visitors. To view it, please go to the original post.

(Work-in-progress) Legacy series (390.xx, 470.xx), aarch64-linux support, improved documentation and verrsion selection support for Nonguix NVIDIA proprietary driver!

gitlab.com/nonguix/nonguix/-/m…

#guix #nonguix


https://cache-test.guix.moe is now available for testing. It currently serves substitutes for #Guix and #Nonguix, mirrored from their official publish servers, retaining signing keys.

This new cache-test server uses mirror-substitutes (and store paths from guix-store-paths) to mirror substitutes from any upstream.

If everything goes well, I'll deprecate existing setup on guix.moe mirrors and deploy the new configuration. Feedback welcome!

#guix-moe


#guix


#guix