Skip to content
Snippets Groups Projects
Unverified Commit bb3db179 authored by Matthias Schiffer's avatar Matthias Schiffer
Browse files

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).
parent 93deaad8
No related branches found
No related tags found
No related merge requests found
...@@ -5,19 +5,27 @@ shopt -s nullglob ...@@ -5,19 +5,27 @@ shopt -s nullglob
. "$GLUONDIR"/scripts/modules.sh . "$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 for module in $GLUON_MODULES; do
echo "--- Patching module '$module' ---" echo "--- Patching module '$module' ---"
cd "$GLUONDIR"/$module git clone -s -b base --single-branch "$GLUONDIR"/$module "$PATCHDIR" 2>/dev/null
git checkout -B patching base
cd "$PATCHDIR"
for patch in "$GLUONDIR"/patches/$module/*.patch; do for patch in "$GLUONDIR"/patches/$module/*.patch; do
if ! 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"; then 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"
git am --abort
git checkout patched
git branch -D patching
exit 1
fi
done done
git branch -M patched
cd "$GLUONDIR"/$module
git fetch "$PATCHDIR" 2>/dev/null
git checkout -B patched FETCH_HEAD
git submodule update --init --recursive
rm -rf "$PATCHDIR"
done done
...@@ -14,8 +14,7 @@ for module in $GLUON_MODULES; do ...@@ -14,8 +14,7 @@ for module in $GLUON_MODULES; do
mkdir -p "$GLUONDIR"/$module mkdir -p "$GLUONDIR"/$module
cd "$GLUONDIR"/$module cd "$GLUONDIR"/$module
git init git init
git config commit.gpgsign false
git checkout $commit 2>/dev/null || git fetch $repo $branch git branch -f base $commit 2>/dev/null || git fetch -f $repo $branch:base
git checkout -B base $commit
git submodule update --init --recursive
done done
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment