dpkg: Upgrade to 1.18.7

Rebased patches:

0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
add_armeb_triplet_entry.patchadd_armeb_triplet_entry.patch

Patches removed already in upstream:

	[1] 0001-When-running-do_package_write_deb-we-have-trees-of-h.patch
	[2] fix-abs-redefine.patch

(From OE-Core rev: 3812f58b3a438ae533c282170416cdd1681868e0)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>

[1] https://anonscm.debian.org/cgit/dpkg/dpkg.git/commit/dpkg-deb/build.c?id=7a91341446851cd3594a8b752823b8c1f26d652a
[2] https://anonscm.debian.org/cgit/dpkg/dpkg.git/commit/lib/dpkg/i18n.h?id=ecd4baa091619cbbdd70043129dd992573580371
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Aníbal Limón
2016-05-26 16:18:45 -05:00
committed by Richard Purdie
parent b7644fc049
commit 81b59a19ad
6 changed files with 40 additions and 137 deletions

View File

@@ -4,8 +4,6 @@ SECTION = "base"
SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz"
SRC_URI_append_class-native = " file://0001-When-running-do_package_write_deb-we-have-trees-of-h.patch"
DEPENDS = "zlib bzip2 perl ncurses"
DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alternatives-native gettext-native perl-native"
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} xz run-postinsts perl"

View File

@@ -1,71 +0,0 @@
From e391bdba238d1371fc5b67cdae08b06eb5ada5c2 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 26 Aug 2015 15:48:13 +0300
Subject: [PATCH] When running do_package_write_deb, we have trees of
hardlinked files such as the dbg source files in ${PN}-dbg. If something
makes another copy of one of those files (or deletes one), the number of
links a file has changes and tar can notice this, e.g.:
| DEBUG: Executing python function do_package_deb
| dpkg-deb: building package `sed-ptest' in `/media/build1/poky/build/tmp/work/i586-poky-linux/sed/4.2.2-r0/deploy-debs/i586/sed-ptest_4.2.2-r0.3_i386.deb'.
| tar: ./usr/lib/sed/ptest/testsuite/tst-regex2: file changed as we read it
| dpkg-deb: error: subprocess tar -cf returned error exit status 1
Tar returns an error of 1 when files 'change' and other errors codes
in other error cases. We tweak dpkg-deb here so that it ignores an exit
code of 1 from tar. The files don't really change (and we have locking in
place to avoid that kind of issue).
Upstream-Status: Inappropriate
RP 2015/3/27
---
dpkg-deb/build.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
index 2ddeec6..af363f0 100644
--- a/dpkg-deb/build.c
+++ b/dpkg-deb/build.c
@@ -452,7 +452,7 @@ static void
tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
struct compress_params *tar_compress_params, int fd_out)
{
- int pipe_filenames[2], pipe_tarball[2];
+ int pipe_filenames[2], pipe_tarball[2], rc;
pid_t pid_tar, pid_comp;
/* Fork off a tar. We will feed it a list of filenames on stdin later. */
@@ -493,7 +493,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
/* All done, clean up wait for tar and <compress> to finish their job. */
close(pipe_filenames[1]);
subproc_reap(pid_comp, _("<compress> from tar -cf"), 0);
- subproc_reap(pid_tar, "tar -cf", 0);
+ rc = subproc_reap(pid_tar, "tar -cf", SUBPROC_RETERROR);
+ if (rc && rc != 1)
+ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
}
/**
@@ -509,7 +511,7 @@ do_build(const char *const *argv)
char *debar;
char *tfbuf;
int arfd;
- int p1[2], gzfd;
+ int p1[2], gzfd, rc;
pid_t c1, c2;
/* Decode our arguments. */
@@ -590,7 +592,9 @@ do_build(const char *const *argv)
}
close(p1[0]);
subproc_reap(c2, _("<compress> from tar -cf"), 0);
- subproc_reap(c1, "tar -cf", 0);
+ rc = subproc_reap(c1, "tar -cf", SUBPROC_RETERROR);
+ if (rc && rc != 1)
+ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
if (lseek(gzfd, 0, SEEK_SET))
ohshite(_("failed to rewind temporary file (%s)"), _("control member"));
--
2.7.0

View File

@@ -8,30 +8,41 @@ Subject: [PATCH 3/5] Our pre/postinsts expect $D to be set when running in a
Upstream-Status: Inappropriate [OE Specific]
RP 2011/12/07
ALIMON 2016/05/26
---
src/script.c | 31 ++-----------------------------
1 file changed, 2 insertions(+), 29 deletions(-)
src/script.c | 39 +++------------------------------------
1 file changed, 3 insertions(+), 36 deletions(-)
diff --git a/src/script.c b/src/script.c
index a958145..24c49f9 100644
index 3c88be8..ce66a86 100644
--- a/src/script.c
+++ b/src/script.c
@@ -100,36 +100,9 @@ maintscript_pre_exec(struct command *cmd)
size_t instdirl = strlen(instdir);
if (*instdir) {
@@ -97,43 +97,10 @@ setexecute(const char *path, struct stat *stab)
static const char *
maintscript_pre_exec(struct command *cmd)
{
- const char *admindir = dpkg_db_get_dir();
- const char *changedir = fc_script_chrootless ? instdir : "/";
- size_t instdirl = strlen(instdir);
-
- if (*instdir && !fc_script_chrootless) {
- if (strncmp(admindir, instdir, instdirl) != 0)
- ohshit(_("admindir must be inside instdir for dpkg to work properly"));
- if (setenv("DPKG_ADMINDIR", admindir + instdirl, 1) < 0)
- ohshite(_("unable to setenv for subprocesses"));
- if (setenv("DPKG_ROOT", "", 1) < 0)
- ohshite(_("unable to setenv for subprocesses"));
-
- if (chroot(instdir))
- ohshite(_("failed to chroot to '%.250s'"), instdir);
- }
+ if (*instdir) {
+ setenv("D", instdir, 1);
}
- /* Switch to a known good directory to give the maintainer script
- * a saner environment, also needed after the chroot(). */
- if (chdir("/"))
- ohshite(_("failed to chdir to '%.255s'"), "/");
- if (chdir(changedir))
- ohshite(_("failed to chdir to '%.255s'"), changedir);
- if (debug_has_flag(dbg_scripts)) {
- struct varbuf args = VARBUF_INIT;
- const char **argv = cmd->argv;
@@ -44,9 +55,8 @@ index a958145..24c49f9 100644
- debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename,
- args.buf);
- varbuf_destroy(&args);
+ setenv("D", instdir, 1);
}
- if (!instdirl)
- }
- if (!instdirl || fc_script_chrootless)
- return cmd->filename;
-
- assert(strlen(cmd->filename) >= instdirl);

View File

@@ -25,14 +25,22 @@ Upstream-Status: Pending
Signed-off-by: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com>
diff -Naurp dpkg-1.17.21_org/triplettable dpkg-1.17.21/triplettable
--- dpkg-1.17.21_org/triplettable 2015-04-08 17:08:52.370759171 +0530
+++ dpkg-1.17.21/triplettable 2015-04-08 17:09:12.406752081 +0530
@@ -9,6 +9,7 @@ musleabihf-linux-arm musl-linux-armhf
musl-linux-<cpu> musl-linux-<cpu>
gnueabihf-linux-arm armhf
---
triplettable | 1 +
1 file changed, 1 insertion(+)
diff --git a/triplettable b/triplettable
index abe4726..1e9c247 100644
--- a/triplettable
+++ b/triplettable
@@ -11,6 +11,7 @@ gnueabihf-linux-arm armhf
gnueabi-linux-arm armel
gnuabin32-linux-mips64r6el mipsn32r6el
gnuabin32-linux-mips64r6 mipsn32r6
+gnueabi-linux-armeb armeb
gnuabin32-linux-mips64el mipsn32el
gnuabin32-linux-mips64 mipsn32
gnuabi64-linux-mips64el mips64el
gnuabi64-linux-mips64r6el mips64r6el
--
2.1.4

View File

@@ -1,40 +0,0 @@
Upstream-Status: Pending
dpkg defines:
#define DPKG_BEGIN_DECLS extern "C" {
That makes header cstdlib included in a extern "C" block which is not supported
by gcc 4.8. It fails on Fedora 19:
/usr/include/c++/4.8.1/cstdlib: In function long long int std::abs(long long int):
/usr/include/c++/4.8.1/cstdlib:174:20: error: declaration of C function long long int std::abs(long long int) conflicts with
abs(long long __x) { return __builtin_llabs (__x); }
^
/usr/include/c++/4.8.1/cstdlib:166:3: error: previous declaration long int std::abs(long int) here
abs(long __i) { return __builtin_labs(__i); }
^
Move include gettext.h out of the extern "C" block to fix this issue.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
--- dpkg-1.17.1/lib/dpkg/i18n.h.orig 2013-08-13 17:31:28.870935573 +0800
+++ dpkg-1.17.1/lib/dpkg/i18n.h 2013-08-13 17:31:37.893065249 +0800
@@ -23,8 +23,6 @@
#include <dpkg/macros.h>
-DPKG_BEGIN_DECLS
-
/**
* @defgroup i18n Internationalization support
* @ingroup dpkg-internal
@@ -33,6 +31,8 @@
#include <gettext.h>
+DPKG_BEGIN_DECLS
+
/* We need to include this because pgettext() uses LC_MESSAGES, but libintl.h
* which gets pulled by gettext.h only includes it if building optimized. */
#include <locale.h>

View File

@@ -4,7 +4,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
SRC_URI_append_class-native =" file://glibc2.5-sync_file_range.patch "
SRC_URI += "file://noman.patch \
file://remove-tar-no-timestamp.patch \
file://fix-abs-redefine.patch \
file://arch_pm.patch \
file://dpkg-configure.service \
file://add_armeb_triplet_entry.patch \
@@ -15,6 +14,5 @@ SRC_URI += "file://noman.patch \
file://0006-add-musleabi-to-known-target-tripets.patch \
"
SRC_URI[md5sum] = "e95b513c89693f6ec3ab53b6b1c3defd"
SRC_URI[sha256sum] = "fe89243868888ce715bf45861f26264f767d4e4dbd0d6f1a26ce60bbbbf106da"
SRC_URI[md5sum] = "073dbf2129a54b0fc627464bf8af4a1b"
SRC_URI[sha256sum] = "ace36d3a6dc750a42baf797f9e75ec580a21f92bb9ff96b482100755d6d9b87b"