!QCCCSJHEsTIfozrZxz:nixos.org

Nix + Go

228 Members
Go packaging for and with Nixpkgs. | Be excellent to each other.48 Servers

Load older messages


SenderMessageTime
9 Jan 2024
@fractivore:cyberia.clubsymys

Hi folks, I am trying to understand how to actually build a module with buildGoModule. I have tried, for example:
nix-build '<nixpkgs>' ./shell.nix
result:

nix-build '<nixpkgs>' ./shell.nix
error: Please be informed that this pseudo-package is not the only part of
       Nixpkgs that fails to evaluate. You should not evaluate entire Nixpkgs
       without some special measures to handle failing packages, like those taken
       by Hydra.

23:55:11
@fractivore:cyberia.clubsymys

where shell.nix is:

  1 {·lib↵                                                                          
  2 ,·buildGoModule↵                                                                
  3 ,·fetchFromGitHub↵                                                              
  4 }:↵                                                                             
  5 ↵                                                                               
  6 buildGoModule·rec·{↵                                                            
  7 ··pname·=·"signASLbot";↵                                                        
  8 ··#version·=·"1.1.6";↵                                                          
  9 ↵                                                                               
 10 ··src·=·fetchFromGitHub·{↵                                                      
 11 ····owner·=·"mplsbugbounty";↵                                                   
 12 ····repo·=·pname;↵                                                              
 13 ···#·rev·=·"v${version}";↵                                                      
 14 ···#·sha256·=·"sha256-1EnKheHaS1kxw0cjxCahT3rUWBXiqxjKefrDBI2xIvY=";↵           
 15 ··};↵                                                                           
 16 ↵                                                                               
 17 ··#vendorHash·=·"sha256-egjjSEZH8F6UMbnkz3xytIzdW/oITB3RL1ddxrmvSZM=";↵         
 18 ↵                                                                               
 19 ··#·tests·require·internet·access·and·API·keys↵                                 
 20 ··doCheck·=·false;↵                                                             
 21 ↵                                                                               
 22 ··meta·=·with·lib;·{↵                                                           
 23 ····description·=·"";↵                                                          
 24 ····longDescription·=·''↵                                                       
 25 →       It's·a·pretty·basic·little·bot·really!↵                                 
 26 ····'';↵                                                                        
 27 ····homepage·=·"https://github.com/mplsbugbounty/signASLBot";↵                  
 28 ····#license·=·licenses.mit;↵                                                   
 29 ····#maintainers·=·with·maintainers;·[·fab·];↵                                  
 30 ··};↵                                                                           
 31 }↵ 
23:55:53
@fractivore:cyberia.clubsymys ( That's not the right info for my repo, but I haven't gotten to that step yet, because I can't get the build to even start. I assume I'm doing something wrong with the '<nixpkgs>' part, trying to build all of nixpkgs or something, but I don't know what I need to supply it with instead ) 23:58:22
10 Jan 2024
@fractivore:cyberia.clubsymys And what exactly is the lib argument suppose to be? 00:03:24
@qbit:tapenet.org@qbit:tapenet.org i think you need --attr signASLbot 01:05:30
@qbit:tapenet.org@qbit:tapenet.org not sure what lib argument you mean 01:05:46
@fractivore:cyberia.clubsymys
In reply to @qbit:tapenet.org
i think you need --attr signASLbot
thanks, I'll give it a shot once I get a chance
01:46:28
@fractivore:cyberia.clubsymys
In reply to @qbit:tapenet.org
not sure what lib argument you mean

Like from here:

meta = with lib; {
    description = "Neutron node";

    longDescription = ''
      Neutron node to interact with neutron blockchain
    '';

    homepage = "https://github.com/neutron-org/neutron";
    
    license = licenses.asl20; # Apache license

    maintainers = with maintainers; [
      pr0n00gler
      foxpy
    ];

    platforms = platforms.all;
  };
01:47:34
@fractivore:cyberia.clubsymys

And

  1 {·lib↵                                                                          
  2 ,·buildGoModule↵                                                                
  3 ,·fetchFromGitHub↵                                                              
  4 }:↵           
01:48:16
@fractivore:cyberia.clubsymysIt's a function argument right?01:48:38
@qbit:tapenet.org@qbit:tapenet.orgoh, lib is the "nixpkgs" library02:12:15
@qbit:tapenet.org@qbit:tapenet.orghttps://teu5us.github.io/nix-lib.html02:12:36
@qbit:tapenet.org@qbit:tapenet.org the "with lib" is effectively exposing the stuff in lib to the attrs that follow - so you don't have to type lib.maintainers.foxpy or lib.licenses.... 02:13:53
@fractivore:cyberia.clubsymysOhhhhh okay thank you!!02:15:37
@qbit:tapenet.org@qbit:tapenet.orgnp02:16:25
11 Jan 2024
@fractivore:cyberia.clubsymys

Okay so I updated my shell.nix to:

  1 let↵                                                                            
  2 ··lib·=·import·<nixpkgs>·{};↵                                                   
  3 in↵                                                                             
  4 ↵                                                                               
  5 lib.buildGoModule·rec·{↵                                                        
  6 ··pname·=·"signASLbot";↵                                                        
  7 ··version·=·"";↵                                                                
  8 ↵                                                                               
  9 ··src·=·lib.fetchFromGitHub·{↵                                                  
 10 ····url·=·"https://github.com/mplsbugbounty/signASLBot/archive/refs/heads/main.zip";↵
 11 ····owner·=·"mplsbugbounty";↵                                                   
 12 ····repo·=·pname;↵                                                              
 13 ····rev·=·"794245ee556b3ce80991872b5a59e9a810250c7d";↵                          
 14 ····sha256·=·"0s5qqmzp793012ynxyrlibi6g4xacvgs59z56dfh4ll4z2gv41md";↵           
 15 ··};↵                                                                           
 16 ↵                                                                               
 17 ··vendorHash·=·"sha256-9OY34TlxbvqNfGbDqQyovk+HWCCIUZOorbrH/5rhO3M";↵           
 18 ↵                                                                               
 19 ··meta·=·with·lib;·{↵                                                           
 20 ····description·=·"";↵                                                          
 21 ····longDescription·=·''↵                                                       
 22 →       It's·a·pretty·basic·little·bot·really!↵                                 
 23 ····'';↵                                                                        
 24 ····homepage·=·"https://github.com/mplsbugbounty/signASLBot";↵                  
 25 ····license·=·"";↵                                                              
 26 ····maintainers·=·with·maintainers;·[·symys·];↵                                 
 27 ··};↵                                                                           
 28 }↵    

I get:

error: builder for '/nix/store/45ql7689gpqdqj2ylwhzhgi9khi5l7ly-signASLbot-.drv' failed with exit code 1;                                                     
...
       > Running phase: buildPhase                                                                                                                            
       > Building subPackage .                                                                                                                                
       > main.go:26:5: package signaslbot/errUtils is not in std (/nix/store/6qd8p8gilzgplpk2ni3109m0k71r21s7-go-1.21.5/share/go/src/signaslbot/errUtils)     
       For full logs, run 'nix-store -l /nix/store/45ql7689gpqdqj2ylwhzhgi9khi5l7ly-signASLbot-.drv'. 
05:42:06
@fractivore:cyberia.clubsymyssignaslbot/errUtils is a custom package in the same repo05:43:08
@fractivore:cyberia.clubsymys * signaslbot/errUtils is a custom package in the same repo. How can I make it available to the nix store before it gets to this build step?05:45:16
@qbit:tapenet.org@qbit:tapenet.orgif you want it to be a shell you need to use mkShell, no? 13:31:30
@qbit:tapenet.org@qbit:tapenet.orghttps://github.com/mplsbugbounty/signASLBot/blob/main/go.mod#L1 ah, i see you have a second go.mod in the errUtils dir13:32:54
@qbit:tapenet.org@qbit:tapenet.orgthat can't be ref'd as "signaslbot/errUtils" 13:33:17
@qbit:tapenet.org@qbit:tapenet.orgin go13:33:19
@qbit:tapenet.org@qbit:tapenet.orgbecause your "sub" module is literally called "errUtils" 13:33:43
@qbit:tapenet.org@qbit:tapenet.orgremote the errUtils/go.* files and things might work13:34:18
@qbit:tapenet.org@qbit:tapenet.orghttps://go.dev/ref/mod#modules-overview13:35:14
@qbit:tapenet.org@qbit:tapenet.orgyour errUtils is a package in the signaslbot module13:35:50
@qbit:tapenet.org@qbit:tapenet.org

Each package within a module is a collection of source files in the same directory that are compiled together. A package path is the module path joined with the subdirectory containing the package (relative to the module root). For example, the module "golang.org/x/net" contains a package in the directory "html". That package’s path is "golang.org/x/net/html".

13:35:51
@qbit:tapenet.org@qbit:tapenet.orgdoing sub-modules is .. tricky and probably not what you want for a project of this size13:43:21
@fractivore:cyberia.clubsymys
In reply to @qbit:tapenet.org
doing sub-modules is .. tricky and probably not what you want for a project of this size
Yeah I really just did that because I wanted to get more experience structuring projects this way
16:03:46
@qbit:tapenet.org@qbit:tapenet.orgi think to do sub-modules you need to use the "full" path of the module16:05:34

Show newer messages


Back to Room ListRoom Version: 9