Opkg patch upstreaming and SIGSEGV fix
cover Opkg patch upstreaming and SIGSEGV fix
This depends on
http://patchwork.openembedded.org/patch/36893/
otherwise warning about missing SRC_URI entries will be shown
The following changes since commit f06097f4581e4c728c2950a86e025384e4bdcdf0:
eglibc: Do not use fsqrt in libm when building for fsl ppc with fpu (2012-09-18 07:44:13 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib jansa/opkg
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/opkg
Martin Jansa (3):
opkg: replace local patches with git patches submitted upstream
opkg: add patch to fix SIGSEGV when printing status file
opkg-nogpg: drop SRCREV
meta/recipes-devtools/opkg/opkg-nogpg_svn.bb | 2 -
.../0001-add-opkg_compare_versions-function.patch | 51 ++++++++++++++
...e-the-uname-gname-fields-when-extracting.patch} | 30 +++++---
...ix-dependency-issues-for-preinst-scripts.patch} | 65 ++++++++++--------
...nst-script-is-not-fatal-with-conf-offlin.patch} | 75 +++++++++++---------
...ot-read-etc-opkg-.conf-if-f-is-specified.patch} | 11 ++-
...tch => 0006-detect-circular-dependencies.patch} | 79 +++++++++++++---------
...g-provides-even-when-oldpkg-provides-exis.patch | 46 +++++++++++++
meta/recipes-devtools/opkg/opkg/add_vercmp.patch | 36 ----------
meta/recipes-devtools/opkg/opkg_svn.bb | 15 ++--
10 files changed, 258 insertions(+), 152 deletions(-)
create mode 100644 meta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch
rename meta/recipes-devtools/opkg/opkg/{add_uname_support.patch => 0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch} (71%)
rename meta/recipes-devtools/opkg/opkg/{fix_installorder.patch => 0003-Fix-dependency-issues-for-preinst-scripts.patch} (82%)
rename meta/recipes-devtools/opkg/opkg/{offline_postinstall.patch => 0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch} (52%)
rename meta/recipes-devtools/opkg/opkg/{conf_override.patch => 0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch} (91%)
rename meta/recipes-devtools/opkg/opkg/{track_parents.patch => 0006-detect-circular-dependencies.patch} (59%)
create mode 100644 meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patch
delete mode 100644 meta/recipes-devtools/opkg/opkg/add_vercmp.patchSignature · 1 line
1.7.12
PATCH 1/3 opkg: replace local patches with git patches submitted upstream
---
.../0001-add-opkg_compare_versions-function.patch | 51 ++++++++++++++
...e-the-uname-gname-fields-when-extracting.patch} | 30 +++++---
...ix-dependency-issues-for-preinst-scripts.patch} | 65 ++++++++++--------
...nst-script-is-not-fatal-with-conf-offlin.patch} | 75 +++++++++++---------
...ot-read-etc-opkg-.conf-if-f-is-specified.patch} | 11 ++-
...tch => 0006-detect-circular-dependencies.patch} | 79 +++++++++++++---------
meta/recipes-devtools/opkg/opkg/add_vercmp.patch | 36 ----------
meta/recipes-devtools/opkg/opkg_svn.bb | 12 ++--
8 files changed, 210 insertions(+), 149 deletions(-)
create mode 100644 meta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch
rename meta/recipes-devtools/opkg/opkg/{add_uname_support.patch => 0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch} (71%)
rename meta/recipes-devtools/opkg/opkg/{fix_installorder.patch => 0003-Fix-dependency-issues-for-preinst-scripts.patch} (82%)
rename meta/recipes-devtools/opkg/opkg/{offline_postinstall.patch => 0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch} (52%)
rename meta/recipes-devtools/opkg/opkg/{conf_override.patch => 0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch} (91%)
rename meta/recipes-devtools/opkg/opkg/{track_parents.patch => 0006-detect-circular-dependencies.patch} (59%)
delete mode 100644 meta/recipes-devtools/opkg/opkg/add_vercmp.patchmeta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch new file +51 -0
@@ -0,0 +1,51 @@ +From 029cf99fd44645b5fe1b6491355c631da3096e09 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <[email protected]> +Date: Sat, 17 Dec 2011 12:51:07 +0100 +Subject: [PATCH 1/7] add opkg_compare_versions function + +* not used in opkg but can be usefull, e.g. instead of + opkg-utils/opkg-compare-versions.c + +Signed-off-by: Martin Jansa <[email protected]> +--- + libopkg/opkg.c | 15 +++++++++++++++ + libopkg/opkg.h | 2 ++ + 2 files changed, 17 insertions(+) + +diff --git a/libopkg/opkg.c b/libopkg/opkg.c +index 92f61f4..eaea529 100644 +--- a/libopkg/opkg.c ++++ b/libopkg/opkg.c +@@ -870,3 +870,18 @@ opkg_repository_accessibility_check(void) + + return ret; + } ++ ++int ++opkg_compare_versions (const char *ver1, const char *ver2) ++{ ++ pkg_t *pkg1, *pkg2; ++ ++ pkg1 = pkg_new(); ++ pkg2 = pkg_new(); ++ ++ parse_version(pkg1, ver1); ++ parse_version(pkg2, ver2); ++ ++ return pkg_compare_versions(pkg1, pkg2); ++} ++ +diff --git a/libopkg/opkg.h b/libopkg/opkg.h +index 4fbd404..7aa86eb 100644 +--- a/libopkg/opkg.h ++++ b/libopkg/opkg.h +@@ -58,4 +58,6 @@ pkg_t* opkg_find_package (const char *name, const char *version, const char *arc + + int opkg_repository_accessibility_check(void); + ++int opkg_compare_versions (const char *ver1, const char *ver2); ++ + #endif /* OPKG_H */ +-- +1.7.12 +
meta/recipes-devtools/opkg/opkg/0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch renamed from meta/recipes-devtools/opkg/opkg/add_uname_support.patch +20 -10
@@ -1,17 +1,24 @@ +From 254780ab3b0db398447150251332916598d3b9f4 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <[email protected]> +Date: Fri, 11 Nov 2011 17:17:01 +0000 +Subject: [PATCH 2/7] Ensure we use the uname/gname fields when extracting + tarballs -When updating packages on the target device we ideally want to match +When updating packages on the target device we ideally want to match user and group numbers from the existing file system. This patch encourages opkg to lookup the uname/gname fields first and only use the hardcoded numerical values if that fails. -Upstream-Status: Pending +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Martin Jansa <[email protected]> +--- + libbb/unarchive.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 47 insertions(+), 2 deletions(-) -RP 11/11/11 - -Index: trunk/libbb/unarchive.c -=================================================================== ---- trunk.orig/libbb/unarchive.c 2011-11-11 15:52:59.761674091 +0000 -+++ trunk/libbb/unarchive.c 2011-11-11 17:04:56.501574419 +0000 +diff --git a/libbb/unarchive.c b/libbb/unarchive.c +index 5d4464f..d583767 100644 +--- a/libbb/unarchive.c ++++ b/libbb/unarchive.c @@ -22,10 +22,13 @@ #include <stdio.h> #include <errno.h>
@@ -26,7 +33,7 @@ Index: trunk/libbb/unarchive.c #include "libbb.h" -@@ -436,6 +439,42 @@ +@@ -436,6 +439,42 @@ free_header_ar(file_header_t *ar_entry) free(ar_entry); }
@@ -69,7 +76,7 @@ Index: trunk/libbb/unarchive.c static file_header_t * get_header_tar(FILE *tar_stream) -@@ -515,8 +554,14 @@ +@@ -515,8 +554,14 @@ get_header_tar(FILE *tar_stream) */ tar_entry->mode = 07777 & strtol(tar.formated.mode, NULL, 8);
@@ -86,3 +93,6 @@ Index: trunk/libbb/unarchive.c tar_entry->size = strtol(tar.formated.size, NULL, 8); tar_entry->mtime = strtol(tar.formated.mtime, NULL, 8); +-- +1.7.12 +
meta/recipes-devtools/opkg/opkg/0003-Fix-dependency-issues-for-preinst-scripts.patch renamed from meta/recipes-devtools/opkg/opkg/fix_installorder.patch +38 -27
103 lines not on this page · raw message
meta/recipes-devtools/opkg/opkg/0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch renamed from meta/recipes-devtools/opkg/opkg/offline_postinstall.patch +43 -32
92 lines not on this page · raw message
meta/recipes-devtools/opkg/opkg/0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch renamed from meta/recipes-devtools/opkg/opkg/conf_override.patch +5 -6
@@ -1,17 +1,16 @@ -From 45d0468f7f9e9be633b2819aa43ab9b6287b8e6a Mon Sep 17 00:00:00 2001 +From 541b6b7bd80dc321493e42955d93b277af0c9221 Mon Sep 17 00:00:00 2001 From: Paul Eggleton <[email protected]> Date: Mon, 9 Jul 2012 11:01:15 +0100 -Subject: [PATCH] Do not read /etc/opkg/*.conf if -f is specified +Subject: [PATCH 5/7] Do not read /etc/opkg/*.conf if -f is specified If a configuration file is specified on the command line, we should assume it contains all of the configuration and not try to read the configuration in /etc/opkg. -Upstream-Status: Pending - Signed-off-by: Paul Eggleton <[email protected]> +Signed-off-by: Martin Jansa <[email protected]> --- - libopkg/opkg_conf.c | 55 ++++++++++++++++++++++++++------------------------- + libopkg/opkg_conf.c | 55 +++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c
@@ -87,5 +86,5 @@ index 4711ce7..1e65bad 100644 if (conf->offline_root) sprintf_alloc (&lock_file, "%s/%s", conf->offline_root, OPKGLOCKFILE); -- -1.7.9.5 +1.7.12
meta/recipes-devtools/opkg/opkg/0006-detect-circular-dependencies.patch renamed from meta/recipes-devtools/opkg/opkg/track_parents.patch +47 -32
130 lines not on this page · raw message
meta/recipes-devtools/opkg/opkg/add_vercmp.patch deleted +0 -36
@@ -1,36 +0,0 @@ -Upstream-Status: Inappropriate [function not used] - -Index: trunk/libopkg/opkg.c -=================================================================== ---- trunk.orig/libopkg/opkg.c 2010-01-26 20:32:19.000000000 +0000 -+++ trunk/libopkg/opkg.c 2010-01-26 20:40:34.000000000 +0000 -@@ -876,3 +876,18 @@ - - return ret; - } -+ -+int -+opkg_compare_versions (const char *ver1, const char *ver2) -+{ -+ pkg_t *pkg1, *pkg2; -+ -+ pkg1 = pkg_new(); -+ pkg2 = pkg_new(); -+ -+ parse_version(pkg1, ver1); -+ parse_version(pkg2, ver2); -+ -+ return pkg_compare_versions(pkg1, pkg2); -+} -+ -Index: trunk/libopkg/opkg.h -=================================================================== ---- trunk.orig/libopkg/opkg.h 2010-01-26 20:32:19.000000000 +0000 -+++ trunk/libopkg/opkg.h 2010-01-26 20:35:19.000000000 +0000 -@@ -58,4 +58,6 @@ - - int opkg_repository_accessibility_check(void); - -+int opkg_compare_versions (const char *ver1, const char *ver2); -+ - #endif /* OPKG_H */
meta/recipes-devtools/opkg/opkg_svn.bb +6 -6
@@ -1,12 +1,12 @@ require opkg.inc SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \ - file://add_vercmp.patch \ - file://add_uname_support.patch \ - file://fix_installorder.patch \ - file://offline_postinstall.patch\ - file://track_parents.patch \ - file://conf_override.patch \ + file://0001-add-opkg_compare_versions-function.patch \ + file://0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch \ + file://0003-Fix-dependency-issues-for-preinst-scripts.patch \ + file://0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch \ + file://0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch \ + file://0006-detect-circular-dependencies.patch \ " S = "${WORKDIR}/trunk"
Signature · 1 line
1.7.12
PATCH 2/3 opkg: add patch to fix SIGSEGV when printing status file
In reply to Martin Jansa* it was triggered by c02364f36e228835ea5d7fd4e1d347fd451f8544 when new package had 2 entries in Provides and old version just 1
--- ...g-provides-even-when-oldpkg-provides-exis.patch | 46 ++++++++++++++++++++++ meta/recipes-devtools/opkg/opkg_svn.bb | 3 +- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patch
meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patch new file +46 -0
@@ -0,0 +1,46 @@ +From 3340b120909ea353440cfffe01fed43c55387a00 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <[email protected]> +Date: Wed, 19 Sep 2012 17:31:45 +0200 +Subject: [PATCH 7/7] merge newpkg->provides even when oldpkg->provides + existed + +* introduced in http://code.google.com/p/opkg/source/diff?spec=svn277&r=277&format=side&path=/trunk/libopkg/pkg.c +* the problem happens when oldpkg provide 1 and newpkg provide 2 + provides_count is merged to 2, but oldpkg->provides has only 1 entry + causing SIGSEGV: + pkg_formatted_field (fp=fp@entry=0x1444ce0, pkg=pkg@entry=0x120c620, field=<optimized out>, field@entry=0x7ffff7bd2abe "Provides") at pkg.c:739 + 739 fprintf(fp, "%s %s", i == 1 ? "" : ",", + (gdb) bt + #0 pkg_formatted_field (fp=fp@entry=0x1444ce0, pkg=pkg@entry=0x120c620, field=<optimized out>, field@entry=0x7ffff7bd2abe "Provides") at pkg.c:739 + #1 0x00007ffff7bc32fc in pkg_print_status (pkg=0x120c620, file=0x1444ce0) at pkg.c:887 + #2 0x00007ffff7bbff59 in opkg_conf_write_status_files () at opkg_conf.c:400 + #3 0x00007ffff7bbad8a in write_status_files_if_changed () at opkg_cmd.c:65 + #4 0x00007ffff7bbb73e in opkg_upgrade_cmd (argc=<optimized out>, argv=<optimized out>) at opkg_cmd.c:577 + #5 0x00007ffff7bbbcc2 in opkg_cmd_exec (cmd=cmd@entry=0x7ffff7dda080, argc=argc@entry=1, argv=argv@entry=0x7fffffffe768) at opkg_cmd.c:1319 + #6 0x000000000040165f in main (argc=3, argv=0x7fffffffe758) at opkg-cl.c:377 + +Signed-off-by: Martin Jansa <[email protected]> +--- + libopkg/pkg.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/libopkg/pkg.c b/libopkg/pkg.c +index be486ee..255c673 100644 +--- a/libopkg/pkg.c ++++ b/libopkg/pkg.c +@@ -377,10 +377,8 @@ pkg_merge(pkg_t *oldpkg, pkg_t *newpkg) + oldpkg->provides_count = newpkg->provides_count; + newpkg->provides_count = 0; + +- if (!oldpkg->provides) { +- oldpkg->provides = newpkg->provides; +- newpkg->provides = NULL; +- } ++ oldpkg->provides = newpkg->provides; ++ newpkg->provides = NULL; + } + + if (!oldpkg->conflicts_count) { +-- +1.7.12 +
meta/recipes-devtools/opkg/opkg_svn.bb +2 -1
@@ -7,6 +7,7 @@ SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \ file://0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch \ file://0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch \ file://0006-detect-circular-dependencies.patch \ + file://0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patch \ " S = "${WORKDIR}/trunk"
@@ -14,4 +15,4 @@ S = "${WORKDIR}/trunk" SRCREV = "633" PV = "0.1.8+svnr${SRCPV}" -PR = "${INC_PR}.2" +PR = "${INC_PR}.3"
Signature · 1 line
1.7.12
PATCH 3/3 opkg-nogpg: drop SRCREV
In reply to Martin Jansa* use SRCREV from opkg_svn.bb, because with 596 patches we have won't apply
--- meta/recipes-devtools/opkg/opkg-nogpg_svn.bb | 2 -- 1 file changed, 2 deletions(-)
meta/recipes-devtools/opkg/opkg-nogpg_svn.bb +0 -2
@@ -3,8 +3,6 @@ require opkg_svn.bb DEPENDS = "curl" PROVIDES += "opkg" -SRCREV = "596" - EXTRA_OECONF += "--disable-gpg" DEFAULT_PREFERENCE = "-1"
Signature · 1 line
1.7.12
Quoted 18 lines · Martin Jansa
This depends on
http://patchwork.openembedded.org/patch/36893/
otherwise warning about missingSRC_URIentries will be shownThe following changes since commit
f06097f4581e4c728c2950a86e025384e4bdcdf0:eglibc: Do not use fsqrt in libm when building for fsl ppc with fpu (2012-09-18 07:44:13 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribjansa/opkg
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/opkgMartin Jansa (3):
opkg: replace local patches with git patches submitted upstream
opkg: add patch to fix SIGSEGV when printing status file
opkg-nogpg: drop SRCREV
Quoted 9 lines
meta/recipes-devtools/opkg/opkg-nogpg_svn.bb | 2 - .../0001-add-opkg_compare_versions-function.patch | 51 ++++++++++++++ ...e-the-uname-gname-fields-when-extracting.patch} | 30 +++++--- ...ix-dependency-issues-for-preinst-scripts.patch} | 65 ++++++++++-------- ...nst-script-is-not-fatal-with-conf-offlin.patch} | 75 +++++++++++--------- ...ot-read-etc-opkg-.conf-if-f-is-specified.patch} | 11 ++- ...tch => 0006-detect-circular-dependencies.patch} | 79 +++++++++++++--------- ...g-provides-even-when-oldpkg-provides-exis.patch | 46 +++++++++++++ meta/recipes-devtools/opkg/opkg/add_vercmp.patch | 36 ----------
These patches do not have Upstream-Status in the local version, I guess you are trying to preserve the original state? How soon will they be accepted into the upstream?
They should still have Upstream-Status: Submitted added.
Thanks
Sau!
Quoted 11 lines
meta/recipes-devtools/opkg/opkg_svn.bb | 15 ++-- 10 files changed, 258 insertions(+), 152 deletions(-)create mode 100644
meta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch
renamemeta/recipes-devtools/opkg/opkg/{add_uname_support.patch=> 0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch} (71%) renamemeta/recipes-devtools/opkg/opkg/{fix_installorder.patch=> 0003-Fix-dependency-issues-for-preinst-scripts.patch} (82%) renamemeta/recipes-devtools/opkg/opkg/{offline_postinstall.patch=> 0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch} (52%) renamemeta/recipes-devtools/opkg/opkg/{conf_override.patch=> 0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch} (91%) renamemeta/recipes-devtools/opkg/opkg/{track_parents.patch=> 0006-detect-circular-dependencies.patch} (59%)
create mode 100644meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patchdelete mode 100644meta/recipes-devtools/opkg/opkg/add_vercmp.patch
Quoted 29 lines · Saul Wold
Quoted 18 lines · Martin Jansa
This depends on
http://patchwork.openembedded.org/patch/36893/
otherwise warning about missingSRC_URIentries will be shownThe following changes since commit
f06097f4581e4c728c2950a86e025384e4bdcdf0:eglibc: Do not use fsqrt in libm when building for fsl ppc with fpu (2012-09-18 07:44:13 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribjansa/opkg
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/opkgMartin Jansa (3):
opkg: replace local patches with git patches submitted upstream
opkg: add patch to fix SIGSEGV when printing status file
opkg-nogpg: drop SRCREVQuoted 9 lines
meta/recipes-devtools/opkg/opkg-nogpg_svn.bb | 2 - .../0001-add-opkg_compare_versions-function.patch | 51 ++++++++++++++ ...e-the-uname-gname-fields-when-extracting.patch} | 30 +++++--- ...ix-dependency-issues-for-preinst-scripts.patch} | 65 ++++++++++-------- ...nst-script-is-not-fatal-with-conf-offlin.patch} | 75 +++++++++++--------- ...ot-read-etc-opkg-.conf-if-f-is-specified.patch} | 11 ++- ...tch => 0006-detect-circular-dependencies.patch} | 79 +++++++++++++--------- ...g-provides-even-when-oldpkg-provides-exis.patch | 46 +++++++++++++ meta/recipes-devtools/opkg/opkg/add_vercmp.patch | 36 ----------
Quoted 3 lines
These patches do not have Upstream-Status in the local version, I guess you are trying to preserve the original state? How soon will they be accepted into the upstream?
No idea, but Graham was usually quick.
Quoted 1 line
They should still have Upstream-Status: Submitted added.
Ah sorry, I've sent wrong version of this patch, yes I had them with
Upstream-Status: Submitted
Sending v2 in few minutes.
Quoted 15 lines
Thanks
Sau!Quoted 11 lines
meta/recipes-devtools/opkg/opkg_svn.bb | 15 ++-- 10 files changed, 258 insertions(+), 152 deletions(-)create mode 100644
meta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch
renamemeta/recipes-devtools/opkg/opkg/{add_uname_support.patch=> 0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch} (71%) renamemeta/recipes-devtools/opkg/opkg/{fix_installorder.patch=> 0003-Fix-dependency-issues-for-preinst-scripts.patch} (82%) renamemeta/recipes-devtools/opkg/opkg/{offline_postinstall.patch=> 0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch} (52%) renamemeta/recipes-devtools/opkg/opkg/{conf_override.patch=> 0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch} (91%) renamemeta/recipes-devtools/opkg/opkg/{track_parents.patch=> 0006-detect-circular-dependencies.patch} (59%)
create mode 100644meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patchdelete mode 100644meta/recipes-devtools/opkg/opkg/add_vercmp.patch
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
PATCH v2 2/3 opkg: add patch to fix SIGSEGV when printing status file
In reply to Martin Jansa* it was triggered by c02364f36e228835ea5d7fd4e1d347fd451f8544 when new package had 2 entries in Provides and old version just 1
--- ...g-provides-even-when-oldpkg-provides-exis.patch | 49 ++++++++++++++++++++++ meta/recipes-devtools/opkg/opkg_svn.bb | 3 +- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patch
meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patch new file +49 -0
@@ -0,0 +1,49 @@ +From 3340b120909ea353440cfffe01fed43c55387a00 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <[email protected]> +Date: Wed, 19 Sep 2012 17:31:45 +0200 +Subject: [PATCH 7/7] merge newpkg->provides even when oldpkg->provides + existed + +* introduced in http://code.google.com/p/opkg/source/diff?spec=svn277&r=277&format=side&path=/trunk/libopkg/pkg.c +* the problem happens when oldpkg provide 1 and newpkg provide 2 + provides_count is merged to 2, but oldpkg->provides has only 1 entry + causing SIGSEGV: + pkg_formatted_field (fp=fp@entry=0x1444ce0, pkg=pkg@entry=0x120c620, field=<optimized out>, field@entry=0x7ffff7bd2abe "Provides") at pkg.c:739 + 739 fprintf(fp, "%s %s", i == 1 ? "" : ",", + (gdb) bt + #0 pkg_formatted_field (fp=fp@entry=0x1444ce0, pkg=pkg@entry=0x120c620, field=<optimized out>, field@entry=0x7ffff7bd2abe "Provides") at pkg.c:739 + #1 0x00007ffff7bc32fc in pkg_print_status (pkg=0x120c620, file=0x1444ce0) at pkg.c:887 + #2 0x00007ffff7bbff59 in opkg_conf_write_status_files () at opkg_conf.c:400 + #3 0x00007ffff7bbad8a in write_status_files_if_changed () at opkg_cmd.c:65 + #4 0x00007ffff7bbb73e in opkg_upgrade_cmd (argc=<optimized out>, argv=<optimized out>) at opkg_cmd.c:577 + #5 0x00007ffff7bbbcc2 in opkg_cmd_exec (cmd=cmd@entry=0x7ffff7dda080, argc=argc@entry=1, argv=argv@entry=0x7fffffffe768) at opkg_cmd.c:1319 + #6 0x000000000040165f in main (argc=3, argv=0x7fffffffe758) at opkg-cl.c:377 + +Upstream-Status: Submitted +http://code.google.com/p/opkg/issues/detail?id=93 + +Signed-off-by: Martin Jansa <[email protected]> +--- + libopkg/pkg.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/libopkg/pkg.c b/libopkg/pkg.c +index be486ee..255c673 100644 +--- a/libopkg/pkg.c ++++ b/libopkg/pkg.c +@@ -377,10 +377,8 @@ pkg_merge(pkg_t *oldpkg, pkg_t *newpkg) + oldpkg->provides_count = newpkg->provides_count; + newpkg->provides_count = 0; + +- if (!oldpkg->provides) { +- oldpkg->provides = newpkg->provides; +- newpkg->provides = NULL; +- } ++ oldpkg->provides = newpkg->provides; ++ newpkg->provides = NULL; + } + + if (!oldpkg->conflicts_count) { +-- +1.7.12 +
meta/recipes-devtools/opkg/opkg_svn.bb +2 -1
@@ -7,6 +7,7 @@ SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \ file://0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch \ file://0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch \ file://0006-detect-circular-dependencies.patch \ + file://0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patch \ " S = "${WORKDIR}/trunk"
@@ -14,4 +15,4 @@ S = "${WORKDIR}/trunk" SRCREV = "633" PV = "0.1.8+svnr${SRCPV}" -PR = "${INC_PR}.2" +PR = "${INC_PR}.3"
Signature · 1 line
1.7.12
PATCH v2 1/3 opkg: replace local patches with git patches submitted upstream
In reply to Martin Jansa---
.../0001-add-opkg_compare_versions-function.patch | 54 ++++++++++++++
...e-the-uname-gname-fields-when-extracting.patch} | 31 +++++---
...ix-dependency-issues-for-preinst-scripts.patch} | 66 ++++++++++-------
...nst-script-is-not-fatal-with-conf-offlin.patch} | 76 ++++++++++++--------
...ot-read-etc-opkg-.conf-if-f-is-specified.patch} | 12 ++--
...tch => 0006-detect-circular-dependencies.patch} | 82 +++++++++++++---------
meta/recipes-devtools/opkg/opkg/add_vercmp.patch | 36 ----------
meta/recipes-devtools/opkg/opkg_svn.bb | 12 ++--
8 files changed, 224 insertions(+), 145 deletions(-)
create mode 100644 meta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch
rename meta/recipes-devtools/opkg/opkg/{add_uname_support.patch => 0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch} (69%)
rename meta/recipes-devtools/opkg/opkg/{fix_installorder.patch => 0003-Fix-dependency-issues-for-preinst-scripts.patch} (81%)
rename meta/recipes-devtools/opkg/opkg/{offline_postinstall.patch => 0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch} (50%)
rename meta/recipes-devtools/opkg/opkg/{conf_override.patch => 0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch} (88%)
rename meta/recipes-devtools/opkg/opkg/{track_parents.patch => 0006-detect-circular-dependencies.patch} (58%)
delete mode 100644 meta/recipes-devtools/opkg/opkg/add_vercmp.patchmeta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch new file +54 -0
@@ -0,0 +1,54 @@ +From 029cf99fd44645b5fe1b6491355c631da3096e09 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <[email protected]> +Date: Sat, 17 Dec 2011 12:51:07 +0100 +Subject: [PATCH 1/7] add opkg_compare_versions function + +* not used in opkg but can be usefull, e.g. instead of + opkg-utils/opkg-compare-versions.c + +Upstream-Status: Submitted +http://code.google.com/p/opkg/issues/detail?id=93 + +Signed-off-by: Martin Jansa <[email protected]> +--- + libopkg/opkg.c | 15 +++++++++++++++ + libopkg/opkg.h | 2 ++ + 2 files changed, 17 insertions(+) + +diff --git a/libopkg/opkg.c b/libopkg/opkg.c +index 92f61f4..eaea529 100644 +--- a/libopkg/opkg.c ++++ b/libopkg/opkg.c +@@ -870,3 +870,18 @@ opkg_repository_accessibility_check(void) + + return ret; + } ++ ++int ++opkg_compare_versions (const char *ver1, const char *ver2) ++{ ++ pkg_t *pkg1, *pkg2; ++ ++ pkg1 = pkg_new(); ++ pkg2 = pkg_new(); ++ ++ parse_version(pkg1, ver1); ++ parse_version(pkg2, ver2); ++ ++ return pkg_compare_versions(pkg1, pkg2); ++} ++ +diff --git a/libopkg/opkg.h b/libopkg/opkg.h +index 4fbd404..7aa86eb 100644 +--- a/libopkg/opkg.h ++++ b/libopkg/opkg.h +@@ -58,4 +58,6 @@ pkg_t* opkg_find_package (const char *name, const char *version, const char *arc + + int opkg_repository_accessibility_check(void); + ++int opkg_compare_versions (const char *ver1, const char *ver2); ++ + #endif /* OPKG_H */ +-- +1.7.12 +
meta/recipes-devtools/opkg/opkg/0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch renamed from meta/recipes-devtools/opkg/opkg/add_uname_support.patch +22 -9
@@ -1,17 +1,27 @@ +From 254780ab3b0db398447150251332916598d3b9f4 Mon Sep 17 00:00:00 2001 +From: Richard Purdie <[email protected]> +Date: Fri, 11 Nov 2011 17:17:01 +0000 +Subject: [PATCH 2/7] Ensure we use the uname/gname fields when extracting + tarballs -When updating packages on the target device we ideally want to match +When updating packages on the target device we ideally want to match user and group numbers from the existing file system. This patch encourages opkg to lookup the uname/gname fields first and only use the hardcoded numerical values if that fails. -Upstream-Status: Pending +Upstream-Status: Submitted +http://code.google.com/p/opkg/issues/detail?id=93 -RP 11/11/11 +Signed-off-by: Richard Purdie <[email protected]> +Signed-off-by: Martin Jansa <[email protected]> +--- + libbb/unarchive.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 47 insertions(+), 2 deletions(-) -Index: trunk/libbb/unarchive.c -=================================================================== ---- trunk.orig/libbb/unarchive.c 2011-11-11 15:52:59.761674091 +0000 -+++ trunk/libbb/unarchive.c 2011-11-11 17:04:56.501574419 +0000 +diff --git a/libbb/unarchive.c b/libbb/unarchive.c +index 5d4464f..d583767 100644 +--- a/libbb/unarchive.c ++++ b/libbb/unarchive.c @@ -22,10 +22,13 @@ #include <stdio.h> #include <errno.h>
@@ -26,7 +36,7 @@ Index: trunk/libbb/unarchive.c #include "libbb.h" -@@ -436,6 +439,42 @@ +@@ -436,6 +439,42 @@ free_header_ar(file_header_t *ar_entry) free(ar_entry); }
@@ -69,7 +79,7 @@ Index: trunk/libbb/unarchive.c static file_header_t * get_header_tar(FILE *tar_stream) -@@ -515,8 +554,14 @@ +@@ -515,8 +554,14 @@ get_header_tar(FILE *tar_stream) */ tar_entry->mode = 07777 & strtol(tar.formated.mode, NULL, 8);
@@ -86,3 +96,6 @@ Index: trunk/libbb/unarchive.c tar_entry->size = strtol(tar.formated.size, NULL, 8); tar_entry->mtime = strtol(tar.formated.mtime, NULL, 8); +-- +1.7.12 +
meta/recipes-devtools/opkg/opkg/0003-Fix-dependency-issues-for-preinst-scripts.patch renamed from meta/recipes-devtools/opkg/opkg/fix_installorder.patch +40 -26
105 lines not on this page · raw message
meta/recipes-devtools/opkg/opkg/0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch renamed from meta/recipes-devtools/opkg/opkg/offline_postinstall.patch +45 -31
94 lines not on this page · raw message
meta/recipes-devtools/opkg/opkg/0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch renamed from meta/recipes-devtools/opkg/opkg/conf_override.patch +7 -5
@@ -1,17 +1,19 @@ -From 45d0468f7f9e9be633b2819aa43ab9b6287b8e6a Mon Sep 17 00:00:00 2001 +From 541b6b7bd80dc321493e42955d93b277af0c9221 Mon Sep 17 00:00:00 2001 From: Paul Eggleton <[email protected]> Date: Mon, 9 Jul 2012 11:01:15 +0100 -Subject: [PATCH] Do not read /etc/opkg/*.conf if -f is specified +Subject: [PATCH 5/7] Do not read /etc/opkg/*.conf if -f is specified If a configuration file is specified on the command line, we should assume it contains all of the configuration and not try to read the configuration in /etc/opkg. -Upstream-Status: Pending +Upstream-Status: Submitted +http://code.google.com/p/opkg/issues/detail?id=93 Signed-off-by: Paul Eggleton <[email protected]> +Signed-off-by: Martin Jansa <[email protected]> --- - libopkg/opkg_conf.c | 55 ++++++++++++++++++++++++++------------------------- + libopkg/opkg_conf.c | 55 +++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c
@@ -87,5 +89,5 @@ index 4711ce7..1e65bad 100644 if (conf->offline_root) sprintf_alloc (&lock_file, "%s/%s", conf->offline_root, OPKGLOCKFILE); -- -1.7.9.5 +1.7.12
meta/recipes-devtools/opkg/opkg/0006-detect-circular-dependencies.patch renamed from meta/recipes-devtools/opkg/opkg/track_parents.patch +50 -32
133 lines not on this page · raw message
meta/recipes-devtools/opkg/opkg/add_vercmp.patch deleted +0 -36
@@ -1,36 +0,0 @@ -Upstream-Status: Inappropriate [function not used] - -Index: trunk/libopkg/opkg.c -=================================================================== ---- trunk.orig/libopkg/opkg.c 2010-01-26 20:32:19.000000000 +0000 -+++ trunk/libopkg/opkg.c 2010-01-26 20:40:34.000000000 +0000 -@@ -876,3 +876,18 @@ - - return ret; - } -+ -+int -+opkg_compare_versions (const char *ver1, const char *ver2) -+{ -+ pkg_t *pkg1, *pkg2; -+ -+ pkg1 = pkg_new(); -+ pkg2 = pkg_new(); -+ -+ parse_version(pkg1, ver1); -+ parse_version(pkg2, ver2); -+ -+ return pkg_compare_versions(pkg1, pkg2); -+} -+ -Index: trunk/libopkg/opkg.h -=================================================================== ---- trunk.orig/libopkg/opkg.h 2010-01-26 20:32:19.000000000 +0000 -+++ trunk/libopkg/opkg.h 2010-01-26 20:35:19.000000000 +0000 -@@ -58,4 +58,6 @@ - - int opkg_repository_accessibility_check(void); - -+int opkg_compare_versions (const char *ver1, const char *ver2); -+ - #endif /* OPKG_H */
meta/recipes-devtools/opkg/opkg_svn.bb +6 -6
@@ -1,12 +1,12 @@ require opkg.inc SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \ - file://add_vercmp.patch \ - file://add_uname_support.patch \ - file://fix_installorder.patch \ - file://offline_postinstall.patch\ - file://track_parents.patch \ - file://conf_override.patch \ + file://0001-add-opkg_compare_versions-function.patch \ + file://0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch \ + file://0003-Fix-dependency-issues-for-preinst-scripts.patch \ + file://0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch \ + file://0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch \ + file://0006-detect-circular-dependencies.patch \ " S = "${WORKDIR}/trunk"
Signature · 1 line
1.7.12
Saul Wold
AppliedQuoted 29 lines · Martin Jansa
This depends on
http://patchwork.openembedded.org/patch/36893/
otherwise warning about missingSRC_URIentries will be shownThe following changes since commit
f06097f4581e4c728c2950a86e025384e4bdcdf0:eglibc: Do not use fsqrt in libm when building for fsl ppc with fpu (2012-09-18 07:44:13 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribjansa/opkg
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/opkgMartin Jansa (3):
opkg: replace local patches with git patches submitted upstream
opkg: add patch to fix SIGSEGV when printing status file
opkg-nogpg: drop SRCREVmeta/recipes-devtools/opkg/opkg-nogpg_svn.bb | 2 - .../0001-add-opkg_compare_versions-function.patch | 51 ++++++++++++++ ...e-the-uname-gname-fields-when-extracting.patch} | 30 +++++--- ...ix-dependency-issues-for-preinst-scripts.patch} | 65 ++++++++++-------- ...nst-script-is-not-fatal-with-conf-offlin.patch} | 75 +++++++++++--------- ...ot-read-etc-opkg-.conf-if-f-is-specified.patch} | 11 ++- ...tch => 0006-detect-circular-dependencies.patch} | 79 +++++++++++++--------- ...g-provides-even-when-oldpkg-provides-exis.patch | 46 +++++++++++++ meta/recipes-devtools/opkg/opkg/add_vercmp.patch | 36 ---------- meta/recipes-devtools/opkg/opkg_svn.bb | 15 ++-- 10 files changed, 258 insertions(+), 152 deletions(-)
Quoted 9 lines
create mode 100644
meta/recipes-devtools/opkg/opkg/0001-add-opkg_compare_versions-function.patch
renamemeta/recipes-devtools/opkg/opkg/{add_uname_support.patch=> 0002-Ensure-we-use-the-uname-gname-fields-when-extracting.patch} (71%) renamemeta/recipes-devtools/opkg/opkg/{fix_installorder.patch=> 0003-Fix-dependency-issues-for-preinst-scripts.patch} (82%) renamemeta/recipes-devtools/opkg/opkg/{offline_postinstall.patch=> 0004-Failed-postinst-script-is-not-fatal-with-conf-offlin.patch} (52%) renamemeta/recipes-devtools/opkg/opkg/{conf_override.patch=> 0005-Do-not-read-etc-opkg-.conf-if-f-is-specified.patch} (91%) renamemeta/recipes-devtools/opkg/opkg/{track_parents.patch=> 0006-detect-circular-dependencies.patch} (59%)
create mode 100644meta/recipes-devtools/opkg/opkg/0007-merge-newpkg-provides-even-when-oldpkg-provides-exis.patchdelete mode 100644meta/recipes-devtools/opkg/opkg/add_vercmp.patch
Merged into OE-Core with v2 of 2/3
Thanks
Sau!