skopeo builds fail on ppc64 with ... + export GOPATH=/builddir/build/BUILD/skopeo-550a480173090c9b94ac3bce48953b338fa92e94:/builddir/build/BUILD/skopeo-550a480173090c9b94ac3bce48953b338fa92e94/vendor:/usr/share/gocode + GOPATH=/builddir/build/BUILD/skopeo-550a480173090c9b94ac3bce48953b338fa92e94:/builddir/build/BUILD/skopeo-550a480173090c9b94ac3bce48953b338fa92e94/vendor:/usr/share/gocode + make binary-local docs go build -ldflags "-X main.gitCommit=363a82115758b45d0355459d426659b855d5383b" -gcflags "" -o skopeo ./cmd/skopeo # github.com/containers/image/signature vendor/src/github.com/containers/image/signature/mechanism.go:28: undefined: gpgme.Context Makefile:50: recipe for target 'binary-local' failed make: *** [binary-local] Error 2 I've discussed the issue with our golang maintainer and the reason should be a deficiency of golang on ppc64 when interfacing the native libraries. Solution would be to drop ppc64 from ExclusiveArch tag list. There is also a docker <-> skopeo dependency in the distro and dropping ppc64 here will only help, because even is docker is built on ppc64le only. Version-Release number of selected component (if applicable): skopeo-0.1.14-4.git550a480.fc25 golang-1.7.1-2.fc25.ppc64
Proposed as a Freeze Exception for 25-final by Fedora user sharkcz using the blocker tracking app because: The missing ppc64le build of skopeo breaks deps in the ppc64le F-25 server compose.
Miloslav do you know why that's failing?(seems related to gpgme) If gpgme could be fixed I won't just drop ppc64
Antonio, I was told it's a golang issue, not gpgme. And dropping ppc64 causes no harm to us. btw, we need something like diff --git a/skopeo.spec b/skopeo.spec index d2b7c83..8354b3b 100644 --- a/skopeo.spec +++ b/skopeo.spec @@ -40,7 +40,9 @@ Patch0: skopeo-go142.patch %endif # e.g. el6 has ppc64 arch without gcc-go, so EA tag is required -ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}} +#ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}} +# manually listed arches due https://bugzilla.redhat.com/show_bug.cgi?id=1391932 (removed ppc64) +ExclusiveArch: %{?go_arches:%{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}}%{!?go_arches:%{ix86} x86_64 %{arm}} %if 0%{?fedora} BuildRequires: go-srpm-macros BuildRequires: compiler(go-compiler)
(In reply to Antonio Murdaca from comment #2) > Miloslav do you know why that's failing?(seems related to gpgme) > > If gpgme could be fixed I won't just drop ppc64 It is caused by lack of support of Cgo and external linking in golang on ppc64. I hope that I'm not wrong here as it is long time since I have been playing with those on BE and they were not working/supported(thus they are disabled by default in Fedora's golang).
for the record [sharkcz@tyan-openpower-01 skopeo-550a480173090c9b94ac3bce48953b338fa92e94]$ export CGO_ENABLED=1 [sharkcz@tyan-openpower-01 skopeo-550a480173090c9b94ac3bce48953b338fa92e94]$ go build -v -ldflags "-X main.gitCommit=116756e71d47e30100d963e1a24fe0a9b8eddfe8" -gcflags "" -o skopeo ./cmd/skopeo github.com/docker/engine-api/types/network github.com/Sirupsen/logrus github.com/opencontainers/image-spec/specs-go github.com/containers/image/directory/explicitfilepath github.com/docker/distribution/digest github.com/docker/distribution/uuid golang.org/x/net/context github.com/opencontainers/runc/libcontainer/user gopkg.in/yaml.v2 github.com/docker/engine-api/types/strslice github.com/docker/go-units github.com/docker/engine-api/types/blkiodev github.com/docker/engine-api/types/versions github.com/docker/engine-api/types/swarm runtime/cgo github.com/docker/engine-api/types/time github.com/containers/image/version github.com/imdario/mergo k8s.io/kubernetes/pkg/util/errors k8s.io/kubernetes/pkg/util/homedir k8s.io/kubernetes/pkg/util/sets gopkg.in/cheggaaa/pb.v1 github.com/projectatomic/skopeo/version github.com/urfave/cli github.com/opencontainers/image-spec/specs-go/v1 github.com/docker/engine-api/types/filters github.com/docker/docker/pkg/homedir github.com/docker/distribution/reference github.com/containers/image/docker/reference github.com/docker/engine-api/types/reference github.com/containers/image/docker/policyconfiguration github.com/containers/image/types os/user net github.com/mtrmac/gpgme github.com/ghodss/yaml github.com/golang/glog net/http/httptrace net/textproto github.com/docker/engine-api/types/registry crypto/x509 golang.org/x/net/proxy github.com/docker/go-connections/nat github.com/docker/engine-api/types/container mime/multipart github.com/docker/engine-api/types crypto/tls github.com/docker/libtrust net/http github.com/docker/go-connections/tlsconfig github.com/containers/image/manifest github.com/containers/image/image github.com/containers/image/oci/layout github.com/containers/image/directory github.com/gorilla/context github.com/docker/distribution/registry/client/transport k8s.io/kubernetes/pkg/util/net github.com/docker/distribution/registry/api/errcode github.com/docker/go-connections/sockets net/http/httputil github.com/gorilla/mux github.com/docker/engine-api/client/transport github.com/docker/distribution/context github.com/docker/distribution/registry/api/v2 github.com/docker/engine-api/client/transport/cancellable github.com/docker/engine-api/client github.com/docker/distribution github.com/docker/distribution/registry/storage/cache github.com/docker/distribution/registry/storage/cache/memory github.com/docker/distribution/registry/client github.com/containers/image/docker/daemon github.com/containers/image/docker github.com/containers/image/openshift github.com/containers/image/transports github.com/containers/image/signature github.com/containers/image/copy _/home/sharkcz/skopeo/skopeo-550a480173090c9b94ac3bce48953b338fa92e94/cmd/skopeo # _/home/sharkcz/skopeo/skopeo-550a480173090c9b94ac3bce48953b338fa92e94/cmd/skopeo /usr/lib/golang/pkg/tool/linux_ppc64/link: $WORK/_/home/sharkcz/skopeo/skopeo-550a480173090c9b94ac3bce48953b338fa92e94/cmd/skopeo.a(_go_.o): cannot use dynamic imports with -d flag /usr/lib/golang/pkg/tool/linux_ppc64/link: $WORK/runtime/cgo.a(_go_.o): cannot use dynamic imports with -d flag /usr/lib/golang/pkg/tool/linux_ppc64/link: $WORK/github.com/mtrmac/gpgme.a(_go_.o): cannot use dynamic imports with -d flag /usr/lib/golang/pkg/tool/linux_ppc64/link: $WORK/net.a(_go_.o): cannot use dynamic imports with -d flag /usr/lib/golang/pkg/tool/linux_ppc64/link: $WORK/os/user.a(_go_.o): cannot use dynamic imports with -d flag
(In reply to Jakub Čajka from comment #4) > (In reply to Antonio Murdaca from comment #2) > > Miloslav do you know why that's failing?(seems related to gpgme) > > > > If gpgme could be fixed I won't just drop ppc64 > > It is caused by lack of support of Cgo and external linking in golang on > ppc64. > I hope that I'm not wrong here as it is long time since I have been playing > with those on BE and they were not working/supported(thus they are disabled > by default in Fedora's golang). Going to build new golang with Cgo and external linking enabled on ppc64, stay tuned ...
(In reply to Dan Horák from comment #6) > (In reply to Jakub Čajka from comment #4) > > (In reply to Antonio Murdaca from comment #2) > > > Miloslav do you know why that's failing?(seems related to gpgme) > > > > > > If gpgme could be fixed I won't just drop ppc64 > > > > It is caused by lack of support of Cgo and external linking in golang on > > ppc64. > > I hope that I'm not wrong here as it is long time since I have been playing > > with those on BE and they were not working/supported(thus they are disabled > > by default in Fedora's golang). > > Going to build new golang with Cgo and external linking enabled on ppc64, > stay tuned ... Does that mean I should hold updating skopeo to fix this BZ?
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=3859365 is golang rebuilt with diff --git a/golang.spec b/golang.spec index 4e30243..34387a2 100644 --- a/golang.spec +++ b/golang.spec @@ -27,14 +27,14 @@ # Golang build options. # Build golang using external/internal(close to cgo disabled) linking. -%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x +%ifarch %{ix86} x86_64 ppc64 ppc64le %{arm} aarch64 s390x %global external_linker 1 %else %global external_linker 0 %endif # Build golang with cgo enabled/disabled(later equals more or less to internal linking). -%ifarch %{ix86} x86_64 ppc64le %{arm} aarch64 s390x +%ifarch %{ix86} x86_64 ppc64 ppc64le %{arm} aarch64 s390x %global cgo_enabled 1 %else %global cgo_enabled 0 and there is no change, either "undefined: gpgme.Context" with defaults, and the "cannot use dynamic imports with -d flag" message when CGO_ENABLED=1 is set. Antonio, please drop ppc64 from the arch list until there is some progress on the golang front.
skopeo-0.1.14-5.git550a480.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-ed611fb9ab
skopeo-0.1.14-5.git550a480.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-ed611fb9ab
Everything depending on skopeo (including docker) is failing the dependency check on ppc64. Is that expected?
Discussed during the 2016-11-07 blocker review meeting: [1] The decision to delay the classification of this as an AcceptedFreezeException was made as we are unsure of all the details surrounding this one; we will look into the issue and get back to this bug at the next Blocker-Review-Meeting. [1] https://meetbot.fedoraproject.org/fedora-blocker-review/2016-11-07/f25-blocker-review.2016-11-07-17.01.txt
(In reply to Geoffrey Marr from comment #12) > Discussed during the 2016-11-07 blocker review meeting: [1] > > The decision to delay the classification of this as an > AcceptedFreezeException was made as we are unsure of all the details > surrounding this one; we will look into the issue and get back to this bug > at the next Blocker-Review-Meeting. > > [1] > https://meetbot.fedoraproject.org/fedora-blocker-review/2016-11-07/f25- > blocker-review.2016-11-07-17.01.txt As confirmed with the latest pc64le compose the skopeo-0.1.14-5.git550a480.fc25 build is required for successful Server compose for F-25 ppc64le. The only change between -4 (that's in f25 now) and -5 is omitting ppc64 as a build arch for skopeo.
(In reply to Dan Horák from comment #13) > (In reply to Geoffrey Marr from comment #12) > > Discussed during the 2016-11-07 blocker review meeting: [1] > > > > The decision to delay the classification of this as an > > AcceptedFreezeException was made as we are unsure of all the details > > surrounding this one; we will look into the issue and get back to this bug > > at the next Blocker-Review-Meeting. > > > > [1] > > https://meetbot.fedoraproject.org/fedora-blocker-review/2016-11-07/f25- > > blocker-review.2016-11-07-17.01.txt > > As confirmed with the latest pc64le compose the > skopeo-0.1.14-5.git550a480.fc25 build is required for successful Server > compose for F-25 ppc64le. The only change between -4 (that's in f25 now) and > -5 is omitting ppc64 as a build arch for skopeo. There is a docker-anaconda-addon -> docker -> skopeo-containers depency chain.
+1 FE since it prevents creation of non-blocking media.
skopeo-0.1.14-5.git550a480.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.
f25 update is https://bodhi.fedoraproject.org/updates/FEDORA-2016-5b67a15de6
I'm also +1 FE.
+1 FE, marking as accepted.
Closing F-25 bug.