chiark / gitweb /
absurd/git Do not fail to import certain weird .dscs
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 19 Dec 2016 14:51:48 +0000 (14:51 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 19 Dec 2016 16:58:57 +0000 (16:58 +0000)
A .dsc containing patches which patch files multiple times would be
rejected by dpkg-source due to #848611.

Work around this by arranging for the patch of interest to never be
the first patch, by introducing (and then evaporating) a dummy patch.

Yuk.

Closes:#848391.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
absurd/git
debian/changelog

index 8300b0b601d9534871b7e0211eeaa4a7783338e5..7d3ff941ff4be7079b48fea6ec38f07a8663701a 100755 (executable)
@@ -79,10 +79,26 @@ fi
 pwd=`pwd`
 patch=${patch#$pwd/debian/patches/}
 rm -f debian/patches/series
 pwd=`pwd`
 patch=${patch#$pwd/debian/patches/}
 rm -f debian/patches/series
-printf "%s\n" "$patch" >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
 
 dpkg-source --before-build .
 
 
 dpkg-source --before-build .
 
+rm -f $omgwtf debian/patches/$omgwtf
+
 rm -rf .pc
 git checkout debian/patches/series
 git add -Af .
 rm -rf .pc
 git checkout debian/patches/series
 git add -Af .
index cdd7f25a10c750ae005d68fb92c3b60eddf35999..e26c4de4c629ef72d7820f147d59da1d51bbe2a1 100644 (file)
@@ -21,6 +21,8 @@ dgit (2.12~) unstable; urgency=medium
     Closes:#848512.
   * Produce better error reporting when absurd git wrapper fails
     on a patch during .dsc import.  Apropos of #848391.
     Closes:#848512.
   * Produce better error reporting when absurd git wrapper fails
     on a patch during .dsc import.  Apropos of #848391.
+  * Do not fail to import a .dsc containing patches which patch files
+    multiple times, due to #848611.  Closes:#848391.
 
   Test suite:
   * Provide and use stunt lintian and debuild, to avoid lintian
 
   Test suite:
   * Provide and use stunt lintian and debuild, to avoid lintian