1.1 --- a/librazor/razor.c Mon Jul 04 10:48:18 2016 +0100
1.2 +++ b/librazor/razor.c Tue Apr 24 19:27:29 2018 +0100
1.3 @@ -621,13 +621,13 @@
1.4 RAZOR_EXPORT int
1.5 razor_package_remove(struct razor_set *prev, struct razor_set *next,
1.6 struct razor_atomic *atomic, struct razor_package *package,
1.7 - const char *root, int install_count,
1.8 + const char *root_uri, int install_count,
1.9 enum razor_stage_type stage)
1.10 {
1.11 struct razor_file_iterator *fi;
1.12 struct razor_package_iterator *pi;
1.13 struct razor_package *p;
1.14 - char *buffer, buf[32];
1.15 + char *uri, *relative, *buffer, buf[32];
1.16 const char *name, *program, *script;
1.17 int i, count, retval = 0;
1.18 struct environment env;
1.19 @@ -655,8 +655,9 @@
1.20 RAZOR_DETAIL_PREUN, &script,
1.21 RAZOR_DETAIL_LAST);
1.22
1.23 - retval = razor_run_script(root, RAZOR_PROPERTY_PREUN, program,
1.24 - script, install_count, &tmp_error);
1.25 + retval = razor_run_script(root_uri, RAZOR_PROPERTY_PREUN,
1.26 + program, script, install_count,
1.27 + &tmp_error);
1.28
1.29 if (retval < 0) {
1.30 razor_atomic_propagate_error(atomic, tmp_error, NULL);
1.31 @@ -675,9 +676,34 @@
1.32 count++;
1.33 razor_package_iterator_destroy(pi);
1.34 if (count <= 0) {
1.35 - buffer = razor_concat(root, name, NULL);
1.36 - razor_atomic_remove(atomic, buffer);
1.37 - free(buffer);
1.38 + uri = razor_path_to_uri(name);
1.39 +
1.40 + if (str_has_prefix(uri, "file:///"))
1.41 + relative = uri + 8;
1.42 + else if (str_has_prefix(uri, "file:/"))
1.43 + relative = uri + 6;
1.44 + else if (str_has_prefix(uri, "file:"))
1.45 + relative = uri + 5;
1.46 + else if (str_has_prefix(uri, "/"))
1.47 + relative = uri + 1;
1.48 + else
1.49 + relative = uri;
1.50 +
1.51 + buffer = razor_resolve_uri_root(root_uri,
1.52 + relative, 1,
1.53 + &tmp_error);
1.54 + free(uri);
1.55 +
1.56 + if (buffer) {
1.57 + razor_atomic_remove(atomic, buffer);
1.58 + free(buffer);
1.59 + } else {
1.60 + razor_atomic_propagate_error(atomic,
1.61 + tmp_error,
1.62 + NULL);
1.63 + tmp_error = NULL;
1.64 + break;
1.65 + }
1.66 }
1.67 }
1.68
1.69 @@ -692,8 +718,9 @@
1.70 RAZOR_DETAIL_POSTUN, &script,
1.71 RAZOR_DETAIL_LAST);
1.72
1.73 - retval |= razor_run_script(root, RAZOR_PROPERTY_POSTUN, program,
1.74 - script, install_count, &tmp_error);
1.75 + retval |= razor_run_script(root_uri, RAZOR_PROPERTY_POSTUN,
1.76 + program, script, install_count,
1.77 + &tmp_error);
1.78
1.79 if (retval < 0) {
1.80 razor_atomic_propagate_error(atomic, tmp_error, NULL);