Skip to content

Instantly share code, notes, and snippets.

@dave-tucker
Last active August 29, 2015 14:15
Show Gist options
  • Save dave-tucker/026061f6b89e11392c70 to your computer and use it in GitHub Desktop.
Save dave-tucker/026061f6b89e11392c70 to your computer and use it in GitHub Desktop.
#!/bin/sh
# build_ovs_binary.sh
#
# Expects OVS_VERSION to be set by the CI system
# Requires Docker
curl -sSLO https://github.com/openvswitch/ovs/archive/v${OVS_VERSION}.tar.gz
tar -xzvf v${OVS_VERSION}.tar.gz
cd ovs-${OVS_VERSION}
# Let's build OVS using Docker, so we don't pollute the host
docker run --rm -v $(pwd):/usr/src/ovs -w /usr/src/ovs gcc bash -c "./boot.sh && ./configure --enable-shared && make"
cd ..
# Set up directory structure for the tar file
mkdir -p openvswitch-${OVS_VERSION}/bin
mkdir -p openvswitch-${OVS_VERSION}/sbin
mkdir -p openvswitch-${OVS_VERSION}/lib
mkdir -p openvswitch-${OVS_VERSION}/share/scripts
# populate sbin...
cp ovs-${OVS_VERSION}/ovsdb/ovsdb-server openvswitch-${OVS_VERSION}/sbin/
cp ovs-${OVS_VERSION}/vswitchd/ovs-vswitchd openvswitch-${OVS_VERSION}/sbin/
# and bin...
cp ovs-${OVS_VERSION}/utilities/ovs-appctl openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/utilities/ovs-dpctl openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/utilities/ovs-ofctl openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/utilities/ovs-pcap openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/utilities/ovs-tcpundump openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/utilities/ovs-vsctl openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/ovsdb/ovsdb-tool openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/utilities/ovs-benchmark openvswitch-${OVS_VERSION}/bin/
if [ -f ovs-${OVS_VERSION}/utilities/ovs-dpctl-top ]; then
cp ovs-${OVS_VERSION}/utilities/ovs-dpctl-top openvswitch-${OVS_VERSION}/bin/
fi
if [ -f ovs-${OVS_VERSION}/utilities/ovs-parse-leaks ]; then
cp ovs-${OVS_VERSION}/utilities/ovs-parse-leaks openvswitch-${OVS_VERSION}/bin/
fi
if [ -f ovs-${OVS_VERSION}/utilities/ovs-parse-backtrace ]; then
cp ovs-${OVS_VERSION}/utilities/ovs-parse-backtrace openvswitch-${OVS_VERSION}/bin/
fi
cp ovs-${OVS_VERSION}/utilities/ovs-pki openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/utilities/ovs-vlan-test openvswitch-${OVS_VERSION}/bin/
cp ovs-${OVS_VERSION}/ovsdb/ovsdb-client openvswitch-${OVS_VERSION}/bin/
if [ -f ovs-${OVS_VERSION}/vtep/vtep-ctl ]; then
cp ovs-${OVS_VERSION}/vtep/vtep-ctl openvswitch-${OVS_VERSION}/bin/
fi
# and lib
find . -name "*.so" -exec cp {} openvswitch-${OVS_VERSION}/lib/ \;
#and finally share...
cp ovs-${OVS_VERSION}/vswitchd/vswitch.ovsschema openvswitch-${OVS_VERSION}/share
if [ -f ovs-${OVS_VERSION}/vtep/vtep.ovsschema ]; then
cp ovs-${OVS_VERSION}/vtep/vtep.ovsschema openvswitch-${OVS_VERSION}/share/
fi
cp -r ovs-${OVS_VERSION}/python openvswitch-${OVS_VERSION}/share
cp ovs-${OVS_VERSION}/utilities/ovs-ctl openvswitch-${OVS_VERSION}/share/scripts/
cp ovs-${OVS_VERSION}/utilities/ovs-lib openvswitch-${OVS_VERSION}/share/scripts/
cp ovs-${OVS_VERSION}/utilities/ovs-save openvswitch-${OVS_VERSION}/share/scripts/
if [ -f ovs-${OVS_VERSION}/utilities/ovs-check-dead-ifs ]; then
cp ovs-${OVS_VERSION}/utilities/ovs-check-dead-ifs openvswitch-${OVS_VERSION}/share/scripts/
fi
if [ -f ovs-${OVS_VERSION}/vtep/ovs-vtep ]; then
cp ovs-${OVS_VERSION}/vtep/ovs-vtep openvswitch-${OVS_VERSION}/share/scripts/
fi
# wrap it up
tar -czvf openvswitch-${OVS_VERSION}.tar.gz openvswitch-${OVS_VERSION}
# cleanup
rm -r openvswitch-${OVS_VERSION}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment