Merge pull request #3749 from mwarning/add-zerotier-package
authorHannu Nyman <hannu.nyman@iki.fi>
Sat, 7 Jan 2017 10:08:13 +0000 (12:08 +0200)
committerGitHub <noreply@github.com>
Sat, 7 Jan 2017 10:08:13 +0000 (12:08 +0200)
zerotier: add initial package

53 files changed:
admin/syslog-ng/Makefile [new file with mode: 0644]
admin/syslog-ng/files/syslog-ng.conf [new file with mode: 0644]
admin/syslog-ng/files/syslog-ng.init [new file with mode: 0644]
kernel/exfat-nofuse/Makefile
lang/python/Makefile
lang/python/files/python-host.mk
lang/python/files/python-package-dev.mk
lang/python/files/python-package.mk
lang/python/files/python-version.mk
lang/python/patches/012-disable-openssl-for-hashlib-on-host-build.patch [new file with mode: 0644]
lang/python3/Makefile
lang/python3/files/python3-host.mk [new file with mode: 0644]
lang/python3/files/python3-package-dev.mk
lang/python3/files/python3-package-lib2to3.mk
lang/python3/files/python3-package.mk
libs/boost/Makefile
libs/boost/patches/01_fiber_fix.patch
libs/eventlog/Makefile [new file with mode: 0644]
libs/poco/Makefile
libs/sqlite3/Makefile
net/adblock/Makefile
net/adblock/files/README.md
net/adblock/files/adblock.sh
net/keepalived/Makefile
net/keepalived/files/keepalived.config
net/keepalived/patches/101-0001-vrrp-update-struct-msghdr.patch [new file with mode: 0644]
net/keepalived/patches/101-0002-Reinstate-initialisation-of-msghdr-fields.patch [new file with mode: 0644]
net/net-snmp/Makefile
net/net-snmp/files/snmpd.conf
net/net-snmp/files/snmpd.init
net/net-snmp/patches/100-debian-statistics.patch
net/net-snmp/patches/110-debian-makefiles.patch
net/net-snmp/patches/120-debian-searchdirs.patch
net/net-snmp/patches/130-debian-extramibs.patch
net/net-snmp/patches/160-no_ldconfig.patch
net/net-snmp/patches/170-ldflags.patch
net/net-snmp/patches/800-format-security.patch [deleted file]
net/sngrep/Makefile
sound/mocp/Makefile
sound/pianod/Makefile
sound/pianod/patches/005-Remove_svn_version_query.patch [deleted file]
sound/pianod/patches/010-Configure_add_SSL_options.patch [deleted file]
sound/pianod/patches/020-Use_package_config_h_for_all_modules.patch [deleted file]
sound/pianod/patches/030-Waitress_add_polarssl_variant.patch [deleted file]
sound/sox/Makefile
sound/sox/patches/001-cross_compile.patch
sound/sox/patches/010-fix_uclibc_build_issue.patch
sound/sox/patches/020-ffmpeg-0.11.patch [deleted file]
sound/sox/patches/020-ffmpeg-2.x.patch [deleted file]
utils/ccrypt/Makefile
utils/grep/Makefile
utils/haveged/Makefile
utils/tmux/Makefile

diff --git a/admin/syslog-ng/Makefile b/admin/syslog-ng/Makefile
new file mode 100644 (file)
index 0000000..d1a3451
--- /dev/null
@@ -0,0 +1,70 @@
+include  $(TOPDIR)/rules.mk
+
+PKG_NAME:=syslog-ng
+PKG_VERSION:=3.8.1
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/balabit/syslog-ng/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
+PKG_MD5SUM:=acf14563cf5ce435db8db35486ce66af
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/syslog-ng
+  SECTION:=admin
+  CATEGORY:=Administration
+  DEPENDS:=+libpcre +glib2 +libeventlog +libopenssl +libuuid
+  TITLE:=A powerful syslog daemon
+  URL:=http://www.balabit.com/network-security/syslog-ng/opensource-logging-system/
+endef
+
+define Package/syslog-ng/description
+  syslog-ng reads and logs messages to the system console, log
+  files, other machines and/or users as specified by its
+  configuration file.
+endef
+
+define Package/syslog-ng/conffiles
+  /etc/syslog-ng.conf
+endef
+
+define Build/Configure
+       $(SED) 's,-I/usr/include,,' $(PKG_BUILD_DIR)/configure
+       $(Build/Configure/Default)
+endef
+
+CONFIGURE_ARGS += \
+  $(call autoconf_bool,CONFIG_IPV6,ipv6) \
+         --disable-dependency-tracking \
+         --disable-tcp-wrapper \
+         --disable-glibtest \
+         --disable-mongodb \
+         --disable-java \
+         --disable-spoof-source \
+         --disable-sql \
+         --disable-linux-caps \
+         --enable-prce \
+
+TARGET_CPPFLAGS += \
+  -I$(STAGING_DIR)/usr/include/eventlog
+
+CONFIGURE_VARS += \
+  LIBDBI_CFLAGS="-I$(STAGING_DIR)/usr/include"
+
+define Package/syslog-ng/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsyslog-ng-3.8.so* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/syslog-ng $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/syslog-ng.init $(1)/etc/init.d/syslog-ng
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_DATA) ./files/syslog-ng.conf $(1)/etc
+endef
+
+$(eval $(call BuildPackage,syslog-ng))
diff --git a/admin/syslog-ng/files/syslog-ng.conf b/admin/syslog-ng/files/syslog-ng.conf
new file mode 100644 (file)
index 0000000..972848c
--- /dev/null
@@ -0,0 +1,37 @@
+@version:3.0
+
+options {
+       chain_hostnames(no);
+       create_dirs(yes);
+       flush_lines(0);
+       keep_hostname(yes);
+       log_fifo_size(256);
+       log_msg_size(1024);
+       stats_freq(0);
+       flush_lines(0);
+       use_fqdn(no);
+};
+
+source src {
+       internal();
+       unix-stream("/dev/log");
+};
+
+source net {
+       udp(ip(0.0.0.0) port(514));
+};
+
+source kernel {
+        file("/proc/kmsg" program_override("kernel"));
+};
+
+destination messages {
+       file("/var/log/messages");
+};
+
+log {
+       source(src);
+       source(net);
+        source(kernel);
+       destination(messages);
+};
diff --git a/admin/syslog-ng/files/syslog-ng.init b/admin/syslog-ng/files/syslog-ng.init
new file mode 100644 (file)
index 0000000..975d382
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006-2016 OpenWrt.org
+
+START=50
+
+SERVICE_USE_PID=1
+
+start() {
+       [ -f /etc/syslog-ng.conf ] || return 1
+       service_start /usr/sbin/syslog-ng
+}
+
+stop() {
+       service_stop /usr/sbin/syslog-ng
+}
+
+reload() {
+       service_reload /usr/sbin/syslog-ng
+}
index 694ad1e2d463146bb55bd68792bc4ae9aa3186e1..6167d25ce65f502002c0e1217085a634d8d0a7aa 100644 (file)
@@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=exfat-nofuse
-PKG_VERSION=2016-09-26-$(PKG_SOURCE_VERSION)
+PKG_VERSION=2017-01-03-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
-PKG_SOURCE=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/dorimanx/exfat-nofuse.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=051167ceccbe75d9d77fc4f5356f5a39a01779e8
+PKG_SOURCE_VERSION:=8d291f525ce6d88fe0d8b11b86fd5c2e900401d3
 
 PKG_MAINTAINER:=Bruno Randolf <br1@einfach.org>
 PKG_LICENSE:=GPL-2.0
index 4b677423c2396773b5e0796d546b210341024099..fbdd06cd5beae9b77e0cbf576b9c76505a3e65fa 100644 (file)
@@ -16,7 +16,8 @@ PKG_RELEASE:=2
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION)
-PKG_MD5SUM:=57dffcee9cee8bb2ab5f82af1d8e9a69
+PKG_MD5SUM:=53b43534153bb2a0363f08bae8b9d990
+PKG_HASH:=35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731
 
 PKG_LICENSE:=PSF
 PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
@@ -122,13 +123,21 @@ ifeq ($(CONFIG_IPV6),y)
        ENABLE_IPV6 += --enable-ipv6
 endif
 
+PYTHON_FOR_BUILD:= \
+       _PYTHON_PROJECT_BASE=$(PKG_BUILD_DIR) \
+       _PYTHON_HOST_PLATFORM=linux2 \
+       PYTHONPATH="$(PKG_BUILD_DIR)/Lib:$(PKG_BUILD_DIR)/build/lib.linux2-$(PYTHON_VERSION)" \
+       _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata \
+       $(HOST_PYTHON_BIN)
+
 CONFIGURE_ARGS+= \
        --sysconfdir=/etc \
        --enable-shared \
        --without-cxx-main \
        --with-threads \
-       --with-system-ffi="$(STAGING_DIR)/usr" \
+       --with-system-ffi \
        --without-pymalloc \
+       PYTHON_FOR_BUILD="$(PYTHON_FOR_BUILD)" \
        $(ENABLE_IPV6) \
        CONFIG_SITE="$(PKG_BUILD_DIR)/config.site" \
        OPT="$(TARGET_CFLAGS)"
@@ -227,7 +236,7 @@ HOST_CONFIGURE_ARGS+= \
        --prefix=$(HOST_PYTHON_DIR) \
        --exec-prefix=$(HOST_PYTHON_DIR) \
        --with-system-expat=$(STAGING_DIR_HOSTPKG) \
-       --with-system-ffi=$(STAGING_DIR_HOSTPKG) \
+       --with-system-ffi \
        CONFIG_SITE= \
        CFLAGS="$(HOST_CFLAGS)"
 
index dc0c0c049968cbabdd3776d69892eb471b250263..7833a0c736ba3d3bb33877bfb91576262d4aa8e0 100644 (file)
@@ -77,4 +77,20 @@ define Build/Compile/HostPyMod
                $(3))
 endef
 
+define HostPy/Compile/Default
+       $(call Build/Compile/HostPyMod,,\
+               install --root="$(HOST_BUILD_PREFIX)" --prefix="" \
+               --single-version-externally-managed \
+       )
+endef
+
+ifeq ($(BUILD_VARIANT),python)
+define Host/Compile
+       $(call HostPy/Compile/Default)
+endef
+
+define Host/Install
+endef
+endif # python
+
 endif # __python_host_mk_inc
index 6a2b942f4f252b99e4dd5f021b932465a069a589..647f649f785b230ac57df8f0d6c83946c421b21a 100644 (file)
@@ -8,7 +8,7 @@
 define Package/python-dev
 $(call Package/python/Default)
   TITLE:=Python $(PYTHON_VERSION) development files
-  DEPENDS:=+python
+  DEPENDS:=+python +python-lib2to3
 endef
 
 define PyPackage/python-dev/install
index 2a2e371c31e7fbeaf06ede36b9ea27cec96baae9..d0818a64c9381be920dd74228ab2b31f0f8f4507 100644 (file)
@@ -41,6 +41,15 @@ define PyPackage
     endef
   endif
 
+  ifndef PyPackage/$(1)/install
+    define PyPackage/$(1)/install
+               if [ -d $(PKG_INSTALL_DIR)/usr/bin ]; then \
+                       $(INSTALL_DIR) $$(1)/usr/bin \
+                       $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $$(1)/usr/bin/
+               fi
+    endef
+  endif
+
   $(call shexport,PyPackage/$(1)/filespec)
 
   define Package/$(1)/install
@@ -115,21 +124,15 @@ define Build/Compile/PyMod
        find $(PKG_INSTALL_DIR) -name "*\.pyc" -o -name "*\.pyo" -o -name "*\.exe" | xargs rm -f
 endef
 
-define PyMod/Default
-  define Build/Compile
-       $$(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
-  endef
-
-  define Package/$(PKG_NAME)/install
-       $(INSTALL_DIR) $$(1)$(PYTHON_PKG_DIR) $$(1)/usr/bin
-       if [ -d $(PKG_INSTALL_DIR)/usr/bin ]; then find $(PKG_INSTALL_DIR)/usr/bin -mindepth 1 -maxdepth 1 -type f -exec $(CP) \{\} $$(1)/usr/bin/ \; ; fi
-       find $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR) -mindepth 1 -maxdepth 1 \( -type f -o -type d \) -exec $(CP) \{\} $$(1)$(PYTHON_PKG_DIR)/ \;
-  endef
-
-  define Build/InstallDev
-       $(INSTALL_DIR) $$(1)/usr/bin $$(1)$(PYTHON_PKG_DIR)
-       if [ -d $(PKG_INSTALL_DIR)/usr/bin ]; then find $(PKG_INSTALL_DIR)/usr/bin -mindepth 1 -maxdepth 1 -type f -exec $(CP) \{\} $$(1)/usr/bin/ \; ; fi
-       find $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR) -mindepth 1 -maxdepth 1 \( -type f -o -type d \) -exec $(CP) \{\} $$(1)$(PYTHON_PKG_DIR)/ \;
-  endef
+define PyBuild/Compile/Default
+       $(call Build/Compile/PyMod,, \
+               install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" \
+               --single-version-externally-managed \
+       )
 endef
 
+ifeq ($(BUILD_VARIANT),python)
+define Build/Compile
+       $(call PyBuild/Compile/Default)
+endef
+endif # python
index 6905c3d6851ec4d8641eecae705a4c683ae03317..847eaf5c729269c61de360f46b93586b96c4d836 100644 (file)
@@ -6,5 +6,5 @@
 #
 
 PYTHON_VERSION:=2.7
-PYTHON_VERSION_MICRO:=12
+PYTHON_VERSION_MICRO:=13
 
diff --git a/lang/python/patches/012-disable-openssl-for-hashlib-on-host-build.patch b/lang/python/patches/012-disable-openssl-for-hashlib-on-host-build.patch
new file mode 100644 (file)
index 0000000..1a442e0
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/setup.py
++++ b/setup.py
+@@ -859,7 +859,7 @@ class PyBuildExt(build_ext):
+         min_openssl_ver = 0x00907000
+         have_any_openssl = ssl_incs is not None and ssl_libs is not None
+-        have_usable_openssl = (have_any_openssl and
++        have_usable_openssl = cross_compiling and (have_any_openssl and
+                                openssl_ver >= min_openssl_ver)
+         if have_any_openssl:
index 7304affe73d5bc68817ffb90d2474b533b59afbf..aa758b56305613feb13a46b3dac6ff7f66444953 100644 (file)
@@ -25,6 +25,10 @@ PKG_HASH:=b0c5f904f685e32d9232f7bdcbece9819a892929063b6e385414ad2dd6a23622
 PKG_LICENSE:=PSF
 PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
 
+# This file provides the necsessary host build variables
+include ./files/python3-host.mk
+
+# For Py3Package
 include ./files/python3-package.mk
 
 PKG_INSTALL:=1
@@ -34,7 +38,7 @@ HOST_BUILD_PARALLEL:=1
 PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/Python-$(PKG_VERSION)
 
-PKG_BUILD_DEPENDS:=libbz2/host expat/host python3/host
+PKG_BUILD_DEPENDS:=python3/host
 HOST_BUILD_DEPENDS:=bzip2/host expat/host libffi/host
 
 include $(INCLUDE_DIR)/host-build.mk
@@ -84,8 +88,12 @@ endef
 PYTHON3_LIB_FILES_DEL:=
 PYTHON3_PACKAGES:=
 PYTHON3_SO_SUFFIX:=cpython-$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR).so
+PYTHON3_PACKAGES_DEPENDS:=
 define Py3BasePackage
   PYTHON3_PACKAGES+=$(1)
+  ifeq ($(3),)
+    PYTHON3_PACKAGES_DEPENDS+=$(1)
+  endif
   PYTHON3_LIB_FILES_DEL+=$(2)
   define Py3Package/$(1)/filespec
     $(subst $(space),$(newline),$(foreach lib_file,$(2),+|$(lib_file)))
@@ -96,7 +104,7 @@ include ./files/python3-package-*.mk
 
 define Package/python3
 $(call Package/python3/Default)
-  DEPENDS:=+python3-light $(foreach package,$(filter-out python3-dev python3-lib2to3,$(PYTHON3_PACKAGES)),+$(package))
+  DEPENDS:=+python3-light $(foreach package,$(PYTHON3_PACKAGES_DEPENDS),+$(package))
 endef
 
 define Package/python3/description
@@ -154,6 +162,7 @@ define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/
        $(INSTALL_DATA) \
                ./files/python3-package.mk \
+               ./files/python3-host.mk \
                ./files/python3-version.mk \
                $(STAGING_DIR)/mk/
        $(CP) \
diff --git a/lang/python3/files/python3-host.mk b/lang/python3/files/python3-host.mk
new file mode 100644 (file)
index 0000000..278b90d
--- /dev/null
@@ -0,0 +1,96 @@
+#
+# Copyright (C) 2017 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+ifneq ($(__python3_host_mk_inc),1)
+__python3_host_mk_inc=1
+
+# For PYTHON3_VERSION
+$(call include_mk, python3-version.mk)
+
+# Compatibility fallback for older OpenWrt and LEDE versions
+ifeq ($(STAGING_DIR_HOSTPKG),)
+  $(warning STAGING_DIR_HOSTPKG is unset - falling back to $$(STAGING_DIR)/host)
+  STAGING_DIR_HOSTPKG := $(STAGING_DIR)/host
+endif
+
+HOST_PYTHON3_DIR:=$(STAGING_DIR_HOSTPKG)
+HOST_PYTHON3_INC_DIR:=$(HOST_PYTHON3_DIR)/include/python$(PYTHON3_VERSION)
+HOST_PYTHON3_LIB_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION)
+
+HOST_PYTHON3_PKG_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION)/site-packages
+
+HOST_PYTHON3_BIN:=$(HOST_PYTHON3_DIR)/bin/python$(PYTHON3_VERSION)
+
+HOST_PYTHON3PATH:=$(HOST_PYTHON3_LIB_DIR):$(HOST_PYTHON3_PKG_DIR)
+
+define HostPython3
+       if [ "$(strip $(3))" == "HOST" ]; then \
+               export PYTHONPATH="$(HOST_PYTHON3PATH)"; \
+               export PYTHONDONTWRITEBYTECODE=0; \
+       else \
+               export PYTHONPATH="$(PYTHON3PATH)"; \
+               export PYTHONDONTWRITEBYTECODE=1; \
+               export _python_sysroot="$(STAGING_DIR)"; \
+               export _python_prefix="/usr"; \
+               export _python_exec_prefix="/usr"; \
+       fi; \
+       export PYTHONOPTIMIZE=""; \
+       $(1) \
+       $(HOST_PYTHON3_BIN) $(2);
+endef
+
+# $(1) => commands to execute before running pythons script
+# $(2) => python script and its arguments
+# $(3) => additional variables
+define Build/Compile/HostPy3RunHost
+       $(call HostPython3, \
+               $(if $(1),$(1);) \
+               CC="$(HOSTCC)" \
+               CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
+               CXX="$(HOSTCXX)" \
+               LD="$(HOSTCC)" \
+               LDSHARED="$(HOSTCC) -shared" \
+               CFLAGS="$(HOST_CFLAGS)" \
+               CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
+               LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
+               _PYTHON_HOST_PLATFORM=linux2 \
+               $(3) \
+               , \
+               $(2) \
+               , \
+               HOST \
+       )
+endef
+
+
+# $(1) => build subdir
+# $(2) => additional arguments to setup.py
+# $(3) => additional variables
+define Build/Compile/HostPy3Mod
+       $(call Build/Compile/HostPy3RunHost, \
+               cd $(HOST_BUILD_DIR)/$(strip $(1)), \
+               ./setup.py $(2), \
+               $(3))
+endef
+
+define HostPy3/Compile/Default
+       $(call Build/Compile/HostPy3Mod,,\
+               install --root="$(HOST_BUILD_PREFIX)" --prefix="" \
+               --single-version-externally-managed \
+       )
+endef
+
+ifeq ($(BUILD_VARIANT),python3)
+define Host/Compile
+       $(call HostPy3/Compile/Default)
+endef
+
+define Host/Install
+endef
+endif # python3
+
+endif # __python3_host_mk_inc
index 7c2fc0d4bb22ad8ffd2b246e11ba5ce33864b604..19d9592d63d26e41f881ad3dbcda316770df3349 100644 (file)
@@ -8,7 +8,7 @@
 define Package/python3-dev
 $(call Package/python3/Default)
   TITLE:=Python $(PYTHON3_VERSION) development files
-  DEPENDS:=+python3
+  DEPENDS:=+python3 +python3-lib2to3
 endef
 
 define Py3Package/python3-dev/install
@@ -22,4 +22,6 @@ $(eval $(call Py3BasePackage,python3-dev, \
     /usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION) \
     /usr/include/python$(PYTHON_VERSION) \
     /usr/lib/pkgconfig \
+       , \
+       DO_NOT_ADD_TO_PACKAGE_DEPENDS \
 ))
index 801fd915aa022f263f685808e29493c2a26b48f7..ed712b6fda8cb541f77aef2d7647995a2674b0c7 100644 (file)
@@ -13,4 +13,6 @@ endef
 
 $(eval $(call Py3BasePackage,python3-lib2to3, \
        /usr/lib/python$(PYTHON3_VERSION)/lib2to3 \
+       , \
+       DO_NOT_ADD_TO_PACKAGE_DEPENDS \
 ))
index 56dbedc9c316fd723a39630670e226c0d692b5a8..f13e737aea10bbd86594348b71684d2f9f30a4b7 100644 (file)
@@ -5,12 +5,6 @@
 # See /LICENSE for more information.
 #
 
-# Compatibility fallback for older OpenWrt and LEDE versions
-ifeq ($(STAGING_DIR_HOSTPKG),)
-  $(warning STAGING_DIR_HOSTPKG is unset - falling back to $$(STAGING_DIR)/host)
-  STAGING_DIR_HOSTPKG := $(STAGING_DIR)/host
-endif
-
 $(call include_mk, python3-version.mk)
 
 PYTHON3_DIR:=$(STAGING_DIR)/usr
@@ -22,22 +16,7 @@ PYTHON3_PKG_DIR:=/usr/lib/python$(PYTHON3_VERSION)/site-packages
 
 PYTHON3:=python$(PYTHON3_VERSION)
 
-HOST_PYTHON3_DIR:=$(STAGING_DIR_HOSTPKG)
-HOST_PYTHON3_LIB_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION)
-HOST_PYTHON3_BIN:=$(HOST_PYTHON3_DIR)/bin/python3
-
 PYTHON3PATH:=$(PYTHON3_LIB_DIR):$(STAGING_DIR)/$(PYTHON3_PKG_DIR):$(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)
-define HostPython3
-       (       export PYTHONPATH="$(PYTHON3PATH)"; \
-               export PYTHONOPTIMIZE=""; \
-               export PYTHONDONTWRITEBYTECODE=1; \
-               export _python_sysroot="$(STAGING_DIR)"; \
-               export _python_prefix="/usr"; \
-               export _python_exec_prefix="/usr"; \
-               $(1) \
-               $(HOST_PYTHON3_BIN) $(2); \
-       )
-endef
 
 # These configure args are needed in detection of path to Python header files
 # using autotools.
@@ -62,6 +41,15 @@ define Py3Package
     endef
   endif
 
+  ifndef Py3Package/$(1)/install
+    define Py3Package/$(1)/install
+               if [ -d $(PKG_INSTALL_DIR)/usr/bin ]; then \
+                       $(INSTALL_DIR) $$(1)/usr/bin \
+                       $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $$(1)/usr/bin/
+               fi
+    endef
+  endif
+
   $(call shexport,Py3Package/$(1)/filespec)
 
   define Package/$(1)/install
@@ -100,15 +88,17 @@ define Py3Package
   endef
 endef
 
-# $(1) => build subdir
-# $(2) => additional arguments to setup.py
+$(call include_mk, python3-host.mk)
+
+# $(1) => commands to execute before running pythons script
+# $(2) => python script and its arguments
 # $(3) => additional variables
-define Build/Compile/Py3Mod
-       $(INSTALL_DIR) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)
+define Build/Compile/HostPy3RunTarget
        $(call HostPython3, \
-               cd $(PKG_BUILD_DIR)/$(strip $(1)); \
+               $(if $(1),$(1);) \
                CC="$(TARGET_CC)" \
                CCSHARED="$(TARGET_CC) $(FPIC)" \
+               CXX="$(TARGET_CXX)" \
                LD="$(TARGET_CC)" \
                LDSHARED="$(TARGET_CC) -shared" \
                CFLAGS="$(TARGET_CFLAGS)" \
@@ -118,8 +108,31 @@ define Build/Compile/Py3Mod
                __PYVENV_LAUNCHER__="/usr/bin/$(PYTHON3)" \
                $(3) \
                , \
-               ./setup.py $(2) \
+               $(2) \
        )
+endef
+
+# $(1) => build subdir
+# $(2) => additional arguments to setup.py
+# $(3) => additional variables
+define Build/Compile/Py3Mod
+       $(INSTALL_DIR) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)
+       $(call Build/Compile/HostPy3RunTarget, \
+               cd $(PKG_BUILD_DIR)/$(strip $(1)), \
+               ./setup.py $(2), \
+               $(3))
        find $(PKG_INSTALL_DIR) -name "*\.pyc" -o -name "*\.pyo" -o -name "*\.exe" | xargs rm -f
 endef
 
+define Py3Build/Compile/Default
+       $(call Build/Compile/Py3Mod,, \
+               install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" \
+               --single-version-externally-managed \
+       )
+endef
+
+ifeq ($(BUILD_VARIANT),python3)
+define Build/Compile
+       $(call Py3Build/Compile/Default)
+endef
+endif # python3
index 2704c0aeb6e629478272cac055e6b84fce7da16c..d645a3d3dbce6e3f4791f8b25651ea4dd0ced630 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2015-2016 OpenWrt.org
+# Copyright (C) 2015-2017 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -16,15 +16,15 @@ include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/target.mk 
 
 PKG_NAME:=boost
-PKG_VERSION:=1.62.0
-PKG_SOURCE_VERSION:=1_62_0
-PKG_RELEASE:=6
+PKG_VERSION:=1.63.0
+PKG_SOURCE_VERSION:=1_63_0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://sourceforge.net/projects/boost/files/boost/$(PKG_VERSION)
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
-PKG_MD5SUM:=36c96b0f6155c98404091d8ceb48319a28279ca0333fba1ad8611eb90afb2ca0
+PKG_MD5SUM:=beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0
 PKG_LICENSE:=Boost Software License <http://www.boost.org/users/license.html>
 PKG_MAINTAINER:=Carlos M. Ferreira <carlosmf.pt@gmail.com>
 
@@ -44,7 +44,7 @@ define Package/boost/Default
 endef
 
 define Package/boost/description
-This package provides the Boost v1.62 libraries.
+This package provides the Boost v1.63 libraries.
 Boost is a set of free, peer-reviewed, portable C++ source libraries.
 
 -----------------------------------------------------------------------------
@@ -68,7 +68,7 @@ This package provides the following run-time libraries:
  - date_time
  - exception
  - filesystem
- - fiber (Requires GCC v5 and up) - BROKEN
+ - fiber (Requires GCC v5 and up)
  - graph
  - - graph-parallel
  - iostreams
@@ -88,7 +88,7 @@ This package provides the following run-time libraries:
  - wave
 
 There are many more header-only libraries supported by Boost.
-See more at http://www.boost.org/doc/libs/1_62_0/
+See more at http://www.boost.org/doc/libs/1_63_0/
 endef
 
 PKG_BUILD_DEPENDS:=boost/host PACKAGE_python:python PACKAGE_python3:python3
index dc62f6fdfecd9e26a246afb5b8d1da349fa31724..8989e0b282e6541a5c1eb7162ab88870a1e5d437 100644 (file)
@@ -1,8 +1,8 @@
-Index: boost_1_62_0/libs/fiber/build/Jamfile.v2
+Index: boost_1_63_0/libs/fiber/build/Jamfile.v2
 ===================================================================
---- boost_1_62_0.orig/libs/fiber/build/Jamfile.v2
-+++ boost_1_62_0/libs/fiber/build/Jamfile.v2
-@@ -43,19 +43,6 @@ lib boost_fiber
+--- boost_1_63_0.orig/libs/fiber/build/Jamfile.v2
++++ boost_1_63_0/libs/fiber/build/Jamfile.v2
+@@ -44,20 +44,6 @@ lib boost_fiber
        recursive_timed_mutex.cpp
        timed_mutex.cpp
        scheduler.cpp
@@ -11,6 +11,7 @@ Index: boost_1_62_0/libs/fiber/build/Jamfile.v2
 -               cxx11_constexpr
 -               cxx11_defaulted_functions
 -               cxx11_final
+-               cxx11_hdr_mutex
 -               cxx11_hdr_tuple
 -               cxx11_lambdas
 -               cxx11_noexcept
diff --git a/libs/eventlog/Makefile b/libs/eventlog/Makefile
new file mode 100644 (file)
index 0000000..d0658ff
--- /dev/null
@@ -0,0 +1,44 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=eventlog
+PKG_VERSION:=0.2.12
+PKG_RELEASE:=2
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+
+PKG_SOURCE_URL:=https://my.balabit.com/downloads/eventlog/0.2/
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=3d6ebda8a161d36cb40d09328f78786b
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libeventlog
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=A new API to format and send structured log messages.
+endef
+
+define Package/eventlog/description
+  A new API to format and send structured log messages. It supports multiple message
+  representations (plain, XML attributes and XML tags) and multiple output methods
+  (local syslogd).
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/eventlog $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevtlog.{a,so*} $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/eventlog.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libeventlog/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libevtlog.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libeventlog))
index 990346c35f8d8b29300386a17a12fdb3a773c40e..d1ff62a667f5228070d88f31684b14a6f66c343a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=poco
-PKG_VERSION:=1.7.5
+PKG_VERSION:=1.7.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://pocoproject.org/releases/poco-1.7.5
-PKG_MD5SUM:=baafda4833c4dd95993398d9f237c96c
+PKG_SOURCE_URL:=http://pocoproject.org/releases/poco-1.7.7
+PKG_MD5SUM:=deb1e25704a39aac9fcd2beb4db55316
 
 PKG_LICENSE:=BSL-1.0
 PKG_LICENSE_FILES:=LICENSE
index f9bd2c794ec73967a6ffe45f5bf5678e80589f04..7f9b1b34ce940b8ba5b36c635d32f56a51457249 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqlite
-PKG_VERSION:=3130000
-PKG_RELEASE:=2
+PKG_VERSION:=3160000
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.sqlite.org/2016/
-PKG_MD5SUM:=4e83f39fa2ffb610ac5ecd36865da6a2
+PKG_SOURCE_URL:=http://www.sqlite.org/2017/
+PKG_MD5SUM:=5102404047054b2cec2f43463293f94dea39425d42bf386d24596ab4fac7c7ff
 
 PKG_LICENSE:=PUBLICDOMAIN
 PKG_LICENSE_FILES:=
@@ -69,7 +69,9 @@ $(call Package/sqlite3/Default/description)
 endef
 
 TARGET_CFLAGS += $(FPIC) \
-       -DSQLITE_ENABLE_UNLOCK_NOTIFY \
+       -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \
+       -DHAVE_ISNAN=1 \
+       -DHAVE_MALLOC_USABLE_SIZE=1
 
 CONFIGURE_ARGS += \
        --enable-shared \
index e607437dd4f51dd828f6a831a4110e8eaca1b275..20b141931d5ecad43707f6f9c159ab05ef5d01d4 100644 (file)
@@ -1,12 +1,12 @@
 #
-# Copyright (c) 2015-2016 Dirk Brenken (dev@brenken.org)
+# Copyright (c) 2015-2017 Dirk Brenken (dev@brenken.org)
 # This is free software, licensed under the GNU General Public License v3.
 #
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=adblock
-PKG_VERSION:=2.0.4
+PKG_VERSION:=2.1.1
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0+
 PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
@@ -21,7 +21,7 @@ define Package/$(PKG_NAME)
 endef
 
 define Package/$(PKG_NAME)/description
-Powerful adblock script to block ad/abuse domains.
+Powerful adblock script to block ad/abuse domains via dnsmasq or unbound dns backend.
 The script supports many domain blacklist sites plus manual black- and whitelist overrides.
 Please see https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md for further information.
 
index 4efe3bdd827e2cef251d1fc6a3969cb50aa37053..32be3ba5a32c925c91fa8b4dd79974c64c7375db 100644 (file)
@@ -51,6 +51,7 @@ A lot of people already use adblocker plugins within their desktop browsers, but
     * => daily updates, approx. 440 entries
 * zero-conf like automatic installation & setup, usually no manual changes needed
 * simple but yet powerful adblock engine: adblock does not use error prone external iptables rulesets, http pixel server instances and things like that
+* supports dnsmasq (default) or unbound as dns backend
 * supports a wide range of router modes, even AP modes are supported
 * full IPv4 and IPv6 support
 * each block list source will be updated and processed separately
@@ -71,7 +72,7 @@ A lot of people already use adblocker plugins within their desktop browsers, but
 * [openwrt](https://openwrt.org), tested with latest stable release (Chaos Calmer) and with current trunk (Designated Driver)
 * [LEDE project](https://www.lede-project.org), tested with trunk > r98
 * a usual setup with an enabled dns server at minimum - dump AP modes without a working dns server are _not_ supported
-* a download utility: 'wget', 'aria2c', 'uclient-fetch' or 'curl' are supported (only full versions with ssl support). Normally you should use the pre-configured default 'wget'. If you need a smaller memory footprint try 'uclient-fetch' without openssl dependency. The default ustream ssl backend 'libustream-polarssl' has issues with certain https sites and is currently not supported. To change the ssl backend see example below.
+* a download utility: 'wget', 'aria2c', 'uclient-fetch' or 'curl' are supported (only full versions with ssl support). Normally you should use the pre-configured default 'wget'. If you need a smaller memory footprint try 'uclient-fetch' without openssl dependency.
 
 ## OpenWrt / LEDE trunk Installation & Usage
 * install 'adblock' (_opkg install adblock_) and that's it - the adblock start will be automatically triggered by procd interface triggers
@@ -111,41 +112,50 @@ A lot of people already use adblocker plugins within their desktop browsers, but
     * adb\_enabled => main switch to enable/disable adblock service (default: '1', enabled)
     * adb\_debug => enable/disable adblock debug output (default: '0', disabled)
     * adb\_iface => restrict the procd interface trigger to a (list of) certain wan interface(s) or disable it at all (default: not set, disabled)
-    * adb\_fetch => reference an alternate download utility, see example below (default: not set, use wget)
-    * adb\_fetchparm => set options for the download utility, see example below (default: not set, use wget options)
+    * adb\_fetch => full path to a different download utility, see example below (default: not set, use wget)
+    * adb\_fetchparm => options for the download utility, see example below (default: not set, use wget options)
+    * adb\_dns => use 'unbound' as dns backend, see example below (default: not set, use dnsmasq)
 
 ## Examples
 
-**example to change the ssl backend for 'uclient-fetch' or 'curl':**
+**change default dns backend to 'unbound':**
 <pre><code>
-opkg update
-opkg remove --force-depends libustream-polarssl
-opkg install libustream-mbedtls
+set 'unbound' as dns backend in /etc/config/adblock:
+  [...]
+  option adb_dns 'unbound'
+
+switch to 'manual' unbound config in /etc/config/unbound:
+  [...]
+  option manual_conf '1'
+
+include adblock lists in /etc/unbound/unbound.conf:
+  [...]
+  include: "/tmp/lib/unbound/adb_list.*"
 </code></pre>
   
-**example configuration for different download utilities:**
+**configuration for different download utilities:**
 <pre><code>
-config for wget (default):
+wget (default):
   option adb_fetch="/usr/bin/wget"
   option adb_fetchparm="--no-config --quiet --tries=1 --no-cache --no-cookies --max-redirect=0 --timeout=5 --no-check-certificate -O"
 
-config for aria2c:
+aria2c:
   option adb_fetch '/usr/bin/aria2c'
   option adb_fetchparm '-q --max-tries=1 --timeout=5 --allow-overwrite=true --auto-file-renaming=false --check-certificate=false -o'
 
-config for uclient-fetch (download errors with default ssl backend!):
+uclient-fetch:
   option adb_fetch '/bin/uclient-fetch'
   option adb_fetchparm '-q --timeout=5 --no-check-certificate -O'
 
-config for curl (download errors with default ssl backend!):
+curl:
   option adb_fetch '/usr/bin/curl'
   option adb_fetchparm '-s --retry 1 --connect-timeout 5 --insecure -o'
 </code></pre>
   
-**example to receive adblock statistics via ubus:**
+**receive adblock statistics via ubus:**
 <pre><code>
 ubus call service list '{"name":"adblock_stats"}'
-This will output the active block lists, the overall domain count and the last runtime as JSON, i.e.:
+This will output the active block lists and other runtime information as JSON, i.e.:
 {
     "adblock_stats": {
         "instances": {
@@ -157,31 +167,16 @@ This will output the active block lists, the overall domain count and the last r
                 "data": {
                     "active_lists": [
                         {
-                            "palevo": "14",
-                            "blacklist": "143",
-                            "winspy": "164",
-                            "zeus": "446",
-                            "rolist": "644",
-                            "malwarelist": "1218",
-                            "openphish": "1515",
-                            "ransomware": "1463",
-                            "ruadlist": "1773",
-                            "yoyo": "2320",
-                            "dshield": "123",
-                            "disconnect": "3181",
-                            "spam404": "6155",
-                            "malware": "9882",
-                            "whocares": "11825",
-                            "winhelp": "10917",
-                            "sysctl": "8529",
-                            "securemecca": "9919",
-                            "shalla": "25779",
-                            "hphosts": "37111"
+                            "blacklist": "142",
+                            "adaway": "408",
+                            "yoyo": "2368"
                         }
                     ],
-                    "blocked_domains": "133121",
-                    "last_rundate": "31.12.2016 07:19:25",
-                    "system": "LEDE Reboot SNAPSHOT r2709-b7677f05d6"
+                    "adblock_version": "2.1.0",
+                    "blocked_domains": "2918",
+                    "dns_backend": "unbound",
+                    "last_rundate": "05.01.2017 09:38:55",
+                    "system": "LEDE Reboot SNAPSHOT r2762-ed69e93262"
                 }
             }
         }
@@ -189,12 +184,12 @@ This will output the active block lists, the overall domain count and the last r
 }
 </code></pre>
   
-**example cronjob for a regular block list update (/etc/crontabs/root):**
+**cronjob for a regular block list update (/etc/crontabs/root):**
 <pre><code>
 0 06 * * *    /etc/init.d/adblock start
 </code></pre>
   
-**example blacklist entry (/etc/adblock/adblock.blacklist):**
+**blacklist entry (/etc/adblock/adblock.blacklist):**
 <pre><code>
 ads.example.com
 
@@ -208,7 +203,7 @@ This entry does not block:
   http://example.com/
 </code></pre>
   
-**example whitelist entry (/etc/adblock/adblock.whitelist):**
+**whitelist entry (/etc/adblock/adblock.whitelist):**
 <pre><code>
 here.com
 
@@ -221,7 +216,7 @@ This entry does not remove:
   www.adwhere.com
 </code></pre>
   
-**example to query active block lists for a certain (sub-)domain, i.e. for whitelisting:**
+**query active block lists for a certain (sub-)domain, i.e. for whitelisting:**
 <pre><code>
 /etc/init.d/adblock query "example.www.doubleclick.net"
 :: distinct results for domain 'example.www.doubleclick.net' (overall 0)
@@ -237,7 +232,7 @@ For every domain it returns the overall count plus a distinct list of active blo
 In the example above whitelist "www.doubleclick.net" to free the submitted domain.
 </code></pre>
   
-**example to divert dns requests to local dns resolver (/etc/config/firewall):**
+**divert dns requests to local dns resolver in /etc/config/firewall:**
 <pre><code>
 config redirect
     option name 'Divert DNS'
@@ -248,7 +243,7 @@ config redirect
     option target 'DNAT'
 </code></pre>
   
-**example to add a new block list source:**
+**add a new block list source:**
 <pre><code>
 1. the easy way ...
 example: https://easylist-downloads.adblockplus.org/rolist+easylist.txt
index 5374c99228e58f13391ce9dbceebf06e0d09d387..771857fc06c2ac507df76acf1011229ce394b72a 100755 (executable)
 #
 LC_ALL=C
 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="2.0.4"
+adb_ver="2.1.1"
 adb_enabled=1
 adb_debug=0
 adb_whitelist="/etc/adblock/adblock.whitelist"
 adb_whitelist_rset="\$1 ~/^([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\"^\"\$1\"\\\|[.]\"\$1)}"
-adb_dns="dnsmasq"
-adb_dnsdir="/tmp/dnsmasq.d"
-adb_dnshidedir="${adb_dnsdir}/.adb_hidden"
-adb_dnsprefix="adb_list"
-adb_dnsformat="awk '{print \"local=/\"\$0\"/\"}'"
 adb_fetch="/usr/bin/wget"
 adb_fetchparm="--no-config --quiet --tries=1 --no-cache --no-cookies --max-redirect=0 --timeout=5 --no-check-certificate -O"
 
@@ -36,6 +31,21 @@ f_envload()
         f_log "error" "status ::: system library not found"
     fi
 
+    # set dns server environment
+    #
+    adb_dns="$(uci -q get adblock.global.adb_dns)"
+    if [ "${adb_dns}" = "unbound" ]
+    then
+        adb_dnsdir="/tmp/lib/unbound"
+        adb_dnsformat="awk '{print \"local-zone: \042\"\$0\"\042 static\"}'"
+    else
+        adb_dns="dnsmasq"
+        adb_dnsdir="/tmp/dnsmasq.d"
+        adb_dnsformat="awk '{print \"local=/\"\$0\"/\"}'"
+    fi
+    adb_dnshidedir="${adb_dnsdir}/.adb_hidden"
+    adb_dnsprefix="adb_list"
+
     # parse global section by callback
     #
     config_cb()
@@ -109,6 +119,7 @@ f_envcheck()
     if [ ! -d "${adb_dnshidedir}" ]
     then
         mkdir -p -m 660 "${adb_dnshidedir}"
+        chown -R "${adb_dns}":"${adb_dns}" "${adb_dnshidedir}"
     else
         rm -f "${adb_dnshidedir}/${adb_dnsprefix}"*
     fi
@@ -157,7 +168,7 @@ f_dnsrestart()
     killall -q -TERM "${adb_dns}"
     while [ ${cnt} -le 10 ]
     do
-        dns_running="$(ubus -S call service list '{"name":"dnsmasq"}' | jsonfilter -l 1 -e '@.dnsmasq.instances.*.running')"
+        dns_running="$(ubus -S call service list "{\"name\":\"${adb_dns}\"}" | jsonfilter -l 1 -e "@.${adb_dns}.instances.*.running")"
         if [ "${dns_running}" = "true" ]
         then
             return 0
@@ -240,20 +251,20 @@ f_query()
 
     if [ -z "${dns_active}" ]
     then
-         printf "%s\n" ":: no active block lists found, please start adblock first"
+         printf "%s\n" "::: no active block lists found, please start adblock first"
     elif [ -z "${domain}" ] || [ "${domain}" = "${tld}" ]
     then
-        printf "%s\n" ":: invalid domain input, please submit a specific (sub-)domain, i.e. 'www.abc.xyz'"
+        printf "%s\n" "::: invalid domain input, please submit a specific (sub-)domain, i.e. 'www.abc.xyz'"
     else
+        cd "${adb_dnsdir}"
         while [ "${domain}" != "${tld}" ]
         do
             search="${domain//./\.}"
-            result="$(grep -Hm 1 "[/\.]${search}/" "${adb_dnsdir}/${adb_dnsprefix}"* | awk -F ':|/' '{print "   "$4"\t: "$6}')"
-            cnt="$(grep -hc "[/\.]${search}/" "${adb_dnsdir}/${adb_dnsprefix}"* | awk '{sum += $1} END {printf sum}')"
-            printf "%s\n" ":: distinct results for domain '${domain}' (overall ${cnt})"
+            result="$(grep -Hm1 "[/\"\.]${search}[/\"]" "${adb_dnsprefix}"* | awk -F ':|=|/|\"' '{printf(" %-20s : %s\n",$1,$4)}')"
+            printf "%s\n" "::: distinct results for domain '${domain}'"
             if [ -z "${result}" ]
             then
-                printf "%s\n" "   no matches in active block lists"
+                printf "%s\n" " no match"
             else
                 printf "%s\n" "${result}"
             fi
@@ -316,7 +327,7 @@ f_main()
     local sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
 
     f_debug
-    f_log "debug" "main   ::: tool: ${adb_fetch}, parm: ${adb_fetchparm}"
+    f_log "debug" "main   ::: dns-backend: ${adb_dns}, fetch-tool: ${adb_fetch}, parm: ${adb_fetchparm}"
     for src_name in ${adb_sources}
     do
         eval "enabled=\"\${enabled_${src_name}}\""
@@ -404,7 +415,7 @@ f_main()
         f_log "debug" "loop   ::: name: ${src_name}, list-rc: ${rc}"
     done
 
-    # make overall sort, restart & check dns server
+    # sort block lists
     #
     for src_name in $(ls -dASr "${adb_dnsdir}/${adb_dnsprefix}"* 2>/dev/null)
     do
@@ -424,6 +435,10 @@ f_main()
             active_lists="${active_lists},\"${list}\":\"${cnt}\""
         fi
     done
+
+    # restart dns server and write statistics
+    #
+    chown "${adb_dns}":"${adb_dns}" "${adb_dnsdir}/${adb_dnsprefix}"* 2>/dev/null
     f_dnsrestart
     if [ "${dns_running}" = "true" ]
     then
@@ -432,9 +447,11 @@ f_main()
         f_log "info " "status ::: block lists with overall ${sum_cnt} domains loaded (${sysver})"
         ubus call service add "{\"name\":\"adblock_stats\",
             \"instances\":{\"stats\":{\"command\":[\"\"],
-            \"data\":{\"blocked_domains\":\"${sum_cnt}\",
+            \"data\":{\"active_lists\":[{${active_lists}}],
+            \"adblock_version\":\"${adb_ver}\",
+            \"blocked_domains\":\"${sum_cnt}\",
+            \"dns_backend\":\"${adb_dns}\",
             \"last_rundate\":\"$(/bin/date "+%d.%m.%Y %H:%M:%S")\",
-            \"active_lists\":[{${active_lists}}],
             \"system\":\"${sysver}\"}}}}"
         return 0
     fi
index 2e29b15b8db56bf35c317d25912ba6f0b1eb79a9..5041768dc396b659314214ceebd4bd97fec5c2ec 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=keepalived
 PKG_VERSION:=1.2.19
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= http://www.keepalived.org/software
index 383895bc8893386331a6c63a0eea9a0ef92c27f2..b2ad5f9fbd1e2baa6885cadb8d8795b42d98283b 100644 (file)
@@ -1,5 +1,5 @@
-#config global_defs
-#      option alt_config_file          "/etc/keepalived/keepalived.conf"
+config global_defs
+       option alt_config_file          "/etc/keepalived/keepalived.conf"
 #      list notification_email         "acassen@firewall.loc"
 #      list notification_email         "failover@firewall.loc"
 #      list notification_email         "sysadmin@firewall.loc"
diff --git a/net/keepalived/patches/101-0001-vrrp-update-struct-msghdr.patch b/net/keepalived/patches/101-0001-vrrp-update-struct-msghdr.patch
new file mode 100644 (file)
index 0000000..a18507c
--- /dev/null
@@ -0,0 +1,50 @@
+From dbb2cac9139954bd18813e88bfcb622ad3e93c54 Mon Sep 17 00:00:00 2001
+From: Stijn Tintel <stijn@linux-ipv6.be>
+Date: Tue, 10 May 2016 04:26:31 +0300
+Subject: [PATCH] vrrp: update struct msghdr
+
+The vrrp netlink code assumes an order for the members of struct msghdr.
+This breaks recvmsg and sendmsg with musl libc on mips64. Fix this by
+using designated initializers instead.
+
+Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
+---
+ keepalived/vrrp/vrrp_netlink.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/keepalived/vrrp/vrrp_netlink.c b/keepalived/vrrp/vrrp_netlink.c
+index b19e2e7..2c2fd59 100644
+--- a/keepalived/vrrp/vrrp_netlink.c
++++ b/keepalived/vrrp/vrrp_netlink.c
+@@ -416,8 +416,12 @@ netlink_parse_info(int (*filter) (struct sockaddr_nl *, struct nlmsghdr *),
+               char buf[4096];
+               struct iovec iov = { buf, sizeof buf };
+               struct sockaddr_nl snl;
+-              struct msghdr msg =
+-                  { (void *) &snl, sizeof snl, &iov, 1, NULL, 0, 0 };
++              struct msghdr msg = {
++                      .msg_name = &snl,
++                      .msg_namelen = sizeof(snl),
++                      .msg_iov = &iov,
++                      .msg_iovlen = 1,
++              };
+               struct nlmsghdr *h;
+               status = recvmsg(nl->fd, &msg, 0);
+@@ -538,7 +542,12 @@ netlink_talk(nl_handle_t *nl, struct nlmsghdr *n)
+       int ret, flags;
+       struct sockaddr_nl snl;
+       struct iovec iov = { (void *) n, n->nlmsg_len };
+-      struct msghdr msg = { (void *) &snl, sizeof snl, &iov, 1, NULL, 0, 0 };
++      struct msghdr msg = {
++              .msg_name = &snl,
++              .msg_namelen = sizeof(snl),
++              .msg_iov = &iov,
++              .msg_iovlen = 1,
++      };
+       memset(&snl, 0, sizeof snl);
+       snl.nl_family = AF_NETLINK;
+-- 
+2.10.2
+
diff --git a/net/keepalived/patches/101-0002-Reinstate-initialisation-of-msghdr-fields.patch b/net/keepalived/patches/101-0002-Reinstate-initialisation-of-msghdr-fields.patch
new file mode 100644 (file)
index 0000000..cf97513
--- /dev/null
@@ -0,0 +1,41 @@
+From eaabcc1b09cccff2f8815d03da4d5778ab6bbd17 Mon Sep 17 00:00:00 2001
+From: Quentin Armitage <quentin@armitage.org.uk>
+Date: Mon, 16 May 2016 23:09:13 +0100
+Subject: [PATCH] Reinstate initialisation of msghdr fields
+
+Commit dbb2cac removed initialisation of the struct msghdr msg_control,
+msg_controllen and msg_flags fields. This commit reinstates initialisation
+of those fields.
+
+Signed-off-by: Quentin Armitage <quentin@armitage.org.uk>
+---
+ keepalived/vrrp/vrrp_netlink.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/keepalived/vrrp/vrrp_netlink.c b/keepalived/vrrp/vrrp_netlink.c
+index 2c2fd59..62c37d6 100644
+--- a/keepalived/vrrp/vrrp_netlink.c
++++ b/keepalived/vrrp/vrrp_netlink.c
+@@ -421,6 +421,9 @@ netlink_parse_info(int (*filter) (struct sockaddr_nl *, struct nlmsghdr *),
+                       .msg_namelen = sizeof(snl),
+                       .msg_iov = &iov,
+                       .msg_iovlen = 1,
++                      .msg_control = NULL,
++                      .msg_controllen = 0,
++                      .msg_flags = 0
+               };
+               struct nlmsghdr *h;
+@@ -547,6 +550,9 @@ netlink_talk(nl_handle_t *nl, struct nlmsghdr *n)
+               .msg_namelen = sizeof(snl),
+               .msg_iov = &iov,
+               .msg_iovlen = 1,
++              .msg_control = NULL,
++              .msg_controllen = 0,
++              .msg_flags = 0
+       };
+       memset(&snl, 0, sizeof snl);
+-- 
+2.10.2
+
index 98a693c27975a8b578745d9dcd32011e749791c7..29330b9c76ef6ee7ef6943dec7fc780df2ab011c 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2015 OpenWrt.org
+# Copyright (C) 2006-2017 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,17 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=net-snmp
-PKG_VERSION:=5.4.4
-PKG_RELEASE:=2
+PKG_VERSION:=5.7.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/net-snmp
-PKG_MD5SUM:=95aa054f3c99a1ce242807d7eaf98619
+PKG_MD5SUM:=d4a3459e1577d0efa8d96ca70a885e53
 PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
 PKG_LICENSE:=MIT BSD-3-Clause-Clear
 
-PKG_FIXUP = patch-libtool
-
 include $(INCLUDE_DIR)/package.mk
 
 define Package/net-snmp/Default
@@ -40,6 +38,7 @@ define Package/libnetsnmp
 $(call Package/net-snmp/Default)
   SECTION:=libs
   CATEGORY:=Libraries
+  DEPENDS:=+PACKAGE_libnl-core:libnl-core
   TITLE:=Open source SNMP implementation (libraries)
 endef
 
@@ -50,6 +49,18 @@ $(call Package/net-snmp/Default/description)
 endef
 
 
+define Package/snmp-mibs
+$(call Package/net-snmp/Default)
+  TITLE:=Open source SNMP implementation (MIB-files)
+endef
+
+define Package/snmp-mibs/description
+$(call Package/net-snmp/Default/description)
+ .
+ This package contains SNMP MIB-Files.
+endef
+
+
 define Package/snmp-utils
 $(call Package/net-snmp/Default)
   DEPENDS:=+libnetsnmp
@@ -79,6 +90,7 @@ endef
 define Package/snmpd-static
 $(call Package/net-snmp/Default)
   TITLE:=Open source SNMP implementation (daemon)
+  DEPENDS:=+PACKAGE_libnl-core:libnl-core
 endef
 
 define Package/snmpd-static/description
@@ -89,6 +101,7 @@ endef
 
 
 SNMP_MIB_MODULES_INCLUDED = \
+       agentx \
        host/hr_device \
        host/hr_disk \
        host/hr_filesys \
@@ -130,7 +143,6 @@ SNMP_MIB_MODULES_INCLUDED = \
 
 SNMP_MIB_MODULES_EXCLUDED = \
        agent_mibs \
-       agentx \
        disman/event \
        disman/schedule \
        hardware \
@@ -146,9 +158,9 @@ SNMP_MIB_MODULES_EXCLUDED = \
        udp-mib \
        utilities \
 
-SNMP_TRANSPORTS_INCLUDED = Callback UDP
+SNMP_TRANSPORTS_INCLUDED = Callback UDP Unix
 
-SNMP_TRANSPORTS_EXCLUDED = TCP TCPIPv6 Unix
+SNMP_TRANSPORTS_EXCLUDED = TCP TCPIPv6
 
 TARGET_CFLAGS += $(FPIC)
 
@@ -165,7 +177,6 @@ CONFIGURE_ARGS += \
        --enable-applications \
        --disable-debugging \
        --disable-manuals \
-       --disable-mibs \
        --disable-scripts \
        --with-out-mib-modules="$(SNMP_MIB_MODULES_EXCLUDED)" \
        --with-mib-modules="$(SNMP_MIB_MODULES_INCLUDED)" \
@@ -216,6 +227,16 @@ define Package/libnetsnmp/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnetsnmp{,agent,helpers,mibs}.so.* $(1)/usr/lib/
 endef
 
+define Package/snmp-mibs/install
+       $(INSTALL_DIR) $(1)/usr/share/snmp/mibs
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/snmp/mibs/* $(1)/usr/share/snmp/mibs/
+endef
+
+define Package/snmp-utils/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/snmp{get,set,status,test,trap,walk} $(1)/usr/bin/
+endef
+
 define Package/snmpd/conffiles
 /etc/config/snmpd
 endef
@@ -246,12 +267,8 @@ define Package/snmpd-static/install
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/agent/snmpd-static $(1)/usr/sbin/snmpd
 endef
 
-define Package/snmp-utils/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/snmp{get,set,status,test,trap,walk} $(1)/usr/bin/
-endef
-
 $(eval $(call BuildPackage,libnetsnmp))
+$(eval $(call BuildPackage,snmp-mibs))
 $(eval $(call BuildPackage,snmp-utils))
 $(eval $(call BuildPackage,snmpd))
 $(eval $(call BuildPackage,snmpd-static))
index 4bdc3d4d43cf25b01a55ff44d0abcac6083ec1f3..e21dc5771dc9bd1bdf6bde450810e392215ee8aa 100644 (file)
@@ -1,6 +1,9 @@
 config agent
        option agentaddress UDP:161
 
+config agentx
+       option agentxsocket /var/run/agentx.sock
+
 config com2sec public
        option secname ro
        option source default
index ff780975de8ed62994e4acba13b6afd21ec848ec..11dc381b27239af7018ec47074fe3476295d3145 100644 (file)
@@ -15,6 +15,13 @@ snmpd_agent_add() {
        echo "agentaddress $agentaddress" >> $CONFIGFILE
 }
 
+snmpd_agentx_add() {
+       local cfg="$1"
+       echo "master agentx" >> $CONFIGFILE
+       config_get agentxsocket "$cfg" agentxsocket
+       [ -n "$agentxsocket" ] && echo "agentXSocket $agentxsocket" >> $CONFIGFILE
+}
+
 snmpd_system_add() {
        local cfg="$1"
        config_get syslocation "$cfg" sysLocation
@@ -199,6 +206,7 @@ start_service() {
        config_load snmpd
 
        config_foreach snmpd_agent_add agent
+       config_foreach snmpd_agentx_add agentx
        config_foreach snmpd_system_add system
        config_foreach snmpd_com2sec_add com2sec
        config_foreach snmpd_com2sec6_add com2sec6
index c937fca03a05a1700d502bcb1bc144f291d00723..c6e1db44803186170f7cddc49c301cbe2eadcb82 100644 (file)
@@ -1,6 +1,6 @@
 --- a/agent/mibgroup/mibII/interfaces.c
 +++ b/agent/mibgroup/mibII/interfaces.c
-@@ -1561,6 +1561,10 @@ Interface_Scan_Init(void)
+@@ -1590,6 +1590,10 @@ Interface_Scan_Init(void)
          struct ifnet   *nnew;
          char           *stats, *ifstart = line;
  
@@ -11,7 +11,7 @@
          if (line[strlen(line) - 1] == '\n')
              line[strlen(line) - 1] = '\0';
  
-@@ -1594,7 +1598,7 @@ Interface_Scan_Init(void)
+@@ -1622,7 +1622,7 @@ Interface_Scan_Init(void)
                                                 &coll) != 5)) {
              if ((scan_line_to_use == scan_line_2_2)
                  && !strstr(line, "No statistics available"))
index 5ce771cc47dd07fc89bdc9d1121f5d4a3633af84..5ace743218d1350f82b86f095bd341200465c419 100644 (file)
@@ -1,6 +1,7 @@
---- a/local/Makefile.in
-+++ b/local/Makefile.in
-@@ -100,7 +100,7 @@ tkmib.made: $(srcdir)/tkmib
+diff -uNr a/local/Makefile.in b/local/Makefile.in
+--- a/local/Makefile.in        2014-02-20 08:36:42.000000000 +0800
++++ b/local/Makefile.in        2014-05-27 13:21:34.245223503 +0800
+@@ -103,7 +103,7 @@
  
  mib2c.made: $(srcdir)/mib2c
        if test "x$(PERL)" != "x" ; then \
@@ -9,9 +10,21 @@
        else \
          touch mib2c.made; \
          fi
---- a/mibs/Makefile.in
-+++ b/mibs/Makefile.in
-@@ -48,11 +48,15 @@ NETSNMPMIBS = NET-SNMP-TC.txt NET-SNMP-M
+diff -uNr a/Makefile.top b/Makefile.top
+--- a/Makefile.top     2014-02-20 08:36:42.000000000 +0800
++++ b/Makefile.top     2014-05-27 13:26:53.023737120 +0800
+@@ -27,6 +27,7 @@
+ snmplibdir    = $(datadir)/snmp
+ mibdir                = $(snmplibdir)/mibs
+ persistentdir = @PERSISTENT_DIRECTORY@
++sysconfdir    = @sysconfdir@
+ DESTDIR         = @INSTALL_PREFIX@
+ INSTALL_PREFIX  = $(DESTDIR)
+diff -uNr a/mibs/Makefile.in b/mibs/Makefile.in
+--- a/mibs/Makefile.in 2014-02-20 08:36:42.000000000 +0800
++++ b/mibs/Makefile.in 2014-05-27 13:25:07.151988585 +0800
+@@ -49,11 +49,15 @@
  UCDMIBS = UCD-SNMP-MIB.txt UCD-DEMO-MIB.txt UCD-IPFWACC-MIB.txt \
        UCD-DLMOD-MIB.txt UCD-DISKIO-MIB.txt
  
  
  all: standardall
  
---- a/Makefile.top
-+++ b/Makefile.top
-@@ -26,6 +26,7 @@ man8dir              = $(mandir)/man8
- snmplibdir    = $(datadir)/snmp
- mibdir                = $(snmplibdir)/mibs
- persistentdir = @PERSISTENT_DIRECTORY@
-+sysconfdir    = @sysconfdir@
- DESTDIR         = @INSTALL_PREFIX@
- INSTALL_PREFIX  = $(DESTDIR)
index d8c88f3ea46b0bde10fcdc2c0050136ce6938059..b5e377f9634d0ab1b258afedfd979052f406e1ce 100644 (file)
@@ -1,6 +1,6 @@
 --- a/local/mib2c
 +++ b/local/mib2c
-@@ -60,8 +60,9 @@ $currentlevel = -1;
+@@ -61,8 +61,9 @@ $currentlevel = -1;
  if($ENV{MIB2C_DIR}) {
     push @def_search_dirs, split(/:/, $ENV{MIB2C_DIR});
  }
index e741ee7b497a7856e3ba44d61b5a3912cdddec6c..48fb90747aa0ae7dbb7284d4aa1fd909bb9e0321 100644 (file)
 +
 +    END
 --- /dev/null
-+++ b/mibs/BRIDGE-MIB.txt
-@@ -0,0 +1,1075 @@
-+BRIDGE-MIB DEFINITIONS ::= BEGIN
-+
-+IMPORTS
-+           Counter, TimeTicks
-+                   FROM RFC1155-SMI
-+           mib-2
-+                   FROM RFC1213-MIB
-+           OBJECT-TYPE
-+                   FROM RFC-1212
-+           TRAP-TYPE
-+                   FROM RFC-1215;
-+
-+-- All representations of MAC addresses in this MIB Module
-+-- use, as a textual convention (i.e. this convention does
-+-- not affect their encoding), the data type:
-+MacAddress ::= OCTET STRING (SIZE (6))    -- a 6 octet address
-+                                          -- in the
-+                                          -- "canonical"
-+                                          -- order
-+-- defined by IEEE 802.1a, i.e., as if it were transmitted
-+-- least significant bit first, even though 802.5 (in
-+-- contrast to other n802.x protocols) requires MAC
-+-- addresses to be transmitted most significant bit first.
-+--
-+-- 16-bit addresses, if needed, are represented by setting
-+-- their upper 4 octets to all 0's, i.e., AAFF would be
-+-- represented as 00000000AAFF.
-+
-+-- Similarly, all representations of Bridge-Id in this MIB
-+-- Module use, as a textual convention (i.e. this
-+-- convention does not affect their encoding), the data
-+-- type:
-+BridgeId ::= OCTET STRING (SIZE (8))   -- the
-+                                       -- Bridge-Identifier
-+                                       -- as used in the
-+                                       -- Spanning Tree
-+-- Protocol to uniquely identify a bridge.  Its first two
-+-- octets (in network byte order) contain a priority
-+-- value and its last 6 octets contain the MAC address
-+-- used to refer to a bridge in a unique fashion
-+-- (typically, the numerically smallest MAC address
-+-- of all ports on the bridge).
-+
-+-- Several objects in this MIB module represent values of
-+-- timers used by the Spanning Tree Protocol.  In this
-+-- MIB, these timers have values in units of hundreths of
-+-- a second (i.e. 1/100 secs).
-+-- These timers, when stored in a Spanning Tree Protocol's
-+-- BPDU, are in units of 1/256 seconds.  Note, however,
-+-- that 802.1D-1990 specifies a settable granularity of
-+-- no more than 1 second for these timers.  To avoid
-+-- ambiguity, a data type is defined here as a textual
-+-- convention and all representation of these timers
-+-- in this MIB module are defined using this data type.  An
-+-- algorithm is also defined for converting between the
-+-- different units, to ensure a timer's value is not
-+-- distorted by multiple conversions.
-+-- The data type is:
-+
-+Timeout ::= INTEGER -- a STP timer in units of 1/100 seconds
-+
-+-- To convert a Timeout value into a value in units of
-+-- 1/256 seconds, the following algorithm should be used:
-+--
-+--      b  = floor( (n * 256) / 100)
-+--
-+-- where:
-+--      floor   =  quotient [ignore remainder]
-+--      n is the value in 1/100 second units
-+--      b is the value in 1/256 second units
-+--
-+-- To convert the value from 1/256 second units back to
-+-- 1/100 seconds, the following algorithm should be used:
-+--
-+--      n = ceiling( (b * 100) / 256)
-+--
-+-- where:
-+--      ceiling =  quotient [if remainder is 0], or
-+--                 quotient + 1 [if remainder is non-zero]
-+--      n is the value in 1/100 second units
-+--      b is the value in 1/256 second units
-+--
-+-- Note: it is important that the arithmetic operations are
-+-- done in the order specified (i.e., multiply first, divide
-+-- second).
-+
-+   dot1dBridge   OBJECT IDENTIFIER ::= { mib-2 17 }
-+
-+-- groups in the Bridge MIB
-+
-+dot1dBase     OBJECT IDENTIFIER ::= { dot1dBridge 1 }
-+
-+dot1dStp      OBJECT IDENTIFIER ::= { dot1dBridge 2 }
-+
-+dot1dSr       OBJECT IDENTIFIER ::= { dot1dBridge 3 }
-+-- separately documented
-+
-+dot1dTp       OBJECT IDENTIFIER ::= { dot1dBridge 4 }
-+
-+dot1dStatic   OBJECT IDENTIFIER ::= { dot1dBridge 5 }
-+
-+-- the dot1dBase group
-+
-+-- Implementation of the dot1dBase group is mandatory for all
-+-- bridges.
-+
-+dot1dBaseBridgeAddress OBJECT-TYPE
-+    SYNTAX  MacAddress
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The MAC address used by this bridge when it must
-+            be referred to in a unique fashion.   It is
-+            recommended that this be the numerically smallest
-+            MAC address of all ports that belong to this
-+            bridge.  However it is only required to be unique.
-+            When concatenated with dot1dStpPriority a unique
-+            BridgeIdentifier is formed which is used in the
-+            Spanning Tree Protocol."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Sections 6.4.1.1.3 and 3.12.5"
-+    ::= { dot1dBase 1 }
-+
-+dot1dBaseNumPorts OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The number of ports controlled by this bridging
-+            entity."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.4.1.1.3"
-+    ::= { dot1dBase 2 }
-+
-+dot1dBaseType OBJECT-TYPE
-+    SYNTAX  INTEGER {
-+                unknown(1),
-+                transparent-only(2),
-+                sourceroute-only(3),
-+                srt(4)
-+            }
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "Indicates what type of bridging this bridge can
-+            perform.  If a bridge is actually performing a
-+            certain type of bridging this will be indicated by
-+            entries in the port table for the given type."
-+    ::= { dot1dBase 3 }
-+
-+-- The Generic Bridge Port Table
-+
-+dot1dBasePortTable OBJECT-TYPE
-+    SYNTAX  SEQUENCE OF Dot1dBasePortEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A table that contains generic information about
-+            every port that is associated with this bridge.
-+            Transparent, source-route, and srt ports are
-+            included."
-+    ::= { dot1dBase 4 }
-+
-+dot1dBasePortEntry OBJECT-TYPE
-+    SYNTAX  Dot1dBasePortEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A list of information for each port of the
-+            bridge."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.4.2, 6.6.1"
-+    INDEX  { dot1dBasePort }
-+    ::= { dot1dBasePortTable 1 }
-+
-+Dot1dBasePortEntry ::=
-+    SEQUENCE {
-+        dot1dBasePort
-+            INTEGER,
-+        dot1dBasePortIfIndex
-+            INTEGER,
-+        dot1dBasePortCircuit
-+
-+            OBJECT IDENTIFIER,
-+        dot1dBasePortDelayExceededDiscards
-+            Counter,
-+        dot1dBasePortMtuExceededDiscards
-+            Counter
-+    }
-+
-+dot1dBasePort OBJECT-TYPE
-+    SYNTAX  INTEGER (1..65535)
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The port number of the port for which this entry
-+            contains bridge management information."
-+    ::= { dot1dBasePortEntry 1 }
-+
-+dot1dBasePortIfIndex OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The value of the instance of the ifIndex object,
-+            defined in MIB-II, for the interface corresponding
-+            to this port."
-+    ::= { dot1dBasePortEntry 2 }
-+
-+dot1dBasePortCircuit OBJECT-TYPE
-+    SYNTAX  OBJECT IDENTIFIER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "For a port which (potentially) has the same value
-+            of dot1dBasePortIfIndex as another port on the
-+            same bridge, this object contains the name of an
-+            object instance unique to this port.  For example,
-+            in the case where multiple ports correspond one-
-+            to-one with multiple X.25 virtual circuits, this
-+            value might identify an (e.g., the first) object
-+            instance associated with the X.25 virtual circuit
-+            corresponding to this port.
-+
-+            For a port which has a unique value of
-+            dot1dBasePortIfIndex, this object can have the
-+            value { 0 0 }."
-+    ::= { dot1dBasePortEntry 3 }
-+
-+dot1dBasePortDelayExceededDiscards OBJECT-TYPE
-+    SYNTAX  Counter
-+
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The number of frames discarded by this port due
-+            to excessive transit delay through the bridge.  It
-+            is incremented by both transparent and source
-+            route bridges."
-+    REFERENCE
-+             "IEEE 802.1D-1990: Section 6.6.1.1.3"
-+    ::= { dot1dBasePortEntry 4 }
-+
-+dot1dBasePortMtuExceededDiscards OBJECT-TYPE
-+    SYNTAX  Counter
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The number of frames discarded by this port due
-+            to an excessive size.  It is incremented by both
-+            transparent and source route bridges."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.6.1.1.3"
-+    ::= { dot1dBasePortEntry 5 }
-+
-+-- the dot1dStp group
-+
-+-- Implementation of the dot1dStp group is optional.  It is
-+-- implemented by those bridges that support the Spanning Tree
-+-- Protocol.
-+
-+dot1dStpProtocolSpecification OBJECT-TYPE
-+    SYNTAX  INTEGER {
-+                unknown(1),
-+                decLb100(2),
-+                ieee8021d(3)
-+            }
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "An indication of what version of the Spanning
-+            Tree Protocol is being run.  The value
-+            'decLb100(2)' indicates the DEC LANbridge 100
-+            Spanning Tree protocol.  IEEE 802.1d
-+            implementations will return 'ieee8021d(3)'.  If
-+            future versions of the IEEE Spanning Tree Protocol
-+            are released that are incompatible with the
-+            current version a new value will be defined."
-+
-+    ::= { dot1dStp 1 }
-+
-+dot1dStpPriority OBJECT-TYPE
-+    SYNTAX  INTEGER (0..65535)
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The value of the write-able portion of the Bridge
-+            ID, i.e., the first two octets of the (8 octet
-+            long) Bridge ID.  The other (last) 6 octets of the
-+            Bridge ID are given by the value of
-+            dot1dBaseBridgeAddress."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.7"
-+    ::= { dot1dStp 2 }
-+
-+dot1dStpTimeSinceTopologyChange OBJECT-TYPE
-+    SYNTAX  TimeTicks
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The time (in hundredths of a second) since the
-+            last time a topology change was detected by the
-+            bridge entity."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.8.1.1.3"
-+    ::= { dot1dStp 3 }
-+
-+dot1dStpTopChanges OBJECT-TYPE
-+    SYNTAX  Counter
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The total number of topology changes detected by
-+            this bridge since the management entity was last
-+            reset or initialized."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.8.1.1.3"
-+    ::= { dot1dStp 4 }
-+
-+dot1dStpDesignatedRoot OBJECT-TYPE
-+    SYNTAX  BridgeId
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The bridge identifier of the root of the spanning
-+            tree as determined by the Spanning Tree Protocol
-+            as executed by this node.  This value is used as
-+
-+            the Root Identifier parameter in all Configuration
-+            Bridge PDUs originated by this node."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.1"
-+    ::= { dot1dStp 5 }
-+
-+dot1dStpRootCost OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The cost of the path to the root as seen from
-+            this bridge."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.2"
-+    ::= { dot1dStp 6 }
-+
-+dot1dStpRootPort OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The port number of the port which offers the
-+            lowest cost path from this bridge to the root
-+            bridge."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.3"
-+    ::= { dot1dStp 7 }
-+
-+dot1dStpMaxAge OBJECT-TYPE
-+    SYNTAX  Timeout
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The maximum age of Spanning Tree Protocol
-+            information learned from the network on any port
-+            before it is discarded, in units of hundredths of
-+            a second.  This is the actual value that this
-+            bridge is currently using."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.4"
-+    ::= { dot1dStp 8 }
-+
-+dot1dStpHelloTime OBJECT-TYPE
-+    SYNTAX  Timeout
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+
-+            "The amount of time between the transmission of
-+            Configuration bridge PDUs by this node on any port
-+            when it is the root of the spanning tree or trying
-+            to become so, in units of hundredths of a second.
-+            This is the actual value that this bridge is
-+            currently using."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.5"
-+    ::= { dot1dStp 9 }
-+
-+dot1dStpHoldTime OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "This time value determines the interval length
-+            during which no more than two Configuration bridge
-+            PDUs shall be transmitted by this node, in units
-+            of hundredths of a second."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.14"
-+    ::= { dot1dStp 10 }
-+
-+dot1dStpForwardDelay OBJECT-TYPE
-+    SYNTAX  Timeout
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "This time value, measured in units of hundredths
-+            of a second, controls how fast a port changes its
-+            spanning state when moving towards the Forwarding
-+            state.  The value determines how long the port
-+            stays in each of the Listening and Learning
-+            states, which precede the Forwarding state.  This
-+            value is also used, when a topology change has
-+            been detected and is underway, to age all dynamic
-+            entries in the Forwarding Database.  [Note that
-+            this value is the one that this bridge is
-+            currently using, in contrast to
-+            dot1dStpBridgeForwardDelay which is the value that
-+            this bridge and all others would start using
-+            if/when this bridge were to become the root.]"
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.6"
-+    ::= { dot1dStp 11 }
-+
-+dot1dStpBridgeMaxAge OBJECT-TYPE
-+    SYNTAX  Timeout (600..4000)
-+
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The value that all bridges use for MaxAge when
-+            this bridge is acting as the root.  Note that
-+            802.1D-1990 specifies that the range for this
-+            parameter is related to the value of
-+            dot1dStpBridgeHelloTime. The granularity of this
-+            timer is specified by 802.1D-1990 to be 1 second.
-+            An agent may return a badValue error if a set is
-+            attempted to a value which is not a whole number
-+            of seconds."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.8"
-+    ::= { dot1dStp 12 }
-+
-+dot1dStpBridgeHelloTime OBJECT-TYPE
-+    SYNTAX  Timeout (100..1000)
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The value that all bridges use for HelloTime when
-+            this bridge is acting as the root.  The
-+            granularity of this timer is specified by 802.1D-
-+            1990 to be 1 second.  An agent may return a
-+            badValue error if a set is attempted to a value
-+            which is not a whole number of seconds."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.9"
-+    ::= { dot1dStp 13 }
-+
-+dot1dStpBridgeForwardDelay OBJECT-TYPE
-+    SYNTAX  Timeout (400..3000)
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The value that all bridges use for ForwardDelay
-+            when this bridge is acting as the root.  Note that
-+            802.1D-1990 specifies that the range for this
-+            parameter is related to the value of
-+            dot1dStpBridgeMaxAge.  The granularity of this
-+            timer is specified by 802.1D-1990 to be 1 second.
-+            An agent may return a badValue error if a set is
-+            attempted to a value which is not a whole number
-+            of seconds."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.3.10"
-+    ::= { dot1dStp 14 }
-+
-+-- The Spanning Tree Port Table
-+
-+dot1dStpPortTable OBJECT-TYPE
-+    SYNTAX  SEQUENCE OF Dot1dStpPortEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A table that contains port-specific information
-+            for the Spanning Tree Protocol."
-+    ::= { dot1dStp 15 }
-+
-+dot1dStpPortEntry OBJECT-TYPE
-+    SYNTAX  Dot1dStpPortEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A list of information maintained by every port
-+            about the Spanning Tree Protocol state for that
-+            port."
-+    INDEX   { dot1dStpPort }
-+    ::= { dot1dStpPortTable 1 }
-+
-+Dot1dStpPortEntry ::=
-+    SEQUENCE {
-+        dot1dStpPort
-+            INTEGER,
-+        dot1dStpPortPriority
-+            INTEGER,
-+        dot1dStpPortState
-+            INTEGER,
-+        dot1dStpPortEnable
-+            INTEGER,
-+        dot1dStpPortPathCost
-+            INTEGER,
-+        dot1dStpPortDesignatedRoot
-+            BridgeId,
-+        dot1dStpPortDesignatedCost
-+            INTEGER,
-+        dot1dStpPortDesignatedBridge
-+            BridgeId,
-+        dot1dStpPortDesignatedPort
-+            OCTET STRING,
-+        dot1dStpPortForwardTransitions
-+            Counter
-+    }
-+
-+dot1dStpPort OBJECT-TYPE
-+    SYNTAX  INTEGER (1..65535)
-+
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The port number of the port for which this entry
-+            contains Spanning Tree Protocol management
-+            information."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.8.2.1.2"
-+    ::= { dot1dStpPortEntry 1 }
-+
-+dot1dStpPortPriority OBJECT-TYPE
-+    SYNTAX  INTEGER (0..255)
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The value of the priority field which is
-+            contained in the first (in network byte order)
-+            octet of the (2 octet long) Port ID.  The other
-+            octet of the Port ID is given by the value of
-+            dot1dStpPort."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.1"
-+    ::= { dot1dStpPortEntry 2 }
-+
-+dot1dStpPortState OBJECT-TYPE
-+    SYNTAX  INTEGER {
-+                disabled(1),
-+                blocking(2),
-+                listening(3),
-+                learning(4),
-+                forwarding(5),
-+                broken(6)
-+            }
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The port's current state as defined by
-+            application of the Spanning Tree Protocol.  This
-+            state controls what action a port takes on
-+            reception of a frame.  If the bridge has detected
-+            a port that is malfunctioning it will place that
-+            port into the broken(6) state.  For ports which
-+            are disabled (see dot1dStpPortEnable), this object
-+            will have a value of disabled(1)."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.2"
-+    ::= { dot1dStpPortEntry 3 }
-+
-+dot1dStpPortEnable OBJECT-TYPE
-+    SYNTAX  INTEGER {
-+                enabled(1),
-+                disabled(2)
-+            }
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The enabled/disabled status of the port."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.2"
-+    ::= { dot1dStpPortEntry 4 }
-+
-+dot1dStpPortPathCost OBJECT-TYPE
-+    SYNTAX  INTEGER (1..65535)
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The contribution of this port to the path cost of
-+            paths towards the spanning tree root which include
-+            this port.  802.1D-1990 recommends that the
-+            default value of this parameter be in inverse
-+            proportion to the speed of the attached LAN."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.3"
-+    ::= { dot1dStpPortEntry 5 }
-+
-+dot1dStpPortDesignatedRoot OBJECT-TYPE
-+    SYNTAX  BridgeId
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The unique Bridge Identifier of the Bridge
-+            recorded as the Root in the Configuration BPDUs
-+            transmitted by the Designated Bridge for the
-+            segment to which the port is attached."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.4"
-+    ::= { dot1dStpPortEntry 6 }
-+
-+dot1dStpPortDesignatedCost OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The path cost of the Designated Port of the
-+            segment connected to this port.  This value is
-+            compared to the Root Path Cost field in received
-+
-+            bridge PDUs."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.5"
-+    ::= { dot1dStpPortEntry 7 }
-+
-+dot1dStpPortDesignatedBridge OBJECT-TYPE
-+    SYNTAX  BridgeId
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The Bridge Identifier of the bridge which this
-+            port considers to be the Designated Bridge for
-+            this port's segment."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.6"
-+    ::= { dot1dStpPortEntry 8 }
-+
-+dot1dStpPortDesignatedPort OBJECT-TYPE
-+    SYNTAX  OCTET STRING (SIZE (2))
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The Port Identifier of the port on the Designated
-+            Bridge for this port's segment."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 4.5.5.7"
-+    ::= { dot1dStpPortEntry 9 }
-+
-+dot1dStpPortForwardTransitions OBJECT-TYPE
-+    SYNTAX  Counter
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The number of times this port has transitioned
-+            from the Learning state to the Forwarding state."
-+    ::= { dot1dStpPortEntry 10 }
-+
-+-- the dot1dTp group
-+
-+-- Implementation of the dot1dTp group is optional.  It is
-+-- implemented by those bridges that support the transparent
-+-- bridging mode.  A transparent or SRT bridge will implement
-+-- this group.
-+
-+dot1dTpLearnedEntryDiscards OBJECT-TYPE
-+    SYNTAX  Counter
-+
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The total number of Forwarding Database entries,
-+            which have been or would have been learnt, but
-+            have been discarded due to a lack of space to
-+            store them in the Forwarding Database.  If this
-+            counter is increasing, it indicates that the
-+            Forwarding Database is regularly becoming full (a
-+            condition which has unpleasant performance effects
-+            on the subnetwork).  If this counter has a
-+            significant value but is not presently increasing,
-+            it indicates that the problem has been occurring
-+            but is not persistent."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.7.1.1.3"
-+    ::= { dot1dTp 1 }
-+
-+dot1dTpAgingTime OBJECT-TYPE
-+    SYNTAX   INTEGER (10..1000000)
-+    ACCESS   read-write
-+    STATUS   mandatory
-+    DESCRIPTION
-+            "The timeout period in seconds for aging out
-+            dynamically learned forwarding information.
-+            802.1D-1990 recommends a default of 300 seconds."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.7.1.1.3"
-+    ::= { dot1dTp 2 }
-+
-+--  The Forwarding Database for Transparent Bridges
-+
-+dot1dTpFdbTable OBJECT-TYPE
-+    SYNTAX  SEQUENCE OF Dot1dTpFdbEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A table that contains information about unicast
-+            entries for which the bridge has forwarding and/or
-+            filtering information.  This information is used
-+            by the transparent bridging function in
-+            determining how to propagate a received frame."
-+    ::= { dot1dTp 3 }
-+
-+dot1dTpFdbEntry OBJECT-TYPE
-+    SYNTAX  Dot1dTpFdbEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "Information about a specific unicast MAC address
-+            for which the bridge has some forwarding and/or
-+            filtering information."
-+    INDEX   { dot1dTpFdbAddress }
-+    ::= { dot1dTpFdbTable 1 }
-+
-+Dot1dTpFdbEntry ::=
-+    SEQUENCE {
-+        dot1dTpFdbAddress
-+            MacAddress,
-+        dot1dTpFdbPort
-+            INTEGER,
-+        dot1dTpFdbStatus
-+            INTEGER
-+    }
-+
-+dot1dTpFdbAddress OBJECT-TYPE
-+    SYNTAX  MacAddress
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A unicast MAC address for which the bridge has
-+            forwarding and/or filtering information."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
-+    ::= { dot1dTpFdbEntry 1 }
-+
-+dot1dTpFdbPort OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "Either the value '0', or the port number of the
-+            port on which a frame having a source address
-+            equal to the value of the corresponding instance
-+            of dot1dTpFdbAddress has been seen.  A value of
-+            '0' indicates that the port number has not been
-+            learned but that the bridge does have some
-+            forwarding/filtering information about this
-+            address (e.g. in the dot1dStaticTable).
-+            Implementors are encouraged to assign the port
-+            value to this object whenever it is learned even
-+            for addresses for which the corresponding value of
-+            dot1dTpFdbStatus is not learned(3)."
-+    ::= { dot1dTpFdbEntry 2 }
-+
-+dot1dTpFdbStatus OBJECT-TYPE
-+    SYNTAX  INTEGER {
-+                other(1),
-+                invalid(2),
-+                learned(3),
-+                self(4),
-+                mgmt(5)
-+            }
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The status of this entry.  The meanings of the
-+            values are:
-+              other(1)   : none of the following.  This would
-+                           include the case where some other
-+                           MIB object (not the corresponding
-+                           instance of dot1dTpFdbPort, nor an
-+                           entry in the dot1dStaticTable) is
-+                           being used to determine if and how
-+                           frames addressed to the value of
-+                           the corresponding instance of
-+                           dot1dTpFdbAddress are being
-+                           forwarded.
-+              invalid(2) : this entry is not longer valid
-+                           (e.g., it was learned but has since
-+                           aged-out), but has not yet been
-+                           flushed from the table.
-+              learned(3) : the value of the corresponding
-+                           instance of dot1dTpFdbPort was
-+                           learned, and is being used.
-+              self(4)    : the value of the corresponding
-+                           instance of dot1dTpFdbAddress
-+                           represents one of the bridge's
-+                           addresses.  The corresponding
-+                           instance of dot1dTpFdbPort
-+                           indicates which of the bridge's
-+                           ports has this address.
-+              mgmt(5)    : the value of the corresponding
-+                           instance of dot1dTpFdbAddress is
-+                           also the value of an existing
-+                           instance of dot1dStaticAddress."
-+    ::= { dot1dTpFdbEntry 3 }
-+
-+--  Port Table for Transparent Bridges
-+
-+dot1dTpPortTable OBJECT-TYPE
-+    SYNTAX  SEQUENCE OF Dot1dTpPortEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A table that contains information about every
-+            port that is associated with this transparent
-+            bridge."
-+    ::= { dot1dTp 4 }
-+
-+dot1dTpPortEntry OBJECT-TYPE
-+    SYNTAX  Dot1dTpPortEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A list of information for each port of a
-+            transparent bridge."
-+    INDEX   { dot1dTpPort }
-+    ::= { dot1dTpPortTable 1 }
-+
-+Dot1dTpPortEntry ::=
-+    SEQUENCE {
-+        dot1dTpPort
-+            INTEGER,
-+        dot1dTpPortMaxInfo
-+            INTEGER,
-+        dot1dTpPortInFrames
-+            Counter,
-+        dot1dTpPortOutFrames
-+            Counter,
-+        dot1dTpPortInDiscards
-+            Counter
-+    }
-+
-+dot1dTpPort OBJECT-TYPE
-+    SYNTAX  INTEGER (1..65535)
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The port number of the port for which this entry
-+            contains Transparent bridging management
-+            information."
-+    ::= { dot1dTpPortEntry 1 }
-+
-+-- It would be nice if we could use ifMtu as the size of the
-+-- largest INFO field, but we can't because ifMtu is defined
-+-- to be the size that the (inter-)network layer can use which
-+-- can differ from the MAC layer (especially if several layers
-+-- of encapsulation are used).
-+
-+dot1dTpPortMaxInfo OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The maximum size of the INFO (non-MAC) field that
-+            this port will receive or transmit."
-+    ::= { dot1dTpPortEntry 2 }
-+
-+dot1dTpPortInFrames OBJECT-TYPE
-+    SYNTAX  Counter
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The number of frames that have been received by
-+            this port from its segment. Note that a frame
-+            received on the interface corresponding to this
-+            port is only counted by this object if and only if
-+            it is for a protocol being processed by the local
-+            bridging function, including bridge management
-+            frames."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.6.1.1.3"
-+    ::= { dot1dTpPortEntry 3 }
-+
-+dot1dTpPortOutFrames OBJECT-TYPE
-+    SYNTAX  Counter
-+    ACCESS  read-only
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The number of frames that have been transmitted
-+            by this port to its segment.  Note that a frame
-+            transmitted on the interface corresponding to this
-+            port is only counted by this object if and only if
-+            it is for a protocol being processed by the local
-+            bridging function, including bridge management
-+            frames."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.6.1.1.3"
-+    ::= { dot1dTpPortEntry 4 }
-+
-+dot1dTpPortInDiscards OBJECT-TYPE
-+    SYNTAX   Counter
-+    ACCESS   read-only
-+    STATUS   mandatory
-+    DESCRIPTION
-+            "Count of valid frames received which were
-+            discarded (i.e., filtered) by the Forwarding
-+            Process."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.6.1.1.3"
-+    ::= { dot1dTpPortEntry 5 }
-+-- The Static (Destination-Address Filtering) Database
-+
-+-- Implementation of this group is optional.
-+
-+dot1dStaticTable OBJECT-TYPE
-+    SYNTAX  SEQUENCE OF Dot1dStaticEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "A table containing filtering information
-+            configured into the bridge by (local or network)
-+            management specifying the set of ports to which
-+            frames received from specific ports and containing
-+            specific destination addresses are allowed to be
-+            forwarded.  The value of zero in this table as the
-+            port number from which frames with a specific
-+            destination address are received, is used to
-+            specify all ports for which there is no specific
-+            entry in this table for that particular
-+            destination address.  Entries are valid for
-+            unicast and for group/broadcast addresses."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.7.2"
-+    ::= { dot1dStatic 1 }
-+
-+dot1dStaticEntry OBJECT-TYPE
-+    SYNTAX  Dot1dStaticEntry
-+    ACCESS  not-accessible
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "Filtering information configured into the bridge
-+            by (local or network) management specifying the
-+            set of ports to which frames received from a
-+            specific port and containing a specific
-+            destination address are allowed to be forwarded."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 6.7.2"
-+    INDEX   { dot1dStaticAddress, dot1dStaticReceivePort }
-+    ::= { dot1dStaticTable 1 }
-+
-+Dot1dStaticEntry ::=
-+    SEQUENCE {
-+        dot1dStaticAddress
-+            MacAddress,
-+        dot1dStaticReceivePort
-+            INTEGER,
-+        dot1dStaticAllowedToGoTo
-+            OCTET STRING,
-+        dot1dStaticStatus
-+            INTEGER
-+    }
-+
-+dot1dStaticAddress OBJECT-TYPE
-+    SYNTAX  MacAddress
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The destination MAC address in a frame to which
-+            this entry's filtering information applies.  This
-+            object can take the value of a unicast address, a
-+            group address or the broadcast address."
-+    REFERENCE
-+            "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
-+    ::= { dot1dStaticEntry 1 }
-+
-+dot1dStaticReceivePort OBJECT-TYPE
-+    SYNTAX  INTEGER
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "Either the value '0', or the port number of the
-+            port from which a frame must be received in order
-+            for this entry's filtering information to apply.
-+            A value of zero indicates that this entry applies
-+            on all ports of the bridge for which there is no
-+            other applicable entry."
-+    ::= { dot1dStaticEntry 2 }
-+
-+dot1dStaticAllowedToGoTo OBJECT-TYPE
-+    SYNTAX  OCTET STRING
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "The set of ports to which frames received from a
-+            specific port and destined for a specific MAC
-+
-+            address, are allowed to be forwarded.  Each octet
-+            within the value of this object specifies a set of
-+            eight ports, with the first octet specifying ports
-+            1 through 8, the second octet specifying ports 9
-+            through 16, etc.  Within each octet, the most
-+            significant bit represents the lowest numbered
-+            port, and the least significant bit represents the
-+            highest numbered port.  Thus, each port of the
-+            bridge is represented by a single bit within the
-+            value of this object.  If that bit has a value of
-+            '1' then that port is included in the set of
-+            ports; the port is not included if its bit has a
-+            value of '0'.  (Note that the setting of the bit
-+            corresponding to the port from which a frame is
-+            received is irrelevant.)  The default value of
-+            this object is a string of ones of appropriate
-+            length."
-+    ::= { dot1dStaticEntry 3 }
-+
-+dot1dStaticStatus OBJECT-TYPE
-+    SYNTAX  INTEGER {
-+                other(1),
-+                invalid(2),
-+                permanent(3),
-+                deleteOnReset(4),
-+                deleteOnTimeout(5)
-+            }
-+    ACCESS  read-write
-+    STATUS  mandatory
-+    DESCRIPTION
-+            "This object indicates the status of this entry.
-+            The default value is permanent(3).
-+                 other(1) - this entry is currently in use but
-+                      the conditions under which it will
-+                      remain so are different from each of the
-+                      following values.
-+                 invalid(2) - writing this value to the object
-+                      removes the corresponding entry.
-+                 permanent(3) - this entry is currently in use
-+                      and will remain so after the next reset
-+                      of the bridge.
-+                 deleteOnReset(4) - this entry is currently in
-+                      use and will remain so until the next
-+                      reset of the bridge.
-+                 deleteOnTimeout(5) - this entry is currently
-+                      in use and will remain so until it is
-+                      aged out."
-+
-+    ::= { dot1dStaticEntry 4 }
-+
-+-- Traps for use by Bridges
-+
-+-- Traps for the Spanning Tree Protocol
-+
-+newRoot TRAP-TYPE
-+    ENTERPRISE  dot1dBridge
-+    DESCRIPTION
-+            "The newRoot trap indicates that the sending agent
-+            has become the new root of the Spanning Tree; the
-+            trap is sent by a bridge soon after its election
-+            as the new root, e.g., upon expiration of the
-+            Topology Change Timer immediately subsequent to
-+            its election.  Implementation of this trap is
-+            optional."
-+    ::= 1
-+
-+topologyChange TRAP-TYPE
-+    ENTERPRISE  dot1dBridge
-+    DESCRIPTION
-+            "A topologyChange trap is sent by a bridge when
-+            any of its configured ports transitions from the
-+            Learning state to the Forwarding state, or from
-+            the Forwarding state to the Blocking state.  The
-+            trap is not sent if a newRoot trap is sent for the
-+            same transition.  Implementation of this trap is
-+            optional."
-+    ::= 2
-+
-+END
---- /dev/null
 +++ b/mibs/GNOME-SMI.txt
 @@ -0,0 +1,88 @@
 +GNOME-SMI DEFINITIONS ::= BEGIN
index 6a28ea03194227b876863a41958dc0ef6293d4d4..7b65c1867cc5f1f7f6f416fb965e6027f4ddc8f6 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure
 +++ b/configure
-@@ -10216,7 +10216,7 @@ linux* | k*bsd*-gnu)
+@@ -14197,7 +14197,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
    need_version=no
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
    soname_spec='${libname}${release}${shared_ext}$major'
@@ -8,4 +8,4 @@
 +  finish_cmds=''
    shlibpath_var=LD_LIBRARY_PATH
    shlibpath_overrides_runpath=no
-   # This implies no fast_install, which is unacceptable.
index fa32544d2fbb3e3fc6628666bbe5165f9d04c7e8..2d572c06fee352410e77f29ee3b8b91fdc310c21 100644 (file)
@@ -1,11 +1,11 @@
 --- a/Makefile.top
 +++ b/Makefile.top
-@@ -81,7 +81,7 @@ LIBCURRENT  = 16
- LIBAGE      = 1
+@@ -85,7 +85,7 @@ LIBCURRENT  = 30
+ LIBAGE      = 0
  LIBREVISION = 3
  
 -LIB_LD_CMD      = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o
 +LIB_LD_CMD      = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) $(LDFLAGS) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o
  LIB_EXTENSION   = la
  LIB_VERSION     =
- LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(libdir)
+ LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir)
diff --git a/net/net-snmp/patches/800-format-security.patch b/net/net-snmp/patches/800-format-security.patch
deleted file mode 100644 (file)
index 87a3e92..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/agent/mibgroup/host/hr_filesys.c
-+++ b/agent/mibgroup/host/hr_filesys.c
-@@ -322,13 +322,13 @@ var_hrfilesys(struct variable *vp,
-         long_return = fsys_idx;
-         return (u_char *) & long_return;
-     case HRFSYS_MOUNT:
--        snprintf(string, sizeof(string), HRFS_entry->HRFS_mount);
-+        snprintf(string, sizeof(string), "%s", HRFS_entry->HRFS_mount);
-         string[ sizeof(string)-1 ] = 0;
-         *var_len = strlen(string);
-         return (u_char *) string;
-     case HRFSYS_RMOUNT:
-         if (Check_HR_FileSys_NFS()) {
--            snprintf(string, sizeof(string), HRFS_entry->HRFS_name);
-+            snprintf(string, sizeof(string), "%s", HRFS_entry->HRFS_name);
-             string[ sizeof(string)-1 ] = 0;
-         } else
-             string[0] = '\0';
---- a/agent/mibgroup/ucd-snmp/extensible.c
-+++ b/agent/mibgroup/ucd-snmp/extensible.c
-@@ -513,7 +513,7 @@ fixExecError(int action,
-         }
-         tmp = *((long *) var_val);
-         if ((tmp == 1) && (action == COMMIT) && (exten->fixcmd[0] != 0)) {
--            sprintf(ex.command, exten->fixcmd);
-+            sprintf(ex.command, "%s", exten->fixcmd);
-             if ((fd = get_exec_output(&ex)) != -1) {
-                 file = fdopen(fd, "r");
-                 while (fgets(ex.output, sizeof(ex.output), file) != NULL);
index 06a6834e3d8a0feba3b854e58864c8df6c7b926f..e1b2c9ad4762993540b34709cf9e1f27ef0a28d7 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sngrep
-PKG_VERSION=1.4.1
+PKG_VERSION=1.4.2
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Daniel Engberg <daniel.engberg.lists@pyret.net>
 PKG_LICENSE:=GPL-3.0
@@ -17,9 +17,9 @@ PKG_LICENSE_FILES:=COPYING
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=https://github.com/irontec/sngrep
 PKG_SOURCE_SUBDIR=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=57baa4b16d0021cf0a70889c15aee708db378fed
+PKG_SOURCE_VERSION:=da791185cabeea5a6fcc7372157340b2d1369df7
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MIRROR_MD5SUM:=5b2cb01d34fcc6d631f8f6efe01ec556fe1325aa300590bec5aa6a078486f9c3
+PKG_MIRROR_MD5SUM:=2cc640e065f33cae4a3a8e14bdc740e49269cd850eee2ffa9eb821427caaa371
 
 PKG_FIXUP:=autoreconf
 
index 0c446fc7baab43a7b1b4990116ca50a9b20571fd..93f9c6faf89fe41554522b28c945646b0a52282d 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2011-2015 OpenWrt.org
+# Copyright (C) 2011-2017 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=moc
-PKG_VERSION:=2.5.0
-PKG_RELEASE:=2
+PKG_VERSION:=2.5.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://ftp.daper.net/pub/soft/moc/stable/
-PKG_MD5SUM:=18e3a979b67091bfee4b62217908c473
+PKG_MD5SUM:=f3a68115602a4788b7cfa9bbe9397a9d5e24c68cb61a57695d1c2c3ecf49db08
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
index 7fb48a9cdf18437357f7ae07734eeda561b30b88..e92ae64cb6f224bf7260996ce249226f4faf016f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2015 OpenWrt.org
+# Copyright (C) 2015-2017 Ted Hess <thess@kitschensync.net>
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pianod
-PKG_VERSION:=174
-PKG_RELEASE:=2
+PKG_VERSION:=174.05
+PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://deviousfish.com/Downloads/pianod/
-PKG_MD5SUM:=cca2143e4a5301dea8c0cb9fcbd20881
+PKG_SOURCE_URL:=https://github.com/thess/pianod-sc/releases/download/$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MD5SUM:=0bae19b0c1e309343bc1b351e521173fe439431542a949dd2bacf4165cce5200
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
@@ -28,10 +28,10 @@ include $(INCLUDE_DIR)/package.mk
 define Package/pianod
   SECTION:=sound
   CATEGORY:=Sound
-  DEPENDS:=+libao +libfaad2 +libmad +libpolarssl +libjson-c +libgcrypt +libpthread
+  DEPENDS:=+libao +libfaad2 +libmad +libmbedtls +libjson-c +libgcrypt +libpthread
   TITLE:=Pandora radio daemon
   USERID:=pianod=88:pianod=88
-  URL:=http://deviousfish.com/pianod/
+  URL:=http://deviousfish.com/pianod1/
 endef
 
 define Package/pianod/description
@@ -39,7 +39,7 @@ define Package/pianod/description
   A simple protocol makes for easy clients, mix scripting, integration with a
   home automation system, use as multiple-user music system for home or office.
   Documentation and configuration information can be found at:
-      http://deviousfish.com/pianod/
+      http://deviousfish.com/pianod1/
 endef
 
 define Package/pianod-client
@@ -47,7 +47,7 @@ define Package/pianod-client
   CATEGORY:=Sound
   DEPENDS:=+pianod
   TITLE:=Pandora radio daemon WebUI
-  URL:=http://deviousfish.com/pianod/
+  URL:=http://deviousfish.com/pianod1/
 endef
 
 define Package/pianod-client/description
@@ -58,12 +58,12 @@ define Package/pianod-client/description
                  http://pianod-host:4446/pianod/viewer.html?server=pianod-host:4446
 endef
 
-CONFIGURE_ARGS+= --with-polarssl
+CONFIGURE_ARGS+= --with-mbedtls
 
 PIANOD_CLIENT:=pianod-client-compiled-51.tar.gz
 
 define Download/pianod-client
-  URL:=$(PKG_SOURCE_URL)
+  URL:=http://deviousfish.com/Downloads/pianod/
   FILE:=$(PIANOD_CLIENT)
   MD5SUM:=abbdee5627bcee6a00c8304da8b4e2e7
 endef
diff --git a/sound/pianod/patches/005-Remove_svn_version_query.patch b/sound/pianod/patches/005-Remove_svn_version_query.patch
deleted file mode 100644 (file)
index 0ffd3a6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -3,7 +3,7 @@
- AC_PREREQ([2.69])
- AC_INIT([pianod],
--      m4_esyscmd([svn info http://svn.deviousfish.com/pianod | grep Revision: | awk '{print $2}' | tr -d '\n']),
-+      174-OpenWrt,
-       [pianod@lists.deviousfish.com],
-       ,[http://deviousfish.com/pianod])
- AM_INIT_AUTOMAKE([foreign -Wall -Werror])
diff --git a/sound/pianod/patches/010-Configure_add_SSL_options.patch b/sound/pianod/patches/010-Configure_add_SSL_options.patch
deleted file mode 100644 (file)
index 2c26779..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -31,8 +31,6 @@ AC_CHECK_LIB([pthread], [pthread_create]
- # with it, but don't consider it an error.
- # PKG_CHECK_MODULES only validates that pkg-config returns stuff; it doesn't
- # validate that these are correct, so check lib to make sure they're right.
--PKG_CHECK_MODULES([gnutls], [gnutls],,
--      [AC_MSG_WARN([No pkg-config for libgnutls])])
- PKG_CHECK_MODULES([ao], [ao],,
-       [AC_MSG_WARN([No pkg-config for libao])])
- PKG_CHECK_MODULES([mad], [mad],,
-@@ -42,12 +40,28 @@ PKG_CHECK_MODULES([json], [json-c],,
-               [PKG_CHECK_MODULES([json], [json0],,
-                       [AC_MSG_WARN([No pkg-config for json-c (aka libjson0, libjson)])])])])
-+
- # Network communication stuff:
- AC_CHECK_LIB([gcrypt], [gcry_cipher_open],,
-       [AC_MSG_ERROR([Cannot find required library: libgcrypt],1)])
--AC_CHECK_LIB([gnutls], [gnutls_record_recv],,
-+# Check for SSL option
-+AC_ARG_WITH(polarssl, [  --with-polarssl      Build waitress with PolarSSL (default GNUTLS)], [
-+  AC_MSG_RESULT(>>Using PolarSSL)
-+  HAS_POLARSSL=1
-+  AC_DEFINE([USE_POLARSSL], 1, [Build for PolarSSL])
-+  PKG_CHECK_MODULES([polarssl], [polarssl],,
-+              [AC_MSG_WARN([No pkg-config for libpolarssl])])
-+  AC_CHECK_LIB([polarssl], [ssl_set_session],,
-+              [AC_MSG_ERROR([Cannot find required library: libpolarssl (aka polarssl)],1)])] )
-+AM_CONDITIONAL([USE_POLARSSL],[test "x$HAS_POLARSSL" = "x1"])
-+
-+if test "x$HAS_POLARSSL" != x1 ; then
-+  PKG_CHECK_MODULES([gnutls], [gnutls],,
-+      [AC_MSG_WARN([No pkg-config for libgnutls])])
-+  AC_CHECK_LIB([gnutls], [gnutls_record_recv],,
-       [AC_MSG_ERROR([Cannot find required library: libgnutls (aka gnutls)],1)])
--AC_CHECK_FUNCS(gnutls_transport_set_int2 gnutls_sec_param_to_pk_bits)
-+  AC_CHECK_FUNCS(gnutls_transport_set_int2 gnutls_sec_param_to_pk_bits)
-+fi
- # Bloody json library may be linked via -ljson, or -ljson-c depending on
- # the platform.  Try both.
diff --git a/sound/pianod/patches/020-Use_package_config_h_for_all_modules.patch b/sound/pianod/patches/020-Use_package_config_h_for_all_modules.patch
deleted file mode 100644 (file)
index 25569cc..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
---- a/src/libpiano/config.h
-+++ /dev/null
-@@ -1 +0,0 @@
--#define PACKAGE "libpiano"
---- a/src/libwaitress/config.h
-+++ /dev/null
-@@ -1 +0,0 @@
--#define PACKAGE "libwaitress"
---- a/src/libpiano/piano.h
-+++ b/src/libpiano/piano.h
-@@ -39,6 +39,8 @@ THE SOFTWARE.
-  * http://pan-do-ra-api.wikia.com
-  */
-+#define LIBPIANO_NAME "libpiano"
-+
- #define PIANO_RPC_HOST "tuner.pandora.com"
- #define PIANO_RPC_PATH "/services/json/?"
---- a/src/libwaitress/waitress.c
-+++ b/src/libwaitress/waitress.c
-@@ -922,14 +922,14 @@ static WaitressReturn_t WaitressSendRequ
-       if (WaitressProxyEnabled (waith) && !waith->url.tls) {
-               snprintf (buf, WAITRESS_BUFFER_SIZE,
-                       "%s http://%s:%s/%s HTTP/" WAITRESS_HTTP_VERSION "\r\n"
--                      "Host: %s\r\nUser-Agent: " PACKAGE "\r\nConnection: Close\r\n",
-+                      "Host: %s\r\nUser-Agent: " LIBWAITRESS_NAME "\r\nConnection: Close\r\n",
-                       (waith->method == WAITRESS_METHOD_GET ? "GET" : "POST"),
-                       waith->url.host,
-                       WaitressDefaultPort (&waith->url), path, waith->url.host);
-       } else {
-               snprintf (buf, WAITRESS_BUFFER_SIZE,
-                       "%s /%s HTTP/" WAITRESS_HTTP_VERSION "\r\n"
--                      "Host: %s\r\nUser-Agent: " PACKAGE "\r\nConnection: Close\r\n",
-+                      "Host: %s\r\nUser-Agent: " LIBWAITRESS_NAME "\r\nConnection: Close\r\n",
-                       (waith->method == WAITRESS_METHOD_GET ? "GET" : "POST"),
-                       path, waith->url.host);
-       }
---- a/src/libwaitress/waitress.h
-+++ b/src/libwaitress/waitress.h
-@@ -29,6 +29,8 @@ THE SOFTWARE.
- #include <stdbool.h>
- #include <gnutls/gnutls.h>
-+#define LIBWAITRESS_NAME "libwaitress"
-+
- #define WAITRESS_BUFFER_SIZE 10*1024
- typedef enum {
---- a/src/libpiano/request.c
-+++ b/src/libpiano/request.c
-@@ -40,6 +40,7 @@ THE SOFTWARE.
- #include <stdio.h>
- #include <string.h>
- /* needed for urlencode */
-+#include <config.h>
- #include <waitress.h>
- #include "piano.h"
diff --git a/sound/pianod/patches/030-Waitress_add_polarssl_variant.patch b/sound/pianod/patches/030-Waitress_add_polarssl_variant.patch
deleted file mode 100644 (file)
index ad27e9b..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
---- a/src/libwaitress/waitress.h
-+++ b/src/libwaitress/waitress.h
-@@ -27,7 +27,12 @@ THE SOFTWARE.
- #include <stdlib.h>
- #include <unistd.h>
- #include <stdbool.h>
-+
-+#if defined(USE_POLARSSL)
-+typedef struct _polarssl_ctx polarssl_ctx;
-+#else
- #include <gnutls/gnutls.h>
-+#endif
- #define LIBWAITRESS_NAME "libwaitress"
-@@ -102,8 +107,9 @@ typedef struct {
-       WaitressUrl_t url;
-       WaitressUrl_t proxy;
-+#if !defined(USE_POLARSSL)
-       gnutls_certificate_credentials_t tlsCred;
--
-+#endif
-       /* per-request data */
-       struct {
-               int sockfd;
-@@ -121,7 +127,11 @@ typedef struct {
-               WaitressReturn_t (*read) (void *, char *, const size_t, size_t *);
-               WaitressReturn_t (*write) (void *, const char *, const size_t);
-+#if defined(USE_POLARSSL)
-+              polarssl_ctx* sslCtx;
-+#else
-               gnutls_session_t tlsSession;
-+#endif
-       } request;
- } WaitressHandle_t;
---- a/src/pianod.c
-+++ b/src/pianod.c
-@@ -531,8 +531,11 @@ static bool initialize_libraries (APPSTA
-       gcry_check_version (NULL);
-       gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
-       gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
-+
-+#if !defined(USE_POLARSSL)
-       int crystatus = gnutls_global_init ();
-       if (crystatus == GNUTLS_E_SUCCESS) {
-+#endif
-               PianoReturn_t status = PianoInit (&app->ph, app->settings.partnerUser, app->settings.partnerPassword,
-                                                                                 app->settings.device, app->settings.inkey, app->settings.outkey);
-               if (status == PIANO_RET_OK) {
-@@ -545,11 +548,13 @@ static bool initialize_libraries (APPSTA
-               } else {
-                       flog (LOG_ERROR, "initialize_libraries: PianoInit: %s", PianoErrorToStr (status));
-               }
-+#if !defined(USE_POLARSSL)
-               gnutls_global_deinit ();
-       } else {
-               flog (LOG_ERROR, "initialize_libraries: gnutls_global_init: %s", gcry_strerror (crystatus));
-       }
-+#endif
-       return false;
- }
-@@ -728,7 +733,9 @@ int main (int argc, char **argv) {
-               PianoDestroyPlaylist (app.song_history);
-               PianoDestroyPlaylist (app.playlist);
-               WaitressFree (&app.waith);
-+#if !defined(USE_POLARSSL)
-               gnutls_global_deinit ();
-+#endif
-               settings_destroy (&app.settings);
-       }
-       
---- a/src/libwaitress/waitress.c
-+++ b/src/libwaitress/waitress.c
-@@ -41,11 +41,33 @@ THE SOFTWARE.
- #include <assert.h>
- #include <stdint.h>
--#include <gnutls/x509.h>
- #include "config.h"
- #include "waitress.h"
-+#if defined(USE_POLARSSL)
-+
-+#include <polarssl/ssl.h>
-+#include <polarssl/entropy.h>
-+#include <polarssl/ctr_drbg.h>
-+#include <polarssl/x509.h>
-+#include <polarssl/sha1.h>
-+
-+struct _polarssl_ctx
-+{
-+      ssl_context             ssl;
-+      ssl_session             session;
-+      entropy_context         entrophy;
-+      ctr_drbg_context        rnd;
-+};
-+
-+#else
-+
-+// Use gnutls by default (USE_POLARSSL not defined)
-+#include <gnutls/x509.h>
-+
-+#endif
-+
- #define strcaseeq(a,b) (strcasecmp(a,b) == 0)
- #define WAITRESS_HTTP_VERSION "1.1"
-@@ -56,6 +78,13 @@ typedef struct {
- static WaitressReturn_t WaitressReceiveHeaders (WaitressHandle_t *, size_t *);
-+// gnutls wants (void *) and polarssl want (unsigned char *)
-+#if defined(USE_POLARSSL)
-+#define BUFFER_CAST unsigned char
-+#else
-+#define BUFFER_CAST void
-+#endif
-+
- #define READ_RET(buf, count, size) \
-               if ((wRet = waith->request.read (waith, buf, count, size)) != \
-                               WAITRESS_RET_OK) { \
-@@ -444,7 +473,7 @@ static int WaitressPollLoop (int fd, sho
-  *    @param write count bytes
-  *    @return number of written bytes or -1 on error
-  */
--static ssize_t WaitressPollWrite (void *data, const void *buf, size_t count) {
-+static ssize_t WaitressPollWrite (void *data, const BUFFER_CAST *buf, size_t count) {
-       int pollres = -1;
-       ssize_t retSize;
-       WaitressHandle_t *waith = data;
-@@ -478,13 +507,20 @@ static WaitressReturn_t WaitressOrdinary
-       return waith->request.readWriteRet;
- }
--static WaitressReturn_t WaitressGnutlsWrite (void *data, const char *buf,
-+static WaitressReturn_t WaitressTlsWrite (void *data, const char *buf,
-               const size_t size) {
-       WaitressHandle_t *waith = data;
-+#if defined(USE_POLARSSL)
-+
-+      if (ssl_write (&waith->request.sslCtx->ssl, buf, size) < 0) {
-+              return WAITRESS_RET_TLS_WRITE_ERR;
-+      }
-+#else
-       if (gnutls_record_send (waith->request.tlsSession, buf, size) < 0) {
-               return WAITRESS_RET_TLS_WRITE_ERR;
-       }
-+#endif
-       return waith->request.readWriteRet;
- }
-@@ -494,7 +530,7 @@ static WaitressReturn_t WaitressGnutlsWr
-  *    @param buffer size
-  *    @return number of read bytes or -1 on error
-  */
--static ssize_t WaitressPollRead (void *data, void *buf, size_t count) {
-+static ssize_t WaitressPollRead (void *data, BUFFER_CAST *buf, size_t count) {
-       int pollres = -1;
-       ssize_t retSize;
-       WaitressHandle_t *waith = data;
-@@ -531,16 +567,34 @@ static WaitressReturn_t WaitressOrdinary
-       return waith->request.readWriteRet;
- }
--static WaitressReturn_t WaitressGnutlsRead (void *data, char *buf,
-+static WaitressReturn_t WaitressTlsRead (void *data, char *buf,
-               const size_t size, size_t *retSize) {
-       WaitressHandle_t *waith = data;
-+#if defined(USE_POLARSSL)
-+      int ret;
-+
-+      *retSize = 0;
-+      waith->request.readWriteRet = WAITRESS_RET_OK;
-+      ret = ssl_read (&waith->request.sslCtx->ssl, buf, size);
-+
-+      if (ret < 0) {
-+              if (ret != POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY) {
-+                      waith->request.readWriteRet = WAITRESS_RET_TLS_READ_ERR;
-+              }
-+
-+              return waith->request.readWriteRet;
-+      }
-+
-+      *retSize = ret;
-+#else
-       ssize_t ret = gnutls_record_recv (waith->request.tlsSession, buf, size);
-       if (ret < 0) {
-               return WAITRESS_RET_TLS_READ_ERR;
-       } else {
-               *retSize = ret;
-       }
-+#endif
-       return waith->request.readWriteRet;
- }
-@@ -727,10 +781,28 @@ static int WaitressParseStatusline (cons
- /*    verify server certificate
-  */
- static WaitressReturn_t WaitressTlsVerify (const WaitressHandle_t *waith) {
-+
-+#if defined(USE_POLARSSL)
-+      unsigned char fingerprint[20];
-+
-+      const x509_crt* cert = ssl_get_peer_cert (&waith->request.sslCtx->ssl);
-+
-+      if (NULL == cert) {
-+              return WAITRESS_RET_TLS_HANDSHAKE_ERR;
-+      }
-+
-+      sha1 (cert->raw.p, cert->raw.len, fingerprint);
-+
-+      if (memcmp (fingerprint, waith->tlsFingerprint, sizeof (fingerprint)) != 0) {
-+              return WAITRESS_RET_TLS_FINGERPRINT_MISMATCH;
-+      }
-+
-+#else
-       gnutls_session_t session = waith->request.tlsSession;
-       unsigned int certListSize;
-       const gnutls_datum_t *certList;
-       gnutls_x509_crt_t cert;
-+      char fingerprint[20];
-       if (gnutls_certificate_type_get (session) != GNUTLS_CRT_X509) {
-               return WAITRESS_RET_TLS_HANDSHAKE_ERR;
-@@ -750,7 +822,6 @@ static WaitressReturn_t WaitressTlsVerif
-               return WAITRESS_RET_TLS_HANDSHAKE_ERR;
-       }
--      char fingerprint[20];
-       size_t fingerprintSize = sizeof (fingerprint);
-       if (gnutls_x509_crt_get_fingerprint (cert, GNUTLS_DIG_SHA1, fingerprint,
-                       &fingerprintSize) != 0) {
-@@ -763,7 +834,7 @@ static WaitressReturn_t WaitressTlsVerif
-       }
-       gnutls_x509_crt_deinit (cert);
--
-+#endif
-       return WAITRESS_RET_OK;
- }
-@@ -880,6 +951,12 @@ static WaitressReturn_t WaitressConnect
-                       }
-               }
-+#if defined(USE_POLARSSL)
-+              ssl_set_hostname (&waith->request.sslCtx->ssl, waith->url.host);
-+              if (ssl_handshake (&waith->request.sslCtx->ssl) != 0) {
-+                      return WAITRESS_RET_TLS_HANDSHAKE_ERR;
-+              }
-+#else
-               /* Ignore return code as connection will likely still succeed */
-               gnutls_server_name_set (waith->request.tlsSession, GNUTLS_NAME_DNS,
-                               waith->url.host, strlen (waith->url.host));
-@@ -887,14 +964,15 @@ static WaitressReturn_t WaitressConnect
-               if (gnutls_handshake (waith->request.tlsSession) != GNUTLS_E_SUCCESS) {
-                       return WAITRESS_RET_TLS_HANDSHAKE_ERR;
-               }
-+#endif
-               if ((wRet = WaitressTlsVerify (waith)) != WAITRESS_RET_OK) {
-                       return wRet;
-               }
-               /* now we can talk encrypted */
--              waith->request.read = WaitressGnutlsRead;
--              waith->request.write = WaitressGnutlsWrite;
-+              waith->request.read = WaitressTlsRead;
-+              waith->request.write = WaitressTlsWrite;
-       }
-       return WAITRESS_RET_OK;
-@@ -1120,6 +1198,21 @@ WaitressReturn_t WaitressFetchCall (Wait
-       waith->request.contentLengthKnown = false;
-       if (waith->url.tls) {
-+#if defined(USE_POLARSSL)
-+              waith->request.sslCtx = calloc (1, sizeof(polarssl_ctx));
-+
-+              entropy_init (&waith->request.sslCtx->entrophy);
-+              ctr_drbg_init (&waith->request.sslCtx->rnd, entropy_func, &waith->request.sslCtx->entrophy, "libwaitress", 11);
-+              ssl_init (&waith->request.sslCtx->ssl);
-+
-+              ssl_set_endpoint (&waith->request.sslCtx->ssl, SSL_IS_CLIENT);
-+              ssl_set_authmode (&waith->request.sslCtx->ssl, SSL_VERIFY_NONE);
-+              ssl_set_rng (&waith->request.sslCtx->ssl, ctr_drbg_random, &waith->request.sslCtx->rnd);
-+              ssl_set_session (&waith->request.sslCtx->ssl, &waith->request.sslCtx->session);
-+              ssl_set_bio (&waith->request.sslCtx->ssl,
-+                           WaitressPollRead, waith,
-+                           WaitressPollWrite, waith);
-+#else
-               gnutls_init (&waith->request.tlsSession, GNUTLS_CLIENT);
-               gnutls_set_default_priority (waith->request.tlsSession);
-@@ -1137,6 +1230,7 @@ WaitressReturn_t WaitressFetchCall (Wait
-                               WaitressPollRead);
-               gnutls_transport_set_push_function (waith->request.tlsSession,
-                               WaitressPollWrite);
-+#endif
-       }
-       /* buffer is required for connect already */
-@@ -1148,15 +1242,22 @@ WaitressReturn_t WaitressFetchCall (Wait
-               if ((wRet = WaitressSendRequest (waith)) == WAITRESS_RET_OK) {
-                       wRet = WaitressReceiveResponse (waith);
-               }
-+#if !defined(USE_POLARSSL)
-               if (waith->url.tls) {
-                       gnutls_bye (waith->request.tlsSession, GNUTLS_SHUT_RDWR);
-               }
-+#endif
-       }
-       /* cleanup */
-       if (waith->url.tls) {
-+#if defined(USE_POLARSSL)
-+              ssl_free (&waith->request.sslCtx->ssl);
-+              free (waith->request.sslCtx);
-+#else
-               gnutls_deinit (waith->request.tlsSession);
-               gnutls_certificate_free_credentials (waith->tlsCred);
-+#endif
-       }
-       if (waith->request.sockfd != -1) {
-               close (waith->request.sockfd);
index eda080fa8b928cb106d6667b2b87ff3608a4e22f..11402f8e4287e2c74e5780e410a22bf2e59fd453 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Copyright (C) 2008 David Cooper <dave@kupesoft.com>
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2017 OpenWrt
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sox
-PKG_VERSION:=14.4.1
-PKG_RELEASE:=3
+PKG_VERSION:=14.4.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/sox
-PKG_MD5SUM:=ff9ca6aca972549de0e80e8e30ed379c
+PKG_MD5SUM:=81a6956d4330e75b5827316e44ae381e6f1e8928003c6aa45896da9041ea149c
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=LGPL-2.1 GPL-2.0
@@ -33,7 +33,7 @@ define Package/sox
   CATEGORY:=Sound
   DEPENDS:=+BUILD_PATENTED:lame-lib +BUILD_PATENTED:libmad +BUILD_PATENTED:libid3tag \
                +libvorbis +libvorbisidec +alsa-lib +libsndfile +libflac \
-               +libmagic +libpng +libffmpeg
+               +libmagic +libpng
   TITLE:=Sox is a general purpose sound converter/player/recorder
   URL:=http://sox.sourceforge.net/
 endef
@@ -54,7 +54,6 @@ define Build/Configure
                --without-libltdl \
                --with-ogg \
                --with-flac \
-               --with-ffmpeg \
                --without-amr-wb \
                --without-amr-nb \
                --without-samplerate \
index 7996ece926cbfbde4373ad2308ef0db267eadc4b..badd531df5136dc55ced44e7cc5282cfec991eae 100644 (file)
@@ -1,22 +1,22 @@
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
-@@ -144,7 +144,7 @@ EXTRA_DIST = monkey.wav optional-fmts.am
+@@ -145,7 +145,7 @@ EXTRA_DIST = monkey.wav optional-fmts.am
             CMakeLists.txt soxconfig.h.cmake \
             tests.sh testall.sh tests.bat testall.bat test-comments
  
--all: sox$(EXEEXT) play rec soxi sox_sample_test$(EXEEXT) example0$(EXEEXT) example1$(EXEEXT) example2$(EXEEXT) example3$(EXEEXT) example4$(EXEEXT) example5$(EXEEXT)
-+all: sox$(EXEEXT) play rec
+-all: sox$(EXEEXT) play$(EXEEXT) rec$(EXEEXT) soxi$(EXEEXT) sox_sample_test$(EXEEXT) example0$(EXEEXT) example1$(EXEEXT) example2$(EXEEXT) example3$(EXEEXT) example4$(EXEEXT) example5$(EXEEXT) example6$(EXEEXT)
++all: sox$(EXEEXT) play$(EXEEXT) rec$(EXEEXT)
  
- play rec: sox$(EXEEXT)
+ play$(EXEEXT) rec$(EXEEXT) soxi$(EXEEXT): sox$(EXEEXT)
        if test "$(PLAYRECLINKS)" = "yes"; then \
---- sox-14.4.1/src/Makefile.in
-+++ sox-14.4.1/src/Makefile.in
-@@ -2904,7 +2904,7 @@
-       uninstall-libLTLIBRARIES uninstall-pkglibLTLIBRARIES
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -3020,7 +3020,7 @@ uninstall-am: uninstall-binPROGRAMS unin
+       uninstall-pkglibLTLIBRARIES
  
  
--all: sox$(EXEEXT) play rec soxi sox_sample_test$(EXEEXT) example0$(EXEEXT) example1$(EXEEXT) example2$(EXEEXT) example3$(EXEEXT) example4$(EXEEXT) example5$(EXEEXT)
-+all: sox$(EXEEXT) play rec
+-all: sox$(EXEEXT) play$(EXEEXT) rec$(EXEEXT) soxi$(EXEEXT) sox_sample_test$(EXEEXT) example0$(EXEEXT) example1$(EXEEXT) example2$(EXEEXT) example3$(EXEEXT) example4$(EXEEXT) example5$(EXEEXT) example6$(EXEEXT)
++all: sox$(EXEEXT) play$(EXEEXT) rec$(EXEEXT)
  
- play rec: sox$(EXEEXT)
+ play$(EXEEXT) rec$(EXEEXT) soxi$(EXEEXT): sox$(EXEEXT)
        if test "$(PLAYRECLINKS)" = "yes"; then \
index 06454cdf5a1698e58510eb88f7350c1347706e8d..6a06301e62721603c5394bda89a3b7016ce675fc 100644 (file)
@@ -1,15 +1,15 @@
---- sox-14.4.1.orig/src/formats.c
-+++ sox-14.4.1/src/formats.c
-@@ -409,7 +409,7 @@ static void UNUSED rewind_pipe(FILE * fp
+--- a/src/formats.c
++++ b/src/formats.c
+@@ -413,7 +413,7 @@ static void UNUSED rewind_pipe(FILE * fp
  #if defined _FSTDIO || defined _NEWLIB_VERSION || defined __APPLE__
    fp->_p -= PIPE_AUTO_DETECT_SIZE;
    fp->_r += PIPE_AUTO_DETECT_SIZE;
 -#elif defined __GLIBC__
 +#elif defined __GLIBC__ && ! defined __UCLIBC__
    fp->_IO_read_ptr = fp->_IO_read_base;
- #elif defined _MSC_VER || defined _WIN32 || defined _WIN64 || defined _ISO_STDIO_ISO_H
-   fp->_ptr = fp->_base;
-@@ -417,7 +417,6 @@ static void UNUSED rewind_pipe(FILE * fp
+ #elif defined _MSC_VER || defined _WIN32 || defined _WIN64 || \
+       defined _ISO_STDIO_ISO_H || defined __sgi
+@@ -422,7 +422,6 @@ static void UNUSED rewind_pipe(FILE * fp
    /* To fix this #error, either simply remove the #error line and live without
     * file-type detection with pipes, or add support for your compiler in the
     * lines above.  Test with cat monkey.wav | ./sox --info - */
diff --git a/sound/sox/patches/020-ffmpeg-0.11.patch b/sound/sox/patches/020-ffmpeg-0.11.patch
deleted file mode 100644 (file)
index 61f6e23..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -15825,9 +15825,9 @@
-   cat >>confdefs.h <<_ACEOF
- #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for av_open_input_file in -lavformat" >&5
--$as_echo_n "checking for av_open_input_file in -lavformat... " >&6; }
--if ${ac_cv_lib_avformat_av_open_input_file+:} false; then :
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for avformat_open_input in -lavformat" >&5
-+$as_echo_n "checking for avformat_open_input in -lavformat... " >&6; }
-+if ${ac_cv_lib_avformat_avformat_open_input+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
-@@ -15841,27 +15841,27 @@
- #ifdef __cplusplus
- extern "C"
- #endif
--char av_open_input_file ();
-+char avformat_open_input ();
- int
- main ()
- {
--return av_open_input_file ();
-+return avformat_open_input ();
-   ;
-   return 0;
- }
- _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
--  ac_cv_lib_avformat_av_open_input_file=yes
-+  ac_cv_lib_avformat_avformat_open_input=yes
- else
--  ac_cv_lib_avformat_av_open_input_file=no
-+  ac_cv_lib_avformat_avformat_open_input=no
- fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avformat_av_open_input_file" >&5
--$as_echo "$ac_cv_lib_avformat_av_open_input_file" >&6; }
--if test "x$ac_cv_lib_avformat_av_open_input_file" = xyes; then :
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avformat_avformat_open_input" >&5
-+$as_echo "$ac_cv_lib_avformat_avformat_open_input" >&6; }
-+if test "x$ac_cv_lib_avformat_avformat_open_input" = xyes; then :
-   for ac_header in libavcodec/avcodec.h ffmpeg/avcodec.h
- do :
-   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-diff -Naur sox-14.4.0-orig/src/ffmpeg.c sox-14.4.0/src/ffmpeg.c
---- sox-14.4.0-orig/src/ffmpeg.c       2012-06-12 00:35:53.459027469 -0400
-+++ sox-14.4.0/src/ffmpeg.c    2012-06-12 00:36:26.539028545 -0400
-@@ -93,7 +93,7 @@
- #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
-   enc->error_resilience = 1;
- #else
--  enc->error_recognition = 1;
-+  enc->err_recognition = 1;
- #endif
-   if (!codec || avcodec_open(enc, codec) < 0)
-@@ -157,7 +157,7 @@
- static int startread(sox_format_t * ft)
- {
-   priv_t * ffmpeg = (priv_t *)ft->priv;
--  AVFormatParameters params;
-+  AVDictionary *params;
-   int ret;
-   int i;
-@@ -172,7 +172,7 @@
-   /* Open file and get format */
-   memset(&params, 0, sizeof(params));
--  if ((ret = av_open_input_file(&ffmpeg->ctxt, ft->filename, NULL, 0, &params)) < 0) {
-+  if ((ret = avformat_open_input(&ffmpeg->ctxt, ft->filename, NULL, &params)) < 0) {
-     lsx_fail("ffmpeg cannot open file for reading: %s (code %d)", ft->filename, ret);
-     return SOX_EOF;
-   }
-@@ -231,7 +231,7 @@
-     /* If input buffer empty, read more data */
-     if (ffmpeg->audio_buf_index * 2 >= ffmpeg->audio_buf_size) {
-       if ((ret = av_read_frame(ffmpeg->ctxt, pkt)) < 0 &&
--        (ret == AVERROR_EOF || url_ferror(ffmpeg->ctxt->pb)))
-+        (ret == AVERROR_EOF || ffmpeg->ctxt->pb->error))
-       break;
-       ffmpeg->audio_buf_size = audio_decode_frame(ffmpeg, ffmpeg->audio_buf_aligned, AVCODEC_MAX_AUDIO_FRAME_SIZE);
-       ffmpeg->audio_buf_index = 0;
-@@ -373,13 +373,6 @@
-       return SOX_EOF;
-   }
--  /* set the output parameters (must be done even if no
--     parameters). */
--  if (av_set_parameters(ffmpeg->ctxt, NULL) < 0) {
--    lsx_fail("ffmpeg invalid output format parameters");
--    return SOX_EOF;
--  }
--
-   /* Next line for debugging */
-   /* dump_format(ffmpeg->ctxt, 0, ft->filename, 1); */
-@@ -391,14 +384,14 @@
-   /* open the output file, if needed */
-   if (!(ffmpeg->fmt->flags & AVFMT_NOFILE)) {
--    if (url_fopen(&ffmpeg->ctxt->pb, ft->filename, URL_WRONLY) < 0) {
-+    if (avio_open(&ffmpeg->ctxt->pb, ft->filename, AVIO_FLAG_WRITE) < 0) {
-       lsx_fail("ffmpeg could not open `%s'", ft->filename);
-       return SOX_EOF;
-     }
-   }
-   /* write the stream header, if any */
--  av_write_header(ffmpeg->ctxt);
-+  avformat_write_header(ffmpeg->ctxt, NULL);
-   return SOX_SUCCESS;
- }
-@@ -478,7 +471,7 @@
- #if (LIBAVFORMAT_VERSION_INT < 0x340000)
-     url_fclose(&ffmpeg->ctxt->pb);
- #else
--    url_fclose(ffmpeg->ctxt->pb);
-+    avio_close(ffmpeg->ctxt->pb);
- #endif
-   }
-
diff --git a/sound/sox/patches/020-ffmpeg-2.x.patch b/sound/sox/patches/020-ffmpeg-2.x.patch
deleted file mode 100644 (file)
index 44e7ebb..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
---- a/src/ffmpeg.c
-+++ b/src/ffmpeg.c
-@@ -50,6 +50,10 @@
- #include <ctype.h>
- #include "ffmpeg.h"
-+#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
-+#define AVCODEC_MAX_AUDIO_FRAME_SIZE  192000
-+#endif
-+
- #ifndef CODEC_TYPE_AUDIO
- #define CODEC_TYPE_AUDIO AVMEDIA_TYPE_AUDIO
- #endif
-@@ -96,7 +100,7 @@ static int stream_component_open(priv_t
-   enc->err_recognition = 1;
- #endif
--  if (!codec || avcodec_open(enc, codec) < 0)
-+  if (!codec || avcodec_open2(enc, codec, NULL) < 0)
-     return -1;
-   if (enc->codec_type != AVMEDIA_TYPE_AUDIO) {
-     lsx_fail("ffmpeg CODEC %x is not an audio CODEC", enc->codec_type);
-@@ -178,7 +182,7 @@ static int startread(sox_format_t * ft)
-   }
-   /* Get CODEC parameters */
--  if ((ret = av_find_stream_info(ffmpeg->ctxt)) < 0) {
-+  if ((ret = avformat_find_stream_info(ffmpeg->ctxt, NULL)) < 0) {
-     lsx_fail("ffmpeg could not find CODEC parameters for %s", ft->filename);
-     return SOX_EOF;
-   }
-@@ -256,7 +260,7 @@ static int stopread(sox_format_t * ft)
-   if (ffmpeg->audio_stream >= 0)
-     stream_component_close(ffmpeg, ffmpeg->audio_stream);
-   if (ffmpeg->ctxt) {
--    av_close_input_file(ffmpeg->ctxt);
-+    avformat_close_input(&ffmpeg->ctxt);
-     ffmpeg->ctxt = NULL; /* safety */
-   }
-@@ -267,16 +271,21 @@ static int stopread(sox_format_t * ft)
- /*
-  * add an audio output stream
-  */
-+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(54, 28, 0)
-+static AVStream *add_audio_stream(sox_format_t * ft, AVFormatContext *oc, enum AVCodecID codec_id)
-+#else
- static AVStream *add_audio_stream(sox_format_t * ft, AVFormatContext *oc, enum CodecID codec_id)
-+#endif
- {
-   AVCodecContext *c;
-   AVStream *st;
--  st = av_new_stream(oc, 1);
-+  st = avformat_new_stream(oc, NULL);
-   if (!st) {
-     lsx_fail("ffmpeg could not alloc stream");
-     return NULL;
-   }
-+  st->id = 1;
-   c = st->codec;
-   c->codec_id = codec_id;
-@@ -306,7 +315,7 @@ static int open_audio(priv_t * ffmpeg, A
-   }
-   /* open it */
--  if (avcodec_open(c, codec) < 0) {
-+  if (avcodec_open2(c, codec, NULL) < 0) {
-     lsx_fail("ffmpeg could not open CODEC");
-     return SOX_EOF;
-   }
index 1e25305a7e92b3a1e2a07c7e38374cddbcf3fab9..15c0cc28fb0f1a82f7c87a1d0616995afe002d94 100644 (file)
@@ -13,7 +13,7 @@ PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/ccrypt
-PKG_MD5SUM:=44ddd763465c254df83f5d38851d04d7
+PKG_MD5SUM:=87d66da2170facabf6f2fc073586ae2c7320d4689980cfca415c74688e499ba0
 PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
 PKG_LICENSE:=GPLv2+
 
index 5273231dc9701ddb24935c952544b3b59e549e68..6ee0697c6217cf92989c0034528680b4afc6a080 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=grep
-PKG_VERSION:=2.25
+PKG_VERSION:=2.26
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/grep
-PKG_MD5SUM:=04e96b0e6f0fe6a180ae62c88fcd0af6
+PKG_MD5SUM:=afdd61c7221434722671baf002ac9267
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
index 78a8552fc9dd89b94bcf71b74001547dcc347035..c5adad734b9c6a8ad2e3402b2a955a71c689da1e 100644 (file)
@@ -12,9 +12,9 @@ PKG_VERSION:=1.9.1
 PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.issihosts.com/$(PKG_NAME) \
-       http://pkgs.fedoraproject.org/repo/pkgs/haveged/haveged-1.9.1.tar.gz/015ff58cd10607db0e0de60aeca2f5f8/
-PKG_MD5SUM:=015ff58cd10607db0e0de60aeca2f5f8
+PKG_SOURCE_URL:=@SF/haveged \
+               http://www.issihosts.com/$(PKG_NAME)
+PKG_MD5SUM:=9c2363ed9542a6784ff08e247182137e71f2ddb79e8e6c1ac4ad50d21ced3715
 PKG_LICENSE:=GPLv3
 
 PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
index a66db4bf5b8bb8947bb08122ada5600918fce349..593a9c02fbac51387fcbca0bef3a9ab124f61004 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tmux
-PKG_VERSION:=2.2
+PKG_VERSION:=2.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/tmux/tmux/releases/download/$(PKG_VERSION)
-PKG_MD5SUM:=bd95ee7205e489c62c616bb7af040099
+PKG_MD5SUM:=55313e132f0f42de7e020bf6323a1939ee02ab79c48634aa07475db41573852b
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 
 PKG_LICENSE:=ISC