Allow use of /etc/os-release file

The top-level Makefile in VPP already uses the file /etc/os-release to
recognize which OS the build is being performed on.
The scripts for vagrant images instead were still using different files
for different distros and adding a new distro to be supported causes
issues with the extra-logic to deal with it.
This patch aligns the vagrant scripts to use the same approach followed
by the top-level Makefile and simplifies the steps to identify / update
the OS and build / run VPP.

Change-Id: I539f4a7c27b3fef70ed1c12b0276049bc47dc289
Signed-off-by: Marco Varlese <marco.varlese@suse.com>
This commit is contained in:
Marco Varlese
2017-10-06 15:07:08 +02:00
committed by Dave Wallace
parent e9aebf9db5
commit c2e63feb62
5 changed files with 33 additions and 46 deletions

View File

@@ -9,6 +9,9 @@ Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
config.vm.box_version = "1708.01"
config.ssh.insert_key = false
elsif distro == 'opensuse'
config.vm.box = "opensuse/openSUSE-42.3-x86_64"
config.vm.box_version = "1.0.4.20170726"
else
config.vm.box = "puppetlabs/ubuntu-16.04-64-nocm"
end

View File

@@ -17,22 +17,11 @@ echo 2:$2
echo VPP_DIR: $VPP_DIR
echo SUDOCMD: $SUDOCMD
# Figure out what system we are running on
if [ -f /etc/lsb-release ];then
. /etc/lsb-release
elif [ -f /etc/redhat-release ];then
sudo yum install -y redhat-lsb
DISTRIB_ID=`lsb_release -si`
DISTRIB_RELEASE=`lsb_release -sr`
DISTRIB_CODENAME=`lsb_release -sc`
DISTRIB_DESCRIPTION=`lsb_release -sd`
elif [ -f /etc/os-release ];then
. /etc/os-release
DISTRIB_ID=$ID
DISTRIB_RELEASE=$VERSION_ID
DISTRIB_CODENAME=$VERSION
DISTRIB_DESCRIPTION=$PRETTY_NAME
if [ "$(uname)" <> "Darwin" ]; then
OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
fi
KERNEL_OS=`uname -o`
KERNEL_MACHINE=`uname -m`
KERNEL_RELEASE=`uname -r`
@@ -42,10 +31,8 @@ echo KERNEL_OS: $KERNEL_OS
echo KERNEL_MACHINE: $KERNEL_MACHINE
echo KERNEL_RELEASE: $KERNEL_RELEASE
echo KERNEL_VERSION: $KERNEL_VERSION
echo DISTRIB_ID: $DISTRIB_ID
echo DISTRIB_RELEASE: $DISTRIB_RELEASE
echo DISTRIB_CODENAME: $DISTRIB_CODENAME
echo DISTRIB_DESCRIPTION: $DISTRIB_DESCRIPTION
echo OS_ID: $OS_ID
echo OS_VERSION_ID: $OS_ID
# Install dependencies
cd $VPP_DIR
@@ -57,7 +44,7 @@ $SUDOCMD make wipe
(cd build-root/;$SUDOCMD make distclean)
rm -f build-root/.bootstrap.ok
if [ $DISTRIB_ID == "CentOS" ]; then
if [ $OS_ID == "centos" ]; then
echo rpm -V apr-devel
rpm -V apr-devel
if [ $? != 0 ]; then sudo yum reinstall -y apr-devel;fi
@@ -72,14 +59,14 @@ fi
# Build and install packaging
$SUDOCMD make bootstrap
if [ "$DISTRIB_ID" == "Ubuntu" ]; then
if [ "$OS_ID" == "ubuntu" ]; then
$SUDOCMD make pkg-deb
elif [ "$DISTRIB_ID" == "debian" ]; then
elif [ "$OS_ID" == "debian" ]; then
$SUDOCMD make pkg-deb
elif [ "$DISTRIB_ID" == "CentOS" ]; then
elif [ "$OS_ID" == "centos" ]; then
(cd $VPP_DIR/vnet ;$SUDOCMD aclocal;$SUDOCMD automake -a)
$SUDOCMD make pkg-rpm
elif [ "$DISTRIB_ID" == "opensuse" ]; then
elif [ "$OS_ID" == "opensuse" ]; then
$SUDOCMD make build-release
fi

View File

@@ -1,22 +1,21 @@
#!/bin/bash
# Figure out what system we are running on
if [ -f /etc/lsb-release ];then
. /etc/lsb-release
elif [ -f /etc/redhat-release ];then
yum install -y redhat-lsb
DISTRIB_ID=`lsb_release -si`
DISTRIB_RELEASE=`lsb_release -sr`
DISTRIB_CODENAME=`lsb_release -sc`
DISTRIB_DESCRIPTION=`lsb_release -sd`
if [ "$(uname)" <> "Darwin" ]; then
OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
fi
if [ $DISTRIB_ID == "CentOS" ]; then
if [ "$OS_ID" == "ubuntu" ]; then
$OS_CODENAME=$UBUNTU_CODENAME
fi
if [ "$OS_ID" == "centos" ] || [ "$OS_ID" == "opensuse" ]; then
# Install uio-pci-generic
modprobe uio_pci_generic
fi
echo "Starting VPP..."
if [ $DISTRIB_ID == "Ubuntu" ] && [ $DISTRIB_CODENAME = "trusty" ] ; then
if [ "$OS_ID" == "ubuntu" ] && [ $OS_CODENAME = "trusty" ] ; then
start vpp
else
service vpp start

View File

@@ -12,19 +12,13 @@ if [ $HUGEPAGES != 1024 ]; then
exit
fi
# Figure out what system we are running on
if [ -f /etc/lsb-release ];then
. /etc/lsb-release
elif [ -f /etc/redhat-release ];then
yum install -y redhat-lsb
DISTRIB_ID=`lsb_release -si`
DISTRIB_RELEASE=`lsb_release -sr`
DISTRIB_CODENAME=`lsb_release -sc`
DISTRIB_DESCRIPTION=`lsb_release -sd`
if [ "$(uname)" <> "Darwin" ]; then
OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
fi
# Do initial setup for the system
if [ $DISTRIB_ID == "Ubuntu" ]; then
if [ "$OS_ID" == "ubuntu" ]; then
export DEBIAN_PRIORITY=critical
export DEBIAN_FRONTEND=noninteractive
@@ -41,7 +35,7 @@ if [ $DISTRIB_ID == "Ubuntu" ]; then
# Install useful but non-mandatory tools
apt-get install -y emacs x11-utils git-review gdb gdbserver xfce4-terminal iperf3
elif [ $DISTRIB_ID == "CentOS" ]; then
elif [ "$OS_ID" == "centos" ]; then
if [ "$(echo $DISTRIB_RELEASE | cut -d'.' -f1)" == "7" ]; then
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum groupinstall "X Window system" -y
@@ -50,4 +44,8 @@ elif [ $DISTRIB_ID == "CentOS" ]; then
# Standard update + upgrade dance
yum check-update
yum update -y
elif [ "$OS_ID" == "opensuse" ]; then
zypper update -y
# NASM >= 2.12 is not available in previous openSUSE release; need to install it from TW
zypper install -y https://download.opensuse.org/tumbleweed/repo/oss/suse/x86_64/nasm-2.13.01-2.1.x86_64.rpm
fi

View File

@@ -20,7 +20,7 @@ do
break
fi
for dir in $(find /usr/lib/jvm/* -maxdepth 0 -type d); do
for dir in $(find /usr/lib*/jvm/* -maxdepth 0 -type d); do
AC_MSG_CHECKING([${dir} for Java 8 compiler])
JAVA_VERSION=$(${dir}/bin/javac -source 8 -version 2>&1)
if test 0 -eq "$?"; then