alpenhorn
alpenhorn copied to clipboard
Error when trying to install vuvuzela-client
$ go get -u vuvuzela.io/vuvuzela/cmd/vuvuzela-client
# vuvuzela.io/alpenhorn/pkg
go/src/vuvuzela.io/alpenhorn/pkg/server.go:89:6: opts.Dir undefined (type func(string) badger.Options has no field or method Dir)
go/src/vuvuzela.io/alpenhorn/pkg/server.go:90:6: opts.ValueDir undefined (type func(string) badger.Options has no field or method ValueDir)
go/src/vuvuzela.io/alpenhorn/pkg/server.go:91:6: opts.SyncWrites undefined (type func(string) badger.Options has no field or method SyncWrites)
go/src/vuvuzela.io/alpenhorn/pkg/server.go:93:24: cannot use opts (type func(string) badger.Options) as type badger.Options in argument to badger.Open
Apparently that is related to breaking API changes: https://github.com/dgraph-io/badger/releases/tag/v1.6.0
Problem now is, when I change the version of badger I get this:
$ go build
# vuvuzela.io/alpenhorn/pkg
../alpenhorn/pkg/data.go:131:7: assignment mismatch: 1 variable but item.Value returns 2 values
../alpenhorn/pkg/data.go:131:20: too many arguments in call to item.Value
have (func([]byte) error)
want ()
../alpenhorn/pkg/data.go:154:7: assignment mismatch: 1 variable but item.Value returns 2 values
../alpenhorn/pkg/data.go:154:19: too many arguments in call to item.Value
have (func([]byte) error)
want ()
../alpenhorn/pkg/extract.go:222:6: assignment mismatch: 1 variable but item.Value returns 2 values
../alpenhorn/pkg/extract.go:222:18: too many arguments in call to item.Value
have (func([]byte) error)
want ()
../alpenhorn/pkg/register.go:102:17: not enough arguments in call to tx.Commit
have ()
want (func(error))
Due to my non-existent knowledge of programming in Go, I had to hack this in an ugly way. But hey, better than nothing!
Workaround
go get -u vuvuzela.io/vuvuzela/cmd/vuvuzela-client
cd "$GOPATH/src/github.com/dgraph-io/badger"
No. None of the tagged versions work. Use this commit.
git checkout 50bef1d5c7be94eed748c17ae55a4de94b8ba165
cd "$GOPATH/src/vuvuzela.io/vuvuzela/cmd/vuvuzela-client"
Basically building vuvuzela-client
now.
go build main.go gui.go conversation.go notify.go alpenhorn.go commands.go connect.go
./main -username [email protected]
You probably could move the executable to pretend you installed vuvuzela as intended:
mv main "$GOPATH/bin/vuvuzela-client"