From 33181c98a429ad6f7481d5af99bb1f2ec35499bc Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sat, 8 Jan 2022 20:34:27 -0800 Subject: [PATCH] knxd: fix compilation with newer glibc the link variable conflicts with the link() function. Signed-off-by: Rosen Penev --- net/knxd/Makefile | 2 +- net/knxd/patches/010-link.patch | 138 ++++++++++++++++++++++++++++++++ 2 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 net/knxd/patches/010-link.patch diff --git a/net/knxd/Makefile b/net/knxd/Makefile index 2781e6a45..6c93b78ce 100644 --- a/net/knxd/Makefile +++ b/net/knxd/Makefile @@ -12,7 +12,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=knxd PKG_VERSION:=0.14.52 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/knxd/knxd/tar.gz/$(PKG_VERSION)? diff --git a/net/knxd/patches/010-link.patch b/net/knxd/patches/010-link.patch new file mode 100644 index 000000000..787f707f8 --- /dev/null +++ b/net/knxd/patches/010-link.patch @@ -0,0 +1,138 @@ +--- a/src/server/knxd_args.cpp ++++ b/src/server/knxd_args.cpp +@@ -68,13 +68,13 @@ struct L2options + } while(0) + + IniData ini; +-char link[99] = "@."; ++char link2[99] = "@."; + void link_to(const char *arg) + { + char *p; +- ++*link; +- strcpy(link+2,arg); +- p = strchr(link+2,':'); ++ ++*link2; ++ strcpy(link2+2,arg); ++ p = strchr(link2+2,':'); + if (p) + *p = 0; + } +@@ -163,10 +163,10 @@ public: + { + link_to(name); + ITER(i, more_args) +- (*ini[link])[i->first] = i->second; +- (*ini[link])["filter"] = name; ++ (*ini[link2])[i->first] = i->second; ++ (*ini[link2])["filter"] = name; + more_args.clear(); +- filters.push_back(link); ++ filters.push_back(link2); + } + else + filters.push_back(name); +@@ -232,7 +232,7 @@ void driver_argsv(const char *arg, char + { + va_list apl; + va_start(apl, ap); +- (*ini[link])["driver"] = arg; ++ (*ini[link2])["driver"] = arg; + char *pa = NULL; + + while(ap) +@@ -250,7 +250,7 @@ void driver_argsv(const char *arg, char + if (*pa == '!') // required-argument flag + pa++; + if (*ap) // skip empty arguments +- (*ini[link])[pa] = ap; ++ (*ini[link2])[pa] = ap; + ap = p2; + } + if (pa != NULL) +@@ -280,7 +280,7 @@ void driver_args(const char *arg, char * + else if(!strcmp(arg,"iptn")) + { + driver_argsv("ipt",ap, "!ip-address","dest-port","src-port","nat-ip","data-port", NULL); +- (*ini[link])["nat"] = "true"; ++ (*ini[link2])["nat"] = "true"; + } + else if(!strcmp(arg,"ft12") || !strcmp(arg,"ncn5120") || !strcmp(arg,"tpuarts") || !strcmp(arg,"ft12cemi") || !strcmp(arg,"tpuart")) + { +@@ -556,18 +556,18 @@ parse_opt (int key, char *arg, struct ar + if (arguments->want_server) + die("You need -S after -D/-T/-R"); + link_to("unix"); +- ADD((*ini["main"])["connections"], link); +- (*ini[link])["server"] = "knxd_unix"; ++ ADD((*ini["main"])["connections"], link2); ++ (*ini[link2])["server"] = "knxd_unix"; + // (*ini[link])["driver"] = "knx-link"; + const char *name = OPT_ARG(arg,state,NULL); + if (name) + { +- (*ini[link])["path"] = name; +- (*ini[link])["systemd-ignore"] = "false"; ++ (*ini[link2])["path"] = name; ++ (*ini[link2])["systemd-ignore"] = "false"; + } + else +- (*ini[link])["systemd-ignore"] = "true"; +- arguments->stack(link); ++ (*ini[link2])["systemd-ignore"] = "true"; ++ arguments->stack(link2); + } + break; + +@@ -576,19 +576,19 @@ parse_opt (int key, char *arg, struct ar + if (arguments->want_server) + die("You need -S after -D/-T/-R"); + link_to("tcp"); +- ADD((*ini["main"])["connections"], link); +- (*ini[link])["server"] = "knxd_tcp"; ++ ADD((*ini["main"])["connections"], link2); ++ (*ini[link2])["server"] = "knxd_tcp"; + // (*ini[link])["driver"] = "knx-link"; + const char *port = OPT_ARG(arg,state,""); + if (*port && atoi(port) > 0) + { +- (*ini[link])["port"] = port; +- (*ini[link])["systemd-ignore"] = "false"; ++ (*ini[link2])["port"] = port; ++ (*ini[link2])["systemd-ignore"] = "false"; + } + else +- (*ini[link])["systemd-ignore"] = "true"; ++ (*ini[link2])["systemd-ignore"] = "true"; + +- arguments->stack(link); ++ arguments->stack(link2); + } + break; + +@@ -635,8 +635,8 @@ parse_opt (int key, char *arg, struct ar + die("You cannot apply flags to the group cache."); + + link_to("cache"); +- (*ini["main"])["cache"] = link; +- arguments->stack(link); ++ (*ini["main"])["cache"] = link2; ++ arguments->stack(link2); + break; + case OPT_FORCE_BROADCAST: + (*ini["main"])["force-broadcast"] = "true"; +@@ -675,12 +675,12 @@ parse_opt (int key, char *arg, struct ar + if (arguments->want_server) + die("You need -S after -D/-T/-R"); + link_to(arg); +- ADD((*ini["main"])["connections"], link); ++ ADD((*ini["main"])["connections"], link2); + char *ap = strchr(arg,':'); + if (ap) + *ap++ = '\0'; + driver_args(arg,ap); +- arguments->stack(link); ++ arguments->stack(link2); + break; + } + case 'B':