From b7808aa6c5db8abeb78b735b7ecca3e840668be5 Mon Sep 17 00:00:00 2001 From: Alex Crawford Date: Wed, 5 Aug 2015 13:50:20 -0700 Subject: [PATCH] app-admin/kubelet: add kubernetes kubelet --- ...nker-flags-through-from-the-Makefile.patch | 116 ++++++++++++++++++ .../app-admin/kubelet/kubelet-1.0.1.ebuild | 45 +++++++ 2 files changed, 161 insertions(+) create mode 100644 sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/files/0001-Plumb-linker-flags-through-from-the-Makefile.patch create mode 100644 sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/kubelet-1.0.1.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/files/0001-Plumb-linker-flags-through-from-the-Makefile.patch b/sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/files/0001-Plumb-linker-flags-through-from-the-Makefile.patch new file mode 100644 index 0000000000..c46538daea --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/files/0001-Plumb-linker-flags-through-from-the-Makefile.patch @@ -0,0 +1,116 @@ +From 15052509eab969b8ce5076be694ad28615a70dc9 Mon Sep 17 00:00:00 2001 +From: Alex Crawford +Date: Wed, 5 Aug 2015 14:46:34 -0700 +Subject: [PATCH] Plumb linker flags through from the Makefile + +--- + Makefile | 6 ++++++ + hack/lib/golang.sh | 17 +++++++---------- + 2 files changed, 13 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index af0fc4f..3636ce5 100644 +--- a/Makefile ++++ b/Makefile +@@ -12,6 +12,9 @@ GODEPS_PKG_DIR = Godeps/_workspace/pkg + KUBE_GOFLAGS = $(GOFLAGS) + export KUBE_GOFLAGS + ++KUBE_GOLDFLAGS = $(GOLDFLAGS) ++export KUBE_GOLDFLAGS ++ + # Build code. + # + # Args: +@@ -19,6 +22,7 @@ export KUBE_GOFLAGS + # package, the build will produce executable files under $(OUT_DIR)/go/bin. + # If not specified, "everything" will be built. + # GOFLAGS: Extra flags to pass to 'go' when building. ++# GOLDFLAGS: Extra linking flags to pass to 'go' when building. + # + # Example: + # make +@@ -35,6 +39,7 @@ all: + # directories will be run. If not specified, "everything" will be tested. + # TESTS: Same as WHAT. + # GOFLAGS: Extra flags to pass to 'go' when building. ++# GOLDFLAGS: Extra linking flags to pass to 'go' when building. + # + # Example: + # make check +@@ -78,6 +83,7 @@ clean: + # vetted. + # TESTS: Same as WHAT. + # GOFLAGS: Extra flags to pass to 'go' when building. ++# GOLDFLAGS: Extra linking flags to pass to 'go' when building. + # + # Example: + # make vet +diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh +index f0fe3bd..8f2c5d4 100644 +--- a/hack/lib/golang.sh ++++ b/hack/lib/golang.sh +@@ -369,7 +369,7 @@ kube::golang::build_binaries_for_platform() { + local outfile=$(kube::golang::output_filename_for_binary "${binary}" "${platform}") + CGO_ENABLED=0 go build -o "${outfile}" \ + "${goflags[@]:+${goflags[@]}}" \ +- -ldflags "${version_ldflags}" \ ++ -ldflags "${goldflags}" \ + "${binary}" + kube::log::progress "*" + done +@@ -377,7 +377,7 @@ kube::golang::build_binaries_for_platform() { + local outfile=$(kube::golang::output_filename_for_binary "${binary}" "${platform}") + go build -o "${outfile}" \ + "${goflags[@]:+${goflags[@]}}" \ +- -ldflags "${version_ldflags}" \ ++ -ldflags "${goldflags}" \ + "${binary}" + kube::log::progress "*" + done +@@ -386,12 +386,12 @@ kube::golang::build_binaries_for_platform() { + # Use go install. + if [[ "${#nonstatics[@]}" != 0 ]]; then + go install "${goflags[@]:+${goflags[@]}}" \ +- -ldflags "${version_ldflags}" \ ++ -ldflags "${goldflags}" \ + "${nonstatics[@]:+${nonstatics[@]}}" + fi + if [[ "${#statics[@]}" != 0 ]]; then + CGO_ENABLED=0 go install -installsuffix cgo "${goflags[@]:+${goflags[@]}}" \ +- -ldflags "${version_ldflags}" \ ++ -ldflags "${goldflags}" \ + "${statics[@]:+${statics[@]}}" + fi + fi +@@ -405,7 +405,7 @@ kube::golang::build_binaries_for_platform() { + pushd "$(dirname ${outfile})" >/dev/null + go test -c \ + "${goflags[@]:+${goflags[@]}}" \ +- -ldflags "${version_ldflags}" \ ++ -ldflags "${goldflags}" \ + "$(dirname ${test})" + popd >/dev/null + done +@@ -447,16 +447,13 @@ kube::golang::build_binaries() { + # Check for `go` binary and set ${GOPATH}. + kube::golang::setup_env + +- # Fetch the version. +- local version_ldflags +- version_ldflags=$(kube::version::ldflags) +- + local host_platform + host_platform=$(kube::golang::host_platform) + + # Use eval to preserve embedded quoted strings. +- local goflags ++ local goflags goldflags + eval "goflags=(${KUBE_GOFLAGS:-})" ++ goldflags="${KUBE_GOLDFLAGS:-} $(kube::version::ldflags)" + + local use_go_build + local -a targets=() +-- +2.3.6 + diff --git a/sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/kubelet-1.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/kubelet-1.0.1.ebuild new file mode 100644 index 0000000000..d7f5971961 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/app-admin/kubelet/kubelet-1.0.1.ebuild @@ -0,0 +1,45 @@ +# +# Copyright (c) 2015 CoreOS, Inc.. All rights reserved. +# Distributed under the terms of the GNU General Public License v2 +# $Header:$ +# + +EAPI=5 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="Kubernetes Container Manager" +HOMEPAGE="http://kubernetes.io/" +KEYWORDS="amd64" +SRC_URI="https://github.com/GoogleCloudPlatform/kubernetes/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/kubernetes-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="" + +DEPEND="dev-lang/go" +RDEPEND="net-misc/socat" + +src_prepare() { + epatch "${FILESDIR}/0001-Plumb-linker-flags-through-from-the-Makefile.patch" + + if gcc-specs-pie; then + append-ldflags -nopie + fi + + export CC=$(tc-getCC) + export CGO_ENABLED=${CGO_ENABLED:-1} + export CGO_CFLAGS="${CFLAGS}" + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" +} + +src_compile() { + emake all WHAT="cmd/${PN}" GOFLAGS="-x" GOLDFLAGS="-extldflags '${LDFLAGS}'" +} + +src_install() { + dobin "${S}/_output/local/bin/linux/${ARCH}/${PN}" +}