Live data from Hacker News

Guix for Development

dthompson.us

61–69 of 69 posts

Re: Guix for Development

#61

I love Guile over Nix syntax, but the one killer feature Nix has that Guix doesn’t is making a single static binary of common programs and then deploying them elsewhere. In Nix, this is a single flag. In Guix, you either deploy with all libraries on a custom /guix path, or nothing.

Is `guix pack` not sufficient for this?

https://guix.gnu.org/manual/1.5.0/en/html_node/Invoking-guix...

Re: Guix for Development

#62

Earlier quoted context omitted.

It's a little inconvenient but for example my Framework laptop Intel WiFi chip requires a binary blob and I want aware of this. Now that I am, I can make better hardware purchasing decisions. There are plenty of alternatives that don't require that blob and it's the only thing I need from the no free channel.

Are there really a lot of alternative Wifi chips that don't require closed blobs? Do you have a list? Are they found in any laptop that is reasonably available on the market? I don't think that Guix is punishing users by not supporting non-libre hardware. They are making a choice in what they develop and anybody of similar mind can join their effort. The nonguix folks are practical. It just stinks that nothing ships…

There are some relatively widespread WiFi chipsets for which free firmware is available:

https://guix.gnu.org/manual/devel/en/html_node/Hardware-Cons...

Unfortunately, it's hard to be sure when you buy a WiFi device whether it has the right chipset. Also, most laptops come with Intel WiFi, and that requires non-free firmware.

Re: Guix for Development

#63

> Dockerfiles are clunky and the rather extreme level of isolation is usually unnecessary and makes things overly complicated I agree, for local development docker is often overkill. However, for production it's absolutely not overkill. And since pretty much all projects are intended for production at some point, they'll need a Dockerfile and docker compose or some other equivalent. And at that point, you're maintain…

Your production deployment might be done with container images, but Dockerfile is not the only way to build them. Guix has builtin support to build container images without Dockerfile.

Re: Guix for Development

#64
post #43

What if a piece of software isn't packaged, like for example the ARM GCC toolchain. In a Dockerfile I just need to curl and unpack it. How do I solve that with guix?

I use nix, but I assume the same goes for guix, you write a package or run it with something that emulates a FHS (like steam-run, don't mind the name) and hope it works.

Writing a package is not as bad as it sounds, nix and guix have very little difference between "package maintainer" and "user" so most users probably can package software. Normally copying something from nixpkgs or similar will get you most the way there.

Re: Guix for Development

#65

> Dockerfiles are clunky and the rather extreme level of isolation is usually unnecessary and makes things overly complicated I agree, for local development docker is often overkill. However, for production it's absolutely not overkill. And since pretty much all projects are intended for production at some point, they'll need a Dockerfile and docker compose or some other equivalent. And at that point, you're maintain…

You'd be nuts to run the Docker daemon anywhere near production.

Why is that? I also used to hold this opinion, but we use it for 99% of our production deployments (or k8s where we need it) and it has been maximally reliable, and super convenient for fault-finding. Maybe I didn't understand your take.

Re: Guix for Development

#66
post #61

I love Guile over Nix syntax, but the one killer feature Nix has that Guix doesn’t is making a single static binary of common programs and then deploying them elsewhere. In Nix, this is a single flag. In Guix, you either deploy with all libraries on a custom /guix path, or nothing.

Is `guix pack` not sufficient for this? https://guix.gnu.org/manual/1.5.0/en/html_node/Invoking-guix...

No, it produces a tree of libraries that you have to untar on the host machine. If you dont have root, then unpacking to /gnu/store is impossible

Re: Guix for Development

#67
post #61

Earlier quoted context omitted.

Is `guix pack` not sufficient for this? https://guix.gnu.org/manual/1.5.0/en/html_node/Invoking-guix...

No, it produces a tree of libraries that you have to untar on the host machine. If you dont have root, then unpacking to /gnu/store is impossible

I checked and it looks like the root-required issue has been addressed with a --relocatable flag, and there are a few options as well for needing to untar, e.g. producing an appimage format output.

Re: Guix for Development

#68
post #67

Earlier quoted context omitted.

No, it produces a tree of libraries that you have to untar on the host machine. If you dont have root, then unpacking to /gnu/store is impossible

I checked and it looks like the root-required issue has been addressed with a --relocatable flag, and there are a few options as well for needing to untar, e.g. producing an appimage format output.

I think I tried with this flag, but either it was incompatible with a cross-compile target, or it did not support my target arch properly

Re: Guix for Development

#69
post #4

Guix looks really tempting to me because i find guile scheme so much more pleasant than nix. But i heard there are not that many packages in Guix. I wonder if some sort of transpiler from nix derivations to guix package definitions would be possible.

You can run Nix packages on Guix if there isn't a "native" package for it. Look at nix-service. https://guix.gnu.org/manual/1.5.0/en/html_node/Miscellaneous... I've never felt the need myself. If something is missing, I add it and I think that is the real fun in running Guix because creating your own well defined package or service is deeply rewarding. Anyway, you can find people using it in the wild either by search…

Thanks, I'll check it out.
Post reply on HN