kaspanet / kaspad

Kaspad is the reference full node Kaspa implementation written in Go (golang).
ISC License
440 stars 227 forks source link

Cannot build kaspad on FreeBSD #2264

Open thorapps opened 5 months ago

thorapps commented 5 months ago

Hi, I got that issue :

root@www:~/kaspad # go install . ./cmd/... go: downloading github.com/btcsuite/btcutil v1.0.2 go: downloading github.com/kaspanet/go-secp256k1 v0.0.7 go: downloading golang.org/x/crypto v0.1.0 go: downloading github.com/pkg/errors v0.9.1 go: downloading github.com/jessevdk/go-flags v1.4.0 go: downloading google.golang.org/protobuf v1.28.1 go: downloading google.golang.org/grpc v1.38.0 go: downloading github.com/tyler-smith/go-bip39 v1.1.0 go: downloading github.com/gofrs/flock v0.8.1 go: downloading golang.org/x/term v0.5.0 go: downloading golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd go: downloading github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd go: downloading github.com/jrick/logrotate v1.0.0 go: downloading github.com/kaspanet/go-muhash v0.0.4 go: downloading golang.org/x/sys v0.5.0 go: downloading google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08 go: downloading golang.org/x/net v0.7.0 go: downloading github.com/davecgh/go-spew v1.1.1 go: downloading github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d go: downloading github.com/golang/protobuf v1.5.2 go: downloading golang.org/x/text v0.7.0 go: downloading github.com/golang/snappy v0.0.1

github.com/kaspanet/kaspad/infrastructure/os/limits

infrastructure/os/limits/limits_unix.go:25:18: invalid operation: rLimit.Cur > desiredLimits.FileLimitWant (mismatched types int64 and uint64) infrastructure/os/limits/limits_unix.go:28:18: invalid operation: rLimit.Max < desiredLimits.FileLimitMin (mismatched types int64 and uint64) infrastructure/os/limits/limits_unix.go:33:18: invalid operation: rLimit.Max < desiredLimits.FileLimitWant (mismatched types int64 and uint64) infrastructure/os/limits/limits_unix.go:36:16: cannot use desiredLimits.FileLimitWant (variable of type uint64) as int64 value in assignment infrastructure/os/limits/limits_unix.go:41:16: cannot use desiredLimits.FileLimitMin (variable of type uint64) as int64 value in assignment

kaspad was not build, any help?

tuaris commented 4 weeks ago

Same problem here,

me@freebsd-workstation2:~/Documents/Work/ports/Misc $ go version
go version go1.20.12 freebsd/amd64

me@freebsd-workstation2:~/Documents/Work/ports/Misc $ git clone https://github.com/kaspanet/kaspad
Cloning into 'kaspad'...
remote: Enumerating objects: 51058, done.
remote: Counting objects: 100% (6287/6287), done.
remote: Compressing objects: 100% (994/994), done.
remote: Total 51058 (delta 5511), reused 5295 (delta 5293), pack-reused 44771
Receiving objects: 100% (51058/51058), 117.50 MiB | 14.66 MiB/s, done.
Resolving deltas: 100% (39007/39007), done.

me@freebsd-workstation2:~/Documents/Work/ports/Misc $ cd kaspad/
me@freebsd-workstation2:~/Documents/Work/ports/Misc/kaspad $ go install . ./cmd/...
go: downloading github.com/btcsuite/btcutil v1.0.2
go: downloading google.golang.org/protobuf v1.28.1
go: downloading github.com/pkg/errors v0.9.1
go: downloading golang.org/x/crypto v0.1.0
go: downloading github.com/kaspanet/go-secp256k1 v0.0.7
go: downloading google.golang.org/grpc v1.38.0
go: downloading github.com/jessevdk/go-flags v1.4.0
go: downloading github.com/gofrs/flock v0.8.1
go: downloading github.com/tyler-smith/go-bip39 v1.1.0
go: downloading golang.org/x/term v0.5.0
go: downloading github.com/kaspanet/go-muhash v0.0.4
go: downloading github.com/jrick/logrotate v1.0.0
go: downloading github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd
go: downloading golang.org/x/sys v0.5.0
go: downloading github.com/davecgh/go-spew v1.1.1
go: downloading github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d
go: downloading github.com/golang/protobuf v1.5.2
go: downloading github.com/golang/snappy v0.0.1
go: downloading golang.org/x/net v0.7.0
go: downloading google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08
go: downloading golang.org/x/text v0.7.0
# github.com/kaspanet/kaspad/infrastructure/os/limits
infrastructure/os/limits/limits_unix.go:25:18: invalid operation: rLimit.Cur > desiredLimits.FileLimitWant (mismatched types int64 and uint64)
infrastructure/os/limits/limits_unix.go:28:18: invalid operation: rLimit.Max < desiredLimits.FileLimitMin (mismatched types int64 and uint64)
infrastructure/os/limits/limits_unix.go:33:18: invalid operation: rLimit.Max < desiredLimits.FileLimitWant (mismatched types int64 and uint64)
infrastructure/os/limits/limits_unix.go:36:16: cannot use desiredLimits.FileLimitWant (variable of type uint64) as int64 value in assignment
infrastructure/os/limits/limits_unix.go:41:16: cannot use desiredLimits.FileLimitMin (variable of type uint64) as int64 value in assignment

It did build some items:

me@freebsd-workstation2:~/Documents/Work/ports/Misc/kaspad $ ls -plarths $(go env GOPATH)/bin
total 64360
14848 -rwxr-xr-x  1 me wheel     14M Jun 25 21:02 kaspactl
    4 drwxr-xr-x  4 me  me   512B Jun 25 21:02 ../
17120 -rwxr-xr-x  1 me  wheel     17M Jun 25 21:02 kaspaminer
13504 -rwxr-xr-x  1 me  wheel     13M Jun 25 21:02 genkeypair
18880 -rwxr-xr-x  1 me  wheel     18M Jun 25 21:02 kaspawallet
    4 drwxr-xr-x  2 me  me   512B Jun 25 21:02 ./
tuaris commented 3 weeks ago

I've figured it out and got it to build, will make a PR soon.

tuaris commented 2 weeks ago

A FreeBSD port for kaspa (go) is available here: https://github.com/tuaris/FreeBSD-Coin-Ports/tree/master/net-p2p/kaspa. Poudriere testport log: http://pkg.ent.morante.net/poudriere/data/13amd64-deluxe/2024-07-04_17h45m14s/logs/kaspad-go-0.12.17.log

As for getting this included in this repo... I'm not sure how to go about that. Should I create a 'contrib' folder?