Exynos-5-Series-Linux-Mainl.../generate_exynos_5_series_mainline_patchset.sh
2025-04-20 16:45:22 -05:00

77 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
set -e
WORK_DIRECTORY="work-directory"
GENERATED_PATCHSET_FOLDER="results"
POSTMARKETOS_KERNEL_DIRECTORY_NAME="postmarketos-kernel"
POSTMARKETOS_KERNEL_FORK_GIT_CLONE_URL="https://gitlab.com/exynos5-mainline/linux.git"
UNPATCHED_LINUX_KERNEL_DIRECTORY_NAME="regular-linux-kernel"
if [ -d "$WORK_DIRECTORY" ]; then
rm -rf "$WORK_DIRECTORY"
fi
if [ -d "$GENERATED_PATCHSET_FOLDER" ]; then
rm -rf "$GENERATED_PATCHSET_FOLDER"
fi
mkdir "$WORK_DIRECTORY"
cd "$WORK_DIRECTORY"
git clone "$POSTMARKETOS_KERNEL_FORK_GIT_CLONE_URL" "$POSTMARKETOS_KERNEL_DIRECTORY_NAME"
cd "$POSTMARKETOS_KERNEL_DIRECTORY_NAME"
if [[ -f "localversion-next" ]]; then
LOCALVERSION=$(<"localversion-next")
LINUX_RELEASE="${LOCALVERSION/-/}"
GIT_CLONE_URL="https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git"
else
VERSION=$(grep '^VERSION =' Makefile | sed 's/^VERSION = //')
PATCHLEVEL=$(grep '^PATCHLEVEL =' Makefile | sed 's/^PATCHLEVEL = //')
SUBLEVEL=$(grep '^SUBLEVEL =' Makefile | sed 's/^SUBLEVEL = //')
EXTRAVERSION=$(grep '^EXTRAVERSION =' Makefile | sed 's/^EXTRAVERSION = //')
LINUX_RELEASE="${VERSION}.${PATCHLEVEL}"
if [[ "$EXTRAVERSION" == *rc* ]]; then
LINUX_RELEASE+="${EXTRAVERSION}"
else
if [[ $SUBLEVEL -ne 0 ]]; then
LINUX_RELEASE+=".$SUBLEVEL${EXTRAVERSION}"
else
LINUX_RELEASE+="${EXTRAVERSION}"
fi
fi
LINUX_RELEASE="v${LINUX_RELEASE}"
GIT_CLONE_URL="https://github.com/torvalds/linux.git"
fi
echo
echo "The postmarketOS Exynos 5 kernel fork is based on Linux $LINUX_RELEASE"
echo
PATCHSET_GENERATION_UTILITY_LOG="$(date +%F) | Linux Kernel Base: $LINUX_RELEASE"
git clone --depth 1 "$GIT_CLONE_URL" -b "$LINUX_RELEASE" ../"$UNPATCHED_LINUX_KERNEL_DIRECTORY_NAME"
cd ../"$UNPATCHED_LINUX_KERNEL_DIRECTORY_NAME"
git remote add "$POSTMARKETOS_KERNEL_DIRECTORY_NAME" ../"$POSTMARKETOS_KERNEL_DIRECTORY_NAME"
git remote update
mkdir ../../"$GENERATED_PATCHSET_FOLDER"
git diff "$POSTMARKETOS_KERNEL_DIRECTORY_NAME"/master -R > ../../"$GENERATED_PATCHSET_FOLDER"/"mainline-patchset-$(date +%F).patch"
echo "$PATCHSET_GENERATION_UTILITY_LOG" | tee ../../"$GENERATED_PATCHSET_FOLDER"/"mainline-patchset-$(date +%F).log"
cd ../..
rm -rf "$WORK_DIRECTORY"