All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dpkg: update to upstream version 1.16.3
@ 2012-05-04 22:59 Marko Lindqvist
  2012-05-11 17:01 ` Saul Wold
  0 siblings, 1 reply; 7+ messages in thread
From: Marko Lindqvist @ 2012-05-04 22:59 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sat, 5 May 2012 00:02:06 +0300
Subject: [PATCH] dpkg: update to upstream version 1.16.3

Update dpkg recipe to get latest upstream version (1.16.3) as
1.15.8.7 is no longer available.
* check_version.patch : updated to apply cleanly
* dpkg-dev-avoid-fflush.patch : removed as already part of upstream
* ignore_extra_fields.patch : updated to apply cleanly
* perllibdir.patch : removed as unnecessary after upstream changes
* preinst.patch : updated to apply cleanly

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 .../recipes-devtools/dpkg/dpkg/check_version.patch |   26 +--
 .../dpkg/dpkg/dpkg-deb-avoid-fflush.patch          |  198 --------------------
 .../dpkg/dpkg/ignore_extra_fields.patch            |   39 ++--
 meta/recipes-devtools/dpkg/dpkg/perllibdir.patch   |   22 ---
 meta/recipes-devtools/dpkg/dpkg/preinst.patch      |   45 +++--
 meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb        |   15 --
 meta/recipes-devtools/dpkg/dpkg_1.16.3.bb          |   13 ++
 7 files changed, 75 insertions(+), 283 deletions(-)
 delete mode 100644 meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
 delete mode 100644 meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
 delete mode 100644 meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
 create mode 100644 meta/recipes-devtools/dpkg/dpkg_1.16.3.bb

diff --git a/meta/recipes-devtools/dpkg/dpkg/check_version.patch
b/meta/recipes-devtools/dpkg/dpkg/check_version.patch
index 524e715..385e4c6 100644
--- a/meta/recipes-devtools/dpkg/dpkg/check_version.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/check_version.patch
@@ -4,20 +4,24 @@ Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>

 Upstream-Status: Inappropriate [embedded specific]

-diff -ruN dpkg-1.15.8.5-orig/lib/dpkg/parsehelp.c
dpkg-1.15.8.5/lib/dpkg/parsehelp.c
---- dpkg-1.15.8.5-orig/lib/dpkg/parsehelp.c	2010-10-08 12:27:15.058572774 +0800
-+++ dpkg-1.15.8.5/lib/dpkg/parsehelp.c	2010-10-09 11:18:15.484190771 +0800
-@@ -268,11 +268,11 @@
-
-   /* XXX: Would be faster to use something like cisversion and cisrevision. */
-   for (ptr = rversion->version; *ptr; ptr++) {
+Updated to apply over dpkg-1.16.3
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd dpkg-1.16.3/lib/dpkg/parsehelp.c dpkg-1.16.3/lib/dpkg/parsehelp.c
+--- dpkg-1.16.3/lib/dpkg/parsehelp.c	2012-04-27 05:49:02.000000000 +0300
++++ dpkg-1.16.3/lib/dpkg/parsehelp.c	2012-05-04 13:46:27.000000000 +0300
+@@ -253,11 +253,11 @@
+   if (*ptr && !cisdigit(*ptr++))
+     return dpkg_put_warn(err, _("version number does not start with digit"));
+   for (; *ptr; ptr++) {
 -    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~:", *ptr) == NULL)
 +    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~:_", *ptr) == NULL)
-       return _("invalid character in version number");
+       return dpkg_put_warn(err, _("invalid character in version number"));
    }
    for (ptr = rversion->revision; *ptr; ptr++) {
--    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~", *ptr) == NULL)
-+    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~_", *ptr) == NULL)
-       return _("invalid character in revision number");
+-    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".+~", *ptr) == NULL)
++    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".+~_", *ptr) == NULL)
+       return dpkg_put_warn(err, _("invalid character in revision number"));
    }

diff --git a/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
b/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
deleted file mode 100644
index a5d6b61..0000000
--- a/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 78eaf928d30d0b16e05d8d63c55a3632a135ed9a Mon Sep 17 00:00:00 2001
-From: Guillem Jover <guillem@debian.org>
-Date: Thu, 4 Nov 2010 00:51:13 +0100
-Subject: [PATCH] dpkg-deb: Use fd instead of stream based buffered I/O
-
-Behaviour of fflush() on input streams is undefined per POSIX, avoid
-mixing stream and file descriptor based I/O, and only use the latter
-instead.
-
-Upstream-Status: Backport of revision
2d420ee1d05033d237462a0075facfe406b08043 (in 1.16.x)
-
----
- dpkg-deb/extract.c |   83 ++++++++++++++++++++++++++++++++++++++-------------
- 1 files changed, 62 insertions(+), 21 deletions(-)
-
-diff --git a/dpkg-deb/extract.c b/dpkg-deb/extract.c
-index 22aea98..0f5ac88 100644
---- a/dpkg-deb/extract.c
-+++ b/dpkg-deb/extract.c
-@@ -31,6 +31,7 @@
- #include <ctype.h>
- #include <string.h>
- #include <dirent.h>
-+#include <fcntl.h>
- #include <unistd.h>
- #include <ar.h>
- #include <stdbool.h>
-@@ -61,13 +62,41 @@ static void movecontrolfiles(const char *thing) {
- }
-
- static void DPKG_ATTR_NORET
--readfail(FILE *a, const char *filename, const char *what)
-+read_fail(int rc, const char *filename, const char *what)
- {
--  if (ferror(a)) {
--    ohshite(_("error reading %s from file %.255s"), what, filename);
--  } else {
-+  if (rc == 0)
-     ohshit(_("unexpected end of file in %s in %.255s"),what,filename);
-+  else
-+    ohshite(_("error reading %s from file %.255s"), what, filename);
-+}
-+
-+static ssize_t
-+read_line(int fd, char *buf, size_t min_size, size_t max_size)
-+{
-+  ssize_t line_size = 0;
-+  size_t n = min_size;
-+
-+  while (line_size < (ssize_t)max_size) {
-+    ssize_t r;
-+    char *nl;
-+
-+    r = read(fd, buf + line_size, n);
-+    if (r <= 0)
-+      return r;
-+
-+    nl = strchr(buf + line_size, '\n');
-+    line_size += r;
-+
-+    if (nl != NULL) {
-+      nl[1] = '\0';
-+      return line_size;
-+    }
-+
-+    n = 1;
-   }
-+
-+  buf[line_size] = '\0';
-+  return line_size;
- }
-
- static size_t
-@@ -115,19 +144,26 @@ void extracthalf(const char *debar, const char
*directory,
-   char versionbuf[40];
-   float versionnum;
-   size_t ctrllennum, memberlen= 0;
-+  ssize_t r;
-   int dummy;
-   pid_t c1=0,c2,c3;
-   int p1[2], p2[2];
--  FILE *ar;
-+  int arfd;
-   struct stat stab;
-   char nlc;
-   int adminmember;
-   bool oldformat, header_done;
-   struct compressor *decompressor = &compressor_gzip;
-
--  ar= fopen(debar,"r"); if (!ar) ohshite(_("failed to read archive
`%.255s'"),debar);
--  if (fstat(fileno(ar),&stab)) ohshite(_("failed to fstat archive"));
--  if (!fgets(versionbuf,sizeof(versionbuf),ar))
readfail(ar,debar,_("version number"));
-+  arfd = open(debar, O_RDONLY);
-+  if (arfd < 0)
-+    ohshite(_("failed to read archive `%.255s'"), debar);
-+  if (fstat(arfd, &stab))
-+    ohshite(_("failed to fstat archive"));
-+
-+  r = read_line(arfd, versionbuf, strlen(DPKG_AR_MAGIC), sizeof(versionbuf));
-+  if (r < 0)
-+    read_fail(r, debar, _("archive magic version number"));
-
-   if (!strcmp(versionbuf, DPKG_AR_MAGIC)) {
-     oldformat = false;
-@@ -137,8 +173,9 @@ void extracthalf(const char *debar, const char *directory,
-     for (;;) {
-       struct ar_hdr arh;
-
--      if (fread(&arh,1,sizeof(arh),ar) != sizeof(arh))
--        readfail(ar,debar,_("between members"));
-+      r = read(arfd, &arh, sizeof(arh));
-+      if (r != sizeof(arh))
-+        read_fail(r, debar, _("archive member header"));
-
-       dpkg_ar_normalize_name(&arh);
-
-@@ -153,8 +190,9 @@ void extracthalf(const char *debar, const char *directory,
-         if (strncmp(arh.ar_name, DEBMAGIC, sizeof(arh.ar_name)) != 0)
-           ohshit(_("file `%.250s' is not a debian binary archive
(try dpkg-split?)"),debar);
-         infobuf= m_malloc(memberlen+1);
--        if (fread(infobuf,1, memberlen + (memberlen&1), ar) !=
memberlen + (memberlen&1))
--          readfail(ar,debar,_("header info member"));
-+        r = read(arfd, infobuf, memberlen + (memberlen & 1));
-+        if ((size_t)r != (memberlen + (memberlen & 1)))
-+          read_fail(r, debar, _("archive information header member"));
-         infobuf[memberlen] = '\0';
-         cur= strchr(infobuf,'\n');
-         if (!cur) ohshit(_("archive has no newlines in header"));
-@@ -174,7 +212,8 @@ void extracthalf(const char *debar, const char *directory,
-           /* Members with `_' are noncritical, and if we don't understand them
-            * we skip them.
-            */
--	stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member
data from %s"), debar);
-+        fd_null_copy(arfd, memberlen + (memberlen & 1),
-+                     _("skipped archive member data from %s"), debar);
-       } else {
- 	if (strncmp(arh.ar_name, ADMINMEMBER, sizeof(arh.ar_name)) == 0)
- 	  adminmember = 1;
-@@ -198,7 +237,8 @@ void extracthalf(const char *debar, const char *directory,
-           ctrllennum= memberlen;
-         }
-         if (!adminmember != !admininfo) {
--	  stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member
data from %s"), debar);
-+          fd_null_copy(arfd, memberlen + (memberlen & 1),
-+                       _("skipped archive member data from %s"), debar);
-         } else {
-           break; /* Yes ! - found it. */
-         }
-@@ -221,8 +261,10 @@ void extracthalf(const char *debar, const char *directory,
-     l = strlen(versionbuf);
-     if (l && versionbuf[l - 1] == '\n')
-       versionbuf[l - 1] = '\0';
--    if (!fgets(ctrllenbuf,sizeof(ctrllenbuf),ar))
--      readfail(ar, debar, _("control information length"));
-+
-+    r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf));
-+    if (r < 0)
-+      read_fail(r, debar, _("archive control member size"));
-     if (sscanf(ctrllenbuf,"%zi%c%d",&ctrllennum,&nlc,&dummy) !=2 ||
nlc != '\n')
-       ohshit(_("archive has malformatted control length `%s'"), ctrllenbuf);
-
-@@ -230,7 +272,8 @@ void extracthalf(const char *debar, const char *directory,
-       memberlen = ctrllennum;
-     } else {
-       memberlen = stab.st_size - ctrllennum - strlen(ctrllenbuf) - l;
--      stream_null_copy(ar, ctrllennum, _("skipped control area from
%s"), debar);
-+      fd_null_copy(arfd, ctrllennum,
-+                   _("skipped archive control member data from %s"), debar);
-     }
-
-     if (admininfo >= 2) {
-@@ -252,13 +295,11 @@ void extracthalf(const char *debar, const char
*directory,
-
-   }
-
--  safe_fflush(ar);
--
-   m_pipe(p1);
-   c1 = subproc_fork();
-   if (!c1) {
-     close(p1[0]);
--    stream_fd_copy(ar, p1[1], memberlen, _("failed to write to pipe
in copy"));
-+    fd_fd_copy(arfd, p1[1], memberlen, _("failed to write to pipe in copy"));
-     if (close(p1[1]))
-       ohshite(_("failed to close pipe in copy"));
-     exit(0);
-@@ -275,7 +316,7 @@ void extracthalf(const char *debar, const char *directory,
-     decompress_filter(decompressor, 0, 1, _("data"));
-   }
-   close(p1[0]);
--  fclose(ar);
-+  close(arfd);
-   if (taroption) close(p2[1]);
-
-   if (taroption && directory) {
---
-1.7.7.6
-
diff --git a/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
b/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
index 0ff09e7..2dbb5a2 100644
--- a/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
@@ -1,22 +1,25 @@
 Upstream-Status: Inappropriate [workaround]

-diff -ruN dpkg-1.15.8.5-orig/dpkg-deb/build.c dpkg-1.15.8.5/dpkg-deb/build.c
---- dpkg-1.15.8.5-orig/dpkg-deb/build.c	2010-10-08 12:27:15.042083703 +0800
-+++ dpkg-1.15.8.5/dpkg-deb/build.c	2010-10-08 12:31:53.822534277 +0800
-@@ -275,14 +275,14 @@
-               controlfile, checkedinfo->otherpriority);
-       warns++;
-     }
--    for (field= checkedinfo->available.arbs; field; field= field->next) {
-+    /*for (field= checkedinfo->available.arbs; field; field= field->next) {
-       if (known_arbitrary_field(field))
-         continue;
+Updated to apply over dpkg-1.16.3
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd dpkg-1.16.3/dpkg-deb/build.c dpkg-1.16.3/dpkg-deb/build.c
+--- dpkg-1.16.3/dpkg-deb/build.c	2012-04-27 05:49:02.000000000 +0300
++++ dpkg-1.16.3/dpkg-deb/build.c	2012-05-04 13:28:39.000000000 +0300
+@@ -340,6 +340,7 @@
+   if (pkg->priority == pri_other)
+     warning(_("'%s' contains user-defined Priority value '%s'"),
+             controlfile, pkg->otherpriority);
++#if 0
+   for (field = pkg->available.arbs; field; field = field->next) {
+     if (known_arbitrary_field(field))
+       continue;
+@@ -347,6 +348,7 @@
+     warning(_("'%s' contains user-defined field '%s'"), controlfile,
+             field->name);
+   }
++#endif

-       warning(_("'%s' contains user-defined field '%s'"),
-               controlfile, field->name);
-       warns++;
--    }
-+    }*/
+   free(controlfile);

-     if (subdir) {
-       versionstring=
versiondescribe(&checkedinfo->available.version,vdew_never);
diff --git a/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
b/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
deleted file mode 100644
index 45973f0..0000000
--- a/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-We want to be able to set PERL_LIBDIR from the environment. This
-hardcoded assignment prevents us from doing so and obtains an
-incorrect value.
-
-Upstream-Status: Inappropriate [in this form at least]
-
-RP 14/11/2011
-
-Index: dpkg-1.15.8.7/m4/dpkg-progs.m4
-===================================================================
---- dpkg-1.15.8.7.orig/m4/dpkg-progs.m4	2011-11-14 17:32:21.252053239 +0000
-+++ dpkg-1.15.8.7/m4/dpkg-progs.m4	2011-11-14 17:32:55.180052455 +0000
-@@ -9,9 +9,6 @@
- [AC_ARG_VAR([PERL], [Perl interpreter])dnl
- AC_PATH_PROG([PERL], [perl], [/usr/bin/perl])dnl
- AC_ARG_VAR([PERL_LIBDIR], [Perl library directory])dnl
--PERL_LIBDIR=$($PERL -MConfig -e 'my $r = $Config{vendorlibexp};
--                                 $r =~ s/$Config{vendorprefixexp}/\$(prefix)/;
--                                 print $r')dnl
- ])# DPKG_PROG_PERL
-
- # DPKG_PROG_PO4A
diff --git a/meta/recipes-devtools/dpkg/dpkg/preinst.patch
b/meta/recipes-devtools/dpkg/dpkg/preinst.patch
index 06d2aac..557b423 100644
--- a/meta/recipes-devtools/dpkg/dpkg/preinst.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/preinst.patch
@@ -6,41 +6,48 @@ Upstream-Status: Inappropriate [OE Specific]

 RP 2011/12/07

-Index: dpkg-1.15.8.7/src/help.c
-===================================================================
---- dpkg-1.15.8.7.orig/src/help.c	2010-12-20 01:25:36.000000000 +0000
-+++ dpkg-1.15.8.7/src/help.c	2011-12-07 14:51:02.783461487 +0000
-@@ -181,30 +181,9 @@
-    * FIXME: none of the stuff here will work if admindir isn't inside
-    * instdir as expected.
-    */
--  size_t instdirl;
+Updated to apply over dpkg-1.16.3
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd dpkg-1.16.3/src/help.c dpkg-1.16.3/src/help.c
+--- dpkg-1.16.3/src/help.c	2012-04-27 05:49:03.000000000 +0300
++++ dpkg-1.16.3/src/help.c	2012-05-04 13:55:44.000000000 +0300
+@@ -204,35 +204,10 @@
+ static const char *
+ preexecscript(struct command *cmd)
+ {
+-  const char *admindir = dpkg_db_get_dir();
+-  size_t instdirl = strlen(instdir);
+-
+   if (*instdir) {
+-    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 (*instdir) {
 -    if (chroot(instdir)) ohshite(_("failed to chroot to `%.250s'"),instdir);
 -    if (chdir("/"))
 -      ohshite(_("failed to chdir to `%.255s'"), "/");
 -  }
--  if (f_debug & dbg_scripts) {
+-  if (debug_has_flag(dbg_scripts)) {
 -    struct varbuf args = VARBUF_INIT;
 -    const char **argv = cmd->argv;
 -
 -    while (*++argv) {
--      varbufaddc(&args, ' ');
--      varbufaddstr(&args, *argv);
+-      varbuf_add_char(&args, ' ');
+-      varbuf_add_str(&args, *argv);
 -    }
--    varbufaddc(&args, '\0');
+-    varbuf_end_str(&args);
 -    debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename, args.buf);
 -    varbuf_destroy(&args);
--  }
--  instdirl= strlen(instdir);
++    setenv("D", instdir, 1);
+   }
 -  if (!instdirl)
 -    return cmd->filename;
 -  assert(strlen(cmd->filename) >= instdirl);
 -  return cmd->filename + instdirl;
-+  if (*instdir)
-+    setenv("D", instdir, 1);
 +  return cmd->filename;
- }
+ }

  void
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
b/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
deleted file mode 100644
index 1e7ef25..0000000
--- a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require dpkg.inc
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI += "file://noman.patch \
-            file://check_snprintf.patch \
-            file://check_version.patch \
-            file://perllibdir.patch \
-            file://preinst.patch \
-            file://dpkg-deb-avoid-fflush.patch"
-
-SRC_URI[md5sum] = "d1731d4147c1ea3b537a4d094519a6dc"
-SRC_URI[sha256sum] =
"1ec1376471b04717a4497e5d7a27cd545248c92116898ce0c53ced8ea94267b5"
-
-PR = "${INC_PR}.4"
-
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
b/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
new file mode 100644
index 0000000..6af7f2d
--- /dev/null
+++ b/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
@@ -0,0 +1,13 @@
+require dpkg.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI += "file://noman.patch \
+            file://check_snprintf.patch \
+            file://check_version.patch \
+            file://preinst.patch"
+
+SRC_URI[md5sum] = "20189e2926ada3dda4f77ef2e36999af"
+SRC_URI[sha256sum] =
"8048890ca92a3ca317a4fdd557f8e9b2b3ce560743e8e70813496f9a7096d8d8"
+
+PR = "${INC_PR}.1"
+
-- 
1.7.10



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] dpkg: update to upstream version 1.16.3
  2012-05-04 22:59 [PATCH] dpkg: update to upstream version 1.16.3 Marko Lindqvist
@ 2012-05-11 17:01 ` Saul Wold
  2012-05-11 17:06   ` Marko Lindqvist
  0 siblings, 1 reply; 7+ messages in thread
From: Saul Wold @ 2012-05-11 17:01 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 05/04/2012 03:59 PM, Marko Lindqvist wrote:
> From: Marko Lindqvist<cazfi74@gmail.com>
> Date: Sat, 5 May 2012 00:02:06 +0300
> Subject: [PATCH] dpkg: update to upstream version 1.16.3
>

Marko,

Are you going to resend this and the apt patch in an uncorrupted format?

Thanks
	Sau!

> Update dpkg recipe to get latest upstream version (1.16.3) as
> 1.15.8.7 is no longer available.
> * check_version.patch : updated to apply cleanly
> * dpkg-dev-avoid-fflush.patch : removed as already part of upstream
> * ignore_extra_fields.patch : updated to apply cleanly
> * perllibdir.patch : removed as unnecessary after upstream changes
> * preinst.patch : updated to apply cleanly
>
> Signed-off-by: Marko Lindqvist<cazfi74@gmail.com>
> ---
>   .../recipes-devtools/dpkg/dpkg/check_version.patch |   26 +--
>   .../dpkg/dpkg/dpkg-deb-avoid-fflush.patch          |  198 --------------------
>   .../dpkg/dpkg/ignore_extra_fields.patch            |   39 ++--
>   meta/recipes-devtools/dpkg/dpkg/perllibdir.patch   |   22 ---
>   meta/recipes-devtools/dpkg/dpkg/preinst.patch      |   45 +++--
>   meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb        |   15 --
>   meta/recipes-devtools/dpkg/dpkg_1.16.3.bb          |   13 ++
>   7 files changed, 75 insertions(+), 283 deletions(-)
>   delete mode 100644 meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
>   delete mode 100644 meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
>   delete mode 100644 meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
>   create mode 100644 meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
>
> diff --git a/meta/recipes-devtools/dpkg/dpkg/check_version.patch
> b/meta/recipes-devtools/dpkg/dpkg/check_version.patch
> index 524e715..385e4c6 100644
> --- a/meta/recipes-devtools/dpkg/dpkg/check_version.patch
> +++ b/meta/recipes-devtools/dpkg/dpkg/check_version.patch
> @@ -4,20 +4,24 @@ Signed-off-by: Dongxiao Xu<dongxiao.xu@intel.com>
>
>   Upstream-Status: Inappropriate [embedded specific]
>
> -diff -ruN dpkg-1.15.8.5-orig/lib/dpkg/parsehelp.c
> dpkg-1.15.8.5/lib/dpkg/parsehelp.c
> ---- dpkg-1.15.8.5-orig/lib/dpkg/parsehelp.c	2010-10-08 12:27:15.058572774 +0800
> -+++ dpkg-1.15.8.5/lib/dpkg/parsehelp.c	2010-10-09 11:18:15.484190771 +0800
> -@@ -268,11 +268,11 @@
> -
> -   /* XXX: Would be faster to use something like cisversion and cisrevision. */
> -   for (ptr = rversion->version; *ptr; ptr++) {
> +Updated to apply over dpkg-1.16.3
> +
> +Signed-off-by: Marko Lindqvist<cazfi74@gmail.com>
> +
> +diff -Nurd dpkg-1.16.3/lib/dpkg/parsehelp.c dpkg-1.16.3/lib/dpkg/parsehelp.c
> +--- dpkg-1.16.3/lib/dpkg/parsehelp.c	2012-04-27 05:49:02.000000000 +0300
> ++++ dpkg-1.16.3/lib/dpkg/parsehelp.c	2012-05-04 13:46:27.000000000 +0300
> +@@ -253,11 +253,11 @@
> +   if (*ptr&&  !cisdigit(*ptr++))
> +     return dpkg_put_warn(err, _("version number does not start with digit"));
> +   for (; *ptr; ptr++) {
>   -    if (!cisdigit(*ptr)&&  !cisalpha(*ptr)&&  strchr(".-+~:", *ptr) == NULL)
>   +    if (!cisdigit(*ptr)&&  !cisalpha(*ptr)&&  strchr(".-+~:_", *ptr) == NULL)
> -       return _("invalid character in version number");
> +       return dpkg_put_warn(err, _("invalid character in version number"));
>      }
>      for (ptr = rversion->revision; *ptr; ptr++) {
> --    if (!cisdigit(*ptr)&&  !cisalpha(*ptr)&&  strchr(".-+~", *ptr) == NULL)
> -+    if (!cisdigit(*ptr)&&  !cisalpha(*ptr)&&  strchr(".-+~_", *ptr) == NULL)
> -       return _("invalid character in revision number");
> +-    if (!cisdigit(*ptr)&&  !cisalpha(*ptr)&&  strchr(".+~", *ptr) == NULL)
> ++    if (!cisdigit(*ptr)&&  !cisalpha(*ptr)&&  strchr(".+~_", *ptr) == NULL)
> +       return dpkg_put_warn(err, _("invalid character in revision number"));
>      }
>
> diff --git a/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
> b/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
> deleted file mode 100644
> index a5d6b61..0000000
> --- a/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
> +++ /dev/null
> @@ -1,198 +0,0 @@
> -From 78eaf928d30d0b16e05d8d63c55a3632a135ed9a Mon Sep 17 00:00:00 2001
> -From: Guillem Jover<guillem@debian.org>
> -Date: Thu, 4 Nov 2010 00:51:13 +0100
> -Subject: [PATCH] dpkg-deb: Use fd instead of stream based buffered I/O
> -
> -Behaviour of fflush() on input streams is undefined per POSIX, avoid
> -mixing stream and file descriptor based I/O, and only use the latter
> -instead.
> -
> -Upstream-Status: Backport of revision
> 2d420ee1d05033d237462a0075facfe406b08043 (in 1.16.x)
> -
> ----
> - dpkg-deb/extract.c |   83 ++++++++++++++++++++++++++++++++++++++-------------
> - 1 files changed, 62 insertions(+), 21 deletions(-)
> -
> -diff --git a/dpkg-deb/extract.c b/dpkg-deb/extract.c
> -index 22aea98..0f5ac88 100644
> ---- a/dpkg-deb/extract.c
> -+++ b/dpkg-deb/extract.c
> -@@ -31,6 +31,7 @@
> - #include<ctype.h>
> - #include<string.h>
> - #include<dirent.h>
> -+#include<fcntl.h>
> - #include<unistd.h>
> - #include<ar.h>
> - #include<stdbool.h>
> -@@ -61,13 +62,41 @@ static void movecontrolfiles(const char *thing) {
> - }
> -
> - static void DPKG_ATTR_NORET
> --readfail(FILE *a, const char *filename, const char *what)
> -+read_fail(int rc, const char *filename, const char *what)
> - {
> --  if (ferror(a)) {
> --    ohshite(_("error reading %s from file %.255s"), what, filename);
> --  } else {
> -+  if (rc == 0)
> -     ohshit(_("unexpected end of file in %s in %.255s"),what,filename);
> -+  else
> -+    ohshite(_("error reading %s from file %.255s"), what, filename);
> -+}
> -+
> -+static ssize_t
> -+read_line(int fd, char *buf, size_t min_size, size_t max_size)
> -+{
> -+  ssize_t line_size = 0;
> -+  size_t n = min_size;
> -+
> -+  while (line_size<  (ssize_t)max_size) {
> -+    ssize_t r;
> -+    char *nl;
> -+
> -+    r = read(fd, buf + line_size, n);
> -+    if (r<= 0)
> -+      return r;
> -+
> -+    nl = strchr(buf + line_size, '\n');
> -+    line_size += r;
> -+
> -+    if (nl != NULL) {
> -+      nl[1] = '\0';
> -+      return line_size;
> -+    }
> -+
> -+    n = 1;
> -   }
> -+
> -+  buf[line_size] = '\0';
> -+  return line_size;
> - }
> -
> - static size_t
> -@@ -115,19 +144,26 @@ void extracthalf(const char *debar, const char
> *directory,
> -   char versionbuf[40];
> -   float versionnum;
> -   size_t ctrllennum, memberlen= 0;
> -+  ssize_t r;
> -   int dummy;
> -   pid_t c1=0,c2,c3;
> -   int p1[2], p2[2];
> --  FILE *ar;
> -+  int arfd;
> -   struct stat stab;
> -   char nlc;
> -   int adminmember;
> -   bool oldformat, header_done;
> -   struct compressor *decompressor =&compressor_gzip;
> -
> --  ar= fopen(debar,"r"); if (!ar) ohshite(_("failed to read archive
> `%.255s'"),debar);
> --  if (fstat(fileno(ar),&stab)) ohshite(_("failed to fstat archive"));
> --  if (!fgets(versionbuf,sizeof(versionbuf),ar))
> readfail(ar,debar,_("version number"));
> -+  arfd = open(debar, O_RDONLY);
> -+  if (arfd<  0)
> -+    ohshite(_("failed to read archive `%.255s'"), debar);
> -+  if (fstat(arfd,&stab))
> -+    ohshite(_("failed to fstat archive"));
> -+
> -+  r = read_line(arfd, versionbuf, strlen(DPKG_AR_MAGIC), sizeof(versionbuf));
> -+  if (r<  0)
> -+    read_fail(r, debar, _("archive magic version number"));
> -
> -   if (!strcmp(versionbuf, DPKG_AR_MAGIC)) {
> -     oldformat = false;
> -@@ -137,8 +173,9 @@ void extracthalf(const char *debar, const char *directory,
> -     for (;;) {
> -       struct ar_hdr arh;
> -
> --      if (fread(&arh,1,sizeof(arh),ar) != sizeof(arh))
> --        readfail(ar,debar,_("between members"));
> -+      r = read(arfd,&arh, sizeof(arh));
> -+      if (r != sizeof(arh))
> -+        read_fail(r, debar, _("archive member header"));
> -
> -       dpkg_ar_normalize_name(&arh);
> -
> -@@ -153,8 +190,9 @@ void extracthalf(const char *debar, const char *directory,
> -         if (strncmp(arh.ar_name, DEBMAGIC, sizeof(arh.ar_name)) != 0)
> -           ohshit(_("file `%.250s' is not a debian binary archive
> (try dpkg-split?)"),debar);
> -         infobuf= m_malloc(memberlen+1);
> --        if (fread(infobuf,1, memberlen + (memberlen&1), ar) !=
> memberlen + (memberlen&1))
> --          readfail(ar,debar,_("header info member"));
> -+        r = read(arfd, infobuf, memberlen + (memberlen&  1));
> -+        if ((size_t)r != (memberlen + (memberlen&  1)))
> -+          read_fail(r, debar, _("archive information header member"));
> -         infobuf[memberlen] = '\0';
> -         cur= strchr(infobuf,'\n');
> -         if (!cur) ohshit(_("archive has no newlines in header"));
> -@@ -174,7 +212,8 @@ void extracthalf(const char *debar, const char *directory,
> -           /* Members with `_' are noncritical, and if we don't understand them
> -            * we skip them.
> -            */
> --	stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member
> data from %s"), debar);
> -+        fd_null_copy(arfd, memberlen + (memberlen&  1),
> -+                     _("skipped archive member data from %s"), debar);
> -       } else {
> - 	if (strncmp(arh.ar_name, ADMINMEMBER, sizeof(arh.ar_name)) == 0)
> - 	  adminmember = 1;
> -@@ -198,7 +237,8 @@ void extracthalf(const char *debar, const char *directory,
> -           ctrllennum= memberlen;
> -         }
> -         if (!adminmember != !admininfo) {
> --	  stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member
> data from %s"), debar);
> -+          fd_null_copy(arfd, memberlen + (memberlen&  1),
> -+                       _("skipped archive member data from %s"), debar);
> -         } else {
> -           break; /* Yes ! - found it. */
> -         }
> -@@ -221,8 +261,10 @@ void extracthalf(const char *debar, const char *directory,
> -     l = strlen(versionbuf);
> -     if (l&&  versionbuf[l - 1] == '\n')
> -       versionbuf[l - 1] = '\0';
> --    if (!fgets(ctrllenbuf,sizeof(ctrllenbuf),ar))
> --      readfail(ar, debar, _("control information length"));
> -+
> -+    r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf));
> -+    if (r<  0)
> -+      read_fail(r, debar, _("archive control member size"));
> -     if (sscanf(ctrllenbuf,"%zi%c%d",&ctrllennum,&nlc,&dummy) !=2 ||
> nlc != '\n')
> -       ohshit(_("archive has malformatted control length `%s'"), ctrllenbuf);
> -
> -@@ -230,7 +272,8 @@ void extracthalf(const char *debar, const char *directory,
> -       memberlen = ctrllennum;
> -     } else {
> -       memberlen = stab.st_size - ctrllennum - strlen(ctrllenbuf) - l;
> --      stream_null_copy(ar, ctrllennum, _("skipped control area from
> %s"), debar);
> -+      fd_null_copy(arfd, ctrllennum,
> -+                   _("skipped archive control member data from %s"), debar);
> -     }
> -
> -     if (admininfo>= 2) {
> -@@ -252,13 +295,11 @@ void extracthalf(const char *debar, const char
> *directory,
> -
> -   }
> -
> --  safe_fflush(ar);
> --
> -   m_pipe(p1);
> -   c1 = subproc_fork();
> -   if (!c1) {
> -     close(p1[0]);
> --    stream_fd_copy(ar, p1[1], memberlen, _("failed to write to pipe
> in copy"));
> -+    fd_fd_copy(arfd, p1[1], memberlen, _("failed to write to pipe in copy"));
> -     if (close(p1[1]))
> -       ohshite(_("failed to close pipe in copy"));
> -     exit(0);
> -@@ -275,7 +316,7 @@ void extracthalf(const char *debar, const char *directory,
> -     decompress_filter(decompressor, 0, 1, _("data"));
> -   }
> -   close(p1[0]);
> --  fclose(ar);
> -+  close(arfd);
> -   if (taroption) close(p2[1]);
> -
> -   if (taroption&&  directory) {
> ---
> -1.7.7.6
> -
> diff --git a/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
> b/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
> index 0ff09e7..2dbb5a2 100644
> --- a/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
> +++ b/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
> @@ -1,22 +1,25 @@
>   Upstream-Status: Inappropriate [workaround]
>
> -diff -ruN dpkg-1.15.8.5-orig/dpkg-deb/build.c dpkg-1.15.8.5/dpkg-deb/build.c
> ---- dpkg-1.15.8.5-orig/dpkg-deb/build.c	2010-10-08 12:27:15.042083703 +0800
> -+++ dpkg-1.15.8.5/dpkg-deb/build.c	2010-10-08 12:31:53.822534277 +0800
> -@@ -275,14 +275,14 @@
> -               controlfile, checkedinfo->otherpriority);
> -       warns++;
> -     }
> --    for (field= checkedinfo->available.arbs; field; field= field->next) {
> -+    /*for (field= checkedinfo->available.arbs; field; field= field->next) {
> -       if (known_arbitrary_field(field))
> -         continue;
> +Updated to apply over dpkg-1.16.3
> +
> +Signed-off-by: Marko Lindqvist<cazfi74@gmail.com>
> +
> +diff -Nurd dpkg-1.16.3/dpkg-deb/build.c dpkg-1.16.3/dpkg-deb/build.c
> +--- dpkg-1.16.3/dpkg-deb/build.c	2012-04-27 05:49:02.000000000 +0300
> ++++ dpkg-1.16.3/dpkg-deb/build.c	2012-05-04 13:28:39.000000000 +0300
> +@@ -340,6 +340,7 @@
> +   if (pkg->priority == pri_other)
> +     warning(_("'%s' contains user-defined Priority value '%s'"),
> +             controlfile, pkg->otherpriority);
> ++#if 0
> +   for (field = pkg->available.arbs; field; field = field->next) {
> +     if (known_arbitrary_field(field))
> +       continue;
> +@@ -347,6 +348,7 @@
> +     warning(_("'%s' contains user-defined field '%s'"), controlfile,
> +             field->name);
> +   }
> ++#endif
>
> -       warning(_("'%s' contains user-defined field '%s'"),
> -               controlfile, field->name);
> -       warns++;
> --    }
> -+    }*/
> +   free(controlfile);
>
> -     if (subdir) {
> -       versionstring=
> versiondescribe(&checkedinfo->available.version,vdew_never);
> diff --git a/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
> b/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
> deleted file mode 100644
> index 45973f0..0000000
> --- a/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -We want to be able to set PERL_LIBDIR from the environment. This
> -hardcoded assignment prevents us from doing so and obtains an
> -incorrect value.
> -
> -Upstream-Status: Inappropriate [in this form at least]
> -
> -RP 14/11/2011
> -
> -Index: dpkg-1.15.8.7/m4/dpkg-progs.m4
> -===================================================================
> ---- dpkg-1.15.8.7.orig/m4/dpkg-progs.m4	2011-11-14 17:32:21.252053239 +0000
> -+++ dpkg-1.15.8.7/m4/dpkg-progs.m4	2011-11-14 17:32:55.180052455 +0000
> -@@ -9,9 +9,6 @@
> - [AC_ARG_VAR([PERL], [Perl interpreter])dnl
> - AC_PATH_PROG([PERL], [perl], [/usr/bin/perl])dnl
> - AC_ARG_VAR([PERL_LIBDIR], [Perl library directory])dnl
> --PERL_LIBDIR=$($PERL -MConfig -e 'my $r = $Config{vendorlibexp};
> --                                 $r =~ s/$Config{vendorprefixexp}/\$(prefix)/;
> --                                 print $r')dnl
> - ])# DPKG_PROG_PERL
> -
> - # DPKG_PROG_PO4A
> diff --git a/meta/recipes-devtools/dpkg/dpkg/preinst.patch
> b/meta/recipes-devtools/dpkg/dpkg/preinst.patch
> index 06d2aac..557b423 100644
> --- a/meta/recipes-devtools/dpkg/dpkg/preinst.patch
> +++ b/meta/recipes-devtools/dpkg/dpkg/preinst.patch
> @@ -6,41 +6,48 @@ Upstream-Status: Inappropriate [OE Specific]
>
>   RP 2011/12/07
>
> -Index: dpkg-1.15.8.7/src/help.c
> -===================================================================
> ---- dpkg-1.15.8.7.orig/src/help.c	2010-12-20 01:25:36.000000000 +0000
> -+++ dpkg-1.15.8.7/src/help.c	2011-12-07 14:51:02.783461487 +0000
> -@@ -181,30 +181,9 @@
> -    * FIXME: none of the stuff here will work if admindir isn't inside
> -    * instdir as expected.
> -    */
> --  size_t instdirl;
> +Updated to apply over dpkg-1.16.3
> +
> +Signed-off-by: Marko Lindqvist<cazfi74@gmail.com>
> +
> +diff -Nurd dpkg-1.16.3/src/help.c dpkg-1.16.3/src/help.c
> +--- dpkg-1.16.3/src/help.c	2012-04-27 05:49:03.000000000 +0300
> ++++ dpkg-1.16.3/src/help.c	2012-05-04 13:55:44.000000000 +0300
> +@@ -204,35 +204,10 @@
> + static const char *
> + preexecscript(struct command *cmd)
> + {
> +-  const char *admindir = dpkg_db_get_dir();
> +-  size_t instdirl = strlen(instdir);
> +-
> +   if (*instdir) {
> +-    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 (*instdir) {
>   -    if (chroot(instdir)) ohshite(_("failed to chroot to `%.250s'"),instdir);
>   -    if (chdir("/"))
>   -      ohshite(_("failed to chdir to `%.255s'"), "/");
>   -  }
> --  if (f_debug&  dbg_scripts) {
> +-  if (debug_has_flag(dbg_scripts)) {
>   -    struct varbuf args = VARBUF_INIT;
>   -    const char **argv = cmd->argv;
>   -
>   -    while (*++argv) {
> --      varbufaddc(&args, ' ');
> --      varbufaddstr(&args, *argv);
> +-      varbuf_add_char(&args, ' ');
> +-      varbuf_add_str(&args, *argv);
>   -    }
> --    varbufaddc(&args, '\0');
> +-    varbuf_end_str(&args);
>   -    debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename, args.buf);
>   -    varbuf_destroy(&args);
> --  }
> --  instdirl= strlen(instdir);
> ++    setenv("D", instdir, 1);
> +   }
>   -  if (!instdirl)
>   -    return cmd->filename;
>   -  assert(strlen(cmd->filename)>= instdirl);
>   -  return cmd->filename + instdirl;
> -+  if (*instdir)
> -+    setenv("D", instdir, 1);
>   +  return cmd->filename;
> - }
> + }
>
>    void
> diff --git a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
> b/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
> deleted file mode 100644
> index 1e7ef25..0000000
> --- a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -require dpkg.inc
> -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
> -
> -SRC_URI += "file://noman.patch \
> -            file://check_snprintf.patch \
> -            file://check_version.patch \
> -            file://perllibdir.patch \
> -            file://preinst.patch \
> -            file://dpkg-deb-avoid-fflush.patch"
> -
> -SRC_URI[md5sum] = "d1731d4147c1ea3b537a4d094519a6dc"
> -SRC_URI[sha256sum] =
> "1ec1376471b04717a4497e5d7a27cd545248c92116898ce0c53ced8ea94267b5"
> -
> -PR = "${INC_PR}.4"
> -
> diff --git a/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
> b/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
> new file mode 100644
> index 0000000..6af7f2d
> --- /dev/null
> +++ b/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
> @@ -0,0 +1,13 @@
> +require dpkg.inc
> +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
> +
> +SRC_URI += "file://noman.patch \
> +            file://check_snprintf.patch \
> +            file://check_version.patch \
> +            file://preinst.patch"
> +
> +SRC_URI[md5sum] = "20189e2926ada3dda4f77ef2e36999af"
> +SRC_URI[sha256sum] =
> "8048890ca92a3ca317a4fdd557f8e9b2b3ce560743e8e70813496f9a7096d8d8"
> +
> +PR = "${INC_PR}.1"
> +



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dpkg: update to upstream version 1.16.3
  2012-05-11 17:01 ` Saul Wold
@ 2012-05-11 17:06   ` Marko Lindqvist
  2012-05-12  1:57     ` Marko Lindqvist
  0 siblings, 1 reply; 7+ messages in thread
From: Marko Lindqvist @ 2012-05-11 17:06 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 11 May 2012 20:01, Saul Wold <sgw@linux.intel.com> wrote:
> On 05/04/2012 03:59 PM, Marko Lindqvist wrote:
>>
>> From: Marko Lindqvist<cazfi74@gmail.com>
>> Date: Sat, 5 May 2012 00:02:06 +0300
>> Subject: [PATCH] dpkg: update to upstream version 1.16.3
>>
>
> Marko,
>
> Are you going to resend this and the apt patch in an uncorrupted format?
>
> Thanks
>        Sau!

 Working on them.
 Either one is causes image build problems. I've now managed to fetch
old dpkg and apt versions from mirror, and image build with them (+
patch not to consider advanced dependency marker as version number)
success. So the problems I'm encountering with new dpkg+apt do not
exist with old ones.


 - ML



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dpkg: update to upstream version 1.16.3
  2012-05-11 17:06   ` Marko Lindqvist
@ 2012-05-12  1:57     ` Marko Lindqvist
  2012-05-13  0:37       ` Marko Lindqvist
  0 siblings, 1 reply; 7+ messages in thread
From: Marko Lindqvist @ 2012-05-12  1:57 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 11 May 2012 20:06, Marko Lindqvist <cazfi74@gmail.com> wrote:
> On 11 May 2012 20:01, Saul Wold <sgw@linux.intel.com> wrote:
>> On 05/04/2012 03:59 PM, Marko Lindqvist wrote:
>>>
>>> From: Marko Lindqvist<cazfi74@gmail.com>
>>> Date: Sat, 5 May 2012 00:02:06 +0300
>>> Subject: [PATCH] dpkg: update to upstream version 1.16.3
>>>
>>
>> Marko,
>>
>> Are you going to resend this and the apt patch in an uncorrupted format?
>>
>> Thanks
>>        Sau!
>
>  Working on them.
>  Either one is causes image build problems. I've now managed to fetch
> old dpkg and apt versions from mirror, and image build with them (+
> patch not to consider advanced dependency marker as version number)
> success. So the problems I'm encountering with new dpkg+apt do not
> exist with old ones.

 Reverting dpkg update (but leaving apt update in place) works. I'll
resend apt patch soon.

 I'm not entirely sure if problems I'm seeing in image building are
caused by bugs in new dpkg, or bugs that dpkg update just uncovers in
packaged components.


 - ML



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dpkg: update to upstream version 1.16.3
  2012-05-12  1:57     ` Marko Lindqvist
@ 2012-05-13  0:37       ` Marko Lindqvist
  0 siblings, 0 replies; 7+ messages in thread
From: Marko Lindqvist @ 2012-05-13  0:37 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 12 May 2012 04:57, Marko Lindqvist <cazfi74@gmail.com> wrote:
>
>  I'm not entirely sure if problems I'm seeing in image building are
> caused by bugs in new dpkg, or bugs that dpkg update just uncovers in
> packaged components.

 Problem is in dpkg. I'll run some more tests on new version before
sending updated patch (away most of tomorrow, so probably Monday)


 - ML



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] dpkg: update to upstream version 1.16.3
  2012-05-13  7:41 Marko Lindqvist
@ 2012-07-28 23:12 ` Marko Lindqvist
  0 siblings, 0 replies; 7+ messages in thread
From: Marko Lindqvist @ 2012-07-28 23:12 UTC (permalink / raw)
  To: openembedded-core

On 13 May 2012 10:41, Marko Lindqvist <cazfi74@gmail.com> wrote:
> From: Marko Lindqvist <cazfi@cazfi-64>
>
> Update dpkg recipe to get latest upstream version (1.16.3) as
> 1.15.8.7 is no longer available.

 Just to reminding you that final versions I posted suffered from no
bugs I'm aware of. This dpkg update patch works standalone. apt update
one requires patch "package_deb.bbclass: don't handle advanced
dependency marker as version number" before updated apt works at all.
Bug fixed by that patch is not new with apt update - it just isn't
causing fatal error with earlier version of apt (or any other
package).

 Computer I had set up for OpenEmbedded development failed over a
Month ago, and I'm still using just temporary solutions for all my sw
development needs - making OE setup to these temporary environments is
not feasible. So I'm afraid I cannot do any real development at the
moment, but I'll try to answer any questions you have about those
three patches.


 - ML



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] dpkg: update to upstream version 1.16.3
@ 2012-05-13  7:41 Marko Lindqvist
  2012-07-28 23:12 ` Marko Lindqvist
  0 siblings, 1 reply; 7+ messages in thread
From: Marko Lindqvist @ 2012-05-13  7:41 UTC (permalink / raw)
  To: openembedded-core

From: Marko Lindqvist <cazfi@cazfi-64>

Update dpkg recipe to get latest upstream version (1.16.3) as
1.15.8.7 is no longer available.

* check_version.patch : updated to apply cleanly
* dpkg-dev-avoid-fflush.patch : removed as already part of upstream
* ignore_extra_fields.patch : updated to apply cleanly
* perllibdir.patch : removed as unnecessary after upstream changes
* preinst.patch : updated to apply cleanly
* ignore_lutimes_errors.patch : new patch to fix unpack failures

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 meta/recipes-devtools/dpkg/dpkg.inc                |    5 +-
 .../recipes-devtools/dpkg/dpkg/check_version.patch |   26 +--
 .../dpkg/dpkg/dpkg-deb-avoid-fflush.patch          |  198 --------------------
 .../dpkg/dpkg/ignore_extra_fields.patch            |   39 ++--
 .../dpkg/dpkg/ignore_lutimes_errors.patch          |   26 +++
 meta/recipes-devtools/dpkg/dpkg/perllibdir.patch   |   22 ---
 meta/recipes-devtools/dpkg/dpkg/preinst.patch      |   45 +++--
 meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb        |   15 --
 meta/recipes-devtools/dpkg/dpkg_1.16.3.bb          |   13 ++
 9 files changed, 104 insertions(+), 285 deletions(-)
 delete mode 100644 meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
 create mode 100644 meta/recipes-devtools/dpkg/dpkg/ignore_lutimes_errors.patch
 delete mode 100644 meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
 delete mode 100644 meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
 create mode 100644 meta/recipes-devtools/dpkg/dpkg_1.16.3.bb

diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc
index 09bfbbc..93bf7c1 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -2,10 +2,11 @@ DESCRIPTION = "Package maintenance system for Debian."
 LICENSE = "GPLv2.0+"
 SECTION = "base"
 
-INC_PR = "r16"
+INC_PR = "r17"
 
 SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.bz2 \
-           file://ignore_extra_fields.patch"
+           file://ignore_extra_fields.patch \
+           file://ignore_lutimes_errors.patch"
 
 DEPENDS = "zlib bzip2 perl"
 DEPENDS_virtclass-native = "bzip2-native zlib-native virtual/update-alternatives-native gettext-native perl-native-runtime"
diff --git a/meta/recipes-devtools/dpkg/dpkg/check_version.patch b/meta/recipes-devtools/dpkg/dpkg/check_version.patch
index 524e715..385e4c6 100644
--- a/meta/recipes-devtools/dpkg/dpkg/check_version.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/check_version.patch
@@ -4,20 +4,24 @@ Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
 
 Upstream-Status: Inappropriate [embedded specific]
 
-diff -ruN dpkg-1.15.8.5-orig/lib/dpkg/parsehelp.c dpkg-1.15.8.5/lib/dpkg/parsehelp.c
---- dpkg-1.15.8.5-orig/lib/dpkg/parsehelp.c	2010-10-08 12:27:15.058572774 +0800
-+++ dpkg-1.15.8.5/lib/dpkg/parsehelp.c	2010-10-09 11:18:15.484190771 +0800
-@@ -268,11 +268,11 @@
- 
-   /* XXX: Would be faster to use something like cisversion and cisrevision. */
-   for (ptr = rversion->version; *ptr; ptr++) {
+Updated to apply over dpkg-1.16.3
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd dpkg-1.16.3/lib/dpkg/parsehelp.c dpkg-1.16.3/lib/dpkg/parsehelp.c
+--- dpkg-1.16.3/lib/dpkg/parsehelp.c	2012-04-27 05:49:02.000000000 +0300
++++ dpkg-1.16.3/lib/dpkg/parsehelp.c	2012-05-04 13:46:27.000000000 +0300
+@@ -253,11 +253,11 @@
+   if (*ptr && !cisdigit(*ptr++))
+     return dpkg_put_warn(err, _("version number does not start with digit"));
+   for (; *ptr; ptr++) {
 -    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~:", *ptr) == NULL)
 +    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~:_", *ptr) == NULL)
-       return _("invalid character in version number");
+       return dpkg_put_warn(err, _("invalid character in version number"));
    }
    for (ptr = rversion->revision; *ptr; ptr++) {
--    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~", *ptr) == NULL)
-+    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".-+~_", *ptr) == NULL)
-       return _("invalid character in revision number");
+-    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".+~", *ptr) == NULL)
++    if (!cisdigit(*ptr) && !cisalpha(*ptr) && strchr(".+~_", *ptr) == NULL)
+       return dpkg_put_warn(err, _("invalid character in revision number"));
    }
  
diff --git a/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch b/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
deleted file mode 100644
index a5d6b61..0000000
--- a/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 78eaf928d30d0b16e05d8d63c55a3632a135ed9a Mon Sep 17 00:00:00 2001
-From: Guillem Jover <guillem@debian.org>
-Date: Thu, 4 Nov 2010 00:51:13 +0100
-Subject: [PATCH] dpkg-deb: Use fd instead of stream based buffered I/O
-
-Behaviour of fflush() on input streams is undefined per POSIX, avoid
-mixing stream and file descriptor based I/O, and only use the latter
-instead.
-
-Upstream-Status: Backport of revision 2d420ee1d05033d237462a0075facfe406b08043 (in 1.16.x)
-
----
- dpkg-deb/extract.c |   83 ++++++++++++++++++++++++++++++++++++++-------------
- 1 files changed, 62 insertions(+), 21 deletions(-)
-
-diff --git a/dpkg-deb/extract.c b/dpkg-deb/extract.c
-index 22aea98..0f5ac88 100644
---- a/dpkg-deb/extract.c
-+++ b/dpkg-deb/extract.c
-@@ -31,6 +31,7 @@
- #include <ctype.h>
- #include <string.h>
- #include <dirent.h>
-+#include <fcntl.h>
- #include <unistd.h>
- #include <ar.h>
- #include <stdbool.h>
-@@ -61,13 +62,41 @@ static void movecontrolfiles(const char *thing) {
- }
- 
- static void DPKG_ATTR_NORET
--readfail(FILE *a, const char *filename, const char *what)
-+read_fail(int rc, const char *filename, const char *what)
- {
--  if (ferror(a)) {
--    ohshite(_("error reading %s from file %.255s"), what, filename);
--  } else {
-+  if (rc == 0)
-     ohshit(_("unexpected end of file in %s in %.255s"),what,filename);
-+  else
-+    ohshite(_("error reading %s from file %.255s"), what, filename);
-+}
-+
-+static ssize_t
-+read_line(int fd, char *buf, size_t min_size, size_t max_size)
-+{
-+  ssize_t line_size = 0;
-+  size_t n = min_size;
-+
-+  while (line_size < (ssize_t)max_size) {
-+    ssize_t r;
-+    char *nl;
-+
-+    r = read(fd, buf + line_size, n);
-+    if (r <= 0)
-+      return r;
-+
-+    nl = strchr(buf + line_size, '\n');
-+    line_size += r;
-+
-+    if (nl != NULL) {
-+      nl[1] = '\0';
-+      return line_size;
-+    }
-+
-+    n = 1;
-   }
-+
-+  buf[line_size] = '\0';
-+  return line_size;
- }
- 
- static size_t
-@@ -115,19 +144,26 @@ void extracthalf(const char *debar, const char *directory,
-   char versionbuf[40];
-   float versionnum;
-   size_t ctrllennum, memberlen= 0;
-+  ssize_t r;
-   int dummy;
-   pid_t c1=0,c2,c3;
-   int p1[2], p2[2];
--  FILE *ar;
-+  int arfd;
-   struct stat stab;
-   char nlc;
-   int adminmember;
-   bool oldformat, header_done;
-   struct compressor *decompressor = &compressor_gzip;
-   
--  ar= fopen(debar,"r"); if (!ar) ohshite(_("failed to read archive `%.255s'"),debar);
--  if (fstat(fileno(ar),&stab)) ohshite(_("failed to fstat archive"));
--  if (!fgets(versionbuf,sizeof(versionbuf),ar)) readfail(ar,debar,_("version number"));
-+  arfd = open(debar, O_RDONLY);
-+  if (arfd < 0)
-+    ohshite(_("failed to read archive `%.255s'"), debar);
-+  if (fstat(arfd, &stab))
-+    ohshite(_("failed to fstat archive"));
-+
-+  r = read_line(arfd, versionbuf, strlen(DPKG_AR_MAGIC), sizeof(versionbuf));
-+  if (r < 0)
-+    read_fail(r, debar, _("archive magic version number"));
- 
-   if (!strcmp(versionbuf, DPKG_AR_MAGIC)) {
-     oldformat = false;
-@@ -137,8 +173,9 @@ void extracthalf(const char *debar, const char *directory,
-     for (;;) {
-       struct ar_hdr arh;
- 
--      if (fread(&arh,1,sizeof(arh),ar) != sizeof(arh))
--        readfail(ar,debar,_("between members"));
-+      r = read(arfd, &arh, sizeof(arh));
-+      if (r != sizeof(arh))
-+        read_fail(r, debar, _("archive member header"));
- 
-       dpkg_ar_normalize_name(&arh);
- 
-@@ -153,8 +190,9 @@ void extracthalf(const char *debar, const char *directory,
-         if (strncmp(arh.ar_name, DEBMAGIC, sizeof(arh.ar_name)) != 0)
-           ohshit(_("file `%.250s' is not a debian binary archive (try dpkg-split?)"),debar);
-         infobuf= m_malloc(memberlen+1);
--        if (fread(infobuf,1, memberlen + (memberlen&1), ar) != memberlen + (memberlen&1))
--          readfail(ar,debar,_("header info member"));
-+        r = read(arfd, infobuf, memberlen + (memberlen & 1));
-+        if ((size_t)r != (memberlen + (memberlen & 1)))
-+          read_fail(r, debar, _("archive information header member"));
-         infobuf[memberlen] = '\0';
-         cur= strchr(infobuf,'\n');
-         if (!cur) ohshit(_("archive has no newlines in header"));
-@@ -174,7 +212,8 @@ void extracthalf(const char *debar, const char *directory,
-           /* Members with `_' are noncritical, and if we don't understand them
-            * we skip them.
-            */
--	stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member data from %s"), debar);
-+        fd_null_copy(arfd, memberlen + (memberlen & 1),
-+                     _("skipped archive member data from %s"), debar);
-       } else {
- 	if (strncmp(arh.ar_name, ADMINMEMBER, sizeof(arh.ar_name)) == 0)
- 	  adminmember = 1;
-@@ -198,7 +237,8 @@ void extracthalf(const char *debar, const char *directory,
-           ctrllennum= memberlen;
-         }
-         if (!adminmember != !admininfo) {
--	  stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member data from %s"), debar);
-+          fd_null_copy(arfd, memberlen + (memberlen & 1),
-+                       _("skipped archive member data from %s"), debar);
-         } else {
-           break; /* Yes ! - found it. */
-         }
-@@ -221,8 +261,10 @@ void extracthalf(const char *debar, const char *directory,
-     l = strlen(versionbuf);
-     if (l && versionbuf[l - 1] == '\n')
-       versionbuf[l - 1] = '\0';
--    if (!fgets(ctrllenbuf,sizeof(ctrllenbuf),ar))
--      readfail(ar, debar, _("control information length"));
-+
-+    r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf));
-+    if (r < 0)
-+      read_fail(r, debar, _("archive control member size"));
-     if (sscanf(ctrllenbuf,"%zi%c%d",&ctrllennum,&nlc,&dummy) !=2 || nlc != '\n')
-       ohshit(_("archive has malformatted control length `%s'"), ctrllenbuf);
- 
-@@ -230,7 +272,8 @@ void extracthalf(const char *debar, const char *directory,
-       memberlen = ctrllennum;
-     } else {
-       memberlen = stab.st_size - ctrllennum - strlen(ctrllenbuf) - l;
--      stream_null_copy(ar, ctrllennum, _("skipped control area from %s"), debar);
-+      fd_null_copy(arfd, ctrllennum,
-+                   _("skipped archive control member data from %s"), debar);
-     }
- 
-     if (admininfo >= 2) {
-@@ -252,13 +295,11 @@ void extracthalf(const char *debar, const char *directory,
- 
-   }
- 
--  safe_fflush(ar);
--
-   m_pipe(p1);
-   c1 = subproc_fork();
-   if (!c1) {
-     close(p1[0]);
--    stream_fd_copy(ar, p1[1], memberlen, _("failed to write to pipe in copy"));
-+    fd_fd_copy(arfd, p1[1], memberlen, _("failed to write to pipe in copy"));
-     if (close(p1[1]))
-       ohshite(_("failed to close pipe in copy"));
-     exit(0);
-@@ -275,7 +316,7 @@ void extracthalf(const char *debar, const char *directory,
-     decompress_filter(decompressor, 0, 1, _("data"));
-   }
-   close(p1[0]);
--  fclose(ar);
-+  close(arfd);
-   if (taroption) close(p2[1]);
- 
-   if (taroption && directory) {
--- 
-1.7.7.6
-
diff --git a/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch b/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
index 0ff09e7..2dbb5a2 100644
--- a/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/ignore_extra_fields.patch
@@ -1,22 +1,25 @@
 Upstream-Status: Inappropriate [workaround]
 
-diff -ruN dpkg-1.15.8.5-orig/dpkg-deb/build.c dpkg-1.15.8.5/dpkg-deb/build.c
---- dpkg-1.15.8.5-orig/dpkg-deb/build.c	2010-10-08 12:27:15.042083703 +0800
-+++ dpkg-1.15.8.5/dpkg-deb/build.c	2010-10-08 12:31:53.822534277 +0800
-@@ -275,14 +275,14 @@
-               controlfile, checkedinfo->otherpriority);
-       warns++;
-     }
--    for (field= checkedinfo->available.arbs; field; field= field->next) {
-+    /*for (field= checkedinfo->available.arbs; field; field= field->next) {
-       if (known_arbitrary_field(field))
-         continue;
+Updated to apply over dpkg-1.16.3
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd dpkg-1.16.3/dpkg-deb/build.c dpkg-1.16.3/dpkg-deb/build.c
+--- dpkg-1.16.3/dpkg-deb/build.c	2012-04-27 05:49:02.000000000 +0300
++++ dpkg-1.16.3/dpkg-deb/build.c	2012-05-04 13:28:39.000000000 +0300
+@@ -340,6 +340,7 @@
+   if (pkg->priority == pri_other)
+     warning(_("'%s' contains user-defined Priority value '%s'"),
+             controlfile, pkg->otherpriority);
++#if 0
+   for (field = pkg->available.arbs; field; field = field->next) {
+     if (known_arbitrary_field(field))
+       continue;
+@@ -347,6 +348,7 @@
+     warning(_("'%s' contains user-defined field '%s'"), controlfile,
+             field->name);
+   }
++#endif
  
-       warning(_("'%s' contains user-defined field '%s'"),
-               controlfile, field->name);
-       warns++;
--    }
-+    }*/
+   free(controlfile);
  
-     if (subdir) {
-       versionstring= versiondescribe(&checkedinfo->available.version,vdew_never);
diff --git a/meta/recipes-devtools/dpkg/dpkg/ignore_lutimes_errors.patch b/meta/recipes-devtools/dpkg/dpkg/ignore_lutimes_errors.patch
new file mode 100644
index 0000000..f0dcf91
--- /dev/null
+++ b/meta/recipes-devtools/dpkg/dpkg/ignore_lutimes_errors.patch
@@ -0,0 +1,26 @@
+do not error out if symbolic link modification time setting fails
+
+In OE environment setting that timestamp could fail for several
+non-error reasons, thus aborting package unpacking.
+
+Upstream-Status: Pending [http://bugs.debian.org/cgi-bin/bugreport.cgi?archive=no&bug=672715]]
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd dpkg-1.16.3/src/archives.c dpkg-1.16.3/src/archives.c
+--- dpkg-1.16.3/src/archives.c	2012-04-27 05:49:03.000000000 +0300
++++ dpkg-1.16.3/src/archives.c	2012-05-13 03:14:08.000000000 +0300
+@@ -432,8 +432,11 @@
+ 
+   if (te->type == tar_filetype_symlink) {
+ #ifdef HAVE_LUTIMES
+-    if (lutimes(path, tv) && errno != ENOSYS)
+-      ohshite(_("error setting timestamps of `%.255s'"), path);
++    if (lutimes(path, tv) && errno != ENOSYS) {
++      /* In OE environment lutimes() could fail for several reasons and we don't
++       * want that to abort unpacking. For example link can be absolute path to
++       * something that is not present in host system. */
++    }
+ #endif
+   } else {
+     if (utimes(path, tv))
diff --git a/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch b/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
deleted file mode 100644
index 45973f0..0000000
--- a/meta/recipes-devtools/dpkg/dpkg/perllibdir.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-We want to be able to set PERL_LIBDIR from the environment. This
-hardcoded assignment prevents us from doing so and obtains an 
-incorrect value.
-
-Upstream-Status: Inappropriate [in this form at least]
-
-RP 14/11/2011
-
-Index: dpkg-1.15.8.7/m4/dpkg-progs.m4
-===================================================================
---- dpkg-1.15.8.7.orig/m4/dpkg-progs.m4	2011-11-14 17:32:21.252053239 +0000
-+++ dpkg-1.15.8.7/m4/dpkg-progs.m4	2011-11-14 17:32:55.180052455 +0000
-@@ -9,9 +9,6 @@
- [AC_ARG_VAR([PERL], [Perl interpreter])dnl
- AC_PATH_PROG([PERL], [perl], [/usr/bin/perl])dnl
- AC_ARG_VAR([PERL_LIBDIR], [Perl library directory])dnl
--PERL_LIBDIR=$($PERL -MConfig -e 'my $r = $Config{vendorlibexp};
--                                 $r =~ s/$Config{vendorprefixexp}/\$(prefix)/;
--                                 print $r')dnl
- ])# DPKG_PROG_PERL
- 
- # DPKG_PROG_PO4A
diff --git a/meta/recipes-devtools/dpkg/dpkg/preinst.patch b/meta/recipes-devtools/dpkg/dpkg/preinst.patch
index 06d2aac..557b423 100644
--- a/meta/recipes-devtools/dpkg/dpkg/preinst.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/preinst.patch
@@ -6,41 +6,48 @@ Upstream-Status: Inappropriate [OE Specific]
 
 RP 2011/12/07
 
-Index: dpkg-1.15.8.7/src/help.c
-===================================================================
---- dpkg-1.15.8.7.orig/src/help.c	2010-12-20 01:25:36.000000000 +0000
-+++ dpkg-1.15.8.7/src/help.c	2011-12-07 14:51:02.783461487 +0000
-@@ -181,30 +181,9 @@
-    * FIXME: none of the stuff here will work if admindir isn't inside
-    * instdir as expected.
-    */
--  size_t instdirl;
+Updated to apply over dpkg-1.16.3
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd dpkg-1.16.3/src/help.c dpkg-1.16.3/src/help.c
+--- dpkg-1.16.3/src/help.c	2012-04-27 05:49:03.000000000 +0300
++++ dpkg-1.16.3/src/help.c	2012-05-04 13:55:44.000000000 +0300
+@@ -204,35 +204,10 @@
+ static const char *
+ preexecscript(struct command *cmd)
+ {
+-  const char *admindir = dpkg_db_get_dir();
+-  size_t instdirl = strlen(instdir);
+-
+   if (*instdir) {
+-    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 (*instdir) {
 -    if (chroot(instdir)) ohshite(_("failed to chroot to `%.250s'"),instdir);
 -    if (chdir("/"))
 -      ohshite(_("failed to chdir to `%.255s'"), "/");
 -  }
--  if (f_debug & dbg_scripts) {
+-  if (debug_has_flag(dbg_scripts)) {
 -    struct varbuf args = VARBUF_INIT;
 -    const char **argv = cmd->argv;
 -
 -    while (*++argv) {
--      varbufaddc(&args, ' ');
--      varbufaddstr(&args, *argv);
+-      varbuf_add_char(&args, ' ');
+-      varbuf_add_str(&args, *argv);
 -    }
--    varbufaddc(&args, '\0');
+-    varbuf_end_str(&args);
 -    debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename, args.buf);
 -    varbuf_destroy(&args);
--  }
--  instdirl= strlen(instdir);
++    setenv("D", instdir, 1);
+   }
 -  if (!instdirl)
 -    return cmd->filename;
 -  assert(strlen(cmd->filename) >= instdirl);
 -  return cmd->filename + instdirl;
-+  if (*instdir)
-+    setenv("D", instdir, 1);
 +  return cmd->filename;
- }  
+ }
  
  void
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb b/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
deleted file mode 100644
index 1e7ef25..0000000
--- a/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require dpkg.inc
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI += "file://noman.patch \
-            file://check_snprintf.patch \
-            file://check_version.patch \
-            file://perllibdir.patch \
-            file://preinst.patch \
-            file://dpkg-deb-avoid-fflush.patch"
-
-SRC_URI[md5sum] = "d1731d4147c1ea3b537a4d094519a6dc"
-SRC_URI[sha256sum] = "1ec1376471b04717a4497e5d7a27cd545248c92116898ce0c53ced8ea94267b5"
-
-PR = "${INC_PR}.4"
-
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb b/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
new file mode 100644
index 0000000..df7c876
--- /dev/null
+++ b/meta/recipes-devtools/dpkg/dpkg_1.16.3.bb
@@ -0,0 +1,13 @@
+require dpkg.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI += "file://noman.patch \
+            file://check_snprintf.patch \
+            file://check_version.patch \
+            file://preinst.patch"
+
+SRC_URI[md5sum] = "20189e2926ada3dda4f77ef2e36999af"
+SRC_URI[sha256sum] = "8048890ca92a3ca317a4fdd557f8e9b2b3ce560743e8e70813496f9a7096d8d8"
+
+PR = "${INC_PR}.0"
+
-- 
1.7.10




^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-07-28 23:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-04 22:59 [PATCH] dpkg: update to upstream version 1.16.3 Marko Lindqvist
2012-05-11 17:01 ` Saul Wold
2012-05-11 17:06   ` Marko Lindqvist
2012-05-12  1:57     ` Marko Lindqvist
2012-05-13  0:37       ` Marko Lindqvist
2012-05-13  7:41 Marko Lindqvist
2012-07-28 23:12 ` Marko Lindqvist

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.