aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/bash
diff options
context:
space:
mode:
authorpmikus <pmikus@cisco.com>2017-03-29 16:51:34 +0200
committerPeter Mikus <pmikus@cisco.com>2017-04-09 14:47:25 +0000
commit2e115ad11cca45b11c0f1949fd8c42fec899bb68 (patch)
treedc5e73e56944f5639d28de6e2cbedfce491af992 /resources/libraries/bash
parentffd596f616dc9a65e113b25ba72b00ce6dd42a7b (diff)
CSIT-441 vhost - Parametrized qemu install
Update the current QEMU installation script with option to override QEMU installation and to apply additional patches. Additional patches are applied from qemu_patches directory and subdir for specific QEMU version by run-parts. This means that all patches for particular version are applied. All keywords for build QEMU are updated. Change-Id: I0c874a96ac828dff657ee33eb87d88a8854128ad Signed-off-by: pmikus <pmikus@cisco.com>
Diffstat (limited to 'resources/libraries/bash')
-rwxr-xr-x[-rw-r--r--]resources/libraries/bash/qemu_build.sh91
-rwxr-xr-xresources/libraries/bash/qemu_patches/qemu-2.5.0/01-qsz102416
2 files changed, 70 insertions, 37 deletions
diff --git a/resources/libraries/bash/qemu_build.sh b/resources/libraries/bash/qemu_build.sh
index e151947543..ad6d27b646 100644..100755
--- a/resources/libraries/bash/qemu_build.sh
+++ b/resources/libraries/bash/qemu_build.sh
@@ -12,12 +12,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-QEMU_VERSION="qemu-2.2.1"
-
-QEMU_DOWNLOAD_REPO="http://wiki.qemu-project.org/download/"
-QEMU_DOWNLOAD_PACKAGE="${QEMU_VERSION}.tar.bz2"
+QEMU_VERSION="qemu-2.5.0"
+QEMU_DOWNLOAD_REPO="http://download.qemu-project.org/"
+QEMU_DOWNLOAD_PACKAGE="${QEMU_VERSION}.tar.xz"
QEMU_PACKAGE_URL="${QEMU_DOWNLOAD_REPO}${QEMU_DOWNLOAD_PACKAGE}"
-QEMU_INSTALL_DIR="/opt/qemu"
+QEMU_INSTALL_DIR="/opt/${QEMU_VERSION}"
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+for i in "$@"; do
+ case $i in
+ --version=*)
+ QEMU_VERSION="${i#*=}"
+ shift ;;
+ --directory=*)
+ QEMU_INSTALL_DIR="${i#*=}"
+ shift ;;
+ --patch)
+ PATCH=1
+ shift ;;
+ --force)
+ FORCE=1
+ shift ;;
+ *)
+ ;;
+ esac
+done
if test "$(id -u)" -ne 0
then
@@ -25,45 +44,43 @@ then
exit 1
fi
-WORKING_DIR=$(mktemp -d)
-test $? -eq 0 || exit 1
-
-cleanup () {
- rm -r ${WORKING_DIR}
-}
-
-trap cleanup EXIT
+WORKING_DIR=$(mktemp -d) || \
+ { echo "Failed to create temporary working dir"; exit 1; }
+trap "rm -r ${WORKING_DIR}" EXIT
-if [[ "$@" == "--force" ]]
+if [ $FORCE ]
then
rm -rf ${QEMU_INSTALL_DIR}
else
- test -d ${QEMU_INSTALL_DIR} && echo "Qemu already installed: ${QEMU_INSTALL_DIR}" && exit 0
+ test -d ${QEMU_INSTALL_DIR} && \
+ { echo "Qemu already installed: ${QEMU_INSTALL_DIR}"; exit 0; }
fi
-echo
-echo Downloading QEMU source
-echo
-wget -P ${WORKING_DIR} -q ${QEMU_PACKAGE_URL} || exit
-test $? -eq 0 || exit 1
+# Download QEMU source code
+wget -P ${WORKING_DIR} -q ${QEMU_PACKAGE_URL} || \
+ { echo "Failed to download ${QEMU_VERSION}"; exit 1; }
-echo
-echo Extracting QEMU
-echo
-tar --strip-components 1 -xjf ${WORKING_DIR}/${QEMU_DOWNLOAD_PACKAGE} -C ${WORKING_DIR} || exit
-test $? -eq 0 || exit 1
+# Extract archive into temp directory
+tar --strip-components 1 -xf ${WORKING_DIR}/${QEMU_DOWNLOAD_PACKAGE} -C ${WORKING_DIR} || \
+ { echo "Failed to extract ${QEMU_VERSION}.tar.xz"; exit 1; }
-echo
-echo Building QEMU
-echo
cd ${WORKING_DIR}
-mkdir ${QEMU_INSTALL_DIR}
-mkdir build
-cd build
-../configure --target-list=x86_64-softmmu --prefix=${QEMU_INSTALL_DIR} || exit
-make -j`nproc` || exit 1
-make install || exit 1
+mkdir ${QEMU_INSTALL_DIR} || \
+ { echo "Failed to create ${QEMU_INSTALL_DIR}"; exit 1; }
+
+# Apply additional patches
+if [ $PATCH ]
+then
+ chmod +x ${SCRIPT_DIR}/qemu_patches/${QEMU_VERSION}/*
+ run-parts --verbose --report ${SCRIPT_DIR}/qemu_patches/${QEMU_VERSION}
+fi
+
+# Build
+./configure --target-list=x86_64-softmmu --prefix=${QEMU_INSTALL_DIR} || \
+ { echo "Failed to configure ${QEMU_VERSION}"; exit 1; }
+make -j`nproc` || \
+ { echo "Failed to compile ${QEMU_VERSION}"; exit 1; }
+make install || \
+ { echo "Failed to install ${QEMU_VERSION}"; exit 1; }
-echo
-echo QEMU ready
-echo
+echo QEMU ${QEMU_VERSION} ready
diff --git a/resources/libraries/bash/qemu_patches/qemu-2.5.0/01-qsz1024 b/resources/libraries/bash/qemu_patches/qemu-2.5.0/01-qsz1024
new file mode 100755
index 0000000000..6f5831dc8d
--- /dev/null
+++ b/resources/libraries/bash/qemu_patches/qemu-2.5.0/01-qsz1024
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+patch hw/net/virtio-net.c <<"_EOF"
+1333c1333
+< n->vqs[index].rx_vq = virtio_add_queue(vdev, 256, virtio_net_handle_rx);
+---
+> n->vqs[index].rx_vq = virtio_add_queue(vdev, 1024, virtio_net_handle_rx);
+1336c1336
+< virtio_add_queue(vdev, 256, virtio_net_handle_tx_timer);
+---
+> virtio_add_queue(vdev, 1024, virtio_net_handle_tx_timer);
+1342c1342
+< virtio_add_queue(vdev, 256, virtio_net_handle_tx_bh);
+---
+> virtio_add_queue(vdev, 1024, virtio_net_handle_tx_bh);
+_EOF