Skip to content

Commit

Permalink
app-arch/dpkg: update sed with proper patch.
Browse files Browse the repository at this point in the history
Signed-off-by: Georgy Yakovlev <[email protected]>
  • Loading branch information
gyakovlev committed Jan 3, 2023
1 parent 574dd20 commit 1f0405a
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 5 deletions.
6 changes: 1 addition & 5 deletions app-arch/dpkg/dpkg-1.21.15.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,14 @@ BDEPEND="

PATCHES=(
"${FILESDIR}"/${PN}-1.18.12-flags.patch
"${FILESDIR}"/${PN}-1.21.15-buf-lengh.patch # sent upstream
)

src_prepare() {
default

sed -i -e 's|\<ar\>|${AR}|g' src/at/deb-format.at src/at/testsuite || die

# upstream sets 200, that's a bit too short.
# it may not fail in real usage, but fails with /var/tmp/portage/$cat/pkg added.
# on my system it's exactly 201 characters.
sed -i -e 's/char\ buf\[200\]/char\ buf\[300\]/' src/deb/extract.c || die

eautoreconf
}

Expand Down
34 changes: 34 additions & 0 deletions app-arch/dpkg/files/dpkg-1.21.15-buf-lengh.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
From 7caf70b6cda200e1bad77c26e46e465a4ad76d71 Mon Sep 17 00:00:00 2001
From: Georgy Yakovlev <[email protected]>
Date: Mon, 2 Jan 2023 21:57:29 -0800
Subject: [PATCH] dpkg-deb: increase buf lengh in movecontrolfiles

In some cases limit of 200 is too short.
For example, on gentoo we build in /var/tmp/portage (user configurable)

the buf contents end up exactly 201 characters:
e.g.: "mv /long/path /another/long/path && rmdir /yet/another/long/path"

so we only catch it in testsuite and dpkg-deb tests fail sometimes.

Signed-off-by: Georgy Yakovlev <[email protected]>
---
src/deb/extract.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/deb/extract.c b/src/deb/extract.c
index a098539..332c664 100644
--- a/src/deb/extract.c
+++ b/src/deb/extract.c
@@ -53,7 +53,7 @@
static void
movecontrolfiles(const char *dir, const char *thing)
{
- char buf[200];
+ char buf[512];
pid_t pid;

sprintf(buf, "mv %s/%s/* %s/ && rmdir %s/%s", dir, thing, dir, dir, thing);
--
2.39.0

0 comments on commit 1f0405a

Please sign in to comment.