Summary: Cloud native application connectivity and network policy Name: calico-node Version: 3.0.4 Release: 1 License: ASL 2.0 URL: http://www.projectcalico.org # Download https://github.com/projectcalico/calico/archive/v3.0.4.tar.gz # cd calico-3.0.4/calico-node/ # Run glide install --strip-vendor Source0: calico-3.0.4+vendor.tar.gz # Download https://github.com/projectcalico/felix/archive/3.0.4.tar.gz # Run glide install --strip-vendor Source1: felix-3.0.4+vendor.tar.gz # Download https://github.com/projectcalico/confd/archive/v1.0.3.tar.gz # Run glide install --strip-vendor Source2: confd-1.0.3+vendor.tar.gz # git clone --depth 1 --single-branch --branch support-calicov3 https://github.com/fkakuma/calico-bgp-daemon.git # mv calico-bgp-daemon calico-bgp-daemon-calicov3 # cd calico-bgp-daemon-calicov3/ # rm -rf .git # glide install --strip-vendor Source3: calico-bgp-daemon-calicov3+vendor.tar.gz Source4: http://smarden.org/runit/runit-2.1.2.tar.gz Patch0: calico-3.0.4-aix.patch Patch1: felix-3.0.4-aix.patch Patch2: confd-1.0.3-aix.patch Patch3: calico-bgp-daemon-calicov3-aix.patch Group: Applications/System BuildRequires: gcc-go >= 8.1.0 BuildRequires: libgo >= 8.1.0-2 BuildRequires: libgcc >= 8.1.0-2 Requires: libgo >= 8.1.0-2 Requires: libgcc >= 8.1.0-2 Requires: criwpar >= 0.1.0 %description Calico is an open source system enabling cloud native application connectivity and policy. Calico integrates with major orchestration systems like Kubernetes, Apache Mesos, Docker, OpenStack and more to provide a seamless experience for developers and operators. Calico is a Tigera open source project, and is primarily maintained by the Tigera team. %post mkwpari -e PATH=/usr/bin:/etc:/usr/sbin:/sbin:/opt/freeware/bin:/opt/freeware/sbin -c start_runit -w / /opt/freeware/share/kubernetes/calico-node.bff ibmcom/calico-node-aix:v3.0.4 >/dev/null rm -f /opt/freeware/share/kubernetes/calico-node.bff exit 0 %postun rmwpari ibmcom/calico-node-aix:v3.0.4 >/dev/null 2>&1 exit 0 %prep %setup -q -c -a 1 -a 2 -a 3 -a 4 cd calico-3.0.4/ %patch0 -p1 -b .aix cd ../felix-3.0.4/ %patch1 -p1 -b .aix cd ../confd-1.0.3/ %patch2 -p1 -b .aix cd ../calico-bgp-daemon-calicov3/ %patch3 -p1 -b .aix %build export PATH=/usr/bin:/etc:/usr/sbin:/sbin:/opt/freeware/bin mkdir -p ./_root mkdir -p ./_build/src/github.com/projectcalico/ ln -s $(pwd)/calico-3.0.4 ./_build/src/github.com/projectcalico/calico ln -s $(pwd)/felix-3.0.4 ./_build/src/github.com/projectcalico/felix ln -s $(pwd)/calico-bgp-daemon-calicov3 ./_build/src/github.com/projectcalico/calico-bgp-daemon mkdir -p ./_build/src/github.com/kelseyhightower/ ln -s $(pwd)/confd-1.0.3 ./_build/src/github.com/kelseyhightower/confd export GOPATH=$(pwd)/_build export GOARCH=ppc64 export CGO_ENABLED=1 export GOROOT=$(pwd)/_root ulimit -d unlimited ulimit -m unlimited ulimit -s unlimited ulimit -f unlimited # startup go build -p=3 -v -gccgoflags='all=-mcmodel=large' -o dist/startup $GOPATH/src/github.com/projectcalico/calico/calico_node/startup/startup.go strip -X64 -t dist/startup # allocate-ipip-addr go build -p=3 -v -gccgoflags='all=-mcmodel=large' -o dist/allocate-ipip-addr $GOPATH/src/github.com/projectcalico/calico/calico_node/allocateipip/allocate_ipip_addr.go strip -X64 -t dist/allocate-ipip-addr # calico-felix go build -p=3 -v -gccgoflags='all=-mcmodel=large' -o dist/calico-felix github.com/projectcalico/felix strip -X64 -t dist/calico-felix # confd go build -p=3 -v -gccgoflags='all=-mcmodel=large' -o dist/confd github.com/kelseyhightower/confd strip -X64 -t dist/confd # calico-bgp-daemon go build -p=3 -v -gccgoflags='all=-mcmodel=large' -o dist/calico-bgp-daemon github.com/projectcalico/calico-bgp-daemon strip -X64 -t dist/calico-bgp-daemon # runit cd admin/runit-2.1.2/ cp src/Makefile src/Makefile.orig /bin/sed -e 's/ -static//' < src/Makefile.orig > src/Makefile package/compile cp command/runsv ../../dist/runsv cp command/runsvdir ../../dist/runsvdir cp command/sv ../../dist/sv cp command/svlogd ../../dist/svlogd cd - # calico-node.bff rm -fr dist/calico-node-rootfs mkdir -p dist/calico-node-rootfs cd dist/calico-node-rootfs mkdir dev etc home tmp var ln -s /usr/bin/ bin ln -s /usr/lib/ lib ln -s /usr/lib/boot/unix_64 unix mkdir -p opt/freeware/lib # Only keep 64-bit member of libgcc_s.a cp /opt/freeware/lib/libgcc_s.a opt/freeware/lib/ ar -X32 -od opt/freeware/lib/libgcc_s.a # Only keep the stripped 64-bit member of libgo.a ar -X64 -p /opt/freeware/lib/libgo.a libgo.so.13 > ../libgo.so.13 # XXX calico-bgp-daemon crashes when libgo is stripped! # strip -X64 -x ../libgo.so.13 # strip -t internal error ar -X64 cr opt/freeware/lib/libgo.a ../libgo.so.13 mkdir -p opt/freeware/bin mkdir -p opt/freeware/sbin mkdir -p etc/service/available mkdir -p etc/calico/confd/conf.d mkdir -p etc/calico/confd/config mkdir -p etc/calico/confd/templates cp $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/etc/calico/felix.cfg etc/calico/ cp $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/etc/calico/confd/templates/tunl-ip.template etc/calico/confd/templates/ cp $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/etc/calico/confd/conf.d/tunl-ip.toml etc/calico/confd/conf.d/ mkdir -p var/log/calico mkdir -p var/run/calico cp ../startup ../allocate-ipip-addr ../confd ../calico-felix ../calico-bgp-daemon opt/freeware/bin/ cp ../runsv ../runsvdir ../sv ../svlogd opt/freeware/sbin/ cp $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/sbin/* opt/freeware/sbin/ cp $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/etc/rc.local etc/ cp -R $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/etc/service/available/calico-bgp-daemon etc/service/available/ cp -R $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/etc/service/available/confd etc/service/available/ cp -R $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/etc/service/available/felix etc/service/available/ cp -R $GOPATH/src/github.com/projectcalico/calico/calico_node/filesystem/licenses . find . | backup -iqf ../calico-node.bff cd - %install mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/kubernetes /usr/bin/install -M 0644 -f ${RPM_BUILD_ROOT}%{_datadir}/kubernetes dist/calico-node.bff %clean rm -rf ${RPM_BUILD_ROOT} %files %doc calico-3.0.4/LICENSE calico-3.0.4/README.md %config(missingok) %{_datadir}/kubernetes/calico-node.bff %changelog * Wed Aug 22 2018 Damien Bergamini - 3.0.4-1 - Initial port of calico-node 3.0.4 to AIX