diff --git a/client/client_types.cpp b/client/client_types.cpp index 7976bf90e1305a7f4b8105a188b04b2e5b633875..38b25b31121aa1dd72394c19e42eab237c8a7255 100644 --- a/client/client_types.cpp +++ b/client/client_types.cpp @@ -645,7 +645,11 @@ int FILE_INFO::merge_info(FILE_INFO& new_info) { // This deals with cases where somehow a file didn't // get protected right when it was initially downloaded. // - if (status == FILE_PRESENT && new_info.executable) { + if (status == FILE_PRESENT && !executable && new_info.executable) { + msg_printf(project, MSG_INTERNAL_ERROR, + "%s has changed to executable", name + ); + executable = true; int retval = set_permissions(); if (retval) { msg_printf(project, MSG_INTERNAL_ERROR, diff --git a/html/user/buda.php b/html/user/buda.php index b3bfb9fa383208ccf4f1ac430edd944c1549450c..b2fe394e2fe8f12902dbe877c59f964d5be0e3f8 100644 --- a/html/user/buda.php +++ b/html/user/buda.php @@ -199,7 +199,7 @@ function create_templates($variant, $variant_desc, $dir) { $x = "<input_template>\n"; $ninfiles = 1 + count($variant_desc->input_file_names) + count($variant_desc->app_files); for ($i=0; $i<$ninfiles; $i++) { - $x .= " <file_info>\n <no_delete/>\n </file_info>\n"; + $x .= " <file_info>\n <no_delete/>\n <executable/>\n </file_info>\n"; } $x .= " <workunit>\n"; $x .= file_ref_in($variant_desc->dockerfile); diff --git a/lib/hostinfo.cpp b/lib/hostinfo.cpp index 842da0a293fecf1d35d251f21e0ae6c76f7cf9fe..289ab42382d7e98270625a074bf98373acdb9c8b 100644 --- a/lib/hostinfo.cpp +++ b/lib/hostinfo.cpp @@ -89,6 +89,7 @@ void HOST_INFO::clear_host_info() { } int HOST_INFO::parse(XML_PARSER& xp, bool static_items_only) { + int i; clear_host_info(); while (!xp.get_tag()) { if (xp.match_tag("/host_info")) return 0; @@ -144,8 +145,15 @@ int HOST_INFO::parse(XML_PARSER& xp, bool static_items_only) { } #else if (xp.parse_str("docker_version", docker_version, sizeof(docker_version))) continue; + if (xp.parse_int("docker_type", i)) { + docker_type = (DOCKER_TYPE)i; + continue; + } if (xp.parse_str("docker_compose_version", docker_compose_version, sizeof(docker_compose_version))) continue; - if (xp.parse_str("docker_version", docker_version, sizeof(docker_version))) continue; + if (xp.parse_int("docker_compose_type", i)) { + docker_compose_type = (DOCKER_TYPE)i; + continue; + } #endif if (xp.parse_str("product_name", product_name, sizeof(product_name))) continue; if (xp.parse_str("virtualbox_version", virtualbox_version, sizeof(virtualbox_version))) continue;