Allow use of /etc/os-release file 96/8696/4
authorMarco Varlese <marco.varlese@suse.com>
Fri, 6 Oct 2017 13:07:08 +0000 (15:07 +0200)
committerDave Wallace <dwallacelf@gmail.com>
Mon, 9 Oct 2017 02:41:01 +0000 (02:41 +0000)
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>
extras/vagrant/Vagrantfile
extras/vagrant/build.sh
extras/vagrant/run.sh
extras/vagrant/update.sh
src/m4/ax_vpp_find_jdk8.m4

index 714ba94..badaa97 100644 (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
index fcfd52a..d317c31 100755 (executable)
@@ -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
 
index 1cd3382..3c779fa 100755 (executable)
@@ -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
index b4962bf..18bc257 100755 (executable)
@@ -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
index 382a6c8..94b7850 100644 (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