diff options
Diffstat (limited to 'meta-openembedded/meta-networking/recipes-connectivity')
24 files changed, 1175 insertions, 838 deletions
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/fix-memory-leaks.patch b/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/fix-memory-leaks.patch new file mode 100644 index 0000000000..22e1fac855 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/fix-memory-leaks.patch @@ -0,0 +1,768 @@ +Upstream-Status: Submitted [https://github.com/khvzak/bluez-tools/pull/48] + +From e5db2eec2591f0109f0eb7c2631055210b55f2f5 Mon Sep 17 00:00:00 2001 +Message-Id: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Sat, 7 Nov 2020 01:07:24 -0500 +Subject: [PATCH 1/9] Remove memory leaks and overall restructure + manager_find_adapter + +--- + src/lib/manager.c | 61 +++++++++++++++++++++++++++++++++-------------- + 1 file changed, 43 insertions(+), 18 deletions(-) + +diff --git a/src/lib/manager.c b/src/lib/manager.c +index 5286a3a..2263afc 100644 +--- a/src/lib/manager.c ++++ b/src/lib/manager.c +@@ -136,43 +136,68 @@ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError ** + GVariant *ifaces_and_properties; + GVariantIter i; + ++ gchar *pattern_lowercase = g_ascii_strdown(pattern, -1); ++ + g_variant_iter_init(&i, objects); +- while (g_variant_iter_next(&i, "{&o@a{sa{sv}}}", &object_path, &ifaces_and_properties)) ++ gboolean still_looking = TRUE; ++ while (still_looking && g_variant_iter_next(&i, "{&o@a{sa{sv}}}", &object_path, &ifaces_and_properties)) + { + const gchar *interface_name; +- GVariant *properties; + GVariantIter ii; ++ GVariant* properties; + g_variant_iter_init(&ii, ifaces_and_properties); + while (g_variant_iter_next(&ii, "{&s@a{sv}}", &interface_name, &properties)) + { +- if (g_strstr_len(g_ascii_strdown(interface_name, -1), -1, "adapter")) ++ gchar *interface_name_lowercase = g_ascii_strdown(interface_name, -1); ++ if (strstr(interface_name_lowercase, "adapter")) + { +- const gchar *object_base_name = g_path_get_basename(object_path); +- if (g_strstr_len(g_ascii_strdown(object_base_name, -1), -1, g_ascii_strdown(pattern, -1))) ++ g_free(interface_name_lowercase); ++ ++ gchar *object_base_name_original = g_path_get_basename(object_path); ++ gchar *object_base_name = g_ascii_strdown(interface_name, -1); ++ g_free(object_base_name_original); ++ ++ if (strstr(object_base_name, pattern_lowercase)) + { +- const gchar *retVal = g_strdup(object_path); +- g_variant_unref(properties); +- g_variant_unref(ifaces_and_properties); +- g_variant_unref(objects); +- return retVal; ++ still_looking = FALSE; ++ g_free(object_base_name); ++ break; + } +- const gchar *address = g_variant_get_string(g_variant_lookup_value(properties, "Address", NULL), NULL); +- if (g_strstr_len(g_ascii_strdown(address, -1), -1, g_ascii_strdown(pattern, -1))) ++ ++ g_free(object_base_name); ++ ++ const gchar *address_original = g_variant_get_string(g_variant_lookup_value(properties, "Address", NULL), NULL); ++ gchar *address = g_ascii_strdown(address_original, -1); ++ ++ if (strstr(address, pattern_lowercase)) + { +- gchar *retVal = g_strdup(object_path); +- g_variant_unref(properties); +- g_variant_unref(ifaces_and_properties); +- g_variant_unref(objects); +- return retVal; ++ still_looking = FALSE; ++ g_free(address); ++ break; + } ++ g_free(address); + } ++ else ++ { ++ g_free(interface_name_lowercase); ++ } ++ + g_variant_unref(properties); + } ++ + g_variant_unref(ifaces_and_properties); + } + g_variant_unref(objects); ++ g_free(pattern_lowercase); + +- return NULL; ++ if (still_looking) ++ { ++ return NULL; ++ } ++ else ++ { ++ return object_path; ++ } + } + + GPtrArray *manager_get_adapters(Manager *self) +-- +2.34.1 + + +From 163fcc94f1bc7c8f238e78adb03af914a566d979 Mon Sep 17 00:00:00 2001 +Message-Id: <163fcc94f1bc7c8f238e78adb03af914a566d979.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Sat, 7 Nov 2020 22:12:21 -0500 +Subject: [PATCH 2/9] Replace manager_default_adapter with + manager_find_adapter(..., NULL, ...) + +--- + src/lib/helpers.c | 57 ++++++++++++++++++----------------------------- + src/lib/manager.c | 51 +++++++++--------------------------------- + src/lib/manager.h | 1 - + 3 files changed, 33 insertions(+), 76 deletions(-) + +diff --git a/src/lib/helpers.c b/src/lib/helpers.c +index d7e95f9..99561b5 100644 +--- a/src/lib/helpers.c ++++ b/src/lib/helpers.c +@@ -159,52 +159,39 @@ Adapter *find_adapter(const gchar *name, GError **error) + + Manager *manager = g_object_new(MANAGER_TYPE, NULL); + +- // If name is null or empty - return default adapter +- if (name == NULL || strlen(name) == 0) ++ // Try to find by id ++ adapter_path = (gchar *) manager_find_adapter(manager, name, error); ++ ++ // Found ++ if (adapter_path) + { +- adapter_path = (gchar *) manager_default_adapter(manager, error); +- if (adapter_path) +- { +- // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL); +- adapter = adapter_new(adapter_path); +- } ++ // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL); ++ adapter = adapter_new(adapter_path); + } + else + { +- // Try to find by id +- adapter_path = (gchar *) manager_find_adapter(manager, name, error); +- +- // Found +- if (adapter_path) ++ // Try to find by name ++ const GPtrArray *adapters_list = manager_get_adapters(manager); ++ g_assert(adapters_list != NULL); ++ for (int i = 0; i < adapters_list->len; i++) + { ++ adapter_path = g_ptr_array_index(adapters_list, i); + // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL); + adapter = adapter_new(adapter_path); +- } +- else +- { +- // Try to find by name +- const GPtrArray *adapters_list = manager_get_adapters(manager); +- g_assert(adapters_list != NULL); +- for (int i = 0; i < adapters_list->len; i++) ++ adapter_path = NULL; ++ ++ if (g_strcmp0(name, adapter_get_name(adapter, error)) == 0) + { +- adapter_path = g_ptr_array_index(adapters_list, i); +- // adapter = g_object_new(ADAPTER_TYPE, "DBusObjectPath", adapter_path, NULL); +- adapter = adapter_new(adapter_path); +- adapter_path = NULL; +- +- if (g_strcmp0(name, adapter_get_name(adapter, error)) == 0) ++ if (*error) + { +- if (error) +- { +- g_error_free(*error); +- *error = NULL; +- } +- break; ++ g_error_free(*error); ++ *error = NULL; + } +- +- g_object_unref(adapter); +- adapter = NULL; ++ break; + } ++ ++ g_object_unref(adapter); ++ adapter = NULL; + } + } + +diff --git a/src/lib/manager.c b/src/lib/manager.c +index 2263afc..891fc45 100644 +--- a/src/lib/manager.c ++++ b/src/lib/manager.c +@@ -84,45 +84,6 @@ GVariant *manager_get_managed_objects(Manager *self, GError **error) + return retVal; + } + +-const gchar *manager_default_adapter(Manager *self, GError **error) +-{ +- g_assert(MANAGER_IS(self)); +- +- GVariant *objects = NULL; +- objects = manager_get_managed_objects(self, error); +- if (objects == NULL) +- return NULL; +- +- const gchar *object_path; +- GVariant *ifaces_and_properties; +- GVariantIter i; +- +- g_variant_iter_init(&i, objects); +- while (g_variant_iter_next(&i, "{&o@a{sa{sv}}}", &object_path, &ifaces_and_properties)) +- { +- const gchar *interface_name; +- GVariant *properties; +- GVariantIter ii; +- g_variant_iter_init(&ii, ifaces_and_properties); +- while (g_variant_iter_next(&ii, "{&s@a{sv}}", &interface_name, &properties)) +- { +- if (g_strstr_len(g_ascii_strdown(interface_name, -1), -1, "adapter")) +- { +- const gchar *retVal = g_strdup(object_path); +- g_variant_unref(properties); +- g_variant_unref(ifaces_and_properties); +- g_variant_unref(objects); +- return retVal; +- } +- g_variant_unref(properties); +- } +- g_variant_unref(ifaces_and_properties); +- } +- g_variant_unref(objects); +- +- return NULL; +-} +- + const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError **error) + { + g_assert(MANAGER_IS(self)); +@@ -136,7 +97,11 @@ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError ** + GVariant *ifaces_and_properties; + GVariantIter i; + +- gchar *pattern_lowercase = g_ascii_strdown(pattern, -1); ++ gchar *pattern_lowercase = NULL; ++ if (pattern != NULL) ++ { ++ pattern_lowercase = g_ascii_strdown(pattern, -1); ++ } + + g_variant_iter_init(&i, objects); + gboolean still_looking = TRUE; +@@ -153,6 +118,12 @@ const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError ** + { + g_free(interface_name_lowercase); + ++ if (!pattern_lowercase) ++ { ++ still_looking = FALSE; ++ break; ++ } ++ + gchar *object_base_name_original = g_path_get_basename(object_path); + gchar *object_base_name = g_ascii_strdown(interface_name, -1); + g_free(object_base_name_original); +diff --git a/src/lib/manager.h b/src/lib/manager.h +index 0c9e052..b651812 100644 +--- a/src/lib/manager.h ++++ b/src/lib/manager.h +@@ -54,7 +54,6 @@ extern "C" { + * Method definitions. + */ + GVariant *manager_get_managed_objects(Manager *self, GError **error); +- const gchar *manager_default_adapter(Manager *self, GError **error); + const gchar *manager_find_adapter(Manager *self, const gchar *pattern, GError **error); + GPtrArray *manager_get_adapters(Manager *self); + const gchar **manager_get_devices(Manager *self, const gchar *adapter_pattern); +-- +2.34.1 + + +From b463d9cfc2390ca6352c16e6f6e113cf42d0f688 Mon Sep 17 00:00:00 2001 +Message-Id: <b463d9cfc2390ca6352c16e6f6e113cf42d0f688.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Sat, 7 Nov 2020 23:38:42 -0500 +Subject: [PATCH 3/9] Fix remaining g_ascii_strdown leaks + +--- + src/lib/helpers.c | 2 +- + src/lib/manager.c | 5 ++++- + src/lib/properties.c | 4 ++-- + 3 files changed, 7 insertions(+), 4 deletions(-) + +diff --git a/src/lib/helpers.c b/src/lib/helpers.c +index 99561b5..b61bc07 100644 +--- a/src/lib/helpers.c ++++ b/src/lib/helpers.c +@@ -242,7 +242,7 @@ Device *find_device(Adapter *adapter, const gchar *name, GError **error) + + if(g_variant_lookup(properties, "Address", "s", &address)) + { +- if(g_strcmp0(g_ascii_strdown(address, -1), g_ascii_strdown(name, -1)) == 0) ++ if(name && address && g_ascii_strcasecmp(address, name) == 0) + { + device = device_new(object_path); + } +diff --git a/src/lib/manager.c b/src/lib/manager.c +index 891fc45..d506ae6 100644 +--- a/src/lib/manager.c ++++ b/src/lib/manager.c +@@ -200,8 +200,11 @@ GPtrArray *manager_get_adapters(Manager *self) + g_variant_iter_init(&ii, ifaces_and_properties); + while (g_variant_iter_next(&ii, "{&s@a{sv}}", &interface_name, &properties)) + { +- if (g_strstr_len(g_ascii_strdown(interface_name, -1), -1, "adapter")) ++ char* interface_name_lowercase = g_ascii_strdown(interface_name, -1); ++ if (strstr(interface_name_lowercase, "adapter")) + g_ptr_array_add(adapter_array, (gpointer) g_strdup(object_path)); ++ ++ g_free(interface_name_lowercase); + g_variant_unref(properties); + } + g_variant_unref(ifaces_and_properties); +diff --git a/src/lib/properties.c b/src/lib/properties.c +index 8b913d5..70a7640 100644 +--- a/src/lib/properties.c ++++ b/src/lib/properties.c +@@ -205,12 +205,12 @@ static void _properties_create_gdbus_proxy(Properties *self, GError **error) + { + if(self->priv->dbus_type && self->priv->dbus_service_name && self->priv->dbus_object_path) + { +- if(g_ascii_strcasecmp(g_ascii_strdown(self->priv->dbus_type, -1), "system") == 0) ++ if(g_ascii_strcasecmp(self->priv->dbus_type, "system") == 0) + { + g_assert(system_conn != NULL); + self->priv->proxy = g_dbus_proxy_new_sync(system_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, self->priv->dbus_service_name, self->priv->dbus_object_path, PROPERTIES_DBUS_INTERFACE, NULL, error); + } +- else if(g_ascii_strcasecmp(g_ascii_strdown(self->priv->dbus_type, -1), "session") == 0) ++ else if(g_ascii_strcasecmp(self->priv->dbus_type, "session") == 0) + { + g_assert(session_conn != NULL); + self->priv->proxy = g_dbus_proxy_new_sync(session_conn, G_DBUS_PROXY_FLAGS_NONE, NULL, self->priv->dbus_service_name, self->priv->dbus_object_path, PROPERTIES_DBUS_INTERFACE, NULL, error); +-- +2.34.1 + + +From 7ca191164a3a3d8867b1a4af7cd349dc53569fa3 Mon Sep 17 00:00:00 2001 +Message-Id: <7ca191164a3a3d8867b1a4af7cd349dc53569fa3.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Sun, 8 Nov 2020 14:04:36 -0500 +Subject: [PATCH 4/9] Don't leak g_variant_lookup_value results in bt-obex + +--- + src/bt-obex.c | 23 ++++++++++++++++------- + 1 file changed, 16 insertions(+), 7 deletions(-) + +diff --git a/src/bt-obex.c b/src/bt-obex.c +index 8aacb40..0f044a5 100644 +--- a/src/bt-obex.c ++++ b/src/bt-obex.c +@@ -213,15 +213,24 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection, + g_hash_table_insert(_transfers, g_strdup(interface_object_path), t); + + ObexTransferInfo *info = g_malloc0(sizeof(ObexTransferInfo)); +- info->filesize = g_variant_get_uint64(g_variant_lookup_value(properties, "Size", NULL)); +- info->filename = g_strdup(g_variant_get_string(g_variant_lookup_value(properties, "Name", NULL), NULL)); +- info->status = g_strdup(g_variant_get_string(g_variant_lookup_value(properties, "Status", NULL), NULL)); +- ObexSession *session = obex_session_new(g_variant_get_string(g_variant_lookup_value(properties, "Session", NULL), NULL)); +- ++ ++ GVariant* size_variant = g_variant_lookup_value(properties, "Size", NULL); ++ GVariant* name_variant = g_variant_lookup_value(properties, "Name", NULL); ++ GVariant* status_variant = g_variant_lookup_value(properties, "Status", NULL); ++ GVariant* session_variant = g_variant_lookup_value(properties, "Session", NULL); ++ ++ info->filesize = g_variant_get_uint64(size_variant); ++ info->filename = g_variant_dup_string(name_variant, NULL); ++ info->status = g_variant_dup_string(status_variant, NULL); ++ ObexSession *session = obex_session_new(g_variant_get_string(session_variant, NULL)); + info->obex_root = g_strdup(obex_session_get_root(session, NULL)); +- ++ ++ g_variant_unref(size_variant); ++ g_variant_unref(name_variant); ++ g_variant_unref(status_variant); ++ g_variant_unref(session_variant); + g_object_unref(session); +- ++ + g_hash_table_insert(_transfer_infos, g_strdup(interface_object_path), info); + if(g_strcmp0(info->status, "queued") == 0) + g_print("[Transfer#%s] Waiting...\n", info->filename); +-- +2.34.1 + + +From 7100380b710b36f8e31748ac5bf0e6ffb7c4eed7 Mon Sep 17 00:00:00 2001 +Message-Id: <7100380b710b36f8e31748ac5bf0e6ffb7c4eed7.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Thu, 12 Nov 2020 21:41:55 -0500 +Subject: [PATCH 5/9] Correctly free temporary values in bt-obex + +--- + src/bt-obex.c | 35 +++++++++++++++++++++++++---------- + src/lib/helpers.c | 3 ++- + 2 files changed, 27 insertions(+), 11 deletions(-) + +diff --git a/src/bt-obex.c b/src/bt-obex.c +index 0f044a5..547186b 100644 +--- a/src/bt-obex.c ++++ b/src/bt-obex.c +@@ -70,25 +70,32 @@ static void _obex_server_object_manager_handler(GDBusConnection *connection, con + const gchar *interface_object_path = g_variant_get_string(g_variant_get_child_value(parameters, 0), NULL); + GVariant *interfaces_and_properties = g_variant_get_child_value(parameters, 1); + GVariant *properties = NULL; +- ++ + if(g_variant_lookup(interfaces_and_properties, OBEX_TRANSFER_DBUS_INTERFACE, "@a{sv}", &properties)) + { + g_print("[OBEX Server] Transfer started\n"); + ObexTransfer *t = obex_transfer_new(interface_object_path); + g_hash_table_insert(_transfers, g_strdup(interface_object_path), t); +- ++ ++ GVariant* size_variant = g_variant_lookup_value(properties, "Size", NULL); ++ GVariant* status_variant = g_variant_lookup_value(properties, "Status", NULL); ++ GVariant* session_variant = g_variant_lookup_value(properties, "Session", NULL); ++ + ObexTransferInfo *info = g_malloc0(sizeof(ObexTransferInfo)); +- info->filesize = g_variant_get_uint64(g_variant_lookup_value(properties, "Size", NULL)); +- info->status = g_strdup(g_variant_get_string(g_variant_lookup_value(properties, "Status", NULL), NULL)); +- ObexSession *session = obex_session_new(g_variant_get_string(g_variant_lookup_value(properties, "Session", NULL), NULL)); +- ++ info->filesize = g_variant_get_uint64(size_variant); ++ info->status = g_strdup(g_variant_get_string(status_variant, NULL)); ++ ++ ObexSession *session = obex_session_new(g_variant_get_string(session_variant, NULL)); + info->obex_root = g_strdup(obex_session_get_root(session, NULL)); +- + g_object_unref(session); ++ ++ g_variant_unref(size_variant); ++ g_variant_unref(status_variant); ++ g_variant_unref(session_variant); + + g_hash_table_insert(_transfer_infos, g_strdup(interface_object_path), info); + } +- ++ + if(g_variant_lookup(interfaces_and_properties, OBEX_SESSION_DBUS_INTERFACE, "@a{sv}", &properties)) + { + g_print("[OBEX Server] OBEX session opened\n"); +@@ -177,7 +184,12 @@ static void _obex_server_properties_handler(GDBusConnection *connection, const g + { + g_print("[OBEX Server] Transfer succeeded\n"); + ObexTransferInfo *info = g_hash_table_lookup(_transfer_infos, object_path); +- g_rename(g_build_filename(info->obex_root, info->filename, NULL), g_build_filename(_root_path, info->filename, NULL)); ++ ++ gchar* old_name = g_build_filename(info->obex_root, info->filename, NULL); ++ gchar* new_name = g_build_filename(_root_path, info->filename, NULL); ++ g_rename(old_name, new_name); ++ g_free(old_name); ++ g_free(new_name); + } + else if(g_strcmp0(status, "error") == 0) + { +@@ -202,7 +214,8 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection, + { + if(g_strcmp0(signal_name, "InterfacesAdded") == 0) + { +- const gchar *interface_object_path = g_variant_get_string(g_variant_get_child_value(parameters, 0), NULL); ++ GVariant* interface_value = g_variant_get_child_value(parameters, 0); ++ const gchar *interface_object_path = g_variant_get_string(interface_value, NULL); + GVariant *interfaces_and_properties = g_variant_get_child_value(parameters, 1); + GVariant *properties = NULL; + +@@ -242,6 +255,8 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection, + } + + g_variant_unref(interfaces_and_properties); ++ g_variant_unref(interface_value); ++ + if(properties) + g_variant_unref(properties); + } +diff --git a/src/lib/helpers.c b/src/lib/helpers.c +index b61bc07..d9e2257 100644 +--- a/src/lib/helpers.c ++++ b/src/lib/helpers.c +@@ -171,7 +171,7 @@ Adapter *find_adapter(const gchar *name, GError **error) + else + { + // Try to find by name +- const GPtrArray *adapters_list = manager_get_adapters(manager); ++ GPtrArray *adapters_list = manager_get_adapters(manager); + g_assert(adapters_list != NULL); + for (int i = 0; i < adapters_list->len; i++) + { +@@ -193,6 +193,7 @@ Adapter *find_adapter(const gchar *name, GError **error) + g_object_unref(adapter); + adapter = NULL; + } ++ g_ptr_array_unref(adapters_list); + } + + g_object_unref(manager); +-- +2.34.1 + + +From 860fb6e19a7bc272722c36a980004044bc9906e5 Mon Sep 17 00:00:00 2001 +Message-Id: <860fb6e19a7bc272722c36a980004044bc9906e5.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Thu, 12 Nov 2020 21:45:51 -0500 +Subject: [PATCH 6/9] Use g_hash_table_new_full() instead of manual freeing + +--- + src/bt-obex.c | 56 +++++++++++++++++---------------------------------- + 1 file changed, 18 insertions(+), 38 deletions(-) + +diff --git a/src/bt-obex.c b/src/bt-obex.c +index 547186b..413c12d 100644 +--- a/src/bt-obex.c ++++ b/src/bt-obex.c +@@ -55,6 +55,14 @@ struct _ObexTransferInfo { + gchar *status; + }; + ++static void obex_transfer_info_free(ObexTransferInfo* info) ++{ ++ g_free(info->filename); ++ g_free(info->obex_root); ++ g_free(info->status); ++ g_free(info); ++} ++ + static void sigterm_handler(int sig) + { + g_message("%s received", sig == SIGTERM ? "SIGTERM" : "SIGINT"); +@@ -117,10 +125,7 @@ static void _obex_server_object_manager_handler(GDBusConnection *connection, con + if(g_strcmp0(*inf, OBEX_TRANSFER_DBUS_INTERFACE) == 0) + { + g_print("[OBEX Server] OBEX transfer closed\n"); +- ObexTransfer *transfer = g_hash_table_lookup(_transfers, interface_object_path); + g_hash_table_remove(_transfers, interface_object_path); +- g_object_unref(transfer); +- g_free(g_hash_table_lookup(_transfer_infos, interface_object_path)); + g_hash_table_remove(_transfer_infos, interface_object_path); + } + +@@ -272,10 +277,7 @@ static void _obex_opp_client_object_manager_handler(GDBusConnection *connection, + if(g_strcmp0(*inf, OBEX_TRANSFER_DBUS_INTERFACE) == 0) + { + // g_print("[OBEX Client] OBEX transfer closed\n"); +- ObexTransfer *transfer = g_hash_table_lookup(_transfers, interface_object_path); + g_hash_table_remove(_transfers, interface_object_path); +- g_object_unref(transfer); +- g_free(g_hash_table_lookup(_transfer_infos, interface_object_path)); + g_hash_table_remove(_transfer_infos, interface_object_path); + if (g_main_loop_is_running(mainloop)) + g_main_loop_quit(mainloop); +@@ -514,8 +516,8 @@ int main(int argc, char *argv[]) + exit_if_error(error); + } + +- _transfers = g_hash_table_new(g_str_hash, g_str_equal); +- _transfer_infos = g_hash_table_new(g_str_hash, g_str_equal); ++ _transfers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref); ++ _transfer_infos = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify)obex_transfer_info_free); + + ObexAgentManager *manager = obex_agent_manager_new(); + +@@ -552,21 +554,10 @@ int main(int argc, char *argv[]) + g_hash_table_iter_init(&iter, _transfers); + while (g_hash_table_iter_next(&iter, &key, &value)) + { +- ObexTransfer *t = OBEX_TRANSFER(value); +- obex_transfer_cancel(t, NULL); // skip errors +- g_object_unref(t); +- g_hash_table_iter_remove(&iter); +- } +- g_hash_table_unref(_transfers); +- +- // Remove transfer information +- g_hash_table_iter_init(&iter, _transfer_infos); +- while (g_hash_table_iter_next(&iter, &key, &value)) +- { +- g_free(value); +- g_hash_table_iter_remove(&iter); ++ obex_transfer_cancel(OBEX_TRANSFER(value), NULL); + } + g_hash_table_unref(_transfers); ++ g_hash_table_unref(_transfer_infos); + + g_dbus_connection_signal_unsubscribe(session_conn, obex_server_object_id); + g_dbus_connection_signal_unsubscribe(session_conn, obex_server_properties_id); +@@ -588,8 +579,8 @@ int main(int argc, char *argv[]) + exit_if_error(error); + } + +- _transfers = g_hash_table_new(g_str_hash, g_str_equal); +- _transfer_infos = g_hash_table_new(g_str_hash, g_str_equal); ++ _transfers = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref); ++ _transfer_infos = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); + + gchar * files_to_send[] = {NULL, NULL}; + files_to_send[0] = g_path_is_absolute(opp_file_arg) ? g_strdup(opp_file_arg) : get_absolute_path(opp_file_arg); +@@ -663,24 +654,13 @@ int main(int argc, char *argv[]) + g_hash_table_iter_init(&iter, _transfers); + while (g_hash_table_iter_next(&iter, &key, &value)) + { +- ObexTransfer *t = OBEX_TRANSFER(value); +- obex_transfer_cancel(t, NULL); // skip errors +- g_object_unref(t); +- g_hash_table_iter_remove(&iter); ++ obex_transfer_cancel(OBEX_TRANSFER(value), NULL); + } + g_hash_table_unref(_transfers); +- +- // Remove transfer information objects +- g_hash_table_iter_init(&iter, _transfer_infos); +- while (g_hash_table_iter_next(&iter, &key, &value)) +- { +- g_free(value); +- g_hash_table_iter_remove(&iter); +- } +- g_hash_table_unref(_transfers); +- +- g_object_unref(client); + ++ g_hash_table_unref(_transfer_infos); ++ g_object_unref(client); ++ g_object_unref(session); + g_variant_unref(device_dict); + + g_free(src_address); +-- +2.34.1 + + +From 9804eb7e5996c52cc542eef59ba3b5f4d0b0b2f9 Mon Sep 17 00:00:00 2001 +Message-Id: <9804eb7e5996c52cc542eef59ba3b5f4d0b0b2f9.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Thu, 12 Nov 2020 21:51:34 -0500 +Subject: [PATCH 7/9] Don't set filesize if we don't know the size + +I only meant to fix the g_variant_unref warning, but fixing all of them +works too! +--- + src/bt-obex.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/bt-obex.c b/src/bt-obex.c +index 413c12d..219d458 100644 +--- a/src/bt-obex.c ++++ b/src/bt-obex.c +@@ -90,14 +90,22 @@ static void _obex_server_object_manager_handler(GDBusConnection *connection, con + GVariant* session_variant = g_variant_lookup_value(properties, "Session", NULL); + + ObexTransferInfo *info = g_malloc0(sizeof(ObexTransferInfo)); +- info->filesize = g_variant_get_uint64(size_variant); + info->status = g_strdup(g_variant_get_string(status_variant, NULL)); + + ObexSession *session = obex_session_new(g_variant_get_string(session_variant, NULL)); + info->obex_root = g_strdup(obex_session_get_root(session, NULL)); + g_object_unref(session); + +- g_variant_unref(size_variant); ++ if (size_variant != NULL) ++ { ++ info->filesize = g_variant_get_uint64(size_variant); ++ g_variant_unref(size_variant); ++ } ++ else ++ { ++ info->filesize = 0; ++ } ++ + g_variant_unref(status_variant); + g_variant_unref(session_variant); + +-- +2.34.1 + + +From 9566f84464d486983ec597945bc4d5d1594ed830 Mon Sep 17 00:00:00 2001 +Message-Id: <9566f84464d486983ec597945bc4d5d1594ed830.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Sun, 15 Nov 2020 16:18:36 -0500 +Subject: [PATCH 8/9] Fix a use-after-free in bt-obex + +--- + src/bt-obex.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/bt-obex.c b/src/bt-obex.c +index 219d458..7dc5d6b 100644 +--- a/src/bt-obex.c ++++ b/src/bt-obex.c +@@ -626,7 +626,7 @@ int main(int argc, char *argv[]) + mainloop = g_main_loop_new(NULL, FALSE); + + ObexClient *client = obex_client_new(); +- const gchar *session_path = obex_client_create_session(client, dst_address, device_dict, &error); ++ const gchar *session_path = obex_client_create_session(client, dst_address, g_variant_ref(device_dict), &error); + exit_if_error(error); + ObexSession *session = obex_session_new(session_path); + ObexObjectPush *oop = obex_object_push_new(obex_session_get_dbus_object_path(session)); +-- +2.34.1 + + +From 5271a4c6419b54a0b18070d39bfc69fae2819c00 Mon Sep 17 00:00:00 2001 +Message-Id: <5271a4c6419b54a0b18070d39bfc69fae2819c00.1710791277.git.joerg.sommer@navimatix.de> +In-Reply-To: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +References: <e5db2eec2591f0109f0eb7c2631055210b55f2f5.1710791277.git.joerg.sommer@navimatix.de> +From: thatlittlegit <personal@thatlittlegit.tk> +Date: Sat, 21 Nov 2020 13:09:46 -0500 +Subject: [PATCH 9/9] Fix running sdptool if it isn't in $PATH + +--- + src/bt-device.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/bt-device.c b/src/bt-device.c +index a739b98..948a10c 100644 +--- a/src/bt-device.c ++++ b/src/bt-device.c +@@ -331,9 +331,9 @@ static GHashTable *_bt_device_sdp_browse(const gchar *device_path, const gchar * + } + + if(pattern == NULL || strlen(pattern) == 0) +- execl("/bin/sdptool", "/bin/sdptool", "browse", "--xml", device_path, (char *) 0); ++ execlp("sdptool", "sdptool", "browse", "--xml", device_path, (char *) 0); + else +- execl("/bin/sdptool", "/bin/sdptool", "browse", "--xml", "--uuid", pattern, device_path, (char *) 0); ++ execlp("sdptool", "sdptool", "browse", "--xml", "--uuid", pattern, device_path, (char *) 0); + + } + if(pid == -1) +-- +2.34.1 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/obex-file-fix-null-check.patch b/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/obex-file-fix-null-check.patch new file mode 100644 index 0000000000..231f3b0b71 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools/obex-file-fix-null-check.patch @@ -0,0 +1,41 @@ +Upstream-Status: Submitted [https://github.com/khvzak/bluez-tools/pull/47] + +From f9bc83d46f131037f7fa5195a506b65560199d0d Mon Sep 17 00:00:00 2001 +Message-Id: <f9bc83d46f131037f7fa5195a506b65560199d0d.1710791715.git.joerg.sommer@navimatix.de> +From: George Talusan <george.talusan@gmail.com> +Date: Mon, 26 Oct 2020 21:35:51 -0400 +Subject: [PATCH] fix null checks + +--- + src/lib/bluez/obex/obex_file_transfer.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/lib/bluez/obex/obex_file_transfer.c b/src/lib/bluez/obex/obex_file_transfer.c +index 2d3dafe..91c41d6 100644 +--- a/src/lib/bluez/obex/obex_file_transfer.c ++++ b/src/lib/bluez/obex/obex_file_transfer.c +@@ -194,7 +194,7 @@ GVariant *obex_file_transfer_get_file(ObexFileTransfer *self, const gchar *targe + g_assert(OBEX_FILE_TRANSFER_IS(self)); + GVariant *ret = NULL; + GVariant *proxy_ret = g_dbus_proxy_call_sync(self->priv->proxy, "GetFile", g_variant_new ("(ss)", targetfile, sourcefile), G_DBUS_CALL_FLAGS_NONE, -1, NULL, error); +- if (proxy_ret != NULL) ++ if (proxy_ret == NULL) + return NULL; + ret = g_variant_ref_sink(proxy_ret); + g_variant_unref(proxy_ret); +@@ -228,9 +228,9 @@ GVariant *obex_file_transfer_put_file(ObexFileTransfer *self, const gchar *sourc + g_assert(OBEX_FILE_TRANSFER_IS(self)); + GVariant *ret = NULL; + GVariant *proxy_ret = g_dbus_proxy_call_sync(self->priv->proxy, "PutFile", g_variant_new ("(ss)", targetfile, sourcefile), G_DBUS_CALL_FLAGS_NONE, -1, NULL, error); +- if (proxy_ret != NULL) ++ if (proxy_ret == NULL) + return NULL; + ret = g_variant_ref_sink(proxy_ret); + g_variant_unref(proxy_ret); + return ret; +-} +\ No newline at end of file ++} +-- +2.34.1 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools_git.bb new file mode 100644 index 0000000000..22005632c2 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/bluez-tools/bluez-tools_git.bb @@ -0,0 +1,24 @@ +SUMMARY = "Bluez Tools" +DESCRIPTION = "\ + Additional tools for bluez5 to list, manage, and show inforations about \ + adapters, agents, devices, network connections, and obex. \ +" +HOMEPAGE = "https://github.com/khvzak/bluez-tools" +BUGTRACKER = "https://github.com/khvzak/bluez-tools/issues" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e" + +DEPENDS = "dbus-glib glib-2.0 readline" + +SRC_URI = "\ + git://github.com/khvzak/bluez-tools.git;protocol=https;branch=master \ + file://fix-memory-leaks.patch \ + file://obex-file-fix-null-check.patch \ +" +SRCREV = "f65321736475429316f07ee94ec0deac8e46ec4a" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +RDEPENDS:${PN} = "bluez5" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb index 0a654a10f1..f5a699d5be 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/civetweb/civetweb_1.16.bb @@ -40,4 +40,9 @@ PACKAGECONFIG[server] = "-DCIVETWEB_ENABLE_SERVER_EXECUTABLE=ON -DCIVETWEB_INSTA PACKAGECONFIG[ssl] = "-DCIVETWEB_ENABLE_SSL=ON -DCIVETWEB_SSL_OPENSSL_API_1_1=OFF -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF,-DCIVETWEB_ENABLE_SSL=OFF,openssl (=1.0.2%)," PACKAGECONFIG[websockets] = "-DCIVETWEB_ENABLE_WEBSOCKETS=ON,-DCIVETWEB_ENABLE_WEBSOCKETS=OFF," +do_install:append() { + sed -i -e 's|${RECIPE_SYSROOT_NATIVE}||g' \ + -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/civetweb/civetweb-targets.cmake +} + BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch index e5442360b3..3635412d3b 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch @@ -12,26 +12,28 @@ Upstream-Status: Inappropriate [embedded specific] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Yi Zhao <yi.zhao@windriver.com> -update to new version 3.0.17 to fix patch warning +Update to new version 3.0.17 to fix patch warning Signed-off-by: Changqing Li <changqing.li@windriver.com> + +Rebased for 3.2.3 +Signed-off-by: Randy MacLeod <randy.macleod@windriver.com> +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + --- src/modules/rlm_krb5/configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/rlm_krb5/configure.ac b/src/modules/rlm_krb5/configure.ac -index a0f510cfb3..d2f3eca03e 100644 +index 9ee6379ea4..1dad481da8 100644 --- a/src/modules/rlm_krb5/configure.ac +++ b/src/modules/rlm_krb5/configure.ac -@@ -140,7 +140,8 @@ if test x$with_[]modname != xno; then - FR_SMART_CHECK_LIB(krb5, krb5_is_thread_safe) - if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" = xyes; then - AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[return krb5_is_thread_safe() ? 0 : 1]])], -- [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])]) -+ [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])], -+ [AC_MSG_WARN(cross compiling: not checking)]) - fi - else - krb5threadsafe="" --- -2.25.1 - +@@ -143,7 +143,8 @@ if test "$krb5threadsafe" != "no"; then + FR_SMART_CHECK_LIB(krb5, krb5_is_thread_safe) + if test "x$ac_cv_lib_krb5_krb5_is_thread_safe" = xyes; then + AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <krb5.h>]], [[return krb5_is_thread_safe() ? 0 : 1]])], +- [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])]) ++ [krb5threadsafe="-DKRB5_IS_THREAD_SAFE"], [AC_MSG_WARN([[libkrb5 is not threadsafe]])], ++ [AC_MSG_WARN(cross compiling: not checking)]) + fi + else + krb5threadsafe="" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch index 8fd0dca443..510136da1f 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch @@ -10,189 +10,214 @@ Upstream-Status: Inappropriate [embedded specific] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Yi Zhao <yi.zhao@windriver.com> + +Rebased for 3.2.3 +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- - acinclude.m4 | 4 ++-- - src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac | 4 ++-- - src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac | 4 ++-- - src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac | 4 ++-- - src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac | 6 +++--- - src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac | 2 +- - src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac | 4 ++-- - src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac | 4 ++-- - 8 files changed, 16 insertions(+), 16 deletions(-) + m4/fr_smart_check_include.m4 | 2 +- + m4/fr_smart_check_lib.m4 | 22 ---------------------- + src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac | 6 +++--- + src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac | 2 +- + src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac | 4 ++-- + src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac | 4 ++-- + 9 files changed, 15 insertions(+), 37 deletions(-) -diff --git a/acinclude.m4 b/acinclude.m4 -index a953d0e1b6..ede143d3c2 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -115,7 +115,7 @@ dnl # - dnl # Try to guess possible locations. - dnl # - if test "x$smart_lib" = "x"; then -- for try in /usr/local/lib /opt/lib; do -+ for try in $smart_lib_dir; do - AC_MSG_CHECKING([for $2 in -l$1 in $try]) - LIBS="-l$1 $old_LIBS" - CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS" -@@ -155,7 +155,7 @@ ac_safe=`echo "$1" | sed 'y%./+-%__pm%'` +diff --git a/m4/fr_smart_check_include.m4 b/m4/fr_smart_check_include.m4 +index e7d4443f9c..2b69704f98 100644 +--- a/m4/fr_smart_check_include.m4 ++++ b/m4/fr_smart_check_include.m4 +@@ -9,7 +9,7 @@ ac_safe=`echo "$1" | sed 'y%./+-%__pm%'` old_CPPFLAGS="$CPPFLAGS" smart_include= dnl # The default directories we search in (in addition to the compilers search path) -smart_include_dir="/usr/local/include /opt/include" -+smart_include_dir= ++smart_include_dir="" dnl # Our local versions _smart_try_dir= diff --git a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac -index 44f84aa27e..23a1899591 100644 +index 0d94ee9bf6..6108e62054 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac +++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac -@@ -61,14 +61,14 @@ if test x$with_[]modname != xno; then - esac]) - - dnl Check for SQLConnect in -ldb2 -- smart_try_dir="$ibmdb2_lib_dir /usr/local/db2/lib /usr/IBMdb2/V7.1/lib" -+ smart_try_dir="$ibmdb2_lib_dir" - FR_SMART_CHECK_LIB(db2, SQLConnect) - if test "x$ac_cv_lib_db2_SQLConnect" != xyes; then - fail="$fail libdb2" - fi - - dnl Check for sqlcli.h -- smart_try_dir="$ibmdb2_include_dir /usr/local/db2/include /usr/IBMdb2/V7.1/include" -+ smart_try_dir="$ibmdb2_include_dir" - FR_SMART_CHECK_INCLUDE(sqlcli.h) - if test "x$ac_cv_header_sqlcli_h" != xyes; then - fail="$fail sqlcli.h" +@@ -58,14 +58,14 @@ AC_ARG_WITH(ibmdb2-dir, + esac]) + + dnl Check for SQLConnect in -ldb2 +-smart_try_dir="$ibmdb2_lib_dir /usr/local/db2/lib /usr/IBMdb2/V7.1/lib" ++smart_try_dir="$ibmdb2_lib_dir" + FR_SMART_CHECK_LIB(db2, SQLConnect) + if test "x$ac_cv_lib_db2_SQLConnect" != xyes; then + FR_MODULE_FAIL([libdb2]) + fi + + dnl Check for sqlcli.h +-smart_try_dir="$ibmdb2_include_dir /usr/local/db2/include /usr/IBMdb2/V7.1/include" ++smart_try_dir="$ibmdb2_include_dir" + FR_SMART_CHECK_INCLUDE(sqlcli.h) + if test "x$ac_cv_header_sqlcli_h" != xyes; then + FR_MODULE_FAIL([sqlcli.h]) diff --git a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac -index 4c2fd7ba9e..10c864def5 100644 +index 5aa7b4b6ee..2eda5b6cc5 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac +++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac -@@ -60,14 +60,14 @@ if test x$with_[]modname != xno; then - esac]) - - dnl Check for isc_attach_database in -lfbclient -- smart_try_dir="$firebird_lib_dir /usr/lib/firebird2/lib /usr/local/firebird/lib" -+ smart_try_dir="$firebird_lib_dir" - FR_SMART_CHECK_LIB(fbclient, isc_attach_database) - if test "x$ac_cv_lib_fbclient_isc_attach_database" != xyes; then - fail="$fail libfbclient" - fi - - dnl Check for ibase.h -- smart_try_dir="$firebird_include_dir /usr/lib/firebird2/include /usr/local/firebird/include" -+ smart_try_dir="$firebird_include_dir" - FR_SMART_CHECK_INCLUDE(ibase.h) - if test "x$ac_cv_header_ibase_h" != xyes; then - fail="$fail ibase.h" +@@ -58,14 +58,14 @@ AC_ARG_WITH(firebird-dir, + esac]) + + dnl Check for isc_attach_database in -lfbclient +-smart_try_dir="$firebird_lib_dir /usr/lib/firebird2/lib /usr/local/firebird/lib" ++smart_try_dir="$firebird_lib_dir" + FR_SMART_CHECK_LIB(fbclient, isc_attach_database) + if test "x$ac_cv_lib_fbclient_isc_attach_database" != xyes; then + FR_MODULE_FAIL([libfbclient]) + fi + + dnl Check for ibase.h +-smart_try_dir="$firebird_include_dir /usr/lib/firebird2/include /usr/local/firebird/include" ++smart_try_dir="$firebird_include_dir" + FR_SMART_CHECK_INCLUDE(ibase.h) + if test "x$ac_cv_header_ibase_h" != xyes; then + FR_MODULE_FAIL([ibase.h]) diff --git a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac -index d26ac9c431..6e4500e948 100644 +index d96216aca8..88cbc469f7 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac +++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac -@@ -61,14 +61,14 @@ if test x$with_[]modname != xno; then - esac]) - - dnl Check for SQLConnect in -liodbc -- smart_try_dir="$iodbc_lib_dir /usr/lib /usr/lib/iodbc /usr/local/lib/iodbc /usr/local/iodbc/lib/iodbc" -+ smart_try_dir="$iodbc_lib_dir" - FR_SMART_CHECK_LIB(iodbc, SQLConnect) - if test "x$ac_cv_lib_iodbc_SQLConnect" != xyes; then - fail="$fail libiodbc" - fi - - dnl Check for isql.h -- smart_try_dir="$iodbc_include_dir /usr/include /usr/include/iodbc /usr/local/iodbc/include" -+ smart_try_dir="$iodbc_include_dir" - FR_SMART_CHECK_INCLUDE(isql.h) - if test "x$ac_cv_header_isql_h" != xyes; then - fail="$fail isql.h" +@@ -58,14 +58,14 @@ AC_ARG_WITH(iodbc-dir, + esac]) + + dnl Check for SQLConnect in -liodbc +-smart_try_dir="$iodbc_lib_dir /usr/lib /usr/lib/iodbc /usr/local/lib/iodbc /usr/local/iodbc/lib/iodbc" ++smart_try_dir="$iodbc_lib_dir" + FR_SMART_CHECK_LIB(iodbc, SQLConnect) + if test "x$ac_cv_lib_iodbc_SQLConnect" != xyes; then + FR_MODULE_FAIL([libiodbc]) + fi + + dnl Check for isql.h +-smart_try_dir="$iodbc_include_dir /usr/include /usr/include/iodbc /usr/local/iodbc/include" ++smart_try_dir="$iodbc_include_dir" + FR_SMART_CHECK_INCLUDE(isql.h) + if test "x$ac_cv_header_isql_h" != xyes; then + FR_MODULE_FAIL([isql.h]) diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac -index df36da77bf..31359041c7 100644 +index d36aecbda6..201a623d4e 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac +++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac -@@ -140,7 +140,7 @@ if test x$with_[]modname != xno; then - - dnl # Check for libmysqlclient_r - if test "x$have_a_libmysqlclient" != "xyes"; then -- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql" -+ smart_try_dir="$mysql_lib_dir" - FR_SMART_CHECK_LIB(mysqlclient_r, mysql_init) - if test "x$ac_cv_lib_mysqlclient_r_mysql_init" = "xyes"; then - have_a_libmysqlclient='yes' -@@ -149,7 +149,7 @@ if test x$with_[]modname != xno; then - - dnl # Check for libmysqlclient - if test "x$have_a_libmysqlclient" != "xyes"; then -- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql" -+ smart_try_dir="$mysql_lib_dir" - FR_SMART_CHECK_LIB(mysqlclient, mysql_init) - if test "x$ac_cv_lib_mysqlclient_mysql_init" = "xyes"; then - have_a_libmysqlclient='yes' -@@ -243,7 +243,7 @@ if test x$with_[]modname != xno; then - fi - - if test "x$have_mysql_h" != "xyes"; then -- smart_try_dir="$mysql_include_dir /usr/local/include /usr/local/mysql/include" -+ smart_try_dir="$mysql_include_dir" - FR_SMART_CHECK_INCLUDE(mysql/mysql.h) - if test "x$ac_cv_header_mysql_mysql_h" = "xyes"; then - AC_DEFINE(HAVE_MYSQL_MYSQL_H, [], [Define if you have <mysql/mysql.h>]) +@@ -138,7 +138,7 @@ fi + + dnl # Check for libmysqlclient_r + if test "x$have_a_libmysqlclient" != "xyes"; then +- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql" ++ smart_try_dir="$mysql_lib_dir" + FR_SMART_CHECK_LIB(mysqlclient_r, mysql_init) + if test "x$ac_cv_lib_mysqlclient_r_mysql_init" = "xyes"; then + have_a_libmysqlclient='yes' +@@ -147,7 +147,7 @@ fi + + dnl # Check for libmysqlclient + if test "x$have_a_libmysqlclient" != "xyes"; then +- smart_try_dir="$mysql_lib_dir /usr/lib /usr/lib/mysql /usr/local/lib/mysql /usr/local/mysql/lib/mysql" ++ smart_try_dir="$mysql_lib_dir" + FR_SMART_CHECK_LIB(mysqlclient, mysql_init) + if test "x$ac_cv_lib_mysqlclient_mysql_init" = "xyes"; then + have_a_libmysqlclient='yes' +@@ -242,7 +242,7 @@ if test "x$have_mysql_h" != "xyes"; then + fi + + if test "x$have_mysql_h" != "xyes"; then +- smart_try_dir="$mysql_include_dir /usr/local/include /usr/local/mysql/include" ++ smart_try_dir="$mysql_include_dir" + FR_SMART_CHECK_INCLUDE(mysql/mysql.h) + if test "x$ac_cv_header_mysql_mysql_h" = "xyes"; then + AC_DEFINE(HAVE_MYSQL_MYSQL_H, [], [Define if you have <mysql/mysql.h>]) diff --git a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac -index 3b45da582a..03e6607d2b 100644 +index f31b7d2c5a..67bbf66df5 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac +++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac -@@ -68,7 +68,7 @@ if test x$with_[]modname != xno; then - dnl # Check for header files - dnl ############################################################ +@@ -66,7 +66,7 @@ dnl ############################################################ + dnl # Check for header files + dnl ############################################################ -- smart_try_dir="$oracle_include_dir /usr/local/instaclient/include" -+ smart_try_dir="$oracle_include_dir" +-smart_try_dir="$oracle_include_dir /usr/local/instaclient/include" ++smart_try_dir="$oracle_include_dir" - if test "x$ORACLE_HOME" != "x"; then + if test "x$ORACLE_HOME" != "x"; then smart_try_dir="${smart_try_dir} ${ORACLE_HOME}/include" diff --git a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac -index 8ac1022e89..d46c0f66bf 100644 +index 46587e4099..b41c51bda7 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac +++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac -@@ -45,7 +45,7 @@ if test x$with_[]modname != xno; then - esac ] - ) - -- smart_try_dir="$rlm_sql_postgresql_include_dir /usr/include/postgresql /usr/local/pgsql/include /usr/include/pgsql" -+ smart_try_dir="$rlm_sql_postgresql_include_dir" - FR_SMART_CHECK_INCLUDE(libpq-fe.h) - if test "x$ac_cv_header_libpqmfe_h" != "xyes"; then - fail="$fail libpq-fe.h" -@@ -94,7 +94,7 @@ if test x$with_[]modname != xno; then - ]) - fi - -- smart_try_dir="$rlm_sql_postgresql_lib_dir /usr/lib /usr/local/pgsql/lib" -+ smart_try_dir="$rlm_sql_postgresql_lib_dir" - FR_SMART_CHECK_LIB(pq, PQconnectdb) - if test "x$ac_cv_lib_pq_PQconnectdb" != "xyes"; then - fail="$fail libpq" +@@ -43,7 +43,7 @@ AC_ARG_WITH(rlm-sql-postgresql-include-dir, + ;; + esac]) + +-smart_try_dir="$rlm_sql_postgresql_include_dir /usr/include/postgresql /usr/local/pgsql/include /usr/include/pgsql" ++smart_try_dir="$rlm_sql_postgresql_include_dir" + FR_SMART_CHECK_INCLUDE(libpq-fe.h) + if test "x$ac_cv_header_libpqmfe_h" != "xyes"; then + FR_MODULE_FAIL([libpq-fe.h]) +@@ -95,7 +95,7 @@ else + ]) + fi + +-smart_try_dir="$rlm_sql_postgresql_lib_dir /usr/lib /usr/local/pgsql/lib" ++smart_try_dir="$rlm_sql_postgresql_lib_dir" + FR_SMART_CHECK_LIB(pq, PQconnectdb) + if test "x$ac_cv_lib_pq_PQconnectdb" != "xyes"; then + FR_MODULE_FAIL([libpq]) diff --git a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac -index f10279fe1f..0081a338c8 100644 +index 3bdfae6032..ce68c312c6 100644 --- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac +++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac -@@ -61,14 +61,14 @@ if test x$with_[]modname != xno; then - esac]) - - dnl Check for SQLConnect in -lodbc -- smart_try_dir="$unixodbc_lib_dir /usr/local/unixodbc/lib" -+ smart_try_dir="$unixodbc_lib_dir" - FR_SMART_CHECK_LIB(odbc, SQLConnect) - if test "x$ac_cv_lib_odbc_SQLConnect" != xyes; then - fail="$fail libodbc" - fi - - dnl Check for sql.h -- smart_try_dir="$unixodbc_include_dir /usr/local/unixodbc/include" -+ smart_try_dir="$unixodbc_include_dir" - FR_SMART_CHECK_INCLUDE(sql.h) - if test "x$ac_cv_header_sql_h" != xyes; then - fail="$fail sql.h" --- -2.25.1 - +@@ -58,14 +58,14 @@ AC_ARG_WITH(unixodbc-dir, + esac]) + + dnl Check for SQLConnect in -lodbc +-smart_try_dir="$unixodbc_lib_dir /usr/local/unixodbc/lib" ++smart_try_dir="$unixodbc_lib_dir" + FR_SMART_CHECK_LIB(odbc, SQLConnect) + if test "x$ac_cv_lib_odbc_SQLConnect" != xyes; then + FR_MODULE_FAIL([libodbc]) + fi + + dnl Check for sql.h +-smart_try_dir="$unixodbc_include_dir /usr/local/unixodbc/include" ++smart_try_dir="$unixodbc_include_dir" + FR_SMART_CHECK_INCLUDE(sql.h) + if test "x$ac_cv_header_sql_h" != xyes; then + FR_MODULE_FAIL([sql.h]) +diff --git a/m4/fr_smart_check_lib.m4 b/m4/fr_smart_check_lib.m4 +index 16ac5b3c5e..0f5e9fc6d6 100644 +--- a/m4/fr_smart_check_lib.m4 ++++ b/m4/fr_smart_check_lib.m4 +@@ -64,28 +64,6 @@ if test "x$smart_lib" = "x"; then + LIBS="$old_LIBS" + fi + +-dnl # +-dnl # Try to guess possible locations. +-dnl # +-if test "x$smart_lib" = "x"; then +- for try in /usr/local/lib /opt/lib; do +- AC_MSG_CHECKING([for $2 in -l$1 in $try]) +- LIBS="-l$1 $old_LIBS" +- CPPFLAGS="-L$try -Wl,-rpath,$try $old_CPPFLAGS" +- AC_TRY_LINK([extern char $2();], +- [$2()], +- [ +- smart_lib="-l$1" +- smart_ldflags="-L$try -Wl,-rpath,$try" +- AC_MSG_RESULT(yes) +- break +- ], +- [AC_MSG_RESULT(no)]) +- done +- LIBS="$old_LIBS" +- CPPFLAGS="$old_CPPFLAGS" +-fi +- + dnl # + dnl # Found it, set the appropriate variable. + dnl # diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch index cb71fb1373..78259d7d74 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch @@ -16,18 +16,15 @@ Signed-off-by: Yi Zhao <yi.zhao@windriver.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/rlm_python/configure.ac b/src/modules/rlm_python/configure.ac -index 08ecb62518..d5c0944ff1 100644 +index c79c327064..5f4d274990 100644 --- a/src/modules/rlm_python/configure.ac +++ b/src/modules/rlm_python/configure.ac -@@ -98,7 +98,7 @@ if test x$with_[]modname != xno; then +@@ -103,7 +103,7 @@ FR_MODULE_TEST_PASS_DO([ - old_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $PY_CFLAGS" -- smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION" -+ smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION $PY_INC_DIR" - FR_SMART_CHECK_INCLUDE(Python.h) - CFLAGS=$old_CFLAGS + old_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $PY_CFLAGS" +- smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION" ++ smart_try_dir="$PY_PREFIX/include/python$PY_SYS_VERSION $PY_INC_DIR" + FR_SMART_CHECK_INCLUDE(Python.h) + CFLAGS=$old_CFLAGS --- -2.25.1 - diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch index 69125eb3cb..efa5c53c9f 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch @@ -14,18 +14,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/rlm_mschap/configure.ac b/src/modules/rlm_mschap/configure.ac -index 0fd105d7e6..6ab15509e5 100644 +index 953336f475..77a18af55d 100644 --- a/src/modules/rlm_mschap/configure.ac +++ b/src/modules/rlm_mschap/configure.ac -@@ -75,7 +75,7 @@ if test x$with_[]modname != xno; then - mod_ldflags="-F /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks -framework DirectoryService" - fi +@@ -77,7 +77,7 @@ else + FR_MODULE_FEATURE([opendirectory], [without opendirectory support]) + fi -- smart_try_dir="$winbind_include_dir /usr/include/samba-4.0" -+ smart_try_dir="$winbind_include_dir =/usr/include/samba-4.0" - FR_SMART_CHECK_INCLUDE(wbclient.h, [#include <stdint.h> - #include <stdbool.h>]) - if test "x$ac_cv_header_wbclient_h" != "xyes"; then --- -2.25.1 - +-smart_try_dir="$winbind_include_dir /usr/include/samba-4.0" ++smart_try_dir="$winbind_include_dir =/usr/include/samba-4.0" + FR_SMART_CHECK_INCLUDE(wbclient.h, [#include <stdint.h> + #include <stdbool.h>]) + if test "x$ac_cv_header_wbclient_h" != "xyes"; then diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0017-Add-acinclude.m4-to-include-required-macros.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0017-Add-acinclude.m4-to-include-required-macros.patch new file mode 100644 index 0000000000..f5c399e584 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0017-Add-acinclude.m4-to-include-required-macros.patch @@ -0,0 +1,61 @@ +From 40abff4062d0521cf2b2a8a4660a3d2933f86f9d Mon Sep 17 00:00:00 2001 +From: Robert Yang <liezhi.yang@windriver.com> +Date: Mon, 1 Apr 2024 09:09:07 +0000 +Subject: [PATCH] Add acinclude.m4 to include required macros + +* These micro files are in the m4 directories, but the aclocal didn't + add them to aclocal.m4 automatically, so add them to acinclude.m4 + manually. + +* The runlog.m4 is added for python.m4. + +Upstream-Status: Inappropriate [OE Specific] + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + acinclude.m4 | 8 ++++++++ + m4/runlog.m4 | 17 +++++++++++++++++ + 2 files changed, 25 insertions(+) + create mode 100644 acinclude.m4 + create mode 100644 m4/runlog.m4 + +diff --git a/acinclude.m4 b/acinclude.m4 +new file mode 100644 +index 0000000000..118b7f0e5f +--- /dev/null ++++ b/acinclude.m4 +@@ -0,0 +1,8 @@ ++m4_include([m4/fr_init_module.m4]) ++m4_include([m4/ax_with_prog.m4]) ++m4_include([m4/runlog.m4]) ++m4_include([m4/python.m4]) ++m4_include([m4/ax_compare_version.m4]) ++m4_include([m4/libcurl_check_config.m4]) ++m4_include([m4/ax_ruby_devel.m4]) ++m4_include([m4/ax_prog_ruby_version.m4]) +diff --git a/m4/runlog.m4 b/m4/runlog.m4 +new file mode 100644 +index 0000000000..690efc3258 +--- /dev/null ++++ b/m4/runlog.m4 +@@ -0,0 +1,17 @@ ++## -*- Autoconf -*- ++# Copyright (C) 2001-2018 Free Software Foundation, Inc. ++# ++# This file is free software; the Free Software Foundation ++# gives unlimited permission to copy and/or distribute it, ++# with or without modifications, as long as this notice is preserved. ++ ++# AM_RUN_LOG(COMMAND) ++# ------------------- ++# Run COMMAND, save the exit status in ac_status, and log it. ++# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) ++AC_DEFUN([AM_RUN_LOG], ++[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ++ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ++ (exit $ac_status); }]) +-- +2.35.5 + diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0017-add-python.m4-for-detecting-python-3.10.patch b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0017-add-python.m4-for-detecting-python-3.10.patch deleted file mode 100644 index 62a4869c95..0000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/files/0017-add-python.m4-for-detecting-python-3.10.patch +++ /dev/null @@ -1,427 +0,0 @@ -From f1418e1b46cb1cbd130935b76f5c78c577d1ad28 Mon Sep 17 00:00:00 2001 -From: Matthew Newton <matthew-git@newtoncomputing.co.uk> -Date: Wed, 28 Sep 2022 23:49:32 +0100 -Subject: [PATCH] add python.m4 for detecting python > 3.10 - -Upstream-Status: Backport -[https://github.com/FreeRADIUS/freeradius-server/commit/86584d2753829756cc73aadce5d48f703af472b1] - -Signed-off-by: Yi Zhao <yi.zhao@windriver.com> ---- - src/modules/rlm_python3/configure.ac | 4 + - src/modules/rlm_python3/m4/python.m4 | 363 +++++++++++++++++++++++++++ - src/modules/rlm_python3/m4/runlog.m4 | 17 ++ - 3 files changed, 384 insertions(+) - create mode 100644 src/modules/rlm_python3/m4/python.m4 - create mode 100644 src/modules/rlm_python3/m4/runlog.m4 - -diff --git a/src/modules/rlm_python3/configure.ac b/src/modules/rlm_python3/configure.ac -index bc0e97f9ba..90f2116e73 100644 ---- a/src/modules/rlm_python3/configure.ac -+++ b/src/modules/rlm_python3/configure.ac -@@ -3,6 +3,10 @@ AC_INIT(rlm_python3.c) - AC_REVISION($Revision$) - AC_DEFUN(modname,[rlm_python3]) - -+m4_include([ax_compare_version.m4]) -+m4_include([runlog.m4]) -+m4_include([python.m4]) -+ - AC_ARG_WITH([]modname, - [ --with-[]modname build []modname. (default=yes)]) - -diff --git a/src/modules/rlm_python3/m4/python.m4 b/src/modules/rlm_python3/m4/python.m4 -new file mode 100644 -index 0000000000..78ca7635ab ---- /dev/null -+++ b/src/modules/rlm_python3/m4/python.m4 -@@ -0,0 +1,363 @@ -+## ------------------------ -*- Autoconf -*- -+## Python file handling -+## From Andrew Dalke -+## Updated by James Henstridge and other contributors. -+## ------------------------ -+# Copyright (C) 1999-2021 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+ -+# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -+# --------------------------------------------------------------------------- -+# Adds support for distributing Python modules and packages. To -+# install modules, copy them to $(pythondir), using the python_PYTHON -+# automake variable. To install a package with the same name as the -+# automake package, install to $(pkgpythondir), or use the -+# pkgpython_PYTHON automake variable. -+# -+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as -+# locations to install python extension modules (shared libraries). -+# Another macro is required to find the appropriate flags to compile -+# extension modules. -+# -+# If your package is configured with a different prefix to python, -+# users will have to add the install directory to the PYTHONPATH -+# environment variable, or create a .pth file (see the python -+# documentation for details). -+# -+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will -+# cause an error if the version of python installed on the system -+# doesn't meet the requirement. MINIMUM-VERSION should consist of -+# numbers and dots only. -+AC_DEFUN([AM_PATH_PYTHON], -+ [ -+ dnl Find a Python interpreter. Python versions prior to 2.0 are not -+ dnl supported. (2.0 was released on October 16, 2000). -+ m4_define_default([_AM_PYTHON_INTERPRETER_LIST], -+[python python2 python3 dnl -+ python3.11 python3.10 dnl -+ python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 dnl -+ python3.2 python3.1 python3.0 dnl -+ python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 dnl -+ python2.0]) -+ -+ AC_ARG_VAR([PYTHON], [the Python interpreter]) -+ -+ m4_if([$1],[],[ -+ dnl No version check is needed. -+ # Find any Python interpreter. -+ if test -z "$PYTHON"; then -+ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) -+ fi -+ am_display_PYTHON=python -+ ], [ -+ dnl A version check is needed. -+ if test -n "$PYTHON"; then -+ # If the user set $PYTHON, use it and don't search something else. -+ AC_MSG_CHECKING([whether $PYTHON version is >= $1]) -+ AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], -+ [AC_MSG_RESULT([yes])], -+ [AC_MSG_RESULT([no]) -+ AC_MSG_ERROR([Python interpreter is too old])]) -+ am_display_PYTHON=$PYTHON -+ else -+ # Otherwise, try each interpreter until we find one that satisfies -+ # VERSION. -+ AC_CACHE_CHECK([for a Python interpreter with version >= $1], -+ [am_cv_pathless_PYTHON],[ -+ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do -+ test "$am_cv_pathless_PYTHON" = none && break -+ AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) -+ done]) -+ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. -+ if test "$am_cv_pathless_PYTHON" = none; then -+ PYTHON=: -+ else -+ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) -+ fi -+ am_display_PYTHON=$am_cv_pathless_PYTHON -+ fi -+ ]) -+ -+ if test "$PYTHON" = :; then -+ dnl Run any user-specified action, or abort. -+ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) -+ else -+ -+ dnl Query Python for its version number. Although site.py simply uses -+ dnl sys.version[:3], printing that failed with Python 3.10, since the -+ dnl trailing zero was eliminated. So now we output just the major -+ dnl and minor version numbers, as numbers. Apparently the tertiary -+ dnl version is not of interest. -+ dnl -+ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], -+ [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`]) -+ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) -+ -+ dnl At times, e.g., when building shared libraries, you may want -+ dnl to know which OS platform Python thinks this is. -+ dnl -+ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], -+ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`]) -+ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) -+ -+ dnl emacs-page -+ dnl If --with-python-sys-prefix is given, use the values of sys.prefix -+ dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX -+ dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and -+ dnl ${exec_prefix} variables. -+ dnl -+ dnl The two are made distinct variables so they can be overridden if -+ dnl need be, although general consensus is that you shouldn't need -+ dnl this separation. -+ dnl -+ dnl Also allow directly setting the prefixes via configure options, -+ dnl overriding any default. -+ dnl -+ if test "x$prefix" = xNONE; then -+ am__usable_prefix=$ac_default_prefix -+ else -+ am__usable_prefix=$prefix -+ fi -+ -+ # Allow user to request using sys.* values from Python, -+ # instead of the GNU $prefix values. -+ AC_ARG_WITH([python-sys-prefix], -+ [AS_HELP_STRING([--with-python-sys-prefix], -+ [use Python's sys.prefix and sys.exec_prefix values])], -+ [am_use_python_sys=:], -+ [am_use_python_sys=false]) -+ -+ # Allow user to override whatever the default Python prefix is. -+ AC_ARG_WITH([python_prefix], -+ [AS_HELP_STRING([--with-python_prefix], -+ [override the default PYTHON_PREFIX])], -+ [am_python_prefix_subst=$withval -+ am_cv_python_prefix=$withval -+ AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix]) -+ AC_MSG_RESULT([$am_cv_python_prefix])], -+ [ -+ if $am_use_python_sys; then -+ # using python sys.prefix value, not GNU -+ AC_CACHE_CHECK([for python default $am_display_PYTHON prefix], -+ [am_cv_python_prefix], -+ [am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`]) -+ -+ dnl If sys.prefix is a subdir of $prefix, replace the literal value of -+ dnl $prefix with a variable reference so it can be overridden. -+ case $am_cv_python_prefix in -+ $am__usable_prefix*) -+ am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'` -+ am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"` -+ ;; -+ *) -+ am_python_prefix_subst=$am_cv_python_prefix -+ ;; -+ esac -+ else # using GNU prefix value, not python sys.prefix -+ am_python_prefix_subst='${prefix}' -+ am_python_prefix=$am_python_prefix_subst -+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix]) -+ AC_MSG_RESULT([$am_python_prefix]) -+ fi]) -+ # Substituting python_prefix_subst value. -+ AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst]) -+ -+ # emacs-page Now do it all over again for Python exec_prefix, but with yet -+ # another conditional: fall back to regular prefix if that was specified. -+ AC_ARG_WITH([python_exec_prefix], -+ [AS_HELP_STRING([--with-python_exec_prefix], -+ [override the default PYTHON_EXEC_PREFIX])], -+ [am_python_exec_prefix_subst=$withval -+ am_cv_python_exec_prefix=$withval -+ AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix]) -+ AC_MSG_RESULT([$am_cv_python_exec_prefix])], -+ [ -+ # no explicit --with-python_exec_prefix, but if -+ # --with-python_prefix was given, use its value for python_exec_prefix too. -+ AS_IF([test -n "$with_python_prefix"], -+ [am_python_exec_prefix_subst=$with_python_prefix -+ am_cv_python_exec_prefix=$with_python_prefix -+ AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix]) -+ AC_MSG_RESULT([$am_cv_python_exec_prefix])], -+ [ -+ # Set am__usable_exec_prefix whether using GNU or Python values, -+ # since we use that variable for pyexecdir. -+ if test "x$exec_prefix" = xNONE; then -+ am__usable_exec_prefix=$am__usable_prefix -+ else -+ am__usable_exec_prefix=$exec_prefix -+ fi -+ # -+ if $am_use_python_sys; then # using python sys.exec_prefix, not GNU -+ AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix], -+ [am_cv_python_exec_prefix], -+ [am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`]) -+ dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the -+ dnl literal value of $exec_prefix with a variable reference so it can -+ dnl be overridden. -+ case $am_cv_python_exec_prefix in -+ $am__usable_exec_prefix*) -+ am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'` -+ am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"` -+ ;; -+ *) -+ am_python_exec_prefix_subst=$am_cv_python_exec_prefix -+ ;; -+ esac -+ else # using GNU $exec_prefix, not python sys.exec_prefix -+ am_python_exec_prefix_subst='${exec_prefix}' -+ am_python_exec_prefix=$am_python_exec_prefix_subst -+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix]) -+ AC_MSG_RESULT([$am_python_exec_prefix]) -+ fi])]) -+ # Substituting python_exec_prefix_subst. -+ AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst]) -+ -+ # Factor out some code duplication into this shell variable. -+ am_python_setup_sysconfig="\ -+import sys -+# Prefer sysconfig over distutils.sysconfig, for better compatibility -+# with python 3.x. See automake bug#10227. -+try: -+ import sysconfig -+except ImportError: -+ can_use_sysconfig = 0 -+else: -+ can_use_sysconfig = 1 -+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: -+# <https://github.com/pypa/virtualenv/issues/118> -+try: -+ from platform import python_implementation -+ if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': -+ can_use_sysconfig = 0 -+except ImportError: -+ pass" -+ -+ dnl emacs-page Set up 4 directories: -+ -+ dnl 1. pythondir: where to install python scripts. This is the -+ dnl site-packages directory, not the python standard library -+ dnl directory like in previous automake betas. This behavior -+ dnl is more consistent with lispdir.m4 for example. -+ dnl Query distutils for this directory. -+ dnl -+ AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)], -+ [am_cv_python_pythondir], -+ [if test "x$am_cv_python_prefix" = x; then -+ am_py_prefix=$am__usable_prefix -+ else -+ am_py_prefix=$am_cv_python_prefix -+ fi -+ am_cv_python_pythondir=`$PYTHON -c " -+$am_python_setup_sysconfig -+if can_use_sysconfig: -+ if hasattr(sysconfig, 'get_default_scheme'): -+ scheme = sysconfig.get_default_scheme() -+ else: -+ scheme = sysconfig._get_default_scheme() -+ if scheme == 'posix_local': -+ # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ -+ scheme = 'posix_prefix' -+ sitedir = sysconfig.get_path('purelib', scheme, vars={'base':'$am_py_prefix'}) -+else: -+ from distutils import sysconfig -+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') -+sys.stdout.write(sitedir)"` -+ # -+ case $am_cv_python_pythondir in -+ $am_py_prefix*) -+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'` -+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"` -+ ;; -+ *) -+ case $am_py_prefix in -+ /usr|/System*) ;; -+ *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages" -+ ;; -+ esac -+ ;; -+ esac -+ ]) -+ AC_SUBST([pythondir], [$am_cv_python_pythondir]) -+ -+ dnl 2. pkgpythondir: $PACKAGE directory under pythondir. Was -+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is -+ dnl more consistent with the rest of automake. -+ dnl -+ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) -+ -+ dnl 3. pyexecdir: directory for installing python extension modules -+ dnl (shared libraries). -+ dnl Query distutils for this directory. -+ dnl -+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)], -+ [am_cv_python_pyexecdir], -+ [if test "x$am_cv_python_exec_prefix" = x; then -+ am_py_exec_prefix=$am__usable_exec_prefix -+ else -+ am_py_exec_prefix=$am_cv_python_exec_prefix -+ fi -+ am_cv_python_pyexecdir=`$PYTHON -c " -+$am_python_setup_sysconfig -+if can_use_sysconfig: -+ if hasattr(sysconfig, 'get_default_scheme'): -+ scheme = sysconfig.get_default_scheme() -+ else: -+ scheme = sysconfig._get_default_scheme() -+ if scheme == 'posix_local': -+ # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ -+ scheme = 'posix_prefix' -+ sitedir = sysconfig.get_path('platlib', scheme, vars={'platbase':'$am_py_exec_prefix'}) -+else: -+ from distutils import sysconfig -+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix') -+sys.stdout.write(sitedir)"` -+ # -+ case $am_cv_python_pyexecdir in -+ $am_py_exec_prefix*) -+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'` -+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"` -+ ;; -+ *) -+ case $am_py_exec_prefix in -+ /usr|/System*) ;; -+ *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages" -+ ;; -+ esac -+ ;; -+ esac -+ ]) -+ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) -+ -+ dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE) -+ dnl -+ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) -+ -+ dnl Run any user-specified action. -+ $2 -+ fi -+]) -+ -+ -+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) -+# --------------------------------------------------------------------------- -+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. -+# Run ACTION-IF-FALSE otherwise. -+# This test uses sys.hexversion instead of the string equivalent (first -+# word of sys.version), in order to cope with versions such as 2.2c1. -+# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000). -+AC_DEFUN([AM_PYTHON_CHECK_VERSION], -+ [prog="import sys -+# split strings by '.' and convert to numeric. Append some zeros -+# because we need at least 4 digits for the hex conversion. -+# map returns an iterator in Python 3.0 and a list in 2.x -+minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]] -+minverhex = 0 -+# xrange is not present in Python 3.0 and range returns an iterator -+for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]] -+sys.exit(sys.hexversion < minverhex)" -+ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) -diff --git a/src/modules/rlm_python3/m4/runlog.m4 b/src/modules/rlm_python3/m4/runlog.m4 -new file mode 100644 -index 0000000000..690efc3258 ---- /dev/null -+++ b/src/modules/rlm_python3/m4/runlog.m4 -@@ -0,0 +1,17 @@ -+## -*- Autoconf -*- -+# Copyright (C) 2001-2018 Free Software Foundation, Inc. -+# -+# This file is free software; the Free Software Foundation -+# gives unlimited permission to copy and/or distribute it, -+# with or without modifications, as long as this notice is preserved. -+ -+# AM_RUN_LOG(COMMAND) -+# ------------------- -+# Run COMMAND, save the exit status in ac_status, and log it. -+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -+AC_DEFUN([AM_RUN_LOG], -+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD -+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD -+ ac_status=$? -+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD -+ (exit $ac_status); }]) --- -2.25.1 - diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.3.bb index e3730cfaa6..7ea63a65d3 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.2.3.bb @@ -13,7 +13,7 @@ LICENSE = "GPL-2.0-only & LGPL-2.0-or-later" LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a" DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc" -SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.0.x;lfs=0;;protocol=https \ +SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.2.x;lfs=0;;protocol=https \ file://freeradius \ file://volatiles.58_radiusd \ file://radiusd.service \ @@ -34,12 +34,12 @@ SRC_URI = "git://github.com/FreeRADIUS/freeradius-server.git;branch=v3.0.x;lfs=0 file://0014-Workaround-error-with-autoconf-2.7.patch \ file://0015-bootstrap-check-commands-of-openssl-exist.patch \ file://0016-version.c-don-t-print-build-flags.patch \ - file://0017-add-python.m4-for-detecting-python-3.10.patch \ + file://0017-Add-acinclude.m4-to-include-required-macros.patch \ " raddbdir = "${sysconfdir}/${MLPREFIX}raddb" -SRCREV = "d956f683d37ea40e7977cc5907361f3e6988a439" +SRCREV = "db3d1924d9a2e8d37c43872932621f69cfdbb099" UPSTREAM_CHECK_GITTAGREGEX = "release_(?P<pver>\d+(\_\d+)+)" @@ -69,6 +69,7 @@ EXTRA_OECONF = " --enable-strict-dependencies \ --without-rlm_opendirectory \ --without-rlm_redis \ --without-rlm_rediswho \ + --without-rlm_cache_redis \ --without-rlm_sql_db2 \ --without-rlm_sql_firebird \ --without-rlm_sql_freetds \ @@ -103,7 +104,7 @@ PACKAGECONFIG[postgresql] = "--with-rlm_sql_postgresql,--without-rlm_sql_postgre PACKAGECONFIG[pcre] = "--with-pcre,--without-pcre,libpcre" PACKAGECONFIG[perl] = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl --with-rlm_perl,--without-rlm_perl,perl-native perl,perl" PACKAGECONFIG[python3] = "--with-rlm_python3 --with-rlm-python3-bin=${STAGING_BINDIR_NATIVE}/python3-native/python3 --with-rlm-python3-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python3,python3-native python3" -PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c" +PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest --without-rlm_json,curl json-c" PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby" PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl" PACKAGECONFIG[rlm-eap-fast] = "--with-rlm_eap_fast, --without-rlm_eap_fast" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.17.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.18.0.bb index a42d014f6c..75aaf521c4 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.17.0.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/libdnet/libdnet_1.18.0.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9" SRC_URI = "git://github.com/ofalk/libdnet.git;nobranch=1;protocol=https" -SRCREV = "912f7848bfff4ebc6d610f802a3144f84880cbe4" +SRCREV = "3dfbe889b1f65077efe579da34fc1d6819fcb7f3" UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.44.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.46.0.bb index 07a85b68ac..be30154a36 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.44.0.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.46.0.bb @@ -42,7 +42,7 @@ SRC_URI = " \ " SRC_URI:append:libc-musl = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' file://0001-linker-scripts-Do-not-export-_IO_stdin_used.patch', '', d)}" -SRC_URI[sha256sum] = "edca09637d182f806b3b12d8c5623d7badbd73ccca1ae63be20d2f298779fb9f" +SRC_URI[sha256sum] = "722649e25362693b334371473802a729b0ec9ee283375096905f868808e74068" S = "${WORKDIR}/NetworkManager-${PV}" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch deleted file mode 100644 index 8b286dfd14..0000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch +++ /dev/null @@ -1,79 +0,0 @@ -From c0546e351f6d7ab50eb1de8cef1d0d167760fccc Mon Sep 17 00:00:00 2001 -From: Peter Korsgaard <peter@korsgaard.com> -Date: Mon, 27 Aug 2018 22:50:57 +0200 -Subject: [PATCH] bn_mul.h: fix x86 PIC inline ASM compilation with GCC < 5 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes #1910 - -With ebx added to the MULADDC_STOP clobber list to fix #1550, the inline -assembly fails to build with GCC < 5 in PIC mode with the following error: - -include/mbedtls/bn_mul.h:46:13: error: PIC register clobbered by ‘ebx’ in ‘asm’ - -This is because older GCC versions treated the x86 ebx register (which is -used for the GOT) as a fixed reserved register when building as PIC. - -This is fixed by an improved register allocator in GCC 5+. From the release -notes: - -Register allocation improvements: Reuse of the PIC hard register, instead of -using a fixed register, was implemented on x86/x86-64 targets. This -improves generated PIC code performance as more hard registers can be used. - -https://www.gnu.org/software/gcc/gcc-5/changes.html - -As a workaround, detect this situation and disable the inline assembly, -similar to the MULADDC_CANNOT_USE_R7 logic. - -Upstream-Status: Backport [https://github.com/Mbed-TLS/mbedtls/commit/c0546e351f6d7ab50eb1de8cef1d0d167760fccc] -Signed-off-by: Peter Korsgaard <peter@korsgaard.com> ---- - library/bn_mul.h | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - ---- a/third_party/openthread/repo/third_party/mbedtls/repo/include/mbedtls/bn_mul.h -+++ b/third_party/openthread/repo/third_party/mbedtls/repo/include/mbedtls/bn_mul.h -@@ -95,12 +95,28 @@ - ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 ) - - /* -+ * GCC < 5.0 treated the x86 ebx (which is used for the GOT) as a -+ * fixed reserved register when building as PIC, leading to errors -+ * like: bn_mul.h:46:13: error: PIC register clobbered by 'ebx' in 'asm' -+ * -+ * This is fixed by an improved register allocator in GCC 5+. From the -+ * release notes: -+ * Register allocation improvements: Reuse of the PIC hard register, -+ * instead of using a fixed register, was implemented on x86/x86-64 -+ * targets. This improves generated PIC code performance as more hard -+ * registers can be used. -+ */ -+#if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__) -+#define MULADDC_CANNOT_USE_EBX -+#endif -+ -+/* - * Disable use of the i386 assembly code below if option -O0, to disable all - * compiler optimisations, is passed, detected with __OPTIMIZE__ - * This is done as the number of registers used in the assembly code doesn't - * work with the -O0 option. - */ --#if defined(__i386__) && defined(__OPTIMIZE__) -+#if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX) - - #define MULADDC_INIT \ - asm( \ ---- a/third_party/openthread/repo/third_party/mbedtls/repo/CMakeLists.txt -+++ b/third_party/openthread/repo/third_party/mbedtls/repo/CMakeLists.txt -@@ -210,7 +210,7 @@ if(CMAKE_COMPILER_IS_GNU) - endif(CMAKE_COMPILER_IS_GNU) - - if(CMAKE_COMPILER_IS_CLANG) -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral") -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wno-error=documentation") - set(CMAKE_C_FLAGS_RELEASE "-O2") - set(CMAKE_C_FLAGS_DEBUG "-O0 -g3") - set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage") diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch deleted file mode 100644 index 0824eb6b9a..0000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch +++ /dev/null @@ -1,23 +0,0 @@ -mbedtls: Disable documentation warning as error with clang - -There are shortcomings with doxygen info which clang-15+ flags, dont -treat them as errors - -Remove unused variable - -Fixes -library/bignum.c:1395:29: error: variable 't' set but not used [-Werror,-Wunused-but-set-variable] - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- a/third_party/openthread/repo/third_party/mbedtls/repo/library/bignum.c -+++ b/third_party/openthread/repo/third_party/mbedtls/repo/library/bignum.c -@@ -1392,7 +1392,7 @@ void mpi_mul_hlp( size_t i, - mbedtls_mpi_uint *d, - mbedtls_mpi_uint b ) - { -- mbedtls_mpi_uint c = 0, t = 0; -+ mbedtls_mpi_uint c = 0, t __attribute__ ((unused)) = 0; - - #if defined(MULADDC_HUIT) - for( ; i >= 8; i -= 8 ) diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch new file mode 100644 index 0000000000..279a60741f --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix/musl-fixes.patch @@ -0,0 +1,26 @@ +Musl fixes, which should be applied upstream too + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/src/dbus/common/types.hpp ++++ b/src/dbus/common/types.hpp +@@ -715,7 +715,7 @@ struct TrelInfo + }; + + bool mEnabled; ///< Whether TREL is enabled. +- u_int16_t mNumTrelPeers; ///< The number of TREL peers. ++ uint16_t mNumTrelPeers; ///< The number of TREL peers. + TrelPacketCounters mTrelCounters; ///< The TREL counters. + }; + +--- a/third_party/openthread/repo/src/posix/platform/CMakeLists.txt ++++ b/third_party/openthread/repo/src/posix/platform/CMakeLists.txt +@@ -172,7 +172,7 @@ target_link_libraries(openthread-posix + ) + + option(OT_TARGET_OPENWRT "enable openthread posix for OpenWRT" OFF) +-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT OT_TARGET_OPENWRT) ++if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT OT_TARGET_OPENWRT AND NOT OT_TARGET_MUSL) + target_compile_definitions(ot-posix-config + INTERFACE "OPENTHREAD_POSIX_CONFIG_NAT64_AIL_PREFIX_ENABLE=1" + ) diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb index 271340a25b..d7be1cd71d 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb @@ -11,15 +11,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=87109e44b2fda96a8991f27684a7349c \ file://third_party/openthread/repo/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \ " DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue protobuf protobuf-native" -SRCREV = "4e937939ba6ce146fd98537cb63e0f4c41c8dbe1" +SRCREV = "a35cc682305bb2201c314472adf06a4960536750" PV = "0.3.0+git" SRC_URI = "gitsm://github.com/openthread/ot-br-posix.git;protocol=https;branch=main \ file://0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch \ file://0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch \ - file://0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch \ - file://mbedtls.patch \ file://default-cxx-std.patch \ + file://musl-fixes.patch \ " S = "${WORKDIR}/git" @@ -56,6 +55,7 @@ EXTRA_OECMAKE = "-DBUILD_TESTING=OFF \ -DOT_DHCP6_CLIENT=ON \ -DOT_DHCP6_SERVER=ON \ " +EXTRA_OECMAKE:append:libc-musl = " -DOT_TARGET_MUSL=ON" RDEPENDS:${PN} = "iproute2 ipset avahi-daemon" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch deleted file mode 100644 index c9edb0098b..0000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c0546e351f6d7ab50eb1de8cef1d0d167760fccc Mon Sep 17 00:00:00 2001 -From: Peter Korsgaard <peter@korsgaard.com> -Date: Mon, 27 Aug 2018 22:50:57 +0200 -Subject: [PATCH] bn_mul.h: fix x86 PIC inline ASM compilation with GCC < 5 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes #1910 - -With ebx added to the MULADDC_STOP clobber list to fix #1550, the inline -assembly fails to build with GCC < 5 in PIC mode with the following error: - -include/mbedtls/bn_mul.h:46:13: error: PIC register clobbered by ‘ebx’ in ‘asm’ - -This is because older GCC versions treated the x86 ebx register (which is -used for the GOT) as a fixed reserved register when building as PIC. - -This is fixed by an improved register allocator in GCC 5+. From the release -notes: - -Register allocation improvements: Reuse of the PIC hard register, instead of -using a fixed register, was implemented on x86/x86-64 targets. This -improves generated PIC code performance as more hard registers can be used. - -https://www.gnu.org/software/gcc/gcc-5/changes.html - -As a workaround, detect this situation and disable the inline assembly, -similar to the MULADDC_CANNOT_USE_R7 logic. - -Upstream-Status: Backport [https://github.com/Mbed-TLS/mbedtls/commit/c0546e351f6d7ab50eb1de8cef1d0d167760fccc] -Signed-off-by: Peter Korsgaard <peter@korsgaard.com> ---- - library/bn_mul.h | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - ---- a/third_party/mbedtls/repo/include/mbedtls/bn_mul.h -+++ b/third_party/mbedtls/repo/include/mbedtls/bn_mul.h -@@ -55,12 +55,28 @@ - ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 ) - - /* -+ * GCC < 5.0 treated the x86 ebx (which is used for the GOT) as a -+ * fixed reserved register when building as PIC, leading to errors -+ * like: bn_mul.h:46:13: error: PIC register clobbered by 'ebx' in 'asm' -+ * -+ * This is fixed by an improved register allocator in GCC 5+. From the -+ * release notes: -+ * Register allocation improvements: Reuse of the PIC hard register, -+ * instead of using a fixed register, was implemented on x86/x86-64 -+ * targets. This improves generated PIC code performance as more hard -+ * registers can be used. -+ */ -+#if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__) -+#define MULADDC_CANNOT_USE_EBX -+#endif -+ -+/* - * Disable use of the i386 assembly code below if option -O0, to disable all - * compiler optimisations, is passed, detected with __OPTIMIZE__ - * This is done as the number of registers used in the assembly code doesn't - * work with the -O0 option. - */ --#if defined(__i386__) && defined(__OPTIMIZE__) -+#if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX) - - #define MULADDC_INIT \ - asm( \ diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch deleted file mode 100644 index ffaff48dd4..0000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch +++ /dev/null @@ -1,34 +0,0 @@ -mbedtls: Disable documentation warning as error with clang - -There are shortcomings with doxygen info which clang-15+ flags, dont -treat them as errors - -Remove unused variable - -Fixes -library/bignum.c:1395:29: error: variable 't' set but not used [-Werror,-Wunused-but-set-variable] - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- a/third_party/mbedtls/repo/library/bignum.c -+++ b/third_party/mbedtls/repo/library/bignum.c -@@ -1544,7 +1544,7 @@ __attribute__ ((noinline)) - #endif - void mpi_mul_hlp( size_t i, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d, mbedtls_mpi_uint b ) - { -- mbedtls_mpi_uint c = 0, t = 0; -+ mbedtls_mpi_uint c = 0, t __attribute__ ((unused)) = 0; - - #if defined(MULADDC_HUIT) - for( ; i >= 8; i -= 8 ) ---- a/third_party/mbedtls/repo/CMakeLists.txt -+++ b/third_party/mbedtls/repo/CMakeLists.txt -@@ -192,7 +192,7 @@ if(CMAKE_COMPILER_IS_GNU) - endif(CMAKE_COMPILER_IS_GNU) - - if(CMAKE_COMPILER_IS_CLANG) -- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla") -+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wno-error=documentation") - set(CMAKE_C_FLAGS_RELEASE "-O2") - set(CMAKE_C_FLAGS_DEBUG "-O0 -g3") - set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage") diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb index 1583a3f837..4456835410 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb @@ -5,15 +5,13 @@ SUMMARY = "OpenThread Daemon is an OpenThread POSIX build mode that runs OpenThr SECTION = "net" LICENSE = "BSD-3-Clause & Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=543b6fe90ec5901a683320a36390c65f \ - file://third_party/mbedtls/repo/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://third_party/mbedtls/repo/LICENSE;md5=379d5819937a6c2f1ef1630d341e026d \ " DEPENDS = "readline" -SRCREV = "7dfde1f12923f03c9680be4d838b94b7a2320324" +SRCREV = "90adc86d34e21a9e8f86d093c2190030042c4a59" PV = "0.1+git" SRC_URI = "git://github.com/openthread/openthread.git;protocol=https;branch=main \ - file://0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch \ - file://mbedtls.patch \ " S = "${WORKDIR}/git" @@ -27,3 +25,5 @@ EXTRA_OECMAKE = "-DOT_DAEMON=ON \ -DOT_PLATFORM=posix \ -DCMAKE_BUILD_TYPE=Release \ " + +EXTRA_OECMAKE:append:libc-musl = " -DOT_TARGET_OPENWRT=ON" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund/basename.patch b/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund/basename.patch new file mode 100644 index 0000000000..30bd9e59cf --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund/basename.patch @@ -0,0 +1,19 @@ +include libgen.h for getting prototype for basename() +Newer musl has remove prototype from string.h [1] +which renders a compile error with newer compilers like +clang 18+ about missing prototype. + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- a/third_party/openthread/tools/spi-hdlc-adapter/spi-hdlc-adapter.c ++++ b/third_party/openthread/tools/spi-hdlc-adapter/spi-hdlc-adapter.c +@@ -32,6 +32,7 @@ + #endif + + #include <assert.h> ++#include <libgen.h> + #include <stdio.h> + #include <stdlib.h> + #include <stdint.h> diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb index b75d686e58..6a84897426 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb @@ -12,10 +12,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e7820bc7f7d1638a6b54fc2e8d7fb103 \ file://third_party/pt/LICENSE;md5=dcd598b69cad786beea33da7b1ae14b7 \ " DEPENDS = "autoconf-archive dbus readline boost" -SRCREV = "0fb1f57e4224e2df3e630e146702bfcf63fbf07a" +SRCREV = "8b5ce64c2f5bbf106cabfd015bcb3bdb2e0248d3" PV = "0.07.01+git" SRC_URI = "gitsm://github.com/openthread/wpantund.git;protocol=https;branch=master \ + file://basename.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.19.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.19.5.bb index 9e02afd0fc..f5ef86dd4b 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.19.4.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.19.5.bb @@ -31,7 +31,7 @@ SRC_URI:append:libc-musl = " \ file://samba-4.3.9-remove-getpwent_r.patch \ " -SRC_URI[sha256sum] = "4026d93b866db198c8ca1685b0f5d52793f65c6e63cb364163af661fdff0968c" +SRC_URI[sha256sum] = "0e2405b4cec29d0459621f4340a1a74af771ec7cffedff43250cad7f1f87605e" UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.19(\.\d+)+).tar.gz" @@ -122,6 +122,7 @@ EXTRA_OECONF += "--enable-fhs \ --with-profiling-data \ --with-libiconv=${STAGING_DIR_HOST}${prefix} \ --with-pam --with-pammodulesdir=${base_libdir}/security \ + --pythondir=${PYTHON_SITEPACKAGES_DIR} \ " LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" diff --git a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.6.6.bb b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.7.0.bb index 4f7c6c357d..47c14dd1a1 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.6.6.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.7.0.bb @@ -13,7 +13,7 @@ PROVIDES += "cyassl" RPROVIDES:${PN} = "cyassl" SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https;branch=master" -SRCREV = "66596ad9e1d7efa8479656872cf09c9c1870a02e" +SRCREV = "8970ff4c34034dbb3594943d11f8c9d4c5512bd5" S = "${WORKDIR}/git" |