]> xenbits.xensource.com Git - people/gdunlap/raisin.git/.git/commitdiff
Introduce generic function to install dependencies
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 18 Mar 2015 14:43:40 +0000 (14:43 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 18 Mar 2015 14:43:40 +0000 (14:43 +0000)
Use variables to store dependency list.
Treat Ubuntu like Debian.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
build.sh
common-functions.sh [new file with mode: 0644]
grub.sh
libvirt.sh
xen.sh

index 71f3b2a29871690f0f5f8ed83f44630dbcf17139..97c33db90151aec7b32acd0ec37bf5755e30add4 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -73,8 +73,8 @@ function get_distro() {
 
     # Simply distro version string
     case "$os_VENDOR" in
-        "Ubuntu"* | "LinuxMint"* )
-            DISTRO="Ubuntu"
+        "Debian"* | "Ubuntu"* | "LinuxMint"* )
+            DISTRO="Debian"
             ;;
         "SUSE"* )
             DISTRO="SUSE"
diff --git a/common-functions.sh b/common-functions.sh
new file mode 100644 (file)
index 0000000..de7a1a4
--- /dev/null
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+function install_dependencies() {
+    case $DISTRO in
+        "Debian" | "Ubuntu" )
+        $SUDO apt-get install -y $*
+        ;;
+        "Fedora" )
+        $SUDO yum install -y $*
+        ;;
+        * )
+        echo "I don't know how to install dependencies on $DISTRO"
+        ;;
+    esac
+}
diff --git a/grub.sh b/grub.sh
index 8ade78f6e66efe569b30635b12f95abd62974ddf..075763c63bf112e4651457b40435a2081dd74a88 100644 (file)
--- a/grub.sh
+++ b/grub.sh
@@ -1,11 +1,19 @@
 #!/usr/bin/env bash
 
 source config
+source common-functions.sh
+
+
+DEP_Debian_common="git build-essential tar autoconf bison flex"
+DEP_Debian_x86_32="$DEP_Debian_common"
+DEP_Debian_x86_64="$DEP_Debian_common libc6-dev-i386"
+DEP_Debian_arm32="$DEP_Debian_common"
+DEP_Debian_arm64="$DEP_Debian_common"
+
+DEP_Fedora_common="git make gcc tar automake autoconf sysconftool bison flex"
+DEP_Fedora_x86_32="$DEP_Fedora_common"
+DEP_Fedora_x86_64="$DEP_Fedora_common glibc-devel.i686"
 
-function grub_clean() {
-    rm -rf memdisk.tar
-    rm -rf grub-dir
-}
 
 function grub_build() {
     if test $ARCH != "x86_64" && test $ARCH != "x86_32"
@@ -14,28 +22,7 @@ function grub_build() {
         return
     fi
     echo installing Grub dependencies
-    case $DISTRO in
-        "Debian" | "Ubuntu" )
-        # grub also requires xen
-        $SUDO apt-get install -y git build-essential tar autoconf bison flex
-        if test $ARCH = "x86_64"
-        then
-            $SUDO apt-get install -y libc6-dev-i386
-        fi
-        ;;
-        "Fedora" )
-        $SUDO yum install -y git make gcc tar automake autoconf sysconftool \
-          bison flex
-        if test $ARCH = "x86_64"
-        then
-            $SUDO yum install -y glibc-devel.i686
-        fi
-        ;;
-        * )
-        echo "I don't know how to install grub dependencies on $DISTRO"
-        return 1
-        ;;
-    esac
+    eval install_dependencies \$DEP_"$DISTRO"_"$ARCH"
 
     tar cf memdisk.tar grub.cfg
     ./git-checkout.sh $GRUB_UPSTREAM_URL $GRUB_UPSTREAM_REVISION grub-dir
@@ -60,3 +47,8 @@ function grub_build() {
     fi
     cd ..
 }
+
+function grub_clean() {
+    rm -rf memdisk.tar
+    rm -rf grub-dir
+}
index 7e539c14aa02f46375b08d697faa3be81f934516..fda68f6e7061d04f904084cc7bbe38648a5da684 100644 (file)
@@ -1,32 +1,23 @@
 #!/usr/bin/env bash
 
 source config
+source common-functions.sh
+
+
+DEP_Debian_common="git build-essential libtool autoconf autopoint xsltproc libxml2-utils pkg-config python-dev libxml-xpath-perl libyajl-dev libxml2-dev gettext libdevmapper-dev libnl-3-dev libnl-route-3-dev"
+DEP_Debian_x86_32="$DEP_Debian_common"
+DEP_Debian_x86_64="$DEP_Debian_common"
+DEP_Debian_arm32="$DEP_Debian_common"
+DEP_Debian_arm64="$DEP_Debian_common"
+
+DEP_Fedora_common="git patch make gcc libtool autoconf gettext-devel python-devel libxslt yajl-devel libxml2-devel device-mapper-devel libpciaccess-devel libuuid-devel"
+DEP_Fedora_x86_32="$DEP_Fedora_common"
+DEP_Fedora_x86_64="$DEP_Fedora_common"
 
-function libvirt_clean() {
-    rm -rf libvirt-dir
-}
 
 function libvirt_build() {
     echo installing Libvirt dependencies
-    case $DISTRO in
-        "Debian" | "Ubuntu" )
-        # libvirt also requires xen
-        $SUDO apt-get install -y git build-essential libtool autoconf \
-                                 autopoint xsltproc libxml2-utils     \
-                                 pkg-config python-dev libxml-xpath-perl \
-                                 libyajl-dev libxml2-dev gettext \
-                                 libdevmapper-dev libnl-3-dev libnl-route-3-dev
-        ;;
-        "Fedora" )
-        $SUDO yum install -y git patch make gcc libtool autoconf gettext-devel \
-                             python-devel libxslt yajl-devel libxml2-devel \
-                             device-mapper-devel libpciaccess-devel libuuid-devel
-        ;;
-        * )
-        echo "I don't know how to install libvirt dependencies on $DISTRO"
-        return 1
-        ;;
-    esac
+    eval install_dependencies \$DEP_"$DISTRO"_"$ARCH"
 
     ./git-checkout.sh $LIBVIRT_UPSTREAM_URL $LIBVIRT_UPSTREAM_REVISION libvirt-dir
     cd libvirt-dir
@@ -41,3 +32,7 @@ function libvirt_build() {
     $MAKE --ignore-errors install DESTDIR=$INST_DIR
     cd ..
 }
+
+function libvirt_clean() {
+    rm -rf libvirt-dir
+}
diff --git a/xen.sh b/xen.sh
index 1370648852df17c8837ecf090bb1a0ae69f811cf..484e3587abfe15285d30da832ccbf5af511f8f05 100644 (file)
--- a/xen.sh
+++ b/xen.sh
@@ -1,49 +1,27 @@
 #!/usr/bin/env bash
 
 source config
+source common-functions.sh
+
+
+DEP_Debian_common="git build-essential python-dev gettext uuid-dev \
+    libncurses5-dev libyajl-dev libaio-dev pkg-config libglib2.0-dev \
+    libssl-dev libpixman-1-dev"
+DEP_Debian_x86_32="$DEP_Debian_common bcc iasl bin86 texinfo"
+DEP_Debian_x86_64="$DEP_Debian_x86_32 libc6-dev-i386"
+DEP_Debian_arm32="$DEP_Debian_common libfdt-dev"
+DEP_Debian_arm64="$DEP_Debian_arm32"
+
+DEP_Fedora_common="git make gcc python-devel gettext libuuid-devel \
+    ncurses-devel glib2-devel libaio-devel openssl-devel yajl-devel patch \
+    pixman-devel"
+DEP_Fedora_x86_32="$DEP_Fedora_common dev86 iasl texinfo"
+DEP_Fedora_x86_64="$DEP_Fedora_x86_32 glibc-devel.i686"
 
-function xen_clean() {
-    rm -rf xen-dir
-}
 
 function xen_build() {
     echo installing Xen dependencies
-    case $DISTRO in
-        "Debian" | "Ubuntu" )
-        $SUDO apt-get install -y git build-essential python-dev gettext \
-          uuid-dev libncurses5-dev libyajl-dev libaio-dev pkg-config \
-          libglib2.0-dev libssl-dev libpixman-1-dev
-        if test $ARCH = "x86_32" || test $ARCH = "x86_64"
-        then
-                $SUDO apt-get install -y bcc iasl bin86 texinfo
-        fi
-        if test $ARCH = "x86_64"
-        then
-            $SUDO apt-get install -y libc6-dev-i386
-        fi
-        if test $ARCH = "arm32" || test $ARCH = "arm64"
-        then
-            $SUDO apt-get install -y libfdt-dev
-        fi
-        ;;
-        "Fedora" )
-        $SUDO yum install -y git make gcc python-devel gettext \
-          libuuid-devel ncurses-devel glib2-devel libaio-devel openssl-devel \
-          yajl-devel patch pixman-devel 
-        if test $ARCH = "x86_32" || test $ARCH = "x86_64"
-        then
-            $SUDO yum install -y dev86 iasl texinfo
-        fi
-        if test $ARCH = "x86_64"
-        then
-            $SUDO yum install -y glibc-devel.i686
-        fi
-        ;;
-        * )
-        echo "I don't know how to install xen dependencies on $DISTRO"
-        return 1
-        ;;
-    esac
+    eval install_dependencies \$DEP_"$DISTRO"_"$ARCH"
 
     ./git-checkout.sh $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
     cd xen-dir
@@ -52,3 +30,10 @@ function xen_build() {
     $MAKE install DESTDIR="$INST_DIR"
     cd ..
 }
+
+function xen_clean() {
+    rm -rf xen-dir
+}
+
+
+