1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-20 20:09:11 +00:00

Add a hack in pkg to skip running predeinstall for javavmwrapper-2.5

During upgrades/reinstall javavmwrapper 2.5 pre deinstall script deletes the pkg
temporary files preventing to finish the upgrade.

A fixed version of javavmwrapper will be made soon, this hack will remain in the
ports tree and not in pkg(8) itself. This hack is made to not bother users is
only affecting upgrade/reinstall phase not proper deinstall

PR:		210313
This commit is contained in:
Baptiste Daroussin 2016-07-31 11:52:22 +00:00
parent 563f09302e
commit a203d9f11c
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=419360
2 changed files with 34 additions and 0 deletions

View File

@ -3,6 +3,7 @@
PORTNAME= pkg
DISTVERSION= 1.8.7
_PKG_VERSION= ${DISTVERSION}
PORTREVISION= 1
CATEGORIES= ports-mgmt
MASTER_SITES= \
http://files.etoilebsd.net/${PORTNAME}/ \

View File

@ -0,0 +1,33 @@
diff --git libpkg/pkg_add.c libpkg/pkg_add.c
index 87fb248..778336c 100644
--- libpkg/pkg_add.c
+++ libpkg/pkg_add.c
@@ -859,14 +859,20 @@ pkg_add_cleanup_old(struct pkgdb *db, struct pkg *old, struct pkg *new, int flag
* Execute pre deinstall scripts
*/
if ((flags & PKG_ADD_NOSCRIPT) == 0) {
- if ((flags & PKG_ADD_USE_UPGRADE_SCRIPTS) == PKG_ADD_USE_UPGRADE_SCRIPTS)
- ret = pkg_script_run(old, PKG_SCRIPT_PRE_UPGRADE);
- else
- ret = pkg_script_run(old, PKG_SCRIPT_PRE_DEINSTALL);
- if (ret != EPKG_OK && pkg_object_bool(pkg_config_get("DEVELOPER_MODE")))
- return (ret);
- else
- ret = EPKG_OK;
+ bool buggydeinstall = false;
+ if (strcmp(old->name, "javavmwrapper") == 0 &&
+ strcmp(old->version, "2.5") == 0)
+ buggydeinstall = true;
+ if (!buggydeinstall) {
+ if ((flags & PKG_ADD_USE_UPGRADE_SCRIPTS) == PKG_ADD_USE_UPGRADE_SCRIPTS)
+ ret = pkg_script_run(old, PKG_SCRIPT_PRE_UPGRADE);
+ else
+ ret = pkg_script_run(old, PKG_SCRIPT_PRE_DEINSTALL);
+ if (ret != EPKG_OK && pkg_object_bool(pkg_config_get("DEVELOPER_MODE")))
+ return (ret);
+ else
+ ret = EPKG_OK;
+ }
}
/* Now remove files that no longer exist in the new package */