soheilhy/cmux

cmux fails to compile, what are the correct libs/versions for usage ?

thomasmodeneis opened this issue · 3 comments

Hi,

I can't find the precise libs and respective versions required to run this project, so I've saved a godeps package with my current ones.

However when I run the tests, I'm facing the following compilation problems.
Could you advise me, what are the proper libs I should have installed in order to by pass this ?

Cheers.

$ godep go test
# cmux/vendor/google.golang.org/grpc/transport
vendor/google.golang.org/grpc/transport/http2_client.go:840: undefined: http2.MetaHeadersFrame
vendor/google.golang.org/grpc/transport/http2_client.go:943: undefined: http2.MetaHeadersFrame
vendor/google.golang.org/grpc/transport/http2_server.go:145: undefined: http2.MetaHeadersFrame
vendor/google.golang.org/grpc/transport/http2_server.go:281: undefined: http2.MetaHeadersFrame
vendor/google.golang.org/grpc/transport/http_util.go:382: f.fr.ReadMetaHeaders undefined (type *http2.Framer has no field or method ReadMetaHeaders)
vendor/google.golang.org/grpc/transport/http_util.go:512: f.fr.ErrorDetail undefined (type *http2.Framer has no field or method ErrorDetail)
FAIL    cmux [build failed]
godep: go exit status 2

This is the godeps I've got after git clone from master and run godep save:

{
	"ImportPath": "cmux",
	"GoVersion": "go1.7",
	"GodepVersion": "v74",
	"Deps": [
		{
			"ImportPath": "github.com/golang/protobuf/proto",
			"Rev": "7cc19b78d562895b13596ddce7aafb59dd789318"
		},
		{
			"ImportPath": "github.com/soheilhy/cmux",
			"Comment": "v0.1.2",
			"Rev": "bf4a8ede9e87c006fe1d4278c6c7f2b8be1fa84c"
		},
		{
			"ImportPath": "golang.org/x/net/context",
			"Rev": "cbbbe2bc0f2efdd2afb318d93f1eadb19350e4a3"
		},
		{
			"ImportPath": "golang.org/x/net/http2",
			"Rev": "cbbbe2bc0f2efdd2afb318d93f1eadb19350e4a3"
		},
		{
			"ImportPath": "golang.org/x/net/http2/hpack",
			"Rev": "cbbbe2bc0f2efdd2afb318d93f1eadb19350e4a3"
		},
		{
			"ImportPath": "golang.org/x/net/internal/timeseries",
			"Rev": "cbbbe2bc0f2efdd2afb318d93f1eadb19350e4a3"
		},
		{
			"ImportPath": "golang.org/x/net/trace",
			"Rev": "cbbbe2bc0f2efdd2afb318d93f1eadb19350e4a3"
		},
		{
			"ImportPath": "golang.org/x/net/websocket",
			"Rev": "cbbbe2bc0f2efdd2afb318d93f1eadb19350e4a3"
		},
		{
			"ImportPath": "google.golang.org/grpc",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/codes",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/credentials",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/examples/helloworld/helloworld",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/grpclog",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/internal",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/metadata",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/naming",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/peer",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		},
		{
			"ImportPath": "google.golang.org/grpc/transport",
			"Comment": "v1.0.2-30-g9eaed1a",
			"Rev": "9eaed1a74af580b44448989c8ed830bc210bddf4"
		}
	]
}

I think this is a dup of: grpc/grpc-go#581

What happens if you update your vendored copy of the grpc?

Yep, that fixed it.
Would it be nice to warn users about the minimum required version or the recommended versions ? Maybe share a godeps file or something with Glide ?

This is the godeps file with the "working" versions:

{
    "ImportPath": "cmux",
    "GoVersion": "go1.7",
    "GodepVersion": "v74",
    "Deps": [
        {
            "ImportPath": "github.com/golang/protobuf/proto",
            "Rev": "8ee79997227bf9b34611aee7946ae64735e6fd93"
        },
        {
            "ImportPath": "github.com/soheilhy/cmux",
            "Comment": "v0.1.2",
            "Rev": "bf4a8ede9e87c006fe1d4278c6c7f2b8be1fa84c"
        },
        {
            "ImportPath": "golang.org/x/net/context",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "golang.org/x/net/http2",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "golang.org/x/net/http2/hpack",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "golang.org/x/net/idna",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "golang.org/x/net/internal/timeseries",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "golang.org/x/net/lex/httplex",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "golang.org/x/net/trace",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "golang.org/x/net/websocket",
            "Rev": "4971afdc2f162e82d185353533d3cf16188a9f4e"
        },
        {
            "ImportPath": "google.golang.org/grpc",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/codes",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/credentials",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/examples/helloworld/helloworld",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/grpclog",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/internal",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/metadata",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/naming",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/peer",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/stats",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/tap",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        },
        {
            "ImportPath": "google.golang.org/grpc/transport",
            "Comment": "v1.0.4-59-gb13ef79",
            "Rev": "b13ef794997191ec801db90a42c50034df91850a"
        }
    ]
}

Cheers.

Thanks for the confirmation. I don't think this has anything to do with cmux. That's natural when you vendor your dependencies.