Unable to build packer from source with gccgo

Bug #1436439 reported by bugproxy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gccgo-5 (Ubuntu)
New
Undecided
Unassigned

Bug Description

---Problem Description---
Unable to build packer (https://github.com/mitchellh/packer) from source following the instructions at https://github.com/mitchellh/packer#developing-packer using stock Canonical gccgo (go version go1.4.2 gccgo (Ubuntu 5-20150309-1ubuntu3) 5.0.0 20150310 (experimental) [trunk revision 221296] linux/ppc64le)

OSUOSL would like to use packer to help standardize cloud images for their public cloud environment.

---uname output---
Linux mongodb 3.19.0-9-generic #9-Ubuntu SMP Wed Mar 11 17:50:43 UTC 2015 ppc64le ppc64le ppc64le GNU/Linux

Machine Type = P8 KVM guest

---Steps to Reproduce---

I believe there are actually (at least) two defects here.

1) go get ./... (used to get all the many dependencies of packer) fails to do anything with gccgo, e.g. on the first step:

go get -u github.com/mitchellh/gox

gocode/src/github.com/mitchellh/gox/toolchain.go:6:29: error: import file ?github.com/mitchellh/iochan? not found
  "github.com/mitchellh/iochan"

2) One can manually go get <...> each package, as `make` fails, but then a few tests fail (from memory, github.com/mitchellh/packer/plugin/builder-vmware-vmx, and one more).

Attempting the same steps with golang built from source (latest git tree) succeeds (go version devel +41dbcc1 Tue Mar 17 17:33:21 2015 +0000 linux/ppc64le)

> > ---Steps to Reproduce---
> >
> > I believe there are actually (at least) two defects here.
> >
> > 1) go get ./... (used to get all the many dependencies of packer) fails to
> > do anything with gccgo, e.g. on the first step:
> >
> > go get -u github.com/mitchellh/gox
> >
> > gocode/src/github.com/mitchellh/gox/toolchain.go:6:29: error: import file
> > ?github.com/mitchellh/iochan? not found
> > "github.com/mitchellh/iochan"
> >
> >
> > 2) One can manually go get <...> each package, as `make` fails, but then a
> > few tests fail (from memory,
>
> Does this mean you were able to build what you wanted, but had to do manual
> steps? (I'm trying to understand what you mean by "as `make` fails".)

So once you can't do `go get` recursively as expected, you can run `make`. It will fail for each recursive dependency it needs, as it encounters them in the build. You can then manually `go get` them and run `make` again. It will fail again, possibly at a new location. Sometimes the `go get` will fail as well due to a recursive dependency it doesn't know how to satisfy. In which case another manual `go get` is needed before the first can be completed.

But yes, eventually, after doing these manual `go get`, it built but the tests failed.

  go get code.google.com/p/go.crypto/ssh
  go get code.google.com/p/google-api-go-client/compute/v1
  go get code.google.com/p/gosshold/ssh
  go get github.com/ActiveState/tail
  go get github.com/going/toolkit/xmlpath
  go get github.com/golang/protobuf/proto
  go get github.com/hashicorp/atlas-go/archive
  go get github.com/hashicorp/go-checkpoint
  go get github.com/hashicorp/go-msgpack/codec
  go get github.com/hashicorp/go-version
  go get github.com/hashicorp/yamux
  go get github.com/howeyc/fsnotify
  go get github.com/mitchellh/cli
  go get github.com/mitchellh/goamz/aws
  go get github.com/mitchellh/go-fs
  go get github.com/mitchellh/gophercloud-fork-40444fb
  go get github.com/mitchellh/gophercloud-fork-40444fb 2>&1 | less
  go get github.com/mitchellh/go-vnc
  go get github.com/mitchellh/iochan
  go get github.com/mitchellh/mapstructure
  go get github.com/mitchellh/multistep
  go get github.com/mitchellh/osext
  go get github.com/mitchellh/panicwrap
  go get github.com/mitchellh/prefixedio
  go get github.com/racker/perigee
  go get github.com/rasa/oauth2-fork-b3f9a68
  go get github.com/vaughan0/go-ini
  go get golang.org/x/net/context
  go get google.golang.org/appengine
  go get gopkg.in/tomb.v1

> > github.com/mitchellh/packer/plugin/builder-vmware-vmx, and one more).
> >
>
> Can you provide information on the test failures so I know exactly what
> problem you are describing.

Attaching. These same tests succeed with golang from source.

There are two problems here.

One is in the 'go' tool and how it determines dependencies with gccgo. I can see the problem, just trying to understand how best to fix it.

The other is a testcase failure in the gccgo built program.

I will work on getting the fix to the go tool in first.

> What directory did you run this from?

That is the output of `make` run in $GOPATH/src/github.com/mitchellh/packer

A gcc bugzilla has been opened for the 'go get' issue https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65462.

Fix has been integrated into gcc trunk for the 'go get' issue as commit id 221643.

I will look into the testcase failures.

Revision history for this message
bugproxy (bugproxy) wrote : Packer build log

Default Comment by Bridge

tags: added: architecture-ppc64le bugnameltc-122867 severity-critical targetmilestone-inin---
Luciano Chavez (lnx1138)
affects: ubuntu → gcc-defaults (Ubuntu)
bugproxy (bugproxy)
tags: added: targetmilestone-inin1504
removed: targetmilestone-inin---
Matthias Klose (doko)
affects: gcc-defaults (Ubuntu) → gccgo-5 (Ubuntu)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.