From 2aba3df319dfafec9f45e83d1ab1d5b72f09c5a2 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 28 Feb 2025 17:35:01 +0100 Subject: [PATCH] ucode: add pending patch for making uci override dir configurable Signed-off-by: Felix Fietkau --- ...for-altering-the-override-config-dir.patch | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 package/utils/ucode/patches/100-uci-add-support-for-altering-the-override-config-dir.patch diff --git a/package/utils/ucode/patches/100-uci-add-support-for-altering-the-override-config-dir.patch b/package/utils/ucode/patches/100-uci-add-support-for-altering-the-override-config-dir.patch new file mode 100644 index 0000000000..e3977f5d98 --- /dev/null +++ b/package/utils/ucode/patches/100-uci-add-support-for-altering-the-override-config-dir.patch @@ -0,0 +1,56 @@ +From: Felix Fietkau +Date: Fri, 28 Feb 2025 17:17:46 +0100 +Subject: [PATCH] uci: add support for altering the override config directory + +This was added to libuci recently + +Signed-off-by: Felix Fietkau +--- + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -202,6 +202,11 @@ if(UCI_SUPPORT) + include_directories(${uci_include_dir}) + set(LIBRARIES ${LIBRARIES} uci_lib) + add_library(uci_lib MODULE lib/uci.c) ++ list(APPEND CMAKE_REQUIRED_LIBRARIES ${libubox} ${libuci}) ++ check_function_exists(uci_set_conf2dir HAVE_UCI_CONF2DIR) ++ if (HAVE_UCI_CONF2DIR) ++ target_compile_definitions(uci_lib PUBLIC HAVE_UCI_CONF2DIR) ++ endif() + set_target_properties(uci_lib PROPERTIES OUTPUT_NAME uci PREFIX "") + target_link_options(uci_lib PRIVATE ${UCODE_MODULE_LINK_OPTIONS}) + target_link_libraries(uci_lib ${libuci} ${libubox}) +--- a/lib/uci.c ++++ b/lib/uci.c +@@ -158,11 +158,13 @@ uc_uci_cursor(uc_vm_t *vm, size_t nargs) + { + uc_value_t *cdir = uc_fn_arg(0); + uc_value_t *sdir = uc_fn_arg(1); ++ uc_value_t *c2dir = uc_fn_arg(2); + struct uci_context *c; + int rv; + + if ((cdir && ucv_type(cdir) != UC_STRING) || +- (sdir && ucv_type(sdir) != UC_STRING)) ++ (sdir && ucv_type(sdir) != UC_STRING) || ++ (c2dir && ucv_type(c2dir) != UC_STRING)) + err_return(UCI_ERR_INVAL); + + c = uci_alloc_context(); +@@ -184,6 +186,15 @@ uc_uci_cursor(uc_vm_t *vm, size_t nargs) + err_return(rv); + } + ++#ifdef HAVE_UCI_CONF2DIR ++ if (c2dir) { ++ rv = uci_set_conf2dir(c, ucv_string_get(c2dir)); ++ ++ if (rv) ++ err_return(rv); ++ } ++#endif ++ + ok_return(ucv_resource_create(vm, "uci.cursor", c)); + } + -- 2.30.2