#!/bin/sh
set -e
+case "$DGIT_ABSURD_DEBUG" in
+''|0) exec 3>/dev/null ;;
+1) exec 3>>../../gbp-pq-output ;;
+*) exec 3>>../../gbp-pq-output 2>&3 ;;
+esac
+
+log () {
+ echo >&3 "DGIT ABSURD GIT APPLY (DEBUG) $*"
+ echo >&2 "DGIT ABSURD GIT APPLY (STDERR) $*"
+}
+
fail () {
- echo >&2 "DGIT ABSURD GIT APPLY - FAILED: $*"
+ log "FAILED: $*"
exit 127
}
if $bypass; then
PATH=$npath
+ echo >&3 "DGIT ABSURD GIT APPLY - BYPASS: $*"
exec git "$@"
fi
-echo >&2 "DGIT ABSURD GIT APPLY - NO BYPASS: $*"
+log "NO BYPASS: $*"
+
+case "$DGIT_ABSURD_DEBUG" in
+''|0|1) ;;
+*) set -x ;;
+esac
#exec >/dev/tty 2>&1
index=1
continue
;;
+ 1.--whitespace=fix)
+ continue
+ ;;
?.-*)
fail "UNKNOWN OPTION $arg ($*)"
;;
pwd=`pwd`
patch=${patch#$pwd/debian/patches/}
-printf "%s\n" "$patch" >debian/patches/series
+rm -f debian/patches/series
+
+# Work around #848611.
+# We need a stunt filename which the source package must not
+# contain. A trick is to use the commit hash of HEAD, whose
+# hash value cannot appear in any file in its own tree.
+omgwtf="dgit-omg-wtf-$(git rev-parse HEAD)"
+cat <<END >debian/patches/$omgwtf
+---
+--- a/$omgwtf 2016-10-31 23:28:47.314155919 +0000
++++ b/$omgwtf 2016-12-18 22:40:01.870058270 +0000
+@@ -0,0 +1 @@
++:
+END
+printf "%s\n" "$omgwtf" >debian/patches/series
+printf "%s\n" "$patch" >>debian/patches/series
+# Just in case some joker tries to patch .git/something
+mv .git ../.git
+set +e
dpkg-source --before-build .
+rc=$?
+set -e
+rm -rf .git
+mv ../.git .
+test $rc = 0
+
+rm -f $omgwtf debian/patches/$omgwtf
rm -rf .pc
git checkout debian/patches/series
git add -Af .
-echo >&2 "DGIT ABSURD GIT APPLY - APPLIED $patch"
+log "APPLIED $patch"
#printf 'APPLIED '; date --iso-8601=ns