!QCCCSJHEsTIfozrZxz:nixos.org

Nix + Go

227 Members
Go packaging for and with Nixpkgs. | Be excellent to each other.47 Servers

Load older messages


SenderMessageTime
30 Aug 2023
@j-k:matrix.orgj-k np.
maybe try run this quickly nix run github:nixos/nixpkgs/nixpkgs-unstable#nix-info -- -m
09:28:33
@theclearpill:matrix.orgMoritz
  • system: "x86_64-linux"
    • host os: Linux 6.4.11, NixOS, 23.11 (Tapir), 23.11.20230823.9201b5f
    • multi-user?: no
    • sandbox: yes
    • version: nix-env (Nix Super) 2.18.0pre20230813_65e8aba
    • channels(root): ""
    • channels(moritz): ""
    • nixpkgs: not found
09:29:15
@theclearpill:matrix.orgMoritz *
  • system: "x86_64-linux"
  • host os: Linux 6.4.11, NixOS, 23.11 (Tapir), 23.11.20230823.9201b5f
  • multi-user?: no
  • sandbox: yes
  • version: nix-env (Nix Super) 2.18.0pre20230813_65e8aba
  • channels(root): ""
  • channels(moritz): ""
  • nixpkgs: not found
09:29:41
@theclearpill:matrix.orgMoritzI guess I really just need to setup my channels to follow the flake input.09:30:13
@j-k:matrix.orgj-k

hmm ok so I thought it might be sandboxing disabled but it's on.
I'm not sure how you managed to turn off multi-user on nixos ... šŸ‘€
nix 2.18 probably didn't break anything.

is this file in a clone of nixpkgs? how are you running nix-build?

09:31:08
@theclearpill:matrix.orgMoritz I'm running:
nix-build -E '(import <nixpkgs> {}).callPackage ./default.nix {}'
09:32:05
@j-k:matrix.orgj-kyeah so that's pulling nixpkgs from your channels which will be super old09:32:31
@j-k:matrix.orgj-k <nixpkgs> is channels syntax 09:32:51
@theclearpill:matrix.orgMoritzAhhh, that makes perfect sense then...09:33:24
@theclearpill:matrix.orgMoritzThanks for your help. Now with the nixpkgs it builds flawlessly :)09:48:25
@j-k:matrix.orgj-kglad to hear11:23:13
5 Sep 2023
@zoopli:matrix.orgzoopli joined the room.17:28:41
9 Sep 2023
@msanft:matrix.orgMoritz Sanft joined the room.12:15:00
10 Sep 2023
@farcaller:matrix.orgfarcaller joined the room.12:35:56
@farcaller:matrix.orgfarcallerimage.png
Download image.png
12:39:52
@farcaller:matrix.orgfarcallerwrote a tiny idiomatic API wrapper around C bindings to nix: ``` $ go run examples/build_hello/main.go drv /nix/store/nms6chyaxb6pxzb021jx351nn32j3lx7-hello-2.12.1.drv vaild? true out -> /nix/store/6wmplzfs0nz866p320xnknpr05q79m62-hello-2.12.1 ```12:39:52
@farcaller:matrix.orgfarcaller *

wrote a tiny idiomatic API wrapper around C bindings to nix:

\$ go run examples/build\_hello/main.go
drv /nix/store/nms6chyaxb6pxzb021jx351nn32j3lx7-hello-2.12.1.drv vaild? true
out -> /nix/store/6wmplzfs0nz866p320xnknpr05q79m62-hello-2.12.1
12:40:07
@farcaller:matrix.orgfarcaller *

wrote a tiny idiomatic API wrapper around C bindings to nix:

$ go run examples/build_hello/main.go
drv /nix/store/nms6chyaxb6pxzb021jx351nn32j3lx7-hello-2.12.1.drv vaild? true
out -> /nix/store/6wmplzfs0nz866p320xnknpr05q79m62-hello-2.12.1
12:40:29
@qbit:tapenet.org@qbit:tapenet.org farcaller: nice!! 12:51:04
@qbit:tapenet.org@qbit:tapenet.orglink? 12:51:31
@farcaller:matrix.orgfarcaller
In reply to @qbit:tapenet.org
link?
https://github.com/farcaller/gonix. I’m hacking this as I go, but evals and builds seem to work as intended.
12:57:54
@qbit:tapenet.org@qbit:tapenet.orgrad :D13:01:05
11 Sep 2023
@msanft:matrix.orgMoritz SanftHey, I'm currently trying to build a static binary of a Go module which uses CGO. However, the local header file I'm trying to include in my main.go is not being picked up. I struggle to find the definition of buildGoModule to see what happens exactly. In my understanding, the header file should be included since src = ./. 18:31:14
@msanft:matrix.orgMoritz Sanft

The corresponding output for reference:

packages.x86_64-linux.default = pkgs.buildGoModule rec { # pkgs.pkgsCross.riscv64.buildGoModule rec {
        pname = "keystone-go-enclaves";
        version = "0.0.0";

        src = ./.;

        vendorHash = null;

        nativeBuildInputs = [ musl ];

        CGO_ENABLED = 1;

        ldflags = [
          "-s -w"
          "-linkmode external"
          "-extldflags '-static -L${musl}/lib'"
        ];

      };
18:31:38
@countoren:matrix.orgcountoren Hi Moritz Sanft , I guess it is not directly answer your question but I had to play with go packages myself I had to cross compile a server to arm I was thinking to go the static compilation route, but I ended up with dynamicly linked + deliverable with NAR files to the system. I dont know if it is much help but it might give you a lead. 21:07:34
12 Sep 2023
@atalii:matrix.org@atalii:matrix.org
In reply to @msanft:matrix.org
Hey, I'm currently trying to build a static binary of a Go module which uses CGO. However, the local header file I'm trying to include in my main.go is not being picked up. I struggle to find the definition of buildGoModule to see what happens exactly. In my understanding, the header file should be included since src = ./.
i'm not too experienced with CGO/nix/etc, but i'll take a stab in the dark - if ./. is a git repository, nix will ignore any file that isn't indexed; you can git add -N $your_header_file if that is the issue
01:14:01
@msanft:matrix.orgMoritz Sanft Hey oren :) Thanks for your reply! Actually, I think I inevitably need a static binary. I don't know if it will even work out in the end, but I'm trying to compile a CGo-using Go app for an embedded RISCV device which requires static binaries from my x86 builder device. Quite unusual I guess :D 05:31:01
@msanft:matrix.orgMoritz SanftGod, yes. I didn't notice I had not checked in this file. Thank you so much!05:32:20
@chrispickard:matrix.orgchrispickard removed their display name chrispickard.17:38:32
13 Sep 2023
@jsla:matrix.orgjsla joined the room.07:35:55

Show newer messages


Back to Room ListRoom Version: 9