X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=fuel-plugin%2Fbuild_kvm.sh;h=40220b7b0559a274cebb982a18e6d5da9bf3abab;hb=465249b61b72d33fe1fad8d43da332faef22bec0;hp=a26532d6982589c0ebeb29362ddcc634b6bf298e;hpb=253d8ef5e9f6b9177954ce9eb3b8c9b7684cf2a4;p=kvmfornfv.git diff --git a/fuel-plugin/build_kvm.sh b/fuel-plugin/build_kvm.sh index a26532d69..40220b7b0 100755 --- a/fuel-plugin/build_kvm.sh +++ b/fuel-plugin/build_kvm.sh @@ -1,159 +1,52 @@ #!/bin/bash -KVM_COMMIT="0e68cb048bb8aadb14675f5d4286d8ab2fc35449" -OVS_COMMIT="4ff6642f3c1dd8949c2f42b3310ee2523ee970a6" -KEEP=no +SRC=/root +CONFIG="arch/x86/configs/opnfv.config" +VERSION="1.0.OPNFV" quirks() { - # Workaround build bug on Ubuntu 14.04 - cat < arch/x86/boot/install.sh -#!/bin/sh -cp -a -- "\$2" "\$4/vmlinuz-\$1" -EOF - - # Add deprecated XFS delaylog option back in - cat <m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE); - mp->m_qflags &= ~XFS_GQUOTA_ENFD; -+ } else if (!strcmp(this_char, MNTOPT_DELAYLOG)) { -+ xfs_warn(mp, -+ "delaylog is the default now, option is deprecated."); - } else if (!strcmp(this_char, MNTOPT_DISCARD)) { - mp->m_flags |= XFS_MOUNT_DISCARD; - } else if (!strcmp(this_char, MNTOPT_NODISCARD)) { --- -1.9.1 - -EOF -} - -for i +# +# Apply out of tree patches +# +for i in $SRC/kvmfornfv/patches/$1/*.patch do - case $i in - - -k) KEEP=yes - shift - ;; - - -c) KVM_COMMIT=$2 - shift;shift - ;; - - -o) OVS_COMMIT=$2 - shift;shift - ;; - - esac + if [ -f "$i" ] + then + echo "Applying: $i" + patch -p1 <$i + fi done +} -SRC=${1:-/root} -CONFIG=${2:-arch/x86/configs/opnfv.config} -VERSION=${3:-1.0.OPNFV} - -# Check for necessary build tools -if ! type git >/dev/null 2>/dev/null -then - echo "Build tools missing, run the command - -apt-get install git fakeroot build-essential ncurses-dev xz-utils kernel-package automake - -as root and try again" - exit 1 -fi - -# Make sure the source dir exists -if [ ! -d $SRC ] -then - echo "$SRC: no such directory" - exit 1 -fi - -( - cd $SRC - - # Get the Open VSwitch sources - if [ ! -d ovs ] - then - git clone https://github.com/openvswitch/ovs.git - fi - - # Get the KVM for NFV kernel sources - if [ ! -d kvmfornfv ] - then - git clone https://gerrit.opnfv.org/gerrit/kvmfornfv - fi - cd kvmfornfv - git pull - if [ x$KVM_COMMIT != x ] - then - git checkout $KVM_COMMIT - else - git reset --hard - fi - cd kernel +apt-get update +apt-get install -y git fakeroot build-essential ncurses-dev xz-utils kernel-package bc autoconf automake libtool python python-pip libssl-dev - quirks +# +# Build kernel in another directory, so some files (which are root writeable only) generated during kernel +# building wouldn't remain in the source directory mapped into Docker container +# +cp -r /kvmfornfv $SRC/. - # Configure the kernel - cp $CONFIG .config +cd $SRC/kvmfornfv/ +quirks kernel - make oldconfig arch/x86/boot/install.sh +#!/bin/sh +cp -a -- "\$2" "\$4/vmlinuz-\$1" +EOF - # Build OVS kernel modules - cd ../../ovs - if [ x$OVS_COMMIT != x ] - then - git checkout $OVS_COMMIT - else - git reset --hard - fi +# Configure the kernel +cp $CONFIG .config - # - # Apply out of tree patches - # - for i in $SRC/kvmfornfv/patches/ovs/*.patch - do - if [ -f "$i" ] - then - echo "Applying: $i" - patch -p1 <$i - fi - done +make oldconfig