aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Varlese <marco.varlese@suse.com>2017-10-06 15:07:08 +0200
committerDave Wallace <dwallacelf@gmail.com>2017-10-09 02:41:01 +0000
commitc2e63feb6209ef504753fe2c975cf61b1c31b5cf (patch)
tree3e7d73fd78cd195c8e5d7c43d4c51a1d8707e83e
parente9aebf9db548b940c77f7c5826a1260d1931e75d (diff)
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>
-rw-r--r--extras/vagrant/Vagrantfile3
-rwxr-xr-xextras/vagrant/build.sh35
-rwxr-xr-xextras/vagrant/run.sh19
-rwxr-xr-xextras/vagrant/update.sh20
-rw-r--r--src/m4/ax_vpp_find_jdk8.m42
5 files changed, 33 insertions, 46 deletions
diff --git a/extras/vagrant/Vagrantfile b/extras/vagrant/Vagrantfile
index 714ba94c953..badaa979a43 100644
--- a/extras/vagrant/Vagrantfile
+++ b/extras/vagrant/Vagrantfile
@@ -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
diff --git a/extras/vagrant/build.sh b/extras/vagrant/build.sh
index fcfd52aa707..d317c31aca6 100755
--- a/extras/vagrant/build.sh
+++ b/extras/vagrant/build.sh
@@ -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
diff --git a/extras/vagrant/run.sh b/extras/vagrant/run.sh
index 1cd3382640a..3c779fa23f6 100755
--- a/extras/vagrant/run.sh
+++ b/extras/vagrant/run.sh
@@ -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
diff --git a/extras/vagrant/update.sh b/extras/vagrant/update.sh
index b4962bfc313..18bc25736a1 100755
--- a/extras/vagrant/update.sh
+++ b/extras/vagrant/update.sh
@@ -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
diff --git a/src/m4/ax_vpp_find_jdk8.m4 b/src/m4/ax_vpp_find_jdk8.m4
index 382a6c80e8f..94b785038f7 100644
--- a/src/m4/ax_vpp_find_jdk8.m4
+++ b/src/m4/ax_vpp_find_jdk8.m4
@@ -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