From: Peter Urbanec <openembedded-devel@urbanec.net>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH V3] opkg: Call prerm and postrm scripts on package upgrade.
Date: Thu, 16 Oct 2014 09:27:38 +1100 [thread overview]
Message-ID: <mid:1> (raw)
opkg upgrade will now call prerm and postrm scripts from the old package
with "upgrade new-version" arguments, similar to what dpkg does.
Signed-off-by: Peter Urbanec <openembedded-devel@urbanec.net>
---
.../opkg/opkg/prerm-and-postrm-scripts.patch | 81
++++++++++++++++++++++
meta/recipes-devtools/opkg/opkg_0.2.2.bb | 1 +
2 files changed, 82 insertions(+)
create mode 100644
meta/recipes-devtools/opkg/opkg/prerm-and-postrm-scripts.patch
diff --git
a/meta/recipes-devtools/opkg/opkg/prerm-and-postrm-scripts.patch
b/meta/recipes-devtools/opkg/opkg/prerm-and-postrm-scripts.patch
new file mode 100644
index 0000000..98a447a
--- /dev/null
+++ b/meta/recipes-devtools/opkg/opkg/prerm-and-postrm-scripts.patch
@@ -0,0 +1,81 @@
+From 476965fdb2d6eec559242e6205cbb07d539b80e1 Mon Sep 17 00:00:00 2001
+From: Peter Urbanec <openembedded-devel@urbanec.net>
+Date: Wed, 15 Oct 2014 14:32:22 +1100
+Subject: [PATCH] opkg_install: Call prerm and postrm scripts on package
upgrade.
+To: opkg-devel@googlegroups.com
+Cc: paul@paulbarker.me.uk
+
+When upgrading a package from v1 to v2, run "v1-prerm upgrade v2" and
+"v1-postrm upgrade v2", similarly to what dpkg does.
+
+Fixes opkg issue 104: Support prerm scripts for the old package
+See https://code.google.com/p/opkg/issues/detail?id=104
+
+Signed-off-by: Peter Urbanec <openembedded-devel@urbanec.net>
+Upstream-Status: Submitted [opkg-devel@googlegroups.com]
+
+---
+ libopkg/opkg_install.c | 40 ++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 38 insertions(+), 2 deletions(-)
+
+diff --git a/libopkg/opkg_install.c b/libopkg/opkg_install.c
+index 4f6fe65..ec0f34a 100644
+--- a/libopkg/opkg_install.c
++++ b/libopkg/opkg_install.c
+@@ -601,7 +601,25 @@ prerm_upgrade_old_pkg(pkg_t *pkg, pkg_t *old_pkg)
+ Error unwind, for both the above cases:
+ old-postinst abort-upgrade new-version
+ */
+- return 0;
++ int err;
++ char *script_args;
++ char *new_version;
++
++ if (!old_pkg || !pkg)
++ return 0;
++
++ new_version = pkg_version_str_alloc(pkg);
++
++ sprintf_alloc(&script_args, "upgrade %s", new_version);
++ free(new_version);
++ err = pkg_run_script(old_pkg, "prerm", script_args);
++ free(script_args);
++ if (err != 0) {
++ opkg_msg(ERROR, "prerm script for package \"%s\" failed\n",
++ old_pkg->name);
++ return -1;
++ }
++ return 0;
+ }
+
+ static int
+@@ -1001,7 +1019,25 @@ postrm_upgrade_old_pkg(pkg_t *pkg, pkg_t
*old_pkg)
+ new-postrm failed-upgrade old-version
+ Error unwind, for both cases:
+ old-preinst abort-upgrade new-version */
+- return 0;
++ int err;
++ char *script_args;
++ char *new_version;
++
++ if (!old_pkg || !pkg)
++ return 0;
++
++ new_version = pkg_version_str_alloc(pkg);
++
++ sprintf_alloc(&script_args, "upgrade %s", new_version);
++ free(new_version);
++ err = pkg_run_script(old_pkg, "postrm", script_args);
++ free(script_args);
++ if (err != 0) {
++ opkg_msg(ERROR, "postrm script for package \"%s\" failed\n",
++ old_pkg->name);
++ return -1;
++ }
++ return 0;
+ }
+
+ static int
+--
+2.1.2
+
diff --git a/meta/recipes-devtools/opkg/opkg_0.2.2.bb
b/meta/recipes-devtools/opkg/opkg_0.2.2.bb
index 3dd7489..c5b6561 100644
--- a/meta/recipes-devtools/opkg/opkg_0.2.2.bb
+++ b/meta/recipes-devtools/opkg/opkg_0.2.2.bb
@@ -4,6 +4,7 @@ SRC_URI =
"http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz
file://no-install-recommends.patch \
file://add-exclude.patch \
file://opkg-configure.service \
+ file://prerm-and-postrm-scripts.patch \
"
S = "${WORKDIR}/${BPN}-${PV}"
--
2.1.2
next reply other threads:[~2014-10-15 22:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-15 22:27 Peter Urbanec [this message]
[not found] <543ef52e.0879c20a.1785.4076SMTPIN_ADDED_BROKEN@mx.google.com>
2014-10-21 15:40 ` [PATCH V3] opkg: Call prerm and postrm scripts on package upgrade Paul Barker
2014-10-22 22:54 ` Burton, Ross
2014-10-24 10:49 ` Paul Barker
2014-10-24 12:01 ` Andreas Oberritter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='mid:1' \
--to=openembedded-devel@urbanec.net \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.