Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
triggers: fix execution of per packages triggers on pkg add/register
Baptiste Daroussin committed 21 days ago
commit ee156e7b0c477fe971d80adb00a11c87b402fa49
parent bf7cbe6
5 files changed +14 -15
modified libpkg/pkg_add.c
@@ -1645,8 +1645,7 @@ pkg_add_common(struct pkgdb *db, const char *path, unsigned flags,
	/*
	 * Execute per-package pre-install triggers
	 */
-
	if (t != NULL)
-
		triggers_execute_perpackage(t, pkg, TRIGGER_PHASE_PRE_INSTALL, (local != NULL));
+
	triggers_execute_perpackage(pkg, TRIGGER_PHASE_PRE_INSTALL, (local != NULL));

	/* add the user and group if necessary */

@@ -1715,8 +1714,7 @@ pkg_add_common(struct pkgdb *db, const char *path, unsigned flags,
	/*
	 * Execute per-package post-install triggers
	 */
-
	if (t != NULL)
-
		triggers_execute_perpackage(t, pkg, TRIGGER_PHASE_POST_INSTALL, (local != NULL));
+
	triggers_execute_perpackage(pkg, TRIGGER_PHASE_POST_INSTALL, (local != NULL));

	/*
	 * start the different related services if the users do want that
modified libpkg/pkg_delete.c
@@ -103,9 +103,8 @@ pkg_delete(struct pkg *pkg, struct pkg *rpkg, struct pkgdb *db, int flags,
	/*
	 * Execute per-package pre-deinstall triggers
	 */
-
	if (t != NULL)
-
		triggers_execute_perpackage(t, pkg, TRIGGER_PHASE_PRE_DEINSTALL,
-
		    (flags & PKG_DELETE_UPGRADE) != 0);
+
	triggers_execute_perpackage(pkg, TRIGGER_PHASE_PRE_DEINSTALL,
+
	    (flags & PKG_DELETE_UPGRADE) != 0);

	if ((flags & PKG_DELETE_KEEPFILES) == 0) {
		ret = pkg_delete_files(db, pkg, rpkg, flags, t);
@@ -126,9 +125,8 @@ pkg_delete(struct pkg *pkg, struct pkg *rpkg, struct pkgdb *db, int flags,
	/*
	 * Execute per-package post-deinstall triggers
	 */
-
	if (t != NULL)
-
		triggers_execute_perpackage(t, pkg, TRIGGER_PHASE_POST_DEINSTALL,
-
		    (flags & PKG_DELETE_UPGRADE) != 0);
+
	triggers_execute_perpackage(pkg, TRIGGER_PHASE_POST_DEINSTALL,
+
	    (flags & PKG_DELETE_UPGRADE) != 0);

	if ((flags & PKG_DELETE_KEEPFILES) == 0) {
		ret = pkg_delete_dirs(db, pkg, NULL);
modified libpkg/pkg_ports.c
@@ -1342,6 +1342,9 @@ pkg_add_port(struct pkgdb *db, struct pkg *pkg, const char *input_path,
	}

	if (!testing) {
+
		triggers_execute_perpackage(pkg, TRIGGER_PHASE_PRE_INSTALL,
+
		    false);
+

		/* Execute pre-install scripts */
		pkg_lua_script_run(pkg, PKG_LUA_PRE_INSTALL, false);
		pkg_script_run(pkg, PKG_SCRIPT_PRE_INSTALL, false, false);
@@ -1360,6 +1363,9 @@ pkg_add_port(struct pkgdb *db, struct pkg *pkg, const char *input_path,
		/* Execute post-install scripts */
		pkg_lua_script_run(pkg, PKG_LUA_POST_INSTALL, false);
		pkg_script_run(pkg, PKG_SCRIPT_POST_INSTALL, false, false);
+

+
		triggers_execute_perpackage(pkg, TRIGGER_PHASE_POST_INSTALL,
+
		    false);
	}

	if (rc == EPKG_OK) {
modified libpkg/private/pkg.h
@@ -913,7 +913,7 @@ void trigger_is_it_a_cleanup(struct triggers *t, const char *path);
void trigger_free(struct trigger *);
void append_touched_dir(const char *path);
void append_touched_file(const char *path);
-
int triggers_execute_perpackage(struct triggers *t, struct pkg *pkg, trigger_phase_t phase, bool upgrade);
+
int triggers_execute_perpackage(struct pkg *pkg, trigger_phase_t phase, bool upgrade);

int pkg_parse_manifest_ucl(struct pkg *pkg, ucl_object_t *o);
int pkg_get_reposdirfd(void);
modified libpkg/triggers.c
@@ -685,7 +685,7 @@ triggers_load_perpackage(trigger_phase_t phase)
 * by earlier packages in the same transaction are picked up.
 */
int
-
triggers_execute_perpackage(struct triggers *t, struct pkg *pkg,
+
triggers_execute_perpackage(struct pkg *pkg,
    trigger_phase_t phase, bool upgrade)
{
	struct pkg_file *f = NULL;
@@ -694,9 +694,6 @@ triggers_execute_perpackage(struct triggers *t, struct pkg *pkg,
	int ret = EPKG_OK;
	trigger_t *triggers;

-
	if (t == NULL)
-
		return (EPKG_OK);
-

	triggers = triggers_load_perpackage(phase);

	if (triggers->len == 0) {