-
Notifications
You must be signed in to change notification settings - Fork 159
Closed
Description
Attempting to build the tool from a fresh clone results in several layers of errors which are totally inscrutable to someone only passingly familiar with Go.
$ git clone https://github.com/opencontainers/runtime-tools.git
Cloning into 'runtime-tools'...
remote: Enumerating objects: 6633, done.
remote: Counting objects: 100% (119/119), done.
remote: Compressing objects: 100% (92/92), done.
remote: Total 6633 (delta 26), reused 74 (delta 14), pack-reused 6514
Receiving objects: 100% (6633/6633), 8.83 MiB | 5.08 MiB/s, done.
Resolving deltas: 100% (3193/3193), done.
$ cd runtime-tools/
$ make
go build -tags "" -ldflags "-X main.gitCommit=59cdde06764be8d761db120664020f0415f36045 -X main.version=0.9.0" -o oci-runtime-tool ./cmd/oci-runtime-tool
go: cannot find main module, but found Godeps/Godeps.json in /home/dwg/src/runtime-tools
to create a module there, run:
go mod init
make: *** [Makefile:14: tool] Error 1
So, I try go mod init
$ go mod init
go: creating new go.mod: module github.com/opencontainers/runtime-tools
go: copying requirements from Godeps/Godeps.json
go: to add module requirements and sums:
go mod tidy
$ make
go build -tags "" -ldflags "-X main.gitCommit=59cdde06764be8d761db120664020f0415f36045 -X main.version=0.9.0" -o oci-runtime-tool ./cmd/oci-runtime-tool
go: inconsistent vendoring in /home/dwg/src/runtime-tools:
github.com/blang/semver@v3.5.0+incompatible: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/davecgh/go-spew@v1.1.1-0.20170829195320-a47672248388: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hashicorp/errwrap@v0.0.0-20141028054710-7554cd9344ce: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hashicorp/go-multierror@v1.0.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/mndrix/tap-go@v0.0.0-20171203230836-629fa407e90b: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/mrunalp/fileutils@v0.0.0-20160930181131-4ee1cc9a8058: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/opencontainers/runtime-spec@v1.0.3-0.20201121164853-7413a7f753e1: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/opencontainers/selinux@v1.0.1-0.20190118194646-2d93b96e1a01: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/pmezard/go-difflib@v1.0.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/satori/go.uuid@v1.1.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/sirupsen/logrus@v1.0.2-0.20170713114250-a3f95b5c4235: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/stretchr/testify@v1.1.5-0.20170809224252-890a5c3458b4: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/syndtr/gocapability@v0.0.0-20170704070218-db04d3cc01c8: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/urfave/cli@v1.19.1: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/xeipuuv/gojsonpointer@v0.0.0-20170225233418-6fe8760cad35: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/xeipuuv/gojsonreference@v0.0.0-20150808065054-e02fc20de94c: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/xeipuuv/gojsonschema@v0.0.0-20170528113821-0c8571ac0ce1: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
golang.org/x/sys@v0.0.0-20170407050850-f3918c30c5c2: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
To ignore the vendor directory, use -mod=readonly or -mod=mod.
To sync the vendor directory, run:
go mod vendor
make: *** [Makefile:14: tool] Error 1
So I try go mod vendor,
$ go mod vendor
go: finding module for package gopkg.in/yaml.v2
go: found gopkg.in/yaml.v2 in gopkg.in/yaml.v2 v2.4.0
$ make
go build -tags "" -ldflags "-X main.gitCommit=59cdde06764be8d761db120664020f0415f36045 -X main.version=0.9.0" -o oci-runtime-tool ./cmd/oci-runtime-tool
CGO_ENABLED=0 go build -installsuffix cgo -tags "" -ldflags "-X main.gitCommit=59cdde06764be8d761db120664020f0415f36045 -X main.version=0.9.0" -o runtimetest ./cmd/runtimetest
go build -tags "" -o validation/config_updates_without_affect/config_updates_without_affect.t validation/config_updates_without_affect/config_updates_without_affect.go
go build -tags "" -o validation/create/create.t validation/create/create.go
go build -tags "" -o validation/default/default.t validation/default/default.go
go build -tags "" -o validation/delete/delete.t validation/delete/delete.go
go build -tags "" -o validation/delete_only_create_resources/delete_only_create_resources.t validation/delete_only_create_resources/delete_only_create_resources.go
go build -tags "" -o validation/delete_resources/delete_resources.t validation/delete_resources/delete_resources.go
go build -tags "" -o validation/hooks/hooks.t validation/hooks/hooks.go
go build -tags "" -o validation/hooks_stdin/hooks_stdin.t validation/hooks_stdin/hooks_stdin.go
go build -tags "" -o validation/hostname/hostname.t validation/hostname/hostname.go
go build -tags "" -o validation/kill/kill.t validation/kill/kill.go
go build -tags "" -o validation/kill_no_effect/kill_no_effect.t validation/kill_no_effect/kill_no_effect.go
go build -tags "" -o validation/killsig/killsig.t validation/killsig/killsig.go
go build -tags "" -o validation/linux_cgroups_blkio/linux_cgroups_blkio.t validation/linux_cgroups_blkio/linux_cgroups_blkio.go
go build -tags "" -o validation/linux_cgroups_cpus/linux_cgroups_cpus.t validation/linux_cgroups_cpus/linux_cgroups_cpus.go
go build -tags "" -o validation/linux_cgroups_devices/linux_cgroups_devices.t validation/linux_cgroups_devices/linux_cgroups_devices.go
go build -tags "" -o validation/linux_cgroups_hugetlb/linux_cgroups_hugetlb.t validation/linux_cgroups_hugetlb/linux_cgroups_hugetlb.go
go build -tags "" -o validation/linux_cgroups_memory/linux_cgroups_memory.t validation/linux_cgroups_memory/linux_cgroups_memory.go
go build -tags "" -o validation/linux_cgroups_network/linux_cgroups_network.t validation/linux_cgroups_network/linux_cgroups_network.go
go build -tags "" -o validation/linux_cgroups_pids/linux_cgroups_pids.t validation/linux_cgroups_pids/linux_cgroups_pids.go
go build -tags "" -o validation/linux_cgroups_relative_blkio/linux_cgroups_relative_blkio.t validation/linux_cgroups_relative_blkio/linux_cgroups_relative_blkio.go
go build -tags "" -o validation/linux_cgroups_relative_cpus/linux_cgroups_relative_cpus.t validation/linux_cgroups_relative_cpus/linux_cgroups_relative_cpus.go
go build -tags "" -o validation/linux_cgroups_relative_devices/linux_cgroups_relative_devices.t validation/linux_cgroups_relative_devices/linux_cgroups_relative_devices.go
go build -tags "" -o validation/linux_cgroups_relative_hugetlb/linux_cgroups_relative_hugetlb.t validation/linux_cgroups_relative_hugetlb/linux_cgroups_relative_hugetlb.go
go build -tags "" -o validation/linux_cgroups_relative_memory/linux_cgroups_relative_memory.t validation/linux_cgroups_relative_memory/linux_cgroups_relative_memory.go
go build -tags "" -o validation/linux_cgroups_relative_network/linux_cgroups_relative_network.t validation/linux_cgroups_relative_network/linux_cgroups_relative_network.go
go build -tags "" -o validation/linux_cgroups_relative_pids/linux_cgroups_relative_pids.t validation/linux_cgroups_relative_pids/linux_cgroups_relative_pids.go
go build -tags "" -o validation/linux_devices/linux_devices.t validation/linux_devices/linux_devices.go
go build -tags "" -o validation/linux_masked_paths/linux_masked_paths.t validation/linux_masked_paths/linux_masked_paths.go
go build -tags "" -o validation/linux_mount_label/linux_mount_label.t validation/linux_mount_label/linux_mount_label.go
go build -tags "" -o validation/linux_ns_itype/linux_ns_itype.t validation/linux_ns_itype/linux_ns_itype.go
go build -tags "" -o validation/linux_ns_nopath/linux_ns_nopath.t validation/linux_ns_nopath/linux_ns_nopath.go
go build -tags "" -o validation/linux_ns_path/linux_ns_path.t validation/linux_ns_path/linux_ns_path.go
go build -tags "" -o validation/linux_ns_path_type/linux_ns_path_type.t validation/linux_ns_path_type/linux_ns_path_type.go
go build -tags "" -o validation/linux_process_apparmor_profile/linux_process_apparmor_profile.t validation/linux_process_apparmor_profile/linux_process_apparmor_profile.go
go build -tags "" -o validation/linux_readonly_paths/linux_readonly_paths.t validation/linux_readonly_paths/linux_readonly_paths.go
go build -tags "" -o validation/linux_rootfs_propagation/linux_rootfs_propagation.t validation/linux_rootfs_propagation/linux_rootfs_propagation.go
go build -tags "" -o validation/linux_seccomp/linux_seccomp.t validation/linux_seccomp/linux_seccomp.go
go build -tags "" -o validation/linux_sysctl/linux_sysctl.t validation/linux_sysctl/linux_sysctl.go
go build -tags "" -o validation/linux_uid_mappings/linux_uid_mappings.t validation/linux_uid_mappings/linux_uid_mappings.go
go build -tags "" -o validation/misc_props/misc_props.t validation/misc_props/misc_props.go
go build -tags "" -o validation/mounts/mounts.t validation/mounts/mounts.go
go build -tags "" -o validation/pidfile/pidfile.t validation/pidfile/pidfile.go
go build -tags "" -o validation/poststart/poststart.t validation/poststart/poststart.go
go build -tags "" -o validation/poststart_fail/poststart_fail.t validation/poststart_fail/poststart_fail.go
go build -tags "" -o validation/poststop/poststop.t validation/poststop/poststop.go
go build -tags "" -o validation/poststop_fail/poststop_fail.t validation/poststop_fail/poststop_fail.go
go build -tags "" -o validation/prestart/prestart.t validation/prestart/prestart.go
go build -tags "" -o validation/prestart_fail/prestart_fail.t validation/prestart_fail/prestart_fail.go
go build -tags "" -o validation/process/process.t validation/process/process.go
go build -tags "" -o validation/process_capabilities/process_capabilities.t validation/process_capabilities/process_capabilities.go
go build -tags "" -o validation/process_capabilities_fail/process_capabilities_fail.t validation/process_capabilities_fail/process_capabilities_fail.go
go build -tags "" -o validation/process_oom_score_adj/process_oom_score_adj.t validation/process_oom_score_adj/process_oom_score_adj.go
go build -tags "" -o validation/process_rlimits/process_rlimits.t validation/process_rlimits/process_rlimits.go
go build -tags "" -o validation/process_rlimits_fail/process_rlimits_fail.t validation/process_rlimits_fail/process_rlimits_fail.go
go build -tags "" -o validation/process_user/process_user.t validation/process_user/process_user.go
go build -tags "" -o validation/root_readonly_true/root_readonly_true.t validation/root_readonly_true/root_readonly_true.go
go build -tags "" -o validation/start/start.t validation/start/start.go
go build -tags "" -o validation/state/state.t validation/state/state.go
So now it finally builds, but it has made a pile of unexpected changes to my working tree:
$ git ls-files -m
vendor/github.com/hashicorp/errwrap/README.md
vendor/github.com/mndrix/tap-go/gopath/src/github.com/mndrix/tap-go
vendor/github.com/stretchr/testify/LICENCE.txt
vendor/github.com/urfave/cli/generate-flag-types
vendor/github.com/urfave/cli/runtests
vendor/github.com/xeipuuv/gojsonschema/json_schema_test_suite/LICENSE
vendor/golang.org/x/sys/unix/mkall.sh
vendor/golang.org/x/sys/unix/mkerrors.sh
vendor/golang.org/x/sys/unix/mkpost.go
vendor/golang.org/x/sys/unix/mksyscall.pl
vendor/golang.org/x/sys/unix/mksyscall_solaris.pl
vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl
vendor/golang.org/x/sys/unix/mksysnum_darwin.pl
vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl
vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl
vendor/golang.org/x/sys/unix/mksysnum_linux.pl
vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl
vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl
vendor/golang.org/x/sys/unix/types_darwin.go
vendor/golang.org/x/sys/unix/types_dragonfly.go
vendor/golang.org/x/sys/unix/types_freebsd.go
vendor/golang.org/x/sys/unix/types_linux.go
vendor/golang.org/x/sys/unix/types_netbsd.go
vendor/golang.org/x/sys/unix/types_openbsd.go
vendor/golang.org/x/sys/unix/types_solaris.go
vendor/gopkg.in/yaml.v2/.travis.yml
vendor/gopkg.in/yaml.v2/apic.go
vendor/gopkg.in/yaml.v2/go.mod
vendor/gopkg.in/yaml.v2/yaml.go
There's not much point having a Makefile, if it doesn't actually make the project from scratch. There also aren't useful build instructions in the README.
Metadata
Metadata
Assignees
Labels
No labels