All of lore.kernel.org
 help / color / mirror / Atom feed
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




             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.