Merge pull request #943 from amrhassan/master
authorTed Hess <thess@kitschensync.net>
Sun, 1 Mar 2015 14:33:04 +0000 (09:33 -0500)
committerTed Hess <thess@kitschensync.net>
Sun, 1 Mar 2015 14:33:04 +0000 (09:33 -0500)
LuaRocks: Add new package

65 files changed:
ipv6/tayga/Makefile
lang/lualanes/Makefile
lang/php5/Makefile
lang/php5/patches/950-Fix-dl-cross-compiling-issue.patch
lang/python/Makefile
libs/boost/Makefile
libs/gnutls/Makefile
libs/ibrcommon/Makefile
libs/ibrdtn/Makefile
libs/libdmapsharing/Makefile
libs/libesmtp/Makefile
libs/libevhtp/Makefile
libs/libseccomp/Makefile
libs/libsodium/Makefile
libs/libunistring/Makefile
libs/libupnpp/Makefile
libs/libvorbisidec/Makefile
libs/libzdb/Makefile
libs/pthsem/Makefile
mail/mailsend/Makefile
mail/msmtp/Makefile
multimedia/ffmpeg/Makefile
multimedia/mjpg-streamer/Makefile
net/apcupsd/Makefile
net/apcupsd/files/apcupsd.css [new file with mode: 0644]
net/apcupsd/files/hosts.conf [new file with mode: 0644]
net/apcupsd/files/multimon.conf [new file with mode: 0644]
net/apcupsd/patches/010-fix-include-paths.patch [deleted file]
net/apcupsd/patches/010-fix-usb.patch [new file with mode: 0644]
net/bwm-ng/Makefile
net/ddns-scripts/Makefile
net/ddns-scripts/files/tld_names.dat
net/ddns-scripts/files/update_nsupdate.sh [new file with mode: 0644]
net/dnscrypt-proxy/Makefile
net/emailrelay/Makefile
net/ibrdtn-tools/Makefile
net/ibrdtnd/Makefile
net/knot/Makefile
net/knxd/Makefile
net/krb5/Makefile
net/krb5/patches/001-fix-build.patch
net/linknx/Makefile
net/mosquitto/Makefile
net/mosquitto/patches/100-libwebsockets-fixes.patch [new file with mode: 0644]
net/ntpd/Makefile
net/openvswitch/Makefile
net/pen/Makefile
net/redsocks/Makefile [new file with mode: 0644]
net/redsocks/files/redsocks.conf [new file with mode: 0644]
net/redsocks/files/redsocks.init [new file with mode: 0644]
net/redsocks/patches/0001-Fix-bug-in-DNS-resolution-results-were-ignored-since.patch [new file with mode: 0644]
net/redsocks/patches/0002-inet_ntop-red_inet_ntop.patch [new file with mode: 0644]
net/redsocks/patches/0003-Initial-support-for-UDP-TPROXY-redirection.-No-more-.patch [new file with mode: 0644]
net/redsocks/patches/0004-Fix-transposition-of-memset-parameters.patch [new file with mode: 0644]
net/redsocks/patches/0005-Fix-compilation-on-Ubuntu-10.04-LTS-and-hopefully-De.patch [new file with mode: 0644]
net/redsocks/patches/0006-fix_default_config_location.patch [new file with mode: 0644]
net/tcpproxy/Makefile
sound/forked-daapd/Makefile
sound/pulseaudio/Makefile
sound/upmpdcli/Makefile
utils/acl/Makefile
utils/attr/Makefile
utils/gammu/Makefile
utils/haveged/Makefile
utils/sumo/Makefile

index 8b645650fb80301226ad0f2ab18a71ae49238c2b..ba0d196c1d961c13b387f38d44a67d917ea1212b 100644 (file)
@@ -12,8 +12,6 @@ PKG_MD5SUM:=7a7b24165ce008df772f398d86fa280e
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
-PKG_CAT:=bzcat
-PKG_BUILD_DIR:=$(BUILD_DIR)/tayga-$(PKG_VERSION)
 PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
index 4a8e9dc18a7b6dc73c9096c6db206cd4946fadcc..06bc1e286404ab2ecab6b3b74709ceae28446418 100644 (file)
@@ -21,7 +21,6 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
 PKG_BUILD_DEPENDS:=lua/host luac/host
 
 include $(INCLUDE_DIR)/package.mk
index 5449dc3f54ba0294a503d914c68214940e9e8084..ccb55f4a55a1289a08b65d4af963ba85b46b3dfd 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=5.4.37
+PKG_VERSION:=5.6.6
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -18,9 +18,9 @@ PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_MD5SUM:=1962086593e8e39342674be0483db439
+PKG_MD5SUM:=b198117ee1d44c8143e030cee15f1b52
 
-PKG_FIXUP:=libtool no-autoreconf
+PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
 PKG_USE_MIPS16:=0
 
index 216a5180a3e99b019a5dddb0a94ddd924cae4d34..02b1f644c11d287cffa2f57dd78b433ae12862aa 100644 (file)
@@ -1,6 +1,7 @@
---- a/configure.in
-+++ b/configure.in
-@@ -453,7 +453,10 @@ PHP_CHECK_FUNC(gethostname, nsl)
+diff -u --recursive php-5.6.6-vanilla/configure.in php-5.6.6/configure.in
+--- php-5.6.6-vanilla/configure.in     2015-02-26 22:10:51.865487530 -0500
++++ php-5.6.6/configure.in     2015-02-26 22:29:59.043102135 -0500
+@@ -453,7 +453,10 @@
  PHP_CHECK_FUNC(gethostbyaddr, nsl)
  PHP_CHECK_FUNC(yp_get_default_domain, nsl)
  
  if test "$ac_cv_func_dlopen" = "yes"; then
    AC_DEFINE(HAVE_LIBDL, 1, [ ])
  fi
+diff -u --recursive php-5.6.6-vanilla/ext/fileinfo/config.m4 php-5.6.6/ext/fileinfo/config.m4
+--- php-5.6.6-vanilla/ext/fileinfo/config.m4   2015-02-26 22:10:51.639487135 -0500
++++ php-5.6.6/ext/fileinfo/config.m4   2015-02-26 22:22:47.645609128 -0500
+@@ -46,6 +46,10 @@
+     AC_MSG_RESULT(no)
+     AC_MSG_NOTICE(using libmagic strcasestr implementation)
+     libmagic_sources="$libmagic_sources libmagic/strcasestr.c"
++  ],[
++    dnl cross-compiling; assume not present
++    AC_MSG_NOTICE(using libmagic strcasestr implementation)
++    libmagic_sources="$libmagic_sources libmagic/strcasestr.c"
+   ])
+   PHP_NEW_EXTENSION(fileinfo, fileinfo.c $libmagic_sources, $ext_shared,,-I@ext_srcdir@/libmagic)
+diff -u --recursive php-5.6.6-vanilla/ext/opcache/config.m4 php-5.6.6/ext/opcache/config.m4
+--- php-5.6.6-vanilla/ext/opcache/config.m4    2015-02-26 22:10:51.790487399 -0500
++++ php-5.6.6/ext/opcache/config.m4    2015-02-26 22:34:19.240414394 -0500
+@@ -341,7 +341,14 @@
+       flock_type=linux
+     AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+     AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++], [
++    AC_MSG_RESULT("no")
++], [
++    dnl cross-compiling; assume Linux
++      flock_type=linux
++    AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
++    AC_MSG_RESULT("yes")
++])
+ AC_MSG_CHECKING("whether flock struct is BSD ordered")
+ AC_TRY_RUN([
+@@ -357,7 +364,12 @@
+       flock_type=bsd
+     AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) 
+     AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++], [
++    AC_MSG_RESULT("no")
++], [
++    dnl cross-compiling; assume Linux
++    AC_MSG_RESULT("no")
++])
+ if test "$flock_type" == "unknown"; then
+       AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
index d33ede8920798aced25c5bacf263ab19590ee1e3..bb42522926b6b808b43f0c008a7375bca01f6a12 100644 (file)
@@ -153,6 +153,7 @@ define PyPackage/python/filespec
 -|/usr/lib/python$(PYTHON_VERSION)/config
 -|/usr/lib/python$(PYTHON_VERSION)/distutils/cygwinccompiler.py
 -|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst*
+-|/usr/lib/python$(PYTHON_VERSION)/ensurepip
 -|/usr/lib/python$(PYTHON_VERSION)/idlelib
 -|/usr/lib/python$(PYTHON_VERSION)/lib2to3
 -|/usr/lib/python$(PYTHON_VERSION)/lib-tk
index 8fc3159ef6656a7daba547ba6ef4b94c43b28096..aae7fd2b489b4dadfcc2a2f5d4e0252c7cf5c37d 100644 (file)
 
 
 include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/target.mk 
 
 PKG_NAME:=boost
 PKG_VERSION:=1_57_0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/boost
@@ -26,7 +28,7 @@ PKG_LICENSE:=Boost Software License <http://www.boost.org/users/license.html>
 PKG_MAINTAINER:=Carlos M. Ferreira <carlosmf.pt@gmail.com> (Modified from Mirko Vogt <mirko@openwrt.org> Boost 1.51 Original Makefile and patches)
 
 
-PKG_BUILD_DEPENDS:=boost/host
+PKG_BUILD_DEPENDS += boost/host 
 PKG_BUILD_PARALLEL:=0
 PKG_USE_MIPS16:=0
 
@@ -45,7 +47,12 @@ PKG_CONFIG_DEPENDS := \
        CONFIG_PACKAGE_boost-test \
        CONFIG_PACKAGE_boost-thread \
        CONFIG_PACKAGE_boost-wave \
-        CONFIG_PACKAGE_boost-atomic \
+       CONFIG_PACKAGE_boost-atomic \
+       CONFIG_PACKAGE_boost-context \
+       CONFIG_PACKAGE_boost-container \
+       CONFIG_PACKAGE_boost-coroutine \
+       CONFIG_PACKAGE_boost-log \
+
 
 
 include $(INCLUDE_DIR)/package.mk
@@ -111,6 +118,7 @@ endef
 define Package/boost-locale
   $(call Package/boost/Default)
   TITLE+= (locale)
+  DEPENDS+= $(ICONV_DEPENDS)
 endef
 
 define Package/boost-math
@@ -183,6 +191,28 @@ define Package/boost-wave
   DEPENDS+= +boost-date_time +boost-thread +boost-filesystem
 endef
 
+define Package/boost-context
+  $(call Package/boost/Default)
+  TITLE+= (context)
+endef
+
+define Package/boost-container
+  $(call Package/boost/Default)
+  TITLE+= (container)
+endef
+
+define Package/boost-coroutine
+  $(call Package/boost/Default)
+  TITLE+= (coroutine)
+  DEPENDS+= +boost-system +boost-chrono +boost-context +boost-thread
+endef
+
+define Package/boost-log
+  $(call Package/boost/Default)
+  TITLE+= (log)
+  DEPENDS+= +boost-system +boost-chrono +boost-date_time +boost-thread +boost-filesystem +boost-regex
+endef
+
 define Package/boost
   $(call Package/boost/Default)
   TITLE+= (header-only)
@@ -200,7 +230,27 @@ endef
 CONFIGURE_PREFIX:=$(PKG_INSTALL_DIR)
 TARGET_LDFLAGS += -pthread -lrt
 
+
+
+
+ifneq ($(findstring mips,$(ARCH)),)
+    ifeq ($(ARCH),mips64)
+        BOOST_ABI = 64
+    else ifeq ($(ARCH),octeon)
+        BOOST_ABI = 64
+    else
+        BOOST_ABI = o32
+    endif
+else ifeq ($(ARCH),arm)
+       BOOST_ABI = aapcs
+else
+       BOOST_ABI = sysv
+endif
+
+
+
 define Build/Compile
+       echo "Selected Boost API $(BOOST_ABI) for architecture $(ARCH) and cpu $(CPU_TYPE) $(CPU_SUBTYPE)";
        ( cd $(PKG_BUILD_DIR) ; \
                echo "using gcc : $(ARCH) : $(GNU_TARGET_NAME)-gcc : <compileflags>\"$(TARGET_CFLAGS)\" <cxxflags>\"$(TARGET_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > tools/build/src/user-config.jam ; \
                $(if $(CONFIG_PACKAGE_boost-python), \
@@ -209,7 +259,7 @@ define Build/Compile
                ) \
                bjam \
                        '-sBUILD=release <optimization>space <inlining>on <debug-symbols>off' \
-                       --toolset=gcc-$(ARCH) --build-type=minimal --layout=system \
+                       --toolset=gcc-$(ARCH) --build-type=minimal --layout=system abi=$(BOOST_ABI) \
                        --disable-long-double \
                        $(CONFIGURE_ARGS) \
                        $(if $(CONFIG_PACKAGE_boost-atomic),,--without-atomic) \
@@ -220,7 +270,8 @@ define Build/Compile
                        $(if $(CONFIG_PACKAGE_boost-graph),,--without-graph) \
                        $(if $(CONFIG_PACKAGE_boost-graph_parallel),,--without-graph_parallel) \
                        $(if $(CONFIG_PACKAGE_boost-iostreams),,--without-iostreams) \
-                       $(if $(CONFIG_PACKAGE_boost-locale),,--without-locale) \
+                       $(if $(CONFIG_PACKAGE_boost-locale),boost.locale.iconv=on -sICONV_PATH=$(ICONV_PREFIX) boost.locale.posix=$(if $(USE_UCLIBC),on,off), \
+                               --without-locale boost.locale.iconv=off) \
                        $(if $(CONFIG_PACKAGE_boost-math),,--without-math) \
                        $(if $(CONFIG_PACKAGE_boost-mpi),,--without-mpi) \
                        $(if $(CONFIG_PACKAGE_boost-program_options),,--without-program_options) \
@@ -234,6 +285,10 @@ define Build/Compile
                        $(if $(CONFIG_PACKAGE_boost-thread),,--without-thread) \
                        $(if $(CONFIG_PACKAGE_boost-timer),,--without-timer) \
                        $(if $(CONFIG_PACKAGE_boost-wave),,--without-wave) \
+                       $(if $(CONFIG_PACKAGE_boost-context),,--without-context) \
+                       $(if $(CONFIG_PACKAGE_boost-container),,--without-container) \
+                       $(if $(CONFIG_PACKAGE_boost-coroutine),,--without-coroutine) \
+                       $(if $(CONFIG_PACKAGE_boost-log),,--without-log) \
                        \
                        $(if $(CONFIG_PACKAGE_boost-iostreams),-sNO_BZIP2=1 -sZLIB_INCLUDE=$(STAGING_DIR)/usr/include \
                                -sZLIB_LIBPATH=$(STAGING_DIR)/usr/lib) \
@@ -373,6 +428,24 @@ define Package/boost-wave/install
   $(call Package/boost/Default/install,$(1),wave)
 endef
 
+define Package/boost-context/install
+  $(call Package/boost/Default/install,$(1),context)
+endef
+
+define Package/boost-container/install
+  $(call Package/boost/Default/install,$(1),container)
+endef
+
+define Package/boost-coroutine/install
+  $(call Package/boost/Default/install,$(1),coroutine)
+endef
+
+define Package/boost-log/install
+  $(call Package/boost/Default/install,$(1),log)
+endef
+
+
+
 $(eval $(call HostBuild))
 $(eval $(call BuildPackage,boost))
 $(eval $(call BuildPackage,boost-atomic))
@@ -397,3 +470,7 @@ $(eval $(call BuildPackage,boost-test))
 $(eval $(call BuildPackage,boost-thread))
 $(eval $(call BuildPackage,boost-timer))
 $(eval $(call BuildPackage,boost-wave))
+$(eval $(call BuildPackage,boost-context))
+$(eval $(call BuildPackage,boost-container))
+$(eval $(call BuildPackage,boost-coroutine))
+$(eval $(call BuildPackage,boost-log))
index a7aedf9df31dc551386a76ea32718b868776c662..fed88fa13ce964c420e596d6e54d6600e71cc16a 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnutls
-PKG_VERSION:=3.3.12
+PKG_VERSION:=3.3.13
 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.3
-PKG_MD5SUM:=a37b20b4352a5f542367ded904729c90
+PKG_MD5SUM:=a7387fe8bf3e604bf518a6da9ab2a4e6
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <nmav@gnutls.org>
 
 PKG_INSTALL:=1
index c574147cab6641650d6487af7ad993a314d778a1..579ded3c604ec55b9681386b6b4b4597fa30221e 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2015 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:=ibrcommon
-PKG_VERSION:=1.0.0
+PKG_VERSION:=1.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
-PKG_MD5SUM:=c40e5c8e2ada746c6da7ab2c359c1575
+PKG_MD5SUM:=0104763ede969c470f32244d76c234b8
 PKG_MAINTAINER:=Johannes Morgenroth <jm@m-network.de>
 PKG_LICENSE:=Apache-2.0
 
index e69b3eeb2574522fc4a53390b4575d0a4c904ad1..45051ad3773f35054ddadd0d0823344b77fc4647 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2015 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:=ibrdtn
-PKG_VERSION:=1.0.0
+PKG_VERSION:=1.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
-PKG_MD5SUM:=c30f6164b717132b2c302d965d03c968
+PKG_MD5SUM:=37208be202f199f1790983ff78b2fa8f
 PKG_MAINTAINER:=Johannes Morgenroth <jm@m-network.de>
 PKG_LICENSE:=Apache-2.0
 
index 0b7eec6ca0f766e060b6d839b4471b353b9f0bdb..557b31e205f07675fb57e37a5a4dddac2dc99ab5 100644 (file)
@@ -18,7 +18,6 @@ PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 PKG_LICENSE:=LGPLv2.1
 PKG_LICENSE_FILES:=COPYING
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/libdmapsharing-$(PKG_VERSION)
 PKG_SOURCE:=libdmapsharing-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.flyn.org/projects/libdmapsharing/
 PKG_MD5SUM:=25de55d128d432d82f2a1ec010d7069a
index 205084f584c4d9df335a7a5f686f08ef51ccb733..cd62696234555a856a33f82117960a9ec6bdd326 100644 (file)
@@ -18,10 +18,6 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE_URL:=http://www.stafford.uklinux.net/libesmtp
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_CAT:=zcat
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
 
 include $(INCLUDE_DIR)/package.mk
 
index 5838870f90c2e43c897452af9c53329cec23af99..f6f61def555bada360dfef7f2189901d1fd9d2ae 100644 (file)
@@ -12,11 +12,10 @@ PKG_VERSION:=1.2.9
 PKG_RELEASE:=1
 PKG_LICENSE:=BSD-3-Clause
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/ellzey/libevhtp/archive/
 PKG_MD5SUM:=428a8d179fcc0cadedd914ed6456e08f
-PKG_CAT:=zcat
+
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
index e3ff8b44e25121888b533986721910a4600fd6e3..217c847e089c561eafd8bfd4a0a5305fc9ce1f11 100644 (file)
@@ -51,8 +51,6 @@ define Package/libseccomp/description
 endef
 
 define Build/Configure
-       $(SED) 's,-I$$$${includedir},,g' $(PKG_BUILD_DIR)/configure
-       $(SED) 's,-L$$$${libdir},,g' $(PKG_BUILD_DIR)/configure
        $(call Build/Configure/Default)
 endef
 
index a666afb17231508cb903930764f071a7a444a911..bd4cb9f39ce40ece60eb19bbd2abf5f13f5b7de9 100644 (file)
@@ -11,11 +11,9 @@ PKG_NAME:=libsodium
 PKG_VERSION:=1.0.2
 PKG_RELEASE:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://download.libsodium.org/libsodium/releases
 PKG_MD5SUM:=dc40eb23e293448c6fc908757738003f
-PKG_CAT:=zcat
 
 PKG_FIXUP:=libtool autoreconf
 PKG_USE_MIPS16:=0
index 6d69b57d808fed8d6cb03adad734056d713fc43b..1abd5fc778b390f77651858c8286a77af47d09ce 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,9 +8,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libunistring
-PKG_VERSION:=0.9.4
+PKG_VERSION:=0.9.5
 PKG_RELEASE:=1
-PKG_MD5SUM:=c24a6a3838d9ad4a41a62549312c4226
+PKG_MD5SUM:=1a705bcdcb83799d544137617b377cfd
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://ftp.gnu.org/gnu/libunistring
index 58a3222b077adcebfbf8f586c26a3d1ad925f226..8c9071db5eb6572f3a7858c479bd9f6fe3787e01 100644 (file)
@@ -11,7 +11,6 @@ PKG_NAME:=libupnpp
 PKG_VERSION:=0.9.0
 PKG_RELEASE:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.lesbonscomptes.com/upmpdcli/downloads
 PKG_MD5SUM:=ff218bbe2df6cf70b73843d951ef838e
index 5a026d701f8876e8ac3d068abb9e7bd8192743f4..dce109001582067b01de647f11b090c5e30ae5b0 100644 (file)
@@ -18,8 +18,6 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=b56ffce0c0773ec5ca04c466bc00b1bbcaf65aef
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_LICENSE:=BSD-3-Clause
index 09beff3f2d8be2f3b2c6bd95a455a9131c86bcfd..96bf3a6253803e0e84fbf80858713f255eed94e5 100644 (file)
@@ -12,11 +12,10 @@ PKG_VERSION:=3.0
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-3.0
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.tildeslash.com/libzdb/dist/
 PKG_MD5SUM:=3bb9efff10a1f3ebc5b76c1055c48635
-PKG_CAT:=zcat
+
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
index 0dee689c96d9eeb3937e3c1a1659b0147df94600..43fd7aec0d614d5aceafe603d2f9ca4161bf8fcc 100644 (file)
@@ -19,7 +19,6 @@ PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.auto.tuwien.ac.at/~mkoegler/pth/
 PKG_MD5SUM:=9144b26dcc27e67498d63dd5456f934c
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
index 29010e0828c50d4e3d522a753087fb37e4a5bf9b..5b63bae8c32160481e1c5049c890906aa5057c2b 100644 (file)
@@ -20,8 +20,6 @@ PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=COPYRIGHT
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
 include $(INCLUDE_DIR)/package.mk
 
 define Package/mailsend
index cf137d144bf1fec57dc3820a12695c4619353f04..1a7e2148071c8c70dd41699603b454bce72fb863 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=msmtp
 PKG_VERSION:=1.6.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/msmtp
@@ -124,6 +124,7 @@ endef
 Package/msmtp-nossl/conffiles = $(Package/msmtp/conffiles)
 Package/msmtp-nossl/install = $(Package/msmtp/install)
 Package/msmtp-nossl/postinst = $(Package/msmtp/postinst)
+Package/msmtp-nossl/prerm = $(Package/msmtp/prerm)
 
 define Package/msmtp-queue/install
        $(INSTALL_DIR) $(1)/usr/bin
index 9b46edb3062187dca949d9786537386aa10336a1..13293a83a839eeeba2f92f4dc249677ed76a79fa 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ffmpeg
-PKG_VERSION:=2.5.3
+PKG_VERSION:=2.5.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://ffmpeg.org/releases/
-PKG_MD5SUM:=efba7c5cfbea9ce58ff693cd08f90ffa
+PKG_MD5SUM:=af92a816b642d32134a764d2d7f55b75
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_LICENSE:=LGPL-2.1+ GPL-2+ LGPL-3
index 24e569df8e101a711227bcf4c6d0a970c1bcff29..d2e1537d9ff9a778fa74f4b2335cc9cdf314a8ac 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2015 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:=mjpg-streamer
 PKG_REV:=182
 PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).1.tar.bz2
@@ -54,7 +54,7 @@ CAMBOZOLA:=cambozola-latest.tar.gz
 define Download/cambozola
   URL:=http://www.andywilcock.com/code/cambozola
   FILE:=$(CAMBOZOLA)
-  MD5SUM:=6c48fd994685d4d72668850eeb613e24
+  MD5SUM:=c9b0da91f8e6e72efccd307e04e2b75b
 endef
 
 # Fetch latest cambozola that works with latest Java(s)
index 0d6e8c05fb7e9d09f9d72dfbec545b730d651cd3..fd8236d8ce7fbf8fd043359b4450935f680a8ff1 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=apcupsd
 PKG_VERSION:=3.14.13
-PKG_RELEASE:=2
+PKG_RELEASE:=4
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
 PKG_LICENSE:=GPL-2.0
@@ -19,22 +19,34 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/apcupsd
 PKG_MD5SUM:=c291d9d3923b4d9c0e600b755ad4f489
 
+PKG_BUILD_DEPENDS:=libgd
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/apcupsd
-  SECTION:=utils
-  CATEGORY:=Utilities
+  SECTION:=net
+  CATEGORY:=Network
   DEPENDS:=+libpthread +libusb-compat
   TITLE:=UPS control software
   URL:=http://www.apcupsd.org/
 endef
 
+define Package/apcupsd-cgi
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libpthread +libgd
+  TITLE:=UPS control software CGI module
+  URL:=http://www.apcupsd.org/
+endef
+
 define Build/Configure
        $(CP) $(SCRIPT_DIR)/config.* $(PKG_BUILD_DIR)/autoconf/
        $(call Build/Configure/Default, \
                --with-distname=unknown \
                --sysconfdir=/etc/apcupsd \
+               --enable-cgi \
                --enable-usb \
+               --enable-modbus-usb \
                --without-x \
        )
 endef
@@ -65,6 +77,15 @@ define Package/apcupsd/install
        $(INSTALL_BIN)  ./files/apcupsd.init $(1)/etc/init.d/apcupsd
 endef
 
+define Package/apcupsd-cgi/install
+       $(INSTALL_DIR) $(1)/www/cgi-bin/apcupsd
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/etc/apcupsd/*.cgi $(1)/www/cgi-bin/apcupsd
+       $(INSTALL_DIR) $(1)/etc/apcupsd
+       $(INSTALL_CONF) ./files/apcupsd.css $(1)/etc/apcupsd/
+       $(INSTALL_CONF) ./files/hosts.conf $(1)/etc/apcupsd/
+       $(INSTALL_CONF) ./files/multimon.conf $(1)/etc/apcupsd/
+endef
+
 define Package/apcupsd/conffiles
 /etc/apcupsd/apcupsd.conf
 /etc/apcupsd/apcupsd_mail.conf
@@ -75,4 +96,11 @@ define Package/apcupsd/conffiles
 /etc/apcupsd/onbattery
 endef
 
+define Package/apcupsd-cgi/conffiles
+/etc/apcupsd/apcupsd.css
+/etc/apcupsd/hosts.conf
+/etc/apcupsd/multimon.conf
+endef
+
 $(eval $(call BuildPackage,apcupsd))
+$(eval $(call BuildPackage,apcupsd-cgi))
diff --git a/net/apcupsd/files/apcupsd.css b/net/apcupsd/files/apcupsd.css
new file mode 100644 (file)
index 0000000..e98c75e
--- /dev/null
@@ -0,0 +1,64 @@
+body {
+        color: black;
+        background: white;
+}
+
+div.Center {
+        text-align: center;
+}
+
+img {
+        border-style: none;
+}
+
+pre {
+        text-align: left;
+}
+
+strong {
+        color: red;
+}
+
+table.Outer {
+        color: black;
+        background: #60a0a0;
+        empty-cells: show; border: solid #60a0a0
+}
+
+th.Outer {
+        color: black;
+        background: #60b0b0
+}
+
+.Title {
+        font-size: 18pt;
+}
+
+.SubTitle {
+        font-size: 12pt;
+}
+
+.Empty {
+        color: black;
+        background: aqua;
+}
+
+.Fault {
+        color: black;
+        background: red;
+}
+
+.Label {
+        color: black;
+        background: aqua;
+}
+
+.Normal {
+        color: black;
+        background: lime;
+}
+
+.Warning {
+        color: black;
+        background: yellow;
+}
diff --git a/net/apcupsd/files/hosts.conf b/net/apcupsd/files/hosts.conf
new file mode 100644 (file)
index 0000000..854e008
--- /dev/null
@@ -0,0 +1,19 @@
+# Network UPS Tools - hosts.conf
+#
+# This file does double duty - it lists the systems that multimon will
+# monitor, and also specifies the systems that upsstats is allowed to
+# watch.  It keeps people from feeding random addresses to upsstats,
+# among other things.  upsimage also uses this file to know who it
+# may speak to. upsfstats too.
+#
+# Usage: list systems running upsd that you want to monitor
+#
+# MONITOR <address> "<host description>"
+#
+# Please note, MONITOR must start in column 1 (no spaces permitted)
+#
+# Example:
+# MONITOR 10.64.1.1 "Finance department"
+# MONITOR 10.78.1.1 "Sierra High School data room #1"
+#
+MONITOR 127.0.0.1 "Local Host"
diff --git a/net/apcupsd/files/multimon.conf b/net/apcupsd/files/multimon.conf
new file mode 100644 (file)
index 0000000..4cdf9b0
--- /dev/null
@@ -0,0 +1,63 @@
+# Sample multimon configuration file
+#
+# This file is not required.  Without it, multimon will use the default
+# field layout.
+#
+# Temperature selection
+# 
+# Pick "TEMPC" for Celsius or "TEMPF" for Fahrenheit.  This will override
+# the --enable-celsius setting from the compile.  UPSTEMP (below) will 
+# use this setting by default.
+
+TEMPC
+
+# Format:
+# FIELD <variable> "<field name>" "<field suffix>"
+#
+# <variable> is either a word from the UPS protocol like battchg (see the
+# table in src/cgi/upsfetch.c) or a special word in uppercase.  
+#
+# Special words are:
+# MODEL    - Show the model name for this system in cyan
+#
+# STATUS   - Parse the status for this system using the appropriate color
+#
+# UPSTEMP and AMBTEMP use the default scale.  This is set to C if you use
+# --enable-celsius at compile time *or* if you use "TEMPC" above.
+#
+# UPSTEMP  - Show the UPS temperature in the default scale (suffix ignored)
+# AMBTEMP  - Show the ambient temperature in the default scale (suffix ignored)
+#
+# UPSTEMPC - Show the UPS temperature in degrees C (suffix ignored)
+# UPSTEMPF - Show the UPS temperature in degrees F (suffix ignored)
+# AMBTEMPC - Show the ambient temperature in degrees C (suffix ignored)
+# AMBTEMPF - Show the ambient temperature in degrees F (suffix ignored)
+# 
+# They're called "special" since they actually understand the content
+# being printed and do other things based on what's in there.
+# 
+# <field name> is what you'd like this column to be called on the page.
+# Remember that this is HTML, so you can actually embed markup in here.
+# This means you can even include images here.  You can include quotes
+# (and backslashes!) in the string by escaping them with a backslash (\).
+# 
+# <field suffix> is typically something like % or VAC.  It's useful if
+# you want to convey the units that apply to a value.
+#
+# Example config
+
+FIELD SYSTEM "System" ""
+FIELD MODEL "Model" ""
+FIELD STATUS "Status" ""
+FIELD battpct "Battery Chg" "%"
+FIELD utility "Utility" "VAC"
+FIELD loadpct "UPS Load" "%"
+FIELD UPSTEMP "UPS Temp" ""
+FIELD runtime "Batt. Run Time" "min."
+FIELD DATA   "Data" "All data"
+
+# These are only useful if you have a Smart-UPS model with the Measure-UPS II
+# measurement card.  No other models presently support these features.
+# 
+# FIELD AMBTEMP "Ambient Temp" ""
+# FIELD HUMIDITY "Ambient Humidity" "%"
diff --git a/net/apcupsd/patches/010-fix-include-paths.patch b/net/apcupsd/patches/010-fix-include-paths.patch
deleted file mode 100644 (file)
index 2151544..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/autoconf/variables.mak.in b/autoconf/variables.mak.in
-index b67e467..6022434 100644
---- a/autoconf/variables.mak.in
-+++ b/autoconf/variables.mak.in
-@@ -65,7 +65,7 @@ DRVLIBS = @PTHREAD_LFLAGS@ @DRVLIBS@
- X_LIBS = @X_LIBS@
- X_EXTRA_LIBS = @X_EXTRA_LIBS@
--CPPFLAGS = @CPPFLAGS@ -I$(topdir)/include $(EXTRAINCS)
-+CPPFLAGS = -I$(topdir)/include @CPPFLAGS@ $(EXTRAINCS)
- CFLAGS = $(CPPFLAGS) @CFLAGS@ @PTHREAD_CFLAGS@
- CXXFLAGS = $(CPPFLAGS) @CXXFLAGS@ @PTHREAD_CFLAGS@
- LDFLAGS = @LDFLAGS@
diff --git a/net/apcupsd/patches/010-fix-usb.patch b/net/apcupsd/patches/010-fix-usb.patch
new file mode 100644 (file)
index 0000000..b313bb2
--- /dev/null
@@ -0,0 +1,8 @@
+--- a/include/libusb.h.in.orig 2015-02-21 18:53:51.023682068 +0100
++++ a/include/libusb.h.in      2015-02-21 18:54:14.722788757 +0100
+@@ -6,4 +6,4 @@
+  * path at configure time and various apcupsd bits include this\r
+  * when they need libusb's usb.h.\r
+  */\r
+-#include "@LIBUSBH@"\r
++#include "usb.h"\r
index 695f7f07a37bf15928b06d5450048d93b875d604..be017cc05a8f51b7c23047123b7a0ed6b205dc6b 100644 (file)
@@ -18,8 +18,6 @@ PKG_LICENSE_FILES:=COPYING
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
 include $(INCLUDE_DIR)/package.mk
 
 define Package/bwm-ng
index 7c834c2ab649bf4109e06b00540cb0163712c109..54379bf1dc2019291d2ad20219c1263888098224 100644 (file)
@@ -3,17 +3,19 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=ddns-scripts
 # Version == major.minor.patch
 # increase on new functionality (minor) or patches (patch)
-PKG_VERSION:=2.3.0
+PKG_VERSION:=2.4.0
 # Release == build
 # increase on changes of services files or tld_names.dat
 PKG_RELEASE:=1
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
 include $(INCLUDE_DIR)/package.mk
 
+# no default dependencies
+PKG_DEFAULT_DEPENDS=
+
 define Package/$(PKG_NAME)/Default
     SECTION:=net
     CATEGORY:=Network
@@ -21,6 +23,7 @@ define Package/$(PKG_NAME)/Default
     PKGARCH:=all
 endef
 
+##### **********************************
 define Package/$(PKG_NAME)
     $(call Package/$(PKG_NAME)/Default)
     TITLE:=Dynamic DNS Client scripts (with IPv6 support)
@@ -41,31 +44,53 @@ define Package/$(PKG_NAME)/config
                  - Proxy server support
                  - log file support
                  - support to run once
-
+               .
                Version: $(PKG_VERSION)-$(PKG_RELEASE)
                Info   : http://wiki.openwrt.org/doc/howto/ddns.client
-
+               .
                $(PKG_MAINTAINER)
 endef
 
-define Package/$(PKG_NAME)_CloudFlare
+##### **********************************
+define Package/$(PKG_NAME)_cloudflare
     $(call Package/$(PKG_NAME)/Default)
     TITLE:=DDNS extension for CloudFlare
     DEPENDS:=$(PKG_NAME)
 endef
-define Package/$(PKG_NAME)_CloudFlare/description
+define Package/$(PKG_NAME)_cloudflare/description
     Dynamic DNS Client scripts extension for CloudFlare
 endef
 
-define Package/$(PKG_NAME)_No-IP_com
+##### **********************************
+define Package/$(PKG_NAME)_no-ip_com
     $(call Package/$(PKG_NAME)/Default)
     TITLE:=DDNS extension for No-IP.com
     DEPENDS:=$(PKG_NAME)
 endef
-define Package/$(PKG_NAME)_No-IP_com/description
+define Package/$(PKG_NAME)_no-ip_com/description
     Dynamic DNS Client scripts extension for No-IP.com
 endef
 
+##### **********************************
+define Package/$(PKG_NAME)_nsupdate
+    $(call Package/$(PKG_NAME)/Default)
+    TITLE:=DDNS extension using Bind nsupdate
+    DEPENDS:=$(PKG_NAME) +bind-client
+endef
+define Package/$(PKG_NAME)_nsupdate/description
+    Dynamic DNS Client scripts extension for direct updates using Bind nsupdate
+endef
+define Package/$(PKG_NAME)_nsupdate/config
+    help
+       The script directly updates a PowerDNS (or maybe bind server) via nsupdate 
+       from bind-client package. It requires 
+       "option dns_server" to be set to the server to be used by nsupdate.
+       "option username" should be set to the key name and 
+       "option password" to the base64 encoded shared secret.
+
+endef
+
+##### **********************************
 define Build/Configure
 endef
 define Build/Compile
@@ -84,6 +109,7 @@ define Package/$(PKG_NAME)/conffiles
 /etc/config/ddns
 endef
 
+##### **********************************
 define Package/$(PKG_NAME)/install
        $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.hotplug $(1)/etc/hotplug.d/iface/95-ddns
@@ -96,16 +122,6 @@ define Package/$(PKG_NAME)/install
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/services* $(1)/usr/lib/ddns
        $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/dynamic_*.sh $(1)/usr/lib/ddns
 endef
-define Package/$(PKG_NAME)_CloudFlare/install
-       $(INSTALL_DIR) $(1)/usr/lib/ddns
-       $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/update_CloudFlare.sh $(1)/usr/lib/ddns
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/tld_names.dat $(1)/usr/lib/ddns
-endef
-define Package/$(PKG_NAME)_No-IP_com/install
-       $(INSTALL_DIR) $(1)/usr/lib/ddns
-       $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/update_No-IP.com.sh $(1)/usr/lib/ddns
-endef
-
 define Package/$(PKG_NAME)/postinst
        #!/bin/sh
        # if run within buildroot exit
@@ -123,17 +139,6 @@ define Package/$(PKG_NAME)/postinst
 
        exit 0
 endef
-define Package/$(PKG_NAME)_CloudFlare/postinst
-       #!/bin/sh
-       echo -e '"CloudFlare"\t"update_CloudFlare.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services
-       echo -e '"CloudFlare"\t"update_CloudFlare.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services_ipv6
-endef
-define Package/$(PKG_NAME)_No-IP_com/postinst
-       #!/bin/sh
-       echo -e '"No-IP.com"\t"update_No-IP.com.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services
-       echo -e '"NoIP.com"\t"update_No-IP.com.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services
-endef
-
 define Package/$(PKG_NAME)/prerm
        #!/bin/sh
        # if run within buildroot exit
@@ -148,16 +153,57 @@ define Package/$(PKG_NAME)/prerm
 
        exit 0
 endef
-define Package/$(PKG_NAME)_CloudFlare/prerm
+
+##### **********************************
+define Package/$(PKG_NAME)_cloudflare/install
+       $(INSTALL_DIR) $(1)/usr/lib/ddns
+       $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/update_CloudFlare.sh $(1)/usr/lib/ddns
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/files/tld_names.dat $(1)/usr/lib/ddns
+endef
+define Package/$(PKG_NAME)_cloudflare/postinst
+       #!/bin/sh
+       echo -e '"CloudFlare"\t"update_CloudFlare.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services
+       echo -e '"CloudFlare"\t"update_CloudFlare.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services_ipv6
+endef
+define Package/$(PKG_NAME)_cloudflare/prerm
        #!/bin/sh
        /bin/sed -i '/update_CloudFlare\.sh/ d' $${IPKG_INSTROOT}/usr/lib/ddns/services
        /bin/sed -i '/update_CloudFlare\.sh/ d' $${IPKG_INSTROOT}/usr/lib/ddns/services_ipv6
 endef
-define Package/$(PKG_NAME)_No-IP_com/prerm
+
+##### **********************************
+define Package/$(PKG_NAME)_no-ip_com/install
+       $(INSTALL_DIR) $(1)/usr/lib/ddns
+       $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/update_No-IP.com.sh $(1)/usr/lib/ddns
+endef
+define Package/$(PKG_NAME)_no-ip_com/postinst
+       #!/bin/sh
+       echo -e '"No-IP.com"\t"update_No-IP.com.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services
+       echo -e '"NoIP.com"\t"update_No-IP.com.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services
+endef
+define Package/$(PKG_NAME)_no-ip_com/prerm
        #!/bin/sh
        /bin/sed -i '/update_No-IP\.com\.sh/ d' $${IPKG_INSTROOT}/usr/lib/ddns/services
 endef
 
+##### **********************************
+define Package/$(PKG_NAME)_nsupdate/install
+       $(INSTALL_DIR) $(1)/usr/lib/ddns
+       $(INSTALL_BIN)  $(PKG_BUILD_DIR)/files/update_nsupdate.sh $(1)/usr/lib/ddns
+endef
+define Package/$(PKG_NAME)_nsupdate/postinst
+       #!/bin/sh
+       echo -e '"Bind-nsupdate"\t"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services
+       echo -e '"Bind-nsupdate"\t"update_nsupdate.sh"' >> $${IPKG_INSTROOT}/usr/lib/ddns/services_ipv6
+endef
+define Package/$(PKG_NAME)_nsupdate/prerm
+       #!/bin/sh
+       /bin/sed -i '/update_nsupdate\.sh/ d' $${IPKG_INSTROOT}/usr/lib/ddns/services
+       /bin/sed -i '/update_nsupdate\.sh/ d' $${IPKG_INSTROOT}/usr/lib/ddns/services_ipv6
+endef
+
+##### **********************************
 $(eval $(call BuildPackage,$(PKG_NAME)))
-$(eval $(call BuildPackage,$(PKG_NAME)_CloudFlare))
-$(eval $(call BuildPackage,$(PKG_NAME)_No-IP_com))
+$(eval $(call BuildPackage,$(PKG_NAME)_cloudflare))
+$(eval $(call BuildPackage,$(PKG_NAME)_no-ip_com))
+$(eval $(call BuildPackage,$(PKG_NAME)_nsupdate))
index 7e1959f42580c3ada24c69f989dd6b1f4c2db6c3..f9274e43b01774d388e60383ae376c5c5ba3c837 100644 (file)
@@ -6153,6 +6153,38 @@ store.st
 
 // su : http://en.wikipedia.org/wiki/.su
 su
+adygeya.su
+arkhangelsk.su
+balashov.su
+bashkiria.su
+bryansk.su
+dagestan.su
+grozny.su
+ivanovo.su
+kalmykia.su
+kaluga.su
+karelia.su
+khakassia.su
+krasnodar.su
+kurgan.su
+lenug.su
+mordovia.su
+msk.su
+murmansk.su
+nalchik.su
+nov.su
+obninsk.su
+penza.su
+pokrovsk.su
+sochi.su
+spb.su
+togliatti.su
+troitsk.su
+tula.su
+tuva.su
+vladikavkaz.su
+vladimir.su
+vologda.su
 
 // sv : http://www.svnet.org.sv/niveldos.pdf
 sv
@@ -9508,6 +9540,7 @@ zuerich
 
 // ===END ICANN DOMAINS===
 // ===BEGIN PRIVATE DOMAINS===
+// (Note: these are in alphabetical order by company name)
 
 // Amazon CloudFront : https://aws.amazon.com/cloudfront/
 // Submitted by Donavan Miller <donavanm@amazon.com> 2013-03-22
@@ -9941,6 +9974,10 @@ firebaseapp.com
 // Submitted by Jonathan Rudenberg <jonathan@flynn.io> 2014-07-12
 flynnhub.com
 
+// GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains
+// Submitted by David Illsley <david.illsley@digital.cabinet-office.gov.uk> 2014-08-28
+service.gov.uk
+
 // GitHub, Inc.
 // Submitted by Ben Toews <btoews@github.com> 2014-02-06
 github.io
@@ -10052,17 +10089,19 @@ poznan.pl
 wroc.pl
 zakopane.pl
 
+// priv.at : http://www.nic.priv.at/
+// Submitted by registry <lendl@nic.at> 2008-06-09
+priv.at
+
 // Red Hat, Inc. OpenShift : https://openshift.redhat.com/
 // Submitted by Tim Kramer <tkramer@rhcloud.com> 2012-10-24
 rhcloud.com
 
-// GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains
-// Submitted by David Illsley <david.illsley@digital.cabinet-office.gov.uk> 2014-08-28
-service.gov.uk
-
-// priv.at : http://www.nic.priv.at/
-// Submitted by registry <lendl@nic.at> 2008-06-09
-priv.at
+// SinaAppEngine : http://sae.sina.com.cn/
+// Submitted by SinaAppEngine <saesupport@sinacloud.com> 2015-02-02
+sinaapp.com
+vipsinaapp.com
+1kapp.com
 
 // TASK geographical domains (www.task.gda.pl/uslugi/dns)
 gda.pl
diff --git a/net/ddns-scripts/files/update_nsupdate.sh b/net/ddns-scripts/files/update_nsupdate.sh
new file mode 100644 (file)
index 0000000..1af9404
--- /dev/null
@@ -0,0 +1,46 @@
+#
+#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
+#
+# The script directly updates a PowerDNS (or maybe bind server) via nsupdate from bind-client package.
+#.based on github request #957 by Jan Riechers <de at r-jan dot de>
+#.2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
+#
+# This script is parsed by dynamic_dns_functions.sh inside send_update() function
+#
+# using following options from /etc/config/ddns
+# option username   - keyname 
+# option password   - shared secret (base64 encoded)
+# option domain     - full qualified domain to update
+# option dns_server - DNS server to update
+#
+# variable __IP already defined with the ip-address to use for update
+#
+local __TTL=600                #.preset DNS TTL (in seconds)
+local __RRTYPE __PW __TCP
+
+[ -x /usr/bin/nsupdate ] || write_log 14 "'nsupdate' not installed or not executable !"
+
+[ -z "$username" ]   && write_log 14 "Service section not configured correctly! Missing 'username'"
+[ -z "$password" ]   && write_log 14 "Service section not configured correctly! Missing 'password'"
+[ -z "$dns_server" ] && write_log 14 "Service section not configured correctly! Missing 'dns_server'"
+
+[ $use_ipv6 -ne 0 ] && __RRTYPE="AAAA" || __RRTYPE="A"
+[ $force_dnstcp -ne 0 ] && __TCP="-v" || __TCP=""
+
+# create command file
+cat >$DATFILE <<-EOF
+server $dns_server
+key $username $password
+update del $domain $__RRTYPE
+update add $domain $__TTL $__RRTYPE $__IP
+show
+send
+quit
+EOF
+
+/usr/bin/nsupdate -d $__TCP $DATFILE >$ERRFILE 2>&1
+
+# nsupdate always return success
+write_log 7 "nsupdate reports:\n$(cat $ERRFILE)"
+
+return 0
\ No newline at end of file
index 2b4c2c6522782bf13772e3a7bc5a8d5671066ec6..22458fbfb502a7e358d267d0f97b46fb9ae30190 100644 (file)
@@ -11,11 +11,9 @@ PKG_NAME:=dnscrypt-proxy
 PKG_VERSION:=1.4.3
 PKG_RELEASE:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://download.dnscrypt.org/dnscrypt-proxy
 PKG_MD5SUM:=54d172236a8f321fb5689ff81767f1ba
-PKG_CAT:=zcat
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index a5a0464658b0923a04563dc10849c077cde1746b..bbcd6148b4711abc4a7eff9be4fdc8c3f4c7e1c7 100644 (file)
@@ -14,9 +14,9 @@ PKG_RELEASE:=1
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-src.tar.gz
 PKG_SOURCE_URL:=@SF/emailrelay/$(PKG_VERSION)
 PKG_MD5SUM:=0892fbf993407c6b5a16f96e23299b62
-PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
-PKG_CAT :=zcat
+
 
 include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
index 5a1f58f961f70d1c6302a8488be186b6cc3530fc..2ffb30a80768c89a2af8cef268eb752be8b4dc7a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2015 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:=ibrdtn-tools
-PKG_VERSION:=1.0.0
+PKG_VERSION:=1.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
-PKG_MD5SUM:=ec522079278bcdf4181e6a1d86f8d72f
+PKG_MD5SUM:=3e527cedc6132739403fc210e4f8abe2
 PKG_MAINTAINER:=Johannes Morgenroth <jm@m-network.de>
 PKG_LICENSE:=Apache-2.0
 
index 7b72ac98177e722959f735ec073522a92d0384cf..36d598749d1760f0d4117137698c9c1a8aa9ef0a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2015 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:=ibrdtnd
-PKG_VERSION:=1.0.0
+PKG_VERSION:=1.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.ibr.cs.tu-bs.de/projects/ibr-dtn/releases
-PKG_MD5SUM:=7fd48b2eec5058fa15f6977afd4e8dab
+PKG_MD5SUM:=933d37bf777700a6e1709d0f7a129613
 PKG_MAINTAINER:=Johannes Morgenroth <jm@m-network.de>
 PKG_LICENSE:=Apache-2.0
 
index 5abe85050d365b85beae2e137b287fccb0912a44..d35fb7f942e93d1e4e9cec41b753e2e769d16ed4 100644 (file)
@@ -8,18 +8,17 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knot
-PKG_VERSION:=1.6.1
+PKG_VERSION:=1.6.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/
-PKG_MD5SUM:=acea8f90079c4f90ee841d1cfa3ccd30
+PKG_MD5SUM:=ad0a2d641556ad30d17d45200a2c45df
 
 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
 PKG_LICENSE:=GPL-2.0+
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index 59b346efcff14c333cace1b3a9bc6e4f746e54f6..cbf5ab18a0af0c84ca57407c4b60f9aaf8424279 100644 (file)
@@ -25,7 +25,6 @@ PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://github.com/Makki1/knxd.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)
 PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_CAT:=zcat
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
 PKG_BUILD_DEPENDS:=pthsem argp-standalone
index 6eb2e6be6d2a4fa18549026ff3ebae326660674f..c0de8524a0e3baa306bb6c5b06db9dd672082b8f 100644 (file)
@@ -1,14 +1,24 @@
+#
+# Copyright (C) 2009-2015 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:=krb5
-PKG_VERSION:=1.12.1
+PKG_VERSION:=1.13.1
 PKG_RELEASE:=1
 
-PKG_SOURCE:=krb5-$(PKG_VERSION)-signed.tar
-PKG_SOURCE_URL:=http://web.mit.edu/kerberos/dist/krb5/1.12/
-PKG_MD5SUM:=524b1067b619cb5bf780759b6884c3f5
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=NOTICE
+
+PKG_SOURCE:=krb5-$(PKG_VERSION)-signed.tar
+PKG_SOURCE_URL:=http://web.mit.edu/kerberos/dist/krb5/1.13/
+PKG_MD5SUM:=567586cdf02aa8c842c2fab7a94f3c1f
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -23,7 +33,6 @@ define Package/krb5/Default
        CATEGORY:=Network
        TITLE:=Kerberos
        URL:=http://web.mit.edu/kerberos/
-       MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 endef
 
 define Package/krb5-libs
@@ -33,7 +42,6 @@ define Package/krb5-libs
        DEPENDS:=+libncurses
        TITLE:=Kerberos 5 Shared Libraries
        URL:=http://web.mit.edu/kerberos/
-       MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 endef
 
 define Package/krb5-server
index 94effed7145d234a5b53d4fd6021dd362d308838..2801fd36316bccfd4221a5c62cd7ea487eaf1721 100644 (file)
@@ -1,6 +1,6 @@
-diff -u --recursive krb5-1.12.1-vanilla/src/lib/krad/packet.c krb5-1.12.1/src/lib/krad/packet.c
---- krb5-1.12.1-vanilla/src/lib/krad/packet.c  2014-07-18 00:10:11.916603406 -0400
-+++ krb5-1.12.1/src/lib/krad/packet.c  2014-07-18 00:20:23.471574387 -0400
+diff -u --recursive krb5-1.13.1-vanilla/src/lib/krad/packet.c krb5-1.13.1/src/lib/krad/packet.c
+--- krb5-1.13.1-vanilla/src/lib/krad/packet.c  2015-02-22 10:08:38.213087138 -0500
++++ krb5-1.13.1/src/lib/krad/packet.c  2015-02-22 10:13:25.223709951 -0500
 @@ -253,7 +253,7 @@
  {
      krb5_error_code retval;
@@ -10,3 +10,36 @@ diff -u --recursive krb5-1.12.1-vanilla/src/lib/krad/packet.c krb5-1.12.1/src/li
      size_t attrset_len;
  
      pkt = packet_new();
+diff -u --recursive krb5-1.13.1-vanilla/src/lib/krb5/ccache/cc_file.c krb5-1.13.1/src/lib/krb5/ccache/cc_file.c
+--- krb5-1.13.1-vanilla/src/lib/krb5/ccache/cc_file.c  2015-02-22 10:08:38.211087133 -0500
++++ krb5-1.13.1/src/lib/krb5/ccache/cc_file.c  2015-02-22 10:14:15.410819464 -0500
+@@ -401,7 +401,7 @@
+ {
+     krb5_error_code ret;
+     struct k5buf buf;
+-    size_t maxsize;
++    size_t maxsize = 0;
+     *princ = NULL;
+     k5_cc_mutex_assert_locked(context, &((fcc_data *)id->data)->lock);
+@@ -1088,7 +1088,7 @@
+     krb5_fcc_cursor *fcursor = *cursor;
+     fcc_data *data = id->data;
+     struct k5buf buf;
+-    size_t maxsize;
++    size_t maxsize = 0;
+     memset(creds, 0, sizeof(*creds));
+     k5_cc_mutex_lock(context, &data->lock);
+diff -u --recursive krb5-1.13.1-vanilla/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c krb5-1.13.1/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
+--- krb5-1.13.1-vanilla/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c     2015-02-22 10:08:38.190087088 -0500
++++ krb5-1.13.1/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c     2015-02-22 10:17:37.981263250 -0500
+@@ -3593,7 +3593,7 @@
+ {
+     CK_ULONG i, r;
+     unsigned char *cp;
+-    size_t label_len;
++    size_t label_len = 0;
+     CK_ULONG count = 0;
+     CK_SLOT_ID_PTR slotlist;
+     CK_TOKEN_INFO tinfo;
index bfe768392cf9a560756d1ddd904ac403f20d3881..e3aed3b15111edbc3e921928929412de95cddd33 100644 (file)
@@ -17,10 +17,8 @@ PKG_LICENSE:=GPL-2.0+
 
 PKG_SOURCE_URL:=@SF/linknx
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_CAT:=zcat
 PKG_BUILD_DEPENDS:=pthsem curl libesmtp
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 include $(INCLUDE_DIR)/package.mk
 
 define Package/linknx
index 2fe7419516e5fd16d43d2b5dfdafd32e93a5d575..f7b0a918c5a359c95f9bcab830c655c33a0170d2 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
 PKG_VERSION:=1.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
 
@@ -21,9 +21,6 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSI
 
 include $(INCLUDE_DIR)/package.mk
 
-MAKE_FLAGS+=WITH_DOCS=no
-MAKE_FLAGS+=WITH_WEBSOCKETS=$(if $(CONFIG_MOSQUITTO_LWS),"yes","no")
-
 define Package/$(PKG_NAME)/default
   SECTION:=net
   CATEGORY:=Network
@@ -186,8 +183,11 @@ endef
 Package/libmosquitto-nossl/install = $(Package/libmosquitto/install)
 
 # Applies to all...
+MAKE_FLAGS += WITH_DOCS=no
 ifeq ($(BUILD_VARIANT),nossl)
-        MAKE_FLAGS += WITH_TLS=no
+        MAKE_FLAGS += WITH_TLS=no WITH_WEBSOCKETS=no
+else
+       MAKE_FLAGS += WITH_WEBSOCKETS=$(if $(CONFIG_MOSQUITTO_LWS),"yes","no")
 endif
 
 $(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/net/mosquitto/patches/100-libwebsockets-fixes.patch b/net/mosquitto/patches/100-libwebsockets-fixes.patch
new file mode 100644 (file)
index 0000000..4d107b1
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/src/websockets.c b/src/websockets.c
+index 95f8a81..cf2b5e7 100644
+--- a/src/websockets.c
++++ b/src/websockets.c
+@@ -72,7 +72,7 @@ struct libws_http_data {
+       FILE *fptr;
+ };
+-#ifndef HTTP_STATUS_NOT_FOUND
++#ifndef LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG
+       /* This is libwebsockets 1.2.x or earlier, we have to degrade our capabilities.
+        * Once lws 1.3 is widely available this should be removed. */
+ #     define LWS_IS_OLD
index c3181cf6f6bf2d80a62cc1c0fd7897e21ad4f1ae..34a8ddae9a7204c25c811b7daf9c7f0002ea1c7e 100644 (file)
@@ -18,8 +18,6 @@ PKG_MD5SUM:=65d8cdfae4722226fbe29863477641ed
 PKG_LICENSE:=Unique
 PKG_LICENSE_FILES:=COPYRIGHT html/copyright.html
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-
 PKG_FIXUP:=autoreconf
 PKG_LIBTOOL_PATHS:=. sntp
 PKG_CHECK_FORMAT_SECURITY:=0
index 7f3737cfba0488a4ff5e95bb651dd408e60a6b48..97e782e89976a94cd32b02dfa029312262f0f6ef 100644 (file)
@@ -50,7 +50,8 @@ endef
 define Package/openvswitch
   $(call Package/openvswitch/Default)
   TITLE:=Open vSwitch Userspace Package
-  DEPENDS:=+libpcap +libopenssl +librt +libatomic +kmod-openvswitch
+  DEPENDS:=+libpcap +libopenssl +librt +libatomic +kmod-openvswitch \
+           @(LINUX_3_8||LINUX_3_10||LINUX_3_13||LINUX_3_14)
 endef
 
 define Package/openvswitch/description
index aaeb160c023481770780a0936bb18ecdbcf8b1f0..cb597a0ab916b60c341845809d2d41bbdaf0d3f5 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pen
-PKG_VERSION:=0.27.0
+PKG_VERSION:=0.27.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://siag.nu/pub/pen/
-PKG_MD5SUM:=91799cd095402a8e7b2cfcb10bcf5cb5
+PKG_MD5SUM:=652c457266b6ec6a295f4c7895785674
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
diff --git a/net/redsocks/Makefile b/net/redsocks/Makefile
new file mode 100644 (file)
index 0000000..91f0477
--- /dev/null
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2014 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:=redsocks
+PKG_VERSION:=0.4
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-release-$(PKG_VERSION)
+PKG_SOURCE:=release-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/darkk/redsocks/archive/
+PKG_MD5SUM:=810102ef06a9ea796f310ae811afc6a8
+PKG_MAINTAINER:=Johannes Morgenroth <jm@m-network.de>
+PKG_LICENSE:=Apache-2.0
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/redsocks
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libevent2
+  TITLE:=Redirect any TCP connection to a SOCKS or HTTPS proxy server
+endef
+
+define Package/redsocks/conffiles
+/etc/redsocks.conf
+endef
+
+define Package/redsocks/description
+ Redsocks is a daemon running on the local system, that will transparently
+ tunnel any TCP connection via a remote SOCKS4, SOCKS5 or HTTP proxy server. It
+ uses the system firewall's redirection facility to intercept TCP connections,
+ thus the redirection is system-wide, with fine-grained control, and does
+ not depend on LD_PRELOAD libraries.
+ Redsocks supports tunneling TCP connections and UDP packets. It has
+ authentication support for both, SOCKS and HTTP proxies.
+ Also included is a small DNS server returning answers with the "truncated" flag
+ set for any UDP query, forcing the resolver to use TCP.
+endef
+
+define Package/redsocks/install
+       $(INSTALL_DIR) $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/redsocks $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/init.d/
+       $(INSTALL_BIN) files/redsocks.init $(1)/etc/init.d/redsocks
+       $(INSTALL_CONF) files/redsocks.conf $(1)/etc/
+endef
+
+$(eval $(call BuildPackage,redsocks))
diff --git a/net/redsocks/files/redsocks.conf b/net/redsocks/files/redsocks.conf
new file mode 100644 (file)
index 0000000..64307c7
--- /dev/null
@@ -0,0 +1,108 @@
+base {
+       // debug: connection progress & client list on SIGUSR1
+       log_debug = off;
+
+       // info: start and end of client session
+       log_info = on;
+
+       /* possible `log' values are:
+        *   stderr
+        *   "file:/path/to/file"
+        *   syslog:FACILITY  facility is any of "daemon", "local0"..."local7"
+        */
+       // log = stderr;
+       // log = "file:/path/to/file";
+       log = "syslog:local7";
+
+       // detach from console
+       daemon = on;
+
+       /* Change uid, gid and root directory, these options require root
+        * privilegies on startup.
+        * Note, your chroot may requre /etc/localtime if you write log to syslog.
+        * Log is opened before chroot & uid changing.
+        */
+       // user = nobody;
+       // group = nobody;
+       // chroot = "/var/chroot";
+
+       /* possible `redirector' values are:
+        *   iptables   - for Linux
+        *   ipf        - for FreeBSD
+        *   pf         - for OpenBSD
+        *   generic    - some generic redirector that MAY work
+        */
+       redirector = iptables;
+}
+
+redsocks {
+       /* `local_ip' defaults to 127.0.0.1 for security reasons,
+        * use 0.0.0.0 if you want to listen on every interface.
+        * `local_*' are used as port to redirect to.
+        */
+       local_ip = 127.0.0.1;
+       local_port = 12345;
+
+       // listen() queue length. Default value is SOMAXCONN and it should be
+       // good enough for most of us.
+       // listenq = 128; // SOMAXCONN equals 128 on my Linux box.
+
+       // `max_accept_backoff` is a delay to retry `accept()` after accept
+       // failure (e.g. due to lack of file descriptors). It's measured in
+       // milliseconds and maximal value is 65535. `min_accept_backoff` is
+       // used as initial backoff value and as a damper for `accept() after
+       // close()` logic.
+       // min_accept_backoff = 100;
+       // max_accept_backoff = 60000;
+
+       // `ip' and `port' are IP and tcp-port of proxy-server
+       // You can also use hostname instead of IP, only one (random)
+       // address of multihomed host will be used.
+       ip = example.org;
+       port = 1080;
+
+
+       // known types: socks4, socks5, http-connect, http-relay
+       type = socks5;
+
+       // login = "foobar";
+       // password = "baz";
+}
+
+redudp {
+       // `local_ip' should not be 0.0.0.0 as it's also used for outgoing
+       // packets that are sent as replies - and it should be fixed
+       // if we want NAT to work properly.
+       local_ip = 127.0.0.1;
+       local_port = 10053;
+
+       // `ip' and `port' of socks5 proxy server.
+       ip = 10.0.0.1;
+       port = 1080;
+       login = username;
+       password = pazzw0rd;
+
+       // redsocks knows about two options while redirecting UDP packets at
+       // linux: TPROXY and REDIRECT.  TPROXY requires more complex routing
+       // configuration and fresh kernel (>= 2.6.37 according to squid
+       // developers[1]) but has hack-free way to get original destination
+       // address, REDIRECT is easier to configure, but requires `dest_ip` and
+       // `dest_port` to be set, limiting packet redirection to single
+       // destination.
+       // [1] http://wiki.squid-cache.org/Features/Tproxy4
+       dest_ip = 8.8.8.8;
+       dest_port = 53;
+
+       udp_timeout = 30;
+       udp_timeout_stream = 180;
+}
+
+dnstc {
+       // fake and really dumb DNS server that returns "truncated answer" to
+       // every query via UDP, RFC-compliant resolver should repeat same query
+       // via TCP in this case.
+       local_ip = 127.0.0.1;
+       local_port = 5300;
+}
+
+// you can add more `redsocks' and `redudp' sections if you need.
diff --git a/net/redsocks/files/redsocks.init b/net/redsocks/files/redsocks.init
new file mode 100644 (file)
index 0000000..56c9de3
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2007 OpenWrt.org
+
+START=90
+
+# check if configuration exists
+[ -e "/etc/redsocks.conf" ] || exit 0
+
+start() {
+       if [ -e "/var/run/redsocks.pid" ]; then
+               echo "redsocks is already running"
+               exit 0
+       fi
+
+       /bin/echo -n "running redsocks ..."
+       
+       # startup the safety-wrapper for the daemon
+       /usr/sbin/redsocks -p /var/run/redsocks.pid
+       
+       /bin/echo " done"
+}
+
+stop() {
+       if [ ! -e "/var/run/redsocks.pid" ]; then
+               echo "redsocks is not running"
+               exit 0
+       fi
+
+       /bin/echo -n "stopping redsocks ..."
+       
+       # kill the process
+       /bin/kill $(cat /var/run/redsocks.pid)
+       rm /var/run/redsocks.pid
+       
+       echo " done"
+}
diff --git a/net/redsocks/patches/0001-Fix-bug-in-DNS-resolution-results-were-ignored-since.patch b/net/redsocks/patches/0001-Fix-bug-in-DNS-resolution-results-were-ignored-since.patch
new file mode 100644 (file)
index 0000000..595be19
--- /dev/null
@@ -0,0 +1,53 @@
+From 290f19972e9f7b74f818ae211cb535e32f1f314f Mon Sep 17 00:00:00 2001
+From: Leonid Evdokimov <leon@darkk.net.ru>
+Date: Tue, 10 Apr 2012 00:57:26 +0400
+Subject: [PATCH 01/12] Fix bug in DNS resolution - results were ignored (since
+ 8179a1ff).
+
+---
+ parser.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/parser.c b/parser.c
+index 85d3533..6198828 100644
+--- a/parser.c
++++ b/parser.c
+@@ -295,22 +295,22 @@ static int vp_in_addr(parser_context *context, void *addr, const char *token)
+               memcpy(addr, &ia, sizeof(ia));
+       }
+       else {
+-              struct addrinfo *addr, hints;
++              struct addrinfo *ainfo, hints;
+               int err;
+               memset(&hints, 0, sizeof(hints));
+               hints.ai_family = AF_INET; /* IPv4-only */
+               hints.ai_socktype = SOCK_STREAM; /* I want to have one address once and ONLY once, that's why I specify socktype and protocol */
+               hints.ai_protocol = IPPROTO_TCP;
+               hints.ai_flags = AI_ADDRCONFIG; /* I don't need IPv4 addrs without IPv4 connectivity */
+-              err = getaddrinfo(token, NULL, &hints, &addr);
++              err = getaddrinfo(token, NULL, &hints, &ainfo);
+               if (err == 0) {
+                       int count, taken;
+                       struct addrinfo *iter;
+                       struct sockaddr_in *resolved_addr;
+-                      for (iter = addr, count = 0; iter; iter = iter->ai_next, ++count)
++                      for (iter = ainfo, count = 0; iter; iter = iter->ai_next, ++count)
+                               ;
+                       taken = rand() % count;
+-                      for (iter = addr; taken > 0; iter = iter->ai_next, --taken)
++                      for (iter = ainfo; taken > 0; iter = iter->ai_next, --taken)
+                               ;
+                       resolved_addr = (struct sockaddr_in*)iter->ai_addr;
+                       assert(resolved_addr->sin_family == iter->ai_family && iter->ai_family == AF_INET);
+@@ -318,7 +318,7 @@ static int vp_in_addr(parser_context *context, void *addr, const char *token)
+                               log_error(LOG_WARNING, "%s resolves to %d addresses, using %s",
+                                         token, count, inet_ntoa(resolved_addr->sin_addr));
+                       memcpy(addr, &resolved_addr->sin_addr, sizeof(ia));
+-                      freeaddrinfo(addr);
++                      freeaddrinfo(ainfo);
+               }
+               else {
+                       if (err == EAI_SYSTEM)
+-- 
+1.9.1
+
diff --git a/net/redsocks/patches/0002-inet_ntop-red_inet_ntop.patch b/net/redsocks/patches/0002-inet_ntop-red_inet_ntop.patch
new file mode 100644 (file)
index 0000000..058556e
--- /dev/null
@@ -0,0 +1,161 @@
+From 6015b3a6f26e04dd5d78cd6c1320886fc9035612 Mon Sep 17 00:00:00 2001
+From: Leonid Evdokimov <leon@darkk.net.ru>
+Date: Tue, 10 Apr 2012 01:37:34 +0400
+Subject: [PATCH 02/12] inet_ntop -> red_inet_ntop
+
+---
+ redsocks.c | 13 ++++---------
+ redudp.c   | 19 +++++++++++--------
+ utils.c    | 37 +++++++++++++++++++++++++++++++++----
+ utils.h    |  7 +++++++
+ 4 files changed, 55 insertions(+), 21 deletions(-)
+
+diff --git a/redsocks.c b/redsocks.c
+index d085e10..ba5eab2 100644
+--- a/redsocks.c
++++ b/redsocks.c
+@@ -207,22 +207,17 @@ void redsocks_log_write_plain(
+       int saved_errno = errno;
+       struct evbuffer *fmt = evbuffer_new();
+       va_list ap;
+-      char clientaddr_str[INET6_ADDRSTRLEN], destaddr_str[INET6_ADDRSTRLEN];
++      char clientaddr_str[RED_INET_ADDRSTRLEN], destaddr_str[RED_INET_ADDRSTRLEN];
+       if (!fmt) {
+               log_errno(LOG_ERR, "evbuffer_new()");
+               // no return, as I have to call va_start/va_end
+       }
+-      if (!inet_ntop(clientaddr->sin_family, &clientaddr->sin_addr, clientaddr_str, sizeof(clientaddr_str)))
+-              strncpy(clientaddr_str, "???", sizeof(clientaddr_str));
+-      if (!inet_ntop(destaddr->sin_family, &destaddr->sin_addr, destaddr_str, sizeof(destaddr_str)))
+-              strncpy(destaddr_str, "???", sizeof(destaddr_str));
+-
+       if (fmt) {
+-              evbuffer_add_printf(fmt, "[%s:%i->%s:%i]: %s",
+-                              clientaddr_str, ntohs(clientaddr->sin_port),
+-                              destaddr_str, ntohs(destaddr->sin_port),
++              evbuffer_add_printf(fmt, "[%s->%s]: %s",
++                              red_inet_ntop(clientaddr, clientaddr_str, sizeof(clientaddr_str)),
++                              red_inet_ntop(destaddr, destaddr_str, sizeof(destaddr_str)),
+                               orig_fmt);
+       }
+diff --git a/redudp.c b/redudp.c
+index 0a97852..9516a50 100644
+--- a/redudp.c
++++ b/redudp.c
+@@ -436,10 +436,9 @@ static void redudp_pkt_from_socks(int fd, short what, void *_arg)
+               return;
+       if (memcmp(&udprelayaddr, &client->udprelayaddr, sizeof(udprelayaddr)) != 0) {
+-              char buf[INET6_ADDRSTRLEN];
+-              const char *addr = inet_ntop(udprelayaddr.sin_family, &udprelayaddr.sin_addr, buf, sizeof(buf));
+-              redudp_log_error(client, LOG_NOTICE, "Got packet from unexpected address %s:%u.",
+-                               addr ? addr : "?", ntohs(udprelayaddr.sin_port));
++              char buf[RED_INET_ADDRSTRLEN];
++              redudp_log_error(client, LOG_NOTICE, "Got packet from unexpected address %s.",
++                               red_inet_ntop(&udprelayaddr, buf, sizeof(buf)));
+               return;
+       }
+@@ -459,10 +458,14 @@ static void redudp_pkt_from_socks(int fd, short what, void *_arg)
+       if (pkt.header.ip.port != client->instance->config.destaddr.sin_port ||
+           pkt.header.ip.addr != client->instance->config.destaddr.sin_addr.s_addr)
+       {
+-              char buf[INET6_ADDRSTRLEN];
+-              const char *addr = inet_ntop(AF_INET, &pkt.header.ip.addr, buf, sizeof(buf));
+-              redudp_log_error(client, LOG_NOTICE, "Socks5 server relayed packet from unexpected address %s:%u.",
+-                               addr ? addr : "?", ntohs(pkt.header.ip.port));
++              char buf[RED_INET_ADDRSTRLEN];
++              struct sockaddr_in pktaddr = {
++                      .sin_family = AF_INET,
++                      .sin_addr   = { pkt.header.ip.addr },
++                      .sin_port   = pkt.header.ip.port,
++              };
++              redudp_log_error(client, LOG_NOTICE, "Socks5 server relayed packet from unexpected address %s.",
++                               red_inet_ntop(&pktaddr, buf, sizeof(buf)));
+               return;
+       }
+diff --git a/utils.c b/utils.c
+index c6ced51..6e1f3af 100644
+--- a/utils.c
++++ b/utils.c
+@@ -18,6 +18,7 @@
+ #include <errno.h>
+ #include <assert.h>
+ #include <fcntl.h>
++#include <string.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+@@ -42,10 +43,9 @@ int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *inadd
+       }
+       if (pktlen >= buflen) {
+-              char buf[INET6_ADDRSTRLEN];
+-              const char *addr = inet_ntop(inaddr->sin_family, &inaddr->sin_addr, buf, sizeof(buf));
+-              log_error(LOG_WARNING, "wow! Truncated udp packet of size %zd from %s:%u! impossible! dropping it...",
+-                        pktlen, addr ? addr : "?", ntohs(inaddr->sin_port));
++              char buf[RED_INET_ADDRSTRLEN];
++              log_error(LOG_WARNING, "wow! Truncated udp packet of size %zd from %s! impossible! dropping it...",
++                        pktlen, red_inet_ntop(inaddr, buf, sizeof(buf)));
+               return -1;
+       }
+@@ -176,4 +176,33 @@ int red_is_socket_connected_ok(struct bufferevent *buffev)
+       }
+ }
++char *red_inet_ntop(const struct sockaddr_in* sa, char* buffer, size_t buffer_size)
++{
++      const char *retval = 0;
++      size_t len = 0;
++      uint16_t port;
++      const char placeholder[] = "???:???";
++
++      assert(buffer_size >= sizeof(placeholder));
++
++      memset(buffer, buffer_size, 0);
++      if (sa->sin_family == AF_INET) {
++              retval = inet_ntop(AF_INET, &sa->sin_addr, buffer, buffer_size);
++              port = ((struct sockaddr_in*)sa)->sin_port;
++      }
++      else if (sa->sin_family == AF_INET6) {
++              retval = inet_ntop(AF_INET6, &((const struct sockaddr_in6*)sa)->sin6_addr, buffer, buffer_size);
++              port = ((struct sockaddr_in6*)sa)->sin6_port;
++      }
++      if (retval) {
++              assert(retval == buffer);
++              len = strlen(retval);
++              snprintf(buffer + len, buffer_size - len, ":%d", ntohs(port));
++      }
++      else {
++              strcpy(buffer, placeholder);
++      }
++      return buffer;
++}
++
+ /* vim:set tabstop=4 softtabstop=4 shiftwidth=4: */
+diff --git a/utils.h b/utils.h
+index f691b77..d3af00f 100644
+--- a/utils.h
++++ b/utils.h
+@@ -57,6 +57,13 @@ int fcntl_nonblock(int fd);
+                               (what) & EVBUFFER_TIMEOUT ? "EVBUFFER_TIMEOUT" : "0", \
+                               (what) & ~(EVBUFFER_READ|EVBUFFER_WRITE|EVBUFFER_EOF|EVBUFFER_ERROR|EVBUFFER_TIMEOUT)
++#if INET6_ADDRSTRLEN < INET_ADDRSTRLEN
++#     error Impossible happens: INET6_ADDRSTRLEN < INET_ADDRSTRLEN
++#else
++#     define RED_INET_ADDRSTRLEN (INET6_ADDRSTRLEN + 1 + 5 + 1) // addr + : + port + \0
++#endif
++char *red_inet_ntop(const struct sockaddr_in* sa, char* buffer, size_t buffer_size);
++
+ /* vim:set tabstop=4 softtabstop=4 shiftwidth=4: */
+ /* vim:set foldmethod=marker foldlevel=32 foldmarker={,}: */
+ #endif /* UTILS_H_SAT_FEB__2_02_24_05_2008 */
+-- 
+1.9.1
+
diff --git a/net/redsocks/patches/0003-Initial-support-for-UDP-TPROXY-redirection.-No-more-.patch b/net/redsocks/patches/0003-Initial-support-for-UDP-TPROXY-redirection.-No-more-.patch
new file mode 100644 (file)
index 0000000..b89f4be
--- /dev/null
@@ -0,0 +1,449 @@
+From 709646d59d96cb73a7e70347f37de9823e4e5f14 Mon Sep 17 00:00:00 2001
+From: Leonid Evdokimov <leon@darkk.net.ru>
+Date: Fri, 13 Apr 2012 01:57:23 +0400
+Subject: [PATCH 03/12] Initial support for UDP + TPROXY redirection. No more
+ dest_ip in redudp.
+
+ * TPROXY requires Linux 2.6.29+ (see man 7 ip[1]).
+ * all redsocks code is running as root to bind to arbitrary port.
+ * Non-Linux and old-Linux builds are broken at the moment.
+
+[1] http://www.kernel.org/doc/man-pages/online/pages/man7/ip.7.html
+---
+ dnstc.c  |   2 +-
+ redudp.c | 197 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ redudp.h |   2 +
+ utils.c  |  43 +++++++++++++-
+ utils.h  |   2 +-
+ 5 files changed, 227 insertions(+), 19 deletions(-)
+
+diff --git a/dnstc.c b/dnstc.c
+index 43881d8..5f9fedd 100644
+--- a/dnstc.c
++++ b/dnstc.c
+@@ -68,7 +68,7 @@ static void dnstc_pkt_from_client(int fd, short what, void *_arg)
+       ssize_t pktlen, outgoing;
+       assert(fd == EVENT_FD(&self->listener));
+-      pktlen = red_recv_udp_pkt(fd, buf.raw, sizeof(buf), &clientaddr);
++      pktlen = red_recv_udp_pkt(fd, buf.raw, sizeof(buf), &clientaddr, NULL);
+       if (pktlen == -1)
+               return;
+diff --git a/redudp.c b/redudp.c
+index 9516a50..262af3e 100644
+--- a/redudp.c
++++ b/redudp.c
+@@ -15,6 +15,7 @@
+  */
+ #include <stdlib.h>
++#include <search.h>
+ #include <string.h>
+ #include <sys/types.h>
+ #include <sys/uio.h>
+@@ -33,30 +34,157 @@
+ #include "redudp.h"
+ #define redudp_log_error(client, prio, msg...) \
+-      redsocks_log_write_plain(__FILE__, __LINE__, __func__, 0, &(client)->clientaddr, &(client)->instance->config.destaddr, prio, ## msg)
++      redsocks_log_write_plain(__FILE__, __LINE__, __func__, 0, &(client)->clientaddr, get_destaddr(client), prio, ## msg)
+ #define redudp_log_errno(client, prio, msg...) \
+-      redsocks_log_write_plain(__FILE__, __LINE__, __func__, 1, &(client)->clientaddr, &(client)->instance->config.destaddr, prio, ## msg)
++      redsocks_log_write_plain(__FILE__, __LINE__, __func__, 1, &(client)->clientaddr, get_destaddr(client), prio, ## msg)
+ static void redudp_pkt_from_socks(int fd, short what, void *_arg);
+ static void redudp_drop_client(redudp_client *client);
+ static void redudp_fini_instance(redudp_instance *instance);
+ static int redudp_fini();
++static int redudp_transparent(int fd);
+ typedef struct redudp_expected_assoc_reply_t {
+       socks5_reply h;
+       socks5_addr_ipv4 ip;
+ } PACKED redudp_expected_assoc_reply;
++struct bound_udp4_key {
++      struct in_addr sin_addr;
++      uint16_t       sin_port;
++};
++
++struct bound_udp4 {
++      struct bound_udp4_key key;
++      int ref;
++      int fd;
++};
++
+ /***********************************************************************
+  * Helpers
+  */
++// TODO: separate binding to privileged process (this operation requires uid-0)
++static void* root_bound_udp4 = NULL; // to avoid two binds to same IP:port
++
++static int bound_udp4_cmp(const void *a, const void *b)
++{
++      return memcmp(a, b, sizeof(struct bound_udp4_key));
++}
++
++static void bound_udp4_mkkey(struct bound_udp4_key *key, const struct sockaddr_in *addr)
++{
++      memset(key, 0, sizeof(*key));
++      key->sin_addr = addr->sin_addr;
++      key->sin_port = addr->sin_port;
++}
++
++static int bound_udp4_get(const struct sockaddr_in *addr)
++{
++      struct bound_udp4_key key;
++      struct bound_udp4 *node, **pnode;
++
++      bound_udp4_mkkey(&key, addr);
++      // I assume, that memory allocation for lookup is awful, so I use
++      // tfind/tsearch pair instead of tsearch/check-result.
++      pnode = tfind(&key, &root_bound_udp4, bound_udp4_cmp);
++      if (pnode) {
++              assert((*pnode)->ref > 0);
++              (*pnode)->ref++;
++              return (*pnode)->fd;
++      }
++
++      node = calloc(1, sizeof(*node));
++      if (!node) {
++              log_errno(LOG_ERR, "calloc");
++              goto fail;
++      }
++
++      node->key = key;
++      node->ref = 1;
++      node->fd = socket(AF_INET, SOCK_DGRAM, 0);
++      if (node->fd == -1) {
++              log_errno(LOG_ERR, "socket");
++              goto fail;
++      }
++
++      if (0 != redudp_transparent(node->fd))
++              goto fail;
++
++      if (0 != bind(node->fd, (struct sockaddr*)addr, sizeof(*addr))) {
++              log_errno(LOG_ERR, "bind");
++              goto fail;
++      }
++
++      pnode = tsearch(node, &root_bound_udp4, bound_udp4_cmp);
++      if (!pnode) {
++              log_errno(LOG_ERR, "tsearch(%p) == %p", node, pnode);
++              goto fail;
++      }
++      assert(node == *pnode);
++
++      return node->fd;
++
++fail:
++      if (node) {
++              if (node->fd != -1)
++                      redsocks_close(node->fd);
++              free(node);
++      }
++      return -1;
++}
++
++static void bound_udp4_put(const struct sockaddr_in *addr)
++{
++      struct bound_udp4_key key;
++      struct bound_udp4 **pnode, *node;
++      void *parent;
++
++      bound_udp4_mkkey(&key, addr);
++      pnode = tfind(&key, &root_bound_udp4, bound_udp4_cmp);
++      assert(pnode && (*pnode)->ref > 0);
++
++      node = *pnode;
++
++      node->ref--;
++      if (node->ref)
++              return;
++
++      parent = tdelete(node, &root_bound_udp4, bound_udp4_cmp);
++      assert(parent);
++
++      redsocks_close(node->fd); // expanding `pnode` to avoid use after free
++      free(node);
++}
++
++static int redudp_transparent(int fd)
++{
++      int on = 1;
++      int error = setsockopt(fd, SOL_IP, IP_TRANSPARENT, &on, sizeof(on));
++      if (error)
++              log_errno(LOG_ERR, "setsockopt(..., SOL_IP, IP_TRANSPARENT)");
++      return error;
++}
++
++static int do_tproxy(redudp_instance* instance)
++{
++      return instance->config.destaddr.sin_addr.s_addr == 0;
++}
++
++static struct sockaddr_in* get_destaddr(redudp_client *client)
++{
++      if (do_tproxy(client->instance))
++              return &client->destaddr;
++      else
++              return &client->instance->config.destaddr;
++}
++
+ static void redudp_fill_preamble(socks5_udp_preabmle *preamble, redudp_client *client)
+ {
+       preamble->reserved = 0;
+       preamble->frag_no = 0; /* fragmentation is not supported */
+       preamble->addrtype = socks5_addrtype_ipv4;
+-      preamble->ip.addr = client->instance->config.destaddr.sin_addr.s_addr;
+-      preamble->ip.port = client->instance->config.destaddr.sin_port;
++      preamble->ip.addr = get_destaddr(client)->sin_addr.s_addr;
++      preamble->ip.port = get_destaddr(client)->sin_port;
+ }
+ static struct evbuffer* socks5_mkmethods_plain_wrapper(void *p)
+@@ -104,6 +232,8 @@ static void redudp_drop_client(redudp_client *client)
+                       redudp_log_errno(client, LOG_ERR, "event_del");
+               redsocks_close(fd);
+       }
++      if (client->sender_fd != -1)
++              bound_udp4_put(&client->destaddr);
+       list_for_each_entry_safe(q, tmp, &client->queue, list) {
+               list_del(&q->list);
+               free(q);
+@@ -344,7 +474,8 @@ static void redudp_relay_connected(struct bufferevent *buffev, void *_arg)
+       redudp_client *client = _arg;
+       int do_password = socks5_is_valid_cred(client->instance->config.login, client->instance->config.password);
+       int error;
+-      redudp_log_error(client, LOG_DEBUG, "<trace>");
++      char relayaddr_str[RED_INET_ADDRSTRLEN];
++      redudp_log_error(client, LOG_DEBUG, "via %s", red_inet_ntop(&client->instance->config.relayaddr, relayaddr_str, sizeof(relayaddr_str)));
+       if (!red_is_socket_connected_ok(buffev)) {
+               redudp_log_errno(client, LOG_NOTICE, "red_is_socket_connected_ok");
+@@ -382,7 +513,7 @@ static void redudp_timeout(int fd, short what, void *_arg)
+       redudp_drop_client(client);
+ }
+-static void redudp_first_pkt_from_client(redudp_instance *self, struct sockaddr_in *clientaddr, char *buf, size_t pktlen)
++static void redudp_first_pkt_from_client(redudp_instance *self, struct sockaddr_in *clientaddr, struct sockaddr_in *destaddr, char *buf, size_t pktlen)
+ {
+       redudp_client *client = calloc(1, sizeof(*client));
+@@ -395,9 +526,13 @@ static void redudp_first_pkt_from_client(redudp_instance *self, struct sockaddr_
+       INIT_LIST_HEAD(&client->queue);
+       client->instance = self;
+       memcpy(&client->clientaddr, clientaddr, sizeof(*clientaddr));
++      if (destaddr)
++              memcpy(&client->destaddr, destaddr, sizeof(client->destaddr));
+       evtimer_set(&client->timeout, redudp_timeout, client);
+       // XXX: self->relay_ss->init(client);
++      client->sender_fd = -1; // it's postponed until socks-server replies to avoid trivial DoS
++
+       client->relay = red_connect_relay(&client->instance->config.relayaddr,
+                                         redudp_relay_connected, redudp_relay_error, client);
+       if (!client->relay)
+@@ -431,7 +566,7 @@ static void redudp_pkt_from_socks(int fd, short what, void *_arg)
+       assert(fd == EVENT_FD(&client->udprelay));
+-      pktlen = red_recv_udp_pkt(fd, pkt.buf, sizeof(pkt.buf), &udprelayaddr);
++      pktlen = red_recv_udp_pkt(fd, pkt.buf, sizeof(pkt.buf), &udprelayaddr, NULL);
+       if (pktlen == -1)
+               return;
+@@ -455,8 +590,8 @@ static void redudp_pkt_from_socks(int fd, short what, void *_arg)
+               return;
+       }
+-      if (pkt.header.ip.port != client->instance->config.destaddr.sin_port ||
+-          pkt.header.ip.addr != client->instance->config.destaddr.sin_addr.s_addr)
++      if (pkt.header.ip.port != get_destaddr(client)->sin_port ||
++          pkt.header.ip.addr != get_destaddr(client)->sin_addr.s_addr)
+       {
+               char buf[RED_INET_ADDRSTRLEN];
+               struct sockaddr_in pktaddr = {
+@@ -472,8 +607,18 @@ static void redudp_pkt_from_socks(int fd, short what, void *_arg)
+       redsocks_time(&client->last_relay_event);
+       redudp_bump_timeout(client);
++      if (do_tproxy(client->instance) && client->sender_fd == -1) {
++              client->sender_fd = bound_udp4_get(&client->destaddr);
++              if (client->sender_fd == -1) {
++                      redudp_log_error(client, LOG_WARNING, "bound_udp4_get failure");
++                      return;
++              }
++      }
++
+       fwdlen = pktlen - sizeof(pkt.header);
+-      outgoing = sendto(EVENT_FD(&client->instance->listener),
++      outgoing = sendto(do_tproxy(client->instance)
++                            ? client->sender_fd
++                            : EVENT_FD(&client->instance->listener),
+                         pkt.buf + sizeof(pkt.header), fwdlen, 0,
+                         (struct sockaddr*)&client->clientaddr, sizeof(client->clientaddr));
+       if (outgoing != fwdlen) {
+@@ -486,18 +631,21 @@ static void redudp_pkt_from_socks(int fd, short what, void *_arg)
+ static void redudp_pkt_from_client(int fd, short what, void *_arg)
+ {
+       redudp_instance *self = _arg;
+-      struct sockaddr_in clientaddr;
++      struct sockaddr_in clientaddr, destaddr, *pdestaddr;
+       char buf[0xFFFF]; // UDP packet can't be larger then that
+       ssize_t pktlen;
+       redudp_client *tmp, *client = NULL;
++      pdestaddr = do_tproxy(self) ? &destaddr : NULL;
++
+       assert(fd == EVENT_FD(&self->listener));
+-      pktlen = red_recv_udp_pkt(fd, buf, sizeof(buf), &clientaddr);
++      pktlen = red_recv_udp_pkt(fd, buf, sizeof(buf), &clientaddr, pdestaddr);
+       if (pktlen == -1)
+               return;
+       // TODO: this lookup may be SLOOOOOW.
+       list_for_each_entry(tmp, &self->clients, list) {
++              // TODO: check destaddr
+               if (0 == memcmp(&clientaddr, &tmp->clientaddr, sizeof(clientaddr))) {
+                       client = tmp;
+                       break;
+@@ -515,7 +663,7 @@ static void redudp_pkt_from_client(int fd, short what, void *_arg)
+               }
+       }
+       else {
+-              redudp_first_pkt_from_client(self, &clientaddr, buf, pktlen);
++              redudp_first_pkt_from_client(self, &clientaddr, pdestaddr, buf, pktlen);
+       }
+ }
+@@ -554,7 +702,6 @@ static int redudp_onenter(parser_section *section)
+       instance->config.relayaddr.sin_family = AF_INET;
+       instance->config.relayaddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+       instance->config.destaddr.sin_family = AF_INET;
+-      instance->config.destaddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+       instance->config.max_pktqueue = 5;
+       instance->config.udp_timeout = 30;
+       instance->config.udp_timeout_stream = 180;
+@@ -614,6 +761,28 @@ static int redudp_init_instance(redudp_instance *instance)
+               goto fail;
+       }
++      if (do_tproxy(instance)) {
++              int on = 1;
++              char buf[RED_INET_ADDRSTRLEN];
++              // iptables TPROXY target does not send packets to non-transparent sockets
++              if (0 != redudp_transparent(fd))
++                      goto fail;
++
++              error = setsockopt(fd, SOL_IP, IP_RECVORIGDSTADDR, &on, sizeof(on));
++              if (error) {
++                      log_errno(LOG_ERR, "setsockopt(listener, SOL_IP, IP_RECVORIGDSTADDR)");
++                      goto fail;
++              }
++
++              log_error(LOG_DEBUG, "redudp @ %s: TPROXY", red_inet_ntop(&instance->config.bindaddr, buf, sizeof(buf)));
++      }
++      else {
++              char buf1[RED_INET_ADDRSTRLEN], buf2[RED_INET_ADDRSTRLEN];
++              log_error(LOG_DEBUG, "redudp @ %s: destaddr=%s",
++                      red_inet_ntop(&instance->config.bindaddr, buf1, sizeof(buf1)),
++                      red_inet_ntop(&instance->config.destaddr, buf2, sizeof(buf2)));
++      }
++
+       error = bind(fd, (struct sockaddr*)&instance->config.bindaddr, sizeof(instance->config.bindaddr));
+       if (error) {
+               log_errno(LOG_ERR, "bind");
+diff --git a/redudp.h b/redudp.h
+index 308bd33..3f1d9d1 100644
+--- a/redudp.h
++++ b/redudp.h
+@@ -24,6 +24,8 @@ typedef struct redudp_client_t {
+       list_head           list;
+       redudp_instance    *instance;
+       struct sockaddr_in  clientaddr;
++      struct sockaddr_in  destaddr;
++      int                 sender_fd; // shared between several clients socket (bound to `destaddr`)
+       struct event        timeout;
+       struct bufferevent *relay;
+       struct event        udprelay;
+diff --git a/utils.c b/utils.c
+index 6e1f3af..afdeea8 100644
+--- a/utils.c
++++ b/utils.c
+@@ -26,17 +26,54 @@
+ #include "utils.h"
+ #include "redsocks.h" // for redsocks_close
+-int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *inaddr)
++int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *inaddr, struct sockaddr_in *toaddr)
+ {
+       socklen_t addrlen = sizeof(*inaddr);
+       ssize_t pktlen;
+-
+-      pktlen = recvfrom(fd, buf, buflen, 0, (struct sockaddr*)inaddr, &addrlen);
++      struct msghdr msg;
++      struct iovec io;
++      char control[1024];
++
++      memset(&msg, 0, sizeof(msg));
++      msg.msg_name = inaddr;
++      msg.msg_namelen = sizeof(*inaddr);
++      msg.msg_iov = &io;
++      msg.msg_iovlen = 1;
++      msg.msg_control = control;
++      msg.msg_controllen = sizeof(control);
++      io.iov_base = buf;
++      io.iov_len = buflen;
++
++      pktlen = recvmsg(fd, &msg, 0);
+       if (pktlen == -1) {
+               log_errno(LOG_WARNING, "recvfrom");
+               return -1;
+       }
++      if (toaddr) {
++              memset(toaddr, 0, sizeof(*toaddr));
++              for (struct cmsghdr* cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
++                      if (
++                              cmsg->cmsg_level == SOL_IP &&
++                              cmsg->cmsg_type == IP_ORIGDSTADDR &&
++                              cmsg->cmsg_len >= CMSG_LEN(sizeof(*toaddr))
++                      ) {
++                              struct sockaddr_in* cmsgaddr = (struct sockaddr_in*)CMSG_DATA(cmsg);
++                              char buf[RED_INET_ADDRSTRLEN];
++                              log_error(LOG_DEBUG, "IP_ORIGDSTADDR: %s", red_inet_ntop(cmsgaddr, buf, sizeof(buf)));
++                              memcpy(toaddr, cmsgaddr, sizeof(*toaddr));
++                      }
++                      else {
++                              log_error(LOG_WARNING, "unexepcted cmsg (level,type) = (%d,%d)",
++                                      cmsg->cmsg_level, cmsg->cmsg_type);
++                      }
++              }
++              if (toaddr->sin_family != AF_INET) {
++                      log_error(LOG_WARNING, "(SOL_IP, IP_ORIGDSTADDR) not found");
++                      return -1;
++              }
++      }
++
+       if (addrlen != sizeof(*inaddr)) {
+               log_error(LOG_WARNING, "unexpected address length %u instead of %zu", addrlen, sizeof(*inaddr));
+               return -1;
+diff --git a/utils.h b/utils.h
+index d3af00f..c2277e9 100644
+--- a/utils.h
++++ b/utils.h
+@@ -44,7 +44,7 @@ char *redsocks_evbuffer_readline(struct evbuffer *buf);
+ struct bufferevent* red_connect_relay(struct sockaddr_in *addr, evbuffercb writecb, everrorcb errorcb, void *cbarg);
+ int red_socket_geterrno(struct bufferevent *buffev);
+ int red_is_socket_connected_ok(struct bufferevent *buffev);
+-int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *inaddr);
++int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *fromaddr, struct sockaddr_in *toaddr);
+ int fcntl_nonblock(int fd);
+-- 
+1.9.1
+
diff --git a/net/redsocks/patches/0004-Fix-transposition-of-memset-parameters.patch b/net/redsocks/patches/0004-Fix-transposition-of-memset-parameters.patch
new file mode 100644 (file)
index 0000000..cb6fa1e
--- /dev/null
@@ -0,0 +1,25 @@
+From b60b492602448b59aea194afd4991910d3613e5c Mon Sep 17 00:00:00 2001
+From: Cody Schafer <jmesmon@gmail.com>
+Date: Tue, 24 Apr 2012 04:33:13 -0500
+Subject: [PATCH 04/12] Fix transposition of memset parameters.
+
+---
+ utils.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/utils.c b/utils.c
+index afdeea8..31c6894 100644
+--- a/utils.c
++++ b/utils.c
+@@ -222,7 +222,7 @@ char *red_inet_ntop(const struct sockaddr_in* sa, char* buffer, size_t buffer_si
+       assert(buffer_size >= sizeof(placeholder));
+-      memset(buffer, buffer_size, 0);
++      memset(buffer, 0, buffer_size);
+       if (sa->sin_family == AF_INET) {
+               retval = inet_ntop(AF_INET, &sa->sin_addr, buffer, buffer_size);
+               port = ((struct sockaddr_in*)sa)->sin_port;
+-- 
+1.9.1
+
diff --git a/net/redsocks/patches/0005-Fix-compilation-on-Ubuntu-10.04-LTS-and-hopefully-De.patch b/net/redsocks/patches/0005-Fix-compilation-on-Ubuntu-10.04-LTS-and-hopefully-De.patch
new file mode 100644 (file)
index 0000000..f0f09aa
--- /dev/null
@@ -0,0 +1,105 @@
+From 18e2b5ed1ffb3e7c5dfec8ff41b3027163f680ed Mon Sep 17 00:00:00 2001
+From: Leonid Evdokimov <leon@darkk.net.ru>
+Date: Wed, 12 Sep 2012 02:05:39 +0400
+Subject: [PATCH 09/12] Fix compilation on Ubuntu 10.04 LTS and (hopefully)
+ Debian squeeze[1]
+
+fixes #28, fixes #22, fixes #24
+[1] current "stable" release
+---
+ libc-compat.h     | 25 +++++++++++++++++++++++++
+ libevent-compat.h | 11 +++++++++++
+ redsocks.c        |  1 +
+ redudp.c          |  1 +
+ utils.c           |  1 +
+ 5 files changed, 39 insertions(+)
+ create mode 100644 libc-compat.h
+ create mode 100644 libevent-compat.h
+
+diff --git a/libc-compat.h b/libc-compat.h
+new file mode 100644
+index 0000000..adcf63b
+--- /dev/null
++++ b/libc-compat.h
+@@ -0,0 +1,25 @@
++#ifndef UUID_67C91670_FCCB_4855_BDF7_609F1EECB8B4
++#define UUID_67C91670_FCCB_4855_BDF7_609F1EECB8B4
++
++/* all these definitions, are included into bits/in.h from libc6-dev 2.15-0ubuntu10
++ * from Ubuntu 12.04 and is not included into libc6-dev 2.11.1-0ubuntu7.10 from
++ * Ubuntu 10.04.
++ * linux/in.h is not included directly because of lots of redefinitions,
++ * extracting single value from linux/in.h is not done because it looks like
++ * autotools reinvention */
++#ifndef IP_ORIGDSTADDR
++#   warning Using hardcoded value for IP_ORIGDSTADDR as libc headers do not define it.
++#   define IP_ORIGDSTADDR 20
++#endif
++
++#ifndef IP_RECVORIGDSTADDR
++#   warning Using hardcoded value for IP_RECVORIGDSTADDR as libc headers do not define it.
++#   define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
++#endif
++
++#ifndef IP_TRANSPARENT
++#   warning Using hardcoded value for IP_TRANSPARENT as libc headers do not define it.
++#   define IP_TRANSPARENT 19
++#endif
++
++#endif // 67C91670_FCCB_4855_BDF7_609F1EECB8B4
+diff --git a/libevent-compat.h b/libevent-compat.h
+new file mode 100644
+index 0000000..a7f1ca1
+--- /dev/null
++++ b/libevent-compat.h
+@@ -0,0 +1,11 @@
++#ifndef UUID_FC148CFA_5ECC_488E_8A62_CD39406C9F1E
++#define UUID_FC148CFA_5ECC_488E_8A62_CD39406C9F1E
++
++/* evutil_socket_t is macros in libevent-2.0, not typedef, libevent-1.4 is
++ * still supported because of Ubuntu 10.04 LTS */
++#ifndef evutil_socket_t
++#   warning Using hardcoded value for evutil_socket_t as libevent headers do not define it.
++#   define evutil_socket_t int
++#endif
++
++#endif // FC148CFA_5ECC_488E_8A62_CD39406C9F1E
+diff --git a/redsocks.c b/redsocks.c
+index ba5eab2..878576f 100644
+--- a/redsocks.c
++++ b/redsocks.c
+@@ -33,6 +33,7 @@
+ #include "base.h"
+ #include "redsocks.h"
+ #include "utils.h"
++#include "libevent-compat.h"
+ #define REDSOCKS_RELAY_HALFBUFF  4096
+diff --git a/redudp.c b/redudp.c
+index 262af3e..05460dc 100644
+--- a/redudp.c
++++ b/redudp.c
+@@ -32,6 +32,7 @@
+ #include "main.h"
+ #include "redsocks.h"
+ #include "redudp.h"
++#include "libc-compat.h"
+ #define redudp_log_error(client, prio, msg...) \
+       redsocks_log_write_plain(__FILE__, __LINE__, __func__, 0, &(client)->clientaddr, get_destaddr(client), prio, ## msg)
+diff --git a/utils.c b/utils.c
+index 31c6894..7de3969 100644
+--- a/utils.c
++++ b/utils.c
+@@ -25,6 +25,7 @@
+ #include "log.h"
+ #include "utils.h"
+ #include "redsocks.h" // for redsocks_close
++#include "libc-compat.h"
+ int red_recv_udp_pkt(int fd, char *buf, size_t buflen, struct sockaddr_in *inaddr, struct sockaddr_in *toaddr)
+ {
+-- 
+1.9.1
+
diff --git a/net/redsocks/patches/0006-fix_default_config_location.patch b/net/redsocks/patches/0006-fix_default_config_location.patch
new file mode 100644 (file)
index 0000000..1994bef
--- /dev/null
@@ -0,0 +1,17 @@
+Description: change the default config file location
+ redsocks by default looks for ./redsocks.conf. Change this to
+ /etc/redsocks.conf for a more deterministic behaviour.
+Author: Apollon Oikonomopoulos <apoikos@gmail.com>
+Forwared: no
+Last-Update: 2013-04-23
+--- a/main.c
++++ b/main.c
+@@ -39,7 +39,7 @@
+       &dnstc_subsys,
+ };
+-static const char *confname = "redsocks.conf";
++static const char *confname = "/etc/redsocks.conf";
+ static const char *pidfile = NULL;
+ static void terminate(int sig, short what, void *_arg)
index 1f120a908fc168f04eae02596d27bad1f7d2ca78..2f7cb4d0f2bf791e0c6f10c98211025eb8e304f0 100644 (file)
@@ -15,7 +15,6 @@ PKG_NAME:=tcpproxy
 PKG_VERSION:=1.1
 PKG_RELEASE:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.spreadspace.org/tcpproxy/releases/
 PKG_MD5SUM:=55126473bcde635f9ee019c6caf19bb7
index 48214831eee8d7773ca54cb6d37ffe5c62e7d7c8..8599c3831051699b72ca3ee91a6d2789e1b0a541 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,9 +8,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=forked-daapd
-PKG_VERSION:=22.2
-PKG_RELEASE:=20150129
-PKG_REV:=77f206c11855d2d84688a6e7cd9c8932e8a89205
+PKG_VERSION:=22.3
+PKG_RELEASE:=20150222
+PKG_REV:=81b0d330691ce22879514af04c7d831bca8a6e19
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
@@ -36,7 +36,7 @@ TITLE:=iTunes (DAAP) server for Apple Remote and AirPlay
 URL:=https://github.com/ejurgensen/forked-daapd
 DEPENDS:=+libgpg-error +libgcrypt +libgdbm +zlib +libexpat +libunistring \
        +libevent2 +libdaemon +libantlr3c +confuse +glib2 +alsa-lib +libffmpeg-full \
-       +mxml +libavl +libavahi-client +sqlite3-cli +libplist +libcurl
+       +mxml +libavahi-client +sqlite3-cli +libplist +libcurl
 endef
 
 define Package/forked-daapd/conffiles
index 43a2688eb491e8046751072dd9f0c4dfb47118c6..e75e2c80c06c00a598a9b84bb35ad256d1249837 100644 (file)
@@ -17,7 +17,6 @@ PKG_MD5SUM:=b691e83b7434c678dffacfa3a027750e
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=GPL LICENSE
 
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_BUILD_DEPENDS:=intltool/host
 
 PKG_FIXUP:=autoreconf
index 1286cd42cbd41a868b075493569f7b387150ecba..385a96beee50905f0d6dcfb99740a9d3f5502a0d 100644 (file)
@@ -11,7 +11,6 @@ PKG_NAME:=upmpdcli
 PKG_VERSION:=0.9.0
 PKG_RELEASE:=2
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.lesbonscomptes.com/upmpdcli/downloads
 PKG_MD5SUM:=0e7b86037f19ea3a08067409af6f6902
index 0e8e4e980902b7e86c0d32746e709d6fe10ff9d1..8f3ea7dccdf68b01d9ff7714142c4a644ac09bf7 100644 (file)
@@ -17,7 +17,6 @@ PKG_SOURCE_URL:=git://git.sv.gnu.org/acl.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 
 PKG_LICENSE:=LGPL-2.1 GPL-2.0
index ad067a91c0134a6c76be0f597bab62cf0acccedb..b32c5e924fa2a101e78f8f7a45543431c2acfafc 100644 (file)
@@ -17,7 +17,6 @@ PKG_SOURCE_URL:=git://git.sv.gnu.org/attr.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 
 PKG_LICENSE:=LGPL-2.1 GPL-2.0
index 7912ded2107c899e0d8727f5260e97f282cf71ea..02e9be07e2e204ce87ebe35bd59cfbec11d48b15 100644 (file)
@@ -15,7 +15,6 @@ PKG_RELEASE:=1
 PKG_SOURCE_URL:=http://dl.cihar.com/gammu/releases/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_MD5SUM:=5bc2508389d9b291ca0b8d4f210d0012
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Vitaly Protsko <villy@sft.ru>
 PKG_LICENCE:=GPL-2.0
 
index df2c91c739e7d4a12fa47a2077b5a6afd6f9604f..f020384786d976956e46b0d0753b8c2ae63c6182 100644 (file)
@@ -17,8 +17,6 @@ PKG_SOURCE_URL:=http://www.issihosts.com/$(PKG_NAME) \
 PKG_MD5SUM:=015ff58cd10607db0e0de60aeca2f5f8
 PKG_LICENSE:=GPLv3
 
-#ensure this is consistent with the dir in the tarball!!!
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
 
 PKG_BUILD_PARALLEL:=1
index 7aa3c8b0e7005fb93802c303354a8bd44464483e..02b8fa01e5c9207e634d13d414dba8b62d776d32 100644 (file)
@@ -19,7 +19,6 @@ PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk