#debuginfo not supported with Go %global debug_package %{nil} %global gopath %{_datadir}/gocode %global import_path github.com/GoogleCloudPlatform/kubernetes %global commit ac6d6ec9747dd4b7647124e1f96d75365bcbf42f %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: kubernetes Version: 0 Release: 0.0.14.git%{shortcommit}%{?dist} Summary: Kubernetes container management License: ASL 2.0 URL: https://github.com/GoogleCloudPlatform/kubernetes ExclusiveArch: x86_64 Source0: https://github.com/GoogleCloudPlatform/kubernetes/archive/%{commit}/kubernetes-%{shortcommit}.tar.gz Patch1: 0001-hack-install-package.sh-New-file-add-unit-files.patch BuildRequires: gcc BuildRequires: git BuildRequires: golang >= 1.2-7 BuildRequires: golang(bitbucket.org/kardianos/osext) BuildRequires: golang(github.com/coreos/go-log/log) BuildRequires: golang(github.com/coreos/go-systemd) BuildRequires: golang(github.com/coreos/go-etcd/etcd) BuildRequires: golang(code.google.com/p/go.net) BuildRequires: golang(code.google.com/p/goauth2) BuildRequires: golang(code.google.com/p/go-uuid) BuildRequires: golang(code.google.com/p/google-api-go-client) BuildRequires: golang(github.com/fsouza/go-dockerclient) BuildRequires: golang(github.com/golang/glog) BuildRequires: golang(gopkg.in/v1/yaml) BuildRequires: golang(github.com/google/cadvisor) Requires: /usr/bin/docker Requires: etcd %description %{summary} %prep %autosetup -Sgit -n %{name}-%{commit} rm -r third_party/src/bitbucket.org/kardianos/osext rm -r third_party/src/code.google.com/p/go.net rm -r third_party/src/code.google.com/p/goauth2 rm -r third_party/src/code.google.com/p/go-uuid rm -r third_party/src/code.google.com/p/google-api-go-client rm -r third_party/src/gopkg.in/v1/yaml/ rm -r third_party/src/gonuts.org/v1/yaml/ rm -r third_party/src/github.com/coreos/go-{log,systemd,etcd} rm -r third_party/src/github.com/fsouza/go-dockerclient rm -r third_party/src/github.com/golang/glog # FIXME (if we can) # Unable to remove go-dockerclient-copiedstructs because this repository either # no longer exists or is a private repository. # rm -r third_party/src/github.com/fsouza/go-dockerclient-copiedstructs # Preserve just a subset of cAdvisor, but not all of the source #mkdir cadvisor_api #mv third_party/src/github.com/google/cadvisor/{client,info} cadvisor_api #rm -r third_party/src/github.com/google/cadvisor/ #mkdir third_party/src/github.com/google/cadvisor/ #mv cadvisor_api/* third_party/src/github.com/google/cadvisor/ rm -r third_party/src/github.com/google/cadvisor/ # Set the "version number", currently git commit id upstream sed "s/@@GIT_COMMIT@@/%{shortcommit}/g" \ pkg/version/template.go.tmpl >pkg/version/autogenerated.go %build #env GOPATH="${PWD}:%{gopath}" ./hack/build-go.sh mkdir _build pushd _build mkdir -p src/github.com/GoogleCloudPlatform ln -s $(dirs +1 -l) src/%{import_path} # FIXME - This source doesn't appear to exist at the import path so for # now it must be bundled. Need to fix if we can. mkdir -p src/github.com/fsouza/ ln -s \ $(dirs +1 -l)/third_party/src/github.com/fsouza/go-dockerclient-copiedstructs \ src/github.com/fsouza/go-dockerclient-copiedstructs popd export GOPATH=$(pwd)/_build:%{buildroot}%{gopath}:%{gopath} # Default to building all of the components for cmd in proxy integration apiserver controller-manager kubelet kubecfg do go build %{import_path}/cmd/${cmd} done %install install -d %{buildroot}%{_bindir} for bin in proxy integration apiserver controller-manager kubelet kubecfg; do echo "+++ INSTALLING ${bin}" install -p -m 755 ${bin} %{buildroot}%{_bindir}/kubernetes-${bin} done install -d -m 0755 %{buildroot}%{_prefix}/lib/systemd/system install -m 0644 -t %{buildroot}%{_prefix}/lib/systemd/system init/kubernetes-{apiserver,controller-manager,kubelet,proxy}.service mkdir -p %{buildroot}%{_sysconfdir}/sysconfig install -m 0644 -t %{buildroot}%{_sysconfdir}/sysconfig sysconfig/%{name} mkdir -p %{buildroot}/var/log/%{name} %files %defattr(-,root,root,-) %doc README.md %dir /var/log/%{name} %{_bindir}/%{name}-proxy %{_bindir}/%{name}-integration %{_bindir}/%{name}-apiserver %{_bindir}/%{name}-controller-manager %{_bindir}/%{name}-kubelet %{_bindir}/%{name}-kubecfg %{_prefix}/lib/systemd/system/*.service %config(noreplace) %{_sysconfdir}/sysconfig/%{name} %post %systemd_post kubernetes-proxy.service kubernetes-integration.service kubernetes-apiserver.server kubernetes-controller-manager.service %preun %systemd_preun kubernetes-proxy.service kubernetes-integration.service kubernetes-apiserver.server kubernetes-controller-manager.service %postun %systemd_postun %changelog * Fri Aug 08 2014 Adam Miller - 0-0.0.13.gitac6d6ec - Set sysconfig/kubernetes to config(noreplace) * Fri Aug 08 2014 Adam Miller - 0-0.0.13.gitac6d6ec - Update to latest upstream * Thu Aug 07 2014 Adam Miller - 0-0.0.12.gitc501e09 - Update to latest upstream * Wed Jul 16 2014 Colin Walters - Initial package