diff --git a/frr-10.0-libyang-2.2.8.patch b/frr-10.0-libyang-2.2.8.patch deleted file mode 100644 index 5da0b94..0000000 --- a/frr-10.0-libyang-2.2.8.patch +++ /dev/null @@ -1,206 +0,0 @@ -diff -ru frr-10.0.orig/lib/vty.c frr-10.0/lib/vty.c ---- frr-10.0.orig/lib/vty.c 2024-05-16 12:29:42.000000000 +0200 -+++ frr-10.0/lib/vty.c 2024-05-16 13:22:41.208287747 +0200 -@@ -39,6 +39,7 @@ - #include "libfrr.h" - #include "frrstr.h" - #include "lib_errors.h" -+#include - #include "northbound_cli.h" - #include "printfrr.h" - #include "json.h" -@@ -3668,15 +3669,24 @@ - } - - static void vty_out_yang_error(struct vty *vty, LYD_FORMAT format, -- struct ly_err_item *ei) -+ const struct ly_err_item *ei) - { -+#if (LY_VERSION_MAJOR < 3) -+#define data_path path -+#else -+#define data_path data_path -+#endif - bool have_apptag = ei->apptag && ei->apptag[0] != 0; -- bool have_path = ei->path && ei->path[0] != 0; -+ bool have_path = ei->data_path && ei->data_path[0] != 0; - bool have_msg = ei->msg && ei->msg[0] != 0; - const char *severity = NULL; - const char *evalid = NULL; - const char *ecode = NULL; -+#if (LY_VERSION_MAJOR < 3) - LY_ERR err = ei->no; -+#else -+ LY_ERR err = ei->err; -+#endif - - if (ei->level == LY_LLERR) - severity = "error"; -@@ -3701,7 +3711,8 @@ - vty_out(vty, "%s\n", - evalid); - if (have_path) -- vty_out(vty, "%s\n", ei->path); -+ vty_out(vty, "%s\n", -+ ei->data_path); - if (have_apptag) - vty_out(vty, "%s\n", - ei->apptag); -@@ -3720,7 +3731,7 @@ - if (evalid) - vty_out(vty, ", \"error-validation\": \"%s\"", evalid); - if (have_path) -- vty_out(vty, ", \"error-path\": \"%s\"", ei->path); -+ vty_out(vty, ", \"error-path\": \"%s\"", ei->data_path); - if (have_apptag) - vty_out(vty, ", \"error-app-tag\": \"%s\"", ei->apptag); - if (have_msg) -@@ -3737,18 +3748,19 @@ - if (evalid) - vty_out(vty, " invalid: %s", evalid); - if (have_path) -- vty_out(vty, " path: %s", ei->path); -+ vty_out(vty, " path: %s", ei->data_path); - if (have_apptag) - vty_out(vty, " app-tag: %s", ei->apptag); - if (have_msg) - vty_out(vty, " msg: %s", ei->msg); - break; - } -+#undef data_path - } - - static uint vty_out_yang_errors(struct vty *vty, LYD_FORMAT format) - { -- struct ly_err_item *ei = ly_err_first(ly_native_ctx); -+ const struct ly_err_item *ei = ly_err_first(ly_native_ctx); - uint count; - - if (!ei) -diff -ru frr-10.0.orig/lib/yang.c frr-10.0/lib/yang.c ---- frr-10.0.orig/lib/yang.c 2024-05-16 12:29:42.000000000 +0200 -+++ frr-10.0/lib/yang.c 2024-05-16 13:22:41.209287749 +0200 -@@ -11,6 +11,7 @@ - #include "lib_errors.h" - #include "yang.h" - #include "yang_translator.h" -+#include - #include "northbound.h" - - #include "lib/config_paths.h" -@@ -18,6 +19,17 @@ - DEFINE_MTYPE_STATIC(LIB, YANG_MODULE, "YANG module"); - DEFINE_MTYPE_STATIC(LIB, YANG_DATA, "YANG data structure"); - -+/* Safe to remove after libyang 2.2.8 */ -+#if (LY_VERSION_MAJOR < 3) -+#define yang_lyd_find_xpath3(ctx_node, tree, xpath, format, prefix_data, vars, \ -+ set) \ -+ lyd_find_xpath3(ctx_node, tree, xpath, vars, set) -+#else -+#define yang_lyd_find_xpath3(ctx_node, tree, xpath, format, prefix_data, vars, \ -+ set) \ -+ lyd_find_xpath3(ctx_node, tree, xpath, LY_VALUE_JSON, NULL, vars, set) -+#endif -+ - /* libyang container. */ - struct ly_ctx *ly_native_ctx; - -@@ -691,7 +703,12 @@ - } - - /* Make libyang log its errors using FRR logging infrastructure. */ --static void ly_log_cb(LY_LOG_LEVEL level, const char *msg, const char *path) -+static void ly_zlog_cb(LY_LOG_LEVEL level, const char *msg, const char *data_path -+#if !(LY_VERSION_MAJOR < 3) -+ , -+ const char *schema_path, uint64_t line -+#endif -+) - { - int priority = LOG_ERR; - -@@ -708,8 +725,14 @@ - break; - } - -- if (path) -- zlog(priority, "libyang: %s (%s)", msg, path); -+ if (data_path) -+ zlog(priority, "libyang: %s (%s)", msg, data_path); -+#if !(LY_VERSION_MAJOR < 3) -+ else if (schema_path) -+ zlog(priority, "libyang %s (%s)\n", msg, schema_path); -+ else if (line) -+ zlog(priority, "libyang %s (line %" PRIu64 ")\n", msg, line); -+#endif - else - zlog(priority, "libyang: %s", msg); - } -@@ -736,7 +759,8 @@ - return err; - } - -- err = lyd_find_xpath3(NULL, tree, xpath, NULL, &set); -+ err = yang_lyd_find_xpath3(NULL, tree, xpath, LY_VALUE_JSON, NULL, NULL, -+ &set); - if (err) { - zlog_err("Failed to parse notification: %s", ly_last_errmsg()); - lyd_free_all(tree); -@@ -829,23 +853,29 @@ - - const char *yang_print_errors(struct ly_ctx *ly_ctx, char *buf, size_t buf_len) - { -- struct ly_err_item *ei; -+ const struct ly_err_item *ei; - - ei = ly_err_first(ly_ctx); - if (!ei) - return ""; - - strlcpy(buf, "YANG error(s):\n", buf_len); -+#if (LY_VERSION_MAJOR < 3) -+#define data_path path -+#else -+#define data_path data_path -+#endif - for (; ei; ei = ei->next) { -- if (ei->path) { -+ if (ei->data_path) { - strlcat(buf, " Path: ", buf_len); -- strlcat(buf, ei->path, buf_len); -+ strlcat(buf, ei->data_path, buf_len); - strlcat(buf, "\n", buf_len); - } - strlcat(buf, " Error: ", buf_len); - strlcat(buf, ei->msg, buf_len); - strlcat(buf, "\n", buf_len); - } -+#undef data_path - - ly_err_clean(ly_ctx, NULL); - -@@ -897,7 +927,12 @@ - void yang_init(bool embedded_modules, bool defer_compile) - { - /* Initialize libyang global parameters that affect all containers. */ -- ly_set_log_clb(ly_log_cb, 1); -+ ly_set_log_clb(ly_zlog_cb -+#if (LY_VERSION_MAJOR < 3) -+ , -+ 1 -+#endif -+ ); - ly_log_options(LY_LOLOG | LY_LOSTORE); - - /* Initialize libyang container for native models. */ -@@ -1209,7 +1244,8 @@ - - *root = lyd_first_sibling(*root); - -- err = lyd_find_xpath3(NULL, *root, xpath, NULL, &set); -+ err = yang_lyd_find_xpath3(NULL, *root, xpath, LY_VALUE_JSON, NULL, -+ NULL, &set); - if (err) { - flog_err_sys(EC_LIB_LIBYANG, - "cannot obtain specific result for xpath \"%s\": %s", diff --git a/frr.spec b/frr.spec index f470fce..7bbcada 100644 --- a/frr.spec +++ b/frr.spec @@ -1,5 +1,5 @@ Name: frr -Version: 10.0.1 +Version: 10.1.1 Release: 1mamba Summary: Routing protocol suite supporting BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP, BFD, VRRP, NHRP and EIGRP Group: Applications/Networking @@ -10,10 +10,10 @@ URL: https://frrouting.org/ Source: https://github.com/FRRouting/frr.git/frr-%{version}/frr-%{version}.tar.bz2 Source1: frr-sysusers.conf Source2: frr-tmpfiles.conf -Patch0: frr-10.0-libyang-2.2.8.patch License: GPL-2.0 ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel +BuildRequires: libatomic-devel BuildRequires: libcap-devel BuildRequires: libcares-devel BuildRequires: libjson-c-devel @@ -66,7 +66,6 @@ This package contains libraries and header files for developing applications tha # Fix some paths sed -ri 's|/var/run/frr|/run/frr|g' redhat/frr.logrotate sed -ri 's|/usr/lib/frr|/usr/bin|g' tools/frr-reload -%patch 0 -p1 -b .libyang-2.2.8 autoreconf -f -i @@ -126,8 +125,6 @@ install -D -m0644 tools/etc/frr/vtysh.conf -t %{buildroot}%{_sysconfdir}/frr %systemd_postun_with_restart frr : -%post -n lib%{name} -p /sbin/ldconfig -%postun -n lib%{name} -p /sbin/ldconfig %files %defattr(-,root,root) @@ -143,6 +140,7 @@ install -D -m0644 tools/etc/frr/vtysh.conf -t %{buildroot}%{_sysconfdir}/frr %{_bindir}/bgpd %{_bindir}/eigrpd %{_bindir}/fabricd +%{_bindir}/fpm_listener %{_bindir}/frr %{_bindir}/frr-reload %{_bindir}/frr-reload.py @@ -232,6 +230,9 @@ install -D -m0644 tools/etc/frr/vtysh.conf -t %{buildroot}%{_sysconfdir}/frr %doc README.md %changelog +* Mon Sep 16 2024 Automatic Build System 10.1.1-1mamba +- automatic version update by autodist + * Fri Jun 07 2024 Automatic Build System 10.0.1-1mamba - automatic version update by autodist