struct list *link;
const char *prefix;
+ environment_init(&env);
+ link = list_first(&package->install_prefixes, &set->prefix_pool);
+ for (i = 0; link; i++) {
+ prefix = (const char *)set->string_pool.data + link->data;
+ sprintf(buffer, "RPM_INSTALL_PREFIX%d", i);
+ environment_add_variable(&env, buffer, prefix);
+ link = list_next(link);
+ }
+
razor_package_get_details(set, package,
RAZOR_DETAIL_PREUNPROG, &program,
RAZOR_DETAIL_PREUN, &script,
RAZOR_DETAIL_LAST);
- if (razor_run_script(root, RAZOR_PROPERTY_PREUN, program, script))
+ environment_set(&env);
+ retval = razor_run_script(root, RAZOR_PROPERTY_PREUN, program, script);
+ environment_unset(&env);
+
+ if (retval) {
+ environment_release(&env);
return -1;
+ }
fi = razor_file_iterator_create(set, package);
razor_file_iterator_destroy(fi);
- if (retval)
+ if (retval) {
+ environment_release(&env);
return retval;
+ }
razor_package_get_details(set, package,
RAZOR_DETAIL_POSTUNPROG, &program,
RAZOR_DETAIL_POSTUN, &script,
RAZOR_DETAIL_LAST);
- environment_init(&env);
- link = list_first(&package->install_prefixes, &set->prefix_pool);
- for (i = 0; link; i++) {
- prefix = (const char *)set->string_pool.data + link->data;
- sprintf(buffer, "RPM_INSTALL_PREFIX%d", i);
- environment_add_variable(&env, buffer, prefix);
- link = list_next(link);
- }
environment_set(&env);
-
retval = razor_run_script(root, RAZOR_PROPERTY_POSTUN, program, script);
-
environment_unset(&env);
+
environment_release(&env);
return retval;