#debuginfo not supported with Go %global debug_package %{nil} %global gopath %{_datadir}/gocode %global import_path github.com/openshift/origin %global kube_plugin_path /usr/libexec/kubernetes/kubelet-plugins/net/exec/redhat~openshift-ovs-subnet %global sdn_import_path github.com/openshift/openshift-sdn # %commit and %ldflags are intended to be set by tito custom builders provided # in the rel-eng directory. The values in this spec file will not be kept up to date. %{!?commit: %global commit 86b5e46426ba828f49195af21c56f7c6674b48f7 } %global shortcommit %(c=%{commit}; echo ${c:0:7}) # OpenShift specific ldflags from hack/common.sh os::build:ldflags %{!?ldflags: %global ldflags -X github.com/openshift/origin/pkg/version.majorFromGit 0 -X github.com/openshift/origin/pkg/version.minorFromGit 0+ -X github.com/openshift/origin/pkg/version.versionFromGit v0.0.1 -X github.com/openshift/origin/pkg/version.commitFromGit 86b5e46 -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitCommit 6241a21 -X github.com/GoogleCloudPlatform/kubernetes/pkg/version.gitVersion v0.11.0-330-g6241a21 } Name: openshift # Version is not kept up to date and is intended to be set by tito custom # builders provided in the rel-eng directory of this project Version: 0.0.1 Release: 0%{?dist} Summary: Open Source Platform as a Service by Red Hat License: ASL 2.0 URL: https://%{import_path} ExclusiveArch: x86_64 Source0: https://%{import_path}/archive/%{commit}/%{name}-%{version}.tar.gz BuildRequires: systemd BuildRequires: golang >= 1.4 %description %{summary} %package master Summary: OpenShift Master Requires: %{name} = %{version}-%{release} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description master %{summary} %package node Summary: OpenShift Node Requires: %{name} = %{version}-%{release} Requires: docker-io >= 1.6.0 Requires: tuned-profiles-openshift-node Requires: util-linux Requires: socat Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description node %{summary} %package -n tuned-profiles-openshift-node Summary: Tuned profiles for OpenShift Node hosts Requires: tuned >= 2.3 Requires: %{name} = %{version}-%{release} %description -n tuned-profiles-openshift-node %{summary} %package clients Summary: Openshift Client binaries for Linux, Mac OSX, and Windows BuildRequires: golang-pkg-darwin-amd64 BuildRequires: golang-pkg-windows-386 %description clients %{summary} %package dockerregistry Summary: Docker Registry v2 for OpenShift Requires: %{name} = %{version}-%{release} %description dockerregistry %{summary} %package pod Summary: OpenShift Pod Requires: openshift = %{version}-%{release} %description pod %{summary} %prep %setup -q %build # Don't judge me for this ... it's so bad. mkdir _build # Horrid hack because golang loves to just bundle everything pushd _build mkdir -p src/github.com/openshift ln -s $(dirs +1 -l) src/%{import_path} popd # Gaming the GOPATH to include the third party bundled libs at build # time. This is bad and I feel bad. mkdir _thirdpartyhacks pushd _thirdpartyhacks ln -s \ $(dirs +1 -l)/Godeps/_workspace/src/ \ src popd export GOPATH=$(pwd)/_build:$(pwd)/_thirdpartyhacks:%{buildroot}%{gopath}:%{gopath} # Build all linux components we care about for cmd in openshift dockerregistry do go install -ldflags "%{ldflags}" %{import_path}/cmd/${cmd} done # Build only 'openshift' for other platforms GOOS=windows GOARCH=386 go install -ldflags "%{ldflags}" %{import_path}/cmd/openshift GOOS=darwin GOARCH=amd64 go install -ldflags "%{ldflags}" %{import_path}/cmd/openshift #Build our pod pushd images/pod/ go build -ldflags "%{ldflags}" pod.go popd %install install -d %{buildroot}%{_bindir} install -d %{buildroot}%{_datadir}/%{name}/{linux,macosx,windows} # Install linux components for bin in openshift dockerregistry do echo "+++ INSTALLING ${bin}" install -p -m 755 _build/bin/${bin} %{buildroot}%{_bindir}/${bin} done # Install 'openshift' as client executable for windows and mac install -p -m 755 _build/bin/openshift %{buildroot}%{_datadir}/%{name}/linux/osc install -p -m 755 _build/bin/darwin_amd64/openshift %{buildroot}%{_datadir}/%{name}/macosx/osc install -p -m 755 _build/bin/windows_386/openshift.exe %{buildroot}%{_datadir}/%{name}/windows/osc.exe #Install openshift pod install -p -m 755 images/pod/pod %{buildroot}%{_bindir}/ install -d -m 0755 %{buildroot}/etc/%{name}/{master,node} install -d -m 0755 %{buildroot}%{_unitdir} install -m 0644 -t %{buildroot}%{_unitdir} rel-eng/openshift-master.service install -m 0644 -t %{buildroot}%{_unitdir} rel-eng/openshift-node.service mkdir -p %{buildroot}%{_sysconfdir}/sysconfig install -m 0644 rel-eng/openshift-master.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/openshift-master install -m 0644 rel-eng/openshift-node.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/openshift-node mkdir -p %{buildroot}%{_sharedstatedir}/%{name} ln -s %{_bindir}/openshift %{buildroot}%{_bindir}/osc ln -s %{_bindir}/openshift %{buildroot}%{_bindir}/osadm install -d -m 0755 %{buildroot}%{_prefix}/lib/tuned/openshift-node-{guest,host} install -m 0644 tuned/openshift-node-guest/tuned.conf %{buildroot}%{_prefix}/lib/tuned/openshift-node-guest/ install -m 0644 tuned/openshift-node-host/tuned.conf %{buildroot}%{_prefix}/lib/tuned/openshift-node-host/ install -d -m 0755 %{buildroot}%{_mandir}/man7 install -m 0644 tuned/man/tuned-profiles-openshift-node.7 %{buildroot}%{_mandir}/man7/tuned-profiles-openshift-node.7 # Install sdn scripts for node subpackage install -d -m 0755 %{buildroot}%{kube_plugin_path} pushd _thirdpartyhacks/src/%{sdn_import_path}/ovssubnet/bin install -p -m 755 openshift-ovs-subnet %{buildroot}%{kube_plugin_path}/openshift-ovs-subnet install -p -m 755 openshift-sdn-kube-subnet-setup.sh %{buildroot}%{_bindir}/ install -p -m 755 openshift-sdn-simple-setup-node.sh %{buildroot}%{_bindir}/ popd %files %defattr(-,root,root,-) %doc README.md LICENSE %{_bindir}/openshift %{_bindir}/osc %{_bindir}/osadm %{_sharedstatedir}/%{name} %files master %defattr(-,root,root,-) %{_unitdir}/openshift-master.service %config(noreplace) %{_sysconfdir}/sysconfig/openshift-master %config(noreplace) /etc/%{name}/master %post master %systemd_post %{basename:openshift-master.service} %preun master %systemd_preun %{basename:openshift-master.service} %postun master %systemd_postun %files node %defattr(-,root,root,-) %{_unitdir}/openshift-node.service %config(noreplace) %{_sysconfdir}/sysconfig/openshift-node %config(noreplace) /etc/%{name}/node %{_bindir}/openshift-sdn-simple-setup-node.sh %{_bindir}/openshift-sdn-kube-subnet-setup.sh %{kube_plugin_path}/openshift-ovs-subnet %post node %systemd_post %{basename:openshift-node.service} %preun node %systemd_preun %{basename:openshift-node.service} %postun node %systemd_postun %files -n tuned-profiles-openshift-node %defattr(-,root,root,-) %{_prefix}/lib/tuned/openshift-node-host %{_prefix}/lib/tuned/openshift-node-guest %{_mandir}/man7/tuned-profiles-openshift-node.7* %post -n tuned-profiles-openshift-node recommended=`/usr/sbin/tuned-adm recommend` if [[ "${recommended}" =~ guest ]] ; then /usr/sbin/tuned-adm profile openshift-node-guest > /dev/null 2>&1 else /usr/sbin/tuned-adm profile openshift-node-host > /dev/null 2>&1 fi %preun -n tuned-profiles-openshift-node # reset the tuned profile to the recommended profile # $1 = 0 when we're being removed > 0 during upgrades if [ "$1" = 0 ]; then recommended=`/usr/sbin/tuned-adm recommend` /usr/sbin/tuned-adm profile $recommended > /dev/null 2>&1 fi %files clients %{_datadir}/%{name}/linux/osc %{_datadir}/%{name}/macosx/osc %{_datadir}/%{name}/windows/osc.exe %files dockerregistry %defattr(-,root,root,-) %{_bindir}/dockerregistry %files pod %defattr(-,root,root,-) %{_bindir}/pod %changelog * Mon Jan 26 2015 Scott Dodson 0.2-3 - Update to 21fb40637c4e3507cca1fcab6c4d56b06950a149 - Split packaging of openshift-master and openshift-node * Mon Jan 19 2015 Scott Dodson 0.2-2 - new package built with tito * Fri Jan 09 2015 Adam Miller - 0.2-2 - Add symlink for osc command line tooling (merged in from jhonce@redhat.com) * Wed Jan 07 2015 Adam Miller - 0.2-1 - Update to latest upstream release - Restructured some of the golang deps build setup for restructuring done upstream * Thu Oct 23 2014 Adam Miller - 0-0.0.9.git562842e - Add new patches from jhonce for systemd units * Mon Oct 20 2014 Adam Miller - 0-0.0.8.git562842e - Update to latest master snapshot * Wed Oct 15 2014 Adam Miller - 0-0.0.7.git7872f0f - Update to latest master snapshot * Fri Oct 03 2014 Adam Miller - 0-0.0.6.gite4d4ecf - Update to latest Alpha nightly build tag 20141003 * Wed Oct 01 2014 Adam Miller - 0-0.0.5.git6d9f1a9 - Switch to consistent naming, patch by jhonce * Tue Sep 30 2014 Adam Miller - 0-0.0.4.git6d9f1a9 - Add systemd and sysconfig entries from jhonce * Tue Sep 23 2014 Adam Miller - 0-0.0.3.git6d9f1a9 - Update to latest upstream. * Mon Sep 15 2014 Adam Miller - 0-0.0.2.git2647df5 - Update to latest upstream. * Thu Aug 14 2014 Adam Miller - 0-0.0.1.gitc3839b8 - First package