From: Yousong Zhou Date: Fri, 11 Mar 2016 17:05:11 +0000 (+0800) Subject: Merge pull request #2413 from KurdyMalloy/poco X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=a0b7f467c915c0f4a67ac696e945c2253019472c;hp=6123f54c951361efb23e9b1fe08d56bacb52220d;p=feed%2Fpackages.git Merge pull request #2413 from KurdyMalloy/poco poco: add package for the Poco C++ library --- diff --git a/admin/debootstrap/Makefile b/admin/debootstrap/Makefile index 5aab0c680d..d76bf65f9e 100644 --- a/admin/debootstrap/Makefile +++ b/admin/debootstrap/Makefile @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=debootstrap -PKG_VERSION:=1.0.78 +PKG_VERSION:=1.0.79 PKG_RELEASE:=1 PKG_MAINTAINER=Daniel Golle PKG_SOURCE:=$(PKG_NAME)-udeb_$(PKG_VERSION)_all.udeb PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/d/debootstrap -PKG_MD5SUM:=687d56b8ebde6f35a2ad322be9731723 +PKG_MD5SUM:=48dae2747db960f5484fe5355678c249 PKG_LICENSE:=Unique PKG_LICENSE_FILES:=debian/copyright diff --git a/devel/pkg-config/Makefile b/devel/pkg-config/Makefile index 36abc5dc18..7fa0076227 100644 --- a/devel/pkg-config/Makefile +++ b/devel/pkg-config/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pkg-config -PKG_VERSION:=0.29 -PKG_RELEASE:=2 +PKG_VERSION:=0.29.1 +PKG_RELEASE:=1 PKG_SOURCE_URL:=http://pkgconfig.freedesktop.org/releases/ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_MD5SUM:=77f27dce7ef88d0634d0d6f90e03a77f +PKG_MD5SUM:=f739a28cae4e0ca291f82d1d41ef107d PKG_MAINTAINER:=Heinrich Schuchardt PKG_LICENSE:=GPL-2+ diff --git a/lang/perl-cgi/Makefile b/lang/perl-cgi/Makefile index 9d2eac3309..5900361fcc 100644 --- a/lang/perl-cgi/Makefile +++ b/lang/perl-cgi/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=perl-cgi -PKG_VERSION:=4.25 +PKG_VERSION:=4.26 PKG_RELEASE:=1 PKG_SOURCE_URL:=http://www.cpan.org/authors/id/L/LE/LEEJO PKG_SOURCE:=CGI-$(PKG_VERSION).tar.gz -PKG_MD5SUM:=e047bec455105cdfa413b9c776f95bb9 +PKG_MD5SUM:=bf606eda81c9dc5347c1f3483732b2d2 PKG_LICENSE:=GPL Artistic-2.0 PKG_MAINTAINER:=Marcel Denia diff --git a/lang/python-cffi/Makefile b/lang/python-cffi/Makefile index 27ac3ee206..f3bcabfc4c 100644 --- a/lang/python-cffi/Makefile +++ b/lang/python-cffi/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=cffi PKG_VERSION:=1.5.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://pypi.python.org/packages/source/c/cffi @@ -45,7 +45,7 @@ define Build/Compile endef define Host/Compile - $(call Build/Compile/HostPyMod,,install --prefix="/usr" --root="$(STAGING_DIR)/host") + $(call Build/Compile/HostPyMod,,install --prefix="" --root="$(STAGING_DIR)/host") endef define Host/Install diff --git a/lang/python-cryptography/Makefile b/lang/python-cryptography/Makefile index 317c4bf803..27eef8590f 100644 --- a/lang/python-cryptography/Makefile +++ b/lang/python-cryptography/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=cryptography -PKG_VERSION:=1.2.2 +PKG_VERSION:=1.2.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://pypi.python.org/packages/source/c/cryptography -PKG_MD5SUM:=2b25eebd1d3c6bae52b46f0dcec74dfb +PKG_MD5SUM:=5474d2b3e8c7555a60852e48d2743f85 PKG_BUILD_DEPENDS:=python-cffi/host diff --git a/lang/python-pip/Makefile b/lang/python-pip/Makefile index f260e7ffee..789f41e2d9 100644 --- a/lang/python-pip/Makefile +++ b/lang/python-pip/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-pip -PKG_VERSION:=7.1.2 -PKG_RELEASE:=3 +PKG_VERSION:=8.1.0 +PKG_RELEASE:=1 PKG_SOURCE:=pip-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://pypi.python.org/packages/source/p/pip/ -PKG_MD5SUM:=3823d2343d9f3aaab21cf9c917710196 +PKG_MD5SUM:=e9c3844db343f47d16040b32ad9072be PKG_BUILD_DIR:=$(BUILD_DIR)/pip-$(PKG_VERSION) PKG_USE_MIPS16:=0 diff --git a/lang/python-ply/Makefile b/lang/python-ply/Makefile index 5f1a95dd3c..c92de2edfc 100644 --- a/lang/python-ply/Makefile +++ b/lang/python-ply/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ply PKG_VERSION:=3.8 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.dabeaz.com/ply @@ -45,15 +45,8 @@ define Build/Compile $(call Build/Compile/PyMod,,install --prefix="/usr" --root="$(PKG_INSTALL_DIR)") endef -define Build/InstallDev - $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR) - $(CP) \ - $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \ - $(1)$(PYTHON_PKG_DIR) -endef - define Host/Compile - $(call Build/Compile/HostPyMod,,install --prefix="/usr" --root="$(STAGING_DIR)/host") + $(call Build/Compile/HostPyMod,,install --prefix="" --root="$(STAGING_DIR)/host") endef define Host/Install diff --git a/lang/python-pycparser/Makefile b/lang/python-pycparser/Makefile index b657cd8194..8acab48f00 100644 --- a/lang/python-pycparser/Makefile +++ b/lang/python-pycparser/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pycparser PKG_VERSION:=2.14 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://pypi.python.org/packages/source/p/pycparser @@ -47,7 +47,7 @@ define Build/Compile endef define Host/Compile - $(call Build/Compile/HostPyMod,,install --prefix="/usr" --root="$(STAGING_DIR)/host") + $(call Build/Compile/HostPyMod,,install --prefix="" --root="$(STAGING_DIR)/host") endef define Host/Install diff --git a/lang/python-setuptools/Makefile b/lang/python-setuptools/Makefile index 880dd0ba84..e569ac9c1d 100644 --- a/lang/python-setuptools/Makefile +++ b/lang/python-setuptools/Makefile @@ -1,19 +1,19 @@ # -# Copyright (C) 2014 OpenWrt.org +# Copyright (C) 2014-2016 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:=python-setuptools -PKG_VERSION:=19.4 +PKG_VERSION:=20.2.2 PKG_RELEASE:=1 PKG_SOURCE:=setuptools-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://pypi.python.org/packages/source/s/setuptools/ -PKG_MD5SUM:=c5a7d90c1e0acf8c4ec5c2bf31bc25b5 +PKG_MD5SUM:=bf37191cb4c1472fb61e6f933d2006b1 HOST_BUILD_DEPENDS:=python/host @@ -60,7 +60,7 @@ endef define Host/Compile $(call Build/Compile/HostPyMod,,\ - install --root="$(STAGING_DIR)/host" --prefix="/usr" \ + install --root="$(STAGING_DIR)/host" --prefix="" \ --single-version-externally-managed \ ) endef diff --git a/lang/python/Makefile b/lang/python/Makefile index 6631cc04f1..20442b3991 100644 --- a/lang/python/Makefile +++ b/lang/python/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2015 OpenWrt.org +# Copyright (C) 2006-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -12,7 +12,7 @@ include ./files/python-package.mk PKG_NAME:=python PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO) -PKG_RELEASE:=4 +PKG_RELEASE:=5 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION) @@ -29,7 +29,7 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION) HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/Python-$(PKG_VERSION) PKG_BUILD_DEPENDS:=python/host -HOST_BUILD_DEPENDS:=bzip2/host expat/host +HOST_BUILD_DEPENDS:=bzip2/host expat/host libffi/host include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/package.mk @@ -144,7 +144,7 @@ define Build/InstallDev $(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \ $(1)/usr/include/ $(CP) \ - $(STAGING_DIR)/host/usr/lib/python$(PYTHON_VERSION) \ + $(STAGING_DIR)/host/lib/python$(PYTHON_VERSION) \ $(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON_VERSION).so* \ $(1)/usr/lib/ $(CP) \ @@ -221,8 +221,8 @@ HOST_CONFIGURE_ARGS+= \ --without-cxx-main \ --without-pymalloc \ --with-threads \ - --prefix=$(STAGING_DIR)/host/usr \ --with-system-expat=$(STAGING_DIR)/host \ + --with-system-ffi="$(STAGING_DIR)/host" \ --with-ensurepip=upgrade \ CONFIG_SITE= \ CFLAGS="$(HOST_CFLAGS)" diff --git a/lang/python/files/python-host.mk b/lang/python/files/python-host.mk index 7831eb6834..0327f3ad23 100644 --- a/lang/python/files/python-host.mk +++ b/lang/python/files/python-host.mk @@ -1,38 +1,36 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # -HOST_PYTHON_INC_DIR:=$(STAGING_DIR)/host/usr/include/python$(PYTHON_VERSION) +HOST_PYTHON_DIR:=$(STAGING_DIR)/host +HOST_PYTHON_INC_DIR:=$(HOST_PYTHON_DIR)/include/python$(PYTHON_VERSION) +HOST_PYTHON_LIB_DIR:=$(HOST_PYTHON_DIR)/lib/python$(PYTHON_VERSION) -HOST_PYTHON_PKG_DIR:=/usr/lib/python$(PYTHON_VERSION)/site-packages +HOST_PYTHON_PKG_DIR:=/lib/python$(PYTHON_VERSION)/site-packages + +HOST_PYTHON_BIN:=$(HOST_PYTHON_DIR)/bin/python$(PYTHON_VERSION) HOST_PYTHONPATH:=$(HOST_PYTHON_LIB_DIR):$(STAGING_DIR)/host/$(HOST_PYTHON_PKG_DIR) + define HostPython if [ "$(strip $(3))" == "HOST" ]; then \ export PYTHONPATH="$(HOST_PYTHONPATH)"; \ - export _python_sysroot="$(STAGING_DIR)/host"; \ + export PYTHONDONTWRITEBYTECODE=0; \ else \ export PYTHONPATH="$(PYTHONPATH)"; \ + export PYTHONDONTWRITEBYTECODE=1; \ export _python_sysroot="$(STAGING_DIR)"; \ + export _python_prefix="/usr"; \ + export _python_exec_prefix="/usr"; \ fi; \ export PYTHONOPTIMIZE=""; \ - export PYTHONDONTWRITEBYTECODE=1; \ - export _python_prefix="/usr"; \ - export _python_exec_prefix="/usr"; \ $(1) \ $(HOST_PYTHON_BIN) $(2); endef -# These configure args are needed in detection of path to Python header files -# using autotools. -HOST_CONFIGURE_ARGS += \ - _python_sysroot="$(STAGING_DIR)/host" \ - _python_prefix="/usr" \ - _python_exec_prefix="/usr" - # $(1) => build subdir # $(2) => additional arguments to setup.py # $(3) => additional variables @@ -48,7 +46,6 @@ define Build/Compile/HostPyMod CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON_INC_DIR)" \ LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON_VERSION)" \ _PYTHON_HOST_PLATFORM=linux2 \ - __PYVENV_LAUNCHER__="/usr/bin/$(PYTHON)" \ $(3) \ , \ ./setup.py $(2) \ diff --git a/lang/python/files/python-package.mk b/lang/python/files/python-package.mk index e8c049224b..1f67718455 100644 --- a/lang/python/files/python-package.mk +++ b/lang/python/files/python-package.mk @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2015 OpenWrt.org +# Copyright (C) 2006-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -17,9 +17,6 @@ PYTHON_PKG_DIR:=/usr/lib/python$(PYTHON_VERSION)/site-packages PYTHON:=python$(PYTHON_VERSION) -HOST_PYTHON_LIB_DIR:=$(STAGING_DIR)/host/usr/lib/python$(PYTHON_VERSION) -HOST_PYTHON_BIN:=$(STAGING_DIR)/host/bin/python2 - PYTHONPATH:=$(PYTHON_LIB_DIR):$(STAGING_DIR)/$(PYTHON_PKG_DIR):$(PKG_INSTALL_DIR)/$(PYTHON_PKG_DIR) # These configure args are needed in detection of path to Python header files diff --git a/lang/python3-pip/Makefile b/lang/python3-pip/Makefile index 2383520627..08b2651421 100644 --- a/lang/python3-pip/Makefile +++ b/lang/python3-pip/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python3-pip -PKG_VERSION:=7.1.2 +PKG_VERSION:=8.1.0 PKG_RELEASE:=1 PKG_SOURCE:=pip-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://pypi.python.org/packages/source/p/pip/ -PKG_MD5SUM:=3823d2343d9f3aaab21cf9c917710196 +PKG_MD5SUM:=e9c3844db343f47d16040b32ad9072be PKG_LICENSE:=MIT diff --git a/lang/python3-setuptools/Makefile b/lang/python3-setuptools/Makefile index ea299ea02f..a11788648a 100644 --- a/lang/python3-setuptools/Makefile +++ b/lang/python3-setuptools/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python3-setuptools -PKG_VERSION:=19.4 +PKG_VERSION:=20.2.2 PKG_RELEASE:=1 PKG_SOURCE:=setuptools-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://pypi.python.org/packages/source/s/setuptools/ -PKG_MD5SUM:=c5a7d90c1e0acf8c4ec5c2bf31bc25b5 +PKG_MD5SUM:=bf37191cb4c1472fb61e6f933d2006b1 PKG_LICENSE:=PSF diff --git a/lang/ruby/Makefile b/lang/ruby/Makefile index e28bc0aa63..943fbd0672 100644 --- a/lang/ruby/Makefile +++ b/lang/ruby/Makefile @@ -10,14 +10,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ruby -PKG_VERSION:=2.2.4 -PKG_RELEASE:=2 +PKG_VERSION:=2.3.0 +PKG_RELEASE:=1 -PKG_LIBVER:=2.2 +PKG_LIBVER:=2.3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://cache.ruby-lang.org/pub/ruby/$(PKG_LIBVER)/ -PKG_MD5SUM:=c3d65f6d2ebe90dda81a37885ea244f5 +PKG_MD5SUM:=f0d9f9bbdc87372ca98988a571875819 PKG_MAINTAINER:=Luiz Angelo Daros de Luca PKG_LICENSE:=BSD-2-Clause PKG_LICENSE_FILES:=COPYING @@ -35,9 +35,13 @@ HOST_CONFIGURE_ARGS += \ --disable-install-doc \ --disable-install-rdoc \ --disable-install-capi \ - --with-static-linked-ext \ + --without-gmp \ --with-out-ext=tk,tk/tkutil,win32,win32ole,dbm,gdbm,readline \ +# Does not compile with this. Workaround is --without-gmp +# https://bugs.ruby-lang.org/issues/11940 + #--with-static-linked-ext \ + # even not used, host build with restricted exts results in gems not being # compiled for target (probably some cross compiling problem like checking # host for selecting target features) @@ -83,6 +87,13 @@ define Build/InstallDev ) | ( cd $(1); $(TAR) -xf - ) endef +define Host/Install + # When ruby version is updated, make install asks in some cases before replace + # an existing different file. Remove them before install and avoid the interaction + rm -f $(HOST_BUILD_PREFIX)/bin/rake + $(call Host/Install/Default) +endef + define Package/ruby/Default SUBMENU:=Ruby SECTION:=lang @@ -196,6 +207,7 @@ endef define Package/ruby-cgi/files /usr/lib/ruby/$(PKG_LIBVER)/cgi /usr/lib/ruby/$(PKG_LIBVER)/cgi.rb +/usr/lib/ruby/$(PKG_LIBVER)/*/cgi/escape.so endef define Package/ruby-csv/files @@ -226,6 +238,18 @@ define Package/ruby-debuglib/files /usr/lib/ruby/$(PKG_LIBVER)/*/objspace.so endef +define Package/ruby-did-you-mean/files +/usr/lib/ruby/gems/$(PKG_LIBVER)/specifications/did_you_mean-*.gemspec +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/did_you_mean-*/ +endef +define Package/ruby-did-you-mean/files-excluded +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/did_you_mean-*/benchmark +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/did_you_mean-*/doc +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/did_you_mean-*/evaluation +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/did_you_mean-*/test +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/did_you_mean-*/*.md +endef + define Package/ruby-digest/description Provides digest* files. Can be configured to use OpenSSL or bundled hash functions. @@ -363,6 +387,7 @@ define Package/ruby-minitest/files endef define Package/ruby-minitest/files-excluded /usr/lib/ruby/gems/$(PKG_LIBVER)/gems/minitest-*/test +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/minitest-*/*.rdoc /usr/lib/ruby/gems/$(PKG_LIBVER)/gems/minitest-*/*.txt endef @@ -413,6 +438,15 @@ define Package/ruby-net/files /usr/lib/ruby/$(PKG_LIBVER)/net/* endef +define Package/ruby-net-telnet/files +/usr/lib/ruby/gems/$(PKG_LIBVER)/specifications/net-telnet-*.gemspec +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/net-telnet-*/ +endef +define Package/ruby-net-telnet/files-excluded +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/net-telnet-*/*.md +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/net-telnet-*/*.txt +endef + define Package/ruby-nkf/files /usr/lib/ruby/$(PKG_LIBVER)/kconv.rb /usr/lib/ruby/$(PKG_LIBVER)/*/nkf.so @@ -456,6 +490,7 @@ endef define Package/ruby-psych/files /usr/lib/ruby/$(PKG_LIBVER)/psych /usr/lib/ruby/$(PKG_LIBVER)/psych.rb +/usr/lib/ruby/$(PKG_LIBVER)/psych_jars.rb /usr/lib/ruby/$(PKG_LIBVER)/*/psych.so /usr/lib/ruby/gems/$(PKG_LIBVER)/specifications/default/psych-*.gemspec endef @@ -466,19 +501,21 @@ define Package/ruby-racc/files endef define Package/ruby-rake/files -/usr/lib/ruby/$(PKG_LIBVER)/rake/ -/usr/lib/ruby/$(PKG_LIBVER)/rake.rb -/usr/lib/ruby/gems/$(PKG_LIBVER)/specifications/default/rake-*.gemspec +/usr/lib/ruby/gems/$(PKG_LIBVER)/specifications/rake-*.gemspec /usr/lib/ruby/gems/$(PKG_LIBVER)/gems/rake-*/ endef +define Package/ruby-rake/files-excluded +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/rake-*/doc +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/rake-*/test +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/rake-*/*.rdoc +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/rake-*/*.txt +/usr/lib/ruby/gems/$(PKG_LIBVER)/gems/rake-10.4.2/lib/rake/runtest.rb +endef define Package/ruby-rake/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rake $(1)/usr/bin/; $(call RubyBuildPackage/install,rake,$(1)) endef -define Package/ruby-rake/files-excluded -/usr/lib/ruby/$(PKG_LIBVER)/rake/runtest.rb -endef define Package/ruby-rbconfig/files /usr/lib/ruby/$(PKG_LIBVER)/*/rbconfig.rb @@ -660,6 +697,7 @@ $(eval $(call RubyBuildPackage,csv,CSV library,+ruby-patterns +ruby-datetime +ru $(eval $(call RubyBuildPackage,datetime,date library)) $(eval $(call RubyBuildPackage,dbm,support for dbm,+libdb47)) $(eval $(call RubyBuildPackage,debuglib,debug library,+ruby-multithread +ruby-prettyprint)) +$(eval $(call RubyBuildPackage,did-you-mean,did you mean? experience,+ruby-misc)) $(eval $(call RubyBuildPackage,digest,Digest Library,+RUBY_DIGEST_USE_OPENSSL:libopenssl)) $(eval $(call RubyBuildPackage,drb,distributed object system,+ruby-filelib +ruby-patterns +ruby-socket)) $(eval $(call RubyBuildPackage,enc,character re-coding library charset (small subset),)) @@ -679,8 +717,9 @@ $(eval $(call RubyBuildPackage,misc,standard libraries subset (miscelaneous file $(eval $(call RubyBuildPackage,mkmf,makefile library,+ruby-filelib +ruby-optparse +ruby-rbconfig)) $(eval $(call RubyBuildPackage,multithread,multithread library,+ruby-misc)) $(eval $(call RubyBuildPackage,net,Network Protocols Library,+ruby-datetime +ruby-digest +ruby-filelib +ruby-uri)) +$(eval $(call RubyBuildPackage,net-telnet,telnet client,+ruby-net)) $(eval $(call RubyBuildPackage,nkf,Network Kanji Filter,+ruby-enc)) -$(eval $(call RubyBuildPackage,openssl,support for openssl,+ruby-enc +ruby-misc +libopenssl)) +$(eval $(call RubyBuildPackage,openssl,support for openssl,+ruby-enc +ruby-multithread +libopenssl)) $(eval $(call RubyBuildPackage,optparse,command-line option analysis,+ruby-misc)) $(eval $(call RubyBuildPackage,patterns,design patterns implementation,+ruby-multithread)) $(eval $(call RubyBuildPackage,powerassert,Gem power_assert,+ruby-ripper)) diff --git a/lang/ruby/patches/001-acinclude.m4_rename_aclocal.m4.patch b/lang/ruby/patches/001-acinclude.m4_rename_aclocal.m4.patch new file mode 100644 index 0000000000..271bd71c11 --- /dev/null +++ b/lang/ruby/patches/001-acinclude.m4_rename_aclocal.m4.patch @@ -0,0 +1,152 @@ +https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/53414 + +Fixes: + +https://bugs.ruby-lang.org/issues/11941 + +It might be incorporated in the following release + +Index: aclocal.m4 +=================================================================== +--- a/aclocal.m4 (revision 53413) ++++ b/aclocal.m4 (revision 53414) +@@ -1,46 +0,0 @@ +-# -*- autoconf -*- +- +-AC_DEFUN([_COLORIZE_RESULT_PREPARE], [ +- msg_checking= msg_result_yes= msg_result_no= msg_result_other= msg_reset= +- AS_IF([test "x${CONFIGURE_TTY}" = xyes -o -t 1], [ +- msg_begin="`tput smso 2>/dev/null`" +- AS_CASE(["$msg_begin"], ['@<:@'*m], +- [msg_begin="`echo "$msg_begin" | sed ['s/[0-9]*m$//']`" +- msg_checking="${msg_begin}33m" +- AS_IF([test ${TEST_COLORS:+set}], [ +- msg_result_yes=[`expr ":$TEST_COLORS:" : ".*:pass=\([^:]*\):"`] +- msg_result_no=[`expr ":$TEST_COLORS:" : ".*:fail=\([^:]*\):"`] +- msg_result_other=[`expr ":$TEST_COLORS:" : ".*:skip=\([^:]*\):"`] +- ]) +- msg_result_yes="${msg_begin}${msg_result_yes:-32;1}m" +- msg_result_no="${msg_begin}${msg_result_no:-31;1}m" +- msg_result_other="${msg_begin}${msg_result_other:-33;1}m" +- msg_reset="${msg_begin}m" +- ]) +- AS_UNSET(msg_begin) +- ]) +- AS_REQUIRE_SHELL_FN([colorize_result], +- [AS_FUNCTION_DESCRIBE([colorize_result], [MSG], [Colorize result])], +- [AS_CASE(["$[]1"], +- [yes], [AS_ECHO(["${msg_result_yes}$[]1${msg_reset}]")], +- [no], [AS_ECHO(["${msg_result_no}$[]1${msg_reset}]")], +- [AS_ECHO(["${msg_result_other}$[]1${msg_reset}]")])]) +-]) +- +-AC_DEFUN([COLORIZE_RESULT], [AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl +- AS_LITERAL_IF([$1], +- [m4_case([$1], +- [yes], [AS_ECHO(["${msg_result_yes}$1${msg_reset}"])], +- [no], [AS_ECHO(["${msg_result_no}$1${msg_reset}"])], +- [AS_ECHO(["${msg_result_other}$1${msg_reset}"])])], +- [colorize_result "$1"]) dnl +-]) +- +-AC_DEFUN([AC_CHECKING],[dnl +-AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl +-AS_MESSAGE([checking ${msg_checking}$1${msg_reset}...])]) +- +-AC_DEFUN([AC_MSG_RESULT], [dnl +-{ _AS_ECHO_LOG([result: $1]) +-COLORIZE_RESULT([$1]); dnl +-}]) +Index: acinclude.m4 +=================================================================== +--- a/acinclude.m4 (revision 0) ++++ b/acinclude.m4 (revision 53414) +@@ -0,0 +1,46 @@ ++# -*- autoconf -*- ++ ++AC_DEFUN([_COLORIZE_RESULT_PREPARE], [ ++ msg_checking= msg_result_yes= msg_result_no= msg_result_other= msg_reset= ++ AS_IF([test "x${CONFIGURE_TTY}" = xyes -o -t 1], [ ++ msg_begin="`tput smso 2>/dev/null`" ++ AS_CASE(["$msg_begin"], ['@<:@'*m], ++ [msg_begin="`echo "$msg_begin" | sed ['s/[0-9]*m$//']`" ++ msg_checking="${msg_begin}33m" ++ AS_IF([test ${TEST_COLORS:+set}], [ ++ msg_result_yes=[`expr ":$TEST_COLORS:" : ".*:pass=\([^:]*\):"`] ++ msg_result_no=[`expr ":$TEST_COLORS:" : ".*:fail=\([^:]*\):"`] ++ msg_result_other=[`expr ":$TEST_COLORS:" : ".*:skip=\([^:]*\):"`] ++ ]) ++ msg_result_yes="${msg_begin}${msg_result_yes:-32;1}m" ++ msg_result_no="${msg_begin}${msg_result_no:-31;1}m" ++ msg_result_other="${msg_begin}${msg_result_other:-33;1}m" ++ msg_reset="${msg_begin}m" ++ ]) ++ AS_UNSET(msg_begin) ++ ]) ++ AS_REQUIRE_SHELL_FN([colorize_result], ++ [AS_FUNCTION_DESCRIBE([colorize_result], [MSG], [Colorize result])], ++ [AS_CASE(["$[]1"], ++ [yes], [AS_ECHO(["${msg_result_yes}$[]1${msg_reset}]")], ++ [no], [AS_ECHO(["${msg_result_no}$[]1${msg_reset}]")], ++ [AS_ECHO(["${msg_result_other}$[]1${msg_reset}]")])]) ++]) ++ ++AC_DEFUN([COLORIZE_RESULT], [AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl ++ AS_LITERAL_IF([$1], ++ [m4_case([$1], ++ [yes], [AS_ECHO(["${msg_result_yes}$1${msg_reset}"])], ++ [no], [AS_ECHO(["${msg_result_no}$1${msg_reset}"])], ++ [AS_ECHO(["${msg_result_other}$1${msg_reset}"])])], ++ [colorize_result "$1"]) dnl ++]) ++ ++AC_DEFUN([AC_CHECKING],[dnl ++AC_REQUIRE([_COLORIZE_RESULT_PREPARE])dnl ++AS_MESSAGE([checking ${msg_checking}$1${msg_reset}...])]) ++ ++AC_DEFUN([AC_MSG_RESULT], [dnl ++{ _AS_ECHO_LOG([result: $1]) ++COLORIZE_RESULT([$1]); dnl ++}]) + +Property changes on: acinclude.m4 +___________________________________________________________________ +Added: svn:eol-style +## -0,0 +1 ## ++LF +\ No newline at end of property +Index: common.mk +=================================================================== +--- a/common.mk (revision 53413) ++++ b/common.mk (revision 53414) +@@ -518,7 +518,7 @@ + $(Q)$(RM) id.c id.h probes.dmyh + $(Q)$(CHDIR) $(srcdir) && $(exec) $(RM) parse.c parse.h lex.c enc/trans/newline.c $(PRELUDES) revision.h + $(Q)$(CHDIR) $(srcdir) && $(exec) $(RM) id.c id.h probes.dmyh +- $(Q)$(CHDIR) $(srcdir) && $(exec) $(RM) configure tool/config.guess tool/config.sub gems/*.gem ++ $(Q)$(CHDIR) $(srcdir) && $(exec) $(RM) configure aclocal.m4 tool/config.guess tool/config.sub gems/*.gem + realclean-ext:: PHONY + realclean-golf: distclean-golf + $(Q)$(RM) $(GOLFPRELUDES) +Index: Makefile.in +=================================================================== +--- a/Makefile.in (revision 53413) ++++ b/Makefile.in (revision 53414) +@@ -22,6 +22,7 @@ + YACC = bison + PURIFY = + AUTOCONF = autoconf ++ACLOCAL = aclocal + CONFIGURE = @CONFIGURE@ + @SET_MAKE@ + MKFILES = @MAKEFILES@ +@@ -310,6 +311,9 @@ + $(srcdir)/$(CONFIGURE): $(srcdir)/configure.in $(srcdir)/aclocal.m4 + $(CHDIR) $(srcdir) && exec $(AUTOCONF) -o $(@F) + ++$(srcdir)/aclocal.m4: $(srcdir)/acinclude.m4 ++ $(CHDIR) $(srcdir) && exec $(ACLOCAL) ++ + incs: id.h + all-incs: probes.h + diff --git a/lang/ruby/patches/001-rdoc-remove_gems_dep.patch b/lang/ruby/patches/001-rdoc-remove_gems_dep.patch deleted file mode 100644 index 9630de5996..0000000000 --- a/lang/ruby/patches/001-rdoc-remove_gems_dep.patch +++ /dev/null @@ -1,36 +0,0 @@ -References: - -https://github.com/rdoc/rdoc/pull/340 - ---- ruby-2.1.2.orig/lib/rdoc.rb 2014-09-02 17:14:28.719224215 -0300 -+++ ruby-2.1.2/lib/rdoc.rb 2014-09-02 17:14:28.762223911 -0300 -@@ -109,6 +109,8 @@ - def self.load_yaml - begin - gem 'psych' -+ rescue NameError => e # --disable-gems -+ raise unless e.name == :gem - rescue Gem::LoadError - end - ---- ruby-2.1.2.orig/lib/rdoc/markdown.rb 2014-09-02 17:14:28.761223918 -0300 -+++ ruby-2.1.2/lib/rdoc/markdown.rb 2014-09-02 17:14:28.805223607 -0300 -@@ -525,7 +525,6 @@ - - - -- require 'rubygems' - require 'rdoc' - require 'rdoc/markup/to_joined_paragraph' - require 'rdoc/markdown/entities' ---- ruby-2.1.2.orig/lib/rdoc/text.rb 2014-09-02 17:14:28.721224201 -0300 -+++ ruby-2.1.2/lib/rdoc/text.rb 2014-09-02 17:14:28.764223897 -0300 -@@ -10,6 +10,8 @@ - - begin - gem 'json' -+rescue NameError => e # --disable-gems -+ raise unless e.name == :gem - rescue Gem::LoadError - end - diff --git a/lang/tcl/Makefile b/lang/tcl/Makefile index 8ed5e0ba2d..743670456a 100644 --- a/lang/tcl/Makefile +++ b/lang/tcl/Makefile @@ -30,7 +30,7 @@ define Package/tcl SUBMENU:=Tcl SECTION:=lang CATEGORY:=Languages - DEPENDS:=+libpthread + DEPENDS:=+libpthread @BROKEN TITLE:=The Tcl language URL:=http://www.tcl.tk/ endef diff --git a/libs/c-ares/Makefile b/libs/c-ares/Makefile index c5b2269975..ec822f5e0c 100644 --- a/libs/c-ares/Makefile +++ b/libs/c-ares/Makefile @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=c-ares -PKG_VERSION:=1.10.0 +PKG_VERSION:=1.11.0 PKG_RELEASE:=1 PKG_LICENSE:=MIT PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://c-ares.haxx.se/download -PKG_MD5SUM:=1196067641411a75d3cbebe074fd36d8 +PKG_MD5SUM:=d5c6d522cfc54bb6f215a0b7912d46be PKG_FIXUP:=autoreconf PKG_INSTALL:=1 diff --git a/libs/flac/Makefile b/libs/flac/Makefile index 7d94cb63ed..0454f98f7f 100644 --- a/libs/flac/Makefile +++ b/libs/flac/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2015 OpenWrt.org +# Copyright (C) 2006-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=flac PKG_VERSION:=1.3.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=http://downloads.xiph.org/releases/flac/ diff --git a/libs/flac/patches/020-fix-musl-sigemptyset-x86.patch b/libs/flac/patches/020-fix-musl-sigemptyset-x86.patch new file mode 100644 index 0000000000..0ee3ce5941 --- /dev/null +++ b/libs/flac/patches/020-fix-musl-sigemptyset-x86.patch @@ -0,0 +1,11 @@ +--- a/src/libFLAC/cpu.c ++++ b/src/libFLAC/cpu.c +@@ -243,7 +243,7 @@ void FLAC__cpu_info(FLAC__CPUInfo *info) + struct sigaction sigill_save; + struct sigaction sigill_sse; + sigill_sse.sa_sigaction = sigill_handler_sse_os; +- __sigemptyset(&sigill_sse.sa_mask); ++ sigemptyset(&sigill_sse.sa_mask); + sigill_sse.sa_flags = SA_SIGINFO | SA_RESETHAND; /* SA_RESETHAND just in case our SIGILL return jump breaks, so we don't get stuck in a loop */ + if(0 == sigaction(SIGILL, &sigill_sse, &sigill_save)) + { diff --git a/libs/glpk/Makefile b/libs/glpk/Makefile index 9d3cfd3916..e84a9a750b 100644 --- a/libs/glpk/Makefile +++ b/libs/glpk/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=glpk -PKG_VERSION:=4.57 +PKG_VERSION:=4.58 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/$(PKG_NAME) -PKG_MD5SUM:=237531a54f73155842f8defe51aedb0f +PKG_MD5SUM:=924ff878278d07a52f2e06240f2fe30a PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=COPYING diff --git a/libs/gnutls/Config.in b/libs/gnutls/Config.in index 59ca00f8f4..fc3b31758e 100644 --- a/libs/gnutls/Config.in +++ b/libs/gnutls/Config.in @@ -17,7 +17,6 @@ config GNUTLS_OCSP config GNUTLS_CRYPTODEV bool "enable /dev/crypto support" - select PACKAGE_kmod-cryptodev default n config GNUTLS_HEARTBEAT diff --git a/libs/gnutls/Makefile b/libs/gnutls/Makefile index 362a90e081..97f29666c2 100644 --- a/libs/gnutls/Makefile +++ b/libs/gnutls/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gnutls -PKG_VERSION:=3.4.9 +PKG_VERSION:=3.4.10 PKG_RELEASE:=1 PKG_USE_MIPS16:=0 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4 -PKG_MD5SUM:=1b3b6d55d0e2b6d01a54f53129f1da9b +PKG_MD5SUM:=fe9a0dc5adf205122f01a3e7dac5f8dd #PKG_FIXUP:=autoreconf gettext-version PKG_MAINTAINER:=Nikos Mavrogiannopoulos PKG_LICENSE:=LGPLv2.1+ @@ -93,7 +93,7 @@ endef define Package/libgnutls $(call Package/gnutls/Default) TITLE+= (library) - DEPENDS+= +libnettle +!LIBNETTLE_MINI:libgmp +GNUTLS_EXT_LIBTASN1:libtasn1 +GNUTLS_PKCS11:p11-kit + DEPENDS+= +libnettle +!LIBNETTLE_MINI:libgmp +GNUTLS_EXT_LIBTASN1:libtasn1 +GNUTLS_PKCS11:p11-kit +GNUTLS_CRYPTODEV:kmod-cryptodev endef define Package/libgnutls/description diff --git a/libs/libesmtp/Makefile b/libs/libesmtp/Makefile index fa402c6608..256d96399c 100644 --- a/libs/libesmtp/Makefile +++ b/libs/libesmtp/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2008-2015 OpenWrt.org +# Copyright (C) 2008-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,14 +9,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libesmtp PKG_VERSION:=1.0.6 -PKG_RELEASE:=2 -PKG_MD5SUM:=c4fedc999b6c3820296b0eb92cc2e252 +PKG_RELEASE:=3 PKG_MAINTAINER:=Othmar Truniger PKG_LICENSE:=LGPL-2.0+ PKG_LICENSE_FILES:=COPYING -PKG_SOURCE_URL:=http://www.stafford.uklinux.net/libesmtp +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/tru7/libesmtp.git +PKG_SOURCE_VERSION=10e9a6df9f76da610941addf71b9a3cbf94f2e9f +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_BUILD_PARALLEL:=1 @@ -28,13 +30,10 @@ define Package/libesmtp SECTION:=libs CATEGORY:=Libraries TITLE:=A Library for Posting Electronic Mail - URL:=http://www.stafford.uklinux.net/libesmtp/ - DEPENDS:=+libpthread + URL:=https://github.com/tru7/libesmtp.git + DEPENDS:=+libpthread +libopenssl endef -CONFIGURE_ARGS += \ - --without-openssl - define Build/InstallDev $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/libesmtp-config $(1)/usr/bin/ diff --git a/libs/libev/Makefile b/libs/libev/Makefile index 1cd08e49c0..24b0464369 100644 --- a/libs/libev/Makefile +++ b/libs/libev/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libev -PKG_VERSION:=4.20 -PKG_RELEASE:=2 +PKG_VERSION:=4.22 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://dist.schmorp.de/libev/Attic/ -PKG_MD5SUM:=1cac539cfc560f381a490c9fba940de9 +PKG_MD5SUM:=bf0007e37240103d3c2be80ca9bee3f9 PKG_LICENSE:=BSD-2-Clause PKG_MAINTAINER:=Karl Palsson diff --git a/libs/libinput/Makefile b/libs/libinput/Makefile index dce59f2cd7..98f021fda3 100644 --- a/libs/libinput/Makefile +++ b/libs/libinput/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libinput -PKG_VERSION:=1.1.7 +PKG_VERSION:=1.2.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=http://www.freedesktop.org/software/libinput/ -PKG_MD5SUM:=a501715a6135ac1f772bb5f3e3183481 +PKG_MD5SUM:=2b36d32362111c3e99f19c83bc535332 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=COPYING @@ -26,6 +26,8 @@ include $(INCLUDE_DIR)/package.mk TARGET_CFLAGS+= -std=gnu99 +CONFIGURE_ARGS += --disable-libwacom + define Package/libinput SECTION:=libs CATEGORY:=Libraries diff --git a/libs/libv4l/Makefile b/libs/libv4l/Makefile index 841ffa50e6..b6fda69bbc 100644 --- a/libs/libv4l/Makefile +++ b/libs/libv4l/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v4l-utils -PKG_VERSION:=1.6.3 +PKG_VERSION:=1.10.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=http://www.linuxtv.org/downloads/v4l-utils -PKG_MD5SUM:=307858616be6374f63bf946307f15a7f +PKG_MD5SUM:=945a38979138997e805828a4a53e53ec PKG_MAINTAINER:=Ted Hess @@ -76,7 +76,7 @@ define Package/v4l-utils/description This package contains the video4linux utilities. endef -TARGET_CFLAGS += $(FPIC) -std=gnu99 +TARGET_CFLAGS += $(FPIC) TARGET_LDFLAGS += -largp CONFIGURE_ARGS+= \ diff --git a/libs/libv4l/patches/001-no-shm_open-fix.patch b/libs/libv4l/patches/001-no-shm_open-fix.patch deleted file mode 100644 index 382f5c7e5d..0000000000 --- a/libs/libv4l/patches/001-no-shm_open-fix.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- a/lib/libv4lconvert/control/libv4lcontrol.c -+++ b/lib/libv4lconvert/control/libv4lcontrol.c -@@ -570,7 +570,7 @@ static void v4lcontrol_get_flags_from_db - struct v4lcontrol_data *v4lcontrol_create(int fd, void *dev_ops_priv, - const struct libv4l_dev_ops *dev_ops, int always_needs_conversion) - { -- int shm_fd; -+ int shm_fd, fdflags; - int i, rc, got_usb_info, speed, init = 0; - char *s, shm_name[256], pwd_buf[1024]; - struct v4l2_capability cap; -@@ -695,33 +695,38 @@ struct v4lcontrol_data *v4lcontrol_creat - - if (getpwuid_r(geteuid(), &pwd, pwd_buf, sizeof(pwd_buf), &pwd_p) == 0) { - if (got_usb_info) -- snprintf(shm_name, 256, "/libv4l-%s:%s:%04x:%04x:%s", pwd.pw_name, -+ snprintf(shm_name, 256, "/dev/shm/libv4l-%s:%s:%04x:%04x:%s", pwd.pw_name, - cap.bus_info, (int)vendor_id, (int)product_id, cap.card); - else -- snprintf(shm_name, 256, "/libv4l-%s:%s:%s", pwd.pw_name, -+ snprintf(shm_name, 256, "/dev/shm/libv4l-%s:%s:%s", pwd.pw_name, - cap.bus_info, cap.card); - } else { - perror("libv4lcontrol: error getting username using uid instead"); - if (got_usb_info) -- snprintf(shm_name, 256, "/libv4l-%lu:%s:%04x:%04x:%s", -+ snprintf(shm_name, 256, "/dev/shm/libv4l-%lu:%s:%04x:%04x:%s", - (unsigned long)geteuid(), cap.bus_info, - (int)vendor_id, (int)product_id, cap.card); - else -- snprintf(shm_name, 256, "/libv4l-%lu:%s:%s", (unsigned long)geteuid(), -+ snprintf(shm_name, 256, "/dev/shm/libv4l-%lu:%s:%s", (unsigned long)geteuid(), - cap.bus_info, cap.card); - } - - /* / is not allowed inside shm names */ -- for (i = 1; shm_name[i]; i++) -+ for (i = 9; shm_name[i]; i++) /* start after "/dev/shm", i = 9 */ - if (shm_name[i] == '/') - shm_name[i] = '-'; - - /* Open the shared memory object identified by shm_name */ -- shm_fd = shm_open(shm_name, (O_CREAT | O_EXCL | O_RDWR), (S_IREAD | S_IWRITE)); -+ shm_fd = open(shm_name, (O_CREAT | O_EXCL | O_RDWR), (S_IREAD | S_IWRITE)); - if (shm_fd >= 0) - init = 1; - else -- shm_fd = shm_open(shm_name, O_RDWR, (S_IREAD | S_IWRITE)); -+ shm_fd = open(shm_name, O_RDWR, (S_IREAD | S_IWRITE)); -+ -+ /* This is all uClibc > 0.9.30 seems to do for shm_open() in librt/shm.c */ -+ fdflags = fcntl(shm_fd, F_GETFD, 0); -+ if (fdflags >= 0) -+ fdflags = fcntl(fd, F_SETFD, fdflags | FD_CLOEXEC); - - if (shm_fd >= 0) { - /* Set the shared memory size */ diff --git a/libs/libv4l/patches/005-test_for_posix_ioctl.patch b/libs/libv4l/patches/005-test_for_posix_ioctl.patch deleted file mode 100644 index e945bbf871..0000000000 --- a/libs/libv4l/patches/005-test_for_posix_ioctl.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/configure.ac -+++ b/configure.ac -@@ -80,6 +80,20 @@ gl_VISIBILITY - AC_CHECK_HEADERS([sys/klog.h]) - AC_CHECK_FUNCS([klogctl]) - -+AC_CACHE_CHECK([for ioctl with POSIX signature], -+ [gl_cv_func_ioctl_posix_signature], -+ [AC_COMPILE_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[#include ]], -+ [[int ioctl (int, int, ...);]]) -+ ], -+ [gl_cv_func_ioctl_posix_signature=yes], -+ [gl_cv_func_ioctl_posix_signature=no]) -+ ]) -+if test "x$gl_cv_func_ioctl_posix_signature" = xyes; then -+ AC_DEFINE([HAVE_POSIX_IOCTL], [1], [Have ioctl with POSIX signature]) -+fi -+ - # Check host os - case "$host_os" in - linux*) diff --git a/libs/libv4l/patches/030-dont-call-getsubopt.patch b/libs/libv4l/patches/030-dont-call-getsubopt.patch new file mode 100644 index 0000000000..5824c704aa --- /dev/null +++ b/libs/libv4l/patches/030-dont-call-getsubopt.patch @@ -0,0 +1,28 @@ +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp +@@ -671,15 +671,18 @@ static bool parse_subset(char *optarg) + + static bool parse_next_subopt(char **subs, char **value) + { +- static char *const subopts[] = { +- NULL +- }; +- int opt = getsubopt(subs, subopts, value); ++ char *stmp = *subs; ++ *value = NULL; + +- if (opt < 0 || *value) ++ if (*subs) { ++ *subs = strchr(stmp, ','); ++ if (*subs) ++ *(*subs)++ = 0; ++ else *subs = stmp + strlen(stmp); ++ ++ *value = stmp; + return false; +- fprintf(stderr, "No value given to suboption <%s>\n", +- subopts[opt]); ++ } + return true; + } + diff --git a/libs/libv4l/patches/030-musl_compatibility.patch b/libs/libv4l/patches/030-musl_compatibility.patch deleted file mode 100644 index 758be2b525..0000000000 --- a/libs/libv4l/patches/030-musl_compatibility.patch +++ /dev/null @@ -1,96 +0,0 @@ ---- a/lib/libv4lconvert/libv4lsyscall-priv.h -+++ b/lib/libv4lconvert/libv4lsyscall-priv.h -@@ -35,18 +35,23 @@ - which is broken on some systems and doesn't include them itself :( */ - - #ifdef linux -+#define __NEED_off_t - #include - #include - #include - #include - /* On 32 bits archs we always use mmap2, on 64 bits archs there is no mmap2 */ - #ifdef __NR_mmap2 -+#undef SYS_mmap2 - #define SYS_mmap2 __NR_mmap2 - #define MMAP2_PAGE_SHIFT 12 - #else - #define SYS_mmap2 SYS_mmap - #define MMAP2_PAGE_SHIFT 0 - #endif -+#if !(defined(__UCLIBC__) || defined(__GLIBC__)) -+typedef off_t __off_t; -+#endif - #endif - - #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ---- a/lib/libv4l1/v4l1compat.c -+++ b/lib/libv4l1/v4l1compat.c -@@ -62,7 +62,7 @@ LIBV4L_PUBLIC int open(const char *file, - return fd; - } - --#ifdef linux -+#if defined(linux) && (defined(__GLIBC__) || defined(__UCLIBC__)) - LIBV4L_PUBLIC int open64(const char *file, int oflag, ...) - { - int fd; -@@ -94,7 +94,11 @@ LIBV4L_PUBLIC int dup(int fd) - return v4l1_dup(fd); - } - -+#ifdef HAVE_POSIX_IOCTL -+LIBV4L_PUBLIC int ioctl(int fd, int request, ...) -+#else - LIBV4L_PUBLIC int ioctl(int fd, unsigned long int request, ...) -+#endif - { - void *arg; - va_list ap; -@@ -112,12 +116,12 @@ LIBV4L_PUBLIC ssize_t read(int fd, void - } - - LIBV4L_PUBLIC void *mmap(void *start, size_t length, int prot, int flags, int fd, -- __off_t offset) -+ off_t offset) - { - return v4l1_mmap(start, length, prot, flags, fd, offset); - } - --#ifdef linux -+#if defined(linux) && (defined(__GLIBC__) || defined(__UCLIBC__)) - LIBV4L_PUBLIC void *mmap64(void *start, size_t length, int prot, int flags, int fd, - __off64_t offset) - { ---- a/lib/libv4l2/v4l2convert.c -+++ b/lib/libv4l2/v4l2convert.c -@@ -86,7 +86,7 @@ LIBV4L_PUBLIC int open(const char *file, - return fd; - } - --#ifdef linux -+#if defined(linux) && (defined(__GLIBC__) || defined(__UCLIBC__)) - LIBV4L_PUBLIC int open64(const char *file, int oflag, ...) - { - int fd; -@@ -121,7 +121,11 @@ LIBV4L_PUBLIC int dup(int fd) - return v4l2_dup(fd); - } - -+#ifdef HAVE_POSIX_IOCTL -+LIBV4L_PUBLIC int ioctl(int fd, int request, ...) -+#else - LIBV4L_PUBLIC int ioctl(int fd, unsigned long int request, ...) -+#endif - { - void *arg; - va_list ap; -@@ -144,7 +148,7 @@ LIBV4L_PUBLIC void *mmap(void *start, si - return v4l2_mmap(start, length, prot, flags, fd, offset); - } - --#ifdef linux -+#if defined(linux) && (defined(__GLIBC__) || defined(__UCLIBC__)) - LIBV4L_PUBLIC void *mmap64(void *start, size_t length, int prot, int flags, int fd, - __off64_t offset) - { diff --git a/libs/libwebsockets/Makefile b/libs/libwebsockets/Makefile index 71acda3618..ca377d3fa8 100644 --- a/libs/libwebsockets/Makefile +++ b/libs/libwebsockets/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libwebsockets -PKG_VERSION:=1.6.2 +PKG_VERSION:=1.7.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz diff --git a/mail/postfix/Makefile b/mail/postfix/Makefile index 9d25265bdc..137a45b1c0 100644 --- a/mail/postfix/Makefile +++ b/mail/postfix/Makefile @@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=postfix PKG_RELEASE:=1 PKG_SOURCE_URL:=ftp://ftp.porcupine.org/mirrors/postfix-release/official/ -PKG_VERSION:=3.0.3 -PKG_MD5SUM:=61caffae689c11d09b4c972a394ae3b1 +PKG_VERSION:=3.1.0 +PKG_MD5SUM:=b4a506fa74c69c6fb1875c0971268344 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_MAINTAINER:=Denis Shulyaka PKG_LICENSE:=IPL-1.0 @@ -159,7 +159,7 @@ endef # postconf -d > /tmp/main.cf.new # 3. Transfer /tmp/main.cf.new file to the build system # 4. Execute the following command: -# cat /tmp/main.cf.new | ( echo '# DO NOT EDIT THIS FILE. EDIT THE MAIN.CF FILE INSTEAD. THE'; echo '# TEXT HERE JUST SHOWS DEFAULT SETTINGS BUILT INTO POSTFIX.'; echo '#'; grep -v ^alias_maps\ = |grep -v ^alias_database\ = |grep -v ^command_directory\ = |grep -v ^config_directory\ = |grep -v ^daemon_directory\ = |grep -v ^data_directory\ = |grep -v ^default_database_type\ = |grep -v ^html_directory\ = |grep -v ^mail_spool_directory\ = |grep -v ^mailq_path\ = |grep -v ^manpage_directory\ = |grep -v ^meta_directory\ = |grep -v ^mydomain\ = |grep -v ^myhostname\ = |grep -v ^mynetworks\ = |grep -v ^mynetworks_style\ = |grep -v ^newaliases_path\ = |grep -v ^queue_directory\ = |grep -v ^readme_directory\ = |grep -v ^sample_directory\ = |grep -v ^sendmail_path\ = |grep -v ^shlib_directory\ = |grep -v ^smtputf8_enable\ = |grep -v ^virtual_maps\ = ) > files/main.cf.default +# cat /tmp/main.cf.new | ( echo '# DO NOT EDIT THIS FILE. EDIT THE MAIN.CF FILE INSTEAD. THE'; echo '# TEXT HERE JUST SHOWS DEFAULT SETTINGS BUILT INTO POSTFIX.'; echo '#'; grep -v ^alias_maps\ = |grep -v ^alias_database\ = |grep -v ^command_directory\ = |grep -v ^config_directory\ = |grep -v ^daemon_directory\ = |grep -v ^data_directory\ = |grep -v ^default_database_type\ = |grep -v ^html_directory\ = |grep -v ^mail_spool_directory\ = |grep -v ^mailq_path\ = |grep -v ^manpage_directory\ = |grep -v ^meta_directory\ = |grep -v ^mydomain\ = |grep -v ^myhostname\ = |grep -v ^mynetworks\ = |grep -v ^mynetworks_style\ = |grep -v ^newaliases_path\ = |grep -v ^queue_directory\ = |grep -v ^readme_directory\ = |grep -v ^sample_directory\ = |grep -v ^sendmail_path\ = |grep -v ^shlib_directory\ = |grep -v ^smtputf8_enable\ = |grep -v ^virtual_maps\ = |grep -v ^process_id\ = ) > files/main.cf.default # 5. Done. Now you can rebuild the package with new main.cf.default. # diff --git a/mail/postfix/files/main.cf.default b/mail/postfix/files/main.cf.default index 944f2799d3..9075498a93 100644 --- a/mail/postfix/files/main.cf.default +++ b/mail/postfix/files/main.cf.default @@ -11,6 +11,7 @@ address_verify_map = btree:$data_directory/verify_cache address_verify_negative_cache = yes address_verify_negative_expire_time = 3d address_verify_negative_refresh_time = 3h +address_verify_pending_request_limit = 5000 address_verify_poll_count = ${stress?{1}:{3}} address_verify_poll_delay = 3s address_verify_positive_expire_time = 31d @@ -92,6 +93,7 @@ default_recipient_limit = 20000 default_recipient_refill_delay = 5s default_recipient_refill_limit = 100 default_transport = smtp +default_transport_rate_delay = 0s default_verp_delimiters = += defer_code = 450 defer_service_name = defer @@ -108,6 +110,7 @@ disable_mime_input_processing = no disable_mime_output_conversion = no disable_verp_bounces = no disable_vrfy_command = no +dns_ncache_ttl_fix_enable = no dnsblog_reply_delay = 0s dnsblog_service_name = dnsblog dont_remove = 0 @@ -135,6 +138,7 @@ error_recipient_limit = $default_recipient_limit error_recipient_refill_delay = $default_recipient_refill_delay error_recipient_refill_limit = $default_recipient_refill_limit error_service_name = error +error_transport_rate_delay = $default_transport_rate_delay execution_directory_expansion_filter = 1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ expand_owner_alias = no export_environment = TZ MAIL_CONFIG LANG @@ -205,6 +209,7 @@ lmtp_dns_resolver_options = lmtp_dns_support_level = lmtp_enforce_tls = no lmtp_extra_recipient_limit = $default_extra_recipient_limit +lmtp_fallback_relay = lmtp_generic_maps = lmtp_header_checks = lmtp_host_lookup = dns @@ -281,6 +286,7 @@ lmtp_tls_session_cache_timeout = 3600s lmtp_tls_trust_anchor_file = lmtp_tls_verify_cert_match = hostname lmtp_tls_wrappermode = no +lmtp_transport_rate_delay = $default_transport_rate_delay lmtp_use_tls = no lmtp_xforward_timeout = 300s local_command_shell = @@ -303,11 +309,12 @@ local_recipient_maps = proxy:unix:passwd.byname $alias_maps local_recipient_refill_delay = $default_recipient_refill_delay local_recipient_refill_limit = $default_recipient_refill_limit local_transport = local:$myhostname +local_transport_rate_delay = $default_transport_rate_delay luser_relay = mail_name = Postfix mail_owner = postfix -mail_release_date = 20151010 -mail_version = 3.0.3 +mail_release_date = 20160224 +mail_version = 3.1.0 mailbox_command = mailbox_command_maps = mailbox_delivery_lock = fcntl, dotlock @@ -339,6 +346,7 @@ milter_end_of_header_macros = i milter_header_checks = milter_helo_macros = {tls_version} {cipher} {cipher_bits} {cert_subject} {cert_issuer} milter_macro_daemon_name = $myhostname +milter_macro_defaults = milter_macro_v = $mail_name $mail_version milter_mail_macros = i {auth_type} {auth_authen} {auth_author} {mail_addr} {mail_host} {mail_mailer} milter_protocol = 6 @@ -360,6 +368,7 @@ nested_header_checks = $header_checks non_fqdn_reject_code = 504 non_smtpd_milters = notify_classes = resource, software +openssl_path = openssl owner_request_special = yes parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,relay_domains,smtpd_access_maps permit_mx_backup_networks = @@ -385,11 +394,12 @@ postscreen_disable_vrfy_command = $disable_vrfy_command postscreen_discard_ehlo_keyword_address_maps = $smtpd_discard_ehlo_keyword_address_maps postscreen_discard_ehlo_keywords = $smtpd_discard_ehlo_keywords postscreen_dnsbl_action = ignore +postscreen_dnsbl_max_ttl = ${postscreen_dnsbl_ttl?{$postscreen_dnsbl_ttl}:{1}}h +postscreen_dnsbl_min_ttl = 60s postscreen_dnsbl_reply_map = postscreen_dnsbl_sites = postscreen_dnsbl_threshold = 1 postscreen_dnsbl_timeout = 10s -postscreen_dnsbl_ttl = 1h postscreen_dnsbl_whitelist_threshold = 0 postscreen_enforce_tls = $smtpd_enforce_tls postscreen_expansion_filter = $smtpd_expansion_filter @@ -415,7 +425,6 @@ postscreen_use_tls = $smtpd_use_tls postscreen_watchdog_timeout = 10s postscreen_whitelist_interfaces = static:all prepend_delivered_header = command, file, forward -process_id = 13574 process_id_directory = pid process_name = postconf propagate_unmatched_extensions = canonical, virtual @@ -467,6 +476,7 @@ relay_recipient_maps = relay_recipient_refill_delay = $default_recipient_refill_delay relay_recipient_refill_limit = $default_recipient_refill_limit relay_transport = relay +relay_transport_rate_delay = $default_transport_rate_delay relayhost = relocated_maps = remote_header_rewrite_domain = @@ -490,6 +500,7 @@ retry_minimum_delivery_slots = $default_minimum_delivery_slots retry_recipient_limit = $default_recipient_limit retry_recipient_refill_delay = $default_recipient_refill_delay retry_recipient_refill_limit = $default_recipient_refill_limit +retry_transport_rate_delay = $default_transport_rate_delay rewrite_service_name = rewrite send_cyrus_sasl_authzid = no sender_bcc_maps = @@ -587,6 +598,7 @@ smtp_tls_CApath = smtp_tls_block_early_mail_reply = no smtp_tls_cert_file = smtp_tls_ciphers = medium +smtp_tls_dane_insecure_mx_policy = dane smtp_tls_dcert_file = smtp_tls_dkey_file = $smtp_tls_dcert_file smtp_tls_eccert_file = @@ -613,12 +625,14 @@ smtp_tls_session_cache_timeout = 3600s smtp_tls_trust_anchor_file = smtp_tls_verify_cert_match = hostname smtp_tls_wrappermode = no +smtp_transport_rate_delay = $default_transport_rate_delay smtp_use_tls = no smtp_xforward_timeout = 300s smtpd_authorized_verp_clients = $authorized_verp_clients smtpd_authorized_xclient_hosts = smtpd_authorized_xforward_hosts = smtpd_banner = $myhostname ESMTP $mail_name +smtpd_client_auth_rate_limit = 0 smtpd_client_connection_count_limit = 50 smtpd_client_connection_rate_limit = 0 smtpd_client_event_limit_exceptions = ${smtpd_client_connection_limit_exceptions:$mynetworks} @@ -654,6 +668,7 @@ smtpd_per_record_deadline = ${stress?{yes}:{no}} smtpd_policy_service_default_action = 451 4.3.5 Server configuration problem smtpd_policy_service_max_idle = 300s smtpd_policy_service_max_ttl = 1000s +smtpd_policy_service_policy_context = smtpd_policy_service_request_limit = 0 smtpd_policy_service_retry_delay = 1s smtpd_policy_service_timeout = 100s @@ -741,11 +756,11 @@ tls_dane_trust_anchor_digest_enable = yes tls_disable_workarounds = tls_eecdh_strong_curve = prime256v1 tls_eecdh_ultra_curve = secp384r1 -tls_export_cipherlist = aNULL:-aNULL:ALL:+RC4:@STRENGTH -tls_high_cipherlist = aNULL:-aNULL:ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH +tls_export_cipherlist = aNULL:-aNULL:HIGH:MEDIUM:LOW:EXPORT:+RC4:@STRENGTH +tls_high_cipherlist = aNULL:-aNULL:HIGH:@STRENGTH tls_legacy_public_key_fingerprints = no -tls_low_cipherlist = aNULL:-aNULL:ALL:!EXPORT:+RC4:@STRENGTH -tls_medium_cipherlist = aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH +tls_low_cipherlist = aNULL:-aNULL:HIGH:MEDIUM:LOW:+RC4:@STRENGTH +tls_medium_cipherlist = aNULL:-aNULL:HIGH:MEDIUM:+RC4:@STRENGTH tls_null_cipherlist = eNULL:!aNULL tls_preempt_cipherlist = no tls_random_bytes = 32 @@ -837,4 +852,5 @@ virtual_recipient_limit = $default_recipient_limit virtual_recipient_refill_delay = $default_recipient_refill_delay virtual_recipient_refill_limit = $default_recipient_refill_limit virtual_transport = virtual +virtual_transport_rate_delay = $default_transport_rate_delay virtual_uid_maps = diff --git a/mail/postfix/patches/100-fsstat.patch b/mail/postfix/patches/100-fsstat.patch index ca43025c14..50581446c8 100644 --- a/mail/postfix/patches/100-fsstat.patch +++ b/mail/postfix/patches/100-fsstat.patch @@ -1,7 +1,7 @@ diff -rupN postfix-2.8.1/src/smtpd/smtpd_check.c postfix-2.8.1_patched/src/smtpd/smtpd_check.c --- postfix-2.8.1/src/smtpd/smtpd_check.c 2011-01-04 22:03:50.000000000 +0300 +++ postfix-2.8.1_patched/src/smtpd/smtpd_check.c 2011-03-06 19:35:39.000000000 +0300 -@@ -5277,7 +5277,7 @@ char *smtpd_check_queue(SMTPD_STATE *s +@@ -5296,7 +5296,7 @@ char *smtpd_check_queue(SMTPD_STATE *s */ #define BLOCKS(x) ((x) / fsbuf.block_size) diff --git a/mail/postfix/patches/200-manpages.patch b/mail/postfix/patches/200-manpages.patch index 6344e93ba3..75d6411003 100644 --- a/mail/postfix/patches/200-manpages.patch +++ b/mail/postfix/patches/200-manpages.patch @@ -1,7 +1,7 @@ diff -Naur postfix-2.10.2/conf/post-install postfix-2.10.2_patched/conf/post-install --- postfix-2.10.2/conf/post-install 2013-06-13 18:07:46.000000000 +0400 +++ postfix-2.10.2_patched/conf/post-install 2013-11-19 21:17:49.572820573 +0400 -@@ -359,10 +359,10 @@ +@@ -361,10 +361,10 @@ # Sanity checks @@ -16,7 +16,7 @@ diff -Naur postfix-2.10.2/conf/post-install postfix-2.10.2_patched/conf/post-ins case $setgid_group in no) echo $0: Error: setgid_group no longer accepts \"no\" values. 1>&2 -@@ -370,7 +370,7 @@ +@@ -372,7 +372,7 @@ esac for path in "$daemon_directory" "$command_directory" "$queue_directory" \ @@ -25,7 +25,7 @@ diff -Naur postfix-2.10.2/conf/post-install postfix-2.10.2_patched/conf/post-ins "$meta_directory" do case "$path" in -@@ -379,7 +379,7 @@ +@@ -381,7 +381,7 @@ esac done @@ -37,7 +37,7 @@ diff -Naur postfix-2.10.2/conf/post-install postfix-2.10.2_patched/conf/post-ins diff -Naur postfix-2.10.2/postfix-install postfix-2.10.2_patched/postfix-install --- postfix-2.10.2/postfix-install 2012-05-22 23:40:29.000000000 +0400 +++ postfix-2.10.2_patched/postfix-install 2013-11-19 21:12:20.694160734 +0400 -@@ -543,13 +543,13 @@ +@@ -554,13 +554,13 @@ exit 1;; esac @@ -58,7 +58,7 @@ diff -Naur postfix-2.10.2/postfix-install postfix-2.10.2_patched/postfix-install for path in "$html_directory" "$readme_directory" "$shlib_directory" do -@@ -562,7 +562,7 @@ +@@ -573,7 +573,7 @@ done for path in "$daemon_directory" "$data_directory" "$command_directory" "$queue_directory" \ @@ -67,7 +67,7 @@ diff -Naur postfix-2.10.2/postfix-install postfix-2.10.2_patched/postfix-install "$meta_directory" do case "$path" in -@@ -758,8 +758,8 @@ +@@ -780,8 +780,8 @@ compare_or_replace $mode "$owner" "$group" html/$file \ $HTML_DIRECTORY/$file || exit 1;; '$manpage_directory') diff --git a/mail/postfix/patches/400-cdb.patch b/mail/postfix/patches/400-cdb.patch index 8aeaea5e48..7abff3b900 100644 --- a/mail/postfix/patches/400-cdb.patch +++ b/mail/postfix/patches/400-cdb.patch @@ -1,7 +1,7 @@ diff -Naur postfix-2.11.1/src/util/sys_defs.h postfix-2.11.1.patched/src/util/sys_defs.h --- postfix-2.11.1/src/util/sys_defs.h 2013-09-30 00:51:55.000000000 +0400 +++ postfix-2.11.1.patched/src/util/sys_defs.h 2014-09-29 03:11:48.962277971 +0400 -@@ -768,9 +768,8 @@ +@@ -769,9 +769,8 @@ #define INTERNAL_LOCK MYFLOCK_STYLE_FLOCK #define DEF_MAILBOX_LOCK "fcntl, dotlock" /* RedHat >= 4.x */ #define HAS_FSYNC diff --git a/mail/postfix/patches/500-crosscompile.patch b/mail/postfix/patches/500-crosscompile.patch index 7f1a9707ef..076d875df0 100644 --- a/mail/postfix/patches/500-crosscompile.patch +++ b/mail/postfix/patches/500-crosscompile.patch @@ -1,6 +1,6 @@ --- a/makedefs 2016-01-28 12:30:14.444082390 -0500 +++ b/makedefs 2016-01-28 13:44:02.092006512 -0500 -@@ -193,7 +193,7 @@ error() { +@@ -198,7 +198,7 @@ error() { case $# in # Officially supported usage. @@ -9,7 +9,7 @@ RELEASE=`(uname -r) 2>/dev/null` # No ${x%%y} support in Solaris 11 /bin/sh RELEASE_MAJOR=`expr "$RELEASE" : '\([0-9]*\)'` || exit 1 -@@ -207,6 +207,15 @@ case $# in +@@ -212,6 +212,15 @@ case $# in esac case "$SYSTEM.$RELEASE" in diff --git a/mail/postfix/patches/600-nopostconf.patch b/mail/postfix/patches/600-nopostconf.patch index 6140e23faf..0dce776fae 100644 --- a/mail/postfix/patches/600-nopostconf.patch +++ b/mail/postfix/patches/600-nopostconf.patch @@ -1,7 +1,7 @@ diff -Naur postfix-2.11.1/postfix-install postfix-2.11.1.patched/postfix-install --- postfix-2.11.1/postfix-install 2014-10-05 20:43:58.598876904 +0400 +++ postfix-2.11.1.patched/postfix-install 2014-10-05 20:47:36.076700082 +0400 -@@ -830,23 +830,23 @@ +@@ -852,23 +852,23 @@ esac done diff --git a/mail/postfix/patches/800-fmt.patch b/mail/postfix/patches/800-fmt.patch index 97a165c3d4..334efdd788 100644 --- a/mail/postfix/patches/800-fmt.patch +++ b/mail/postfix/patches/800-fmt.patch @@ -1,12 +1,12 @@ diff -Naur postfix-2.11.1/conf/post-install postfix-2.11.1.patched/conf/post-install --- postfix-2.11.1/conf/post-install 2014-10-05 20:43:58.597876946 +0400 +++ postfix-2.11.1.patched/conf/post-install 2014-10-11 16:28:01.258874097 +0400 -@@ -319,7 +319,7 @@ +@@ -321,7 +321,7 @@ case `uname -s` in HP-UX*) FMT=cat;; SunOS*) FMT=fake_fmt;; - *) FMT=fmt;; -+ *) FMT="xargs echo";; ++ *) FMT=cat;; esac # If a parameter is not set via the command line or environment, diff --git a/net/adblock/Makefile b/net/adblock/Makefile index 84b7751798..b11a62ceec 100644 --- a/net/adblock/Makefile +++ b/net/adblock/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=adblock -PKG_VERSION:=0.80.1 +PKG_VERSION:=1.0.0 PKG_RELEASE:=1 PKG_LICENSE:=GPL-3.0+ PKG_MAINTAINER:=Dirk Brenken @@ -24,8 +24,8 @@ endef define Package/$(PKG_NAME)/description Powerful adblock script to block ad/abuse domains. -Currently the script supports 15 domain blacklist sites plus manual black- and whitelist overrides. -Please see README.md in /etc/adblock for further information. +Currently the script supports 16 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. endef @@ -62,7 +62,6 @@ define Package/$(PKG_NAME)/install $(INSTALL_CONF) ./files/adblock.conf $(1)/etc/adblock/adblock.conf.default $(INSTALL_CONF) ./files/adblock.blacklist $(1)/etc/adblock/ $(INSTALL_CONF) ./files/adblock.whitelist $(1)/etc/adblock/ - $(INSTALL_CONF) ./files/README.md $(1)/etc/adblock/ $(INSTALL_DIR) $(1)/www/adblock $(INSTALL_DATA) ./files/www/adblock/* $(1)/www/adblock/ diff --git a/net/adblock/files/README.md b/net/adblock/files/README.md index 88a58ef2b5..3c90e1ca5e 100644 --- a/net/adblock/files/README.md +++ b/net/adblock/files/README.md @@ -1,10 +1,7 @@ # adblock script for openwrt ## Description -A lot of people already use adblocker plugins within their desktop browsers, -but what if you are using your (smart) phone, tablet, watch or any other wlan gadget...getting rid of annoying ads, trackers and other abuse sites (like facebook ;-) is simple: block them with your router. - -When the dns server on your router receives dns requests, you will sort out queries that ask for the resource records of ad servers and return the local ip address of your router and the internal web server delivers a transparent pixel instead. +A lot of people already use adblocker plugins within their desktop browsers, but what if you are using your (smart) phone, tablet, watch or any other wlan gadget...getting rid of annoying ads, trackers and other abuse sites (like facebook ;-) is simple: block them with your router. When the dns server on your router receives dns requests, you will sort out queries that ask for the resource records of ad servers and return the local ip address of your router and the internal web server delivers a transparent pixel instead. ## Main Features * support of the following domain blocklist sources (free for private usage, for commercial use please check their individual licenses): @@ -24,12 +21,14 @@ When the dns server on your router receives dns requests, you will sort out quer * => numerous updates on the same day, approx. 1.800 entries * [palevotracker](https://palevotracker.abuse.ch) * => daily updates, approx. 15 entries - * [ruadlist+easylist](https://code.google.com/p/ruadlist) + * [ruadlist/easylist](https://code.google.com/p/ruadlist) * => weekly updates, approx. 2.000 entries * [shallalist](http://www.shallalist.de) (categories "adv" "costtraps" "spyware" "tracker" "warez" enabled by default) * => daily updates, approx. 32.000 entries (a short description of all shallalist categories can be found [online](http://www.shallalist.de/categories.html)) * [spam404](http://www.spam404.com) * => infrequent updates, approx. 5.000 entries + * [sysctl/cameleon](http://sysctl.org/cameleon) + * => weekly updates, approx. 21.000 entries * [whocares](http://someonewhocares.org) * => weekly updates, approx. 12.000 entries * [winhelp](http://winhelp2002.mvps.org) @@ -46,15 +45,13 @@ When the dns server on your router receives dns requests, you will sort out quer * adblock source list parsing by fast & flexible regex rulesets * additional white- and blacklist support for manual overrides * quality checks during & after update of adblock lists to ensure a reliable dnsmasq service -* wan update check, to wait for an active wan uplink before update * basic adblock statistics via iptables packet counters for each chain * status & error logging to stdout and syslog -* use of dynamic uhttpd instance as adblock pixel server +* use a dynamic uhttpd instance as an adblock pixel server +* use dynamic iptables rulesets for adblock related redirects/rejects * openwrt init system support (start/stop/restart/reload) -* hotplug support, adblock start will be triggered by wan 'ifup' event -* optional features (disabled by default): - * adblock list backup/restore - * debug logging to separate file +* hotplug support, the adblock start will be triggered by wan 'ifup' event +* optional: adblock list backup/restore (disabled by default) ## Prerequisites * [openwrt](https://openwrt.org), tested with latest stable release (Chaos Calmer 15.05) and with current trunk (Designated Driver > r47025) @@ -63,49 +60,51 @@ When the dns server on your router receives dns requests, you will sort out quer * optional: 'kmod-ipt-nat6' for IPv6 support * the above dependencies and requirements will be checked during package installation & script runtime -## Installation & Usage -* install the adblock package (*opkg update & opkg install adblock*) +## Designated Driver Installation & Usage +* install the adblock package (*opkg install adblock*) * start the adblock service with */etc/init.d/adblock start* and check *logread -e "adblock"* for adblock related information * optional: enable/disable your required adblock list sources in */etc/config/adblock* - 'adaway', 'disconnect' and 'yoyo' are enabled by default * optional: maintain the adblock service in luci under 'System => Startup' ## LuCI adblock companion package For easy management of the various blocklist sources and and the adblock options there is also a nice & efficient LuCI frontend available. -Please install the package 'luci-app-adblock'. Then you will find the application in LuCI located under 'Services' menu. +Please install the package 'luci-app-adblock' (*opkg install luci-app-adblock*). Then you will find the application in LuCI located under 'Services' menu. Thanks to Hannu Nyman for this great adblock LuCI frontend! -## CC installation notes +## Chaos Calmer installation notes * currently the adblock package is *not* part of the CC package repository -* download the latest adblock package *adblock_x.xx.x-1_all.ipk* from a DD snapshot [package directory](https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/packages) +* download the latest adblock package *adblock_x.xx.x-1_all.ipk* from a development snapshot [package directory](https://downloads.openwrt.org/snapshots/trunk/ar71xx/nand/packages/packages) +* due to server hardware troubles the package directory link above may not work, if so please check the [main openwrt download area](https://downloads.openwrt.org) manually * manual transfer the package to your router and install the opkg package as usual ## Tweaks * there is no need to enable all blacklist sites at once, for normal use one to three adblock list sources should be sufficient -* if you really need to handle all blacklists at once add an usb stick or any other storage device to supersize your temp directory with a swap partition => see [openwrt wiki](https://wiki.openwrt.org/doc/uci/fstab) for further details -* add static, personal domain white- or blacklist entries, one domain per line (wildcards & regex are not allowed!), by default both lists are located in */etc/adblock* -* enable the backup/restore feature, to restore automatically the latest, stable backup of your adblock lists in case of any processing error -* enable the logging feature for continuous logfile writing to monitor the adblock runs over a longer period +* if you really need to handle all blacklists at once add an usb stick or any other storage device to enlarge your temp directory with a swap partition => see [openwrt wiki](https://wiki.openwrt.org/doc/uci/fstab) for further details +* add personal domain white- or blacklist entries as an additional blocklist source, one domain per line (wildcards & regex are not allowed!), by default both empty lists are located in */etc/adblock* +* enable the backup/restore feature, to restore automatically the latest stable backup of your adblock lists in case of any (partial) processing error (i.e. a single blocklist source server is down). Please use an (external) solid partition and *not* your volatile router temp directory for this * for a scheduled call of the adblock service via */etc/init.d/adblock start* add an appropriate crontab entry +* in case of any script runtime errors, you should enable script debugging: for this please change the value of the main 'DEBUG' switch, you'll find it in the header of */usr/bin/adblock-update.sh* ## Further adblock config options * usually the adblock autodetection works quite well and no manual config overrides are needed, all options apply to 'global' adblock config section: - * adb\_enabled => main switch to enable/disable adblock service (default: '1' (enabled)) + * adb\_enabled => main switch to enable/disable adblock service (default: '1', enabled) * adb\_cfgver => config version string (do not change!) - adblock checks this entry and automatically applies the current config, if none or an older revision was found. * adb\_wanif => name of the logical wan interface (default: 'wan') * adb\_lanif => name of the logical lan interface (default: 'lan') * adb\_port => port of the adblock uhttpd instance (default: '65535') * adb\_nullipv4 => IPv4 blackhole ip address (default: '192.0.2.1') * adb\_nullipv6 => IPv6 blackhole ip address (default: '::ffff:c000:0201') + * adb\_forcedns => redirect all DNS queries to local dnsmasq resolver (default: '1', enabled) ## Background This adblock package is a dns/dnsmasq based adblock solution for openwrt. Queries to ad/abuse domains are never forwarded and always replied with a local IP address which may be IPv4 or IPv6. For that purpose adblock uses an ip address from the private 'TEST-NET-1' subnet (192.0.2.1 / ::ffff:c000:0201) by default. Furthermore all ad/abuse queries will be filtered by ip(6)tables and redirected to internal adblock pixel server (in PREROUTING chain) or rejected (in FORWARD or OUTPUT chain). -All iptables and uhttpd related adblock additions are non-destructive, no hard-coded changes in 'firewall.user', 'uhttpd' config or any other openwrt related config files. There is *no* adblock background daemon running, the (scheduled) start of the adblock service keeps only the adblock lists up-to-date. +All iptables and uhttpd related adblock additions are non-destructive, no hard-coded changes in 'firewall.user', 'uhttpd' config or any other openwrt related config files. There is *no* adblock background daemon running, the (scheduled) start of the adblock service keeps only the adblock lists up-to-date. ## Support -Please join the adblock discussion in this [openwrt forum thread](https://forum.openwrt.org/viewtopic.php?id=59803) or contact me by mail +Please join the adblock discussion in this [openwrt forum thread](https://forum.openwrt.org/viewtopic.php?id=59803) or contact me by mail ## Removal * stop all adblock related services with */etc/init.d/adblock stop* diff --git a/net/adblock/files/adblock-helper.sh b/net/adblock/files/adblock-helper.sh index faccc9640d..5bcb81ad87 100644 --- a/net/adblock/files/adblock-helper.sh +++ b/net/adblock/files/adblock-helper.sh @@ -1,8 +1,6 @@ #!/bin/sh -################################################# -# function library used by adblock-update.sh # -# written by Dirk Brenken (openwrt@brenken.org) # -################################################# +# function library used by adblock-update.sh +# written by Dirk Brenken (openwrt@brenken.org) ##################################### # f_envload: load adblock environment @@ -13,12 +11,12 @@ f_envload() # get version string from default adblock configuration file # - cfg_version="$(/sbin/uci -q get adblock.global.adb_cfgver 2>/dev/null)" - cfg_enabled="$(/sbin/uci -q get adblock.global.adb_enabled 2>/dev/null)" + cfg_version="$(/sbin/uci -q get adblock.global.adb_cfgver)" + cfg_enabled="$(/sbin/uci -q get adblock.global.adb_enabled)" rc=$? if [ $((rc)) -ne 0 ] || [ "${cfg_version}" != "${adb_scriptver%.*}" ] then - cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock" >/dev/null 2>&1 + cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock" rc=$? if [ $((rc)) -eq 0 ] then @@ -38,7 +36,7 @@ f_envload() # if [ -r "/lib/functions.sh" ] then - . "/lib/functions.sh" 2>/dev/null + . "/lib/functions.sh" else rc=110 f_log "openwrt function library not found" "${rc}" @@ -49,7 +47,7 @@ f_envload() # if [ -r "/lib/functions/network.sh" ] then - . "/lib/functions/network.sh" 2>/dev/null + . "/lib/functions/network.sh" else rc=115 f_log "openwrt network library not found" "${rc}" @@ -64,7 +62,7 @@ f_envload() f_log "adblock installation finished, 'opkg' currently locked by package installer" f_exit fi - pkg_list="$(opkg list-installed 2>/dev/null)" + pkg_list="$(opkg list-installed)" if [ -z "${pkg_list}" ] then rc=120 @@ -88,6 +86,7 @@ f_envparse() adb_nullipv6="::ffff:c000:0201" adb_blacklist="/etc/adblock/adblock.blacklist" adb_whitelist="/etc/adblock/adblock.whitelist" + adb_forcedns=1 # function to read global options by callback # @@ -110,7 +109,7 @@ f_envparse() # function to iterate through config list, read only options in "enabled" sections # - adb_cfglist="adb_backupdir adb_logfile adb_src" + adb_cfglist="adb_backupdir adb_src" unset adb_sources parse_config() { @@ -153,11 +152,10 @@ f_envparse() # set more script defaults (can't be overwritten by adblock config options) # - adb_cnt=0 - adb_minspace=20000 - adb_unique=1 - adb_tmpfile="$(mktemp -tu 2>/dev/null)" - adb_tmpdir="$(mktemp -p /tmp -d 2>/dev/null)" + adb_count=0 + adb_minspace=12000 + adb_tmpfile="$(mktemp -tu)" + adb_tmpdir="$(mktemp -p /tmp -d)" adb_dnsdir="/tmp/dnsmasq.d" adb_dnsprefix="adb_list" adb_prechain_ipv4="prerouting_rule" @@ -167,35 +165,33 @@ f_envparse() adb_fwdchain_ipv6="forwarding_rule" adb_outchain_ipv6="output_rule" adb_fetch="/usr/bin/wget" - unset adb_srclist - unset adb_revsrclist - unset adb_errsrclist + unset adb_srclist adb_revsrclist adb_errsrclist # set adblock source ruleset definitions # - rset_start="sed -r 's/[[:space:]]|[\[!#/:;_].*|[0-9\.]*localhost.*//g; s/[\^#/:;_\.\t ]*$//g'" - rset_end="tr -cd '[0-9a-z\.\-]\n' | sed -r 's/^[ \.\-].*$|^[a-z0-9]*[ \.\-]*$//g; /^[#/:;_\s]*$/d'" - rset_adaway="${rset_start} | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-1]\{1,1\}//g' | ${rset_end}" - rset_blacklist="${rset_start} | ${rset_end}" - rset_disconnect="${rset_start} | ${rset_end}" - rset_dshield="${rset_start} | ${rset_end}" - rset_feodo="${rset_start} | ${rset_end}" - rset_malware="${rset_start} | ${rset_end}" - rset_malwarelist="${rset_start} | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-1]\{1,1\}//g' | ${rset_end}" - rset_openphish="sed -e 's|^[^/]*//||' -e 's|/.*$||'" - rset_palevo="${rset_start} | ${rset_end}" - rset_ruadlist="sed -e '/^\|\|/! s/.*//; /\^$/! s/.*//; s/\^$//g; /[\.]/! s/.*//; s/^[\|]\{1,2\}//g' | ${rset_end}" - rset_shalla="${rset_start} | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}$//g' | ${rset_end}" - rset_spam404="${rset_start} | sed 's/^\|\|//g' | ${rset_end}" - rset_whocares="${rset_start} | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-1]\{1,1\}//g' | ${rset_end}" - rset_winhelp="${rset_start} | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-1]\{1,1\}//g' | ${rset_end}" - rset_yoyo="${rset_start} | sed 's/,/\n/g' | ${rset_end}" - rset_zeus="${rset_start} | ${rset_end}" + rset_core="([A-Za-z0-9_-]+\.){1,}[A-Za-z]+" + rset_adaway="awk '\$0 ~/^127\.0\.0\.1[ \t]+${rset_core}/{print tolower(\$2)}'" + rset_blacklist="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_disconnect="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_dshield="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_feodo="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_malware="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_malwarelist="awk '\$0 ~/^127\.0\.0\.1[ \t]+${rset_core}/{print tolower(\$2)}'" + rset_openphish="awk -F '/' '\$3 ~/^${rset_core}/{print tolower(\$3)}'" + rset_palevo="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_ruadlist="awk -F '[|^]' '\$0 ~/^\|\|${rset_core}\^$/{print tolower(\$3)}'" + rset_shalla="awk -F '/' '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_spam404="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_sysctl="awk '\$0 ~/^127\.0\.0\.1[ \t]+${rset_core}/{print tolower(\$2)}'" + rset_whocares="awk '\$0 ~/^127\.0\.0\.1[ \t]+${rset_core}/{print tolower(\$2)}'" + rset_winhelp="awk '\$0 ~/^0\.0\.0\.0[ \t]+${rset_core}/{print tolower(\$2)}'" + rset_yoyo="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" + rset_zeus="awk '\$1 ~/^${rset_core}/{print tolower(\$1)}'" # get logical wan update interfaces (with default route) and their device names # - network_find_wan adb_wanif4 2>/dev/null - network_find_wan6 adb_wanif6 2>/dev/null + network_find_wan adb_wanif4 + network_find_wan6 adb_wanif6 if [ -z "${adb_wanif4}" ] && [ -z "${adb_wanif6}" ] then rc=125 @@ -207,15 +203,15 @@ f_envparse() f_log "LAN only (${adb_lanif}) network, no valid IPv4/IPv6 wan update interface found" "${rc}" f_exit else - network_get_device adb_wandev4 "${adb_wanif4}" 2>/dev/null - network_get_device adb_wandev6 "${adb_wanif6}" 2>/dev/null + network_get_device adb_wandev4 "${adb_wanif4}" + network_get_device adb_wandev6 "${adb_wanif6}" break fi # get lan ip addresses # - network_get_ipaddr adb_ipv4 "${adb_lanif}" 2>/dev/null - network_get_ipaddr6 adb_ipv6 "${adb_lanif}" 2>/dev/null + network_get_ipaddr adb_ipv4 "${adb_lanif}" + network_get_ipaddr6 adb_ipv6 "${adb_lanif}" if [ -z "${adb_ipv4}" ] && [ -z "${adb_ipv6}" ] then rc=130 @@ -242,16 +238,16 @@ f_envcheck() # if [ -n "${adb_wanif6}" ] then - check="$(printf "${pkg_list}" | grep "^ip6tables -" 2>/dev/null)" + check="$(printf "${pkg_list}" | grep "^ip6tables -")" if [ -z "${check}" ] then - f_log "package 'ip6tables' not found, IPv6 support wíll be disabled" + f_log "package 'ip6tables' not found, IPv6 support will be disabled" unset adb_wanif6 else - check="$(printf "${pkg_list}" | grep "^kmod-ipt-nat6 -" 2>/dev/null)" + check="$(printf "${pkg_list}" | grep "^kmod-ipt-nat6 -")" if [ -z "${check}" ] then - f_log "package 'kmod-ipt-nat6' not found, IPv6 support wíll be disabled" + f_log "package 'kmod-ipt-nat6' not found, IPv6 support will be disabled" unset adb_wanif6 fi fi @@ -260,7 +256,7 @@ f_envcheck() # check ca-certificates package and set wget parms accordingly # wget_parm="--no-config --quiet --tries=1 --no-cache --no-cookies --max-redirect=0 --dns-timeout=5 --connect-timeout=5 --read-timeout=5" - check="$(printf "${pkg_list}" | grep "^ca-certificates -" 2>/dev/null)" + check="$(printf "${pkg_list}" | grep "^ca-certificates -")" if [ -z "${check}" ] then wget_parm="${wget_parm} --no-check-certificate" @@ -270,14 +266,11 @@ f_envcheck() # if [ ! -r "${adb_blacklist}" ] then - rc=135 - f_log "adblock blacklist not found (${adb_blacklist})" "${rc}" - f_exit - elif [ ! -r "${adb_whitelist}" ] + f_log "adblock blacklist not found, source will be disabled" + fi + if [ ! -r "${adb_whitelist}" ] then - rc=135 - f_log "adblock whitelist not found (${adb_whitelist})" "${rc}" - f_exit + f_log "adblock whitelist not found, source will be disabled" fi # check adblock temp directory @@ -287,25 +280,30 @@ f_envcheck() f_space "${adb_tmpdir}" if [ "${space_ok}" = "false" ] then - rc=140 - f_log "not enough space in '${adb_tmpdir}', please supersize your temp directory" "${rc}" - f_exit + if [ $((av_space)) -le 2000 ] + then + rc=135 + f_log "not enough free space in '${adb_tmpdir}' (avail. ${av_space} kb)" "${rc}" + f_exit + else + f_log "not enough free space to handle all adblock list sources at once in '${adb_tmpdir}' (avail. ${av_space} kb)" + fi fi else - rc=140 + rc=135 f_log "temp directory not found" "${rc}" f_exit fi # memory check # - mem_total="$(awk '$1 ~ /^MemTotal/ {print $2}' "/proc/meminfo" 2>/dev/null)" - mem_free="$(awk '$1 ~ /^MemFree/ {print $2}' "/proc/meminfo" 2>/dev/null)" - mem_swap="$(awk '$1 ~ /^SwapTotal/ {print $2}' "/proc/meminfo" 2>/dev/null)" + mem_total="$(awk '$1 ~ /^MemTotal/ {printf $2}' "/proc/meminfo")" + mem_free="$(awk '$1 ~ /^MemFree/ {printf $2}' "/proc/meminfo")" + mem_swap="$(awk '$1 ~ /^SwapTotal/ {printf $2}' "/proc/meminfo")" if [ $((mem_total)) -le 64000 ] && [ $((mem_swap)) -eq 0 ] then - adb_unique=0 - f_log "not enough memory, overall sort processing will be disabled (total: ${mem_total}, free: ${mem_free}, swap: ${mem_swap})" + mem_ok="false" + f_log "not enough free memory, overall sort processing will be disabled (total: ${mem_total}, free: ${mem_free}, swap: ${mem_swap})" fi # check backup configuration @@ -315,7 +313,7 @@ f_envcheck() f_space "${adb_backupdir}" if [ "${space_ok}" = "false" ] then - f_log "not enough space in '${adb_backupdir}', backup/restore will be disabled" + f_log "not enough free space in '${adb_backupdir}'(avail. ${av_space} kb), backup/restore will be disabled" backup_ok="false" else f_log "backup/restore will be enabled" @@ -326,34 +324,18 @@ f_envcheck() f_log "backup/restore will be disabled" fi - # check log configuration - # - adb_logdir="${adb_logfile%/*}" - if [ -n "${adb_logdir}" ] && [ -d "${adb_logdir}" ] - then - f_space "${adb_logdir}" - if [ "${space_ok}" = "false" ] - then - f_log "not enough space in '${adb_logdir}', logging will be disabled" - log_ok="false" - else - f_log "logging will be enabled" - log_ok="true" - fi - else - log_ok="false" - f_log "logging will be disabled" - fi - # check ipv4/iptables configuration # if [ -n "${adb_wanif4}" ] && [ -n "${adb_wandev4}" ] then f_firewall "IPv4" "nat" "A" "${adb_prechain_ipv4}" "adb-prerouting" "! -i ${adb_wandev4} -p tcp -d ${adb_nullipv4} -m multiport --dports 80,443 -j REDIRECT --to-ports ${adb_port}" - f_firewall "IPv4" "nat" "A" "${adb_prechain_ipv4}" "adb-dns" "! -i ${adb_wandev4} -p udp --dport 53 -j REDIRECT" - f_firewall "IPv4" "nat" "A" "${adb_prechain_ipv4}" "adb-dns" "! -i ${adb_wandev4} -p tcp --dport 53 -j REDIRECT" f_firewall "IPv4" "filter" "A" "${adb_fwdchain_ipv4}" "adb-forward" "! -i ${adb_wandev4} -d ${adb_nullipv4} -j REJECT --reject-with icmp-host-unreachable" f_firewall "IPv4" "filter" "A" "${adb_outchain_ipv4}" "adb-output" "! -i ${adb_wandev4} -d ${adb_nullipv4} -j REJECT --reject-with icmp-host-unreachable" + if [ $((adb_forcedns)) -eq 1 ] + then + f_firewall "IPv4" "nat" "A" "${adb_prechain_ipv4}" "adb-dns" "! -i ${adb_wandev4} -p udp --dport 53 -j REDIRECT" + f_firewall "IPv4" "nat" "A" "${adb_prechain_ipv4}" "adb-dns" "! -i ${adb_wandev4} -p tcp --dport 53 -j REDIRECT" + fi if [ "${fw_done}" = "true" ] then f_log "created volatile IPv4 firewall ruleset" @@ -366,10 +348,13 @@ f_envcheck() if [ -n "${adb_wanif6}" ] && [ -n "${adb_wandev6}" ] then f_firewall "IPv6" "nat" "A" "${adb_prechain_ipv6}" "adb-prerouting" "! -i ${adb_wandev6} -p tcp -d ${adb_nullipv6} -m multiport --dports 80,443 -j REDIRECT --to-ports ${adb_port}" - f_firewall "IPv6" "nat" "A" "${adb_prechain_ipv6}" "adb-dns" "! -i ${adb_wandev6} -p udp --dport 53 -j REDIRECT" - f_firewall "IPv6" "nat" "A" "${adb_prechain_ipv6}" "adb-dns" "! -i ${adb_wandev6} -p tcp --dport 53 -j REDIRECT" f_firewall "IPv6" "filter" "A" "${adb_fwdchain_ipv6}" "adb-forward" "! -i ${adb_wandev6} -d ${adb_nullipv6} -j REJECT --reject-with icmp6-addr-unreachable" f_firewall "IPv6" "filter" "A" "${adb_outchain_ipv6}" "adb-output" "! -i ${adb_wandev6} -d ${adb_nullipv6} -j REJECT --reject-with icmp6-addr-unreachable" + if [ $((adb_forcedns)) -eq 1 ] + then + f_firewall "IPv6" "nat" "A" "${adb_prechain_ipv6}" "adb-dns" "! -i ${adb_wandev6} -p udp --dport 53 -j REDIRECT" + f_firewall "IPv6" "nat" "A" "${adb_prechain_ipv6}" "adb-dns" "! -i ${adb_wandev6} -p tcp --dport 53 -j REDIRECT" + fi if [ "${fw_done}" = "true" ] then f_log "created volatile IPv6 firewall ruleset" @@ -379,42 +364,28 @@ f_envcheck() # check volatile adblock uhttpd instance configuration # - rc="$(ps | grep "[u]httpd.*\-h /www/adblock" >/dev/null 2>&1; printf ${?})" + rc="$(ps | grep -q "[u]httpd.*\-h /www/adblock"; printf ${?})" if [ $((rc)) -ne 0 ] then if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ] then - uhttpd -h "/www/adblock" -k 5 -N 200 -t 0 -T 1 -D -S -E "/adblock.html" -p "${adb_ipv4}:${adb_port}" -p "[${adb_ipv6}]:${adb_port}">/dev/null 2>&1 + uhttpd -h "/www/adblock" -k 5 -N 200 -t 0 -T 1 -D -S -E "/index.html" -p "${adb_ipv4}:${adb_port}" -p "[${adb_ipv6}]:${adb_port}" rc=${?} - if [ $((rc)) -eq 0 ] - then - f_log "created volatile uhttpd instance (${adb_ipv4}:${adb_port}, [${adb_ipv6}]:${adb_port})" - else - f_log "failed to initialize volatile uhttpd instance (${adb_ipv4}:${adb_port}, [${adb_ipv6}]:${adb_port})" "${rc}" - f_restore - fi elif [ -n "${adb_wanif4}" ] then - uhttpd -h "/www/adblock" -k 5 -N 200 -t 0 -T 1 -D -S -E "/adblock.html" -p "${adb_ipv4}:${adb_port}" >/dev/null 2>&1 + uhttpd -h "/www/adblock" -k 5 -N 200 -t 0 -T 1 -D -S -E "/index.html" -p "${adb_ipv4}:${adb_port}" rc=${?} - if [ $((rc)) -eq 0 ] - then - f_log "created volatile uhttpd instance (${adb_ipv4}:${adb_port})" - else - f_log "failed to initialize volatile uhttpd instance (${adb_ipv4}:${adb_port})" "${rc}" - f_restore - fi elif [ -n "${adb_wanif6}" ] then - uhttpd -h "/www/adblock" -k 5 -N 200 -t 0 -T 1 -D -S -E "/adblock.html" -p "[${adb_ipv6}]:${adb_port}" >/dev/null 2>&1 + uhttpd -h "/www/adblock" -k 5 -N 200 -t 0 -T 1 -D -S -E "/index.html" -p "[${adb_ipv6}]:${adb_port}" rc=${?} - if [ $((rc)) -eq 0 ] - then - f_log "created volatile uhttpd instance ([${adb_ipv6}]:${adb_port})" - else - f_log "failed to initialize volatile uhttpd instance ([${adb_ipv6}]:${adb_port})" "${rc}" - f_restore - fi + fi + if [ $((rc)) -eq 0 ] + then + f_log "created volatile uhttpd instance" + else + f_log "failed to initialize volatile uhttpd instance" "${rc}" + f_restore fi fi @@ -444,10 +415,10 @@ f_depend() local check local package="${1}" - check="$(printf "${pkg_list}" | grep "^${package} -" 2>/dev/null)" + check="$(printf "${pkg_list}" | grep "^${package} -")" if [ -z "${check}" ] then - rc=150 + rc=140 f_log "package '${package}' not found" "${rc}" f_exit fi @@ -479,10 +450,10 @@ f_firewall() # check whether iptables rule already applied and proceed accordingly # - rc="$("${ipt}" -w -t "${table}" -C "${chain}" -m comment --comment "${notes}" ${rules} >/dev/null 2>&1; printf ${?})" + rc="$("${ipt}" -w -t "${table}" -C "${chain}" -m comment --comment "${notes}" ${rules}; printf ${?})" if [ $((rc)) -ne 0 ] then - "${ipt}" -w -t "${table}" -"${ctype}" "${chain}" -m comment --comment "${notes}" ${rules} >/dev/null 2>&1 + "${ipt}" -w -t "${table}" -"${ctype}" "${chain}" -m comment --comment "${notes}" ${rules} rc=${?} if [ $((rc)) -eq 0 ] then @@ -494,8 +465,8 @@ f_firewall() fi } -################################################### -# f_log: log messages to stdout, syslog and logfile +########################################## +# f_log: log messages to stdout and syslog # f_log() { @@ -511,7 +482,7 @@ f_log() log_parm="-s" fi - # log to different output devices, set log class accordingly + # log to different output devices and set log class accordingly # if [ -n "${log_msg}" ] then @@ -521,11 +492,7 @@ f_log() log_rc=", rc: ${log_rc}" log_msg="${log_msg}${log_rc}" fi - /usr/bin/logger ${log_parm} -t "adblock[${adb_pid}] ${class}" "${log_msg}" - if [ "${log_ok}" = "true" ] - then - printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") adblock[${adb_pid}] ${class}: ${log_msg}" >> "${adb_logfile}" - fi + /usr/bin/logger ${log_parm} -t "adblock[${adb_pid}] ${class}" "${log_msg}" 2>&1 fi } @@ -540,7 +507,7 @@ f_space() # if [ -d "${mp}" ] then - av_space="$(df "${mp}" 2>/dev/null | tail -n1 2>/dev/null | awk '{print $4}')" + av_space="$(df "${mp}" | tail -n1 | awk '{printf $4}')" if [ $((av_space)) -lt $((adb_minspace)) ] then space_ok="false" @@ -560,7 +527,7 @@ f_restore() # if [ -n "${adb_revsrclist}" ] then - rm_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f \( ${adb_revsrclist} \) -print -exec rm -f "{}" \; 2>/dev/null)" + rm_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f \( ${adb_revsrclist} \) -print -exec rm -f "{}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${rm_done}" ] then @@ -576,7 +543,7 @@ f_restore() # if [ "${backup_ok}" = "true" ] && [ "$(printf "${adb_backupdir}/${adb_dnsprefix}."*)" != "${adb_backupdir}/${adb_dnsprefix}.*" ] then - restore_done="$(find "${adb_backupdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" -print -exec cp -pf "{}" "${adb_dnsdir}" \; 2>/dev/null)" + restore_done="$(find "${adb_backupdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" -print -exec cp -pf "{}" "${adb_dnsdir}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${restore_done}" ] then @@ -594,21 +561,20 @@ f_restore() # if [ -n "${restore_done}" ] || [ -n "${rm_done}" ] then - /etc/init.d/dnsmasq restart >/dev/null 2>&1 - sleep 2 - dns_status="$(ps 2>/dev/null | grep "[d]nsmasq" 2>/dev/null)" - if [ -n "${dns_status}" ] + /etc/init.d/dnsmasq restart + sleep 1 + rc="$(ps | grep -q "[d]nsmasq"; printf ${?})" + if [ $((rc)) -eq 0 ] then rc=0 + adb_count="$(head -qn -3 "${adb_dnsdir}/${adb_dnsprefix}."* | wc -l)" if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ] then - adb_count="$(($(head -qn -4 "${adb_dnsdir}/${adb_dnsprefix}."* 2>/dev/null | wc -l) / 2))" - else - adb_count="$(head -qn -4 "${adb_dnsdir}/${adb_dnsprefix}."* 2>/dev/null | wc -l)" + adb_count="$((adb_count / 2))" fi f_log "adblock lists with overall ${adb_count} domains loaded" else - rc=160 + rc=145 f_log "dnsmasq restart failed, please check 'logread' output" "${rc}" fi fi @@ -621,12 +587,12 @@ f_restore() # f_exit() { - local ipv4_prerouting - local ipv4_forward - local ipv4_output - local ipv6_prerouting - local ipv6_forward - local ipv6_output + local ipv4_prerouting=0 + local ipv4_forward=0 + local ipv4_output=0 + local ipv6_prerouting=0 + local ipv6_forward=0 + local ipv6_output=0 local iptv4="/usr/sbin/iptables" local iptv6="/usr/sbin/ip6tables" @@ -634,11 +600,11 @@ f_exit() # if [ -f "${adb_tmpfile}" ] then - rm -f "${adb_tmpfile}" >/dev/null 2>&1 + rm -f "${adb_tmpfile}" fi if [ -d "${adb_tmpdir}" ] then - rm -rf "${adb_tmpdir}" >/dev/null 2>&1 + rm -rf "${adb_tmpdir}" fi # final log message and iptables statistics @@ -647,34 +613,20 @@ f_exit() then if [ -n "${adb_wanif4}" ] then - ipv4_prerouting="$(${iptv4} -t nat -vnL | awk '$11 ~ /^adb-prerouting$/ {sum += $1} END {print sum}')" - ipv4_forward="$(${iptv4} -vnL | awk '$11 ~ /^adb-forward$/ {sum += $1} END {print sum}')" - ipv4_output="$(${iptv4} -vnL | awk '$11 ~ /^adb-output$/ {sum += $1} END {print sum}')" + ipv4_prerouting="$(${iptv4} -t nat -vnL | awk '$11 ~ /^adb-prerouting$/ {sum += $1} END {printf sum}')" + ipv4_forward="$(${iptv4} -vnL | awk '$11 ~ /^adb-forward$/ {sum += $1} END {printf sum}')" + ipv4_output="$(${iptv4} -vnL | awk '$11 ~ /^adb-output$/ {sum += $1} END {printf sum}')" fi if [ -n "${adb_wanif6}" ] then - ipv6_prerouting="$(${iptv6} -t nat -vnL | awk '$10 ~ /^adb-prerouting$/ {sum += $1} END {print sum}')" - ipv6_forward="$(${iptv6} -vnL | awk '$10 ~ /^adb-forward$/ {sum += $1} END {print sum}')" - ipv6_output="$(${iptv6} -vnL | awk '$10 ~ /^adb-output$/ {sum += $1} END {print sum}')" - fi - if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ] - then - f_log "adblock firewall statistics (IPv4/IPv6):" - f_log "${ipv4_prerouting}/${ipv6_prerouting} packets redirected in PREROUTING chain" - f_log "${ipv4_forward}/${ipv6_forward} packets rejected in FORWARD chain" - f_log "${ipv4_output}/${ipv6_output} packets rejected in OUTPUT chain" - elif [ -n "${adb_wanif4}" ] - then - f_log "adblock firewall statistics (IPv4):" - f_log "${ipv4_prerouting} packets redirected in PREROUTING chain" - f_log "${ipv4_forward} packets rejected in FORWARD chain" - f_log "${ipv4_output} packets rejected in OUTPUT chain" - elif [ -n "${adb_wanif6}" ] - then - f_log "${ipv6_prerouting} packets redirected in PREROUTING chain" - f_log "${ipv6_forward} packets rejected in FORWARD chain" - f_log "${ipv6_output} packets rejected in OUTPUT chain" + ipv6_prerouting="$(${iptv6} -t nat -vnL | awk '$10 ~ /^adb-prerouting$/ {sum += $1} END {printf sum}')" + ipv6_forward="$(${iptv6} -vnL | awk '$10 ~ /^adb-forward$/ {sum += $1} END {printf sum}')" + ipv6_output="$(${iptv6} -vnL | awk '$10 ~ /^adb-output$/ {sum += $1} END {printf sum}')" fi + f_log "adblock firewall statistics (IPv4/IPv6):" + f_log "${ipv4_prerouting}/${ipv6_prerouting} packets redirected in PREROUTING chain" + f_log "${ipv4_forward}/${ipv6_forward} packets rejected in FORWARD chain" + f_log "${ipv4_output}/${ipv6_output} packets rejected in OUTPUT chain" f_log "domain adblock processing finished successfully (${adb_scriptver}, ${openwrt_version}, $(/bin/date "+%d.%m.%Y %H:%M:%S"))" elif [ $((rc)) -gt 0 ] then @@ -682,6 +634,6 @@ f_exit() else rc=0 fi - rm -f "${adb_pidfile}" >/dev/null 2>&1 + rm -f "${adb_pidfile}" exit ${rc} } diff --git a/net/adblock/files/adblock-update.sh b/net/adblock/files/adblock-update.sh index 2fec96d746..71878e87b8 100755 --- a/net/adblock/files/adblock-update.sh +++ b/net/adblock/files/adblock-update.sh @@ -1,33 +1,24 @@ #!/bin/sh -####################################################### -# ad/abuse domain blocking script for dnsmasq/openwrt # -# written by Dirk Brenken (openwrt@brenken.org) # -####################################################### - -# LICENSE -# ======== -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# +# ad/abuse domain blocking script for dnsmasq/openwrt +# written by Dirk Brenken (openwrt@brenken.org) + +# This is free software, licensed under the GNU General Public License v3. # You should have received a copy of the GNU General Public License # along with this program. If not, see . -############### -# environment # -############### - -# set the C locale, characters are single bytes, the charset is ASCII -# speeds up things like sort, grep etc. +# set the C locale # LC_ALL=C +# script debug switch (disabled by default) +# set 'DEBUG=1' to enable script debugging +# +DEBUG=0 +if [ $((DEBUG)) -eq 0 ] +then + exec 2>/dev/null +fi + # pid handling # adb_pid="${$}" @@ -36,7 +27,7 @@ adb_pidfile="/var/run/adblock.pid" if [ -r "${adb_pidfile}" ] then rc=255 - /usr/bin/logger -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile} 2>/dev/null))" + /usr/bin/logger -s -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile}))" exit ${rc} else printf "${adb_pid}" > "${adb_pidfile}" @@ -45,27 +36,24 @@ fi # get current directory, script- and openwrt version # adb_scriptdir="${0%/*}" -adb_scriptver="0.80.1" -openwrt_version="$(cat /etc/openwrt_version 2>/dev/null)" +adb_scriptver="1.0.0" +openwrt_version="$(cat /etc/openwrt_version)" # source in adblock function library # if [ -r "${adb_scriptdir}/adblock-helper.sh" ] then - . "${adb_scriptdir}/adblock-helper.sh" 2>/dev/null + . "${adb_scriptdir}/adblock-helper.sh" else rc=254 - /usr/bin/logger -t "adblock[${adb_pid}] error" "adblock function library not found" + /usr/bin/logger -s -t "adblock[${adb_pid}] error" "adblock function library not found" + rm -f "${adb_pidfile}" exit ${rc} fi -################ -# main program # -################ - # call trap function on error signals (HUP, INT, QUIT, BUS, SEGV, TERM) # -trap "rc=253; f_log 'error signal received/trapped' '${rc}'; f_exit" 1 2 3 10 11 15 +trap "rc=250; f_log 'error signal received/trapped' '${rc}'; f_exit" 1 2 3 10 11 15 # load environment # @@ -93,15 +81,16 @@ then shalla_file="${adb_tmpdir}/shallalist.txt" src_name="shalla" adb_dnsfile="${adb_dnsdir}/${adb_dnsprefix}.${src_name}" - list_time="$(grep -F "# last modified: " "${adb_dnsfile}" 2>/dev/null)" - list_time="${list_time/*: /}" + if [ -r "${adb_dnsfile}" ] + then + list_time="$(awk '$0 ~ /^# last modified/ {printf substr($0,18)}' "${adb_dnsfile}")" + fi f_log "=> (pre-)processing adblock source '${src_name}'" # only process shallalist archive with updated timestamp, # extract and merge only domains of selected shallalist categories # - shalla_time="$(${adb_fetch} ${wget_parm} --server-response --spider "${adb_arc_shalla}" 2>&1 | grep -F "Last-Modified: " 2>/dev/null | tr -d '\r' 2>/dev/null)" - shalla_time="${shalla_time/*: /}" + shalla_time="$(${adb_fetch} ${wget_parm} --server-response --spider "${adb_arc_shalla}" 2>&1 | awk '$0 ~ /Last-Modified/ {printf substr($0,18)}')" if [ -z "${shalla_time}" ] then shalla_time="$(date)" @@ -109,14 +98,14 @@ then fi if [ -z "${list_time}" ] || [ "${list_time}" != "${shalla_time}" ] then - ${adb_fetch} ${wget_parm} --output-document="${shalla_archive}" "${adb_arc_shalla}" 2>/dev/null + ${adb_fetch} ${wget_parm} --output-document="${shalla_archive}" "${adb_arc_shalla}" rc=${?} if [ $((rc)) -eq 0 ] then > "${shalla_file}" for category in ${adb_cat_shalla} do - tar -xOzf "${shalla_archive}" BL/${category}/domains 2>/dev/null >> "${shalla_file}" + tar -xOzf "${shalla_archive}" BL/${category}/domains >> "${shalla_file}" rc=${?} if [ $((rc)) -ne 0 ] then @@ -127,8 +116,8 @@ then # remove temporary files # - rm -f "${shalla_archive}" >/dev/null 2>&1 - rm -rf "${adb_tmpdir}/BL" >/dev/null 2>&1 + rm -f "${shalla_archive}" + rm -rf "${adb_tmpdir}/BL" if [ $((rc)) -eq 0 ] then adb_sources="${adb_sources} ${shalla_file}&ruleset=rset_shalla" @@ -162,8 +151,10 @@ do url="${src/\&ruleset=*/}" src_name="${src/*\&ruleset=rset_/}" adb_dnsfile="${adb_dnsdir}/${adb_dnsprefix}.${src_name}" - list_time="$(grep -F "# last modified: " "${adb_dnsfile}" 2>/dev/null)" - list_time="${list_time/*: /}" + if [ -r "${adb_dnsfile}" ] + then + list_time="$(awk '$0 ~ /^# last modified/ {printf substr($0,18)}' "${adb_dnsfile}")" + fi f_log "=> processing adblock source '${src_name}'" # prepare find statement with active adblock list sources @@ -179,13 +170,12 @@ do # if [ "${src_name}" = "blacklist" ] then - url_time="$(date -r "${adb_blacklist}" 2>/dev/null)" + url_time="$(date -r "${adb_blacklist}")" elif [ "${src_name}" = "shalla" ] then url_time="${shalla_time}" else - url_time="$(${adb_fetch} ${wget_parm} --server-response --spider "${url}" 2>&1 | grep -F "Last-Modified: " 2>/dev/null | tr -d '\r' 2>/dev/null)" - url_time="${url_time/*: /}" + url_time="$(${adb_fetch} ${wget_parm} --server-response --spider "${url}" 2>&1 | awk '$0 ~ /Last-Modified/ {printf substr($0,18)}')" fi if [ -z "${url_time}" ] then @@ -196,14 +186,14 @@ do then if [ "${src_name}" = "blacklist" ] then - tmp_domains="$(cat "${adb_blacklist}" 2>/dev/null)" + tmp_domains="$(cat "${adb_blacklist}")" rc=${?} elif [ "${src_name}" = "shalla" ] then - tmp_domains="$(cat "${shalla_file}" 2>/dev/null)" + tmp_domains="$(cat "${shalla_file}")" rc=${?} else - tmp_domains="$(${adb_fetch} ${wget_parm} --output-document=- "${url}" 2>/dev/null)" + tmp_domains="$(${adb_fetch} ${wget_parm} --output-document=- "${url}")" rc=${?} fi else @@ -215,12 +205,12 @@ do # if [ $((rc)) -eq 0 ] && [ -n "${tmp_domains}" ] then - eval "$(printf "${src}" | sed 's/\(.*\&ruleset=\)/ruleset=\$/g')" - count="$(printf "%s\n" "${tmp_domains}" | tr '[A-Z]' '[a-z]' | eval "${ruleset}" | tee "${adb_tmpfile}" | wc -l)" + eval "src_rset=\${rset_${src_name}}" + count="$(printf "%s\n" "${tmp_domains}" | eval "${src_rset}" | tee "${adb_tmpfile}" | wc -l)" f_log " source download finished (${count} entries)" if [ "${src_name}" = "shalla" ] then - rm -f "${shalla_file}" >/dev/null 2>&1 + rm -f "${shalla_file}" fi unset tmp_domains elif [ $((rc)) -eq 0 ] && [ -z "${tmp_domains}" ] @@ -246,10 +236,10 @@ do then if [ -s "${adb_whitelist}" ] then - grep -Fvxf "${adb_whitelist}" "${adb_tmpfile}" 2>/dev/null | sort 2>/dev/null | uniq -u 2>/dev/null | eval "${adb_dnsformat}" 2>/dev/null > "${adb_dnsfile}" + grep -Fvxf "${adb_whitelist}" "${adb_tmpfile}" | sort -u | eval "${adb_dnsformat}" > "${adb_dnsfile}" rc=${?} else - sort "${adb_tmpfile}" 2>/dev/null | uniq -u 2>/dev/null | eval "${adb_dnsformat}" 2>/dev/null > "${adb_dnsfile}" + sort -u "${adb_tmpfile}" | eval "${adb_dnsformat}" > "${adb_dnsfile}" rc=${?} fi @@ -262,20 +252,13 @@ do adb_revsrclist="${adb_revsrclist} -o -name ${adb_dnsprefix}.${src_name}" fi - # write preliminary adblock list footer + # write preliminary footer # if [ $((rc)) -eq 0 ] then - if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ] - then - count="$(($(wc -l < "${adb_dnsdir}/${adb_dnsprefix}.${src_name}") / 2))" - else - count="$(wc -l < "${adb_dnsdir}/${adb_dnsprefix}.${src_name}")" - fi - printf "%s\n" "#------------------------------------------------------------------" >> "${adb_dnsfile}" - printf "%s\n" "# ${0##*/} (${adb_scriptver}) - ${count} ad/abuse domains blocked" >> "${adb_dnsfile}" - printf "%s\n" "# source: ${url}" >> "${adb_dnsfile}" + printf "%s\n" "#---------------------------------------------" >> "${adb_dnsfile}" printf "%s\n" "# last modified: ${url_time}" >> "${adb_dnsfile}" + printf "%s\n" "##" >> "${adb_dnsfile}" f_log " domain merging finished" else f_log " domain merging failed" "${rc}" @@ -291,14 +274,14 @@ done # if [ -n "${adb_srclist}" ] then - rm_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" \( ${adb_srclist} \) -print -exec rm -f "{}" \; 2>/dev/null)" + rm_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" \( ${adb_srclist} \) -print -exec rm -f "{}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${rm_done}" ] then f_log "disabled adblock lists removed" if [ "${backup_ok}" = "true" ] then - rm_done="$(find "${adb_backupdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" \( ${adb_srclist} \) -print -exec rm -f "{}" \; 2>/dev/null)" + rm_done="$(find "${adb_backupdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" \( ${adb_srclist} \) -print -exec rm -f "{}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${rm_done}" ] then @@ -315,14 +298,14 @@ then f_exit fi else - rm_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" -print -exec rm -f "{}" \; 2>/dev/null)" + rm_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" -print -exec rm -f "{}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${rm_done}" ] then f_log "all adblock lists removed" if [ "${backup_ok}" = "true" ] then - rm_done="$(find "${adb_backupdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" -print -exec rm -f "{}" \; 2>/dev/null)" + rm_done="$(find "${adb_backupdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}.*" -print -exec rm -f "{}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${rm_done}" ] then @@ -344,7 +327,7 @@ fi # if [ "${backup_ok}" = "true" ] && [ -n "${adb_errsrclist}" ] then - restore_done="$(find "${adb_backupdir}" -maxdepth 1 -type f \( ${adb_errsrclist} \) -print -exec cp -pf "{}" "${adb_dnsdir}" \; 2>/dev/null)" + restore_done="$(find "${adb_backupdir}" -maxdepth 1 -type f \( ${adb_errsrclist} \) -print -exec cp -pf "{}" "${adb_dnsdir}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${restore_done}" ] then @@ -356,73 +339,73 @@ then fi fi -# make separate adblock lists unique +# make separate adblock lists entries unique # -if [ $((adb_unique)) -eq 1 ] +if [ "${mem_ok}" != "false" ] then if [ -n "${adb_revsrclist}" ] then f_log "remove duplicates in separate adblock lists" - # generate a temporary, unique overall list + # generate a temporary unique overall list # - head -qn -4 "${adb_dnsdir}/${adb_dnsprefix}."* 2>/dev/null | sort -u 2>/dev/null > "${adb_dnsdir}/tmp.overall" + head -qn -3 "${adb_dnsdir}/${adb_dnsprefix}."* | sort -u > "${adb_dnsdir}/tmp.overall" # loop through all separate lists, ordered by size (ascending) # - for list in $(ls -Sr "${adb_dnsdir}/${adb_dnsprefix}."* 2>/dev/null) + for list in $(ls -Sr "${adb_dnsdir}/${adb_dnsprefix}."*) do - # check separate lists vs. overall list, - # rewrite only duplicate entries back to separate lists + # check original separate list vs. temporary overall list, + # rewrite only duplicate entries back to temporary separate list # list="${list/*./}" - sort "${adb_dnsdir}/tmp.overall" "${adb_dnsdir}/${adb_dnsprefix}.${list}" 2>/dev/null | uniq -d 2>/dev/null > "${adb_dnsdir}/tmp.${list}" + sort "${adb_dnsdir}/tmp.overall" "${adb_dnsdir}/${adb_dnsprefix}.${list}" | uniq -d > "${adb_dnsdir}/tmp.${list}" - # remove these entries from overall list, - # rewrite only unique entries back to overall list + # rewrite only unique entries back to temporary overall list # - tmp_unique="$(sort "${adb_dnsdir}/tmp.overall" "${adb_dnsdir}/tmp.${list}" 2>/dev/null | uniq -u 2>/dev/null)" + tmp_unique="$(sort "${adb_dnsdir}/tmp.overall" "${adb_dnsdir}/tmp.${list}" | uniq -u)" printf "%s\n" "${tmp_unique}" > "${adb_dnsdir}/tmp.overall" - # write final adblocklist footer + # write unique result back to original separate list (with list footer) # - if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ] - then - count="$(($(wc -l < "${adb_dnsdir}/tmp.${list}") / 2))" - else - count="$(wc -l < "${adb_dnsdir}/tmp.${list}")" - fi - printf "%s\n" "#------------------------------------------------------------------" >> "${adb_dnsdir}/tmp.${list}" - printf "%s\n" "# ${0##*/} (${adb_scriptver}) - ${count} ad/abuse domains blocked" >> "${adb_dnsdir}/tmp.${list}" - tail -qn -2 "${adb_dnsdir}/$adb_dnsprefix.${list}" 2>/dev/null >> "${adb_dnsdir}/tmp.${list}" - mv -f "${adb_dnsdir}/tmp.${list}" "${adb_dnsdir}/${adb_dnsprefix}.${list}" >/dev/null 2>&1 + tail -qn 3 "${adb_dnsdir}/$adb_dnsprefix.${list}" >> "${adb_dnsdir}/tmp.${list}" + mv -f "${adb_dnsdir}/tmp.${list}" "${adb_dnsdir}/${adb_dnsprefix}.${list}" done - rm -f "${adb_dnsdir}/tmp.overall" >/dev/null 2>&1 + rm -f "${adb_dnsdir}/tmp.overall" fi fi -# get overall count +# set separate list count & get overall count # -if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ] -then - adb_count="$(($(head -qn -4 "${adb_dnsdir}/${adb_dnsprefix}."* 2>/dev/null | wc -l) / 2))" -else - adb_count="$(head -qn -4 "${adb_dnsdir}/${adb_dnsprefix}."* 2>/dev/null | wc -l)" -fi +for list in $(ls -Sr "${adb_dnsdir}/${adb_dnsprefix}."*) +do + list="${list/*./}" + count="$(head -qn -3 "${adb_dnsdir}/${adb_dnsprefix}.${list}" | wc -l)" + if [ -n "${adb_wanif4}" ] && [ -n "${adb_wanif6}" ] + then + count=$((count / 2)) + fi + if [ "$(tail -qn 1 "${adb_dnsdir}/${adb_dnsprefix}.${list}")" = "##" ] + then + last_line="# ${0##*/} (${adb_scriptver}) - ${count} ad\/abuse domains blocked" + sed -i "s/^##$/${last_line}/" "${adb_dnsdir}/${adb_dnsprefix}.${list}" + fi + adb_count=$((adb_count + count)) +done # restart dnsmasq with newly generated or deleted adblock lists, # check dnsmasq startup afterwards # if [ -n "${adb_revsrclist}" ] || [ -n "${rm_done}" ] || [ -n "${restore_done}" ] then - /etc/init.d/dnsmasq restart >/dev/null 2>&1 - sleep 2 - dns_status="$(ps 2>/dev/null | grep "[d]nsmasq" 2>/dev/null)" - if [ -n "${dns_status}" ] + /etc/init.d/dnsmasq restart + sleep 1 + rc="$(ps | grep -q "[d]nsmasq"; printf ${?})" + if [ $((rc)) -eq 0 ] then f_log "adblock lists with overall ${adb_count} domains loaded" else - rc=105 + rc=100 f_log "dnsmasq restart failed, please check 'logread' output" "${rc}" f_restore fi @@ -434,7 +417,7 @@ fi # if [ "${backup_ok}" = "true" ] && [ -n "${adb_revsrclist}" ] && [ "$(printf "${adb_dnsdir}/${adb_dnsprefix}."*)" != "${adb_dnsdir}/${adb_dnsprefix}.*" ] then - backup_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f \( ${adb_revsrclist} \) -print -exec cp -pf "{}" "${adb_backupdir}" \; 2>/dev/null)" + backup_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f \( ${adb_revsrclist} \) -print -exec cp -pf "{}" "${adb_backupdir}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${backup_done}" ] then diff --git a/net/adblock/files/adblock.conf b/net/adblock/files/adblock.conf index 3c446d1145..cb18787dcc 100644 --- a/net/adblock/files/adblock.conf +++ b/net/adblock/files/adblock.conf @@ -1,19 +1,16 @@ # adblock configuration, for further information -# see '/etc/adblock/README.md' +# see 'https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md' config adblock 'global' option adb_enabled '1' - option adb_cfgver '0.80' + option adb_cfgver '1.0' option adb_blacklist '/etc/adblock/adblock.blacklist' option adb_whitelist '/etc/adblock/adblock.whitelist' + option adb_forcedns '1' config service 'backup' option enabled '0' - option adb_backupdir '/tmp' - -config service 'log' - option enabled '0' - option adb_logfile '/tmp/adb_debug.log' + option adb_backupdir '/mnt' config source 'adaway' option enabled '1' @@ -72,9 +69,14 @@ config source 'shalla' config source 'spam404' option enabled '0' - option adb_src 'http://spam404bl.com/spam404scamlist.txt&ruleset=rset_spam404' + option adb_src 'https://raw.githubusercontent.com/Dawsey21/Lists/master/main-blacklist.txt&ruleset=rset_spam404' option adb_srcdesc 'generic blocklist for suspicious domains, infrequent updates, approx. 5.000 entries' +config source 'sysctl' + option enabled '0' + option adb_src 'http://sysctl.org/cameleon/hosts&ruleset=rset_sysctl' + option adb_srcdesc 'generic blocklist for ad related domains, weekly updates, approx. 21.000 entries' + config source 'whocares' option enabled '0' option adb_src 'http://someonewhocares.org/hosts/hosts&ruleset=rset_whocares' @@ -87,7 +89,7 @@ config source 'winhelp' config source 'yoyo' option enabled '1' - option adb_src 'https://pgl.yoyo.org/adservers/serverlist.php?hostformat=one-line&showintro=0&mimetype=plaintext&ruleset=rset_yoyo' + option adb_src 'https://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml&showintro=0&mimetype=plaintext&ruleset=rset_yoyo' option adb_srcdesc 'focus on ad related domains, weekly updates, approx. 2.500 entries' config source 'zeus' diff --git a/net/adblock/files/adblock.hotplug b/net/adblock/files/adblock.hotplug index 050701b1e3..0aa6196878 100644 --- a/net/adblock/files/adblock.hotplug +++ b/net/adblock/files/adblock.hotplug @@ -1,14 +1,16 @@ #!/bin/sh # -if [ -f "/var/run/adblock.pid" ] || [ "${ACTION}" != "ifup" ] +adb_pid="${$}" +adb_pidfile="/var/run/adblock.pid" +adb_logger="/usr/bin/logger" + +if [ -f "${adb_pidfile}" ] || [ "${ACTION}" != "ifup" ] then exit 0 fi . /lib/functions/network.sh -adb_pid="${$}" -adb_logger="/usr/bin/logger" network_find_wan adb_wanif4 network_find_wan6 adb_wanif6 diff --git a/net/adblock/files/adblock.init b/net/adblock/files/adblock.init index 2174fea603..47b11dd729 100755 --- a/net/adblock/files/adblock.init +++ b/net/adblock/files/adblock.init @@ -3,6 +3,7 @@ START=99 +exec 2>/dev/null adb_pid="${$}" adb_script="/usr/bin/adblock-update.sh" adb_pidfile="/var/run/adblock.pid" @@ -19,7 +20,7 @@ fi if [ -r "${adb_pidfile}" ] then - "${adb_logger}" ${log_parm} -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile} 2>/dev/null))" + "${adb_logger}" ${log_parm} -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile})" 2>&1 exit 255 fi @@ -36,6 +37,7 @@ start() restart() { + stop start } @@ -47,23 +49,23 @@ reload() stop() { - rm_done="$(find "/tmp/dnsmasq.d" -maxdepth 1 -type f -name "adb_list.*" -print -exec rm -f "{}" \; 2>/dev/null)" + rm_done="$(find "/tmp/dnsmasq.d" -maxdepth 1 -type f -name "adb_list.*" -print -exec rm -f "{}" \;)" rc=${?} if [ $((rc)) -eq 0 ] && [ -n "${rm_done}" ] then - /etc/init.d/dnsmasq restart >/dev/null 2>&1 - /etc/init.d/firewall restart >/dev/null 2>&1 + /etc/init.d/dnsmasq restart + /etc/init.d/firewall restart fi - uhttpd_pid="$(ps 2>/dev/null | grep "[u]httpd.*\-h /www/adblock" 2>/dev/null | awk '{print $1}' 2>/dev/null)" + uhttpd_pid="$(ps | grep "[u]httpd.*\-h /www/adblock" | awk '{print $1}')" if [ -n "${uhttpd_pid}" ] then - kill -9 "${uhttpd_pid}" >/dev/null 2>&1 + kill -9 "${uhttpd_pid}" fi if [ -n "${rm_done}" ] || [ -n "${uhttpd_pid}" ] then - "${adb_logger}" ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" + "${adb_logger}" ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" 2>&1 fi return 0 } diff --git a/net/adblock/files/www/adblock/adblock.html b/net/adblock/files/www/adblock/adblock.html deleted file mode 100644 index 29cdf586e8..0000000000 --- a/net/adblock/files/www/adblock/adblock.html +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/net/arp-scan/Makefile b/net/arp-scan/Makefile new file mode 100644 index 0000000000..78e84125af --- /dev/null +++ b/net/arp-scan/Makefile @@ -0,0 +1,47 @@ +# +# Copyright (C) 2016 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:=arp-scan +PKG_VERSION:=1.9-40-g69b2f70 +PKG_RELEASE:=1 +PKG_LICENSE:=GPL-3.0 +PKG_MAINTAINER:=Sergey Urushkin + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/royhills/arp-scan.git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=69b2f70588565385f3a61d9b1f100f01747cd5e1 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz + +PKG_FIXUP:=autoreconf + +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/arp-scan + SECTION:=net + CATEGORY:=Network + TITLE:=ARP scanner + DEPENDS:=+libpcap + URL:=https://github.com/royhills/arp-scan + PKG_MAINTAINER:=Sergey Urushkin +endef + +define Package/arp-scan/description + ARP scanner +endef + +define Package/arp-scan/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/arp-scan $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,arp-scan)) diff --git a/net/arp-scan/patches/001-cross_compile.patch b/net/arp-scan/patches/001-cross_compile.patch new file mode 100644 index 0000000000..aa7f53e290 --- /dev/null +++ b/net/arp-scan/patches/001-cross_compile.patch @@ -0,0 +1,10 @@ +--- a/acinclude.m4 2016-02-19 15:21:01.000000000 +0300 ++++ b/acinclude.m4 2016-02-19 17:18:50.480874343 +0300 +@@ -211,7 +211,6 @@ + LONG_LONG_INT_FORMAT='' + + case $pgac_cv_snprintf_long_long_int_format in +- cross) AC_MSG_RESULT([cannot test (not on host machine)]);; + ?*) AC_MSG_RESULT([$pgac_cv_snprintf_long_long_int_format]) + LONG_LONG_INT_FORMAT=$pgac_cv_snprintf_long_long_int_format;; + *) AC_MSG_RESULT(none);; diff --git a/net/bind/Makefile b/net/bind/Makefile index 6b3601e0b7..f375690719 100644 --- a/net/bind/Makefile +++ b/net/bind/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bind -PKG_VERSION:=9.9.8-P3 +PKG_VERSION:=9.9.8-P4 PKG_RELEASE:=2 USERID:=bind=57:bind=57 @@ -20,7 +20,7 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:= \ ftp://ftp.isc.org/isc/bind9/$(PKG_VERSION) \ http://www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/$(PKG_VERSION) -PKG_MD5SUM:=30b9bf88a78eee783d3fef5257445788 +PKG_MD5SUM:=5e401f6cf024f596044d733ceb0d6415 PKG_FIXUP:=autoreconf PKG_REMOVE_FILES:=aclocal.m4 libtool.m4 diff --git a/net/ddns-scripts/Makefile b/net/ddns-scripts/Makefile index b72c55957c..1805450f96 100755 --- a/net/ddns-scripts/Makefile +++ b/net/ddns-scripts/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ddns-scripts # Version == major.minor.patch # increase on new functionality (minor) or patches (patch) -PKG_VERSION:=2.6.2 +PKG_VERSION:=2.6.4 # Release == build # increase on changes of services files or tld_names.dat PKG_RELEASE:=1 diff --git a/net/ddns-scripts/files/dynamic_dns_functions.sh b/net/ddns-scripts/files/dynamic_dns_functions.sh index ca605dfbe1..525719b593 100755 --- a/net/ddns-scripts/files/dynamic_dns_functions.sh +++ b/net/ddns-scripts/files/dynamic_dns_functions.sh @@ -21,7 +21,7 @@ . /lib/functions/network.sh # GLOBAL VARIABLES # -VERSION="2.6.1-1" +VERSION="2.6.4-1" SECTION_ID="" # hold config's section name VERBOSE_MODE=1 # default mode is log to console, but easily changed with parameter @@ -721,9 +721,10 @@ do_transfer() { # force network/ip not supported [ -n "$__BINDIP" ] && \ write_log 14 "uclient-fetch: FORCE binding to specific address not supported" - # force ip version not supported - [ $force_ipversion -eq 1 ] && \ - write_log 14 "uclient-fetch: Force connecting to IPv4 or IPv6 addresses not supported" + # force ip version to use + if [ $force_ipversion -eq 1 ]; then + [ $use_ipv6 -eq 0 ] && __PROG="$__PROG -4" || __PROG="$__PROG -6" # force IPv4/IPv6 + fi # https possibly not supported [ $use_https -eq 1 -a ! -f /lib/libustream-ssl.so ] && \ write_log 14 "uclient-fetch: no HTTPS support! Additional install one of ustream-ssl packages" diff --git a/net/ddns-scripts/files/dynamic_dns_updater.sh b/net/ddns-scripts/files/dynamic_dns_updater.sh index 78b3df74d9..02a61dfe90 100755 --- a/net/ddns-scripts/files/dynamic_dns_updater.sh +++ b/net/ddns-scripts/files/dynamic_dns_updater.sh @@ -265,18 +265,15 @@ get_registered_ip REGISTERED_IP "NO_RETRY" ERR_LAST=$? # No error or No IP set otherwise retry [ $ERR_LAST -eq 0 -o $ERR_LAST -eq 127 ] || get_registered_ip REGISTERED_IP +# on IPv6 we use expanded version to be shure when comparing +[ $use_ipv6 -eq 1 ] && expand_ipv6 "$REGISTERED_IP" REGISTERED_IP # loop endlessly, checking ip every check_interval and forcing an updating once every force_interval write_log 6 "Starting main loop at $(eval $DATE_PROG)" while : ; do get_local_ip LOCAL_IP # read local IP - - # on IPv6 we use expanded version to be shure when comparing - [ $use_ipv6 -eq 1 ] && { - expand_ipv6 "$LOCAL_IP" LOCAL_IP - expand_ipv6 "$REGISTERED_IP" REGISTERED_IP - } + [ $use_ipv6 -eq 1 ] && expand_ipv6 "$LOCAL_IP" LOCAL_IP # on IPv6 we use expanded version # prepare update # never updated or forced immediate then NEXT_TIME = 0 @@ -332,6 +329,7 @@ while : ; do REGISTERED_IP="" # clear variable get_registered_ip REGISTERED_IP # get registered/public IP + [ $use_ipv6 -eq 1 ] && expand_ipv6 "$REGISTERED_IP" REGISTERED_IP # on IPv6 we use expanded version # IP's are still different if [ "$LOCAL_IP" != "$REGISTERED_IP" ]; then diff --git a/net/ddns-scripts/files/services b/net/ddns-scripts/files/services index 71f9d3a10e..d62032d6c0 100644 --- a/net/ddns-scripts/files/services +++ b/net/ddns-scripts/files/services @@ -119,3 +119,18 @@ # zzzz.io Free Dynamic DNS "zzzz.io" "https://zzzz.io/api/v1/update/[DOMAIN]/?token=[PASSWORD]&ip=[IP]" "Updated|No change" + +# dynu.com +"dynu.com" "http://api.dynu.com/nic/update?hostname=[DOMAIN]&myip=[IP]&username=[USERNAME]&password=[PASSWORD]" + +# nubem.com +"nubem.com" "http://[USERNAME]:[PASSWORD]@nubem.com/nic/update?hostname=[DOMAIN]&myip=[IP]" + +# nettica.com +"nettica.com" "http://www.nettica.com/Domain/Update.aspx?U=[USERNAME]&PC=[PASSWORD]&FQDN=[DOMAIN]&N=[IP]" + +# zerigo.com +"zerigo.com" "http://update.zerigo.com/dynamic?host=[DOMAIN]&ip=[IP]&user=[USERNAME]&password=[PASSWORD]" + +# regfish.de +"regfish.de" "http://dyndns.regfish.de/?fqdn=[DOMAIN]&forcehost=1&authtype=secure&token=[PASSWORD]&ipv4=[IP]" "success|100|101" diff --git a/net/ddns-scripts/files/services_ipv6 b/net/ddns-scripts/files/services_ipv6 index 941f0c08c7..b6e5997f93 100644 --- a/net/ddns-scripts/files/services_ipv6 +++ b/net/ddns-scripts/files/services_ipv6 @@ -57,5 +57,12 @@ # IPv6 @ Dyn.com "dyndns.org" "http://[USERNAME]:[PASSWORD]@members.dyndns.org/nic/update?hostname=[DOMAIN]&myip=[IP]" -# zzzz.io Free Dynamic DNS +# IPv6 @ zzzz.io Free Dynamic DNS "zzzz.io" "https://zzzz.io/api/v1/update/[DOMAIN]/?token=[PASSWORD]&type=aaaa&ip=[IP]" "Updated|No change" + +# IPv6 @ zerigo.com +"zerigo.com" "http://update.zerigo.com/dynamic?host=[DOMAIN]&ip=[IP]&user=[USERNAME]&password=[PASSWORD]" + +# IPv6 @ regfish.de +"regfish.de" "http://dyndns.regfish.de/?fqdn=[DOMAIN]&forcehost=1&authtype=secure&token=[PASSWORD]&ipv6=[IP]" "success|100|101" + diff --git a/net/gnunet/Makefile b/net/gnunet/Makefile index cfb1949c32..45e99361d9 100644 --- a/net/gnunet/Makefile +++ b/net/gnunet/Makefile @@ -8,9 +8,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gnunet -PKG_SOURCE_VERSION:=36713 +PKG_SOURCE_VERSION:=36918 PKG_VERSION:=0.10.1-svn$(PKG_SOURCE_VERSION) -PKG_RELEASE:=3 +PKG_RELEASE:=2 # ToDo: # - break-out {peer,name,data}store for each backend @@ -39,7 +39,7 @@ CONFIGURE_ARGS+= \ $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mysql),--with-mysql="$(STAGING_DIR)/usr",--without-mysql) \ $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pgsql),--with-postgresql="$(STAGING_DIR)/usr/bin/pg_config",--without-postgresql) \ $(if $(CONFIG_PACKAGE_$(PKG_NAME)-sqlite),--with-sqlite="$(STAGING_DIR)/usr",--without-sqlite) \ - $(if $(CONFIG_PACKAGE_$(PKG_NAME)-experiments),--enable-experimental,--disable-experimental) \ + --enable-experimental \ --with-extractor=$(STAGING_DIR)/usr \ --with-gnutls=$(STAGING_DIR)/usr \ --with-libgnurl=$(STAGING_DIR)/usr \ @@ -198,12 +198,15 @@ PLUGIN_transport-http_server:=transport_http_server transport_https_server PLUGIN_transport-wlan:=transport_wlan LIBEXEC_transport-wlan:=helper-transport-wlan -DEPENDS_experiments:=+libglpk +gnunet-sqlite -BIN_experiments:=multicast rps -LIB_experiments:=consensus dv env multicast psyc psycstore psycutil rps secretsharing social -PLUGIN_experiments:=ats_mlp ats_ril namecache_flat namestore_flat psycstore_sqlite transport_dv -LIBEXEC_experiments:=service-consensus service-dv service-evil-consensus service-multicast service-psyc service-psycstore service-rps service-secretsharing service-social -CONF_experiments:=consensus dv multicast psyc psycstore rps secretsharing social +DEPENDS_experiments:=+libglpk +PLUGIN_experiments:=ats_mlp ats_ril +LIBEXEC_experiments:=service-dht-whanau service-dht-xvine + +# BIN_dv:=dv +LIB_dv:=dv +PLUGIN_dv:=transport_dv +LIBEXEC_dv:=service-dv +CONF_dv:=dv DEPENDS_fs:=+gnunet-datastore +libextractor BIN_fs:=auto-share directory download download-manager.scm fs publish unindex search @@ -227,14 +230,35 @@ PLUGIN_datastore:=datastore_heap LIBEXEC_datastore:=daemon-latency-logger service-datastore CONF_datastore:=datastore +DEPENDS_flat:=+gnunet-gns +PLUGIN_flat:=namecache_flat namestore_flat + DEPENDS_mysql:=+gnunet-gns +gnunet-datastore +libmysqlclient LIB_mysql:=mysql PLUGIN_mysql:=datastore_mysql DEPENDS_pgsql:=+gnunet-gns +gnunet-datastore +libpq -LIB_pgsql:=postgres +LIB_pgsql:=postgres pq PLUGIN_pgsql:=datacache_postgres datastore_postgres namecache_postgres namestore_postgres +DEPENDS_rest:=+gnunet-gns +jansson +LIB_rest:=rest +PLUGIN_rest:=rest_gns rest_identity rest_namestore +LIBEXEC_rest:=rest-server +CONF_rest:=rest + +BIN_rps:=rps +LIB_rps:=rps +LIBEXEC_rps:=service-rps +CONF_rps:=rps + +DEPENDS_social:=+gnunet-sqlite +BIN_social:=multicast +LIB_social:=consensus multicast psyc psycstore psycutil secretsharing social +PLUGIN_social:=psycstore_sqlite +LIBEXEC_social:=service-consensus service-evil-consensus service-multicast service-psyc service-psycstore service-secretsharing service-social +CONF_social:=consensus multicast psyc psycstore secretsharing social + DEPENDS_sqlite:=+gnunet-gns +gnunet-datastore +libsqlite3 PLUGIN_sqlite:=datacache_sqlite datastore_sqlite namecache_sqlite namestore_sqlite peerstore_sqlite @@ -253,16 +277,21 @@ CONF_vpn:=exit pt vpn $(eval $(call BuildPackage,gnunet)) $(eval $(call BuildComponent,conversation,conversation component,)) +$(eval $(call BuildComponent,datastore,data storage components,)) +$(eval $(call BuildComponent,dv,distance-vector routing component,)) $(eval $(call BuildComponent,experiments,experimental components,)) +$(eval $(call BuildComponent,flat,flat storage backends,)) $(eval $(call BuildComponent,fs,file-sharing components,)) $(eval $(call BuildComponent,gns,name resolution components,y)) -$(eval $(call BuildComponent,datastore,storage components,)) +$(eval $(call BuildComponent,mysql,mySQL datastore backend,)) +$(eval $(call BuildComponent,pgsql,PostgreSQL storage backends,)) +$(eval $(call BuildComponent,rest,REST interface,)) +$(eval $(call BuildComponent,rps,RPS routing component,)) +$(eval $(call BuildComponent,social,social components,)) +$(eval $(call BuildComponent,sqlite,libsqlite3 storage backends,y)) $(eval $(call BuildComponent,transport-bluetooth,bluetooth transport,)) $(eval $(call BuildComponent,transport-http_client,HTTP/HTTPS client transport,y)) $(eval $(call BuildComponent,transport-http_server,HTTP/HTTPS server transport,)) $(eval $(call BuildComponent,transport-wlan,WLAN transport,)) $(eval $(call BuildComponent,utils,administration utililties,)) $(eval $(call BuildComponent,vpn,vpn components,y)) -$(eval $(call BuildComponent,mysql,mySQL datastore backend,)) -$(eval $(call BuildComponent,pgsql,PostgreSQL backends,)) -$(eval $(call BuildComponent,sqlite,libsqlite3 backends,y)) diff --git a/net/mosquitto/Makefile b/net/mosquitto/Makefile index ec588d184e..b4c0ae747d 100644 --- a/net/mosquitto/Makefile +++ b/net/mosquitto/Makefile @@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mosquitto -PKG_VERSION:=1.4.7 +PKG_VERSION:=1.4.8 PKG_RELEASE:=1 PKG_LICENSE:=BSD-3-Clause PKG_LICENSE_FILES:=LICENSE.txt PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://mosquitto.org/files/source/ -PKG_MD5SUM:=4cb978502312bff2dcdaab6a433b1bf2 +PKG_MD5SUM:=d859cd474ffa61a6197bdabe007b9027 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk @@ -137,6 +137,16 @@ define Package/libmosquitto-nossl/description This package is built without SSL support endef +define Package/libmosquittopp + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libmosquitto +libstdcpp + TITLE:= mosquitto - client c++ library +endef + +define Package/libmosquittopp/description + C++ Library wrapper for libmosquitto. +endef define Package/$(PKG_NAME)/conffiles /etc/mosquitto/mosquitto.conf @@ -150,10 +160,7 @@ define Package/mosquitto/install/default $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mosquitto $(1)/usr/sbin/mosquitto $(INSTALL_DIR) $(1)/etc/mosquitto $(INSTALL_CONF) $(PKG_BUILD_DIR)/mosquitto.conf $(1)/etc/mosquitto/mosquitto.conf - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) ./files/mosquitto.init $(1)/etc/init.d/mosquitto - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) ./files/mosquitto.uci.convert $(1)/usr/bin + $(CP) ./files/* $(1)/ endef define Package/mosquitto-nossl/install @@ -179,9 +186,12 @@ Package/mosquitto-client-nossl/install = $(Package/mosquitto-client/install) define Build/InstallDev $(INSTALL_DIR) $(1)/usr/include $(CP) $(PKG_BUILD_DIR)/lib/mosquitto.h $(1)/usr/include + $(CP) $(PKG_BUILD_DIR)/lib/cpp/mosquittopp.h $(1)/usr/include $(INSTALL_DIR) $(1)/usr/lib $(CP) $(PKG_BUILD_DIR)/lib/libmosquitto.so.1 $(1)/usr/lib/ + $(CP) $(PKG_BUILD_DIR)/lib/cpp/libmosquittopp.so.1 $(1)/usr/lib/ $(LN) libmosquitto.so.1 $(1)/usr/lib/libmosquitto.so + $(LN) libmosquittopp.so.1 $(1)/usr/lib/libmosquittopp.so endef # This installs files on the target. Compare with Build/InstallDev @@ -192,6 +202,12 @@ define Package/libmosquitto/install endef Package/libmosquitto-nossl/install = $(Package/libmosquitto/install) +define Package/libmosquittopp/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/cpp/libmosquittopp.so.1 $(1)/usr/lib/ + $(LN) libmosquittopp.so.1 $(1)/usr/lib/libmosquittopp.so +endef + # Applies to all... MAKE_FLAGS += WITH_DOCS=no ifeq ($(BUILD_VARIANT),nossl) @@ -204,5 +220,6 @@ $(eval $(call BuildPackage,$(PKG_NAME))) $(eval $(call BuildPackage,$(PKG_NAME)-nossl)) $(eval $(call BuildPackage,libmosquitto)) $(eval $(call BuildPackage,libmosquitto-nossl)) +$(eval $(call BuildPackage,libmosquittopp)) $(eval $(call BuildPackage,mosquitto-client)) $(eval $(call BuildPackage,mosquitto-client-nossl)) diff --git a/net/mosquitto/files/etc/config/mosquitto b/net/mosquitto/files/etc/config/mosquitto new file mode 100644 index 0000000000..fc7544c690 --- /dev/null +++ b/net/mosquitto/files/etc/config/mosquitto @@ -0,0 +1,4 @@ +config owrt owrt + option use_uci 0 + +config mosquitto mosquitto diff --git a/net/mosquitto/files/etc/init.d/mosquitto b/net/mosquitto/files/etc/init.d/mosquitto new file mode 100755 index 0000000000..6551c47e68 --- /dev/null +++ b/net/mosquitto/files/etc/init.d/mosquitto @@ -0,0 +1,168 @@ +#!/bin/sh /etc/rc.common +# Basic init script for mosquitto +# April 2012, OpenWrt.org +# Provides support for the luci-app-mosquitto package, if installed + +START=80 +USE_PROCD=1 +TCONF=/tmp/mosquitto.generated.conf + +# Usage: append_if cfg uci_name output_name +# add a config line of the form "output_name " +# if the "uci_name" was found. +# output_name defaults to uci_name if not specified. +append_if() { + local cfg="$1" + local uci_name="$2" + local out_name="$3" + if [ -z "$out_name" ]; then + out_name=$uci_name + fi + config_get val $cfg $uci_name + if [ -n "$val" ]; then + echo "$out_name $val" >> $TCONF + fi +} + +# mosquitto uses true/false, uci uses 1/0 +# note that this is not shell truthy, but equality with 1! +append_bool() { + if [ $2 -eq 1 ]; then + echo "$1 true" >> $TCONF + else + echo "$1 false" >> $TCONF + fi +} + +# as per append_if, but gets the value as a uci bool, not raw +append_optional_bool() { + local cfg="$1" + local uci_name="$2" + local out_name="$3" + config_get val $cfg $uci_name + if [ -n "$val" ]; then + config_get_bool real $cfg $uci_name + append_bool $out_name $real + fi +} + + +convert_mosq_general() { + local cfg="$1" + config_get destinations "$1" log_dest + for dest in $destinations; do + echo "log_dest $dest" >> $TCONF + done + + config_get_bool no_remote "$1" no_remote_access 0 + if [ "$no_remote" -eq 1 ]; then + echo "bind_address 127.0.0.1" >> $TCONF + fi + + config_get port "$1" port 1883 + echo "port $port" >> $TCONF + append_if "$1" protocol + append_if "$1" max_inflight_messages + append_if "$1" max_queued_messages +} + +convert_persistence() { + local cfg="$1" + + append_if "$cfg" client_expiration persistent_client_expiration + append_if "$cfg" autosave_interval + append_optional_bool "$cfg" autosave_on_changes autosave_on_changes + append_optional_bool "$cfg" persistence persistence + append_if "$cfg" file persistence_file + config_get loc "$cfg" location + if [ -n "$loc" ]; then + [ -d "$loc" ] || mkdir -p "$loc"; + echo "persistence_location $loc" >> $TCONF + fi +} + +add_listener() { + echo "" >> $TCONF + config_get port "$1" port + if [ -z "$port" ]; then + echo "Ignoring listener section without port" + return + fi + config_get_bool no_remote "$1" no_remote_access 0 + if [ "$no_remote" -eq 1 ]; then + echo "listener $port 127.0.0.1" >> $TCONF + else + echo "listener $port" >> $TCONF + fi + + append_if "$1" protocol +} + +add_topic() { + echo "topic $1" >> $TCONF +} + +add_bridge() { + config_get conn "$1" connection + config_get addr "$1" address + if [ -z "$conn" -o -z "$addr" ]; then + echo "Ignoring bridge section, misisng connection/address" + return + fi + echo "" >> $TCONF + echo "# Bridge connection from UCI section" >> $TCONF + append_if "$1" connection + append_if "$1" address + + config_list_foreach "$1" topic add_topic + append_optional_bool "$1" cleansession cleansession + append_optional_bool "$1" try_private try_private + + append_if "$1" clientid + append_if "$1" identity bridge_identity + append_if "$1" psk bridge_psk + append_if "$1" tls_version bridge_tls_version +} + + +convert_uci() { + rm -rf $TCONF + echo "Generating mosquitto config file in $TCONF" + echo "# mosquitto.conf file generated from UCI config." >>$TCONF + # Don't include a timestamp, it makes md5sum compares fail + + config_load mosquitto + config_foreach convert_mosq_general "mosquitto" + config_foreach convert_persistence "persistence" + config_foreach add_listener "listener" + config_foreach add_bridge "bridge" +} + +start_service_real() { + local cfg="$1" + local use_uci + config_get use_uci "$cfg" use_uci + if [ "$use_uci" -eq 1 ]; then + CONF=$TCONF + convert_uci + else + CONF=/etc/mosquitto/mosquitto.conf + fi + + procd_open_instance + procd_set_param command mosquitto + procd_append_param command -c $CONF + # Makes /etc/init.d/mosquitto reload work if you edit the final file. + procd_set_param file $CONF + procd_close_instance +} + +start_service() { + config_load mosquitto + config_foreach start_service_real owrt +} + +service_triggers() { + # Makes "reload_config" work + procd_add_reload_trigger "mosquitto" +} diff --git a/net/mosquitto/files/mosquitto.init b/net/mosquitto/files/mosquitto.init deleted file mode 100755 index 2b3a93a7f0..0000000000 --- a/net/mosquitto/files/mosquitto.init +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh /etc/rc.common -# Basic init script for mosquitto -# April 2012, OpenWrt.org -# Provides support for the luci-app-mosquitto package, if installed - -START=80 -APP=`which mosquitto` -USE_UCI_CONFIG=$(uci -q get mosquitto.owrt.use_uci) -if [ $? -eq 1 ]; then - USE_UCI_CONFIG=0 -fi - -SERVICE_DAEMONIZE=1 -SERVICE_WRITE_PID=1 - -start() { - if [ "$USE_UCI_CONFIG" -eq 1 ]; then - CONF=/tmp/mosquitto.converted.$$.conf - mosquitto.uci.convert -f $CONF - else - CONF=/etc/mosquitto/mosquitto.conf - fi - service_start $APP -c $CONF -} - -stop() { - service_stop $APP -} diff --git a/net/mosquitto/files/mosquitto.uci.convert b/net/mosquitto/files/mosquitto.uci.convert deleted file mode 100644 index 1a03d97957..0000000000 --- a/net/mosquitto/files/mosquitto.uci.convert +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/sh -# Converts a uci config file into an appropriate mosquitto.conf snippet -# expected to be used in an init file to generate a config file to run from -# Karl Palsson 2012. -# Considered to be released into the public domain - -[ -f $IPKG_INSTROOT/lib/functions.sh ] && . $IPKG_INSTROOT/lib/functions.sh - -TCONF=/tmp/mosquitto.generated.$$.conf -while getopts "f:" o; do - case $o in - f) - TCONF=$OPTARG - ;; - esac -done - -if [ -e $TCONF ]; then - echo "Odd, same temporary generated config file already existed: $TCONF" - exit 1 -fi - -echo "Generating mosquitto config file in $TCONF" -NOW=$(date) -echo "# mosquitto.conf file generated from UCI config." >>$TCONF -echo "# Config snippet generated by $0 on $NOW" >>$TCONF -echo "#" >> $TCONF - -# Usage: append_if cfg uci_name output_name -# add a config line of the form "output_name " -# if the "uci_name" was found. -# output_name defaults to uci_name if not specified. -append_if() { - local cfg="$1" - local uci_name="$2" - local out_name="$3" - if [ -z "$out_name" ]; then - out_name=$uci_name - fi - config_get val $cfg $uci_name - if [ -n "$val" ]; then - echo "$out_name $val" >> $TCONF - fi -} - -# mosquitto uses true/false, uci uses 1/0 -# note that this is not shell truthy, but equality with 1! -append_bool() { - if [ $2 -eq 1 ]; then - echo "$1 true" >> $TCONF - else - echo "$1 false" >> $TCONF - fi -} - -# as per append_if, but gets the value as a uci bool, not raw -append_optional_bool() { - local cfg="$1" - local uci_name="$2" - local out_name="$3" - config_get val $cfg $uci_name - if [ -n "$val" ]; then - config_get_bool real $cfg $uci_name - append_bool $out_name $real - fi -} - -mosq_general() { - config_get destinations "$1" log_dest - for dest in $destinations; do - echo "log_dest $dest" >> $TCONF - done - - config_get_bool no_remote "$1" no_remote_access 0 - if [ "$no_remote" -eq 1 ]; then - echo "bind_address 127.0.0.1" >> $TCONF - fi - - config_get port "$1" port 1883 - echo "port $port" >> $TCONF - append_if "$1" protocol - append_if "$1" max_inflight_messages - append_if "$1" max_queued_messages - -} - -add_listener() { - echo "" >> $TCONF - config_get port "$1" port - if [ -z "$port" ]; then - echo "Ignoring listener section without port" - return - fi - config_get_bool no_remote "$1" no_remote_access 0 - if [ "$no_remote" -eq 1 ]; then - echo "listener $port 127.0.0.1" >> $TCONF - else - echo "listener $port" >> $TCONF - fi - - append_if "$1" protocol -} - -add_topic() { - echo "topic $1" >> $TCONF -} - -add_bridge() { - config_get conn "$1" connection - config_get addr "$1" address - if [ -z "$conn" -o -z "$addr" ]; then - echo "Ignoring bridge section, misisng connection/address" - return - fi - echo "" >> $TCONF - echo "# Bridge connection from UCI section" >> $TCONF - append_if "$1" connection - append_if "$1" address - - config_list_foreach "$1" topic add_topic - append_optional_bool "$1" cleansession cleansession - append_optional_bool "$1" try_private try_private - - append_if "$1" clientid - append_if "$1" identity bridge_identity - append_if "$1" psk bridge_psk - append_if "$1" tls_version bridge_tls_version -} - - -config_load "mosquitto" -config_foreach mosq_general "mosquitto" -config_foreach add_listener "listener" -config_foreach add_bridge "bridge" diff --git a/net/net-snmp/files/snmpd.init b/net/net-snmp/files/snmpd.init index 000a992d48..ff780975de 100644 --- a/net/net-snmp/files/snmpd.init +++ b/net/net-snmp/files/snmpd.init @@ -230,5 +230,12 @@ stop_service() { } service_triggers(){ + local script=$(readlink "$initscript") + local name=$(basename ${script:-$initscript}) + + procd_open_trigger + procd_add_raw_trigger "interface.*" 2000 /etc/init.d/$name reload + procd_close_trigger + procd_add_reload_trigger 'snmpd' } diff --git a/net/ola/Makefile b/net/ola/Makefile index c2284aab1b..cf49c41c39 100644 --- a/net/ola/Makefile +++ b/net/ola/Makefile @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ola -PKG_VERSION:=0.9.7 +PKG_VERSION:=0.10.1 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/OpenLightingProject/ola.git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=2a306e4f0221fea9f4833ba04b042e72c6f10cd3 +PKG_SOURCE_VERSION:=5b86f5802e2e5b23c6a010dc8d10788e6dc57614 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_LICENSE:=LGPL-2.1+ diff --git a/net/openssh/Makefile b/net/openssh/Makefile index 7b05029038..66c949c821 100644 --- a/net/openssh/Makefile +++ b/net/openssh/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openssh -PKG_VERSION:=7.1p2 +PKG_VERSION:=7.2p2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \ http://ftp.belnet.be/pub/OpenBSD/OpenSSH/portable/ -PKG_MD5SUM:=4d8547670e2a220d5ef805ad9e47acf2 +PKG_MD5SUM:=13009a9156510d8f27e752659075cced PKG_LICENSE:=BSD ISC PKG_LICENSE_FILES:=LICENCE diff --git a/net/openvswitch/Makefile b/net/openvswitch/Makefile index fbefbdc25a..636166b8b2 100644 --- a/net/openvswitch/Makefile +++ b/net/openvswitch/Makefile @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=openvswitch -PKG_RELEASE:=4 +PKG_RELEASE:=5 PKG_VERSION:=2.5.0 PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_LICENSE:=Apache-2.0 @@ -22,7 +22,7 @@ PKG_USE_MIPS16:=0 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/openvswitch/ovs PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=98b94d1e7002063ce2ea3c3221fe9234cac4e124 +PKG_SOURCE_VERSION:=22d4614ddf83988a3771fb379ea029e663b4455a PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_BUILD_PARALLEL:=1 diff --git a/net/openvswitch/patches/0010-lib-ovs-thread-Ensure-that-thread-stacks-are-always-.patch b/net/openvswitch/patches/0010-lib-ovs-thread-Ensure-that-thread-stacks-are-always-.patch new file mode 100644 index 0000000000..4cd87fb1db --- /dev/null +++ b/net/openvswitch/patches/0010-lib-ovs-thread-Ensure-that-thread-stacks-are-always-.patch @@ -0,0 +1,74 @@ +From 8147cec9ee8feea9440cf79365709ddc32ff57d5 Mon Sep 17 00:00:00 2001 +From: Alexandru Ardelean +Date: Thu, 4 Feb 2016 09:20:34 +0200 +Subject: [PATCH] lib/ovs-thread: Ensure that thread stacks are always at least + 512 kB. + +This makes a difference for libc implementations (such as musl libc) that +have a really small default pthread stack size. + +Will reference this discussion: +http://patchwork.ozlabs.org/patch/572340/ + +Reported-by: Robert McKay +Signed-off-by: Alexandru Ardelean +[blp@ovn.org made style changes] +Signed-off-by: Ben Pfaff +--- + lib/ovs-thread.c | 29 +++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +diff --git a/lib/ovs-thread.c b/lib/ovs-thread.c +index 6ebda07..b0e10ee 100644 +--- a/lib/ovs-thread.c ++++ b/lib/ovs-thread.c +@@ -340,6 +340,25 @@ ovsthread_wrapper(void *aux_) + return aux.start(aux.arg); + } + ++static void ++set_min_stack_size(pthread_attr_t *attr, size_t min_stacksize) ++{ ++ size_t stacksize; ++ int error; ++ ++ error = pthread_attr_getstacksize(attr, &stacksize); ++ if (error) { ++ ovs_abort(error, "pthread_attr_getstacksize failed"); ++ } ++ ++ if (stacksize < min_stacksize) { ++ error = pthread_attr_setstacksize(attr, min_stacksize); ++ if (error) { ++ ovs_abort(error, "pthread_attr_setstacksize failed"); ++ } ++ } ++} ++ + /* Starts a thread that calls 'start(arg)'. Sets the thread's name to 'name' + * (suffixed by its ovsthread_id()). Returns the new thread's pthread_t. */ + pthread_t +@@ -358,10 +377,20 @@ ovs_thread_create(const char *name, void *(*start)(void *), void *arg) + aux->arg = arg; + ovs_strlcpy(aux->name, name, sizeof aux->name); + ++ /* Some small systems use a default stack size as small as 80 kB, but OVS ++ * requires approximately 384 kB according to the following analysis: ++ * http://openvswitch.org/pipermail/dev/2016-January/065049.html ++ * ++ * We use 512 kB to give us some margin of error. */ ++ pthread_attr_t attr; ++ pthread_attr_init(&attr); ++ set_min_stack_size(&attr, 512 * 1024); ++ + error = pthread_create(&thread, NULL, ovsthread_wrapper, aux); + if (error) { + ovs_abort(error, "pthread_create failed"); + } ++ pthread_attr_destroy(&attr); + return thread; + } + +-- +2.1.4 + diff --git a/net/shadowsocks-client/Makefile b/net/shadowsocks-client/Makefile index e4344d6e6d..3e8c9be243 100644 --- a/net/shadowsocks-client/Makefile +++ b/net/shadowsocks-client/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-client -PKG_VERSION:=0.5 +PKG_VERSION:=0.6 PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=http://github.com/zhao-gang/shadowsocks-tiny.git +PKG_SOURCE_URL:=https://github.com/zhao-gang/shadowsocks-tiny.git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=d8ef02715f40de0fb7ba0f7267d3f8260f38ba80 +PKG_SOURCE_VERSION:=b59d754f838213d60b908aed0b7d4d5a81f273e2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_MAINTAINER:=Zhao, Gang diff --git a/net/shadowsocks-client/patches/100-fortify-source-compat.patch b/net/shadowsocks-client/patches/100-fortify-source-compat.patch deleted file mode 100644 index e4e1538ee9..0000000000 --- a/net/shadowsocks-client/patches/100-fortify-source-compat.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- a/client.c -+++ b/client.c -@@ -111,7 +111,7 @@ int client_do_local_read(int sockfd, str - goto out; - } - -- if (encrypt(sockfd, ln) == -1) -+ if (crypto_encrypt(sockfd, ln) == -1) - goto out; - - ret = do_send(ln->server_sockfd, ln, "cipher", 0); -@@ -172,7 +172,7 @@ int client_do_server_read(int sockfd, st - } - } - -- if (decrypt(sockfd, ln) == -1) -+ if (crypto_decrypt(sockfd, ln) == -1) - goto out; - - if (ln->state & SS_UDP) { ---- a/crypto.c -+++ b/crypto.c -@@ -185,7 +185,7 @@ err: - return -1; - } - --int encrypt(int sockfd, struct link *ln) -+int crypto_encrypt(int sockfd, struct link *ln) - { - int len, cipher_len; - EVP_CIPHER_CTX *ctx_p; -@@ -223,7 +223,7 @@ err: - return -1; - } - --int decrypt(int sockfd, struct link *ln) -+int crypto_decrypt(int sockfd, struct link *ln) - { - int len, text_len; - EVP_CIPHER_CTX *ctx_p; ---- a/crypto.h -+++ b/crypto.h -@@ -15,7 +15,7 @@ extern int iv_len; - - int crypto_init(char *key, char *method); - void crypto_exit(void); --int encrypt(int sockfd, struct link *ln); --int decrypt(int sockfd, struct link *ln); -+int crypto_encrypt(int sockfd, struct link *ln); -+int crypto_decrypt(int sockfd, struct link *ln); - - #endif ---- a/server.c -+++ b/server.c -@@ -36,7 +36,7 @@ int server_do_remote_read(int sockfd, st - goto out; - } - -- if (encrypt(sockfd, ln) == -1) -+ if (crypto_encrypt(sockfd, ln) == -1) - goto out; - - ret = do_send(ln->local_sockfd, ln, "cipher", 0); -@@ -91,7 +91,7 @@ int server_do_local_read(int sockfd, str - } - } - -- if (decrypt(sockfd, ln) == -1) -+ if (crypto_decrypt(sockfd, ln) == -1) - goto out; - - if (ln->state & SS_UDP) { diff --git a/net/squid/Makefile b/net/squid/Makefile index 9796b46e7c..dcf138aaee 100644 --- a/net/squid/Makefile +++ b/net/squid/Makefile @@ -21,9 +21,6 @@ PKG_MD5SUM:=50016bf6e2d3a3a186a6c7236d251f63 PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 -# uses libcom_err.la -PKG_BUILD_DEP:=libext2fs - include $(INCLUDE_DIR)/package.mk define Package/squid/Default @@ -88,6 +85,7 @@ CONFIGURE_ARGS += \ --disable-auth-basic \ --disable-arch-native \ --with-krb5-config=no \ + --without-mit-krb5 \ --without-libcap \ --without-netfilter-conntrack diff --git a/sound/shairplay/Makefile b/sound/shairplay/Makefile index 81ba7b6984..191647c51e 100644 --- a/sound/shairplay/Makefile +++ b/sound/shairplay/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2014-2015 OpenWrt.org +# Copyright (C) 2014-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shairplay -PKG_VERSION:=2015-09-29 +PKG_VERSION:=2016-01-01 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=git://github.com/juhovh/shairplay.git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=498bc5bcdd305e04721f94a04b9f26a7da72673f +PKG_SOURCE_VERSION:=ce80e005908f41d0e6fde1c4a21e9cb8ee54007b PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_MAINTAINER:=Álvaro Fernández Rojas diff --git a/sound/shairplay/patches/001-key_file_dir.patch b/sound/shairplay/patches/001-key_file_dir.patch index 3c5e3a5955..af9bd8448c 100644 --- a/sound/shairplay/patches/001-key_file_dir.patch +++ b/sound/shairplay/patches/001-key_file_dir.patch @@ -1,6 +1,6 @@ --- a/src/shairplay.c +++ b/src/shairplay.c -@@ -346,7 +346,7 @@ main(int argc, char *argv[]) +@@ -350,7 +350,7 @@ main(int argc, char *argv[]) raop_cbs.audio_destroy = audio_destroy; raop_cbs.audio_set_volume = audio_set_volume; diff --git a/sound/shairport-sync/Makefile b/sound/shairport-sync/Makefile index 8f60ec0e54..a5fea30e83 100644 --- a/sound/shairport-sync/Makefile +++ b/sound/shairport-sync/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shairport-sync -PKG_VERSION:=2.6 -PKG_RELEASE:=2 +PKG_VERSION:=2.8.0 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=git://github.com/mikebrady/shairport-sync.git @@ -35,20 +35,21 @@ define Package/shairport-sync/default CATEGORY:=Sound TITLE:=AirPlay compatible audio player DEPENDS:=@AUDIO_SUPPORT +libpthread +alsa-lib +libconfig +libdaemon +libpopt + PROVIDES:=shairport-sync URL:=http://github.com/mikebrady/shairport-sync endef define Package/shairport-sync-openssl $(Package/shairport-sync/default) TITLE+= (openssl) - DEPENDS+= +PACKAGE_shairport-sync-openssl:libopenssl +libavahi-client +libsoxr + DEPENDS+= +libopenssl +libavahi-client +libsoxr VARIANT:=openssl endef define Package/shairport-sync-polarssl $(Package/shairport-sync/default) TITLE+= (polarssl) - DEPENDS+= +PACKAGE_shairport-sync-polarssl:libpolarssl +libavahi-client +libsoxr + DEPENDS+= +libpolarssl +libavahi-client +libsoxr VARIANT:=polarssl DEFAULT_VARIANT:=1 endef diff --git a/sound/squeezelite/Makefile b/sound/squeezelite/Makefile index 8a1274ccfe..086bea8682 100644 --- a/sound/squeezelite/Makefile +++ b/sound/squeezelite/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=squeezelite PKG_VERSION:=1.8 -PKG_RELEASE=1 +PKG_RELEASE=2 PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE.txt diff --git a/sound/squeezelite/files/squeezelite.conf b/sound/squeezelite/files/squeezelite.conf index 57d1b73dd4..6bfcaab3aa 100644 --- a/sound/squeezelite/files/squeezelite.conf +++ b/sound/squeezelite/files/squeezelite.conf @@ -9,4 +9,5 @@ config options 'options' option decoder_auto_conf '1' option dsd_over_pcm '0' option ircontrol '0' + option interface '' option enabled '1' diff --git a/sound/squeezelite/files/squeezelite.init b/sound/squeezelite/files/squeezelite.init index 3fa008f63e..d5746254d0 100644 --- a/sound/squeezelite/files/squeezelite.init +++ b/sound/squeezelite/files/squeezelite.init @@ -51,8 +51,11 @@ make_cmdline() { config_get model_name options model_name "SqueezeLite" cmdline="$cmdline -M $model_name" + config_get interface options interface "" + [ -n "$interface" ] && cmdline="$cmdline -I $interface" + config_get device options device "" - [ -n $device ] && cmdline="$cmdline -o $device" + [ -n "$device" ] && cmdline="$cmdline -o $device" config_get alsa_buffer options alsa_buffer 200 [ $alsa_buffer -eq 0 ] && alsa_buffer="200" @@ -96,10 +99,15 @@ make_cmdline() { # ***NOTE: codec lib names are in squeezelite.h (set decode_auto_conf to 0 to ignore) # local excl_codecs="" + local vorbis_lib="libvorbisidec.so.1" + excl_codecs=`checkcodec decode_flac "libFLAC.so.8" flac "$excl_codecs"` excl_codecs=`checkcodec decode_mp3 "libmad.so.0" mp3 "$excl_codecs"` excl_codecs=`checkcodec decode_aac "libfaad.so.2" aac "$excl_codecs"` - excl_codecs=`checkcodec decode_ogg "libvorbisfile.so.3" ogg "$excl_codecs"` + + [ -e "/usr/lib/$vorbis_lib" ] || vorbis_lib="libvorbisfile.so.3" + + excl_codecs=`checkcodec decode_ogg "$vorbis_lib" ogg "$excl_codecs"` excl_codecs=`checkcodec decode_wma_alac "libavcodec.so.56" wma,alac "$excl_codecs"` cmdline="$cmdline $excl_codecs" diff --git a/sound/squeezelite/patches/010-select_broadcast_interface.patch b/sound/squeezelite/patches/010-select_broadcast_interface.patch new file mode 100644 index 0000000000..17d083e72e --- /dev/null +++ b/sound/squeezelite/patches/010-select_broadcast_interface.patch @@ -0,0 +1,338 @@ +--- a/main.c ++++ b/main.c +@@ -69,6 +69,7 @@ static void usage(const char *argv0) { + #if IR + " -i []\tEnable lirc remote control support (lirc config file ~/.lircrc used if filename not specified)\n" + #endif ++ " -I \t\tNetwork interface used to send discovery\n" + " -m \t\tSet mac address, format: ab:cd:ef:12:34:56\n" + " -M \tSet the squeezelite player model name sent to the server (default: " MODEL_NAME_STRING ")\n" + " -n \t\tSet the player name\n" +@@ -197,6 +198,8 @@ int main(int argc, char **argv) { + char *modelname = NULL; + char *logfile = NULL; + u8_t mac[6]; ++ char *iface = NULL; ++ in_addr_t bcast_addr = 0; + unsigned stream_buf_size = STREAMBUF_SIZE; + unsigned output_buf_size = 0; // set later + unsigned rates[MAX_SUPPORTED_SAMPLERATES] = { 0 }; +@@ -233,6 +236,7 @@ int main(int argc, char **argv) { + log_level log_ir = lWARN; + #endif + ++ memset(mac, 0, sizeof(mac)); + char *optarg = NULL; + int optind = 1; + int i; +@@ -240,8 +244,6 @@ int main(int argc, char **argv) { + #define MAXCMDLINE 512 + char cmdline[MAXCMDLINE] = ""; + +- get_mac(mac); +- + for (i = 0; i < argc && (strlen(argv[i]) + strlen(cmdline) + 2 < MAXCMDLINE); i++) { + strcat(cmdline, argv[i]); + strcat(cmdline, " "); +@@ -249,7 +251,7 @@ int main(int argc, char **argv) { + + while (optind < argc && strlen(argv[optind]) >= 2 && argv[optind][0] == '-') { + char *opt = argv[optind] + 1; +- if (strstr("oabcCdefmMnNpPrs" ++ if (strstr("oabcCdefImMnNpPrs" + #if ALSA + "UV" + #endif +@@ -334,6 +336,9 @@ int main(int argc, char **argv) { + case 'f': + logfile = optarg; + break; ++ case 'I': ++ iface = optarg; ++ break; + case 'm': + { + int byte = 0; +@@ -556,6 +561,11 @@ int main(int argc, char **argv) { + winsock_init(); + #endif + ++ if (!(bcast_addr = get_iface_info(log_slimproto, iface, mac))) { ++ fprintf(stderr, "Error binding to network or none given\n"); ++ exit(1); ++ } ++ + stream_init(log_stream, stream_buf_size); + + if (!strcmp(output_device, "-")) { +@@ -599,7 +609,7 @@ int main(int argc, char **argv) { + exit(1); + } + +- slimproto(log_slimproto, server, mac, name, namefile, modelname); ++ slimproto(log_slimproto, server, bcast_addr, mac, name, namefile, modelname); + + decode_close(); + stream_close(); +--- a/squeezelite.h ++++ b/squeezelite.h +@@ -374,7 +374,7 @@ typedef enum { EVENT_TIMEOUT = 0, EVENT_ + + char *next_param(char *src, char c); + u32_t gettime_ms(void); +-void get_mac(u8_t *mac); ++in_addr_t get_iface_info(log_level level, char *iface, u8_t *mac); + void set_nonblock(sockfd s); + int connect_timeout(sockfd sock, const struct sockaddr *addr, socklen_t addrlen, int timeout); + void server_addr(char *server, in_addr_t *ip_ptr, unsigned *port_ptr); +@@ -426,7 +426,7 @@ void buf_init(struct buffer *buf, size_t + void buf_destroy(struct buffer *buf); + + // slimproto.c +-void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname); ++void slimproto(log_level level, char *server, in_addr_t bcast_addr, u8_t *mac, const char *name, const char *namefile, const char *modelname); + void slimproto_stop(void); + void wake_controller(void); + +--- a/slimproto.c ++++ b/slimproto.c +@@ -107,7 +107,7 @@ void send_packet(u8_t *packet, size_t le + } + } + +-static void sendHELO(bool reconnect, const char *fixed_cap, const char *var_cap, u8_t mac[6]) { ++static void sendHELO(bool reconnect, const char *fixed_cap, const char *var_cap, u8_t *mac) { + const char *base_cap = "Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=" VERSION; + struct HELO_packet pkt; + +@@ -730,7 +730,7 @@ void wake_controller(void) { + wake_signal(wake_e); + } + +-in_addr_t discover_server(void) { ++in_addr_t discover_server(in_addr_t bcast_addr) { + struct sockaddr_in d; + struct sockaddr_in s; + char *buf; +@@ -746,7 +746,7 @@ in_addr_t discover_server(void) { + memset(&d, 0, sizeof(d)); + d.sin_family = AF_INET; + d.sin_port = htons(PORT); +- d.sin_addr.s_addr = htonl(INADDR_BROADCAST); ++ d.sin_addr.s_addr = bcast_addr; + + pollinfo.fd = disc_sock; + pollinfo.events = POLLIN; +@@ -777,7 +777,7 @@ in_addr_t discover_server(void) { + #define FIXED_CAP_LEN 256 + #define VAR_CAP_LEN 128 + +-void slimproto(log_level level, char *server, u8_t mac[6], const char *name, const char *namefile, const char *modelname) { ++void slimproto(log_level level, char *server, in_addr_t bcast_addr, u8_t *mac, const char *name, const char *namefile, const char *modelname) { + struct sockaddr_in serv_addr; + static char fixed_cap[FIXED_CAP_LEN], var_cap[VAR_CAP_LEN] = ""; + bool reconnect = false; +@@ -795,7 +795,7 @@ void slimproto(log_level level, char *se + } + + if (!slimproto_ip) { +- slimproto_ip = discover_server(); ++ slimproto_ip = discover_server(bcast_addr); + } + + if (!slimproto_port) { +@@ -870,7 +870,7 @@ void slimproto(log_level level, char *se + + // rediscover server if it was not set at startup + if (!server && ++failed_connect > 5) { +- slimproto_ip = serv_addr.sin_addr.s_addr = discover_server(); ++ slimproto_ip = serv_addr.sin_addr.s_addr = discover_server(bcast_addr); + } + + } else { +--- a/utils.c ++++ b/utils.c +@@ -21,11 +21,11 @@ + #include "squeezelite.h" + + #if LINUX || OSX || FREEBSD +-#include ++#include + #include +-#include +-#if FREEBSD + #include ++#include ++#if FREEBSD || OSX + #include + #include + #endif +@@ -33,15 +33,11 @@ + #if WIN + #include + #endif +-#if OSX +-#include +-#include +-#include +-#include +-#endif + + #include + ++static log_level loglevel; ++ + // logging functions + const char *logtime(void) { + static char buf[100]; +@@ -99,67 +95,101 @@ u32_t gettime_ms(void) { + #endif + } + +-// mac address +-#if LINUX +-// search first 4 interfaces returned by IFCONF +-void get_mac(u8_t mac[]) { +- struct ifconf ifc; +- struct ifreq *ifr, *ifend; +- struct ifreq ifreq; +- struct ifreq ifs[4]; +- +- mac[0] = mac[1] = mac[2] = mac[3] = mac[4] = mac[5] = 0; +- +- int s = socket(AF_INET, SOCK_DGRAM, 0); +- +- ifc.ifc_len = sizeof(ifs); +- ifc.ifc_req = ifs; +- +- if (ioctl(s, SIOCGIFCONF, &ifc) == 0) { +- ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq)); +- +- for (ifr = ifc.ifc_req; ifr < ifend; ifr++) { +- if (ifr->ifr_addr.sa_family == AF_INET) { +- +- strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name)); +- if (ioctl (s, SIOCGIFHWADDR, &ifreq) == 0) { +- memcpy(mac, ifreq.ifr_hwaddr.sa_data, 6); +- if (mac[0]+mac[1]+mac[2] != 0) { +- break; +- } ++// Get broadcast address for interface (given or first available) ++// Return MAC address if none given ++#if LINUX || OSX || FREEBSD ++ ++in_addr_t get_iface_info(log_level level, char *iface, u8_t *mac) { ++ struct ifaddrs *addrs, *ifa; ++ struct sockaddr *sdl; ++ char ifname[16]; ++ unsigned char *ptr; ++ in_addr_t bcast_addr = 0; ++ int have_mac = 0, have_ifname = 0; ++ ++ loglevel = level; ++ ++ // Check for non-zero MAC ++ if ((mac[0] | mac[1] | mac[2]) != 0) ++ have_mac = 1; ++ ++ // Copy interface name, if it was provided. ++ if (iface != NULL) ++ { ++ if( strlen(iface) > sizeof(ifname) ) ++ return -1; ++ ++ strncpy(ifname, iface, sizeof(ifname)); ++ have_ifname = 1; ++ } ++ ++ if (getifaddrs(&addrs) == 0) { ++ //iterate to find corresponding ethernet address ++ for (ifa = addrs; ifa; ifa = ifa->ifa_next) { ++ // Skip LOOPBACK interfaces, DOWN interfaces and interfaces that ++ // don't support BROADCAST. ++ if ((ifa->ifa_flags & IFF_LOOPBACK) ++ || !(ifa->ifa_flags & IFF_UP) ++ || !(ifa->ifa_flags & IFF_BROADCAST)) ++ { ++ continue; ++ } ++ ++ if (!have_ifname) ++ { ++ // We have found a valid interface name. Keep it. ++ strncpy(ifname, ifa->ifa_name, sizeof(ifname)); ++ have_ifname = 1; ++ } else { ++ if (strncmp(ifname, ifa->ifa_name, sizeof(ifname)) != 0) ++ { ++ // This is not the interface we're looking for. ++ continue; + } + } +- } +- } + +- close(s); +-} +-#endif + +-#if OSX || FREEBSD +-void get_mac(u8_t mac[]) { +- struct ifaddrs *addrs, *ptr; +- const struct sockaddr_dl *dlAddr; +- const unsigned char *base; +- +- mac[0] = mac[1] = mac[2] = mac[3] = mac[4] = mac[5] = 0; +- +- if (getifaddrs(&addrs) == 0) { +- ptr = addrs; +- while (ptr) { +- if (ptr->ifa_addr->sa_family == AF_LINK && ((const struct sockaddr_dl *) ptr->ifa_addr)->sdl_type == IFT_ETHER) { +- dlAddr = (const struct sockaddr_dl *)ptr->ifa_addr; +- base = (const unsigned char*) &dlAddr->sdl_data[dlAddr->sdl_nlen]; +- memcpy(mac, base, min(dlAddr->sdl_alen, 6)); ++ // Check address family. ++ if ((ifa->ifa_addr->sa_family == AF_INET) && ++ (((struct sockaddr_in *)ifa->ifa_broadaddr)->sin_addr.s_addr != 0)) ++ { ++ // Get broadcast address and MAC address ++ bcast_addr = ((struct sockaddr_in *)ifa->ifa_broadaddr)->sin_addr.s_addr; + break; + } +- ptr = ptr->ifa_next; ++ else ++ { ++ // Address is not IPv4 ++ if (iface == NULL) ++ have_ifname = 0; ++ } ++ + } ++ ++ // Find MAC address matching interface ++ if (!have_mac && (bcast_addr != 0)) { ++ for (ifa = addrs; ifa; ifa = ifa->ifa_next) { ++ if ((ifa->ifa_addr->sa_family == PF_PACKET) && ++ (strncmp(ifname, ifa->ifa_name, sizeof(ifname)) == 0)) { ++ sdl = (struct sockaddr *)(ifa->ifa_addr); ++ ptr = (unsigned char *)sdl->sa_data; ++ memcpy(mac, ptr + 10, 6); ++ have_mac = 1; ++ } ++ } ++ } ++ + freeifaddrs(addrs); + } ++ ++ LOG_INFO("Interface: %s, broadcast: %08X, macaddr = %02x:%02x:%02x:%02x:%02x:%02x", ++ ifname, bcast_addr, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); ++ ++ return bcast_addr; + } + #endif + ++ + #if WIN + #pragma comment(lib, "IPHLPAPI.lib") + void get_mac(u8_t mac[]) { diff --git a/sound/squeezelite/patches/010-wait_for_nonzero_mac.patch b/sound/squeezelite/patches/010-wait_for_nonzero_mac.patch deleted file mode 100644 index 69d4f34a85..0000000000 --- a/sound/squeezelite/patches/010-wait_for_nonzero_mac.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/main.c -+++ b/main.c -@@ -187,6 +187,17 @@ static void sighandler(int signum) { - signal(signum, SIG_DFL); - } - -+// Waits for nonzero MAC -+static void get_nonzero_mac(u8_t mac[], u32_t timeout_ms) { -+ u32_t wait_timeout = gettime_ms() + timeout_ms; -+ do{ -+ get_mac(mac); -+ if ((mac[0]+mac[1]+mac[2]+mac[3]+mac[4]+mac[5]) != 0) { -+ break; -+ } -+ }while(wait_timeout > gettime_ms()); -+} -+ - int main(int argc, char **argv) { - char *server = NULL; - char *output_device = "default"; -@@ -240,7 +251,8 @@ int main(int argc, char **argv) { - #define MAXCMDLINE 512 - char cmdline[MAXCMDLINE] = ""; - -- get_mac(mac); -+ // Waits for nonzero MAC -+ get_nonzero_mac(mac,10000); - - for (i = 0; i < argc && (strlen(argv[i]) + strlen(cmdline) + 2 < MAXCMDLINE); i++) { - strcat(cmdline, argv[i]); diff --git a/utils/cryptodev-linux/Makefile b/utils/cryptodev-linux/Makefile index a304472d20..4f187c84c6 100644 --- a/utils/cryptodev-linux/Makefile +++ b/utils/cryptodev-linux/Makefile @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=cryptodev-linux PKG_VERSION:=1.8 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://download.gna.org/cryptodev-linux/ @@ -31,7 +31,7 @@ define KernelPackage/cryptodev URL:=http://cryptodev-linux.org/ MAINTAINER:=Nikos Mavrogiannopoulos VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE) - DEPENDS:=+kmod-crypto-core +kmod-crypto-authenc +kmod-crypto-hash + DEPENDS:=+kmod-crypto-authenc +kmod-crypto-hash FILES:= \ $(PKG_BUILD_DIR)/cryptodev.$(LINUX_KMOD_SUFFIX) AUTOLOAD:=$(call AutoLoad,50,$(CRYPTODEV_AUTOLOAD)) diff --git a/utils/cryptsetup/Makefile b/utils/cryptsetup/Makefile index 459d53da87..10db45164f 100644 --- a/utils/cryptsetup/Makefile +++ b/utils/cryptsetup/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=cryptsetup -PKG_VERSION:=1.7.0 -PKG_RELEASE:=1 +PKG_VERSION:=1.7.1 +PKG_RELEASE:=2 PKG_LICENSE:=GPL-2.0+ LGPL-2.1+ PKG_LICENSE_FILES:=COPYING COPYING.LGPL PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v1.7 -PKG_MD5SUM:=56c385fe87fc2b6873df4b7f89202d0f +PKG_MD5SUM:=e38da1c80088cbaaccf931ef61e726dc PKG_MAINTAINER:=Daniel Golle PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) diff --git a/utils/dump1090/Makefile b/utils/dump1090/Makefile index adf8d19ea1..4f174ae3d4 100644 --- a/utils/dump1090/Makefile +++ b/utils/dump1090/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2013-2015 OpenWrt.org +# Copyright (C) 2013-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dump1090 -PKG_VERSION:=2015-11-22 +PKG_VERSION:=2016-02-25 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=git://github.com/mutability/dump1090.git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=497f88fe1c597652aca23c1035ddb55a9f6c274d +PKG_SOURCE_VERSION:=214bc0e587fa70b7206c094e10e62c88bf387322 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_MAINTAINER:=Álvaro Fernández Rojas @@ -53,7 +53,8 @@ define Package/view1090/description endef MAKE_FLAGS += \ - CFLAGS="$(TARGET_CFLAGS)" + CFLAGS="$(TARGET_CFLAGS)" \ + UNAME=Linux define Package/dump1090/install $(INSTALL_DIR) $(1)/etc/init.d diff --git a/utils/dump1090/files/dump1090.config b/utils/dump1090/files/dump1090.config index b9c433eea0..5854cb4569 100644 --- a/utils/dump1090/files/dump1090.config +++ b/utils/dump1090/files/dump1090.config @@ -11,7 +11,6 @@ config dump1090 main option raw '0' option net '1' option modeac '0' - option net_beast '0' option net_only '0' option net_bind_address '' option net_http_port '8080' @@ -20,7 +19,6 @@ config dump1090 main option net_sbs_port '' option net_bi_port '' option net_bo_port '' - option net_fatsv_port '' option net_ro_size '' option net_ro_interval '' option net_heartbeat '' @@ -34,13 +32,13 @@ config dump1090 main option no_fix '0' option no_crc_check '0' option phase_enhance '0' - option aggressive '0' option mlat '0' option stats '0' option stats_range '0' option stats_every '' option onlyaddr '0' option metric '0' + option hae '0' option snip '' option debug '' option ppm '' diff --git a/utils/dump1090/files/dump1090.init b/utils/dump1090/files/dump1090.init index 23519dbc2f..fead29edb1 100644 --- a/utils/dump1090/files/dump1090.init +++ b/utils/dump1090/files/dump1090.init @@ -49,7 +49,6 @@ start_instance() { append_bool "$cfg" raw "--raw" append_bool "$cfg" net "--net" append_bool "$cfg" modeac "--modeac" - append_bool "$cfg" net_beast "--net-beast" append_bool "$cfg" net_only "--net-only" append_arg "$cfg" net_bind_address "--net-bind-address" append_arg "$cfg" net_http_port "--net-http-port" @@ -58,7 +57,6 @@ start_instance() { append_arg "$cfg" net_sbs_port "--net-sbs-port" append_arg "$cfg" net_bi_port "--net-bi-port" append_arg "$cfg" net_bo_port "--net-bo-port" - append_arg "$cfg" net_fatsv_port "net-fatsv-port" append_arg "$cfg" net_ro_size "--net-ro-size" append_arg "$cfg" net_ro_interval "--net-ro-interval" append_arg "$cfg" net_heartbeat "--net-heartbeat" @@ -72,13 +70,13 @@ start_instance() { append_bool "$cfg" no_fix "--no-fix" append_bool "$cfg" no_crc_check "--no-crc-check" append_bool "$cfg" phase_enhance "--phase-enhance" - append_bool "$cfg" aggressive "--aggressive" append_bool "$cfg" mlat "--mlat" append_bool "$cfg" stats "--stats" append_bool "$cfg" stats_range "--stats-range" append_arg "$cfg" stats_every "--stats-every" append_bool "$cfg" onlyaddr "--onlyaddr" append_bool "$cfg" metric "--metric" + append_bool "$cfg" hae "--hae" append_arg "$cfg" snip "--snip" append_arg "$cfg" debug "--debug" append_arg "$cfg" ppm "--ppm" diff --git a/utils/lvm2/Makefile b/utils/lvm2/Makefile index 7b6e953284..82942dfe80 100644 --- a/utils/lvm2/Makefile +++ b/utils/lvm2/Makefile @@ -9,13 +9,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=LVM2 -PKG_VERSION:=2.02.141 +PKG_VERSION:=2.02.145 PKG_RELEASE:=2 PKG_LICENSE:=GPL-2.0 LGPL-2.1 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz PKG_SOURCE_URL:=ftp://sources.redhat.com/pub/lvm2/releases -PKG_MD5SUM:=0bb6261f7ecb9ef70fd773c6a952de67 +PKG_MD5SUM:=fd952ba7d640f0bedcec0085e358b318 PKG_MAINTAINER:=Daniel Golle PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION) diff --git a/utils/lvm2/patches/002-const-stdio.patch b/utils/lvm2/patches/002-const-stdio.patch index 13da6b63f9..fff3796472 100644 --- a/utils/lvm2/patches/002-const-stdio.patch +++ b/utils/lvm2/patches/002-const-stdio.patch @@ -1,6 +1,6 @@ --- a/lib/commands/toolcontext.c +++ b/lib/commands/toolcontext.c -@@ -1741,8 +1741,10 @@ struct cmd_context *create_toolcontext(u +@@ -1747,8 +1747,10 @@ struct cmd_context *create_toolcontext(u unsigned set_filters) { struct cmd_context *cmd; @@ -11,7 +11,7 @@ #ifdef M_MMAP_MAX mallopt(M_MMAP_MAX, 0); -@@ -1778,7 +1780,7 @@ struct cmd_context *create_toolcontext(u +@@ -1784,7 +1786,7 @@ struct cmd_context *create_toolcontext(u /* FIXME Make this configurable? */ reset_lvm_errno(1); @@ -20,7 +20,7 @@ /* Set in/out stream buffering before glibc */ if (set_buffering) { /* Allocate 2 buffers */ -@@ -2161,7 +2163,7 @@ void destroy_toolcontext(struct cmd_cont +@@ -2167,7 +2169,7 @@ void destroy_toolcontext(struct cmd_cont if (cmd->libmem) dm_pool_destroy(cmd->libmem); @@ -31,7 +31,7 @@ if (is_valid_fd(STDIN_FILENO) && --- a/tools/lvmcmdline.c +++ b/tools/lvmcmdline.c -@@ -1741,6 +1741,7 @@ int lvm_split(char *str, int *argc, char +@@ -1744,6 +1744,7 @@ int lvm_split(char *str, int *argc, char /* Make sure we have always valid filedescriptors 0,1,2 */ static int _check_standard_fds(void) { @@ -39,7 +39,7 @@ int err = is_valid_fd(STDERR_FILENO); if (!is_valid_fd(STDIN_FILENO) && -@@ -1767,6 +1768,12 @@ static int _check_standard_fds(void) +@@ -1770,6 +1771,12 @@ static int _check_standard_fds(void) strerror(errno)); return 0; } diff --git a/utils/mmc-utils/Makefile b/utils/mmc-utils/Makefile index 00a0531eca..145e7408f8 100644 --- a/utils/mmc-utils/Makefile +++ b/utils/mmc-utils/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2015 OpenWrt.org +# Copyright (C) 2015-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mmc-utils -PKG_VERSION=2015-05-01-$(PKG_SOURCE_VERSION) +PKG_VERSION=2016-02-23-$(PKG_SOURCE_VERSION) PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git -PKG_SOURCE_VERSION:=d0b46442b50794217e53b2455c1344c548d9d088 +PKG_SOURCE_VERSION:=4af1749d23503c25f692a60f23d295d16ddcfb61 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION) PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz diff --git a/utils/nano/Makefile b/utils/nano/Makefile index 8ae5c3cb6a..8e27ed1ad3 100644 --- a/utils/nano/Makefile +++ b/utils/nano/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2007-2015 OpenWrt.org +# Copyright (C) 2007-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=nano -PKG_VERSION:=2.5.0 +PKG_VERSION:=2.5.3 PKG_RELEASE:=1 PKG_LICENSE:=GPL-3.0+ PKG_LICENSE_FILES:=COPYING PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=http://www.nano-editor.org/dist/v2.5 -PKG_MD5SUM:=751ed96457017572bab15be18cb873ba +PKG_SOURCE_URL:=@GNU/nano +PKG_MD5SUM:=a04d77611422ab4b6a7b489650c7a793 PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 diff --git a/utils/pciutils/Makefile b/utils/pciutils/Makefile index 3cfc1252b8..b46244b80a 100644 --- a/utils/pciutils/Makefile +++ b/utils/pciutils/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2007-2015 OpenWrt.org +# Copyright (C) 2007-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pciutils -PKG_VERSION:=3.4.0 +PKG_VERSION:=3.4.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@KERNEL/software/utils/pciutils -PKG_MD5SUM:=46674cdbf2f72e4cfef75fea1b1ec5c8 +PKG_MD5SUM:=e901d17fcc6850747f43efde4de3452b PKG_MAINTAINER:=Álvaro Fernández Rojas PKG_LICENSE:=GPL-2.0 diff --git a/utils/qemu/Makefile b/utils/qemu/Makefile new file mode 100644 index 0000000000..a7806d1cfb --- /dev/null +++ b/utils/qemu/Makefile @@ -0,0 +1,62 @@ +# +# Copyright (C) 2016 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:=qemu +PKG_VERSION:=2.4.1 +PKG_RELEASE:=1 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://wiki.qemu-project.org/download/ +PKG_SOURCE_MD5SUM:=a895e93ec1dafc34bc64ed676f0d55a6 +PKG_LICENSE:=GPL-2.0 +PKG_LICENSE_FILES:=LICENSE tcg/LICENSE +PKG_MAINTAINER:=Yousong Zhou + +include $(INCLUDE_DIR)/package.mk + +define Package/qemu-ga + SECTION:=utils + CATEGORY:=Utilities + TITLE:=QEMU Guest Agent + URL:=http://www.qemu.org + DEPENDS:=+glib2 +libpthread +libstdcpp +librt +endef + +define Package/qemu-ga/description +This package contains the QEMU Guest Agent daemon +endef + +# QEMU configure script does not recognize these options +CONFIGURE_ARGS:=$(filter-out \ + --target=% \ + --host=% \ + --build=% \ + --program-prefix=% \ + --program-suffix=% \ + --exec-prefix=% \ + --disable-nls \ + , $(CONFIGURE_ARGS)) + +# Building qemu-ga alone does not require zlib +CONFIGURE_ARGS+= \ + --cross-prefix=$(TARGET_CROSS) \ + --host-cc=$(HOSTCC) \ + --target-list='' \ + --disable-zlib-test \ + --enable-guest-agent + +define Package/qemu-ga/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/qemu-ga $(1)/usr/bin + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/qemu-ga.init $(1)/etc/init.d/qemu-ga + $(INSTALL_DIR) $(1)/etc/hotplug.d/virtio-ports + $(INSTALL_BIN) ./files/virtio-ports.hotplug $(1)/etc/hotplug.d/virtio-ports/qemu-ga +endef + +$(eval $(call BuildPackage,qemu-ga)) diff --git a/utils/qemu/files/qemu-ga.init b/utils/qemu/files/qemu-ga.init new file mode 100755 index 0000000000..86c2b7ea77 --- /dev/null +++ b/utils/qemu/files/qemu-ga.init @@ -0,0 +1,15 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2016 OpenWrt.org + +START=99 +USE_PROCD=1 + +BIN=/usr/bin/qemu-ga + +start_service() { + procd_open_instance + procd_set_param command $BIN + procd_set_param respawn + procd_set_param stderr 1 + procd_close_instance +} diff --git a/utils/qemu/files/virtio-ports.hotplug b/utils/qemu/files/virtio-ports.hotplug new file mode 100755 index 0000000000..35919a500d --- /dev/null +++ b/utils/qemu/files/virtio-ports.hotplug @@ -0,0 +1,19 @@ +#!/bin/sh +# Copyright (C) 2016 OpenWrt.org + +[ "$SUBSYSTEM" = "virtio-ports" ] || exit 0 + +syspath="/sys/$DEVPATH" +name="$(cat "$syspath/name" 2>/dev/null)" +[ -n "$name" ] || exit 0 + +case "$ACTION" in + "add") + mkdir -p /dev/virtio-ports + ln -s "/dev/$DEVNAME" "/dev/virtio-ports/$name" + /etc/init.d/qemu-ga start + ;; + "del") + rm -f "/dev/virtio-ports/$name" + ;; +esac diff --git a/utils/tracertools/Makefile b/utils/tracertools/Makefile index fd139700f6..9a0bc7a3d2 100644 --- a/utils/tracertools/Makefile +++ b/utils/tracertools/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tracertools -PKG_VERSION:=20160118 +PKG_VERSION:=20160308 PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_MAINTAINER:=Daniel Golle @@ -16,7 +16,7 @@ PKG_LICENSE:=GPL-3.0 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/dangowrt/tracertools.git -PKG_SOURCE_VERSION:=253e73fd379714239b51d5b0fd719b7c2d65f379 +PKG_SOURCE_VERSION:=28d0bb9a10a0b56b4964e3256135cfd152075a59 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz diff --git a/utils/unrar/Makefile b/utils/unrar/Makefile index 713ca8ead1..1b526746bc 100644 --- a/utils/unrar/Makefile +++ b/utils/unrar/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2006-2015 OpenWrt.org +# Copyright (C) 2006-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=unrar -PKG_VERSION:=5.3.8 +PKG_VERSION:=5.3.11 PKG_RELEASE:=1 PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.rarlab.com/rar -PKG_MD5SUM:=9aa9643e817187519e358be292185f6f +PKG_MD5SUM:=4a29cc1b47ced82db11e06090a95ed51 PKG_MAINTAINER:=Álvaro Fernández Rojas PKG_LICENSE:=UnRAR diff --git a/utils/zip/Makefile b/utils/zip/Makefile index dcbc7037c1..e1ed0687de 100644 --- a/utils/zip/Makefile +++ b/utils/zip/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2007-2014 OpenWrt.org +# Copyright (C) 2007-2016 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zip PKG_REV:=30 PKG_VERSION:=3.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)$(PKG_REV).tar.gz PKG_SOURCE_URL:=@SF/infozip @@ -48,8 +48,7 @@ define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) -f unix/Makefile generic \ prefix="$(PKG_INSTALL_DIR)/usr" \ CFLAGS="$(TARGET_CFLAGS)" \ - CC="$(TARGET_CC) $(TARGET_CFLAGS) -O $(TARGET_CPPFLAGS) -I. -DUNIX" \ - LD="$(TARGET_CC) $(TARGET_LDFLAGS)" \ + CC="$(TARGET_CC) $(TARGET_CFLAGS) -O $(TARGET_CPPFLAGS) -I. -DUNIX $(TARGET_LDFLAGS)" \ IZ_BZIP2="no" \ install endef