summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2012-07-04 18:16:28 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-07-09 16:58:57 +0100
commitf06c1c3df0aeec4eea7697159c4954187d19ae9b (patch)
tree6d9d5edfe02568f6c8bf9cf68227c231601d199e
parent460119a5b9f03db5b5f3a4668318fc3594ddf36b (diff)
downloadpoky-f06c1c3df0aeec4eea7697159c4954187d19ae9b.tar.gz
apt 0.7.14: runtime error: filename too long (tmpdir length)
when the tmpdir dir is longer than 220, there is no files saved in tmp/sysroots/x86_64-linux/var/lib/apt/lists/ after run apt-get update, this is because apt-get uses the path as the file name, but the file name can't be longer than 255 according to /usr/include/linux/limits.h. [YOCTO #2688] (From OE-Core rev: 9a0c0393871eda4bbcecfdd4b595f0c1b8e42edf) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/apt/apt-0.7.14/truncate-filename.patch35
-rw-r--r--meta/recipes-devtools/apt/apt-native_0.7.14.bb2
-rw-r--r--meta/recipes-devtools/apt/apt.inc1
-rw-r--r--meta/recipes-devtools/apt/apt_0.7.14.bb2
4 files changed, 38 insertions, 2 deletions
diff --git a/meta/recipes-devtools/apt/apt-0.7.14/truncate-filename.patch b/meta/recipes-devtools/apt/apt-0.7.14/truncate-filename.patch
new file mode 100644
index 0000000000..db1c42b66c
--- /dev/null
+++ b/meta/recipes-devtools/apt/apt-0.7.14/truncate-filename.patch
@@ -0,0 +1,35 @@
1strutl.cc: the filename can't be longer than 255
2
3The URItoFileName translates the path into the filename, but the
4filename can't be longer than 255 according to
5/usr/include/linux/limits.h.
6
7Truncate it when it is longer than 240 (leave some spaces for
8".Packages" and "._Release" suffix)
9
10Upstream-Status: Pending
11Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
12---
13 apt-pkg/contrib/strutl.cc | 7 ++++++-
14 1 file changed, 6 insertions(+), 1 deletion(-)
15
16diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
17--- a/apt-pkg/contrib/strutl.cc
18+++ b/apt-pkg/contrib/strutl.cc
19@@ -399,7 +399,12 @@ string URItoFileName(const string &URI)
20 // "\x00-\x20{}|\\\\^\\[\\]<>\"\x7F-\xFF";
21 string NewURI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*");
22 replace(NewURI.begin(),NewURI.end(),'/','_');
23- return NewURI;
24+
25+ // Truncate from the head when it is longer than 240
26+ if(NewURI.length() > 240)
27+ return NewURI.substr(NewURI.length() - 240, NewURI.length() - 1);
28+ else
29+ return NewURI;
30 }
31 /*}}}*/
32 // Base64Encode - Base64 Encoding routine for short strings /*{{{*/
33--
341.7.10.4
35
diff --git a/meta/recipes-devtools/apt/apt-native_0.7.14.bb b/meta/recipes-devtools/apt/apt-native_0.7.14.bb
index ca5476b6b2..38e1fe6a9a 100644
--- a/meta/recipes-devtools/apt/apt-native_0.7.14.bb
+++ b/meta/recipes-devtools/apt/apt-native_0.7.14.bb
@@ -1,6 +1,6 @@
1require apt-native.inc 1require apt-native.inc
2 2
3PR = "r8" 3PR = "r9"
4 4
5SRC_URI += "file://nodoc.patch \ 5SRC_URI += "file://nodoc.patch \
6 file://noconfigure.patch \ 6 file://noconfigure.patch \
diff --git a/meta/recipes-devtools/apt/apt.inc b/meta/recipes-devtools/apt/apt.inc
index 1f6343a9d6..563eda102d 100644
--- a/meta/recipes-devtools/apt/apt.inc
+++ b/meta/recipes-devtools/apt/apt.inc
@@ -8,6 +8,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/apt_${PV}.tar.gz \
8 file://localefixes.patch \ 8 file://localefixes.patch \
9 file://makerace.patch \ 9 file://makerace.patch \
10 file://remove-redeclaration.patch \ 10 file://remove-redeclaration.patch \
11 file://truncate-filename.patch \
11 " 12 "
12 13
13inherit autotools gettext 14inherit autotools gettext
diff --git a/meta/recipes-devtools/apt/apt_0.7.14.bb b/meta/recipes-devtools/apt/apt_0.7.14.bb
index a62772845a..12dd1f2a97 100644
--- a/meta/recipes-devtools/apt/apt_0.7.14.bb
+++ b/meta/recipes-devtools/apt/apt_0.7.14.bb
@@ -3,7 +3,7 @@ RDEPENDS_${PN} = "dpkg"
3LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3" 3LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
4require apt.inc 4require apt.inc
5 5
6PR = "r13" 6PR = "r14"
7 7
8SRC_URI += "file://nodoc.patch \ 8SRC_URI += "file://nodoc.patch \
9 file://includes-fix.patch " 9 file://includes-fix.patch "