[Gluster-devel] Building GD2 from glusterd2-v5.0-0-vendor.tar.xz fails on CentOS-7

Kaushal M kshlmster at gmail.com
Tue Oct 30 06:20:41 UTC 2018

On Tue, Oct 30, 2018 at 2:20 AM Niels de Vos <ndevos at redhat.com> wrote:
> Hi,
> not sure what is going wrong when building GD2 for the CentOS Storage
> SIG, but it seems to fail with some golang import issues:
>   https://cbs.centos.org/kojifiles/work/tasks/5141/595141/build.log
>   + cd glusterd2-v5.0-0
>   ++ pwd
>   + export GOPATH=/builddir/build/BUILD/glusterd2-v5.0-0:/usr/share/gocode
>   + GOPATH=/builddir/build/BUILD/glusterd2-v5.0-0:/usr/share/gocode
>   + mkdir -p src/github.com/gluster
>   + ln -s ../../../ src/github.com/gluster/glusterd2
>   + pushd src/github.com/gluster/glusterd2
>   ~/build/BUILD/glusterd2-v5.0-0/src/github.com/gluster/glusterd2 ~/build/BUILD/glusterd2-v5.0-0
>   + /usr/bin/make PREFIX=/usr EXEC_PREFIX=/usr BINDIR=/usr/bin SBINDIR=/usr/sbin DATADIR=/usr/share LOCALSTATEDIR=/var/lib LOGDIR=/var/log SYSCONFDIR=/etc FASTBUILD=off glusterd2
>   Plugins Enabled
>   Building glusterd2 v5.0-0
>   # github.com/gluster/glusterd2/vendor/github.com/coreos/etcd/clientv3
>   vendor/github.com/coreos/etcd/clientv3/client.go:346: cannot use c.tokenCred (type *authTokenCredential) as type credentials.PerRPCCredentials in argument to grpc.WithPerRPCCredentials:
>         *authTokenCredential does not implement credentials.PerRPCCredentials (wrong type for GetRequestMetadata method)
>                 have GetRequestMetadata("context".Context, ...string) (map[string]string, error)
>                 want GetRequestMetadata("github.com/gluster/glusterd2/vendor/golang.org/x/net/context".Context, ...string) (map[string]string, error)
>   vendor/github.com/coreos/etcd/clientv3/client.go:421: cannot use client.balancer (type *healthBalancer) as type grpc.Balancer in argument to grpc.WithBalancer:
>         *healthBalancer does not implement grpc.Balancer (wrong type for Get method)
>                 have Get("context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
>                 want Get("github.com/gluster/glusterd2/vendor/golang.org/x/net/context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
>   vendor/github.com/coreos/etcd/clientv3/retry.go:145: cannot use retryKVClient literal (type *retryKVClient) as type etcdserverpb.KVClient in return argument:
>         *retryKVClient does not implement etcdserverpb.KVClient (wrong type for Compact method)
>                 have Compact("context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
>                 want Compact("github.com/gluster/glusterd2/vendor/golang.org/x/net/context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
>   ...
> Did anyone else try to build this on CentOS-7 (without EPEL)?

This occurs when Go<1.9 is used to build GD2. The updated etcd version
we vendor (etcd 3.3) requires Go>=1.9 to compile.
But the failure here is strange, because CentOS-7 has golang-1.9.4 in
its default repositories.
Don't know what's going wrong here.

> Thanks,
> Niels
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> https://lists.gluster.org/mailman/listinfo/gluster-devel

More information about the Gluster-devel mailing list