diff --git a/cmd/moby/output.go b/cmd/moby/output.go index f5d5d8625..d4b48f2c2 100644 --- a/cmd/moby/output.go +++ b/cmd/moby/output.go @@ -8,7 +8,7 @@ import ( "os" log "github.com/Sirupsen/logrus" - "github.com/linuxkit/linuxkit/src/initrd" + "github.com/moby/tool/src/initrd" ) const ( diff --git a/src/initrd/initrd.go b/src/initrd/initrd.go index 6d83e6728..5f6dadc45 100644 --- a/src/initrd/initrd.go +++ b/src/initrd/initrd.go @@ -8,7 +8,7 @@ import ( "io" "io/ioutil" - "github.com/linuxkit/linuxkit/src/pad4" + "github.com/moby/tool/src/pad4" "github.com/surma/gocpio" ) diff --git a/vendor.conf b/vendor.conf index 40f61f9b6..c8061cb12 100644 --- a/vendor.conf +++ b/vendor.conf @@ -9,7 +9,6 @@ github.com/docker/go-units 651fc226e7441360384da338d0fd37f2440ffbe3 github.com/docker/libtrust 9cbd2a1374f46905c68a4eb3694a130610adc62a github.com/docker/notary v0.4.2 github.com/gorilla/mux 4c1c3952b7d9d0a061a3fa7b36fd373ba0398ebc -github.com/linuxkit/linuxkit ad8a4cad1f45a08f7dbc0ab02f28be31f767f1fd github.com/mattn/go-shellwords 02e3cf038dcea8290e44424da473dd12be796a8a github.com/Nvveen/Gotty cd527374f1e5bff4938207604a14f2e38a9cf512 github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb diff --git a/vendor/github.com/linuxkit/linuxkit/LICENSE b/vendor/github.com/linuxkit/linuxkit/LICENSE deleted file mode 100644 index 2eda16c9c..000000000 --- a/vendor/github.com/linuxkit/linuxkit/LICENSE +++ /dev/null @@ -1,191 +0,0 @@ - - Apache License - Version 2.0, January 2004 - https://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2015-2017 Docker, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/github.com/linuxkit/linuxkit/NOTICE b/vendor/github.com/linuxkit/linuxkit/NOTICE deleted file mode 100644 index 516c4ccb1..000000000 --- a/vendor/github.com/linuxkit/linuxkit/NOTICE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright 2015-2017 Docker, Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - https://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/vendor/github.com/linuxkit/linuxkit/README.md b/vendor/github.com/linuxkit/linuxkit/README.md deleted file mode 100644 index 9fb50bd88..000000000 --- a/vendor/github.com/linuxkit/linuxkit/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# LinuxKit - -LinuxKit, a toolkit for building custom minimal, immutable Linux distributions. - -- Secure defaults without compromising usability -- Everything is replaceable and customisable -- Immutable infrastructure applied to building Linux distributions -- Completely stateless, but persistent storage can be attached -- Easy tooling, with easy iteration -- Built with containers, for running containers -- Designed for building and running clustered applications, including but not limited to container orchestration such as Docker or Kubernetes -- Designed from the experience of building Docker Editions, but redesigned as a general-purpose toolkit -- Designed to be managed by external tooling, such as [Infrakit](https://github.com/docker/infrakit) or similar tools -- Includes a set of longer-term collaborative projects in various stages of development to innovate on kernel and userspace changes, particularly around security - -## Getting Started - -### Build the `moby` and `linuxkit` tools - -LinuxKit uses the `moby` tool for image builds, and the `linuxkit` tool for pushing and running VM images. - -Simple build instructions: use `make` to build. This will build the tools in `bin/`. Add this -to your `PATH` or copy it to somewhere in your `PATH` eg `sudo cp bin/* /usr/local/bin/`. Or you can use `sudo make install`. - -If you already have `go` installed you can use `go get -u github.com/moby/tool/cmd/moby` to install -the `moby` build tool, and `go get -u github.com/linuxkit/linuxkit/src/cmd/linuxkit` to install the `linuxkit` tool. - -Once you have built the tool, use `moby build linuxkit.yml` to build the example configuration, -and `linuxkit run linuxkit` to run locally. Use `halt` to terminate on the console. - -Build requirements: -- GNU `make` -- GNU or BSD `tar` (not `busybox` `tar`) -- Docker - -### Booting and Testing - -You can use `linuxkit run ` to execute the image you created with `moby build .yml`. -This will use a suitable backend for your platform or you can choose one, for example VMWare. -See `linuxkit run --help`. - -`make test` or `make test-hyperkit` will run the test suite - -Additional, platform specific information is available for: -- [macOS](docs/mac.md) -- [Google Cloud](docs/gcp.md) - -We'll add more detailed docs for other platforms in the future. - -## Building your own customised image - -To customise, copy or modify the [`linuxkit.yml`](linuxkit.yml) to your own `file.yml` or use one of the [examples](examples/) and then run `moby build file.yml` to -generate its specified output. You can run the output with `linuxkit run file`. - -The yaml file specifies a kernel and base init system, a set of containers that are built into the generated image and started at boot time. It also specifies what -formats to output, such as bootable ISOs and images for various platforms. - -### Yaml Specification - -The yaml format specifies the image to be built: - -- `kernel` specifies a kernel Docker image, containing a kernel and a filesystem tarball, eg containing modules. The example kernels are built from `kernel/` -- `init` is the base `init` process Docker image, which is unpacked as the base system, containing `init`, `containerd`, `runc` and a few tools. Built from `pkg/init/` -- `onboot` are the system containers, executed sequentially in order. They should terminate quickly when done. -- `services` is the system services, which normally run for the whole time the system is up -- `files` are additional files to add to the image -- `outputs` are descriptions of what to build, such as ISOs. - -For a more detailed overview of the options see [yaml documentation](docs/yaml.md). - -## Architecture and security - -There is an [overview of the architecture](docs/architecture.md) covering how the system works. - -There is an [overview of the security considerations and direction](docs/security.md) covering the security design of the system. - -## Roadmap - -This project was extensively reworked from the code we are shipping in Docker Editions, and the result is not yet production quality. The plan is to return to production -quality during Q2 2017, and rebase the Docker Editions on this open source project. - -This is an open project without fixed judgements, open to the community to set the direction. The guiding principles are: -- Security informs design -- Infrastructure as code: immutable, manageable with code -- Sensible, secure, and well-tested defaults -- An open, pluggable platform for diverse use cases -- Easy to use and participate in the project -- Built with containers, for portability and reproducibility -- Run with system containers, for isolation and extensibility -- A base for robust products - -## Development reports - -There are weekly [development reports](reports/) summarizing work carried out in the week. - -## FAQ - -See [FAQ](docs/faq.md). - -Released under the [Apache 2.0 license](LICENSE). diff --git a/vendor/github.com/linuxkit/linuxkit/projects/README.md b/vendor/github.com/linuxkit/linuxkit/projects/README.md deleted file mode 100644 index 04792888b..000000000 --- a/vendor/github.com/linuxkit/linuxkit/projects/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# Projects - -We aim to provide a set of open spaces for collaboration to help move projects towards production. Projects should usually -at a minimum provide a `README` of how to get started using the project with Moby, and a roadmap document explaining what -the aims are and how to contribute. Most projects will probably provide a way to run the project in a custom Moby build -in its current state, which ideally will be integrated in the Moby CI so there are checks that it builds and runs. Over -time we hope that many projects will graduate into the recommended production defaults, but other projects may remain as -ongoing projects, such as kernel hardening. - -If you want to create a project, please submit a pull request to create a new directory here. - -## Current projects -- [Kernel Self Protection Project enhancements](kspp/) -- [Mirage SDK](miragesdk/) privilege separation for userspace services -- [Wireguard](wireguard/) cryptographic enforced container network separation -- [OKernel](okernel/) intra-kernel protection using EPT (HPE) -- [eBPF](ebpf/) iovisor eBPF tools -- [AWS](aws/) AWS build support -- [Swarmd](swarmd) Standalone swarmkit based orchestrator -- [Landlock LSM](landlock/) programmatic access control -- [Clear Containers](clear-containers/) Clear Containers image -- [Logging](logging/) Experimental logging tools -- [etcd cluster](etcd/) etcd cluster demo from DockerCon'17 - -## Current projects not yet documented -- VMWare support (VMWare) -- ARM port and secure boot integration (ARM) diff --git a/vendor/github.com/linuxkit/linuxkit/projects/ebpf/ebpf.build/cdefs.h b/vendor/github.com/linuxkit/linuxkit/projects/ebpf/ebpf.build/cdefs.h deleted file mode 100644 index 8ec977083..000000000 --- a/vendor/github.com/linuxkit/linuxkit/projects/ebpf/ebpf.build/cdefs.h +++ /dev/null @@ -1,628 +0,0 @@ -/* $NetBSD: cdefs.h,v 1.129 2016/12/27 21:52:01 christos Exp $ */ - -/* * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Berkeley Software Design, Inc. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)cdefs.h 8.8 (Berkeley) 1/9/95 - */ - -#ifndef _SYS_CDEFS_H_ -#define _SYS_CDEFS_H_ - -#ifdef _KERNEL_OPT -#include "opt_diagnostic.h" -#endif - -/* - * Macro to test if we're using a GNU C compiler of a specific vintage - * or later, for e.g. features that appeared in a particular version - * of GNU C. Usage: - * - * #if __GNUC_PREREQ__(major, minor) - * ...cool feature... - * #else - * ...delete feature... - * #endif - */ -#ifdef __GNUC__ -#define __GNUC_PREREQ__(x, y) \ - ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || \ - (__GNUC__ > (x))) -#else -#define __GNUC_PREREQ__(x, y) 0 -#endif - -#ifdef __GNUC__ -#define __strict_weak_alias(alias,sym) \ - __unused static __typeof__(alias) *__weak_alias_##alias = &sym; \ - __weak_alias(alias,sym) -#else -#define __strict_weak_alias(alias,sym) __weak_alias(alias,sym) -#endif - -/* - * Optional marker for size-optimised MD calling convention. - */ -#ifndef __compactcall -#define __compactcall -#endif - -/* - * The __CONCAT macro is used to concatenate parts of symbol names, e.g. - * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. - * The __CONCAT macro is a bit tricky -- make sure you don't put spaces - * in between its arguments. __CONCAT can also concatenate double-quoted - * strings produced by the __STRING macro, but this only works with ANSI C. - */ - -#define ___STRING(x) __STRING(x) -#define ___CONCAT(x,y) __CONCAT(x,y) - -#if __STDC__ || defined(__cplusplus) -#define __P(protos) protos /* full-blown ANSI C */ -#define __CONCAT(x,y) x ## y -#define __STRING(x) #x - -#define __const const /* define reserved names to standard */ -#define __signed signed -#define __volatile volatile -#if defined(__cplusplus) || defined(__PCC__) -#define __inline inline /* convert to C++/C99 keyword */ -#else -#if !defined(__GNUC__) && !defined(__lint__) -#define __inline /* delete GCC keyword */ -#endif /* !__GNUC__ && !__lint__ */ -#endif /* !__cplusplus */ - -#else /* !(__STDC__ || __cplusplus) */ -#define __P(protos) () /* traditional C preprocessor */ -#define __CONCAT(x,y) x/**/y -#define __STRING(x) "x" - -#ifndef __GNUC__ -#define __const /* delete pseudo-ANSI C keywords */ -#define __inline -#define __signed -#define __volatile -#endif /* !__GNUC__ */ - -/* - * In non-ANSI C environments, new programs will want ANSI-only C keywords - * deleted from the program and old programs will want them left alone. - * Programs using the ANSI C keywords const, inline etc. as normal - * identifiers should define -DNO_ANSI_KEYWORDS. - */ -#ifndef NO_ANSI_KEYWORDS -#define const __const /* convert ANSI C keywords */ -#define inline __inline -#define signed __signed -#define volatile __volatile -#endif /* !NO_ANSI_KEYWORDS */ -#endif /* !(__STDC__ || __cplusplus) */ - -/* - * Used for internal auditing of the NetBSD source tree. - */ -#ifdef __AUDIT__ -#define __aconst __const -#else -#define __aconst -#endif - -/* - * Compile Time Assertion. - */ -#ifdef __COUNTER__ -#define __CTASSERT(x) __CTASSERT0(x, __ctassert, __COUNTER__) -#else -#define __CTASSERT(x) __CTASSERT99(x, __INCLUDE_LEVEL__, __LINE__) -#define __CTASSERT99(x, a, b) __CTASSERT0(x, __CONCAT(__ctassert,a), \ - __CONCAT(_,b)) -#endif -#define __CTASSERT0(x, y, z) __CTASSERT1(x, y, z) -#define __CTASSERT1(x, y, z) typedef char y ## z[/*CONSTCOND*/(x) ? 1 : -1] __unused - -/* - * The following macro is used to remove const cast-away warnings - * from gcc -Wcast-qual; it should be used with caution because it - * can hide valid errors; in particular most valid uses are in - * situations where the API requires it, not to cast away string - * constants. We don't use *intptr_t on purpose here and we are - * explicit about unsigned long so that we don't have additional - * dependencies. - */ -#define __UNCONST(a) ((void *)(unsigned long)(const void *)(a)) - -/* - * The following macro is used to remove the volatile cast-away warnings - * from gcc -Wcast-qual; as above it should be used with caution - * because it can hide valid errors or warnings. Valid uses include - * making it possible to pass a volatile pointer to memset(). - * For the same reasons as above, we use unsigned long and not intptr_t. - */ -#define __UNVOLATILE(a) ((void *)(unsigned long)(volatile void *)(a)) - -/* - * GCC2 provides __extension__ to suppress warnings for various GNU C - * language extensions under "-ansi -pedantic". - */ -#if !__GNUC_PREREQ__(2, 0) -#define __extension__ /* delete __extension__ if non-gcc or gcc1 */ -#endif - -/* - * GCC1 and some versions of GCC2 declare dead (non-returning) and - * pure (no side effects) functions using "volatile" and "const"; - * unfortunately, these then cause warnings under "-ansi -pedantic". - * GCC2 uses a new, peculiar __attribute__((attrs)) style. All of - * these work for GNU C++ (modulo a slight glitch in the C++ grammar - * in the distribution version of 2.5.5). - * - * GCC defines a pure function as depending only on its arguments and - * global variables. Typical examples are strlen and sqrt. - * - * GCC defines a const function as depending only on its arguments. - * Therefore calling a const function again with identical arguments - * will always produce the same result. - * - * Rounding modes for floating point operations are considered global - * variables and prevent sqrt from being a const function. - * - * Calls to const functions can be optimised away and moved around - * without limitations. - */ -#if !__GNUC_PREREQ__(2, 0) && !defined(__lint__) -#define __attribute__(x) -#endif - -#if __GNUC_PREREQ__(2, 5) -#define __dead __attribute__((__noreturn__)) -#elif defined(__GNUC__) -#define __dead __volatile -#else -#define __dead -#endif - -#if __GNUC_PREREQ__(2, 96) -#define __pure __attribute__((__pure__)) -#elif defined(__GNUC__) -#define __pure __const -#else -#define __pure -#endif - -#if __GNUC_PREREQ__(2, 5) -#define __constfunc __attribute__((__const__)) -#else -#define __constfunc -#endif - -#if __GNUC_PREREQ__(3, 0) -#define __noinline __attribute__((__noinline__)) -#else -#define __noinline /* nothing */ -#endif - -#if __GNUC_PREREQ__(3, 0) -#define __always_inline __attribute__((__always_inline__)) -#else -#define __always_inline /* nothing */ -#endif - -#if __GNUC_PREREQ__(4, 1) -#define __returns_twice __attribute__((__returns_twice__)) -#else -#define __returns_twice /* nothing */ -#endif - -#if __GNUC_PREREQ__(4, 5) -#define __noclone __attribute__((__noclone__)) -#else -#define __noclone /* nothing */ -#endif - -/* - * __unused: Note that item or function might be unused. - */ -#if __GNUC_PREREQ__(2, 7) || defined(__lint__) -#define __unused __attribute__((__unused__)) -#else -#define __unused /* delete */ -#endif - -/* - * __used: Note that item is needed, even if it appears to be unused. - */ -#if __GNUC_PREREQ__(3, 1) -#define __used __attribute__((__used__)) -#else -#define __used __unused -#endif - -/* - * __diagused: Note that item is used in diagnostic code, but may be - * unused in non-diagnostic code. - */ -#if (defined(_KERNEL) && defined(DIAGNOSTIC)) \ - || (!defined(_KERNEL) && !defined(NDEBUG)) -#define __diagused /* empty */ -#else -#define __diagused __unused -#endif - -/* - * __debugused: Note that item is used in debug code, but may be - * unused in non-debug code. - */ -#if defined(DEBUG) -#define __debugused /* empty */ -#else -#define __debugused __unused -#endif - -#if __GNUC_PREREQ__(3, 1) -#define __noprofile __attribute__((__no_instrument_function__)) -#else -#define __noprofile /* nothing */ -#endif - -#if __GNUC_PREREQ__(4, 6) || defined(__clang__) -#define __unreachable() __builtin_unreachable() -#else -#define __unreachable() do {} while (/*CONSTCOND*/0) -#endif - -#if defined(__cplusplus) -#define __BEGIN_EXTERN_C extern "C" { -#define __END_EXTERN_C } -#define __static_cast(x,y) static_cast(y) -#else -#define __BEGIN_EXTERN_C -#define __END_EXTERN_C -#define __static_cast(x,y) (x)y -#endif - -#if __GNUC_PREREQ__(4, 0) -# define __dso_public __attribute__((__visibility__("default"))) -# define __dso_hidden __attribute__((__visibility__("hidden"))) -# define __BEGIN_PUBLIC_DECLS \ - _Pragma("GCC visibility push(default)") __BEGIN_EXTERN_C -# define __END_PUBLIC_DECLS __END_EXTERN_C _Pragma("GCC visibility pop") -# define __BEGIN_HIDDEN_DECLS \ - _Pragma("GCC visibility push(hidden)") __BEGIN_EXTERN_C -# define __END_HIDDEN_DECLS __END_EXTERN_C _Pragma("GCC visibility pop") -#else -# define __dso_public -# define __dso_hidden -# define __BEGIN_PUBLIC_DECLS __BEGIN_EXTERN_C -# define __END_PUBLIC_DECLS __END_EXTERN_C -# define __BEGIN_HIDDEN_DECLS __BEGIN_EXTERN_C -# define __END_HIDDEN_DECLS __END_EXTERN_C -#endif -#if __GNUC_PREREQ__(4, 2) -# define __dso_protected __attribute__((__visibility__("protected"))) -#else -# define __dso_protected -#endif - -#define __BEGIN_DECLS __BEGIN_PUBLIC_DECLS -#define __END_DECLS __END_PUBLIC_DECLS - -/* - * Non-static C99 inline functions are optional bodies. They don't - * create global symbols if not used, but can be replaced if desirable. - * This differs from the behavior of GCC before version 4.3. The nearest - * equivalent for older GCC is `extern inline'. For newer GCC, use the - * gnu_inline attribute additionally to get the old behavior. - * - * For C99 compilers other than GCC, the C99 behavior is expected. - */ -#if defined(__GNUC__) && defined(__GNUC_STDC_INLINE__) -#define __c99inline extern __attribute__((__gnu_inline__)) __inline -#elif defined(__GNUC__) -#define __c99inline extern __inline -#elif defined(__STDC_VERSION__) -#define __c99inline __inline -#endif - -#if defined(__lint__) -#define __packed __packed -#define __aligned(x) /* delete */ -#define __section(x) /* delete */ -#elif __GNUC_PREREQ__(2, 7) || defined(__PCC__) -#define __packed __attribute__((__packed__)) -#define __aligned(x) __attribute__((__aligned__(x))) -#define __section(x) __attribute__((__section__(x))) -#elif defined(_MSC_VER) -#define __packed /* ignore */ -#else -#define __packed error: no __packed for this compiler -#define __aligned(x) error: no __aligned for this compiler -#define __section(x) error: no __section for this compiler -#endif - -/* - * C99 defines the restrict type qualifier keyword, which was made available - * in GCC 2.92. - */ -#if defined(__lint__) -#define __restrict /* delete __restrict when not supported */ -#elif __STDC_VERSION__ >= 199901L -#define __restrict restrict -#elif __GNUC_PREREQ__(2, 92) -#define __restrict __restrict__ -#else -#define __restrict /* delete __restrict when not supported */ -#endif - -/* - * C99 defines __func__ predefined identifier, which was made available - * in GCC 2.95. - */ -#if !(__STDC_VERSION__ >= 199901L) -#if __GNUC_PREREQ__(2, 6) -#define __func__ __PRETTY_FUNCTION__ -#elif __GNUC_PREREQ__(2, 4) -#define __func__ __FUNCTION__ -#else -#define __func__ "" -#endif -#endif /* !(__STDC_VERSION__ >= 199901L) */ - -#if defined(_KERNEL) -#if defined(NO_KERNEL_RCSIDS) -#undef __KERNEL_RCSID -#define __KERNEL_RCSID(_n, _s) /* nothing */ -#endif /* NO_KERNEL_RCSIDS */ -#endif /* _KERNEL */ - -#if !defined(_STANDALONE) && !defined(_KERNEL) -#if defined(__GNUC__) || defined(__PCC__) -#define __RENAME(x) ___RENAME(x) -#elif defined(__lint__) -#define __RENAME(x) __symbolrename(x) -#else -#error "No function renaming possible" -#endif /* __GNUC__ */ -#else /* _STANDALONE || _KERNEL */ -#define __RENAME(x) no renaming in kernel/standalone environment -#endif - -/* - * A barrier to stop the optimizer from moving code or assume live - * register values. This is gcc specific, the version is more or less - * arbitrary, might work with older compilers. - */ -#if __GNUC_PREREQ__(2, 95) -#define __insn_barrier() __asm __volatile("":::"memory") -#else -#define __insn_barrier() /* */ -#endif - -/* - * GNU C version 2.96 adds explicit branch prediction so that - * the CPU back-end can hint the processor and also so that - * code blocks can be reordered such that the predicted path - * sees a more linear flow, thus improving cache behavior, etc. - * - * The following two macros provide us with a way to use this - * compiler feature. Use __predict_true() if you expect the expression - * to evaluate to true, and __predict_false() if you expect the - * expression to evaluate to false. - * - * A few notes about usage: - * - * * Generally, __predict_false() error condition checks (unless - * you have some _strong_ reason to do otherwise, in which case - * document it), and/or __predict_true() `no-error' condition - * checks, assuming you want to optimize for the no-error case. - * - * * Other than that, if you don't know the likelihood of a test - * succeeding from empirical or other `hard' evidence, don't - * make predictions. - * - * * These are meant to be used in places that are run `a lot'. - * It is wasteful to make predictions in code that is run - * seldomly (e.g. at subsystem initialization time) as the - * basic block reordering that this affects can often generate - * larger code. - */ -#if __GNUC_PREREQ__(2, 96) -#define __predict_true(exp) __builtin_expect((exp) != 0, 1) -#define __predict_false(exp) __builtin_expect((exp) != 0, 0) -#else -#define __predict_true(exp) (exp) -#define __predict_false(exp) (exp) -#endif - -/* - * Compiler-dependent macros to declare that functions take printf-like - * or scanf-like arguments. They are null except for versions of gcc - * that are known to support the features properly (old versions of gcc-2 - * didn't permit keeping the keywords out of the application namespace). - */ -#if __GNUC_PREREQ__(2, 7) -#define __printflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__printf__, fmtarg, firstvararg))) -#ifndef __syslog_attribute__ -#define __syslog__ __printf__ -#endif -#define __sysloglike(fmtarg, firstvararg) \ - __attribute__((__format__ (__syslog__, fmtarg, firstvararg))) -#define __scanflike(fmtarg, firstvararg) \ - __attribute__((__format__ (__scanf__, fmtarg, firstvararg))) -#define __format_arg(fmtarg) __attribute__((__format_arg__ (fmtarg))) -#else -#define __printflike(fmtarg, firstvararg) /* nothing */ -#define __scanflike(fmtarg, firstvararg) /* nothing */ -#define __sysloglike(fmtarg, firstvararg) /* nothing */ -#define __format_arg(fmtarg) /* nothing */ -#endif - -/* - * Macros for manipulating "link sets". Link sets are arrays of pointers - * to objects, which are gathered up by the linker. - * - * Object format-specific code has provided us with the following macros: - * - * __link_set_add_text(set, sym) - * Add a reference to the .text symbol `sym' to `set'. - * - * __link_set_add_rodata(set, sym) - * Add a reference to the .rodata symbol `sym' to `set'. - * - * __link_set_add_data(set, sym) - * Add a reference to the .data symbol `sym' to `set'. - * - * __link_set_add_bss(set, sym) - * Add a reference to the .bss symbol `sym' to `set'. - * - * __link_set_decl(set, ptype) - * Provide an extern declaration of the set `set', which - * contains an array of pointers to type `ptype'. This - * macro must be used by any code which wishes to reference - * the elements of a link set. - * - * __link_set_start(set) - * This points to the first slot in the link set. - * - * __link_set_end(set) - * This points to the (non-existent) slot after the last - * entry in the link set. - * - * __link_set_count(set) - * Count the number of entries in link set `set'. - * - * In addition, we provide the following macros for accessing link sets: - * - * __link_set_foreach(pvar, set) - * Iterate over the link set `set'. Because a link set is - * an array of pointers, pvar must be declared as "type **pvar", - * and the actual entry accessed as "*pvar". - * - * __link_set_entry(set, idx) - * Access the link set entry at index `idx' from set `set'. - */ -#define __link_set_foreach(pvar, set) \ - for (pvar = __link_set_start(set); pvar < __link_set_end(set); pvar++) - -#define __link_set_entry(set, idx) (__link_set_start(set)[idx]) - -/* - * Return the natural alignment in bytes for the given type - */ -#if __GNUC_PREREQ__(4, 1) -#define __alignof(__t) __alignof__(__t) -#else -#define __alignof(__t) (sizeof(struct { char __x; __t __y; }) - sizeof(__t)) -#endif - -/* - * Return the number of elements in a statically-allocated array, - * __x. - */ -#define __arraycount(__x) (sizeof(__x) / sizeof(__x[0])) - -#ifndef __ASSEMBLER__ -/* __BIT(n): nth bit, where __BIT(0) == 0x1. */ -#define __BIT(__n) \ - (((uintmax_t)(__n) >= NBBY * sizeof(uintmax_t)) ? 0 : \ - ((uintmax_t)1 << (uintmax_t)((__n) & (NBBY * sizeof(uintmax_t) - 1)))) - -/* __BITS(m, n): bits m through n, m < n. */ -#define __BITS(__m, __n) \ - ((__BIT(MAX((__m), (__n)) + 1) - 1) ^ (__BIT(MIN((__m), (__n))) - 1)) -#endif /* !__ASSEMBLER__ */ - -/* find least significant bit that is set */ -#define __LOWEST_SET_BIT(__mask) ((((__mask) - 1) & (__mask)) ^ (__mask)) - -#define __PRIuBIT PRIuMAX -#define __PRIuBITS __PRIuBIT - -#define __PRIxBIT PRIxMAX -#define __PRIxBITS __PRIxBIT - -#define __SHIFTOUT(__x, __mask) (((__x) & (__mask)) / __LOWEST_SET_BIT(__mask)) -#define __SHIFTIN(__x, __mask) ((__x) * __LOWEST_SET_BIT(__mask)) -#define __SHIFTOUT_MASK(__mask) __SHIFTOUT((__mask), (__mask)) - -/* - * Only to be used in other headers that are included from both c or c++ - * NOT to be used in code. - */ -#ifdef __cplusplus -#define __CAST(__dt, __st) static_cast<__dt>(__st) -#else -#define __CAST(__dt, __st) ((__dt)(__st)) -#endif - -#define __CASTV(__dt, __st) __CAST(__dt, __CAST(void *, __st)) -#define __CASTCV(__dt, __st) __CAST(__dt, __CAST(const void *, __st)) - -#define __USE(a) ((void)(a)) - -#define __type_mask(t) (/*LINTED*/sizeof(t) < sizeof(intmax_t) ? \ - (~((1ULL << (sizeof(t) * NBBY)) - 1)) : 0ULL) - -#ifndef __ASSEMBLER__ -static __inline long long __zeroll(void) { return 0; } -static __inline unsigned long long __zeroull(void) { return 0; } -#else -#define __zeroll() (0LL) -#define __zeroull() (0ULL) -#endif - -#define __negative_p(x) (!((x) > 0) && ((x) != 0)) - -#define __type_min_s(t) ((t)((1ULL << (sizeof(t) * NBBY - 1)))) -#define __type_max_s(t) ((t)~((1ULL << (sizeof(t) * NBBY - 1)))) -#define __type_min_u(t) ((t)0ULL) -#define __type_max_u(t) ((t)~0ULL) -#define __type_is_signed(t) (/*LINTED*/__type_min_s(t) + (t)1 < (t)1) -#define __type_min(t) (__type_is_signed(t) ? __type_min_s(t) : __type_min_u(t)) -#define __type_max(t) (__type_is_signed(t) ? __type_max_s(t) : __type_max_u(t)) - - -#define __type_fit_u(t, a) (/*LINTED*/!__negative_p(a) && \ - (uintmax_t)((a) + __zeroull()) <= (uintmax_t)__type_max_u(t)) - -#define __type_fit_s(t, a) (/*LINTED*/__negative_p(a) ? \ - ((intmax_t)((a) + __zeroll()) >= (intmax_t)__type_min_s(t)) : \ - ((intmax_t)((a) + __zeroll()) >= (intmax_t)0 && \ - (intmax_t)((a) + __zeroll()) <= (intmax_t)__type_max_s(t))) - -/* - * return true if value 'a' fits in type 't' - */ -#define __type_fit(t, a) (__type_is_signed(t) ? \ - __type_fit_s(t, a) : __type_fit_u(t, a)) - -#endif /* !_SYS_CDEFS_H_ */ diff --git a/vendor/github.com/linuxkit/linuxkit/projects/ebpf/ebpf.build/error.h b/vendor/github.com/linuxkit/linuxkit/projects/ebpf/ebpf.build/error.h deleted file mode 100644 index 6b71c7e68..000000000 --- a/vendor/github.com/linuxkit/linuxkit/projects/ebpf/ebpf.build/error.h +++ /dev/null @@ -1,29 +0,0 @@ -# include -# include -# include -# include -static void error_at_line(int status, int errnum, const char *filename, - unsigned int linenum, const char *format, ...) -{ - va_list ap; - - fflush(stdout); - - if (filename != NULL) - fprintf(stderr, "%s:%u: ", filename, linenum); - - va_start(ap, format); - vfprintf(stderr, format, ap); - va_end(ap); - - if (errnum != 0) - fprintf(stderr, ": %s", strerror(errnum)); - - fprintf(stderr, "\n"); - - if (status != 0) - exit(status); -} - -#define error(status, errnum, format...) \ - error_at_line(status, errnum, NULL, 0, format) diff --git a/vendor/github.com/linuxkit/linuxkit/src/initrd/initrd.go b/vendor/github.com/linuxkit/linuxkit/src/initrd/initrd.go deleted file mode 100644 index 6d83e6728..000000000 --- a/vendor/github.com/linuxkit/linuxkit/src/initrd/initrd.go +++ /dev/null @@ -1,180 +0,0 @@ -package initrd - -import ( - "archive/tar" - "bytes" - "compress/gzip" - "errors" - "io" - "io/ioutil" - - "github.com/linuxkit/linuxkit/src/pad4" - "github.com/surma/gocpio" -) - -// Writer is an io.WriteCloser that writes to an initrd -// This is a compressed cpio archive, zero padded to 4 bytes -type Writer struct { - pw *pad4.Writer - gw *gzip.Writer - cw *cpio.Writer -} - -func typeconv(thdr *tar.Header) int64 { - switch thdr.Typeflag { - case tar.TypeReg: - return cpio.TYPE_REG - case tar.TypeRegA: - return cpio.TYPE_REG - // Currently hard links not supported very well :) - case tar.TypeLink: - thdr.Linkname = "/" + thdr.Linkname - return cpio.TYPE_SYMLINK - case tar.TypeSymlink: - return cpio.TYPE_SYMLINK - case tar.TypeChar: - return cpio.TYPE_CHAR - case tar.TypeBlock: - return cpio.TYPE_BLK - case tar.TypeDir: - return cpio.TYPE_DIR - case tar.TypeFifo: - return cpio.TYPE_FIFO - default: - return -1 - } -} - -func copyTarEntry(w *Writer, thdr *tar.Header, r *tar.Reader) (written int64, err error) { - tp := typeconv(thdr) - if tp == -1 { - return written, errors.New("cannot convert tar file") - } - size := thdr.Size - if tp == cpio.TYPE_SYMLINK { - size = int64(len(thdr.Linkname)) - } - chdr := cpio.Header{ - Mode: thdr.Mode, - Uid: thdr.Uid, - Gid: thdr.Gid, - Mtime: thdr.ModTime.Unix(), - Size: size, - Devmajor: thdr.Devmajor, - Devminor: thdr.Devminor, - Type: tp, - Name: thdr.Name, - } - err = w.WriteHeader(&chdr) - if err != nil { - return - } - var n int64 - switch tp { - case cpio.TYPE_SYMLINK: - buffer := bytes.NewBufferString(thdr.Linkname) - n, err = io.Copy(w, buffer) - case cpio.TYPE_REG: - n, err = io.Copy(w, r) - } - written += n - - return -} - -// CopyTar copies a tar stream into an initrd -func CopyTar(w *Writer, r *tar.Reader) (written int64, err error) { - for { - var thdr *tar.Header - thdr, err = r.Next() - if err == io.EOF { - return written, nil - } - if err != nil { - return - } - written, err = copyTarEntry(w, thdr, r) - if err != nil { - return - } - } -} - -// CopySplitTar copies a tar stream into an initrd, but splits out kernel and cmdline -func CopySplitTar(w *Writer, r *tar.Reader) (kernel []byte, cmdline string, err error) { - for { - var thdr *tar.Header - thdr, err = r.Next() - if err == io.EOF { - return kernel, cmdline, nil - } - if err != nil { - return - } - switch thdr.Name { - case "boot/kernel": - kernel, err = ioutil.ReadAll(r) - if err != nil { - return - } - case "boot/cmdline": - var buf []byte - buf, err = ioutil.ReadAll(r) - if err != nil { - return - } - cmdline = string(buf) - case "boot": - // skip this entry - default: - _, err = copyTarEntry(w, thdr, r) - if err != nil { - return - } - } - } -} - -// NewWriter creates a writer that will output an initrd stream -func NewWriter(w io.Writer) *Writer { - initrd := new(Writer) - initrd.pw = pad4.NewWriter(w) - initrd.gw = gzip.NewWriter(initrd.pw) - initrd.cw = cpio.NewWriter(initrd.gw) - - return initrd -} - -// WriteHeader writes a cpio header into an initrd -func (w *Writer) WriteHeader(hdr *cpio.Header) error { - return w.cw.WriteHeader(hdr) -} - -// Write writes a cpio file into an initrd -func (w *Writer) Write(b []byte) (n int, e error) { - return w.cw.Write(b) -} - -// Close closes the writer -func (w *Writer) Close() error { - err1 := w.cw.Close() - err2 := w.gw.Close() - err3 := w.pw.Close() - if err1 != nil { - return err1 - } - if err2 != nil { - return err2 - } - if err3 != nil { - return err3 - } - return nil -} - -// Copy reads a tarball in a stream and outputs a compressed init ram disk -func Copy(w *Writer, r io.Reader) (int64, error) { - tr := tar.NewReader(r) - - return CopyTar(w, tr) -} diff --git a/vendor/github.com/linuxkit/linuxkit/src/pad4/pad4.go b/vendor/github.com/linuxkit/linuxkit/src/pad4/pad4.go deleted file mode 100644 index 008153b26..000000000 --- a/vendor/github.com/linuxkit/linuxkit/src/pad4/pad4.go +++ /dev/null @@ -1,46 +0,0 @@ -package pad4 - -import ( - "bytes" - "io" -) - -// A Writer is an io.WriteCloser. Writes are padded with zeros to 4 byte boundary -type Writer struct { - w io.Writer - count int -} - -// Write writes output -func (pad Writer) Write(p []byte) (int, error) { - n, err := pad.w.Write(p) - if err != nil { - return 0, err - } - pad.count += n - return n, nil -} - -// Close adds the padding -func (pad Writer) Close() error { - mod4 := pad.count & 3 - if mod4 == 0 { - return nil - } - zero := make([]byte, 4-mod4) - buf := bytes.NewBuffer(zero) - n, err := io.Copy(pad.w, buf) - if err != nil { - return err - } - pad.count += int(n) - return nil -} - -// NewWriter provides a new io.WriteCloser that zero pads the -// output to a multiple of four bytes -func NewWriter(w io.Writer) *Writer { - pad := new(Writer) - pad.w = w - return pad -} diff --git a/vendor/github.com/linuxkit/linuxkit/vendor.conf b/vendor/github.com/linuxkit/linuxkit/vendor.conf deleted file mode 100644 index 26602a595..000000000 --- a/vendor/github.com/linuxkit/linuxkit/vendor.conf +++ /dev/null @@ -1,27 +0,0 @@ -github.com/Sirupsen/logrus 10f801ebc38b33738c9d17d50860f484a0988ff5 -github.com/docker/docker 8d96619e5a367798cffcb740cfc41e0a505a5232 -github.com/docker/distribution 07f32ac1831ed0fc71960b7da5d6bb83cb6881b5 -github.com/docker/engine-api cf82c64276ebc2501e72b241f9fdc1e21e421743 -github.com/docker/go-connections e15c02316c12de00874640cd76311849de2aeed5 -github.com/docker/go-units 651fc226e7441360384da338d0fd37f2440ffbe3 -github.com/docker/infrakit cb420e3e50ea60afe58538b1d3cab1cb14059433 -github.com/golang/protobuf c9c7427a2a70d2eb3bafa0ab2dc163e45f143317 -github.com/googleapis/gax-go 8c5154c0fe5bf18cf649634d4c6df50897a32751 -github.com/mitchellh/go-ps 4fdf99ab29366514c69ccccddab5dc58b8d84062 -github.com/moby/hyperkit 9b5f5fd848f0f5aedccb67a5a8cfa6787b8654f9 -github.com/opencontainers/runtime-spec d094a5c9c1997ab086197b57e9378fabed394d92 -github.com/pkg/errors ff09b135c25aae272398c51a07235b90a75aa4f0 -github.com/packethost/packngo 91d54000aa56874149d348a884ba083c41d38091 -github.com/rneugeba/iso9660wrap 4606f848a055435cdef85305960b0e1bb788d506 -github.com/satori/go.uuid b061729afc07e77a8aa4fad0a2fd840958f1942a -github.com/surma/gocpio fcb68777e7dc4ea43ffce871b552c0d073c17495 -github.com/xeipuuv/gojsonpointer 6fe8760cad3569743d51ddbb243b26f8456742dc -github.com/xeipuuv/gojsonreference e02fc20de94c78484cd5ffb007f8af96be030a45 -github.com/xeipuuv/gojsonschema 702b404897d4364af44dc8dcabc9815947942325 -golang.org/x/crypto 573951cbe80bb6352881271bb276f48749eab6f4 -golang.org/x/net a6577fac2d73be281a500b310739095313165611 -golang.org/x/oauth2 1611bb46e67abc64a71ecc5c3ae67f1cbbc2b921 -golang.org/x/sys 99f16d856c9836c42d24e7ab64ea72916925fa97 -google.golang.org/api 1202890e803f07684581b575fda809bf335a533f -google.golang.org/grpc 0713829b980f4ddd276689a36235c5fcc82a21bf -gopkg.in/yaml.v2 a3f3340b5840cee44f372bddb5880fcbc419b46a