1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-06-05 02:20:30 +00:00

arm/classes: Introduce apply_local_src_patches bbclass

This class is to be inherited by recipes where there are patches located inside
the fetched source code which need to be applied.

The following variables need to be set:
LOCAL_SRC_PATCHES_INPUT_DIR is the directory from where the patches are located
LOCAL_SRC_PATCHES_DEST_DIR is the directory where the patches will be applied

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I8f9c16a5fbc9d5569cba60136560f1951408bd60
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Diego Sueiro
2022-11-21 14:23:45 +00:00
committed by Jon Mason
parent 23aed71692
commit 7fcff00498
@@ -0,0 +1,48 @@
# This class is to be inherited by recipes where there are patches located inside
# the fetched source code which need to be applied.
# The following variables need to be set:
# LOCAL_SRC_PATCHES_INPUT_DIR is the directory from where the patches are located
# LOCAL_SRC_PATCHES_DEST_DIR is the directory where the patches will be applied
do_patch[depends] += "quilt-native:do_populate_sysroot"
LOCAL_SRC_PATCHES_INPUT_DIR ??= ""
LOCAL_SRC_PATCHES_DEST_DIR ??= "${LOCAL_SRC_PATCHES_INPUT_DIR}"
python() {
if not d.getVar('LOCAL_SRC_PATCHES_INPUT_DIR'):
bb.warn("LOCAL_SRC_PATCHES_INPUT_DIR variable needs to be set.")
}
apply_local_src_patches() {
input_dir="${LOCAL_SRC_PATCHES_INPUT_DIR}"
dest_dir="${LOCAL_SRC_PATCHES_DEST_DIR}"
if [ ! -d "$input_dir" ] ; then
bbfatal "LOCAL_SRC_PATCHES_INPUT_DIR=$input_dir not found."
fi
if [ ! -d "$dest_dir" ] ; then
bbfatal "LOCAL_SRC_PATCHES_DEST_DIR=$dest_dir not found."
fi
cd $dest_dir
export QUILT_PATCHES=./patches-extra
mkdir -p patches-extra
for patch in $(find $input_dir -type f -name *.patch -or -name *.diff)
do
patch_basename=`basename $patch`
if ! quilt applied $patch_basename >/dev/null ; then
bbdebug 1 "Applying $patch_basename in $dest_dir."
echo $patch_basename >> patches-extra/series
cp $patch patches-extra
quilt push $patch_basename
else
bbdebug 1 "$patch_basename already applied."
fi
done
}
do_patch[postfuncs] += "apply_local_src_patches"