Files
fedora/patch_kernel.sh
T
sharpenedblade fd61b9516c Initial commit.
2022-07-07 15:59:26 -07:00

40 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
RPMBUILD_PATH=${RPMBUILD_PATH:-/root/rpmbuild}
SOURCES_PATH=${RPMBUILD_PATH}/SOURCES
SPECS_PATH=${RPMBUILD_PATH}/SPECS
SPECFILE="${SPECS_PATH}/kernel.spec"
# Check for at least patch
if [ "$#" -lt 1 ]; then
echo "usage: $0 [ /path/to/patch/ ] [ description ]"
exit 1
fi
PATCHDIR=$1
PATCH="$(basename "$PATCHDIR")"
cd "${SOURCES_PATH}" || exit
# If adding patch from outside the source tree move it to the source tree
# shellcheck disable=SC2010
if ! ls | grep -q "$PATCH"; then
cp "$PATCHDIR" "$SOURCES_PATH"/
fi
if grep -q "$PATCH" "$SPECFILE"; then
echo "$PATCH already in kernel.spec"
exit 1
fi
# ID number of the last patch in kernel.spec
LPATCH_ID=$(grep ^Patch "$SPECFILE" | tail -n2 | head -n1 | awk '{ print $1 }' | sed s/Patch// | sed s/://)
# ID of the next patch to be added to kernel.spec
NPATCH_ID=$((LPATCH_ID + 1 ))
# Add patch with new id at the end of the list of patches
sed -i "/^Patch$LPATCH_ID:\ /a#\ $DESC\nPatch$NPATCH_ID:\ $PATCH" "$SPECFILE"
sed -i "/^ApplyOptionalPatch[[:space:]]p/i ApplyOptionalPatch\ $PATCH" "$SPECFILE"
sed -i "s/patch_command='patch -p1 -F1 -s'/patch_command='patch -p1 -F2 -s'/g" "$SPECFILE"