This proposed patch was rejected upstream: > Imagine as source: > deb http://example.org/very/very/long/path foo main > deb http://example.org/very/very/long/path bar main > that would roughly translate to e.g.: > example.org_very_very_long_path_dists_foo_main_binary-amd64_Packages > example.org_very_very_long_path_dists_foo_main_binary-i386_Packages > example.org_very_very_long_path_dists_bar_main_binary-amd64_Packages > example.org_very_very_long_path_dists_bar_main_binary-i386_Packages > > So, you can't just arbitrarily cut from the end as that potentially maps > multiple URIs to the same filename (and while I am not sure if that > method is UTF-8 safe, truncating is definitively not).
So I don’t think we should be accepting it, as this is exactly how it would be used. Ross > On 4 Jul 2024, at 06:04, Changqing Li via lists.openembedded.org > <[email protected]> wrote: > > ping > On 6/18/24 18:52, Changqing Li via lists.openembedded.org wrote: >> From: Changqing Li <[email protected]> >> >> 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] >> >> Signed-off-by: Robert Yang <[email protected]> >> >> Take back from >> https://git.openembedded.org/openembedded-core/commit/?id=9a0c0393871eda4bbcecfdd4b595f0c1b8e42edf >> Signed-off-by: Changqing Li <[email protected]> >> --- >> ...he-filename-can-t-be-longer-than-255.patch | 40 +++++++++++++++++++ >> meta/recipes-devtools/apt/apt_2.6.1.bb | 1 + >> 2 files changed, 41 insertions(+) >> create mode 100644 >> meta/recipes-devtools/apt/apt/0001-strutl.cc-the-filename-can-t-be-longer-than-255.patch >> >> diff --git >> a/meta/recipes-devtools/apt/apt/0001-strutl.cc-the-filename-can-t-be-longer-than-255.patch >> >> b/meta/recipes-devtools/apt/apt/0001-strutl.cc-the-filename-can-t-be-longer-than-255.patch >> new file mode 100644 >> index 0000000000..c88efa3aae >> --- /dev/null >> +++ >> b/meta/recipes-devtools/apt/apt/0001-strutl.cc-the-filename-can-t-be-longer-than-255.patch >> @@ -0,0 +1,40 @@ >> +From 918295aa1320718d342116f76c98d2289d377800 Mon Sep 17 00:00:00 2001 >> +From: Changqing Li <[email protected]> >> +Date: Tue, 18 Jun 2024 10:32:55 +0800 >> +Subject: [PATCH] strutl.cc: the filename can't be longer than 255 >> + >> +The URItoFileName translates the path into the filename, but the >> +filename can't be longer than 255 according to >> +/usr/include/linux/limits.h. >> + >> +Truncate it when it is longer than 240 (leave some spaces for >> +".Packages" and "._Release" suffix) >> + >> +Upstream-Status: Submitted >> [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1073591] >> +Signed-off-by: Robert Yang <[email protected]> >> +Signed-off-by: Changqing Li <[email protected]> >> +--- >> + apt-pkg/contrib/strutl.cc | 7 ++++++- >> + 1 file changed, 6 insertions(+), 1 deletion(-) >> + >> +diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc >> +index 67100f1..5076b35 100644 >> +--- a/apt-pkg/contrib/strutl.cc >> ++++ b/apt-pkg/contrib/strutl.cc >> +@@ -565,7 +565,12 @@ string URItoFileName(const string &URI) >> + // "\x00-\x20{}|\\\\^\\[\\]<>\"\x7F-\xFF"; >> + string NewURI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*"); >> + replace(NewURI.begin(),NewURI.end(),'/','_'); >> +- return NewURI; >> ++ >> ++ // Truncate from the head when it is longer than 240 >> ++ if(NewURI.length() > 240) >> ++ return NewURI.substr(NewURI.length() - 240, NewURI.length() - 1); >> ++ else >> ++ return NewURI; >> + } >> + /*}}}*/ >> + // Base64Encode - Base64 Encoding routine for short strings /*{{{*/ >> +-- >> +2.25.1 >> + >> diff --git a/meta/recipes-devtools/apt/apt_2.6.1.bb >> b/meta/recipes-devtools/apt/apt_2.6.1.bb >> index 26a6d99f84..b6b56c0010 100644 >> --- a/meta/recipes-devtools/apt/apt_2.6.1.bb >> +++ b/meta/recipes-devtools/apt/apt_2.6.1.bb >> @@ -14,6 +14,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/a/apt/${BPN}_${PV}.tar.xz >> \ >> file://0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch \ >> file://0001-aptwebserver.cc-Include-array.patch \ >> file://0001-Remove-using-std-binary_function.patch \ >> + file://0001-strutl.cc-the-filename-can-t-be-longer-than-255.patch \ >> " >> >> SRC_URI:append:class-native = " \ >> >> >> >> >> > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#202121): https://lists.openembedded.org/g/openembedded-core/message/202121 Mute This Topic: https://lists.openembedded.org/mt/106738366/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
