--- /dev/null
+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))
--- /dev/null
+@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);
+};
--- /dev/null
+#!/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
+}
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
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
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)"
--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)"
$(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
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
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
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
#
PYTHON_VERSION:=2.7
-PYTHON_VERSION_MICRO:=12
+PYTHON_VERSION_MICRO:=13
--- /dev/null
+--- 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:
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
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
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)))
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
$(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) \
--- /dev/null
+#
+# 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
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
/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION) \
/usr/include/python$(PYTHON_VERSION) \
/usr/lib/pkgconfig \
+ , \
+ DO_NOT_ADD_TO_PACKAGE_DEPENDS \
))
$(eval $(call Py3BasePackage,python3-lib2to3, \
/usr/lib/python$(PYTHON3_VERSION)/lib2to3 \
+ , \
+ DO_NOT_ADD_TO_PACKAGE_DEPENDS \
))
# 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
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.
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
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)" \
__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
#
-# 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.
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>
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.
-----------------------------------------------------------------------------
- date_time
- exception
- filesystem
- - fiber (Requires GCC v5 and up) - BROKEN
+ - fiber (Requires GCC v5 and up)
- graph
- - graph-parallel
- iostreams
- 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: 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
- cxx11_constexpr
- cxx11_defaulted_functions
- cxx11_final
+- cxx11_hdr_mutex
- cxx11_hdr_tuple
- cxx11_lambdas
- cxx11_noexcept
--- /dev/null
+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))
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
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:=
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 \
#
-# 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>
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.
* => 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
* [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
* 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": {
"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"
}
}
}
}
</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
http://example.com/
</code></pre>
-**example whitelist entry (/etc/adblock/adblock.whitelist):**
+**whitelist entry (/etc/adblock/adblock.whitelist):**
<pre><code>
here.com
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)
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'
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
#
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"
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()
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
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
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
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}}\""
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
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
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
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
-#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"
--- /dev/null
+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
+
--- /dev/null
+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
+
#
-# 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.
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
$(call Package/net-snmp/Default)
SECTION:=libs
CATEGORY:=Libraries
+ DEPENDS:=+PACKAGE_libnl-core:libnl-core
TITLE:=Open source SNMP implementation (libraries)
endef
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
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
SNMP_MIB_MODULES_INCLUDED = \
+ agentx \
host/hr_device \
host/hr_disk \
host/hr_filesys \
SNMP_MIB_MODULES_EXCLUDED = \
agent_mibs \
- agentx \
disman/event \
disman/schedule \
hardware \
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)
--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)" \
$(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
$(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))
config agent
option agentaddress UDP:161
+config agentx
+ option agentxsocket /var/run/agentx.sock
+
config com2sec public
option secname ro
option source default
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
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
--- 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;
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"))
---- 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 \
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)
-
--- 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});
}
+
+ 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
--- 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'
+ finish_cmds=''
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
- # This implies no fast_install, which is unacceptable.
+
--- 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)
+++ /dev/null
---- 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);
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
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
#
-# 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.
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>
#
-# 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.
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>
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
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
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
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
+++ /dev/null
---- 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])
+++ /dev/null
---- 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.
+++ /dev/null
---- 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"
+++ /dev/null
---- 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);
#
# 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.
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
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
--without-libltdl \
--with-ogg \
--with-flac \
- --with-ffmpeg \
--without-amr-wb \
--without-amr-nb \
--without-samplerate \
--- 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 \
---- 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 - */
+++ /dev/null
---- 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(¶ms, 0, sizeof(params));
-- if ((ret = av_open_input_file(&ffmpeg->ctxt, ft->filename, NULL, 0, ¶ms)) < 0) {
-+ if ((ret = avformat_open_input(&ffmpeg->ctxt, ft->filename, NULL, ¶ms)) < 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
- }
-
+++ /dev/null
---- 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;
- }
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+
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
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>
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