diff options
Diffstat (limited to 'meta/recipes-devtools/dpkg/dpkg/tarfix.patch')
-rw-r--r-- | meta/recipes-devtools/dpkg/dpkg/tarfix.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/meta/recipes-devtools/dpkg/dpkg/tarfix.patch b/meta/recipes-devtools/dpkg/dpkg/tarfix.patch new file mode 100644 index 0000000000..50e0bb4069 --- /dev/null +++ b/meta/recipes-devtools/dpkg/dpkg/tarfix.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | They managed to 'break' tar. Again. Sorry, they fixed a regression | ||
2 | which broke dpkg-deb. | ||
3 | |||
4 | The addition of: | ||
5 | http://git.savannah.gnu.org/cgit/tar.git/commit/?id=163e96a0e619a900eab6de827c7c5749ecc9d3f2 | ||
6 | ("Bugfix: entries read from the -T file did not get proper matching_flag.") | ||
7 | means that the no-recursion option gets lost. This leads to many files getting included | ||
8 | multiple times, along with files which shouldn't be there. | ||
9 | |||
10 | The commit message is horrendous. The patch actually makes the option positional | ||
11 | (as documnted since 2003) and therefore doesn't affect the input from the -T option. | ||
12 | |||
13 | Moving the --no-reursion option to earlier in the command avoids the bug. | ||
14 | |||
15 | The bug was not present in tar 1.28 however it has been backported in at least | ||
16 | Fedora 22 and heading into Fedora 21. | ||
17 | |||
18 | Redhat reports of issue: | ||
19 | https://bugzilla.redhat.com/show_bug.cgi?id=1230762 [tar] | ||
20 | https://bugzilla.redhat.com/show_bug.cgi?id=1241508 [dpkg] | ||
21 | |||
22 | Discussion of bug in upstream tar: | ||
23 | http://www.mail-archive.com/bug-tar@gnu.org/msg04799.html | ||
24 | |||
25 | Yocto bug: | ||
26 | https://bugzilla.yoctoproject.org/show_bug.cgi?id=7988 | ||
27 | |||
28 | Upstream-Status: Submitted [have mailed dpkg maintainer about this] | ||
29 | |||
30 | RP | ||
31 | 2015/7/13 | ||
32 | |||
33 | Index: dpkg-1.17.25/dpkg-deb/build.c | ||
34 | =================================================================== | ||
35 | --- dpkg-1.17.25.orig/dpkg-deb/build.c | ||
36 | +++ dpkg-1.17.25/dpkg-deb/build.c | ||
37 | @@ -560,7 +560,7 @@ do_build(const char *const *argv) | ||
38 | if (chdir(dir)) | ||
39 | ohshite(_("failed to chdir to `%.255s'"), dir); | ||
40 | execlp(TAR, "tar", "-cf", "-", "--format=gnu", "--null", "--no-unquote", | ||
41 | - "-T", "-", "--no-recursion", NULL); | ||
42 | + "--no-recursion", "-T", "-", NULL); | ||
43 | ohshite(_("unable to execute %s (%s)"), "tar -cf", TAR); | ||
44 | } | ||
45 | close(p1[0]); | ||