packaging: Make qemu/apply_patches.sh common

Moved the qemu/apply_patches.sh to the common scripts directory and
refactor it so that it can be used as a generic and consistent way
to apply patches.

Fixes #1014

Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Signed-off-by: Peng Tao <bergwolf@hyper.sh>
This commit is contained in:
Wainer dos Santos Moschetta 2020-10-21 17:36:19 -04:00 committed by Peng Tao
parent 14b18b55be
commit 7e92833bd4
3 changed files with 54 additions and 7 deletions

View File

@ -0,0 +1,48 @@
#!/bin/bash
#
# Copyright (c) 2020 Red Hat, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# This script apply patches.
#
set -e
script_dir="$(realpath $(dirname $0))"
patches_dir="$1"
if [ -z "$patches_dir" ]; then
cat <<-EOT
Apply patches to the sources at the current directory.
Patches are expected to be named in the standard git-format-patch(1) format where
the first part of the filename represents the patch ordering (lowest numbers
apply first):
'NUMBER-DASHED_DESCRIPTION.patch'
For example,
0001-fix-the-bad-thing.patch
0002-improve-the-fix-the-bad-thing-fix.patch
0003-correct-compiler-warnings.patch
Usage:
$0 PATCHES_DIR
Where:
PATCHES_DIR is the directory containing the patches
EOT
exit 1
fi
echo "INFO: Apply patches from $patches_dir"
if [ -d "$patches_dir" ]; then
patches=($(find "$patches_dir" -name '*.patch'|sort -t- -k1,1n))
echo "INFO: Found ${#patches[@]} patches"
for patch in ${patches[@]}; do
echo "INFO: Apply $patch"
git apply "$patch" || \
{ echo >&2 "ERROR: Not applied. Exiting..."; exit 1; }
done
else
echo "INFO: Patches directory does not exist"
fi

View File

@ -61,12 +61,10 @@ ADD static-build /root/static-build
# Apply experimental specific patches
# Patches to quick fix virtiofs fork
ENV VIRTIOFS_PATCHES_DIR=/root/kata_qemu/patches/${QEMU_VIRTIOFS_TAG}/
RUN if [ -d ${VIRTIOFS_PATCHES_DIR} ]; then \
echo "Patches to apply for virtiofs fixes:"; \
for patch in $(find "${VIRTIOFS_PATCHES_DIR}" -name '*.patch' -type f |sort -t- -k1,1n); do \
git apply $patch; \
done;fi
RUN /root/kata_qemu/apply_patches.sh
RUN /root/apply_patches.sh ${VIRTIOFS_PATCHES_DIR}
# Apply the stable branch patches
RUN stable_branch=$(cat VERSION | awk 'BEGIN{FS=OFS="."}{print $1 "." $2 ".x"}') && \
/root/apply_patches.sh "/root/kata_qemu/patches/${stable_branch}"
RUN PREFIX="${PREFIX}" /root/configure-hypervisor.sh -s kata-qemu | sed -e 's|--disable-seccomp||g' | xargs ./configure \
--with-pkgversion=kata-static

View File

@ -58,7 +58,8 @@ ADD qemu /root/kata_qemu
ADD scripts/apply_patches.sh /root/apply_patches.sh
ADD static-build /root/static-build
RUN /root/kata_qemu/apply_patches.sh
RUN stable_branch=$(cat VERSION | awk 'BEGIN{FS=OFS="."}{print $1 "." $2 ".x"}') && \
/root/apply_patches.sh "/root/kata_qemu/patches/${stable_branch}"
RUN PREFIX="${PREFIX}" /root/configure-hypervisor.sh -s kata-qemu | xargs ./configure \
--with-pkgversion=kata-static