From f39ed7a7a7cc43b0be9cf026fd94eebc0da59191 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 19 Dec 2016 14:51:48 +0000 Subject: [PATCH] absurd/git Do not fail to import certain weird .dscs 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 --- absurd/git | 18 +++++++++++++++++- debian/changelog | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/absurd/git b/absurd/git index 8300b0b6..7d3ff941 100755 --- a/absurd/git +++ b/absurd/git @@ -79,10 +79,26 @@ fi 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 <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 . +rm -f $omgwtf debian/patches/$omgwtf + rm -rf .pc git checkout debian/patches/series git add -Af . diff --git a/debian/changelog b/debian/changelog index cdd7f25a..e26c4de4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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. + * 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 -- 2.30.2