#!/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"