include $(TOPDIR)/rules.mk
PKG_NAME:=icu4c
-PKG_VERSION:=58.2
-PKG_RELEASE:=5
+PKG_VERSION:=59.1
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-58_2-src.tgz
+PKG_SOURCE:=$(PKG_NAME)-59_1-src.tgz
PKG_SOURCE_URL:=http://download.icu-project.org/files/$(PKG_NAME)/$(PKG_VERSION)
-PKG_MD5SUM:=fac212b32b7ec7ab007a12dff1f3aea1
+PKG_MD5SUM:=54923fa9fab5b2b83f235fb72523de37
+PKG_HASH:=7132fdaf9379429d004005217f10e00b7d2319d0fea22bdfddef8991c45b75fe
PKG_LICENSE:=ICU-1.8.1+
PKG_LICENSE_FILES:=LICENSE
index 9db6c52..6aa2273 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -180,7 +180,6 @@ install-icu: $(INSTALLED_BUILT_FILES)
+@@ -184,7 +184,6 @@ install-icu: $(INSTALLED_BUILT_FILES)
$(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh
@$(MKINSTALLDIRS) $(DESTDIR)$(libdir)/pkgconfig
$(INSTALL_DATA) $(ALL_PKGCONFIG_FILES) $(DESTDIR)$(libdir)/pkgconfig/
--- a/configure.ac
+++ b/configure.ac
-@@ -893,8 +893,8 @@
+@@ -883,8 +883,8 @@
AC_CHECK_FUNC(strtod_l)
if test x$ac_cv_func_strtod_l = xyes
then
U_HAVE_STRTOD_L=0
--- a/configure
+++ b/configure
-@@ -7053,8 +7053,8 @@
+@@ -7093,8 +7093,8 @@
if test x$ac_cv_func_strtod_l = xyes
then
CMAKE_OPTIONS:= -DBUILD_TESTS=0 -DBUILD_EXAMPLES=0
CMAKE_OPTIONS+= -DHAVE_WORDS_BIGENDIAN_EXITCODE=$(if $(CONFIG_BIG_ENDIAN),0,1)
+CMAKE_OPTIONS+= -DWITH_OPENMP=0
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
PKG_NAME:=adblock
PKG_VERSION:=2.6.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
option adb_enabled '1'
option adb_debug '0'
option adb_iface 'wan'
- option adb_triggerdelay '1'
+ option adb_triggerdelay '2'
option adb_whitelist '/etc/adblock/adblock.whitelist'
option adb_whitelist_rset '\$1 ~/^([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\"^\"\$1\"\\\|[.]\"\$1)}'
option adb_backup '0'
#!/bin/sh /etc/rc.common
#
-START=90
+START=50
USE_PROCD=1
EXTRA_COMMANDS="suspend resume query status"
local iface="$(uci -q get adblock.global.adb_iface)"
local delay="$(uci -q get adblock.global.adb_triggerdelay)"
- PROCD_RELOAD_DELAY=$((${delay:=1} * 1000))
+ PROCD_RELOAD_DELAY=$((${delay:=2} * 1000))
for name in ${iface}
do
procd_add_interface_trigger "interface.*.up" "${name}" "${adb_init}" start
done
+ PROCD_RELOAD_DELAY=1000
procd_add_config_trigger "config.change" "adblock" "${adb_init}" start
}
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="2.6.0"
+adb_ver="2.6.0-2"
adb_sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
adb_enabled=1
adb_debug=0
PKG_NAME:=ser2net
PKG_VERSION:=3.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/ser2net
--- /dev/null
+From 8614cf0ad4a017184285e814a704322f59a28869 Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Wed, 12 Apr 2017 23:36:17 +0200
+Subject: [PATCH] dataxfer.c: fix possible buffer overruns caused by
+ gai_strerror
+
+This fixes a possible buffer overrun that could occur due to
+gai_strerror() returning a string which is longer than the portbuff
+array, i.e. longer than 32 byte.
+
+Reported-by: David Thornley <david.thornley@touchstargroup.com>
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 3d1e713..988f4e4 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3702,18 +3702,20 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ portbuff, sizeof(portbuff),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (err) {
+- strcpy(buffer, "*err*");
+- sprintf(portbuff, "%s", gai_strerror(err));
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ count = controller_outputf(cntlr, "%s", buffer);
++ } else {
++ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+ }
+- bytes_recv = netcon->bytes_received;
+- bytes_sent = netcon->bytes_sent;
+
+- count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+ while (count < 23) {
+ controller_outs(cntlr, " ");
+ count++;
+ }
+
++ bytes_recv = netcon->bytes_received;
++ bytes_sent = netcon->bytes_sent;
++
+ controller_outputf(cntlr, "%-22s ", port->io.devname);
+ controller_outputf(cntlr, "%-14s ", state_str[port->net_to_dev_state]);
+ controller_outputf(cntlr, "%-14s ", state_str[port->dev_to_net_state]);
+@@ -3758,11 +3760,12 @@ showport(struct controller_info *cntlr, port_info_t *port)
+ portbuff, sizeof(portbuff),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (err) {
+- strcpy(buffer, "*err*");
+- sprintf(portbuff, "%s", gai_strerror(err));
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ controller_outputf(cntlr, " connected to: %s\r\n", buffer);
++ } else {
++ controller_outputf(cntlr, " connected to: %s,%s\r\n",
++ buffer, portbuff);
+ }
+- controller_outputf(cntlr, " connected to: %s,%s\r\n",
+- buffer, portbuff);
+ controller_outputf(cntlr, " bytes read from TCP: %d\r\n",
+ netcon->bytes_received);
+ controller_outputf(cntlr, " bytes written to TCP: %d\r\n",
+--
+2.7.4
+
--- /dev/null
+From b303432f2dbd6a20afa99cb462aa0a1bb740b86d Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Wed, 12 Apr 2017 23:43:18 +0200
+Subject: [PATCH] dataxfer.c: truncate error message to fit the column width
+
+gai_strerror() could return a string which is longer than our current
+column width of "Remote address". To make the output nice again,
+truncate the error string in this case.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 988f4e4..75c2777 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3703,6 +3703,10 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (err) {
+ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ /* gai_strerror could return an elongated string which could break
++ our pretty formatted output below, so truncate the string nicely */
++ if (strlen(buffer) > 22)
++ strcpy(&buffer[22 - 3], "...");
+ count = controller_outputf(cntlr, "%s", buffer);
+ } else {
+ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+--
+2.7.4
+
--- /dev/null
+From 81f3991e232fd45b05ff52b5091393532e4305e5 Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Thu, 13 Apr 2017 20:29:10 +0200
+Subject: [PATCH] dataxfer.c: adjust "Remote address" column width
+
+In case we are connected to an IPv6 address the current column width
+is too small to take the complete address and port number so adjust it.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 75c2777..9955403 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3674,6 +3674,9 @@ clear_old_port_config(int curr_config)
+ UNLOCK(ports_lock);
+ }
+
++#define REMOTEADDR_COLUMN_WIDTH \
++ (INET6_ADDRSTRLEN - 1 /* terminating NUL */ + 1 /* comma */ + 5 /* strlen("65535") */)
++
+ /* Print information about a port to the control port given in cntlr. */
+ static void
+ showshortport(struct controller_info *cntlr, port_info_t *port)
+@@ -3705,14 +3708,14 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
+ /* gai_strerror could return an elongated string which could break
+ our pretty formatted output below, so truncate the string nicely */
+- if (strlen(buffer) > 22)
+- strcpy(&buffer[22 - 3], "...");
++ if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
++ strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
+ count = controller_outputf(cntlr, "%s", buffer);
+ } else {
+ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+ }
+
+- while (count < 23) {
++ while (count < REMOTEADDR_COLUMN_WIDTH + 1) {
+ controller_outs(cntlr, " ");
+ count++;
+ }
+@@ -3878,10 +3881,11 @@ showshortports(struct controller_info *cntlr, char *portspec)
+ port_info_t *port;
+
+ controller_outputf(cntlr,
+- "%-22s %-6s %7s %-22s %-22s %-14s %-14s %9s %9s %9s %9s %s\r\n",
++ "%-22s %-6s %7s %-*s %-22s %-14s %-14s %9s %9s %9s %9s %s\r\n",
+ "Port name",
+ "Type",
+ "Timeout",
++ REMOTEADDR_COLUMN_WIDTH,
+ "Remote address",
+ "Device",
+ "TCP to device",
+--
+2.7.4
+
--- /dev/null
+From 1479d3acc7ffb77225ea294f83a8d3fbdadfece6 Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Thu, 13 Apr 2017 20:37:35 +0200
+Subject: [PATCH] dataxfer.c: in case port is not connected display this
+ directly
+
+In this case we don't bother to call into getnameinfo but show
+directly "unconnected", this prevents showing an error message.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 9955403..d6a59d9 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3700,19 +3700,23 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ if (!netcon)
+ netcon = &(port->netcons[0]);
+
+- err = getnameinfo(netcon->raddr, netcon->raddrlen,
+- buffer, sizeof(buffer),
+- portbuff, sizeof(portbuff),
+- NI_NUMERICHOST | NI_NUMERICSERV);
+- if (err) {
+- snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
+- /* gai_strerror could return an elongated string which could break
+- our pretty formatted output below, so truncate the string nicely */
+- if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
+- strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
+- count = controller_outputf(cntlr, "%s", buffer);
++ if (port->net_to_dev_state != PORT_UNCONNECTED) {
++ err = getnameinfo(netcon->raddr, netcon->raddrlen,
++ buffer, sizeof(buffer),
++ portbuff, sizeof(portbuff),
++ NI_NUMERICHOST | NI_NUMERICSERV);
++ if (err) {
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ /* gai_strerror could return an elongated string which could break
++ our pretty formatted output below, so truncate the string nicely */
++ if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
++ strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
++ count = controller_outputf(cntlr, "%s", buffer);
++ } else {
++ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
++ }
+ } else {
+- count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
++ count = controller_outputf(cntlr, "unconnected");
+ }
+
+ while (count < REMOTEADDR_COLUMN_WIDTH + 1) {
+@@ -3762,21 +3766,25 @@ showport(struct controller_info *cntlr, port_info_t *port)
+ controller_outputf(cntlr, " timeout: %d\r\n", port->timeout);
+
+ for_each_connection(port, netcon) {
+- err = getnameinfo(netcon->raddr, netcon->raddrlen,
+- buffer, sizeof(buffer),
+- portbuff, sizeof(portbuff),
+- NI_NUMERICHOST | NI_NUMERICSERV);
+- if (err) {
+- snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
+- controller_outputf(cntlr, " connected to: %s\r\n", buffer);
++ if (port->net_to_dev_state != PORT_UNCONNECTED) {
++ err = getnameinfo(netcon->raddr, netcon->raddrlen,
++ buffer, sizeof(buffer),
++ portbuff, sizeof(portbuff),
++ NI_NUMERICHOST | NI_NUMERICSERV);
++ if (err) {
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ controller_outputf(cntlr, " connected to: %s\r\n", buffer);
++ } else {
++ controller_outputf(cntlr, " connected to: %s,%s\r\n",
++ buffer, portbuff);
++ }
++ controller_outputf(cntlr, " bytes read from TCP: %d\r\n",
++ netcon->bytes_received);
++ controller_outputf(cntlr, " bytes written to TCP: %d\r\n",
++ netcon->bytes_sent);
+ } else {
+- controller_outputf(cntlr, " connected to: %s,%s\r\n",
+- buffer, portbuff);
++ controller_outputf(cntlr, " unconnected\r\n");
+ }
+- controller_outputf(cntlr, " bytes read from TCP: %d\r\n",
+- netcon->bytes_received);
+- controller_outputf(cntlr, " bytes written to TCP: %d\r\n",
+- netcon->bytes_sent);
+ }
+
+ controller_outputf(cntlr, " device: %s\r\n", port->io.devname);
+--
+2.7.4
+
# PKG_VERSION:=0.5.8
PKG_BASE_VERSION:=0.5.8
PKG_VERSION:=$(PKG_BASE_VERSION)+git2070222
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/lcdproc/lcdproc.git
# not everything groks --disable-nls
-CONFIGURE_ARGS := $(filter-out --%-nls,$(CONFIGURE_ARGS))
+DISABLE_NLS:=
CONFIGURE_ARGS += \
--disable-libX11 \