1.1 --- a/librazor/razor.c Fri Jul 03 19:06:29 2009 +0100
1.2 +++ b/librazor/razor.c Mon Jul 06 18:19:13 2009 +0100
1.3 @@ -489,13 +489,28 @@
1.4 struct list *link;
1.5 const char *prefix;
1.6
1.7 + environment_init(&env);
1.8 + link = list_first(&package->install_prefixes, &set->prefix_pool);
1.9 + for (i = 0; link; i++) {
1.10 + prefix = (const char *)set->string_pool.data + link->data;
1.11 + sprintf(buffer, "RPM_INSTALL_PREFIX%d", i);
1.12 + environment_add_variable(&env, buffer, prefix);
1.13 + link = list_next(link);
1.14 + }
1.15 +
1.16 razor_package_get_details(set, package,
1.17 RAZOR_DETAIL_PREUNPROG, &program,
1.18 RAZOR_DETAIL_PREUN, &script,
1.19 RAZOR_DETAIL_LAST);
1.20
1.21 - if (razor_run_script(root, RAZOR_PROPERTY_PREUN, program, script))
1.22 + environment_set(&env);
1.23 + retval = razor_run_script(root, RAZOR_PROPERTY_PREUN, program, script);
1.24 + environment_unset(&env);
1.25 +
1.26 + if (retval) {
1.27 + environment_release(&env);
1.28 return -1;
1.29 + }
1.30
1.31 fi = razor_file_iterator_create(set, package);
1.32
1.33 @@ -513,27 +528,20 @@
1.34
1.35 razor_file_iterator_destroy(fi);
1.36
1.37 - if (retval)
1.38 + if (retval) {
1.39 + environment_release(&env);
1.40 return retval;
1.41 + }
1.42
1.43 razor_package_get_details(set, package,
1.44 RAZOR_DETAIL_POSTUNPROG, &program,
1.45 RAZOR_DETAIL_POSTUN, &script,
1.46 RAZOR_DETAIL_LAST);
1.47
1.48 - environment_init(&env);
1.49 - link = list_first(&package->install_prefixes, &set->prefix_pool);
1.50 - for (i = 0; link; i++) {
1.51 - prefix = (const char *)set->string_pool.data + link->data;
1.52 - sprintf(buffer, "RPM_INSTALL_PREFIX%d", i);
1.53 - environment_add_variable(&env, buffer, prefix);
1.54 - link = list_next(link);
1.55 - }
1.56 environment_set(&env);
1.57 + retval = razor_run_script(root, RAZOR_PROPERTY_POSTUN, program, script);
1.58 + environment_unset(&env);
1.59
1.60 - retval = razor_run_script(root, RAZOR_PROPERTY_POSTUN, program, script);
1.61 -
1.62 - environment_unset(&env);
1.63 environment_release(&env);
1.64
1.65 return retval;