gluon/scripts/patch.sh
Matthias Schiffer bb3db1795b
update/patch: avoid applying patches directly in build repos
Switching branches and applying patches in the build repos will
unnecessarily touch many files, causing rebuilds of packages that didn't
really change; furthermore, it is filling the reflog with many entries.

Don't ever switch to base branch in the build repos and apply patches in
a temporary clone to avoid these issues.

In addition, GPG signing is generally disabled in the build repos to
override potential global configuration (as signing doesn't make sense and
will slow down rebases).
2016-08-09 03:41:52 +02:00

32 lines
749 B
Bash
Executable File

#!/bin/bash
set -e
shopt -s nullglob
. "$GLUONDIR"/scripts/modules.sh
TMPDIR="$GLUON_BUILDDIR"/tmp
mkdir -p "$TMPDIR"
PATCHDIR="$TMPDIR"/patching
trap 'rm -rf "$PATCHDIR"' EXIT
for module in $GLUON_MODULES; do
echo "--- Patching module '$module' ---"
git clone -s -b base --single-branch "$GLUONDIR"/$module "$PATCHDIR" 2>/dev/null
cd "$PATCHDIR"
for patch in "$GLUONDIR"/patches/$module/*.patch; do
git -c user.name='Gluon Patch Manager' -c user.email='gluon@void.example.com' -c commit.gpgsign=false am --whitespace=nowarn --committer-date-is-author-date "$patch"
done
cd "$GLUONDIR"/$module
git fetch "$PATCHDIR" 2>/dev/null
git checkout -B patched FETCH_HEAD
git submodule update --init --recursive
rm -rf "$PATCHDIR"
done