4 ms·
I agree with the Guix bit. At some point, I tried using Guix System on my laptop (with wireless support), and of course I was greeted with « use a wifi card tha
by Reventlov 4y ago
I agree with the Guix bit. At some point, I tried using Guix System on my laptop (with wireless support), and of course I was greeted with « use a wifi card that respect your freedom » or something of the sort.
At some point, I might try again, using NonGuix ( https://gitlab.com/nonguix/nonguix https://gitlab.com/nonguix/nonguix ), but right now I'm not using Guix SD. Instead, I try to use Guix on small projects (like building websites using pelican), without going full Guix.
What I'm most impressed with Guix is the time machine and Software Heritage integration, but it still needs a lot of improvement for developers, for example allowing to specify environment variables in manifest.scm files.
- tsuujin 4y agoNonguix is new to me. I may give it a look at some point but I’m already over the pain threshold on nix. Any idea if nonguix will allow an install on macOS? I really want a system like this that I can use on my work MacBook and remote Linux servers.
- sierkov 4y ago> for example allowing to specify environment variables in manifest.scm files. There is already .envrc or .dir-locals.el? And manifest is just - well - manifest. By definition it has to be 'plain'. I mean, there are already a million ways to load env vars so why'd you want guix to do that too and from manifest.scm of all places?
- Reventlov 4y agoBecause instead of distributing two files (channels.scm and manifest.scm, or flake.lock and flake.nix), you have to execute monstruosities like `guix shell --container -m ./manifest.scm -- bash -c 'GUIX_LOCPATH=$GUIX_ENVIRONMENT/lib/locale LC_ALL=fr_FR.utf-8 exec jekyll build'`, which is how I build some websites I have. To me, that's not ok from an user experience point of view.
- sierkov 4y agoExactly my point. You can already do it with direnv, have guix shell once you cd into dir and then just do `jekyll build`.
- mananaysiempre 4y agoDoes nix develop -c jekyll build not do the job for you? (For a single development command—for deploy 'nix build' should be set up to do the right thing, including setting LC_ALL if necessary; and to enter a dev shell just 'nix develop' should work. Nixpkgs installs glibc with a full complement of locales by default, which has its downsides size-wise but should prevent any troubles when setting LC_ALL=fr_FR.) Or, for an automatic setup, cat > .envrc use flake ^D or, for an automatic setup with caching[1], cat > .envrc if ! has nix_direnv_version || ! nix_direnv_version 2.2.0; then source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.0/direnvrc" "sha256-5EwyKnkJNQeXrRkYbwwRBcXbibosCJqyIUuz9Xq+LRc=" fi use flake ^D (I don't have nix-direnv installed systemwide because it ignores the --no-write-lock-file flag I need to pass sometimes. If you put some of your config in default.nix or shell.nix or whatever, you’ll need to watch_file resp. nix_direnv_watch_file those.) [1] https://github.com/nix-community/nix-direnv#direnv-source_url https://github.com/nix-community/nix-direnv#direnv-source_ur...
- Reventlov 4y agoOh, in Nix, this works flawlessly, I was talking about Guix in the comment !
- rekado 4y agoUse `setenv` inside the manifest. (setenv "MAMA" "MIA") (specifications->manifest (list "hello"))
- tetris11 4y agoA caveat with nonguix: there aren't any binary repos, so you have to compile Firefox from the scratch.
- uncletaco 4y agoThis hasn't been true for about a year. Nonguix has a substitution server that includes Firefox and the Linux kernel.
- rekado 4y ago> for example allowing to specify environment variables in manifest.scm files. Just use setenv in the manifest: (setenv "MAMA" "MIA") (specifications->manifest (list "hello")) Then `guix shell -m this-file.scm` enters a shell session where "hello" exists and the env var MAMA is set to "MIA".