alpenhorn icon indicating copy to clipboard operation
alpenhorn copied to clipboard

Error when trying to install vuvuzela-client

Open theAkito opened this issue 5 years ago • 0 comments

$ 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"

theAkito avatar Jul 11 '19 01:07 theAkito