!QCCCSJHEsTIfozrZxz:nixos.org

Nix + Go

231 Members
Go packaging for and with Nixpkgs. | Be excellent to each other.51 Servers

Load older messages


SenderMessageTime
3 Jul 2025
@jsnf:matrix.orgjsnf * Suppose you are packaging a go project that uses go version 1.24.4 ( declared in the go.mod)
Would you use BuildGoModule or BuildGo124Module?
The project will upgrade go versions according to new releases
12:56:33
@jsnf:matrix.orgjsnf * Suppose you are packaging a go project that uses go version 1.24.4 ( declared in the go.mod)

Would you use BuildGoModule or BuildGo124Module?

The project will upgrade go versions according to new releases
12:56:45
@jsnf:matrix.orgjsnf Its for nixpkgs 12:57:27
@jrick:zettaport.comjrickdunno the nixpkgs policy but i would only specify the version if the current version was too low12:57:35
@jsnf:matrix.orgjsnf So according to which go version is used in the latest release or unstable channel? 12:58:45
@jrick:zettaport.comjrickor maybe even patch the go.mod version...12:59:27
@jrick:zettaport.comjricki don't know if there are any hard rules about how to deal with it, but i'm sure the reviewers will give their opinions13:00:45
@jsnf:matrix.orgjsnfSadly cant do that as its not my project but something im packaging for others haha13:00:52
@jsnf:matrix.orgjsnfYeaa13:01:01
@jsnf:matrix.orgjsnfThank you tho, preciate your help13:01:15
@katexochen:matrix.orgPaul Meyer (katexochen)policy documented here: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/go/README.md14:15:03
@katexochen:matrix.orgPaul Meyer (katexochen)you should use buildGoModule where ever possible (with some minor exceptions)14:15:34
@katexochen:matrix.orgPaul Meyer (katexochen)Shouldn't be a problem to substitute the go/toolchain version in go.mod from x.x.x to x.x.0 if needed.14:16:59
@katexochen:matrix.orgPaul Meyer (katexochen)There is also a section in the manual on versioned builders: https://nixos.org/manual/nixpkgs/unstable/#ssec-go-toolchain-versions14:18:38
5 Jul 2025
@jsnf:matrix.orgjsnfAhhh got it, thank you so much!15:39:19
10 Jul 2025
@aerunakai:matrix.org@aerunakai:matrix.org joined the room.05:46:05
@nazarewk:matrix.orgkdnis there a way to build system-independent Go binaries on NixOS? I'm trying to build an Alpine container that requires passing the binary externally and getting those pesky file not founds19:08:33
@curid:matrix.orgCurid why not use a scratch base instead of alpine? 19:10:47
@nazarewk:matrix.orgkdn could probably design it around scratch some time in the future, but right now I need to create an entrypoint bash script for the app and that's it 19:12:08
@curid:matrix.orgCurid should be distro independent if you set CGO_ENABLE=0 19:14:08
@jrick:zettaport.comjricknot necessarily. enabling pie will still use the dynamic loader19:16:24
@jrick:zettaport.comjrickbut you can override the path to the dynamic loader, and force it to use the standard path to the musl one which will work on alpine19:17:07
@curid:matrix.orgCurid patchelf --set-interpreter "/lib64/ld-linux-x86-64.so.2" file 19:17:21
@jrick:zettaport.comjrickthere's that hack, but also there's a variable you can set in the go tooling19:17:38
@jrick:zettaport.comjrickdon't remember it exactly off top of my head, just that it exists19:17:52
@jrick:zettaport.comjrick go tool link -extld <path> 19:19:02
@jrick:zettaport.comjrickso, set that with ldflags19:19:11
@diamondburned:matrix.orgDiamond (it/she)CGO_ENABLED=0 definitely will work20:47:58
@diamondburned:matrix.orgDiamond (it/she)if your binary still has PIE then you have to fix your environment20:48:03
@diamondburned:matrix.orgDiamond (it/she) oh this is Nix, perfect! CGO_ENABLED=0 will work 20:48:39

Show newer messages


Back to Room ListRoom Version: 9