Merge pull request #1109 from kissg1988/vala
authorSteven Barth <steven@midlink.org>
Thu, 2 Apr 2015 06:23:15 +0000 (08:23 +0200)
committerSteven Barth <steven@midlink.org>
Thu, 2 Apr 2015 06:23:15 +0000 (08:23 +0200)
vala: update to 0.28.0

185 files changed:
admin/debootstrap/Makefile
admin/monit/Makefile
admin/monit/patches/001-fix-default-piddir.patch
admin/sudo/Makefile
admin/zabbix/Makefile
devel/diffutils/Makefile
devel/lttng-tools/Makefile
devel/patch/Makefile
lang/lua-penlight/Makefile
lang/luaposix/Makefile
lang/perl/Config.in
lang/perl/Makefile
lang/perl/perlmod.mk
lang/php5/Makefile
lang/python/Makefile
lang/python/files/python-package-bsddb.mk [deleted file]
lang/python/files/python-package-codecs.mk
lang/python/files/python-package-compiler.mk [new file with mode: 0644]
lang/python/files/python-package-ctypes.mk [new file with mode: 0644]
lang/python/files/python-package-db.mk [new file with mode: 0644]
lang/python/files/python-package-dbm.mk [deleted file]
lang/python/files/python-package-decimal.mk [new file with mode: 0644]
lang/python/files/python-package-distutils.mk [new file with mode: 0644]
lang/python/files/python-package-email.mk [new file with mode: 0644]
lang/python/files/python-package-logging.mk [new file with mode: 0644]
lang/python/files/python-package-multiprocessing.mk [new file with mode: 0644]
lang/python/files/python-package-ncurses.mk
lang/python/files/python-package-pydoc.mk
lang/python/files/python-package-unittest.mk [new file with mode: 0644]
lang/python/files/python-package-xml.mk [new file with mode: 0644]
lang/python/files/python-package.mk
lang/python/patches/009-do-not-use-dblib_dir-when-cross-compiling.patch [new file with mode: 0644]
lang/python/patches/010-do-not-add-rt-lib-dirs-when-cross-compiling.patch [new file with mode: 0644]
lang/python3/Makefile
lang/python3/files/python3-package-asyncio.mk [new file with mode: 0644]
lang/python3/files/python3-package-codecs.mk [new file with mode: 0644]
lang/python3/files/python3-package-ctypes.mk [new file with mode: 0644]
lang/python3/files/python3-package-dbm.mk [new file with mode: 0644]
lang/python3/files/python3-package-decimal.mk [new file with mode: 0644]
lang/python3/files/python3-package-distutils.mk [new file with mode: 0644]
lang/python3/files/python3-package-email.mk [new file with mode: 0644]
lang/python3/files/python3-package-gdbm.mk [new file with mode: 0644]
lang/python3/files/python3-package-logging.mk [new file with mode: 0644]
lang/python3/files/python3-package-multiprocessing.mk [new file with mode: 0644]
lang/python3/files/python3-package-ncurses.mk [new file with mode: 0644]
lang/python3/files/python3-package-openssl.mk [new file with mode: 0644]
lang/python3/files/python3-package-pydoc.mk [new file with mode: 0644]
lang/python3/files/python3-package-sqlite3.mk [new file with mode: 0644]
lang/python3/files/python3-package-unittest.mk [new file with mode: 0644]
lang/python3/files/python3-package-xml.mk [new file with mode: 0644]
lang/python3/files/python3-package.mk
lang/python3/patches/001-enable-zlib.patch [new file with mode: 0644]
lang/python3/patches/002-do-not-add-include-dirs-when-cross-compiling.patch [new file with mode: 0644]
lang/python3/patches/003-do-not-run-distutils-tests.patch [new file with mode: 0644]
lang/python3/patches/004-do-not-write-bytes-codes.patch [new file with mode: 0644]
lang/python3/patches/005-fix-libffi-x86-64-configure.patch [new file with mode: 0644]
lang/python3/patches/006-remove-debian-multiarch-support.patch [new file with mode: 0644]
lang/python3/patches/007-distutils-do-not-adjust-path.patch [new file with mode: 0644]
lang/python3/patches/010-do-not-add-rt-lib-dirs-when-cross-compiling.patch [new file with mode: 0644]
lang/python3/patches/110-enable-zlib.patch [deleted file]
lang/python3/patches/120-do-not-add-include-dirs-when-cross-compiling.patch [deleted file]
lang/python3/patches/130-do-not-run-distutils-tests.patch [deleted file]
lang/python3/patches/140-do-not-write-bytes-codes.patch [deleted file]
libs/avahi/Makefile
libs/avahi/files/avahi-daemon.conf
libs/fftw3/Makefile [new file with mode: 0644]
libs/fftw3/patches/001-makefile.patch [new file with mode: 0644]
libs/gdbm/Makefile
libs/libesmtp/Makefile
libs/libmodbus/Makefile
libs/libseccomp/Makefile
libs/libtasn1/Makefile
libs/libxerces-c/Makefile
libs/pcre/Makefile
libs/pthsem/Makefile
libs/sqlite3/Makefile
mail/bogofilter/Makefile
multimedia/mjpg-streamer/Makefile
multimedia/mjpg-streamer/patches/040-Buffer-the-bytesused-variable-from-struct-v4l2_buffe.patch [new file with mode: 0644]
multimedia/mjpg-streamer/patches/041-Stop-leaking-data-via-struct-v4l2_buffer.patch [new file with mode: 0644]
multimedia/mjpg-streamer/patches/050-fix-yuv-capture.patch [new file with mode: 0644]
net/bind/patches/002-autoconf-ar-fix.patch [new file with mode: 0644]
net/cshark/Makefile
net/dmapd/Makefile
net/git/Makefile
net/git/patches/100-convert_builtin.patch
net/git/patches/300-configure_for_crosscompiling [new file with mode: 0644]
net/git/patches/400-imapsend_without_curl.patch [new file with mode: 0644]
net/knxd/Makefile
net/knxd/files/knxd.init
net/linknx/Makefile
net/luci-app-sqm/files/sqm-cbi.lua
net/mdnsresponder/Makefile
net/mdnsresponder/patches/001-cross_compile.patch
net/mdnsresponder/patches/100-linux_fixes.patch
net/mwan3-luci/Makefile
net/mwan3-luci/files/usr/lib/lua/luci/model/cbi/mwan/rule.lua
net/mwan3-luci/files/usr/lib/lua/luci/model/cbi/mwan/ruleconfig.lua
net/mwan3/Makefile
net/mwan3/files/etc/config/mwan3
net/mwan3/files/etc/hotplug.d/iface/15-mwan3
net/mwan3/files/usr/sbin/mwan3
net/net-snmp/Makefile
net/net-snmp/files/snmpd.default [deleted file]
net/net-snmp/files/snmpd.init
net/openconnect/Makefile
net/openconnect/README
net/openssh/Makefile
net/openssh/patches/130-implicit_memset_decl_fix.patch
net/openvswitch/Makefile
net/pen/Makefile
net/prosody/Makefile
net/seafile-seahub/Makefile
net/snort/Makefile
net/spawn-fcgi/Makefile [new file with mode: 0644]
net/sqm-scripts/files/etc/hotplug.d/iface/11-sqm
net/sqm-scripts/files/etc/init.d/sqm
net/sqm-scripts/files/usr/lib/sqm/functions.sh
net/sqm-scripts/files/usr/lib/sqm/run.sh
net/sslh/Makefile
net/sslh/patches/001-no_sslh_select.patch
net/strongswan/Makefile
net/strongswan/patches/001-ikev1-fix.patch [new file with mode: 0644]
net/stunnel/Makefile [new file with mode: 0644]
net/stunnel/files/stunnel.conf [new file with mode: 0644]
net/stunnel/files/stunnel.init [new file with mode: 0644]
net/stunnel/patches/010_fix_getnameinfo.patch [new file with mode: 0644]
net/stunnel/patches/011_disable_ssp_linking.patch [new file with mode: 0644]
net/tor/Makefile
net/transmission/Makefile
net/transmission/patches/010_libtransmission_fallocate64_eglibc.patch
net/transmission/patches/030-fix-musl-build.patch [new file with mode: 0644]
net/udpxy/Makefile
net/udpxy/patches/0001-fix-build-on-Mac-OS-X.patch
net/wavemon/Makefile
net/wget/Makefile
net/wshaper/Makefile
net/wshaper/files/wshaper.iface [new file with mode: 0644]
net/xl2tpd/patches/120-no-bsd-signal-in-musl.patch [new file with mode: 0644]
sound/pianod/Makefile [new file with mode: 0644]
sound/pianod/files/pianod.init [new file with mode: 0644]
sound/pianod/patches/005-Fix_IPV6_socket_handling.patch [new file with mode: 0644]
sound/pianod/patches/010-Configure_add_SSL_options.patch [new file with mode: 0644]
sound/pianod/patches/020-Use_package_config_h_for_all_modules.patch [new file with mode: 0644]
sound/pianod/patches/030-Waitress_add_polarssl_variant.patch [new file with mode: 0644]
sound/pulseaudio/Makefile
utils/bluez/Makefile
utils/bluez/patches/201-readline.patch
utils/btrfs-progs/Makefile
utils/btrfs-progs/patches/001-fix-xattr-h-include-location.patch
utils/collectd/Makefile
utils/collectd/patches/100-rrdtool-add-rrasingle-option.patch
utils/collectd/patches/200-fix-git-describe-error.patch
utils/collectd/patches/900-add-iwinfo-plugin.patch
utils/collectd/patches/905-fix-sigrok-upstream-patch-post-541 [deleted file]
utils/cryptsetup/Makefile
utils/dosfstools/Makefile
utils/flashrom/Config.in [new file with mode: 0644]
utils/flashrom/Makefile
utils/flashrom/flashrom.mk [new file with mode: 0644]
utils/flashrom/patches/0001-fix_internal_bitbang.patch [new file with mode: 0644]
utils/flashrom/patches/100-mipsel_fix.patch [deleted file]
utils/gammu/Makefile
utils/haserl/Makefile
utils/kmod/Makefile
utils/kmod/patches/001-fix_pkgconfig_file.patch [new file with mode: 0644]
utils/lvm2/Makefile
utils/lvm2/patches/001-include_fix.patch
utils/lxc/Makefile
utils/lxc/patches/030-lxc-download.patch [new file with mode: 0644]
utils/lxc/patches/300-fix-lxc-destroy.patch [deleted file]
utils/lxc/patches/300-lxc-destroy.patch [new file with mode: 0644]
utils/mc/Makefile
utils/mmc-utils/Makefile
utils/mmc-utils/patches/001-dont-set-fortify-source-in-makefile.patch [new file with mode: 0644]
utils/nano/Makefile
utils/ntfs-3g/patches/001-fuseint-fix-path-mounted-on-musl.patch [new file with mode: 0644]
utils/open-plc-utils/Makefile
utils/pciutils/Makefile
utils/tar/Makefile [new file with mode: 0644]
utils/taskwarrior/Makefile
utils/tmux/patches/200-usr-local.patch [new file with mode: 0644]
utils/unrar/Makefile
utils/vim/Makefile
utils/zoneinfo/Makefile

index f2e18d5d8554b748254f04ba45d73475bb276572..a55ba353f51d094dff5f47a62fd353fb1f84dd05 100644 (file)
@@ -9,13 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=debootstrap
-PKG_VERSION:=1.0.66
+PKG_VERSION:=1.0.67
 PKG_RELEASE:=1
 PKG_MAINTAINER=Daniel Golle <daniel@makrotopia.org>
 
 PKG_SOURCE:=$(PKG_NAME)-udeb_$(PKG_VERSION)_all.udeb
 PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/d/debootstrap
-PKG_MD5SUM:=bf6370ea0aa80308dfb03a4a35e33ad1
+PKG_MD5SUM:=e7854d4b10ab860f08921525406debdd
 PKG_LICENSE:=Unique
 PKG_LICENSE_FILES:=debian/copyright
 
index bb3cfd09a0d17456dfd2b23760002f3299654bfd..9d5570f9ecb848f1bcab532c9b8884d12f192f1b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=monit
-PKG_VERSION:=5.11
+PKG_VERSION:=5.12.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://mmonit.com/monit/dist
-PKG_MD5SUM:=ff00f39d248ed7068932ed82211da9e6
+PKG_MD5SUM:=1ffde79207270925f6f7df787d19100a
 
 PKG_LICENSE:=AGPL-3.0
 PKG_LICENSE_FILES:=COPYING
index 72163ecb3c2ddd06648b56cbf842f5d8b87b5447..13d6029c292ba5a64a503e75f6cc87c56f30c670 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure
 +++ b/configure
-@@ -13744,14 +13744,7 @@ fi
+@@ -13821,14 +13821,7 @@ fi
  # Find the right directory to put the root-mode PID file in
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking pid file location" >&5
  $as_echo_n "checking pid file location... " >&6; }
index 25a0ff348cbd5649476fd365de773868ebb05543..69ace6060f200287767875138eca627fb2753daa 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sudo
-PKG_VERSION:=1.8.12
+PKG_VERSION:=1.8.13
 PKG_RELEASE:=1
 PKG_LICENSE:=ISC
 PKG_LICENSE_FILES:=doc/LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.sudo.ws/sudo/dist
-PKG_MD5SUM:=87558f3a55c62bc9244b19594f103ffa
+PKG_MD5SUM:=f61577ec330ad1bd504c0e2eec6ea2d8
 
 PKG_INSTALL:=1
 
index c3c618cd1cb0ee609ee0ce38f2c2befa042c06c8..8e084a772a6a75299b226eb163f7ce6f60c097bf 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zabbix
-PKG_VERSION:=2.4.3
+PKG_VERSION:=2.4.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/zabbix
-PKG_MD5SUM:=e8a0699c4e49999a15c63650a2280600
+PKG_MD5SUM:=400a3e2ebec80e2f1fe86d1b32bfd2e1
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
index 33cdc12165dd479d499eae538507ded6b38810e5..b313dafa420e2260c9411a43d47437a3c70e9e22 100644 (file)
@@ -24,7 +24,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/diffutils
   SECTION:=devel
   CATEGORY:=Development
-  DEPENDS:=+USE_EGLIBC:librt
+  DEPENDS:=+USE_GLIBC:librt
   TITLE:=diffutils
   URL:=http://www.gnu.org/software/diffutils/
 endef
index 99269b325856f1397eedbba584fc9e46ad861847..6c902dfceb7712b3ed632e299c8bc5ce20d57343 100644 (file)
@@ -34,6 +34,8 @@ define Package/lttng-tools
   DEPENDS:= +lttng-ust +libpopt +libxml2
 endef
 
+CONFIGURE_ARGS += --disable-kmod
+
 TARGET_LDFLAGS += -lurcu-bp
 
 MAKE_FLAGS += V="$(V)"
index b7119a485669afc6d87939938ddccdda3c694d95..d705a30a1ed608c186e062cab1e234f8e3e7fb2c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=patch
-PKG_VERSION:=2.7.4
+PKG_VERSION:=2.7.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/patch
-PKG_MD5SUM:=abc59498fcdddd44e0d07764aa105fd2
+PKG_MD5SUM:=e3da7940431633fb65a01b91d3b7a27a
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
 
index e06f4c25b7bcb527c27da115bda8343d6c5a9834..89192e29af05edbbb12068987c83d4322c9656bc 100644 (file)
@@ -8,11 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lua-penlight
-PKG_VERSION:=1.3.1
+PKG_VERSION:=1.3.2
 PKG_RELEASE:=1
 PKG_BUILD_DIR:=$(BUILD_DIR)/Penlight-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/stevedonovan/Penlight/archive/
+PKG_MD5SUM:=0315a39834bb6fab07741ec04ede1bf4
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILE:=LICENSE.md
 
index dd4a056716d722e7e612dcc5dfbb69002e78f194..40cddc054e19df01da64866faf121dd18846454a 100644 (file)
@@ -42,7 +42,7 @@ CONFIGURE_VARS += ac_cv_path_LDOC=""
 
 TARGET_CFLAGS += -DLUA_USE_LINUX $(FPIC) -std=gnu99
 
-ifneq ($(CONFIG_USE_EGLIBC),)
+ifneq ($(CONFIG_USE_GLIBC),)
   ifeq ($(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),)
     TARGET_CFLAGS += -DNO_GETLOGIN
   endif
index 11cb5eb1126ec75fcbee79a607d5cf8452d7ef21..f4c4f8870ae4de3d84c0f08161c41e0dc1b24912 100644 (file)
@@ -3,7 +3,7 @@ menu "Configuration"
 
 config PERL_THREADS
     bool "Enable threading support"
-    default y if (mips || mipsel || i386 || i686 || x86_64 || armeb || arm) && (USE_UCLIBC || USE_EGLIBC)
+    default y if (mips || mipsel || i386 || i686 || x86_64 || armeb || arm) && (USE_UCLIBC || USE_GLIBC)
     default n
 
 config PERL_TESTS
index c3fe981f94e1bf1fee8e3ff3238a1d09b4818901..abd327f6200382093f4bf14529dbf84eefc25c1e 100644 (file)
@@ -36,7 +36,7 @@ HOST_BUILD_PARALLEL:=1
 
 # Variables used during configuration/build
 HOST_PERL_PREFIX:=$(STAGING_DIR_HOST)/usr
-ifneq ($(CONFIG_USE_EGLIBC),)
+ifneq ($(CONFIG_USE_GLIBC),)
        EXTRA_LIBS:=bsd
        EXTRA_LIBDIRS:=$(STAGING_DIR)/lib
 endif
@@ -50,7 +50,7 @@ ifdef CONFIG_PERL_THREADS
        PERL_CONFIG_SUFFIX:=-mt
 
        # uclibc doesn't provide crypt_r(). Enable crypt() usage for glibc builds only
-       ifdef CONFIG_USE_EGLIBC
+       ifdef CONFIG_USE_GLIBC
                CRYPT_R_PROTO:=REENTRANT_PROTO_B_CCS
                CRYPT:=define
        else
@@ -79,7 +79,7 @@ define Package/perl
   CATEGORY:=Languages
   TITLE:=The Perl intepreter
   URL:=http://www.perl.com/
-  DEPENDS:=+USE_EGLIBC:libbsd +PERL_THREADS:libpthread
+  DEPENDS:=+USE_GLIBC:libbsd +PERL_THREADS:libpthread
 endef
 
 define Package/perl/description
index 4a4181d28523c9bc5854158099758f861b63b400..5b6ba1655233ccb11e6a99509fc816428d150e09 100644 (file)
@@ -3,7 +3,7 @@
 
 # Build environment
 HOST_PERL_PREFIX:=$(STAGING_DIR_HOST)/usr
-ifneq ($(CONFIG_USE_EGLIBC),)
+ifneq ($(CONFIG_USE_GLIBC),)
        EXTRA_LIBS:=bsd
        EXTRA_LIBDIRS:=$(STAGING_DIR)/lib
 endif
index ccb55f4a55a1289a08b65d4af963ba85b46b3dfd..1092b5cde90ef04a5676148c6b8de90c212c6681 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=5.6.6
+PKG_VERSION:=5.6.7
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_MD5SUM:=b198117ee1d44c8143e030cee15f1b52
+PKG_MD5SUM:=2e4b0534d4b8aa9aabedeef12e7c0aa8
 
 PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
index 9cf476ef3d82f00a811997d922f0159a8796e67e..4a740dcd82e39240a4313da0502613952b9792c8 100644 (file)
@@ -177,7 +177,7 @@ PYTHON_BASE_LIB_FILES:= \
        /usr/lib/python$(PYTHON_VERSION)/UserDict.py \
        /usr/lib/python$(PYTHON_VERSION)/warnings.py
 
-PYTHON_BASE_LIB_FILES+=$(PYTHON_BASE_LIB_FILES)
+PYTHON_LIB_FILES_DEL+=$(PYTHON_BASE_LIB_FILES)
 
 define PyPackage/python-base/filespec
 +|/usr/bin/python$(PYTHON_VERSION)
@@ -209,8 +209,8 @@ define PyPackage/python-base/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON_VERSION).so* $(1)/usr/lib/
 endef
 
-# Dummy rule so that the package gets picked up
-define Package/python/install
+define PyPackage/python/filespec
+-|$(PYTHON_PKG_DIR)
 endef
 
 HOST_CFLAGS+= \
diff --git a/lang/python/files/python-package-bsddb.mk b/lang/python/files/python-package-bsddb.mk
deleted file mode 100644 (file)
index 601ac54..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2006-2015 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Package/python-bsddb
-$(call Package/python/Default)
-  TITLE:=Python $(PYTHON_VERSION) bsddb module
-  DEPENDS:=+python-light +libdb47
-endef
-
-$(eval $(call PyBasePackage,python-bsddb, \
-       /usr/lib/python$(PYTHON_VERSION)/bsddb \
-       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_bsddb.so \
-))
index c84c5fc395d3b7ab828cf1ab3970f723d035c976..d6e183500e9df4757df561687b32eb3c6627c8a6 100644 (file)
@@ -12,6 +12,7 @@ $(call Package/python/Default)
 endef
 
 $(eval $(call PyBasePackage,python-codecs, \
+       /usr/lib/python$(PYTHON_VERSION)/encodings \
        /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_codecs_cn.so \
        /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_codecs_hk.so \
        /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_codecs_iso2022.so \
diff --git a/lang/python/files/python-package-compiler.mk b/lang/python/files/python-package-compiler.mk
new file mode 100644 (file)
index 0000000..fbe8bf2
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-compiler
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) compiler module
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-compiler, \
+       /usr/lib/python$(PYTHON_VERSION)/compiler \
+))
diff --git a/lang/python/files/python-package-ctypes.mk b/lang/python/files/python-package-ctypes.mk
new file mode 100644 (file)
index 0000000..66b3033
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-ctypes
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) ctypes module
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-ctypes, \
+       /usr/lib/python$(PYTHON_VERSION)/ctypes \
+       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ctypes.so \
+       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_ctypes_test.so \
+))
diff --git a/lang/python/files/python-package-db.mk b/lang/python/files/python-package-db.mk
new file mode 100644 (file)
index 0000000..26f35d8
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-db
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) db module
+  DEPENDS:=+python-light +libdb47
+endef
+
+$(eval $(call PyBasePackage,python-db, \
+       /usr/lib/python$(PYTHON_VERSION)/bsddb \
+       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_bsddb.so \
+       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/dbm.so \
+))
diff --git a/lang/python/files/python-package-dbm.mk b/lang/python/files/python-package-dbm.mk
deleted file mode 100644 (file)
index f72c548..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Copyright (C) 2006-2015 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-define Package/python-dbm
-$(call Package/python/Default)
-  TITLE:=Python $(PYTHON_VERSION) dbm module
-  DEPENDS:=+python-light +libdb47
-endef
-
-$(eval $(call PyBasePackage,python-dbm, \
-       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/dbm.so \
-))
diff --git a/lang/python/files/python-package-decimal.mk b/lang/python/files/python-package-decimal.mk
new file mode 100644 (file)
index 0000000..33e3a21
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-decimal
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) decimal module
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-decimal, \
+       /usr/lib/python$(PYTHON_VERSION)/decimal.py \
+))
diff --git a/lang/python/files/python-package-distutils.mk b/lang/python/files/python-package-distutils.mk
new file mode 100644 (file)
index 0000000..f5119fa
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-distutils
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) distutils
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-distutils, \
+       /usr/lib/python$(PYTHON_VERSION)/distutils \
+))
diff --git a/lang/python/files/python-package-email.mk b/lang/python/files/python-package-email.mk
new file mode 100644 (file)
index 0000000..51fa8d1
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-email
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) email module
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-email, \
+       /usr/lib/python$(PYTHON_VERSION)/email \
+))
diff --git a/lang/python/files/python-package-logging.mk b/lang/python/files/python-package-logging.mk
new file mode 100644 (file)
index 0000000..f45de35
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-logging
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) logging module
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-logging, \
+       /usr/lib/python$(PYTHON_VERSION)/logging \
+))
diff --git a/lang/python/files/python-package-multiprocessing.mk b/lang/python/files/python-package-multiprocessing.mk
new file mode 100644 (file)
index 0000000..2a9f5b1
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-multiprocessing
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) multiprocessing
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-multiprocessing, \
+       /usr/lib/python$(PYTHON_VERSION)/multiprocessing \
+       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_multiprocessing.so \
+))
index a5ff200405b2f075dd5d0b7d51a81a65ebc0d563..04751ef8373849bdb0c641e04b6c9a6ca396e598 100644 (file)
@@ -12,6 +12,7 @@ $(call Package/python/Default)
 endef
 
 $(eval $(call PyBasePackage,python-ncurses, \
+       /usr/lib/python$(PYTHON_VERSION)/curses \
        /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_curses.so \
        /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_curses_panel.so \
 ))
index 0df3cfd169755b87f4b31a8db10cd47bb7d9356b..ca27f9b36b45c0464d489fbfedef0fbb077f0df7 100644 (file)
@@ -12,6 +12,7 @@ $(call Package/python/Default)
 endef
 
 $(eval $(call PyBasePackage,python-pydoc, \
+       /usr/lib/python$(PYTHON_VERSION)/doctest.py \
        /usr/lib/python$(PYTHON_VERSION)/pydoc.py \
        /usr/lib/python$(PYTHON_VERSION)/pydoc_data \
 ))
diff --git a/lang/python/files/python-package-unittest.mk b/lang/python/files/python-package-unittest.mk
new file mode 100644 (file)
index 0000000..6e1ab55
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-unittest
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) unittest module
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-unittest, \
+       /usr/lib/python$(PYTHON_VERSION)/unittest \
+))
diff --git a/lang/python/files/python-package-xml.mk b/lang/python/files/python-package-xml.mk
new file mode 100644 (file)
index 0000000..69074cc
--- /dev/null
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python-xml
+$(call Package/python/Default)
+  TITLE:=Python $(PYTHON_VERSION) xml libs
+  DEPENDS:=+python-light
+endef
+
+$(eval $(call PyBasePackage,python-xml, \
+       /usr/lib/python$(PYTHON_VERSION)/xml \
+       /usr/lib/python$(PYTHON_VERSION)/xmllib.py \
+       /usr/lib/python$(PYTHON_VERSION)/xmlrpclib.py \
+       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/_elementtree.so \
+       /usr/lib/python$(PYTHON_VERSION)/lib-dynload/pyexpat.so \
+))
index 6936a0748bd2953d968b05bae7002c87a2fca170..4895b91a1748d8ad7f60918e490364bf4354fb72 100644 (file)
@@ -33,6 +33,13 @@ define HostPython
        )
 endef
 
+# These configure args are needed in detection of path to Python header files
+# using autotools.
+CONFIGURE_ARGS += \
+       _python_sysroot="$(STAGING_DIR)" \
+       _python_prefix="/usr" \
+       _python_exec_prefix="/usr"
+
 PKG_USE_MIPS16:=0
 # This is required in addition to PKG_USE_MIPS16:=0 because otherwise MIPS16
 # flags are inherited from the Python base package (via sysconfig module)
diff --git a/lang/python/patches/009-do-not-use-dblib_dir-when-cross-compiling.patch b/lang/python/patches/009-do-not-use-dblib_dir-when-cross-compiling.patch
new file mode 100644 (file)
index 0000000..b598097
--- /dev/null
@@ -0,0 +1,34 @@
+diff --git a/setup.py b/setup.py
+index 7868b7b..10ec68f 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1067,6 +1067,7 @@ class PyBuildExt(build_ext):
+                         if db_setup_debug: print "db lib: ", dblib, "not found"
+         except db_found:
++            rt_dblib_dir = None if cross_compiling else dblib_dir
+             if db_setup_debug:
+                 print "bsddb using BerkeleyDB lib:", db_ver, dblib
+                 print "bsddb lib dir:", dblib_dir, " inc dir:", db_incdir
+@@ -1081,7 +1082,7 @@ class PyBuildExt(build_ext):
+             exts.append(Extension('_bsddb', ['_bsddb.c'],
+                                   depends = ['bsddb.h'],
+                                   library_dirs=dblib_dir,
+-                                  runtime_library_dirs=dblib_dir,
++                                  runtime_library_dirs=rt_dblib_dir,
+                                   include_dirs=db_incs,
+                                   libraries=dblibs))
+         else:
+@@ -1292,10 +1293,11 @@ class PyBuildExt(build_ext):
+                             break
+                 elif cand == "bdb":
+                     if db_incs is not None:
++                        rt_dblib_dir = None if cross_compiling else dblib_dir
+                         print "building dbm using bdb"
+                         dbmext = Extension('dbm', ['dbmmodule.c'],
+                                            library_dirs=dblib_dir,
+-                                           runtime_library_dirs=dblib_dir,
++                                           runtime_library_dirs=rt_dblib_dir,
+                                            include_dirs=db_incs,
+                                            define_macros=[
+                                                ('HAVE_BERKDB_H', None),
diff --git a/lang/python/patches/010-do-not-add-rt-lib-dirs-when-cross-compiling.patch b/lang/python/patches/010-do-not-add-rt-lib-dirs-when-cross-compiling.patch
new file mode 100644 (file)
index 0000000..5a106d4
--- /dev/null
@@ -0,0 +1,15 @@
+diff --git a/setup.py b/setup.py
+index 7868b7b..544fa7e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -452,8 +452,9 @@ class PyBuildExt(build_ext):
+         # directly since an inconsistently reproducible issue comes up where
+         # the environment variable is not set even though the value were passed
+         # into configure and stored in the Makefile (issue found on OS X 10.3).
++        rt_lib_dirs = [] if cross_compiling else self.compiler.runtime_library_dirs
+         for env_var, arg_name, dir_list in (
+-                ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
++                ('LDFLAGS', '-R', rt_lib_dirs),
+                 ('LDFLAGS', '-L', self.compiler.library_dirs),
+                 ('CPPFLAGS', '-I', self.compiler.include_dirs)):
+             env_val = sysconfig.get_config_var(env_var)
index d13a9f4da6e2b367562aa98f2cc30f8f1bd02e6f..b9d29aab229be70cd87345139268abc57f878533 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.
@@ -14,12 +14,12 @@ PYTHON_VERSION:=$(PYTHON3_VERSION)
 PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
 
 PKG_NAME:=python3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)
-PKG_MD5SUM:=36fc7327c02c6f12fa24fc9ba78039e3
+PKG_MD5SUM:=7d092d1bba6e17f0d9bd21b49e441dd5
 
 PKG_LICENSE:=PSF
 PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
@@ -57,7 +57,7 @@ endef
 define Package/python3-base
 $(call Package/python3/Default)
   TITLE:=Python $(PYTHON_VERSION) interpreter
-  DEPENDS:=+libpthread +zlib +libffi +libopenssl
+  DEPENDS:=+libpthread +zlib
 endef
 
 define Package/python3-base/description
@@ -65,13 +65,45 @@ define Package/python3-base/description
   for the interpreter to start.
 endef
 
+define Package/python3-light
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON_VERSION) light installation
+  DEPENDS:=+python3-base +libffi +libbz2
+endef
+
+define Package/python3-light/description
+  This package is essentially the python3-base package plus
+  a few of the rarely used (and big) libraries stripped out
+  into separate packages.
+endef
+
+# Define newline here, since it's not defined in OpenWRT
+define newline
+
+
+endef
+
+PYTHON3_LIB_FILES_DEL:=
+PYTHON3_PACKAGES:=
+PYTHON3_SO_SUFFIX:=cpython-34.so
+define Py3BasePackage
+  PYTHON3_PACKAGES+=$(1)
+  PYTHON3_LIB_FILES_DEL+=$(2)
+  define Py3Package/$(1)/filespec
+    $(subst $(space),$(newline),$(foreach lib_file,$(2),+|$(lib_file)))
+  endef
+endef
+
+include ./files/python3-package-*.mk
+
 define Package/python3
 $(call Package/python3/Default)
-  DEPENDS:=+python3-base +libncursesw +libbz2 +libgdbm +libsqlite3 +libdb47
+  DEPENDS:=+python3-light $(foreach package,$(PYTHON3_PACKAGES),+$(package))
 endef
 
 define Package/python3/description
   This package contains the (almost) full Python install.
+  It's python3-light + all other packages.
 endef
 
 MAKE_FLAGS+=\
@@ -79,6 +111,10 @@ MAKE_FLAGS+=\
        LD="$(TARGET_CC)" \
        PGEN=pgen3
 
+ifeq ($(ARCH),i386)
+MAKE_FLAGS+=PYTHON_DECIMAL_WITH_MACHINE=ansi32
+endif
+
 EXTRA_CFLAGS+= \
        -DNDEBUG -fno-inline
 EXTRA_LDFLAGS+= \
@@ -123,29 +159,35 @@ define Build/InstallDev
                $(1)/usr/lib/python$(PYTHON_VERSION)/
 endef
 
+PYTHON3_BASE_LIB_FILES:= \
+       /usr/lib/python$(PYTHON_VERSION)/encodings \
+       /usr/lib/python$(PYTHON_VERSION)/_collections_abc.py \
+       /usr/lib/python$(PYTHON_VERSION)/_sitebuiltins.py \
+       /usr/lib/python$(PYTHON_VERSION)/_sysconfigdata.py \
+       /usr/lib/python$(PYTHON_VERSION)/_weakrefset.py \
+       /usr/lib/python$(PYTHON_VERSION)/abc.py \
+       /usr/lib/python$(PYTHON_VERSION)/codecs.py \
+       /usr/lib/python$(PYTHON_VERSION)/genericpath.py \
+       /usr/lib/python$(PYTHON_VERSION)/io.py \
+       /usr/lib/python$(PYTHON_VERSION)/os.py \
+       /usr/lib/python$(PYTHON_VERSION)/posixpath.py \
+       /usr/lib/python$(PYTHON_VERSION)/site.py \
+       /usr/lib/python$(PYTHON_VERSION)/sysconfig.py \
+       /usr/lib/python$(PYTHON_VERSION)/stat.py
+
+PYTHON3_LIB_FILES_DEL+=$(PYTHON3_BASE_LIB_FILES)
+
 define Py3Package/python3-base/filespec
 +|/usr/bin/python$(PYTHON_VERSION)
-+|/usr/lib/python$(PYTHON_VERSION)/encodings
-+|/usr/lib/python$(PYTHON_VERSION)/_collections_abc.py
-+|/usr/lib/python$(PYTHON_VERSION)/_sitebuiltins.py
-+|/usr/lib/python$(PYTHON_VERSION)/_sysconfigdata.py
-+|/usr/lib/python$(PYTHON_VERSION)/_weakrefset.py
-+|/usr/lib/python$(PYTHON_VERSION)/abc.py
-+|/usr/lib/python$(PYTHON_VERSION)/codecs.py
-+|/usr/lib/python$(PYTHON_VERSION)/genericpath.py
-+|/usr/lib/python$(PYTHON_VERSION)/io.py
-+|/usr/lib/python$(PYTHON_VERSION)/os.py
-+|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
-+|/usr/lib/python$(PYTHON_VERSION)/site.py
-+|/usr/lib/python$(PYTHON_VERSION)/sysconfig.py
-+|/usr/lib/python$(PYTHON_VERSION)/stat.py
+$(subst $(space),$(newline),$(foreach lib_file,$(PYTHON3_BASE_LIB_FILES),+|$(lib_file)))
 endef
 
-define Py3Package/python3/filespec
+define Py3Package/python3-light/filespec
 +|/usr/lib/python$(PYTHON_VERSION)
 -|/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION)
 -|/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)/tkinter
@@ -157,6 +199,8 @@ define Py3Package/python3/filespec
 -|/usr/lib/python$(PYTHON_VERSION)/webbrowser.py
 -|/usr/lib/python$(PYTHON_VERSION)/*/test
 -|/usr/lib/python$(PYTHON_VERSION)/*/tests
+-|/usr/lib/python$(PYTHON_VERSION)/_osx_support.py
+$(subst $(space),$(newline),$(foreach lib_file,$(PYTHON3_LIB_FILES_DEL),-|$(lib_file)))
 endef
 
 define Py3Package/python3-base/install
@@ -167,6 +211,14 @@ define Py3Package/python3-base/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON_VERSION).so* $(1)/usr/lib/
 endef
 
+define Py3Package/python3/filespec
+-|$(PYTHON3_PKG_DIR)
+endef
+
+HOST_CFLAGS+= \
+       -I/usr/include/ncursesw \
+       -I/usr/include/ncurses
+
 HOST_CONFIGURE_ARGS+= \
        --without-cxx-main \
        --without-pymalloc \
@@ -174,7 +226,7 @@ HOST_CONFIGURE_ARGS+= \
        --prefix=$(STAGING_DIR_HOST) \
        --with-ensurepip=upgrade \
        CONFIG_SITE= \
-       OPT="$(HOST_CFLAGS)"
+       CFLAGS="$(HOST_CFLAGS)"
 
 define Host/Compile
        +$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) python Parser/pgen
@@ -189,8 +241,15 @@ endef
 
 $(eval $(call HostBuild))
 
+$(foreach package, $(PYTHON3_PACKAGES),  \
+       $(eval $(call Py3Package,$(package))) \
+       $(eval $(call BuildPackage,$(package))) \
+)
+
 $(eval $(call Py3Package,python3-base))
+$(eval $(call Py3Package,python3-light))
 $(eval $(call Py3Package,python3))
 
 $(eval $(call BuildPackage,python3-base))
+$(eval $(call BuildPackage,python3-light))
 $(eval $(call BuildPackage,python3))
diff --git a/lang/python3/files/python3-package-asyncio.mk b/lang/python3/files/python3-package-asyncio.mk
new file mode 100644 (file)
index 0000000..1d2faab
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-asyncio
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) asyncio module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-asyncio, \
+       /usr/lib/python$(PYTHON3_VERSION)/asyncio \
+))
diff --git a/lang/python3/files/python3-package-codecs.mk b/lang/python3/files/python3-package-codecs.mk
new file mode 100644 (file)
index 0000000..66101e1
--- /dev/null
@@ -0,0 +1,22 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-codecs
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) codecs + unicode support
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-codecs, \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_cn.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_hk.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_iso2022.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_jp.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_kr.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_tw.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/unicodedata.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-ctypes.mk b/lang/python3/files/python3-package-ctypes.mk
new file mode 100644 (file)
index 0000000..97c2c76
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-ctypes
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) ctypes module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-ctypes, \
+       /usr/lib/python$(PYTHON3_VERSION)/ctypes \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ctypes.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ctypes_test.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-dbm.mk b/lang/python3/files/python3-package-dbm.mk
new file mode 100644 (file)
index 0000000..ed343d8
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-dbm
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) dbm module
+  DEPENDS:=+python3-light +libdb47
+endef
+
+$(eval $(call Py3BasePackage,python3-dbm, \
+       /usr/lib/python$(PYTHON3_VERSION)/dbm \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_dbm.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-decimal.mk b/lang/python3/files/python3-package-decimal.mk
new file mode 100644 (file)
index 0000000..81ecbb0
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-decimal
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) decimal module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-decimal, \
+       /usr/lib/python$(PYTHON3_VERSION)/decimal.py \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_decimal.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-distutils.mk b/lang/python3/files/python3-package-distutils.mk
new file mode 100644 (file)
index 0000000..65f4b5a
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-distutils
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) distutils module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-distutils, \
+       /usr/lib/python$(PYTHON3_VERSION)/distutils \
+))
diff --git a/lang/python3/files/python3-package-email.mk b/lang/python3/files/python3-package-email.mk
new file mode 100644 (file)
index 0000000..dae3519
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-email
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) email module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-email, \
+       /usr/lib/python$(PYTHON3_VERSION)/email \
+))
diff --git a/lang/python3/files/python3-package-gdbm.mk b/lang/python3/files/python3-package-gdbm.mk
new file mode 100644 (file)
index 0000000..cc92913
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-gdbm
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) gdbm module
+  DEPENDS:=+python3-light +libgdbm
+endef
+
+$(eval $(call Py3BasePackage,python3-gdbm, \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_gdbm.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-logging.mk b/lang/python3/files/python3-package-logging.mk
new file mode 100644 (file)
index 0000000..4cd6ea9
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-logging
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) logging module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-logging, \
+       /usr/lib/python$(PYTHON3_VERSION)/logging \
+))
diff --git a/lang/python3/files/python3-package-multiprocessing.mk b/lang/python3/files/python3-package-multiprocessing.mk
new file mode 100644 (file)
index 0000000..784aabb
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-multiprocessing
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) multiprocessing
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-multiprocessing, \
+       /usr/lib/python$(PYTHON3_VERSION)/multiprocessing \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_multiprocessing.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-ncurses.mk b/lang/python3/files/python3-package-ncurses.mk
new file mode 100644 (file)
index 0000000..74bedfe
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-ncurses
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) ncurses module
+  DEPENDS:=+python3-light +libncursesw
+endef
+
+$(eval $(call Py3BasePackage,python3-ncurses, \
+       /usr/lib/python$(PYTHON3_VERSION)/curses \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_curses.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_curses_panel.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-openssl.mk b/lang/python3/files/python3-package-openssl.mk
new file mode 100644 (file)
index 0000000..255d580
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-openssl
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) SSL module
+  DEPENDS:=+python3-light +libopenssl
+endef
+
+$(eval $(call Py3BasePackage,python3-openssl, \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_hashlib.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ssl.$(PYTHON3_SO_SUFFIX) \
+))
diff --git a/lang/python3/files/python3-package-pydoc.mk b/lang/python3/files/python3-package-pydoc.mk
new file mode 100644 (file)
index 0000000..7ed8c21
--- /dev/null
@@ -0,0 +1,18 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-pydoc
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) pydoc module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-pydoc, \
+       /usr/lib/python$(PYTHON3_VERSION)/doctest.py \
+       /usr/lib/python$(PYTHON3_VERSION)/pydoc.py \
+       /usr/lib/python$(PYTHON3_VERSION)/pydoc_data \
+))
diff --git a/lang/python3/files/python3-package-sqlite3.mk b/lang/python3/files/python3-package-sqlite3.mk
new file mode 100644 (file)
index 0000000..4b097a3
--- /dev/null
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-sqlite3
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) sqlite3 module
+  DEPENDS:=+python3-light +libsqlite3
+endef
+
+$(eval $(call Py3BasePackage,python3-sqlite3, \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_sqlite3.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/sqlite3 \
+))
diff --git a/lang/python3/files/python3-package-unittest.mk b/lang/python3/files/python3-package-unittest.mk
new file mode 100644 (file)
index 0000000..6d3643a
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-unittest
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) unittest module
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-unittest, \
+       /usr/lib/python$(PYTHON3_VERSION)/unittest \
+))
diff --git a/lang/python3/files/python3-package-xml.mk b/lang/python3/files/python3-package-xml.mk
new file mode 100644 (file)
index 0000000..e734f0c
--- /dev/null
@@ -0,0 +1,19 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Package/python3-xml
+$(call Package/python3/Default)
+  TITLE:=Python $(PYTHON3_VERSION) xml libs
+  DEPENDS:=+python3-light
+endef
+
+$(eval $(call Py3BasePackage,python3-xml, \
+       /usr/lib/python$(PYTHON3_VERSION)/xml \
+       /usr/lib/python$(PYTHON3_VERSION)/xmlrpc \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_elementtree.$(PYTHON3_SO_SUFFIX) \
+       /usr/lib/python$(PYTHON3_VERSION)/lib-dynload/pyexpat.$(PYTHON3_SO_SUFFIX) \
+))
index b28ec58335bea02544259033e136acdbe14b3386..e76dc0bc81ba3b26d3c4d78ce445db77d365e032 100644 (file)
@@ -6,7 +6,7 @@
 #
 
 PYTHON3_VERSION:=3.4
-PYTHON3_VERSION_MICRO:=2
+PYTHON3_VERSION_MICRO:=3
 
 PYTHON3_DIR:=$(STAGING_DIR)/usr
 PYTHON3_BIN_DIR:=$(PYTHON3_DIR)/bin
diff --git a/lang/python3/patches/001-enable-zlib.patch b/lang/python3/patches/001-enable-zlib.patch
new file mode 100644 (file)
index 0000000..780831e
--- /dev/null
@@ -0,0 +1,25 @@
+From 6eeab87bc852481e599325549c854b701bf2e39f Mon Sep 17 00:00:00 2001
+From: Alexandru Ardelean <aa@ocedo.com>
+Date: Thu, 25 Sep 2014 18:18:29 +0300
+Subject: [PATCH] enable zlib
+
+---
+ Modules/Setup.dist | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Modules/Setup.dist b/Modules/Setup.dist
+index 01fb85f..01ac492 100644
+--- a/Modules/Setup.dist
++++ b/Modules/Setup.dist
+@@ -358,7 +358,7 @@ _symtable symtablemodule.c
+ # Andrew Kuchling's zlib module.
+ # This require zlib 1.1.3 (or later).
+ # See http://www.gzip.org/zlib/
+-#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
++zlib zlibmodule.c -lz
+ # Interface to the Expat XML parser
+ #
+-- 
+1.8.4.5
+
diff --git a/lang/python3/patches/002-do-not-add-include-dirs-when-cross-compiling.patch b/lang/python3/patches/002-do-not-add-include-dirs-when-cross-compiling.patch
new file mode 100644 (file)
index 0000000..44be1c8
--- /dev/null
@@ -0,0 +1,14 @@
+diff --git a/setup.py b/setup.py
+index 93f390f..ace1494 100644
+--- a/setup.py
++++ b/setup.py
+@@ -461,7 +461,8 @@ class PyBuildExt(build_ext):
+                         add_dir_to_list(dir_list, directory)
+         if os.path.normpath(sys.base_prefix) != '/usr' \
+-                and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
++                and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
++                and not cross_compiling:
+             # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
+             # (PYTHONFRAMEWORK is set) to avoid # linking problems when
+             # building a framework with different architectures than
diff --git a/lang/python3/patches/003-do-not-run-distutils-tests.patch b/lang/python3/patches/003-do-not-run-distutils-tests.patch
new file mode 100644 (file)
index 0000000..0291eb1
--- /dev/null
@@ -0,0 +1,37 @@
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index f36c11d..f2b6c71 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1217,32 +1217,6 @@ libinstall:     build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+               done; \
+       done
+       $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
+-      if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
+-              $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+-                      $(DESTDIR)$(LIBDEST)/distutils/tests ; \
+-      fi
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
+-              -d $(LIBDEST) -f \
+-              -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+-              $(DESTDIR)$(LIBDEST)
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
+-              -d $(LIBDEST) -f \
+-              -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+-              $(DESTDIR)$(LIBDEST)
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
+-              -d $(LIBDEST)/site-packages -f \
+-              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
+-              -d $(LIBDEST)/site-packages -f \
+-              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
+ # Create the PLATDIR source directory, if one wasn't distributed..
+ $(srcdir)/Lib/$(PLATDIR):
diff --git a/lang/python3/patches/004-do-not-write-bytes-codes.patch b/lang/python3/patches/004-do-not-write-bytes-codes.patch
new file mode 100644 (file)
index 0000000..f624d58
--- /dev/null
@@ -0,0 +1,22 @@
+diff --git a/Python/pythonrun.c b/Python/pythonrun.c
+index 0327830..df41cda 100644
+--- a/Python/pythonrun.c
++++ b/Python/pythonrun.c
+@@ -124,7 +124,7 @@ int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
+ int Py_InspectFlag; /* Needed to determine whether to exit at SystemExit */
+ int Py_NoSiteFlag; /* Suppress 'import site' */
+ int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */
+-int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */
++int Py_DontWriteBytecodeFlag = 1; /* Suppress writing bytecode files (*.py[co]) */
+ int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */
+ int Py_FrozenFlag; /* Needed by getpath.c */
+ int Py_IgnoreEnvironmentFlag; /* e.g. PYTHONPATH, PYTHONHOME */
+@@ -350,7 +350,7 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)
+     if ((p = Py_GETENV("PYTHONOPTIMIZE")) && *p != '\0')
+         Py_OptimizeFlag = add_flag(Py_OptimizeFlag, p);
+     if ((p = Py_GETENV("PYTHONDONTWRITEBYTECODE")) && *p != '\0')
+-        Py_DontWriteBytecodeFlag = add_flag(Py_DontWriteBytecodeFlag, p);
++        Py_DontWriteBytecodeFlag = atoi(p);
+     /* The variable is only tested for existence here; _PyRandom_Init will
+        check its value further. */
+     if ((p = Py_GETENV("PYTHONHASHSEED")) && *p != '\0')
diff --git a/lang/python3/patches/005-fix-libffi-x86-64-configure.patch b/lang/python3/patches/005-fix-libffi-x86-64-configure.patch
new file mode 100644 (file)
index 0000000..ea062a3
--- /dev/null
@@ -0,0 +1,31 @@
+diff --git a/Modules/_ctypes/libffi/configure b/Modules/_ctypes/libffi/configure
+index 75f62a7..4d6c9f2 100755
+--- a/Modules/_ctypes/libffi/configure
++++ b/Modules/_ctypes/libffi/configure
+@@ -17257,20 +17257,12 @@ case "$host" in
+       fi
+       ;;
+-  i?86-*-* | x86_64-*-*)
+-      TARGETDIR=x86
+-      if test $ac_cv_sizeof_size_t = 4; then
+-        case "$host" in
+-          *-gnux32)
+-            TARGET=X86_64
+-            ;;
+-          *)
+-            TARGET=X86
+-            ;;
+-          esac
+-      else
+-        TARGET=X86_64;
+-      fi
++  i?86-*-*)
++      TARGET=X86; TARGETDIR=x86
++      ;;
++
++  x86_64-*-*)
++      TARGET=X86_64; TARGETDIR=x86
+       ;;
+   ia64*-*-*)
diff --git a/lang/python3/patches/006-remove-debian-multiarch-support.patch b/lang/python3/patches/006-remove-debian-multiarch-support.patch
new file mode 100644 (file)
index 0000000..52d52b9
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/setup.py b/setup.py
+index 7868b7b..9ae0ef2 100644
+--- a/setup.py
++++ b/setup.py
+@@ -444,7 +444,6 @@ class PyBuildExt(build_ext):
+             add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
+         if cross_compiling:
+             self.add_gcc_paths()
+-        self.add_multiarch_paths()
+         # Add paths specified in the environment variables LDFLAGS and
+         # CPPFLAGS for header and library files.
diff --git a/lang/python3/patches/007-distutils-do-not-adjust-path.patch b/lang/python3/patches/007-distutils-do-not-adjust-path.patch
new file mode 100644 (file)
index 0000000..49fe926
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/Lib/distutils/command/build_scripts.py
++++ b/Lib/distutils/command/build_scripts.py
+@@ -89,6 +89,7 @@ class build_scripts (Command):
+                     adjust = 1
+                     post_interp = match.group(1) or ''
++            adjust = 0
+             if adjust:
+                 log.info("copying and adjusting %s -> %s", script,
+                          self.build_dir)
diff --git a/lang/python3/patches/010-do-not-add-rt-lib-dirs-when-cross-compiling.patch b/lang/python3/patches/010-do-not-add-rt-lib-dirs-when-cross-compiling.patch
new file mode 100644 (file)
index 0000000..5a106d4
--- /dev/null
@@ -0,0 +1,15 @@
+diff --git a/setup.py b/setup.py
+index 7868b7b..544fa7e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -452,8 +452,9 @@ class PyBuildExt(build_ext):
+         # directly since an inconsistently reproducible issue comes up where
+         # the environment variable is not set even though the value were passed
+         # into configure and stored in the Makefile (issue found on OS X 10.3).
++        rt_lib_dirs = [] if cross_compiling else self.compiler.runtime_library_dirs
+         for env_var, arg_name, dir_list in (
+-                ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
++                ('LDFLAGS', '-R', rt_lib_dirs),
+                 ('LDFLAGS', '-L', self.compiler.library_dirs),
+                 ('CPPFLAGS', '-I', self.compiler.include_dirs)):
+             env_val = sysconfig.get_config_var(env_var)
diff --git a/lang/python3/patches/110-enable-zlib.patch b/lang/python3/patches/110-enable-zlib.patch
deleted file mode 100644 (file)
index 780831e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From 6eeab87bc852481e599325549c854b701bf2e39f Mon Sep 17 00:00:00 2001
-From: Alexandru Ardelean <aa@ocedo.com>
-Date: Thu, 25 Sep 2014 18:18:29 +0300
-Subject: [PATCH] enable zlib
-
----
- Modules/Setup.dist | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Modules/Setup.dist b/Modules/Setup.dist
-index 01fb85f..01ac492 100644
---- a/Modules/Setup.dist
-+++ b/Modules/Setup.dist
-@@ -358,7 +358,7 @@ _symtable symtablemodule.c
- # Andrew Kuchling's zlib module.
- # This require zlib 1.1.3 (or later).
- # See http://www.gzip.org/zlib/
--#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
-+zlib zlibmodule.c -lz
- # Interface to the Expat XML parser
- #
--- 
-1.8.4.5
-
diff --git a/lang/python3/patches/120-do-not-add-include-dirs-when-cross-compiling.patch b/lang/python3/patches/120-do-not-add-include-dirs-when-cross-compiling.patch
deleted file mode 100644 (file)
index 44be1c8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 93f390f..ace1494 100644
---- a/setup.py
-+++ b/setup.py
-@@ -461,7 +461,8 @@ class PyBuildExt(build_ext):
-                         add_dir_to_list(dir_list, directory)
-         if os.path.normpath(sys.base_prefix) != '/usr' \
--                and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
-+                and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
-+                and not cross_compiling:
-             # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
-             # (PYTHONFRAMEWORK is set) to avoid # linking problems when
-             # building a framework with different architectures than
diff --git a/lang/python3/patches/130-do-not-run-distutils-tests.patch b/lang/python3/patches/130-do-not-run-distutils-tests.patch
deleted file mode 100644 (file)
index 0291eb1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index f36c11d..f2b6c71 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -1217,32 +1217,6 @@ libinstall:     build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
-               done; \
-       done
-       $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
--      if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
--              $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
--                      $(DESTDIR)$(LIBDEST)/distutils/tests ; \
--      fi
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
--              -d $(LIBDEST) -f \
--              -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
--              $(DESTDIR)$(LIBDEST)
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
--              -d $(LIBDEST) -f \
--              -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
--              $(DESTDIR)$(LIBDEST)
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
--              -d $(LIBDEST)/site-packages -f \
--              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
--              -d $(LIBDEST)/site-packages -f \
--              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
--              $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
- # Create the PLATDIR source directory, if one wasn't distributed..
- $(srcdir)/Lib/$(PLATDIR):
diff --git a/lang/python3/patches/140-do-not-write-bytes-codes.patch b/lang/python3/patches/140-do-not-write-bytes-codes.patch
deleted file mode 100644 (file)
index f624d58..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/Python/pythonrun.c b/Python/pythonrun.c
-index 0327830..df41cda 100644
---- a/Python/pythonrun.c
-+++ b/Python/pythonrun.c
-@@ -124,7 +124,7 @@ int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
- int Py_InspectFlag; /* Needed to determine whether to exit at SystemExit */
- int Py_NoSiteFlag; /* Suppress 'import site' */
- int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */
--int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */
-+int Py_DontWriteBytecodeFlag = 1; /* Suppress writing bytecode files (*.py[co]) */
- int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */
- int Py_FrozenFlag; /* Needed by getpath.c */
- int Py_IgnoreEnvironmentFlag; /* e.g. PYTHONPATH, PYTHONHOME */
-@@ -350,7 +350,7 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)
-     if ((p = Py_GETENV("PYTHONOPTIMIZE")) && *p != '\0')
-         Py_OptimizeFlag = add_flag(Py_OptimizeFlag, p);
-     if ((p = Py_GETENV("PYTHONDONTWRITEBYTECODE")) && *p != '\0')
--        Py_DontWriteBytecodeFlag = add_flag(Py_DontWriteBytecodeFlag, p);
-+        Py_DontWriteBytecodeFlag = atoi(p);
-     /* The variable is only tested for existence here; _PyRandom_Init will
-        check its value further. */
-     if ((p = Py_GETENV("PYTHONHASHSEED")) && *p != '\0')
index 5f7ac1374a4e8f72e140b247ed94c5260bacbe1d..2d1a64b319b7eaa23397dc9f2aa7ee1b649d7ba0 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=avahi
 PKG_VERSION:=0.6.31
-PKG_RELEASE:=11
+PKG_RELEASE:=12
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://avahi.org/download/
@@ -56,7 +56,7 @@ define Package/libavahi/Default
   SECTION:=libs
   CATEGORY:=Libraries
   PROVIDES:=libavahi
-  DEPENDS:=+libpthread +SSP_SUPPORT:libssp
+  DEPENDS:=+libpthread
 endef
 
 define Package/libavahi/description
@@ -100,6 +100,7 @@ define Package/avahi-nodbus-daemon
   SUBMENU:=IP Addresses and Names
   DEPENDS:=+libavahi-nodbus-support +libexpat +librt +libdaemon
   TITLE+= (daemon)
+  USERID:=avahi=105:avahi=105
 endef
 
 define Package/avahi-daemon/description
@@ -155,7 +156,7 @@ endef
 define Package/avahi-dnsconfd
   $(call Package/avahi/Default)
   SUBMENU:=IP Addresses and Names
-  DEPENDS:=+libavahi +libdaemon +libpthread +SSP_SUPPORT:libssp
+  DEPENDS:=+libavahi +libdaemon +libpthread
   TITLE:=A Unicast DNS server using avahi-daemon
 endef
 
index 4ef64df2a8bcf2167edffc6f020890e7beac1ae4..3ef0788ebcec865a0fd8272f5453bf7be6821ef9 100644 (file)
@@ -2,7 +2,7 @@
 #host-name=foo
 #domain-name=local
 use-ipv4=yes
-use-ipv6=no
+use-ipv6=yes
 check-response-ttl=no
 use-iff-running=no
 
diff --git a/libs/fftw3/Makefile b/libs/fftw3/Makefile
new file mode 100644 (file)
index 0000000..7d31b73
--- /dev/null
@@ -0,0 +1,119 @@
+#
+# Copyright (C) 2007-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:=fftw3
+PKG_VERSION:=3.3.4
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-2.0+
+
+PKG_SOURCE:=fftw-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.fftw.org
+PKG_MD5SUM:=2edab8c06b24feeb3b82bbb3ebf3e7b3
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/fftw-$(PKG_VERSION)
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/fftw3
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=@!avr32 +libpthread
+  VARIANT:=double
+  TITLE:=Fast Fourier transform library
+  URL:=http://www.fftw.org/
+  MAINTAINER:=Vladimir Ulrich <admin@evl.su>
+endef
+
+define Package/fftw3f
+  $(call Package/fftw3)
+  VARIANT:=single
+  TITLE+= (single precision)
+endef
+
+define Package/fftw3l
+  $(call Package/fftw3)
+  DEPENDS:=@BROKEN
+  VARIANT:=long-double
+  TITLE+= (long-double precision)
+endef
+
+define Package/fftw3/description
+       FFTW is a collection of fast C routines for computing the
+       Discrete Fourier Transform in one or more dimensions. It
+       includes complex, real, and parallel transforms, and can
+       handle arbitrary array sizes efficiently.
+endef
+
+define Package/fftw3f/description
+  $(call Package/fftw3/description)
+
+  This package contains the single precision library.
+endef
+
+define Package/fftw3l/description
+  $(call Package/fftw3/description)
+
+  This package contains the long-double precision library.
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+CONFIGURE_ARGS += \
+       --prefix=/usr \
+       --without-libiconv-prefix \
+       --without-libintl-prefix \
+       --enable-shared \
+       --enable-threads \
+       --enable-type-prefix \
+       --disable-debug \
+       --disable-fortran
+
+ifeq ($(BUILD_VARIANT), single)
+CONFIGURE_ARGS += \
+       --enable-single
+endif
+
+ifeq ($(BUILD_VARIANT), long-double)
+CONFIGURE_ARGS += \
+       --enable-long-double
+endif
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" install
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/fftw3.h $(1)/usr/include
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3*.{a,la} $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3*.so* $(1)/usr/lib
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/fftw3/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3.so* $(1)/usr/lib/
+endef
+
+define Package/fftw3f/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3f.so* $(1)/usr/lib/
+endef
+
+define Package/fftw3l/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3l.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,fftw3))
+$(eval $(call BuildPackage,fftw3f))
+$(eval $(call BuildPackage,fftw3l))
diff --git a/libs/fftw3/patches/001-makefile.patch b/libs/fftw3/patches/001-makefile.patch
new file mode 100644 (file)
index 0000000..c5dd857
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -232,7 +232,7 @@ 
+ CTAGS = ctags
+ CSCOPE = cscope
+ DIST_SUBDIRS = support genfft kernel simd-support dft rdft reodft api \
+-      libbench2 . threads tests mpi doc tools m4
++      libbench2 . threads mpi doc tools m4
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ distdir = $(PACKAGE)-$(VERSION)
+ top_distdir = $(distdir)
+@@ -444,7 +444,7 @@
+ #
+ @COMBINED_THREADS_TRUE@CHICKEN_EGG = threads .
+ SUBDIRS = support $(GENFFT) kernel simd-support dft rdft reodft api   \
+-libbench2 $(CHICKEN_EGG) tests mpi doc tools m4
++libbench2 $(CHICKEN_EGG) mpi m4
+ EXTRA_DIST = COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in
+ SIMD_LIBS = \
index d2c4939bc826d28c824ae25d530538d0777e7624..21ecfb2dd3f02d53a59e7c00fbafb639d14661fa 100644 (file)
@@ -19,7 +19,7 @@ PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
 
-PKG_FIXUP:=autoreconf
+PKG_FIXUP:=autoreconf gettext-version
 PKG_REMOVE_FILES:=Makefile compat/Makefile doc/Makefile export/Makefile src/Makefile tests/Makefile
 PKG_BUILD_PARALLEL:=0
 
index cd62696234555a856a33f82117960a9ec6bdd326..fa402c66088600e7b340a7bb063ef4b200d3cbfc 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2014 OpenWrt.org
+# Copyright (C) 2008-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libesmtp
 PKG_VERSION:=1.0.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_MD5SUM:=c4fedc999b6c3820296b0eb92cc2e252
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
@@ -19,6 +19,9 @@ PKG_LICENSE_FILES:=COPYING
 PKG_SOURCE_URL:=http://www.stafford.uklinux.net/libesmtp
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/libesmtp
@@ -29,38 +32,24 @@ define Package/libesmtp
   DEPENDS:=+libpthread
 endef
 
-define Build/Configure
-       $(call Build/Configure/Default,--without-openssl)
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               all install
-endef
+CONFIGURE_ARGS += \
+       --without-openssl
 
 define Build/InstallDev
-       mkdir -p $(STAGING_DIR)/usr/include
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/libesmtp.h $(STAGING_DIR)/usr/include/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/auth-client.h $(STAGING_DIR)/usr/include/
-       $(CP) $(PKG_INSTALL_DIR)/usr/include/auth-plugin.h $(STAGING_DIR)/usr/include/
-       mkdir -p $(STAGING_DIR)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libesmtp.{a,so*} $(STAGING_DIR)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/libesmtp-config $(1)/usr/bin/
+       $(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(1)/usr/bin/libesmtp-config
+
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libesmtp.{a,so*} $(1)/usr/lib/
        $(INSTALL_DIR) $(2)/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/libesmtp-config $(2)/bin/
-       $(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(2)/bin/libesmtp-config
-endef
-
-define Build/UninstallDev
-       rm -rf \
-               $(STAGING_DIR)/usr/include/libesmtp.h \
-               $(STAGING_DIR)/usr/include/auth-client.h \
-               $(STAGING_DIR)/usr/include/auth-plugin.h \
-               $(STAGING_DIR)/usr/lib/libesmtp.{a,so*}
+       $(LN) ../../usr/bin/libesmtp-config $(2)/bin/
 endef
 
 define Package/libesmtp/install
-       mkdir -p $(1)/usr/lib
+       $(INSTALL_DIR)  $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libesmtp.so.* $(1)/usr/lib/
 endef
 
index 5610a094667c5ccd54a610b9ed4d3af45aa56775..65fb00e03f1908821e7a9dd8b1677e8210340c7b 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,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libmodbus
-PKG_VERSION:=3.0.6
+PKG_VERSION:=3.1.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://libmodbus.org/releases
-PKG_MD5SUM:=c80f88b6ca19cabc4ceffc195ca07771
+PKG_MD5SUM:=dd4262f87ed835c4d1e560f8321a222c
 
 PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
 
@@ -36,6 +36,7 @@ define Package/libmodbus/description
   A Modbus library for Linux, Mac OS X, FreeBSD, QNX and Win32.
 endef
 
+CONFIGURE_ARGS += --without-documentation
 TARGET_CFLAGS += $(FPIC)
 
 define Build/InstallDev
index 217c847e089c561eafd8bfd4a0a5305fc9ce1f11..8c40fdcb74d20280103673d1848346246ae96503 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libseccomp
 PKG_VERSION:=2.2.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -21,6 +21,9 @@ PKG_INSTALL:=1
 PKG_LIBTOOL_PATHS:=. lib
 PKG_CHECK_FORMAT_SECURITY:=0
 
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_KERNEL_SECCOMP
+
 include $(INCLUDE_DIR)/package.mk
 
 
@@ -50,10 +53,6 @@ define Package/libseccomp/description
  This package contains the seccomp library.
 endef
 
-define Build/Configure
-       $(call Build/Configure/Default)
-endef
-
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib/pkgconfig
        $(CP) \
index dd106bd1de183adbdd9daa422d7d6f01e2346b33..2b5a2d4b86afb497568dbb1cb9e70fb8bf8c9a30 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtasn1
-PKG_VERSION:=4.2
+PKG_VERSION:=4.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.gnu.org/gnu/libtasn1
-PKG_MD5SUM:=414df906df421dee0a5cf7548788d153
+PKG_MD5SUM:=c26d76d1309dd339365c563076599912
 
 #PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index c2dd0972726f16e6eedbe38823b3631189fd8ab8..e892084ea80491a593cbaebc81aeca97578e7b12 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libxerces-c
-PKG_VERSION:=3.1.1
+PKG_VERSION:=3.1.2
 PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://git.apache.org/xerces-c.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=Xerces-C_3_1_1
+PKG_SOURCE_VERSION:=Xerces-C_3_1_2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
@@ -22,10 +22,11 @@ PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
 
 PKG_BUILD_PARALLEL:=1
-PKG_FIXUP:=libtool
+PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/uclibc++.mk
+include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/package.mk
 
 CONFIGURE_ARGS += \
@@ -34,14 +35,7 @@ CONFIGURE_ARGS += \
        --enable-netaccessor-socket \
        --enable-msgloader-inmemory
 
-TARGET_CFLAGS += \
-       -I$(STAGING_DIR)/usr/lib/libiconv-full/include
-
-TARGET_CPPFLAGS += \
-       -I$(STAGING_DIR)/usr/lib/libiconv-full/include
-
 TARGET_LDFLAGS += \
-       -L$(STAGING_DIR)/usr/lib/libiconv-full/lib \
        -lm
 
 define Package/libxerces-c
@@ -49,7 +43,7 @@ define Package/libxerces-c
   CATEGORY:=Libraries
   TITLE:=Validating XML parser library for C++
   URL:=http://xerces.apache.org/
-  DEPENDS:=$(CXX_DEPENDS) +libc +libiconv +libpthread
+  DEPENDS:=$(CXX_DEPENDS) $(ICONV_DEPENDS) +libc +libpthread
 endef
 
 define Package/libxerces-c-samples
@@ -60,12 +54,6 @@ define Package/libxerces-c-samples
   DEPENDS:=+libxerces-c
 endef
 
-define Build/Configure
-       (cd $(PKG_BUILD_DIR)/$(CONFIGURE_PATH); \
-       ./reconf;)
-       $(call Build/Configure/Default)
-endef
-
 define Package/libxerces-c/description
   Xerces-C++ is a validating XML parser written in a portable subset of
   C++. Xerces-C++ makes it easy to give your application the ability
index 2c708ec861fd5f83af41df46288c4ffaf3eacb7f..007af93d6ffd6377436a60573dff10712e457337 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.
@@ -36,6 +36,11 @@ define Package/libpcre
   TITLE:=A Perl Compatible Regular Expression library
 endef
 
+define Package/libpcre16
+  $(call Package/libpcre/default)
+  TITLE:=A Perl Compatible Regular Expression library (16bit support)
+endef
+
 define Package/libpcrecpp
   $(call Package/libpcre/default)
   TITLE:=C++ wrapper for Perl Compatible Regular Expression library
@@ -47,6 +52,7 @@ TARGET_CFLAGS += $(FPIC)
 CONFIGURE_ARGS += \
        --enable-utf8 \
        --enable-unicode-properties \
+       --enable-pcre16 \
 
 ifneq ($(CONFIG_PACKAGE_libpcrecpp),)
   CONFIGURE_ARGS+= --enable-cpp
@@ -68,7 +74,7 @@ define Build/InstallDev
        $(CP) $(PKG_INSTALL_DIR)/usr/include/pcre*.h $(1)/usr/include/
 
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre*.{a,so*} $(1)/usr/lib//
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre*.{a,so*} $(1)/usr/lib/
 
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpcre*.pc $(1)/usr/lib/pkgconfig/
@@ -77,6 +83,12 @@ endef
 define Package/libpcre/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre{,posix}.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre.so $(1)/usr/lib/
+endef
+
+define Package/libpcre16/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpcre16.so* $(1)/usr/lib/
 endef
 
 define Package/libpcrecpp/install
@@ -85,4 +97,5 @@ define Package/libpcrecpp/install
 endef
 
 $(eval $(call BuildPackage,libpcre))
+$(eval $(call BuildPackage,libpcre16))
 $(eval $(call BuildPackage,libpcrecpp))
index 43fd7aec0d614d5aceafe603d2f9ca4161bf8fcc..6e07e6854cc8c4b49454eb7da10a66b0db3de134 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2014 OpenWrt.org
+# Copyright (C) 2008-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pthsem
 PKG_VERSION:=2.0.8
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
 PKG_LICENSE:=LGPL-2.1+
@@ -37,26 +37,19 @@ define Package/pthsem/description
   pthsem is an extend version, with support for semaphores added. It can be installed parallel to a normal pth.
 endef
 
-MAKE_FLAGS += \
-       OPTIM="$(TARGET_CFLAGS)" \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       DESTDIR="$(PKG_INSTALL_DIR)"
-
 define Build/InstallDev
-       $(INSTALL_DIR) $(2)/bin
-       $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/bin/pthsem-config \
-               $(2)/bin/
-       $(SED) \
-               's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \
-               $(2)/bin/pthsem-config
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pthsem-config $(1)/usr/bin/
+       $(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(1)/usr/bin/pthsem-config
 
        $(INSTALL_DIR) $(1)/usr/include
-       $(CP)   $(PKG_INSTALL_DIR)/usr/include/*.h \
-               $(1)/usr/include/
+       $(CP)   $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/libpthsem.{a,la,so*} \
-               $(1)/usr/lib/
+       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/libpthsem.{a,la,so*} $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/pthsem.pc $(1)/usr/lib/pkgconfig/
+       $(INSTALL_DIR) $(2)/bin
+       $(LN) ../../usr/bin/pthsem-config $(2)/bin/
 endef
 
 define Package/pthsem/install
index 37a4cc760c06441993c2dd5687ce80a219652242..8eda862fd5cc64dd6b67ddf3d1558e1ec2bef9bf 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqlite
-PKG_VERSION:=3080801
+PKG_VERSION:=3080803
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.sqlite.org/2015/
-PKG_MD5SUM:=a6381941ffe8817ba19669ec0c0ede6f
+PKG_MD5SUM:=51272e875879ee893e51070b07c33888
 
 PKG_LICENSE:=PUBLICDOMAIN
 PKG_LICENSE_FILES:=
index de3646b01137dbeed803f36d59ad57b083c95312..d31dfa8c1c742e4f4b233c97493ca8d5350ed4ff 100644 (file)
@@ -35,7 +35,10 @@ define Package/bogofilter/description
        Bogofilter is a fast Bayesian spam filter
 endef
 
-CONFIGURE_ARGS += --disable-unicode
+CONFIGURE_ARGS += \
+       --disable-unicode \
+       --with-libdb-prefix=$(STAGING_DIR) \
+       --with-included-gsl
 
 define Package/bogofilter/install
        $(INSTALL_DIR)  $(1)/etc/ \
index d2e1537d9ff9a778fa74f4b2335cc9cdf314a8ac..0a297d4e67f69cde33d89dca5a7a904517cabcce 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=mjpg-streamer
 PKG_REV:=182
 PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).1.tar.bz2
diff --git a/multimedia/mjpg-streamer/patches/040-Buffer-the-bytesused-variable-from-struct-v4l2_buffe.patch b/multimedia/mjpg-streamer/patches/040-Buffer-the-bytesused-variable-from-struct-v4l2_buffe.patch
new file mode 100644 (file)
index 0000000..a228f42
--- /dev/null
@@ -0,0 +1,87 @@
+From 19202b54698b343a0207d7e213448e32b8e58fc3 Mon Sep 17 00:00:00 2001
+From: Olliver Schinagl <o.schinagl@ultimaker.com>
+Date: Wed, 29 Oct 2014 09:34:41 +0100
+Subject: [PATCH 1/7] Buffer the bytesused variable from struct v4l2_buffer
+
+Starting with kernel versions 3.16, (DE)Queing of buffers has been fixed
+after it was leaking data for ages. in the struct v4l2_buffer is the
+bytesused element which indicates the size of the buffer. This however
+gets cleared whenever the buffer gets requeued and is thus no longer
+valid.
+
+This patch copies the bytesused variable so it is available until the
+next frame captured again.
+
+Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
+---
+ plugins/input_uvc/input_uvc.c | 6 +++---
+ plugins/input_uvc/v4l2uvc.c   | 2 ++
+ plugins/input_uvc/v4l2uvc.h   | 1 +
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/plugins/input_uvc/input_uvc.c b/plugins/input_uvc/input_uvc.c
+index e6c74fd..64f66cb 100644
+--- a/plugins/input_uvc/input_uvc.c
++++ b/plugins/input_uvc/input_uvc.c
+@@ -482,7 +482,7 @@ void *cam_thread(void *arg)
+             exit(EXIT_FAILURE);
+         }
+-        //DBG("received frame of size: %d from plugin: %d\n", pcontext->videoIn->buf.bytesused, pcontext->id);
++        //DBG("received frame of size: %d from plugin: %d\n", pcontext->videoIn->tmpbytesused, pcontext->id);
+         /*
+          * Workaround for broken, corrupted frames:
+@@ -491,7 +491,7 @@ void *cam_thread(void *arg)
+          * For example a VGA (640x480) webcam picture is normally >= 8kByte large,
+          * corrupted frames are smaller.
+          */
+-        if(pcontext->videoIn->buf.bytesused < minimum_size) {
++        if(pcontext->videoIn->tmpbytesused < minimum_size) {
+             DBG("dropping too small frame, assuming it as broken\n");
+             continue;
+         }
+@@ -529,7 +529,7 @@ void *cam_thread(void *arg)
+         } else {
+         #endif
+             //DBG("copying frame from input: %d\n", (int)pcontext->id);
+-            pglobal->in[pcontext->id].size = memcpy_picture(pglobal->in[pcontext->id].buf, pcontext->videoIn->tmpbuffer, pcontext->videoIn->buf.bytesused);
++            pglobal->in[pcontext->id].size = memcpy_picture(pglobal->in[pcontext->id].buf, pcontext->videoIn->tmpbuffer, pcontext->videoIn->tmpbytesused);
+         #ifndef NO_LIBJPEG
+         }
+         #endif
+diff --git a/plugins/input_uvc/v4l2uvc.c b/plugins/input_uvc/v4l2uvc.c
+index c5a5aa4..d11510c 100644
+--- a/plugins/input_uvc/v4l2uvc.c
++++ b/plugins/input_uvc/v4l2uvc.c
+@@ -532,6 +532,7 @@ int uvcGrab(struct vdIn *vd)
+         */
+         memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], vd->buf.bytesused);
++      vd->tmpbytesused = vd->buf.bytesused;
+         if(debug)
+             fprintf(stderr, "bytes in used %d \n", vd->buf.bytesused);
+@@ -570,6 +571,7 @@ int close_v4l2(struct vdIn *vd)
+     if(vd->tmpbuffer)
+         free(vd->tmpbuffer);
+     vd->tmpbuffer = NULL;
++    vd->tmpbytesused = 0;
+     free(vd->framebuffer);
+     vd->framebuffer = NULL;
+     free(vd->videodevice);
+diff --git a/plugins/input_uvc/v4l2uvc.h b/plugins/input_uvc/v4l2uvc.h
+index 022c57e..2c7c8ba 100644
+--- a/plugins/input_uvc/v4l2uvc.h
++++ b/plugins/input_uvc/v4l2uvc.h
+@@ -83,6 +83,7 @@ struct vdIn {
+     struct v4l2_requestbuffers rb;
+     void *mem[NB_BUFFER];
+     unsigned char *tmpbuffer;
++    int tmpbytesused;
+     unsigned char *framebuffer;
+     streaming_state streamingState;
+     int grabmethod;
+-- 
+1.9.1
+
diff --git a/multimedia/mjpg-streamer/patches/041-Stop-leaking-data-via-struct-v4l2_buffer.patch b/multimedia/mjpg-streamer/patches/041-Stop-leaking-data-via-struct-v4l2_buffer.patch
new file mode 100644 (file)
index 0000000..4f45da5
--- /dev/null
@@ -0,0 +1,242 @@
+From 11b28b36a8711b53658e8bbc50435595522f91ba Mon Sep 17 00:00:00 2001
+From: Olliver Schinagl <o.schinagl@ultimaker.com>
+Date: Wed, 29 Oct 2014 11:21:16 +0100
+Subject: [PATCH 2/7] Stop leaking data via struct v4l2_buffer
+
+Before the 3.16 kernel, the v4l2_buffer was leaking data and violating
+its own spec. Since 3.16 this has been corrected and after calling the
+QBUF ioctl, the struct gets cleaned up.
+
+Right now, input_uvc assumes the buffer is valid at all times. This no
+longer being true, this patch removes the v4l2_buffer from the vdIn
+struct. Certain values are still needed outside of this buffer however,
+the length buffer in the buffer array 'mem' and the timestamp. These are
+now stored in the vdIn struct.
+
+All of this is still somewhat hackish, as a) the processing of the image
+should really be done inside the uvcGrab function between the queuing
+and dequeing of the buffers (or separate that into 3 functions, deq, q
+and process and call them from input_uvc). b) we are still copying the
+image using memcpy, which is something we don't really want and defeats
+the purpose of using a mmap in the first place. Changing this however
+requires some heavier re-architecting and in the end, may still not be avoided.
+
+More information about this bug and change can be found on the
+linux-media mailing list[0] with the title uvcvideo fails on 3.16 and
+3.17 kernels.
+
+[0] http://www.spinics.net/lists/linux-media/msg81515.html
+
+Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
+---
+ plugins/input_uvc/input_uvc.c |  6 ++--
+ plugins/input_uvc/v4l2uvc.c   | 64 +++++++++++++++++++++++--------------------
+ plugins/input_uvc/v4l2uvc.h   |  4 ++-
+ 3 files changed, 41 insertions(+), 33 deletions(-)
+
+diff --git a/plugins/input_uvc/input_uvc.c b/plugins/input_uvc/input_uvc.c
+index 64f66cb..64ef56c 100644
+--- a/plugins/input_uvc/input_uvc.c
++++ b/plugins/input_uvc/input_uvc.c
+@@ -500,8 +500,8 @@ void *cam_thread(void *arg)
+         if (pcontext->videoIn->soft_framedrop == 1) {
+             unsigned long last = pglobal->in[pcontext->id].timestamp.tv_sec * 1000 +
+                                 (pglobal->in[pcontext->id].timestamp.tv_usec/1000); // convert to ms
+-            unsigned long current = pcontext->videoIn->buf.timestamp.tv_sec * 1000 +
+-                                    pcontext->videoIn->buf.timestamp.tv_usec/1000; // convert to ms
++            unsigned long current = pcontext->videoIn->tmptimestamp.tv_sec * 1000 +
++                                    pcontext->videoIn->tmptimestamp.tv_usec/1000; // convert to ms
+             // if the requested time did not esplashed skip the frame
+             if ((current - last) < pcontext->videoIn->frame_period_time) {
+@@ -543,7 +543,7 @@ void *cam_thread(void *arg)
+ #endif
+         /* copy this frame's timestamp to user space */
+-        pglobal->in[pcontext->id].timestamp = pcontext->videoIn->buf.timestamp;
++        pglobal->in[pcontext->id].timestamp = pcontext->videoIn->tmptimestamp;
+         /* signal fresh_frame */
+         pthread_cond_broadcast(&pglobal->in[pcontext->id].db_update);
+diff --git a/plugins/input_uvc/v4l2uvc.c b/plugins/input_uvc/v4l2uvc.c
+index d11510c..7ec5eec 100644
+--- a/plugins/input_uvc/v4l2uvc.c
++++ b/plugins/input_uvc/v4l2uvc.c
+@@ -217,6 +217,9 @@ static int init_v4l2(struct vdIn *vd)
+ {
+     int i;
+     int ret = 0;
++    struct v4l2_buffer buf;
++
++
+     if((vd->fd = OPEN_VIDEO(vd->videodevice, O_RDWR)) == -1) {
+         perror("ERROR opening V4L interface");
+         DBG("errno: %d", errno);
+@@ -375,26 +378,27 @@ static int init_v4l2(struct vdIn *vd)
+      * map the buffers
+      */
+     for(i = 0; i < NB_BUFFER; i++) {
+-        memset(&vd->buf, 0, sizeof(struct v4l2_buffer));
+-        vd->buf.index = i;
+-        vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+-        vd->buf.memory = V4L2_MEMORY_MMAP;
+-        ret = xioctl(vd->fd, VIDIOC_QUERYBUF, &vd->buf);
++        memset(&buf, 0, sizeof(struct v4l2_buffer));
++        buf.index = i;
++        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
++        buf.memory = V4L2_MEMORY_MMAP;
++        ret = xioctl(vd->fd, VIDIOC_QUERYBUF, &buf);
+         if(ret < 0) {
+             perror("Unable to query buffer");
+             goto fatal;
+         }
+         if(debug)
+-            fprintf(stderr, "length: %u offset: %u\n", vd->buf.length, vd->buf.m.offset);
++            fprintf(stderr, "length: %u offset: %u\n", buf.length, buf.m.offset);
+         vd->mem[i] = mmap(0 /* start anywhere */ ,
+-                          vd->buf.length, PROT_READ | PROT_WRITE, MAP_SHARED, vd->fd,
+-                          vd->buf.m.offset);
++                          buf.length, PROT_READ | PROT_WRITE, MAP_SHARED, vd->fd,
++                          buf.m.offset);
+         if(vd->mem[i] == MAP_FAILED) {
+             perror("Unable to map buffer");
+             goto fatal;
+         }
++      vd->memlength[i] = buf.length;
+         if(debug)
+             fprintf(stderr, "Buffer mapped at address %p.\n", vd->mem[i]);
+     }
+@@ -403,11 +407,11 @@ static int init_v4l2(struct vdIn *vd)
+      * Queue the buffers.
+      */
+     for(i = 0; i < NB_BUFFER; ++i) {
+-        memset(&vd->buf, 0, sizeof(struct v4l2_buffer));
+-        vd->buf.index = i;
+-        vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+-        vd->buf.memory = V4L2_MEMORY_MMAP;
+-        ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf);
++        memset(&buf, 0, sizeof(struct v4l2_buffer));
++        buf.index = i;
++        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
++        buf.memory = V4L2_MEMORY_MMAP;
++        ret = xioctl(vd->fd, VIDIOC_QBUF, &buf);
+         if(ret < 0) {
+             perror("Unable to queue buffer");
+             goto fatal;;
+@@ -499,17 +503,18 @@ int memcpy_picture(unsigned char *out, unsigned char *buf, int size)
+ int uvcGrab(struct vdIn *vd)
+ {
+ #define HEADERFRAME1 0xaf
++    struct v4l2_buffer buf;
+     int ret;
+     if(vd->streamingState == STREAMING_OFF) {
+         if(video_enable(vd))
+             goto err;
+     }
+-    memset(&vd->buf, 0, sizeof(struct v4l2_buffer));
+-    vd->buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+-    vd->buf.memory = V4L2_MEMORY_MMAP;
++    memset(&buf, 0, sizeof(struct v4l2_buffer));
++    buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
++    buf.memory = V4L2_MEMORY_MMAP;
+-    ret = xioctl(vd->fd, VIDIOC_DQBUF, &vd->buf);
++    ret = xioctl(vd->fd, VIDIOC_DQBUF, &buf);
+     if(ret < 0) {
+         perror("Unable to dequeue buffer");
+         goto err;
+@@ -517,33 +522,34 @@ int uvcGrab(struct vdIn *vd)
+     switch(vd->formatIn) {
+     case V4L2_PIX_FMT_MJPEG:
+-        if(vd->buf.bytesused <= HEADERFRAME1) {
++        if(buf.bytesused <= HEADERFRAME1) {
+             /* Prevent crash
+                                                         * on empty image */
+             fprintf(stderr, "Ignoring empty buffer ...\n");
+             return 0;
+         }
+-        /* memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], vd->buf.bytesused);
++        /* memcpy(vd->tmpbuffer, vd->mem[buf.index], buf.bytesused);
+-        memcpy (vd->tmpbuffer, vd->mem[vd->buf.index], HEADERFRAME1);
++        memcpy (vd->tmpbuffer, vd->mem[buf.index], HEADERFRAME1);
+         memcpy (vd->tmpbuffer + HEADERFRAME1, dht_data, sizeof(dht_data));
+-        memcpy (vd->tmpbuffer + HEADERFRAME1 + sizeof(dht_data), vd->mem[vd->buf.index] + HEADERFRAME1, (vd->buf.bytesused - HEADERFRAME1));
++        memcpy (vd->tmpbuffer + HEADERFRAME1 + sizeof(dht_data), vd->mem[buf.index] + HEADERFRAME1, (buf.bytesused - HEADERFRAME1));
+         */
+-        memcpy(vd->tmpbuffer, vd->mem[vd->buf.index], vd->buf.bytesused);
+-      vd->tmpbytesused = vd->buf.bytesused;
++        memcpy(vd->tmpbuffer, vd->mem[buf.index], buf.bytesused);
++      vd->tmpbytesused = buf.bytesused;
++      vd->tmptimestamp = buf.timestamp;
+         if(debug)
+-            fprintf(stderr, "bytes in used %d \n", vd->buf.bytesused);
++            fprintf(stderr, "bytes in used %d \n", buf.bytesused);
+         break;
+     case V4L2_PIX_FMT_RGB565:
+     case V4L2_PIX_FMT_YUYV:
+     case V4L2_PIX_FMT_RGB24:
+-        if(vd->buf.bytesused > vd->framesizeIn)
+-            memcpy(vd->framebuffer, vd->mem[vd->buf.index], (size_t) vd->framesizeIn);
++        if(buf.bytesused > vd->framesizeIn)
++            memcpy(vd->framebuffer, vd->mem[buf.index], (size_t) vd->framesizeIn);
+         else
+-            memcpy(vd->framebuffer, vd->mem[vd->buf.index], (size_t) vd->buf.bytesused);
++            memcpy(vd->framebuffer, vd->mem[buf.index], (size_t) buf.bytesused);
+         break;
+     default:
+@@ -551,7 +557,7 @@ int uvcGrab(struct vdIn *vd)
+         break;
+     }
+-    ret = xioctl(vd->fd, VIDIOC_QBUF, &vd->buf);
++    ret = xioctl(vd->fd, VIDIOC_QBUF, &buf);
+     if(ret < 0) {
+         perror("Unable to requeue buffer");
+         goto err;
+@@ -947,7 +953,7 @@ int setResolution(struct vdIn *vd, int width, int height)
+         DBG("Unmap buffers\n");
+         int i;
+         for(i = 0; i < NB_BUFFER; i++)
+-            munmap(vd->mem[i], vd->buf.length);
++            munmap(vd->mem[i], vd->memlength[i]);
+         if(CLOSE_VIDEO(vd->fd) == 0) {
+             DBG("Device closed successfully\n");
+diff --git a/plugins/input_uvc/v4l2uvc.h b/plugins/input_uvc/v4l2uvc.h
+index 2c7c8ba..e625957 100644
+--- a/plugins/input_uvc/v4l2uvc.h
++++ b/plugins/input_uvc/v4l2uvc.h
+@@ -35,6 +35,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <sys/select.h>
++#include <sys/time.h>
+ #include <linux/types.h>          /* for videodev2.h */
+ #include <linux/videodev2.h>
+@@ -79,11 +80,12 @@ struct vdIn {
+     char *pictName;
+     struct v4l2_capability cap;
+     struct v4l2_format fmt;
+-    struct v4l2_buffer buf;
+     struct v4l2_requestbuffers rb;
+     void *mem[NB_BUFFER];
++    int memlength[NB_BUFFER];
+     unsigned char *tmpbuffer;
+     int tmpbytesused;
++    struct timeval tmptimestamp;
+     unsigned char *framebuffer;
+     streaming_state streamingState;
+     int grabmethod;
+-- 
+1.9.1
+
diff --git a/multimedia/mjpg-streamer/patches/050-fix-yuv-capture.patch b/multimedia/mjpg-streamer/patches/050-fix-yuv-capture.patch
new file mode 100644 (file)
index 0000000..0c4d27a
--- /dev/null
@@ -0,0 +1,58 @@
+Binary files a/ipkg-ar71xx/mjpg-streamer/usr/lib/input_uvc.so and b/ipkg-ar71xx/mjpg-streamer/usr/lib/input_uvc.so differ
+diff -ur a/plugins/input_uvc/input_uvc.c b/plugins/input_uvc/input_uvc.c
+--- a/plugins/input_uvc/input_uvc.c     2015-03-02 09:14:05.000000000 +0200
++++ b/plugins/input_uvc/input_uvc.c     2015-03-02 09:18:22.000000000 +0200
+@@ -311,6 +311,10 @@
+     }
+     memset(cams[id].videoIn, 0, sizeof(struct vdIn));
++    /* Non-MJPEG formats seem to fail with unlimited FPS */
++    if (format != V4L2_PIX_FMT_MJPEG && fps == -1)
++        fps = 15;
++
+     /* display the parsed values */
+     IPRINT("Using V4L2 device.: %s\n", dev);
+     IPRINT("Desired Resolution: %i x %i\n", width, height);
+diff -ur a/plugins/input_uvc/jpeg_utils.c b/plugins/input_uvc/jpeg_utils.c
+--- a/plugins/input_uvc/jpeg_utils.c    2015-03-02 09:17:02.000000000 +0300
++++ b/plugins/input_uvc/jpeg_utils.c    2015-03-02 09:25:18.000000000 +0200
+@@ -198,7 +198,7 @@
+             }
+             row_pointer = (JSAMPROW*)line_buffer;
+-            jpeg_write_scanlines(&cinfo, row_pointer, 1);
++            jpeg_write_scanlines(&cinfo, &row_pointer, 1);
+         }
+     } else if (vd->formatIn == V4L2_PIX_FMT_RGB565) {
+         while(cinfo.next_scanline < vd->height) {
+@@ -220,7 +220,7 @@
+             }
+             row_pointer = (JSAMPROW*)line_buffer;
+-            jpeg_write_scanlines(&cinfo, row_pointer, 1);
++            jpeg_write_scanlines(&cinfo, &row_pointer, 1);
+         }
+     } else if (vd->formatIn == V4L2_PIX_FMT_RGB24) {
+         jpeg_write_scanlines(&cinfo, (JSAMPROW*)vd->framebuffer, vd->height);
+diff -ur a/plugins/input_uvc/v4l2uvc.c b/plugins/input_uvc/v4l2uvc.c
+--- a/plugins/input_uvc/v4l2uvc.c       2015-03-02 09:14:05.000000000 +0200
++++ b/plugins/input_uvc/v4l2uvc.c       2015-03-02 09:22:09.000000000 +0200
+@@ -338,11 +338,15 @@
+                         vd->frame_period_time = 1000/vd->fps; // calcualate frame period time in ms
+                         IPRINT("Frame period time ......: %ld ms\n", vd->frame_period_time);
+-                        // set FPS to maximum in order to minimize the lagging
+                         memset(setfps, 0, sizeof(struct v4l2_streamparm));
+                         setfps->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+                         setfps->parm.capture.timeperframe.numerator = 1;
+-                        setfps->parm.capture.timeperframe.denominator = 255;
++                       if (vd->formatIn == V4L2_PIX_FMT_MJPEG)
++                           // set FPS to maximum in order to minimize the lagging
++                           setfps->parm.capture.timeperframe.denominator = 255;
++                       else
++                           setfps->parm.capture.timeperframe.denominator = vd->fps;
++
+                         ret = xioctl(vd->fd, VIDIOC_S_PARM, setfps);
+                         if (ret) {
+                             perror("Unable to set the FPS\n");
+
diff --git a/net/bind/patches/002-autoconf-ar-fix.patch b/net/bind/patches/002-autoconf-ar-fix.patch
new file mode 100644 (file)
index 0000000..501fa7d
--- /dev/null
@@ -0,0 +1,29 @@
+--- a/configure.in
++++ b/configure.in
+@@ -93,26 +93,11 @@ esac
+ #
+ AC_CONFIG_FILES([make/rules make/includes])
+-AC_PATH_PROG(AR, ar)
+-ARFLAGS="cruv"
+-AC_SUBST(AR)
+-AC_SUBST(ARFLAGS)
+-
+ # The POSIX ln(1) program.  Non-POSIX systems may substitute
+ # "copy" or something.
+ LN=ln
+ AC_SUBST(LN)
+-case "$AR" in
+-      "")
+-              AC_MSG_ERROR([
+-ar program not found.  Please fix your PATH to include the directory in
+-which ar resides, or set AR in the environment with the full path to ar.
+-])
+-
+-              ;;
+-esac
+-
+ #
+ # Etags.
+ #
index 15cc1203ee6607fe657c7b2e9a63c5d12f3707dc..cbfbed5fa7bc56e4018c481dda2052cc0b3dd648 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cshark
-PKG_VERSION:=2014-07-02
+PKG_VERSION:=2015-03-13
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/cloudshark/cshark.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=ec638311b0b8ef74baf0be06dcf03a641e3308a2
+PKG_SOURCE_VERSION:=ab2ae2fbd72b6cbd57c95e3192edc3c1f475412b
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_BUILD_PARALLEL:=1
index f69622e9c9c06ffdaa656f482b1bc83fd4047881..e573523bbce71778286c01bc5c4be61f7732466d 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dmapd
-PKG_VERSION:=0.0.70
+PKG_VERSION:=0.0.71
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.flyn.org/projects/dmapd
-PKG_MD5SUM:=f503bf95f79b5c1f9418cccf26203952
+PKG_MD5SUM:=cee310509e39db782110267edac4fe9a
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=2
index eea0593d7385c2ed3a4b0def5bd10476f0809d51..f161dcb130aabe7988fbe023d41864e69cbc588b 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2009-2014 OpenWrt.org
+# Copyright (C) 2009-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,19 +8,20 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=git
-PKG_VERSION:=2.3.0
+PKG_VERSION:=2.3.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_MD5SUM:=e5880760d1f43f4f49b3bf94b9046eee
+PKG_MD5SUM:=14a885da3b432455b606cc1a25a6c681
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
+PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/git
+define Package/git/Default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Version Control Systems
@@ -30,18 +31,35 @@ define Package/git
   MAINTAINER:=Peter Wagner <tripolar@gmx.at>
 endef
 
+define Package/git
+$(call Package/git/Default)
+  DEPENDS:=+libopenssl +libpthread +librt
+  TITLE:=The fast version control system
+endef
+
 define Package/git/description
  Git is a free & open source, distributed version control system
  designed to handle everything from small to very large projects
  with speed and efficiency.
 endef
 
+define Package/git-http
+$(call Package/git/Default)
+  DEPENDS:=git +libcurl +ca-certificates
+  TITLE:=Git HTTP commands
+endef
+
+define Package/git-http/description
+$(call Package/git/description)
+
+ This package allows git push/fetch over http(s) and ftp(s)
+endef
+
 MAKE_FLAGS := \
        CC="$(TARGET_CC)" \
        CFLAGS="$(TARGET_CFLAGS)" \
        CPPFLAGS="$(TARGET_CPPFLAGS)" \
        LDFLAGS="$(TARGET_LDFLAGS)" \
-       NO_CURL="YesPlease" \
        NO_EXPAT="YesPlease" \
        NO_MKSTEMPS="YesPlease" \
        NO_GETTEXT="YesPlease" \
@@ -51,21 +69,46 @@ MAKE_FLAGS := \
        NO_NSEC="YesPlease" \
        NO_PERL="YesPlease" \
        NO_PYTHON="YesPlease" \
-       NO_TCLTK="YesPlease"
+       NO_TCLTK="YesPlease" \
+       NO_INSTALL_HARDLINKS="yes" \
+
+CONFIGURE_ARGS += \
+       --without-iconv \
 
 define Build/Configure
        $(MAKE) -C $(PKG_BUILD_DIR) \
                configure
 
-       ( cd $(PKG_BUILD_DIR); \
-               ./configure --prefix=/usr \
-       );
+       $(call Build/Configure/Default,)
 endef
 
 define Package/git/install
-       $(INSTALL_DIR) $(1)
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/git   $(1)/usr/bin
        $(RM) $(PKG_INSTALL_DIR)/usr/bin/git-cvsserver
-       $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/git-* $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/usr/lib/git-core
+       ( cd $(PKG_INSTALL_DIR); $(TAR) \
+               --exclude=usr/lib/git-core/git-http-backend \
+               --exclude=usr/lib/git-core/git-http-fetch \
+               --exclude=usr/lib/git-core/git-remote-ftp \
+               --exclude=usr/lib/git-core/git-remote-ftps \
+               --exclude=usr/lib/git-core/git-remote-http \
+               --exclude=usr/lib/git-core/git-remote-https \
+               -cf - \
+               usr/lib/git-core \
+       ) | ( cd $(1); $(TAR) -xf - )
+endef
+
+define Package/git-http/install
+       $(INSTALL_DIR) $(1)/usr/lib/git-core
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-http-backend $(1)/usr/lib/git-core
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-http-fetch $(1)/usr/lib/git-core
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-ftp $(1)/usr/lib/git-core
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-ftps $(1)/usr/lib/git-core
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-http $(1)/usr/lib/git-core
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-https $(1)/usr/lib/git-core
 endef
 
 $(eval $(call BuildPackage,git))
+$(eval $(call BuildPackage,git-http))
index 20199611c73856f8d1e9468776ee3d8f44383a42..05a3f3f33aefd4297557ee0beba05ec550c787e3 100644 (file)
@@ -7,31 +7,29 @@
 -PROGRAM_OBJS += credential-store.o
 -PROGRAM_OBJS += daemon.o
 -PROGRAM_OBJS += fast-import.o
--PROGRAM_OBJS += http-backend.o
+ PROGRAM_OBJS += http-backend.o
 -PROGRAM_OBJS += imap-send.o
 -PROGRAM_OBJS += sh-i18n--envsubst.o
 -PROGRAM_OBJS += shell.o
 -PROGRAM_OBJS += show-index.o
 -PROGRAM_OBJS += upload-pack.o
 -PROGRAM_OBJS += remote-testsvn.o
-+PROGRAM_OBJS =
  
  # Binary suffix, set to .exe for Windows builds
  X =
-@@ -896,6 +887,12 @@ BUILTIN_OBJS += builtin/verify-commit.o
+@@ -896,6 +887,11 @@ BUILTIN_OBJS += builtin/verify-commit.o
  BUILTIN_OBJS += builtin/verify-pack.o
  BUILTIN_OBJS += builtin/verify-tag.o
  BUILTIN_OBJS += builtin/write-tree.o
 +BUILTIN_OBJS += builtin/daemon.o
 +BUILTIN_OBJS += builtin/fast-import.o
-+BUILTIN_OBJS += builtin/http-backend.o
 +BUILTIN_OBJS += builtin/imap-send.o
 +BUILTIN_OBJS += builtin/shell.o
 +BUILTIN_OBJS += builtin/upload-pack.o
  
  GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
  EXTLIBS =
-@@ -1070,7 +1067,7 @@ endif
+@@ -1070,7 +1066,7 @@ endif
  EXTLIBS += -lz
  
  ifndef NO_OPENSSL
@@ -40,7 +38,7 @@
        ifdef OPENSSLDIR
                BASIC_CFLAGS += -I$(OPENSSLDIR)/include
                OPENSSL_LINK = -L$(OPENSSLDIR)/$(lib) $(CC_LD_DYNPATH)$(OPENSSLDIR)/$(lib)
-@@ -1933,10 +1930,6 @@ endif
+@@ -1933,10 +1929,6 @@ endif
  git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
  
@@ -51,7 +49,7 @@
  git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
                $(LIBS) $(CURL_LIBCURL)
-@@ -2254,24 +2247,22 @@ endif
+@@ -2254,10 +2246,11 @@ endif
        bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
        execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
        { test "$$bindir/" = "$$execdir/" || \
 +        for p in $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \
                $(RM) "$$execdir/$$p" && \
                test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
--              ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
+               ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
 +              ln -s git "$$execdir/$$p" 2>/dev/null || \
                cp "$$bindir/$$p" "$$execdir/$$p" || exit; \
          done; \
        } && \
-       for p in $(filter $(install_bindir_programs),$(BUILT_INS)); do \
-               $(RM) "$$bindir/$$p" && \
-               test -z "$(NO_INSTALL_HARDLINKS)" && \
--              ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \
-               ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \
-               cp "$$bindir/git$X" "$$bindir/$$p" || exit; \
-       done && \
-       for p in $(BUILT_INS); do \
-               $(RM) "$$execdir/$$p" && \
-               test -z "$(NO_INSTALL_HARDLINKS)" && \
--              ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \
-               ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
-               cp "$$execdir/git$X" "$$execdir/$$p" || exit; \
-       done && \
 --- a/builtin.h
 +++ b/builtin.h
-@@ -138,5 +138,11 @@ extern int cmd_verify_pack(int argc, con
+@@ -138,5 +138,10 @@ extern int cmd_verify_pack(int argc, con
  extern int cmd_show_ref(int argc, const char **argv, const char *prefix);
  extern int cmd_pack_refs(int argc, const char **argv, const char *prefix);
  extern int cmd_replace(int argc, const char **argv, const char *prefix);
 +extern int cmd_daemon(int argc, char **argv, const char *prefix);
 +extern int cmd_fast_import(int argc, char **argv, const char *prefix);
-+extern int cmd_http_backend(int argc, char **argv, const char *prefix);
 +extern int cmd_imap_send(int argc, char **argv, const char *prefix);
 +extern int cmd_shell(int argc, char **argv, const char *prefix);
 +extern int cmd_upload_pack(int argc, char **argv, const char *prefix);
 @@ -0,0 +1 @@
 +#include "../fast-import.c"
 --- /dev/null
-+++ b/builtin/http-backend.c
-@@ -0,0 +1 @@
-+#include "../http-backend.c"
---- /dev/null
 +++ b/builtin/imap-send.c
 @@ -0,0 +1 @@
 +#include "../imap-send.c"
 +#include "../upload-pack.c"
 --- a/daemon.c
 +++ b/daemon.c
-@@ -1096,7 +1096,7 @@ static int serve(struct string_list *lis
+@@ -1193,7 +1193,7 @@ static int serve(struct string_list *lis
        return service_loop(&socklist);
  }
  
  {
        int listen_port = 0;
        struct string_list listen_addr = STRING_LIST_INIT_NODUP;
-@@ -1292,12 +1292,13 @@ int main(int argc, char **argv)
+@@ -1389,12 +1389,13 @@ int main(int argc, char **argv)
                store_pid(pid_file);
  
        /* prepare argv for serving-processes */
  }
 --- a/fast-import.c
 +++ b/fast-import.c
-@@ -3350,7 +3350,7 @@ static void parse_argv(void)
+@@ -3354,7 +3354,7 @@ static void parse_argv(void)
                read_marks();
  }
  
        { "describe", cmd_describe, RUN_SETUP },
        { "diff", cmd_diff },
        { "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE },
-@@ -411,6 +412,8 @@ static struct cmd_struct commands[] = {
+@@ -411,6 +412,7 @@ static struct cmd_struct commands[] = {
        { "grep", cmd_grep, RUN_SETUP_GENTLY },
        { "hash-object", cmd_hash_object },
        { "help", cmd_help },
-+      { "http-backend", cmd_http_backend },
 +      { "imap-send", cmd_imap_send },
        { "index-pack", cmd_index_pack, RUN_SETUP_GENTLY },
        { "init", cmd_init_db, NO_SETUP },
        { "init-db", cmd_init_db, NO_SETUP },
-@@ -459,6 +462,7 @@ static struct cmd_struct commands[] = {
+@@ -459,6 +461,7 @@ static struct cmd_struct commands[] = {
        { "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
        { "rm", cmd_rm, RUN_SETUP },
        { "send-pack", cmd_send_pack, RUN_SETUP },
        { "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
        { "show", cmd_show, RUN_SETUP },
        { "show-branch", cmd_show_branch, RUN_SETUP },
-@@ -475,6 +479,7 @@ static struct cmd_struct commands[] = {
+@@ -475,6 +478,7 @@ static struct cmd_struct commands[] = {
        { "update-server-info", cmd_update_server_info, RUN_SETUP },
        { "upload-archive", cmd_upload_archive },
        { "upload-archive--writer", cmd_upload_archive_writer },
        { "var", cmd_var, RUN_SETUP_GENTLY },
        { "verify-commit", cmd_verify_commit, RUN_SETUP },
        { "verify-pack", cmd_verify_pack },
---- a/http-backend.c
-+++ b/http-backend.c
-@@ -557,7 +557,7 @@ static struct service_cmd {
-       {"POST", "/git-receive-pack$", service_rpc}
- };
--int main(int argc, char **argv)
-+int cmd_http_backend(int argc, char **argv, const char *prefix)
- {
-       char *method = getenv("REQUEST_METHOD");
-       char *dir;
 --- a/imap-send.c
 +++ b/imap-send.c
 @@ -1484,7 +1484,7 @@ static int curl_append_msgs_to_imap(stru
diff --git a/net/git/patches/300-configure_for_crosscompiling b/net/git/patches/300-configure_for_crosscompiling
new file mode 100644 (file)
index 0000000..0ccfaec
--- /dev/null
@@ -0,0 +1,32 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -844,7 +844,8 @@ AC_RUN_IFELSE(
+               FILE *f = fopen(".", "r");
+               return f && fread(&c, 1, 1, f)]])],
+       [ac_cv_fread_reads_directories=no],
+-      [ac_cv_fread_reads_directories=yes])
++      [ac_cv_fread_reads_directories=yes],
++      [ac_cv_fread_reads_directories=no])
+ ])
+ if test $ac_cv_fread_reads_directories = yes; then
+       FREAD_READS_DIRECTORIES=UnfortunatelyYes
+@@ -878,7 +879,8 @@ AC_RUN_IFELSE(
+                 if (snprintf(buf, 3, "%s", "12345") != 5
+                     || strcmp(buf, "12")) return 1]])],
+       [ac_cv_snprintf_returns_bogus=no],
+-      [ac_cv_snprintf_returns_bogus=yes])
++      [ac_cv_snprintf_returns_bogus=yes],
++      [ac_cv_snprintf_returns_bogus=no])
+ ])
+ if test $ac_cv_snprintf_returns_bogus = yes; then
+       SNPRINTF_RETURNS_BOGUS=UnfortunatelyYes
+@@ -901,7 +903,8 @@ yippeeyeswehaveit
+ #endif
+ ]),
+       [ac_cv_sane_mode_bits=yes],
+-      [ac_cv_sane_mode_bits=no])
++      [ac_cv_sane_mode_bits=no],
++      [ac_cv_sane_mode_bits=yes])
+ ])
+ if test $ac_cv_sane_mode_bits = yes; then
+       NEEDS_MODE_TRANSLATION=
diff --git a/net/git/patches/400-imapsend_without_curl.patch b/net/git/patches/400-imapsend_without_curl.patch
new file mode 100644 (file)
index 0000000..44ceb01
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1039,7 +1039,7 @@ else
+       endif
+       curl_check := $(shell (echo 072200; curl-config --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
+       ifeq "$(curl_check)" "072200"
+-              USE_CURL_FOR_IMAP_SEND = YesPlease
++#             USE_CURL_FOR_IMAP_SEND = YesPlease
+       endif
+       ifdef USE_CURL_FOR_IMAP_SEND
+               BASIC_CFLAGS += -DUSE_CURL_FOR_IMAP_SEND
index c278f248c3566dae48c9c9799a8a1938c48af4d6..b9ce06d8b8ea0dcb314deb2adeb126f86c64ff31 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knxd
-PKG_REV:=a63bc660d305e26ce3ed038607d387758fad8413
-PKG_VERSION:=2015-03-06
+PKG_VERSION=2015-03-31-$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/knxd/knxd.git
+PKG_SOURCE_VERSION:=2c6c6732a684dffb87b391ea92cccdf07c8385b8
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
+
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
+
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=LICENSE
 
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/knxd/knxd.git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)
-PKG_SOURCE_VERSION:=$(PKG_REV)
-
+PKG_BUILD_PARALLEL:=1
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
-PKG_BUILD_DEPENDS:=pthsem argp-standalone
+PKG_BUILD_DEPENDS:=argp-standalone
 
 PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -37,8 +38,7 @@ define Package/knxd
   SECTION:=net
   CATEGORY:=Network
   TITLE:=EIB KNX daemon
-  URL:=https://github.com/knxd/knxd
-  DEPENDS:=pthsem libusb-1.0
+  DEPENDS:=+pthsem +libusb-1.0
 endef
 
 define Package/knxd/description
@@ -49,105 +49,104 @@ define Package/knxd/conffiles
 /etc/config/knxd
 endef
 
+define Package/libeibclient
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Library for EIB clients
+  DEPENDS:=+pthsem
+endef
+
+define Package/libeibclient/description
+EIB KNX client library
+endef
+
 define Package/knxd-tools
   SECTION:=net
   CATEGORY:=Network
   TITLE:=EIB KNX Utils
-  URL:=https://github.com/knxd/knxd
-  DEPENDS:=pthsem libusb-1.0
+  DEPENDS:=+libeibclient
 endef
 
 define Package/knxd-tools/description
 EIB KNX Tools
 endef
 
-define Build/Prepare
-       $(call Build/Prepare/Default)
-endef
-
-define Build/Configure
-       $(call Build/Configure/Default,\
-               --disable-ft12 \
-               --enable-eibnetip \
-               --enable-eibnetiptunnel \
-               --enable-eibnetipserver \
-               --enable-usb \
-               --enable-tpuart \
-               --enable-tpuarts \
-               --disable-pei16 \
-               --disable-pei16s \
-               --enable-groupcache \
-               --without-pth-test \
-               --without-libstdc )
-endef
+CONFIGURE_ARGS+= \
+       --disable-ft12 \
+       --enable-eibnetip \
+       --enable-eibnetiptunnel \
+       --enable-eibnetipserver \
+       --enable-usb \
+       --enable-tpuart \
+       --enable-tpuarts \
+       --disable-pei16 \
+       --disable-pei16s \
+       --enable-groupcache \
+       --without-pth-test \
+       --without-libstdc
+
+EXTRA_LDFLAGS+= \
+       -fno-builtin -nodefaultlibs -lc -lgcc
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/eib*.h $(1)/usr/include/
 
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               CC=$(TARGET_CC) \
-               LIBS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib -fno-builtin -nodefaultlibs -lc -lm -lgcc -largp -lpthsem" \
-               CPPFLAGS="-I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include"
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libeibclient.{a,so*} $(1)/usr/lib/
 endef
 
 define Package/knxd/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/server/knxd $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tools/bcu/bcuaddrtab $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tools/bcu/bcuread $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tools/eibnet/eibnetsearch $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tools/eibnet/eibnetdescribe $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/usb/findknxusb $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
+
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/knxd.init $(1)/etc/init.d/knxd
+
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_DATA) ./files/knxd.config $(1)/etc/config/knxd
 endef
 
-define Package/knxd-tools/install
+define Package/libeibclient/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_DATA) $(PKG_BUILD_DIR)/src/client/c/.libs/libeibclient.so.0.0.0 $(1)/usr/lib/
-       ln -s libeibclient.so.0.0.0 $(1)/usr/lib/libeibclient.so
-       ln -s libeibclient.so.0.0.0 $(1)/usr/lib/libeibclient.so.0
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libeibclient.so* $(1)/usr/lib/
+endef
+
+define Package/knxd-tools/install
        $(INSTALL_DIR) $(1)/usr/bin
-       -rm -f $(1)/usr/bin/knxread
-       -rm -f $(1)/usr/bin/knxreadtemp
-       -rm -f $(1)/usr/bin/knxwrite
-       -rm -f $(1)/usr/bin/knxlog
-       -rm -f $(1)/usr/bin/knxon
-       -rm -f $(1)/usr/bin/knxoff
-       -rm -f $(1)/usr/bin/knxif
-       -rm -f $(1)/usr/bin/knxswrite
-       -rm -f $(1)/usr/bin/knxbool
-       -rm -f $(1)/usr/bin/knxdimup
-       ln -s knxtool $(1)/usr/bin/knxread
-       ln -s knxtool $(1)/usr/bin/knxreadtemp
-       ln -s knxtool $(1)/usr/bin/knxwrite
-       ln -s knxtool $(1)/usr/bin/knxlog
-       ln -s knxtool $(1)/usr/bin/knxon
-       ln -s knxtool $(1)/usr/bin/knxoff
-       ln -s knxtool $(1)/usr/bin/knxif
-       ln -s knxtool $(1)/usr/bin/knxswrite
-       ln -s knxtool $(1)/usr/bin/knxbool
-       ln -s knxtool $(1)/usr/bin/knxdimup
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/knxtool $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/busmonitor1 $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/busmonitor2 $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/busmonitor3 $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/eibread-cgi $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/eibwrite-cgi $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/vbusmonitor1 $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/vbusmonitor2 $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/vbusmonitor3 $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupwrite $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupswrite $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/grouplisten $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupread $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupresponse $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupreadresponse $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupsocketlisten $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupsocketread $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupsocketwrite $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/examples/.libs/groupsocketswrite $(1)/usr/bin/
+
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/knxtool $(1)/usr/bin/
+       ln -sf knxtool $(1)/usr/bin/knxread
+       ln -sf knxtool $(1)/usr/bin/knxreadtemp
+       ln -sf knxtool $(1)/usr/bin/knxwrite
+       ln -sf knxtool $(1)/usr/bin/knxlog
+       ln -sf knxtool $(1)/usr/bin/knxon
+       ln -sf knxtool $(1)/usr/bin/knxoff
+       ln -sf knxtool $(1)/usr/bin/knxif
+       ln -sf knxtool $(1)/usr/bin/knxswrite
+       ln -sf knxtool $(1)/usr/bin/knxbool
+       ln -sf knxtool $(1)/usr/bin/knxdimup
+
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/busmonitor1 $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/busmonitor2 $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/busmonitor3 $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/eibread-cgi $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/eibwrite-cgi $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/vbusmonitor1 $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/vbusmonitor2 $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/vbusmonitor3 $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupwrite $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupswrite $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/grouplisten $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupread $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupresponse $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupreadresponse $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupsocketlisten $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupsocketread $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupsocketwrite $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/knxd/examples/bin/groupsocketswrite $(1)/usr/bin/
 endef
 
 $(eval $(call BuildPackage,knxd))
+$(eval $(call BuildPackage,libeibclient))
 $(eval $(call BuildPackage,knxd-tools))
index 31e909169d20d3af97aa0bcb5621ffed05603c0b..026e4cf6aba529a7f49f64b88594c4136956ff00 100644 (file)
@@ -6,8 +6,6 @@ STOP=20
 NAME=knxd
 PROG=/usr/bin/$NAME
 
-. /lib/functions.sh
-
 start() {
         local options url
         config_load "$NAME"
@@ -19,4 +17,3 @@ start() {
 stop() {
         service_stop $PROG
 }
-
index e3aed3b15111edbc3e921928929412de95cddd33..06083fc961bcd3704a70b61162c5d5ab52c77fc2 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2014 OpenWrt.org
+# Copyright (C) 2008-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=linknx
 PKG_VERSION:=0.0.1.32
-PKG_RELEASE:=4
+PKG_RELEASE:=6
 PKG_MD5SUM:=7ecc1208f59bceb05068c752b2250b63
 
 PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
@@ -17,7 +17,7 @@ PKG_LICENSE:=GPL-2.0+
 
 PKG_SOURCE_URL:=@SF/linknx
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_BUILD_DEPENDS:=pthsem curl libesmtp
+PKG_BUILD_DEPENDS:=argp-standalone
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -26,26 +26,19 @@ define Package/linknx
   CATEGORY:=Network
   TITLE:=KNX home automation platform
   URL:=http://sourceforge.net/projects/linknx/
-  DEPENDS:=pthsem +lua +luac +libstdcpp +libcurl +libesmtp
+  DEPENDS:=+pthsem +lua +luac +libstdcpp +libcurl +libesmtp
 endef
 
-define Build/Configure
-       (cd $(PKG_BUILD_DIR); touch aclocal.m4 Makefile.in config.h.in configure; \
-       $(SED) 's,\"2.0.4\",\"2.0.4\"\n_pth_version=\"2.0.8\",g' $(PKG_BUILD_DIR)/configure )
-       $(call Build/Configure/Default,--verbose --without-pth-test --with-pth=$(STAGING_DIR) --without-log4cpp --with-lua --with-libcurl --without-mysql, \
-       CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -lcrypt" \
-       )
-endef
+CONFIGURE_ARGS+= \
+       --verbose \
+       --without-pth-test \
+       --without-log4cpp \
+       --with-lua \
+       --with-libcurl \
+       --without-mysql
 
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR)/ \
-               LIBDIR="$(TARGET_LDFLAGS)" \
-               CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) " \
-               LD="$(TARGET_CROSS)ld -shared" \
-               LUA="$(STAGING_DIR_HOST)/bin/lua" \
-               LUAC="$(STAGING_DIR_HOST)/bin/luac" \
-               CFLAGS="$(TARGET_CFLAGS) -nodefaultlibs" all
-endef
+EXTRA_LDFLAGS+= \
+       -fno-builtin
 
 define Package/linknx/install
        $(INSTALL_DIR) $(1)/usr/bin
index e7d79df00ec5536b53e47741d329f4020d61c81e..8379025979e176b0469681d3026a9e7366e26e5e 100644 (file)
@@ -89,7 +89,7 @@ sc.default = "simple.qos"
 sc.rmempty = false
 sc.description = qos_desc
 
-ad = s:taboption("tab_qdisc", Flag, "qdisc_advanced", translate("Show Advanced Configuration"))
+ad = s:taboption("tab_qdisc", Flag, "qdisc_advanced", translate("Show and Use Advanced Configuration"))
 ad.default = false
 ad.rmempty = true
 
@@ -121,7 +121,7 @@ eecn.default = "NOECN"
 eecn.rmempty = true
 eecn:depends("qdisc_advanced", "1")
 
-ad2 = s:taboption("tab_qdisc", Flag, "qdisc_really_really_advanced", translate("Show Dangerous Configuration"))
+ad2 = s:taboption("tab_qdisc", Flag, "qdisc_really_really_advanced", translate("Show and Use Dangerous Configuration"))
 ad2.default = false
 ad2.rmempty = true
 ad2:depends("qdisc_advanced", "1")
@@ -140,12 +140,12 @@ elim.rmempty = true
 elim:depends("qdisc_really_really_advanced", "1")
 
 
-itarg = s:taboption("tab_qdisc", Value, "itarget", translate("Latency target for ingress, e.g 5ms [units: s, ms, or  us]; leave empty for default, or auto for automatic selection."))
+itarg = s:taboption("tab_qdisc", Value, "itarget", translate("Latency target for ingress, e.g 5ms [units: s, ms, or  us]; leave empty for automatic selection, put in the word default for the qdisc's default."))
 itarg.datatype = "string"
 itarg.rmempty = true
 itarg:depends("qdisc_really_really_advanced", "1")
 
-etarg = s:taboption("tab_qdisc", Value, "etarget", translate("Latency target for egress, e.g. 5ms [units: s, ms, or  us]; leave empty for default, or auto for automatic selection."))
+etarg = s:taboption("tab_qdisc", Value, "etarget", translate("Latency target for egress, e.g. 5ms [units: s, ms, or  us]; leave empty for automatic selection, put in the word default for the qdisc's default."))
 etarg.datatype = "string"
 etarg.rmempty = true
 etarg:depends("qdisc_really_really_advanced", "1")
index 91e7e982717794de5b17ece9e2f0aedf440f6392..5eaedd2ec53c11db8327f382bf90b35cb24f0f4c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mDNSResponder
-PKG_VERSION:=561.1.1
+PKG_VERSION:=567
 PKG_RELEASE:=1
 
 PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
-PKG_MD5SUM:=d4b56e22798d6f45e29b42cd6720ab6e
+PKG_MD5SUM:=6eff6d243a12a3d4b6fca03c05a9893b
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=Apache-2.0
 
index ad4eaee445b0656fc32b9cfffc4185fade3b8fce..b1685fc45bb6201c15e4639287dff9671967d0c7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Clients/Makefile
 +++ b/Clients/Makefile
-@@ -23,6 +23,8 @@
+@@ -27,6 +27,8 @@
  
  #############################################################################
  
@@ -9,22 +9,22 @@
  # On OS X the dns_sd library functions are included in libSystem, which is implicitly linked with every executable
  # If /usr/lib/libSystem.dylib exists, then we're on OS X, so we don't need also to link the "dns_sd" shared library
  ifneq "$(wildcard /usr/lib/libSystem.dylib)" ""
-@@ -42,10 +44,10 @@ build:
+@@ -46,10 +48,10 @@ build:
        mkdir build
  
  build/dns-sd: build dns-sd.c ClientCommon.c
--      cc $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@
+-      $(CC) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@
 +      $(CC) $(CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@
  
  build/dns-sd64: build dns-sd.c ClientCommon.c
--      cc $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64
+-      $(CC) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64
 +      $(CC) $(CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64
  
  # Note, we can make a 'fat' version of dns-sd using 'lipo', as shown below, but we
  # don't, because we don't want or need a 'fat' version of dns-sd, because it will
 --- a/mDNSPosix/Makefile
 +++ b/mDNSPosix/Makefile
-@@ -54,10 +54,11 @@ COREDIR = ../mDNSCore
+@@ -54,11 +54,12 @@ COREDIR = ../mDNSCore
  SHAREDDIR ?= ../mDNSShared
  JDK = /usr/jdk
  
 +CC = @gcc
  BISON = @bison
  FLEX = @flex
+ ST = @strip
 -LD = ld -shared
 +LD = @ld
 +SOOPTS = -shared
  CP = cp
  RM = rm
  LN = ln -s -f
-@@ -82,7 +83,7 @@ else
- CFLAGS_DEBUG = -Os -DMDNS_DEBUGMSGS=0 
- OBJDIR ?= objects/prod
- BUILDDIR ?= build/prod
--STRIP = strip -S 
-+STRIP = @strip -S
- endif
- # Configure per-OS peculiarities
-@@ -91,7 +92,7 @@ CFLAGS_DEBUG = -O0 -DMDNS_DEBUGMSGS=0
+@@ -92,7 +93,7 @@ CFLAGS_DEBUG = -O0 -DMDNS_DEBUGMSGS=0
  CFLAGS_OS = -DNOT_HAVE_DAEMON -DNOT_HAVE_SA_LEN -DNOT_HAVE_SOCKLEN_T -DNOT_HAVE_IF_NAMETOINDEX \
         -DLOG_PERROR=0 -D_XPG4_2 -D__EXTENSIONS__ -DHAVE_BROKEN_RECVIF_NAME -DTARGET_OS_SOLARIS
  CC = gcc
@@ -56,7 +48,7 @@
  LINKOPTS = -lsocket -lnsl -lresolv
  JAVACFLAGS_OS += -I$(JDK)/include/solaris
  ifneq ($(DEBUG),1)
-@@ -147,7 +148,8 @@ CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp
+@@ -148,7 +149,8 @@ CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp
        -D__MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_10_4 \
        -D__APPLE_USE_RFC_2292 #-Wunreachable-code
  CC = gcc
@@ -66,7 +58,7 @@
  LINKOPTS = -lSystem
  LDSUFFIX = dylib
  JDK = /System/Library/Frameworks/JavaVM.framework/Home
-@@ -169,8 +171,9 @@ NSSLIBFILE  := $(NSSLIBNAME)-$(NSSVERSIO
+@@ -170,8 +172,9 @@ NSSLIBFILE  := $(NSSLIBNAME)-$(NSSVERSIO
  NSSLINKNAME := $(NSSLIBNAME).so.2
  NSSINSTPATH := /lib
  
@@ -77,7 +69,7 @@
  INSTBASE?=/usr
  STARTUPSCRIPTNAME?=mdns
  
-@@ -256,7 +259,7 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$
+@@ -257,7 +260,7 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$
  CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o
  
  $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
@@ -86,7 +78,7 @@
        @$(STRIP) $@
  
  Clients: setup libdns_sd ../Clients/build/dns-sd
-@@ -291,7 +294,7 @@ InstalledManPages: $(MANPATH)/man8/mdnsd
+@@ -292,7 +295,7 @@ InstalledManPages: $(MANPATH)/man8/mdnsd
  InstalledClients: $(INSTBASE)/bin/dns-sd
        @echo $+ " installed"
  
@@ -95,7 +87,7 @@
        @echo $+ " installed"
  
  # Note: If daemon already installed, we make sure it's stopped before overwriting it
-@@ -346,19 +349,21 @@ $(INSTBASE)/bin/dns-sd: ../Clients/build
+@@ -347,19 +350,21 @@ $(INSTBASE)/bin/dns-sd: ../Clients/build
  
  $(NSSINSTPATH)/$(NSSLINKNAME): $(NSSINSTPATH)/$(NSSLIBFILE)
        $(LN) $< $@
index ea598a75d6a2e6014e1eed99548613497a2eb740..512c1738aa9b0e1f1ca3233c62ef8e9eb6a2a091 100644 (file)
@@ -84,7 +84,7 @@
  }
 --- a/mDNSPosix/mDNSPosix.c
 +++ b/mDNSPosix/mDNSPosix.c
-@@ -136,7 +136,7 @@ mDNSlocal void SockAddrTomDNSAddr(const
+@@ -138,7 +138,7 @@ mDNSlocal void SockAddrTomDNSAddr(const
  
  // mDNS core calls this routine when it needs to send a packet.
  mDNSexport mStatus mDNSPlatformSendUDP(const mDNS *const m, const void *const msg, const mDNSu8 *const end,
@@ -93,7 +93,7 @@
                                         mDNSIPPort dstPort, mDNSBool useBackgroundTrafficClass)
  {
      int err = 0;
-@@ -574,9 +574,17 @@ mDNSlocal void FreePosixNetworkInterface
+@@ -583,9 +583,17 @@ mDNSlocal void FreePosixNetworkInterface
  {
      assert(intf != NULL);
      if (intf->intfName != NULL) free((void *)intf->intfName);
 +        assert(rv == 0);
 +      }
  #endif
-     free(intf);
- }
-@@ -703,6 +711,29 @@ mDNSlocal int SetupSocket(struct sockadd
+     // Move interface to the RecentInterfaces list for a minute
+@@ -724,6 +732,29 @@ mDNSlocal int SetupSocket(struct sockadd
              if (err < 0) { err = errno; perror("setsockopt - IP_MULTICAST_TTL"); }
          }
  
          // And start listening for packets
          if (err == 0)
          {
-@@ -784,6 +815,29 @@ mDNSlocal int SetupSocket(struct sockadd
+@@ -805,6 +836,29 @@ mDNSlocal int SetupSocket(struct sockadd
              if (err < 0) { err = errno; perror("setsockopt - IPV6_MULTICAST_HOPS"); }
          }
  
          // And start listening for packets
          if (err == 0)
          {
-@@ -815,7 +869,12 @@ mDNSlocal int SetupSocket(struct sockadd
+@@ -836,7 +890,12 @@ mDNSlocal int SetupSocket(struct sockadd
      }
  
      // Clean up
      assert((err == 0) == (*sktPtr != -1));
      return err;
  }
-@@ -994,7 +1053,7 @@ mDNSlocal mStatus OpenIfNotifySocket(int
+@@ -1026,7 +1085,7 @@ mDNSlocal mStatus OpenIfNotifySocket(int
      /* Subscribe the socket to Link & IP addr notifications. */
      mDNSPlatformMemZero(&snl, sizeof snl);
      snl.nl_family = AF_NETLINK;
      ret = bind(sock, (struct sockaddr *) &snl, sizeof snl);
      if (0 == ret)
          *pFD = sock;
-@@ -1072,11 +1131,18 @@ mDNSlocal mDNSu32       ProcessRoutingNo
+@@ -1104,11 +1163,18 @@ mDNSlocal mDNSu32       ProcessRoutingNo
          PrintNetLinkMsg(pNLMsg);
  #endif
  
  
          // Advance pNLMsg to the next message in the buffer
          if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
-@@ -1247,8 +1313,12 @@ mDNSexport mStatus mDNSPlatformInit(mDNS
+@@ -1279,8 +1345,12 @@ mDNSexport mStatus mDNSPlatformInit(mDNS
      if (err == mStatus_NoError) err = SetupSocket(&sa, zeroIPPort, 0, &m->p->unicastSocket6);
  #endif
  
  
      // Tell mDNS core about DNS Servers
      mDNS_Lock(m);
-@@ -1281,9 +1351,17 @@ mDNSexport void mDNSPlatformClose(mDNS *
+@@ -1313,9 +1383,17 @@ mDNSexport void mDNSPlatformClose(mDNS *
  {
      assert(m != NULL);
      ClearInterfaceList(m);
  #endif
  }
  
-@@ -1533,14 +1611,14 @@ mDNSexport mStatus    mDNSPlatformClearS
+@@ -1571,14 +1649,14 @@ mDNSexport mStatus    mDNSPlatformClearS
  mDNSexport mDNSu16 mDNSPlatformGetUDPPort(UDPSocket *sock)
  {
      (void) sock; // unused
index eed2348752f8384e11e6fa955f51f8bd9c2a196e..6656806b5a32e1b70d43d8aeddaa6a41d59539ad 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luci-app-mwan3
-PKG_VERSION:=1.3
-PKG_RELEASE:=5
+PKG_VERSION:=1.4
+PKG_RELEASE:=2
 PKG_MAINTAINER:=Aedan Renner <chipdankly@gmail.com>
 PKG_LICENSE:=GPLv2
 
index bf524d1df7579ff17f8caa5f93d6a9033e4adba9..cbd8bdd03ed2b2d97e46e678914e040cef3b7677 100644 (file)
@@ -88,6 +88,39 @@ proto = mwan_rule:option(DummyValue, "proto", translate("Protocol"))
                return self.map:get(s, "proto") or "all"
        end
 
+sticky = mwan_rule:option(DummyValue, "sticky", translate("Sticky"))
+       sticky.rawhtml = true
+       function sticky.cfgvalue(self, s)
+               if self.map:get(s, "sticky") == "1" then
+                       stickied = 1
+                       return "Yes"
+               else
+                       stickied = nil
+                       return "No"
+               end
+       end
+
+timeout = mwan_rule:option(DummyValue, "timeout", translate("Sticky timeout"))
+       timeout.rawhtml = true
+       function timeout.cfgvalue(self, s)
+               if stickied then
+                       local timeoutValue = self.map:get(s, "timeout")
+                       if timeoutValue then
+                               return timeoutValue .. "s"
+                       else
+                               return "600s"
+                       end
+               else
+                       return "&#8212;"
+               end
+       end
+
+ipset = mwan_rule:option(DummyValue, "ipset", translate("IPset"))
+       ipset.rawhtml = true
+       function ipset.cfgvalue(self, s)
+               return self.map:get(s, "ipset") or "&#8212;"
+       end
+
 use_policy = mwan_rule:option(DummyValue, "use_policy", translate("Policy assigned"))
        use_policy.rawhtml = true
        function use_policy.cfgvalue(self, s)
index 831ab35b91b3bbadb2ab9af7cb6982b43130dad9..d880a72e2979eb18e715481ffcb027a722ffef7a 100644 (file)
@@ -81,6 +81,19 @@ proto = mwan_rule:option(Value, "proto", translate("Protocol"),
        proto:value("esp")
        cbiAddProtocol(proto)
 
+sticky = mwan_rule:option(ListValue, "sticky", translate("Sticky"),
+       translate("Traffic from the same source IP address that previously matched this rule within the sticky timeout period will use the same WAN interface"))
+       sticky.default = "0"
+       sticky:value("1", translate("Yes"))
+       sticky:value("0", translate("No"))
+
+timeout = mwan_rule:option(Value, "timeout", translate("Sticky timeout"),
+       translate("Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"))
+       timeout.datatype = "range(1, 1000000)"
+
+ipset = mwan_rule:option(Value, "ipset", translate("IPset"),
+       translate("Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/youtube.com/youtube\")"))
+
 use_policy = mwan_rule:option(Value, "use_policy", translate("Policy assigned"))
        cbiAddPolicy(use_policy)
        use_policy:value("unreachable", translate("unreachable (reject)"))
index c0f720bae5f3978e5ab3ca7db18562b69847bf46..d714d4fe9dcc1f7bee7d8c2d188477edf4f6a990 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=1.5
-PKG_RELEASE:=10
+PKG_VERSION:=1.6
+PKG_RELEASE:=1
 PKG_MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
 PKG_LICENSE:=GPLv2
 
@@ -19,7 +19,7 @@ define Package/mwan3
    SECTION:=net
    CATEGORY:=Network
    SUBMENU:=Routing and Redirection
-   DEPENDS:=+ip +iptables +iptables-mod-conntrack-extra +iptables-mod-ipopt
+   DEPENDS:=+ip +ipset +iptables +iptables-mod-conntrack-extra +iptables-mod-ipopt
    TITLE:=Multiwan hotplug script with connection tracking support
    MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
    PKGARCH:=all
index 53f2f9832aea47b7c34de2e8487753cb9a85f3a0..f66c024c0b3560ff0b8480acf43ff607d84c998c 100644 (file)
@@ -61,17 +61,18 @@ config policy 'wan2_wan'
        list use_member 'wan_m2_w3'
        list use_member 'wan2_m1_w2'
 
-config rule 'sticky_even'
-       option src_ip '0.0.0.0/0.0.0.1'
-       option dest_port '443'
+config rule 'youtube'
+       option sticky '1'
+       option ipset 'youtube'
+       option dest_port '80,443'
        option proto 'tcp'
-       option use_policy 'wan_wan2'
+       option use_policy 'balanced'
 
-config rule 'sticky_odd'
-       option src_ip '0.0.0.1/0.0.0.1'
+config rule 'https'
+       option sticky '1'
        option dest_port '443'
        option proto 'tcp'
-       option use_policy 'wan2_wan'
+       option use_policy 'balanced'
 
 config rule 'default_rule'
        option dest_ip '0.0.0.0/0'
index 25044c4d396d96bd38eb90f700126dfc75492e73..f117e49e6bc24a5f4356d438808d328bcbcaba0f 100644 (file)
@@ -12,12 +12,18 @@ mwan3_set_general_iptables()
                $IPT -N mwan3_ifaces
        fi
 
-       if ! $IPT -S mwan3_rules &> /dev/null; then
-               $IPT -N mwan3_rules
-       fi
-
        if ! $IPT -S mwan3_connected &> /dev/null; then
                $IPT -N mwan3_connected
+               $IPS create mwan3_connected hash:net
+               $IPT -A mwan3_connected -m set --match-set mwan3_connected dst -j MARK --set-xmark 0xff00/0xff00
+       fi
+
+       if ! $IPT -S mwan3_track &> /dev/null; then
+               $IPT -N mwan3_track
+       fi
+
+       if ! $IPT -S mwan3_rules &> /dev/null; then
+               $IPT -N mwan3_rules
        fi
 
        if ! $IPT -S mwan3_hook &> /dev/null; then
@@ -25,15 +31,12 @@ mwan3_set_general_iptables()
                $IPT -A mwan3_hook -j CONNMARK --restore-mark --nfmask 0xff00 --ctmask 0xff00
                $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_ifaces
                $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_connected
+               $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_track
                $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_rules
                $IPT -A mwan3_hook -j CONNMARK --save-mark --nfmask 0xff00 --ctmask 0xff00
                $IPT -A mwan3_hook -m mark ! --mark 0xff00/0xff00 -j mwan3_connected
        fi
 
-       if ! $IPT -S mwan3_output_hook &> /dev/null; then
-               $IPT -N mwan3_output_hook
-       fi
-
        if ! $IPT -S PREROUTING | grep mwan3_hook &> /dev/null; then
                $IPT -A PREROUTING -j mwan3_hook
        fi
@@ -42,10 +45,6 @@ mwan3_set_general_iptables()
                $IPT -A OUTPUT -j mwan3_hook
        fi
 
-       if ! $IPT -S OUTPUT | grep mwan3_output_hook &> /dev/null; then
-               $IPT -A OUTPUT -j mwan3_output_hook
-       fi
-
        $IPT -F mwan3_rules
 }
 
@@ -62,28 +61,29 @@ mwan3_set_general_rules()
 
 mwan3_set_connected_iptables()
 {
-       local connected_networks
+       local connected_network
 
        if $IPT -S mwan3_connected &> /dev/null; then
-               $IPT -F mwan3_connected
 
-               for connected_networks in $($IP route | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
-                       $IPT -A mwan3_connected -d $connected_networks -j MARK --set-xmark 0xff00/0xff00
+               $IPS create mwan3_connected_temp hash:net
+
+               for connected_network in $($IP route | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
+                       $IPS -! add mwan3_connected_temp $connected_network
                done
 
-               for connected_networks in $($IP route list table 0 | awk '{print $2}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
-                       $IPT -A mwan3_connected -d $connected_networks -j MARK --set-xmark 0xff00/0xff00
+               for connected_network in $($IP route list table 0 | awk '{print $2}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
+                       $IPS -! add mwan3_connected_temp $connected_network
                done
 
-               $IPT -I mwan3_connected -d 224.0.0.0/3 -j MARK --set-xmark 0xff00/0xff00
-               $IPT -I mwan3_connected -d 127.0.0.0/8 -j MARK --set-xmark 0xff00/0xff00
+               $IPS add mwan3_connected_temp 224.0.0.0/3
+               $IPS swap mwan3_connected_temp mwan3_connected
+               $IPS destroy mwan3_connected_temp
+
        fi
 }
 
 mwan3_set_iface_iptables()
 {
-       local local_net local_nets
-
        if ! $IPT -S mwan3_iface_$INTERFACE &> /dev/null; then
                $IPT -N mwan3_iface_$INTERFACE
        fi
@@ -92,16 +92,7 @@ mwan3_set_iface_iptables()
        $IPT -D mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE &> /dev/null
 
        if [ $ACTION == "ifup" ]; then
-               local_nets=$($IP route list dev $DEVICE scope link | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}')
-
-               if [ -n "$local_nets" ]; then
-                       for local_net in $local_nets ; do
-                               if [ $ACTION == "ifup" ]; then
-                                       $IPT -I mwan3_iface_$INTERFACE -i $DEVICE -s $local_net -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
-                               fi
-                       done
-               fi
-
+               $IPT -I mwan3_iface_$INTERFACE -i $DEVICE -m set --match-set mwan3_connected src -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
                $IPT -A mwan3_iface_$INTERFACE -i $DEVICE -m mark --mark 0x0/0xff00 -m comment --comment "$INTERFACE" -j MARK --set-xmark $(($iface_id*256))/0xff00
                $IPT -A mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE
        fi
@@ -131,6 +122,17 @@ mwan3_set_iface_rules()
        [ $ACTION == "ifup" ] && $IP rule add pref $(($iface_id+2000)) fwmark $(($iface_id*256))/0xff00 lookup $iface_id
 }
 
+mwan3_set_iface_ipset()
+{
+       local setname entry
+
+       for setname in $(ipset -n list | grep ^mwan3_sticky_); do
+               for entry in $(ipset list $setname | grep "$(echo $(($iface_id*256)) | awk '{ printf "0x%08x", $1; }')" | cut -d ' ' -f 1); do
+                       $IPS del $setname $entry
+               done
+       done
+}
+
 mwan3_track()
 {
        local track_ip track_ips reliability count timeout interval down up
@@ -154,22 +156,23 @@ mwan3_track()
                config_get down $INTERFACE down 5
                config_get up $INTERFACE up 5
 
-               if ! $IPT -S mwan3_track_$INTERFACE &> /dev/null; then
-                       $IPT -N mwan3_track_$INTERFACE
-                       $IPT -A mwan3_output_hook -p icmp -m icmp --icmp-type 8 -m length --length 32 -j mwan3_track_$INTERFACE
-               fi
-
-               $IPT -F mwan3_track_$INTERFACE
+               $IPS -! create mwan3_track_$INTERFACE hash:ip
+               $IPS create mwan3_track_temp_$INTERFACE hash:ip
 
                for track_ip in $track_ips; do
-                       $IPT -A mwan3_track_$INTERFACE -d $track_ip -j MARK --set-xmark 0xff00/0xff00
+                       $IPS -! add mwan3_track_temp_$INTERFACE $track_ip
                done
 
+               $IPS swap mwan3_track_temp_$INTERFACE mwan3_track_$INTERFACE
+               $IPS destroy mwan3_track_temp_$INTERFACE
+
+               $IPT -D mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00 &> /dev/null
+               $IPT -A mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00
+
                [ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $INTERFACE $DEVICE $reliability $count $timeout $interval $down $up $track_ips &
        else
-               $IPT -D mwan3_output_hook -p icmp -m icmp --icmp-type 8 -m length --length 32 -j mwan3_track_$INTERFACE &> /dev/null
-               $IPT -F mwan3_track_$INTERFACE &> /dev/null
-               $IPT -X mwan3_track_$INTERFACE &> /dev/null
+               $IPT -D mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00 &> /dev/null
+               $IPS destroy mwan3_track_$INTERFACE
        fi
 }
 
@@ -182,7 +185,7 @@ mwan3_set_policy()
        config_get weight $1 weight 1
 
        [ -n "$INTERFACE" ] || return 0
-       
+
        config_foreach mwan3_get_iface_id interface
 
        [ -n "$iface_id" ] || return 0
@@ -200,19 +203,19 @@ mwan3_set_policy()
 
                        total_weight=$(($total_weight+$weight))
                        probability=$(($weight*1000/$total_weight))
-                       
+
                        if [ "$probability" -lt 10 ]; then
                                probability="0.00$probability"
-                               elif [ $probability -lt 100 ]; then
+                       elif [ $probability -lt 100 ]; then
                                probability="0.0$probability"
-                               elif [ $probability -lt 1000 ]; then
+                       elif [ $probability -lt 1000 ]; then
                                probability="0.$probability"
                        else
                                probability="1"
                        fi
 
                        probability="-m statistic --mode random --probability $probability"
-                       
+
                        $IPT -I mwan3_policy_$policy -m mark --mark 0x0/0xff00 $probability -m comment --comment "$INTERFACE $weight $total_weight" -j MARK --set-xmark $(($iface_id*256))/0xff00
                fi
        fi
@@ -254,10 +257,34 @@ mwan3_set_policies_iptables()
        config_list_foreach $policy use_member mwan3_set_policy
 }
 
+mwan3_set_sticky_iptables()
+{
+       local INTERFACE iface_count iface_id
+
+       INTERFACE="$1"
+
+       config_foreach mwan3_get_iface_id interface
+       unset iface_count
+
+       $IPS -! create mwan3_sticky_$rule hash:ip,mark markmask 0xff00 timeout $timeout
+
+       if [ -n "$iface_id" ]; then
+               if [ -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" ]; then
+                       $IPT -I mwan3_rule_$rule -m set ! --match-set mwan3_sticky_$rule src,src -j MARK --set-xmark 0x0/0xff00
+                       $IPT -I mwan3_rule_$rule -m mark --mark 0/0xff00 -j MARK --set-xmark $(($iface_id*256))/0xff00
+               fi
+       fi
+
+       unset iface_id
+}
+
 mwan3_set_user_rules_iptables()
 {
-       local proto src_ip src_port dest_ip dest_port use_policy
+       local ipset proto src_ip src_port sticky dest_ip dest_port use_policy rule timeout
 
+       config_get sticky $1 sticky 0
+       config_get timeout $1 timeout 600
+       config_get ipset $1 ipset
        config_get proto $1 proto all
        config_get src_ip $1 src_ip 0.0.0.0/0
        config_get src_port $1 src_port 0:65535
@@ -265,6 +292,20 @@ mwan3_set_user_rules_iptables()
        config_get dest_port $1 dest_port 0:65535
        config_get use_policy $1 use_policy
 
+       rule="$1"
+
+       if [ "$rule" != $(echo "$rule" | cut -c1-15) ]; then
+               $LOG warn "Rule $rule exceeds max of 15 chars. Not setting rule" && return 0
+       fi
+
+       if [ -n "$ipset" ]; then
+               if [ -z "$($IPS -n list $ipset)" ]; then
+                       $IPS create $ipset hash:ip timeout 3600
+               fi
+
+               ipset="-m set --match-set $ipset dst"
+       fi
+
        if [ -n "$use_policy" ]; then
                if [ "$use_policy" == "default" ]; then
                        use_policy="MARK --set-xmark 0xff00/0xff00"
@@ -273,15 +314,32 @@ mwan3_set_user_rules_iptables()
                elif [ "$use_policy" == "blackhole" ]; then
                        use_policy="MARK --set-xmark 0xfd00/0xff00"
                else
-                       use_policy="mwan3_policy_$use_policy"
+                       if [ "$sticky" -eq 1 ]; then
+
+                               if ! $IPT -S mwan3_rule_$rule &> /dev/null; then
+                                       $IPT -N mwan3_rule_$rule
+                               fi
+
+                               $IPT -F mwan3_rule_$rule
+
+                               config_foreach mwan3_set_sticky_iptables interface
+
+                               $IPT -A mwan3_rule_$rule -m mark --mark 0/0xff00 -j mwan3_policy_$use_policy
+                               $IPT -A mwan3_rule_$rule -m mark ! --mark 0xfc00/0xfc00 -j SET --del-set mwan3_sticky_$rule src,src
+                               $IPT -A mwan3_rule_$rule -m mark ! --mark 0xfc00/0xfc00 -j SET --add-set mwan3_sticky_$rule src,src
+
+                               use_policy="mwan3_rule_$rule"
+                       else
+                               use_policy="mwan3_policy_$use_policy"
+                       fi
                fi
 
                case $proto in
                        tcp|udp)
-                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
+                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
                        ;;
                        *)
-                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
+                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
                        ;;
                esac
        fi
@@ -333,6 +391,7 @@ mwan3_ifupdown()
        mwan3_set_iface_route
        mwan3_set_iface_rules
 
+       [ $ACTION == "ifdown" ] && mwan3_set_iface_ipset
        [ $ACTION == "ifup" ] && mwan3_track
 
        config_foreach mwan3_set_policies_iptables policy
@@ -346,9 +405,15 @@ if [ $ACTION == "ifup" ]; then
        [ -n "$DEVICE" ] || exit 0
 fi
 
-local IP IPT LOG
+[ -x /usr/sbin/ip ] || exit 1
+[ -x /usr/sbin/ipset ] || exit 1
+[ -x /usr/sbin/iptables ] || exit 1
+[ -x /usr/bin/logger ] || exit 1
+
+local IP IPS IPT LOG
 
 IP="/usr/sbin/ip -4"
+IPS="/usr/sbin/ipset"
 IPT="/usr/sbin/iptables -t mangle -w"
 LOG="/usr/bin/logger -t mwan3 -p"
 
index 286603a85a51c12fdaa02d0e1ac4bef6eee33799..c69d94eeb6c6680c2f89a28f1a0466ac4371f987 100755 (executable)
@@ -2,14 +2,15 @@
 . /lib/functions.sh
 
 IP="/usr/sbin/ip -4"
+IPS="/usr/sbin/ipset"
 IPT="/usr/sbin/iptables -t mangle -w"
 
 help()
-{                                                                    
-       cat <<EOF                                                                                      
-Syntax: mwan3 [command]                                                                          
-                                                                                                       
-Available commands:                                                                                    
+{
+       cat <<EOF
+Syntax: mwan3 [command]
+
+Available commands:
        start           Load iptables rules, ip rules and ip routes
        stop            Unload iptables rules, ip rules and ip routes
        restart         Reload iptables rules, ip rules and ip routes
@@ -54,11 +55,11 @@ ifup()
        if [ -n "$2" ]; then
                echo "Too many arguments. Usage: mwan3 ifup <interface>" && exit 0
        fi
-       
+
        config_get enabled "$1" enabled 0
 
        device=$(uci get -p /var/state network.$1.ifname) &> /dev/null
-       
+
        if [ -n "$device" ] ; then
                [ "$enabled" -eq 1 ] && ACTION=ifup INTERFACE=$1 DEVICE=$device /sbin/hotplug-call iface
        fi
@@ -71,14 +72,14 @@ interfaces()
        config_load mwan3
 
        echo "Interface status:"
-       
+
        check_iface_status()
        {
                let iface_id++
                device=$(uci get -p /var/state network.$1.ifname) &> /dev/null
 
                if [ -z "$device" ]; then
-                       echo "Interface $1 is unknown"
+                       echo " interface $1 is unknown"
                        return 0
                fi
 
@@ -92,21 +93,21 @@ interfaces()
 
                if [ -n "$($IP rule | awk '$5 == "'$device'"')" -a -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -a -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
                        if [ -n "$(uci get -p /var/state mwan3.$1.track_ip 2> /dev/null)" ]; then
-                               echo "Interface $1 is online (tracking $tracking)"
+                               echo " interface $1 is online (tracking $tracking)"
                        else
-                               echo "Interface $1 is online"
+                               echo " interface $1 is online"
                        fi
                elif [ -n "$($IP rule | awk '$5 == "'$device'"')" -o -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -o -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
-                       echo "Interface $1 error"
+                       echo " interface $1 error"
                else
                        if [ "$enabled" -eq 1 ]; then
                                if [ -n "$(uci get -p /var/state mwan3.$1.track_ip 2> /dev/null)" ]; then
-                                       echo "Interface $1 is offline (tracking $tracking)"
+                                       echo " interface $1 is offline (tracking $tracking)"
                                else
-                                       echo "Interface $1 is offline"
+                                       echo " interface $1 is offline"
                                fi
                        else
-                               echo "Interface $1 is disabled"
+                               echo " interface $1 is disabled"
                        fi
                fi
        }
@@ -141,17 +142,19 @@ policies()
 }
 rules()
 {
+       local address
+
        if [ -n "$($IPT -S mwan3_connected 2> /dev/null)" ]; then
                echo "Known networks:"
-               echo "destination policy hits" | awk '{ printf "%-19s%-19s%-9s%s\n",$1,$2,$3}' | awk '1; {gsub(".","-")}1'
-               $IPT -L mwan3_connected -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_//' | awk '{printf "%-19s%-19s%-9s%s\n",$9,"default",$1}'
+               for address in $($IPS list mwan3_connected | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
+                       echo " $address"
+               done
                echo -e
        fi
 
        if [ -n "$($IPT -S mwan3_rules 2> /dev/null)" ]; then
                echo "Active rules:"
-               echo "source destination proto src-port dest-port policy hits" | awk '{ printf "%-19s%-19s%-7s%-14s%-14s%-16s%-9s%s\n",$1,$2,$3,$4,$5,$6,$7}' | awk '1; {gsub(".","-")}1'
-               $IPT -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_//' | awk '{ printf "%-19s%-19s%-7s%-14s%-14s%-16s%-9s%s\n",$8,$9,$4,$12,$15,$3,$1}'
+               $IPT -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_/- /' | sed 's/mwan3_rule_/S /'
                echo -e
        fi
 }
@@ -171,7 +174,7 @@ start()
 
 stop()
 {
-       local route rule table
+       local ipset route rule table
 
        killall mwan3track &> /dev/null
        rm /var/run/mwan3track-* &> /dev/null
@@ -186,7 +189,6 @@ stop()
 
        $IPT -D PREROUTING -j mwan3_hook &> /dev/null
        $IPT -D OUTPUT -j mwan3_hook &> /dev/null
-       $IPT -D OUTPUT -j mwan3_output_hook &> /dev/null
 
        for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
                $IPT -F $table &> /dev/null
@@ -195,6 +197,10 @@ stop()
        for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
                $IPT -X $table &> /dev/null
        done
+
+       for ipset in $(ipset -n list | grep mwan3); do
+               $IPS destroy $ipset
+       done
 }
 
 restart() {
index 6fbf1b8bdef567ade8918762e24fb0c64a555b05..5736e0d7d4cc7b87954234b56c47378902ec2c7f 100644 (file)
@@ -216,7 +216,6 @@ define Package/libnetsnmp/install
 endef
 
 define Package/snmpd/conffiles
-/etc/default/snmpd
 /etc/config/snmpd
 endef
 
@@ -225,8 +224,6 @@ define Package/snmpd/install
        $(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
        $(INSTALL_DIR) $(1)/etc/snmp
        ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DATA) ./files/snmpd.default $(1)/etc/default/snmpd
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
        $(INSTALL_DIR) $(1)/usr/sbin
@@ -234,7 +231,6 @@ define Package/snmpd/install
 endef
 
 define Package/snmpd-static/conffiles
-/etc/default/snmpd
 /etc/config/snmpd
 endef
 
@@ -243,8 +239,6 @@ define Package/snmpd-static/install
        $(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
        $(INSTALL_DIR) $(1)/etc/snmp
        ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
-       $(INSTALL_DIR) $(1)/etc/default
-       $(INSTALL_DATA) ./files/snmpd.default $(1)/etc/default/snmpd
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
        $(INSTALL_DIR) $(1)/usr/sbin
diff --git a/net/net-snmp/files/snmpd.default b/net/net-snmp/files/snmpd.default
deleted file mode 100644 (file)
index 758c8e4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-OPTIONS="-Lf /dev/null -p /var/run/snmpd.pid"
index 2668b7b3e5dd457b7e3527e7347adbf3b4f53d68..3dd8c41dc2f836a7312c8f3de09077c6c3386c76 100644 (file)
@@ -2,35 +2,35 @@
 # Copyright (C) 2008 OpenWrt.org
 START=50
 
-DEFAULT=/etc/default/snmpd
-LIB_D=/var/lib/snmp
-LOG_D=/var/log
-RUN_D=/var/run
-PID_F=$RUN_D/snmpd.pid
-RUN_C=$RUN_D/snmpd.conf
+USE_PROCD=1
+PROG="/usr/sbin/snmpd"
+
+CONFIGFILE="/var/run/snmpd.conf"
 
 snmpd_agent_add() {
        local cfg="$1"
 
        config_get agentaddress "$cfg" agentaddress
        [ -n "$agentaddress" ] || return 0
-       echo "agentaddress $agentaddress" >> $RUN_C
+       echo "agentaddress $agentaddress" >> $CONFIGFILE
 }
+
 snmpd_system_add() {
        local cfg="$1"
        config_get syslocation "$cfg" sysLocation
-       [ -n "$syslocation" ] && echo "sysLocation $syslocation" >> $RUN_C
+       [ -n "$syslocation" ] && echo "sysLocation $syslocation" >> $CONFIGFILE
        config_get syscontact "$cfg" sysContact
-       [ -n "$syscontact" ] && echo "sysContact $syscontact" >> $RUN_C
+       [ -n "$syscontact" ] && echo "sysContact $syscontact" >> $CONFIGFILE
        config_get sysname "$cfg" sysName
-       [ -n "$sysname" ] && echo "sysName $sysname" >> $RUN_C
+       [ -n "$sysname" ] && echo "sysName $sysname" >> $CONFIGFILE
        config_get sysservice "$cfg" sysService
-       [ -n "$sysservice" ] && echo "sysService $sysservice" >> $RUN_C
+       [ -n "$sysservice" ] && echo "sysService $sysservice" >> $CONFIGFILE
        config_get sysdescr "$cfg" sysDescr
-       [ -n "$sysdescr" ] && echo "sysDescr $sysdescr" >> $RUN_C
+       [ -n "$sysdescr" ] && echo "sysDescr $sysdescr" >> $CONFIGFILE
        config_get sysobjectid "$cfg" sysObjectID
-       [ -n "$sysobjectid" ] && echo "sysObjectID $sysobjectid" >> $RUN_C
+       [ -n "$sysobjectid" ] && echo "sysObjectID $sysobjectid" >> $CONFIGFILE
 }
+
 snmpd_com2sec_add() {
        local cfg="$1"
        config_get secname "$cfg" secname
@@ -39,8 +39,9 @@ snmpd_com2sec_add() {
        [ -n "$source" ] || return 0
        config_get community "$cfg" community
        [ -n "$community" ] || return 0
-       echo "com2sec $secname $source $community" >> $RUN_C
+       echo "com2sec $secname $source $community" >> $CONFIGFILE
 }
+
 snmpd_com2sec6_add() {
        local cfg="$1"
        config_get secname "$cfg" secname
@@ -49,8 +50,9 @@ snmpd_com2sec6_add() {
        [ -n "$source" ] || return 0
        config_get community "$cfg" community
        [ -n "$community" ] || return 0
-       echo "com2sec6 $secname $source $community" >> $RUN_C
+       echo "com2sec6 $secname $source $community" >> $CONFIGFILE
 }
+
 snmpd_group_add() {
        local cfg="$1"
        config_get group "$cfg" group
@@ -59,8 +61,9 @@ snmpd_group_add() {
        [ -n "$version" ] || return 0
        config_get secname "$cfg" secname
        [ -n "$secname" ] || return 0
-       echo "group $group $version $secname" >> $RUN_C
+       echo "group $group $version $secname" >> $CONFIGFILE
 }
+
 snmpd_view_add() {
        local cfg="$1"
        config_get viewname "$cfg" viewname
@@ -71,8 +74,9 @@ snmpd_view_add() {
        [ -n "$oid" ] || return 0
        # optional mask
        config_get mask "$cfg" mask
-       echo "view $viewname $type $oid $mask" >> $RUN_C
+       echo "view $viewname $type $oid $mask" >> $CONFIGFILE
 }
+
 snmpd_access_add() {
        local cfg="$1"
        config_get group "$cfg" group
@@ -92,8 +96,9 @@ snmpd_access_add() {
        [ -n "$write" ] || return 0
        config_get notify "$cfg" notify
        [ -n "$notify" ] || return 0
-       echo "access $group $context $version $level $prefix $read $write $notify" >> $RUN_C
+       echo "access $group $context $version $level $prefix $read $write $notify" >> $CONFIGFILE
 }
+
 snmpd_pass_add() {
        local cfg="$1"
        local pass='pass'
@@ -106,8 +111,9 @@ snmpd_pass_add() {
        [ $persist -ne 0 ] && pass='pass_persist'
        config_get priority "$cfg" priority
        priority=${priority:+-p $priority}
-       echo "$pass $priority $miboid $prog" >> $RUN_C
+       echo "$pass $priority $miboid $prog" >> $CONFIGFILE
 }
+
 snmpd_exec_add() {
        local cfg="$1"
 
@@ -117,8 +123,9 @@ snmpd_exec_add() {
        [ -n "$prog" ] || return 0
        config_get args "$cfg" args
        config_get miboid "$cfg" miboid
-       echo "exec $miboid $name $prog $args" >> $RUN_C
+       echo "exec $miboid $name $prog $args" >> $CONFIGFILE
 }
+
 snmpd_disk_add() {
         local cfg="$1"
         local disk='disk'
@@ -127,13 +134,13 @@ snmpd_disk_add() {
         [ -n "$partition" ] || return 0
         config_get size "$cfg" size
         [ -n "$size" ] || return 0
-        echo "$disk $partition $size" >> $RUN_C
+        echo "$disk $partition $size" >> $CONFIGFILE
 }
-start() {
-       [ -d $LIB_D ] || mkdir -p $LIB_D
-       [ -d $LOG_D ] || mkdir -p $LOG_D
-       [ -d $RUN_D ] || mkdir -p $RUN_D
-       [ -f $RUN_C ] && rm -f $RUN_C
+
+start_service() {
+       [ -f "$CONFIGFILE" ] && rm -f "$CONFIGFILE"
+
+       procd_open_instance
 
        config_load snmpd
 
@@ -148,10 +155,17 @@ start() {
        config_foreach snmpd_exec_add exec
        config_foreach snmpd_disk_add disk
        
-       [ -f $DEFAULT ] && . $DEFAULT
-       $DEBUG /usr/sbin/snmpd $OPTIONS
+       procd_set_param command $PROG -Lf /dev/null -f
+       procd_set_param file $CONFIGFILE
+       procd_set_param respawn
+
+       for iface in $(ls /sys/class/net 2>/dev/null); do
+               procd_append_param netdev "$iface"
+       done
+
+       procd_close_instance
 }
-stop() {
-       [ -f $PID_F ] && kill $(cat $PID_F)
-       [ -f $RUN_C ] && rm -f $RUN_C
+
+stop_service() {
+       [ -f "$CONFIGFILE" ] && rm -f "$CONFIGFILE"
 }
index c3098b4d3e4ca028d3436eb16fbf524cdc3188d7..605d65380febf2d307429ce50932da15a25511af 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openconnect
-PKG_VERSION:=7.04
-PKG_RELEASE:=3
+PKG_VERSION:=7.05
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
-PKG_MD5SUM:=828fe81388b7ea1155419b8be64a350f
+PKG_MD5SUM:=10cd4f61e8a11cdf793da2b0fd7a6003
 
 PKG_CONFIG_DEPENDS:= \
        CONFIG_OPENCONNECT_GNUTLS \
index f6d2f051c1e0bdee6f82a692ae59ffbc9691a92a..7a55da01449958a2d5036e69bd0bc126b58e7934 100644 (file)
@@ -12,6 +12,7 @@ config interface 'MYVPN'
         option serverhash 'AE7FF6A0426F0A0CD0A02EB9EC3C5066FAEB0B25'
         option token_mode 'rsa' # when built with stoken support
         option token_secret 'secret' # when built with stoken support
+       option defaultroute '0'
         option authgroup 'DEFAULT'
 
 The additional files are also used:
index 055b0030e01b33161d384f3394fb421989a611ef..279fa0ba42523d50d23fd827d1cd895394d3014a 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssh
-PKG_VERSION:=6.7p1
-PKG_RELEASE:=3
+PKG_VERSION:=6.8p1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
                http://ftp.belnet.be/pub/OpenBSD/OpenSSH/portable/
-PKG_MD5SUM:=3246aa79317b1d23cae783a3bf8275d6
+PKG_MD5SUM:=08f72de6751acfbd0892b5f003922701
 
 PKG_LICENSE:=BSD ISC
 PKG_LICENSE_FILES:=LICENCE
@@ -29,7 +29,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/openssh/Default
        SECTION:=net
        CATEGORY:=Network
-       DEPENDS:=+libopenssl +zlib +SSP_SUPPORT:libssp
+       DEPENDS:=+libopenssl +zlib
        TITLE:=OpenSSH
        MAINTAINER:=Peter Wagner <tripolar@gmx.at>
        URL:=http://www.openssh.com/
@@ -124,7 +124,8 @@ endef
 define Package/openssh-sftp-server
        $(call Package/openssh/Default)
        TITLE+= SFTP server
-       DEPENDS:=+SSP_SUPPORT:libssp
+       # Strip dependencies to avoid pulling in OpenSSL etc.
+       DEPENDS:=
 endef
 
 define Package/openssh-sftp-server/description
index be8bbcf9c4ade46547cdeaf834fcdd4c859794bf..7d46d20d3a060676b47bfe1b41d3ec8b0912fb50 100644 (file)
@@ -1,6 +1,6 @@
 --- a/includes.h
 +++ b/includes.h
-@@ -59,6 +59,9 @@
+@@ -60,6 +60,9 @@
  /*
   *-*-nto-qnx needs these headers for strcasecmp and LASTLOG_FILE respectively
   */
index 97e782e89976a94cd32b02dfa029312262f0f6ef..3fb6ca8935b1613cccaaaf0f5a5186c4c0ae67a0 100644 (file)
@@ -95,7 +95,8 @@ define KernelPackage/openvswitch
   SUBMENU:=Network Support
   TITLE:=Open vSwitch Kernel Package
   KCONFIG:=CONFIG_BRIDGE
-  DEPENDS:=+kmod-stp +kmod-ipv6 +kmod-gre +kmod-lib-crc32c +kmod-vxlan
+  DEPENDS:=+kmod-stp +kmod-ipv6 +kmod-gre +kmod-lib-crc32c +kmod-vxlan \
+           @(LINUX_3_8||LINUX_3_10||LINUX_3_13||LINUX_3_14)
   FILES:= \
        $(PKG_BUILD_DIR)/datapath/linux/openvswitch.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,21,openvswitch)
index cb597a0ab916b60c341845809d2d41bbdaf0d3f5..74a78a9bfa43edc17574de0bf4dfffb6925b59c1 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pen
-PKG_VERSION:=0.27.1
+PKG_VERSION:=0.27.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://siag.nu/pub/pen/
-PKG_MD5SUM:=652c457266b6ec6a295f4c7895785674
+PKG_MD5SUM:=79014750cc0ea253437b516716932115
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
index a829ce8c20a4b2a2977e5dc24a792867c94dc225..4ff6d38adfd7a07f26882e8e24ad72208c8e3d3c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=prosody
-PKG_VERSION:=0.9.7
-PKG_RELEASE:=2
+PKG_VERSION:=0.9.8
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://prosody.im/downloads/source
-PKG_MD5SUM:=47de7f593279e327792df78cfa93e8a7
+PKG_MD5SUM:=5144cd832a1860443e21e336dc560ee7
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=MIT/X11
 
index ef2d4907f14bee5b291c0ec317b5504920db14c9..266e45c814f49d4799334b5a4056d4bdff3ecd89 100644 (file)
@@ -40,38 +40,104 @@ endef
 PKG_BUILD_DEPENDS:=python-setuptools
 PYTHONPATH:=$(PYTHONPATH):$(PKG_BUILD_DIR)/thirdpart
 
+define Download/django
+   FILE=Django-1.5.8.tar.gz
+   URL=https://www.djangoproject.com/m/releases/1.5/
+   MD5SUM:=675fc736e2c29090f005e217ccf90b5b
+endef
+
+define Download/djblets
+   PROTO=git
+   URL=https://github.com/djblets/djblets.git
+   SUBDIR=djblets-0.6.14
+   FILE=djblets-0.6.14.tar.gz
+   VERSION=58c09bae9b71ac164f78c76746fd2e545aae6c68
+endef
+
+define Download/gunicorn
+   FILE=gunicorn-0.16.1.tar.gz
+   URL=https://pypi.python.org/packages/source/g/gunicorn/
+   MD5SUM:=d53d5d04d941f2a3089e814e753a218f
+endef
+
+define Download/six
+   FILE=six-1.4.1.tar.gz
+   URL=https://pypi.python.org/packages/source/s/six/
+   MD5SUM:=bdbb9e12d3336c198695aa4cf3a61d62
+endef
+
+define Download/chardet
+   FILE=chardet-2.1.1.tar.gz
+   URL=https://pypi.python.org/packages/source/c/chardet/
+   MD5SUM:=295367fd210d20f3febda615a88e1ef0
+endef
+
+define Download/flup
+   FILE=flup-1.0.2-py2.6.egg
+   URL=https://pypi.python.org/packages/2.6/f/flup/
+   MD5SUM:=93ec6e3baeee3e5649a8456105178d4e
+endef
+
+define Download/lockfile
+   FILE=lockfile-0.9.1.tar.gz
+   URL=https://pypi.python.org/packages/source/l/lockfile/
+   MD5SUM:=ce61468d4c1263e3005737bbed2641f0
+endef
+
+define Download/python-daemon
+   FILE=python-daemon-1.5.5.tar.gz
+   URL=https://pypi.python.org/packages/source/p/python-daemon/
+   MD5SUM:=1f6cd41473c2e201021a0aeef395b2b1
+endef
+
+define Download/python-dateutil
+   FILE=python-dateutil-1.5.tar.gz
+   URL=https://pypi.python.org/packages/source/p/python-dateutil/
+   MD5SUM:=0dcb1de5e5cad69490a3b6ab63f0cfa5
+endef
+
 define Build/Configure
 endef
 
 define Build/Compile
+       # Download python dependencies
+       $(eval $(call Download,django))
+       $(eval $(call Download,djblets))
+       $(eval $(call Download,gunicorn))
+       $(eval $(call Download,six))
+       $(eval $(call Download,chardet))
+       $(eval $(call Download,flup))
+       $(eval $(call Download,lockfile))
+       $(eval $(call Download,python-daemon))
+       $(eval $(call Download,python-dateutil))
        # Install python dependencies
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://www.djangoproject.com/m/releases/1.5/Django-1.5.8.tar.gz)
+               $(DL_DIR)/Django-1.5.8.tar.gz)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://github.com/djblets/djblets/archive/release-0.6.14.tar.gz)
+               $(DL_DIR)/djblets-0.6.14.tar.gz)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://pypi.python.org/packages/source/g/gunicorn/gunicorn-0.16.1.tar.gz)
+               $(DL_DIR)/gunicorn-0.16.1.tar.gz)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://pypi.python.org/packages/source/s/six/six-1.4.1.tar.gz)
+               $(DL_DIR)/six-1.4.1.tar.gz)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://pypi.python.org/packages/source/c/chardet/chardet-2.1.1.tar.gz)
+               $(DL_DIR)/chardet-2.1.1.tar.gz)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://pypi.python.org/packages/2.6/f/flup/flup-1.0.2-py2.6.egg)
+               $(DL_DIR)/flup-1.0.2-py2.6.egg)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://pypi.python.org/packages/source/l/lockfile/lockfile-0.9.1.tar.gz)
+               $(DL_DIR)/lockfile-0.9.1.tar.gz)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://pypi.python.org/packages/source/p/python-daemon/python-daemon-1.5.5.tar.gz)
+               $(DL_DIR)/python-daemon-1.5.5.tar.gz)
        $(call HostPython,, \
                $(STAGING_DIR_ROOT)/usr/bin/easy_install -d $(PKG_BUILD_DIR)/thirdpart -Z -N \
-               https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-1.5.tar.gz)
+               $(DL_DIR)/python-dateutil-1.5.tar.gz)
 endef
 
 define Package/seafile-seahub/install
index 2c948665cd9ffd636511facfd0cbe1ea4a2478bb..06b690600feeeb9967c0991757b1e87ed9d70a51 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=snort
-PKG_VERSION:=2.9.7.0
+PKG_VERSION:=2.9.7.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://www.snort.org/downloads/snort/
-PKG_MD5SUM:=c2a45bc56441ee9456478f219dd8d1e2
+PKG_MD5SUM:=b01e9964827394c39194a0147bc15705
 
 PKG_BUILD_DEPENDS:=librpc
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
diff --git a/net/spawn-fcgi/Makefile b/net/spawn-fcgi/Makefile
new file mode 100644 (file)
index 0000000..54c9ab7
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# Copyright (C) 2006-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:=spawn-fcgi
+PKG_VERSION:=1.6.4
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/
+PKG_MD5SUM:=a67c098a50cd625fd12adf61b5dd4c32
+
+PKG_LICENSE:=BSD-3c
+PKG_LICENSE_FILES:=COPYING
+
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/spawn-fcgi
+  SUBMENU:=Web Servers/Proxies
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Tool to spawn fastcgi applications
+  URL:=http://redmine.lighttpd.net/projects/spawn-fcgi
+endef
+
+define Package/spawn-fcgi/description
+       spawn-fcgi is used to spawn fastcgi applications
+endef
+
+define Package/spawn-fcgi/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/spawn-fcgi $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,spawn-fcgi))
index 99796021d944e2afc5c701e69846afa10637d645..439307e3103cd1355d97674e4fed8bfdf62d554b 100755 (executable)
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-[ "$ACTION" = ifup ] && /usr/lib/sqm/run.sh interface ${DEVICE}
+[ "$ACTION" = ifup ] && /usr/lib/sqm/run.sh start ${DEVICE}
index 70307a6e1e7365433de76bc96443ff7248db2af8..2a40afb5aa5a2fde618859fcd3b9f02591a52a16 100755 (executable)
@@ -4,7 +4,7 @@ START=50
 
 reload()
 {
-/usr/lib/sqm/run.sh
+/usr/lib/sqm/run.sh start
 }
 
 restart()
index 3411b8f31ec095ac8ec3d60e04f1ef40590fdc8d..a0b2c6ffde1230954c8a9fd627708cb020a5c11e 100644 (file)
@@ -253,8 +253,8 @@ get_target() {
        # either e.g. 100ms or auto
        CUR_TARGET_VALUE=$( echo ${CUR_TARGET} | grep -o -e \^'[[:digit:]]\+' )
        CUR_TARGET_UNIT=$( echo ${CUR_TARGET} | grep -o -e '[[:alpha:]]\+'\$ )
-#      [ ! -z "$CUR_TARGET" ] && sqm_logger "CUR_TARGET_VALUE: $CUR_TARGET_VALUE"
-#      [ ! -z "$CUR_TARGET" ] && sqm_logger "CUR_TARGET_UNIT: $CUR_TARGET_UNIT"
+       #[ ! -z "$CUR_TARGET" ] && sqm_logger "CUR_TARGET_VALUE: $CUR_TARGET_VALUE"
+       #[ ! -z "$CUR_TARGET" ] && sqm_logger "CUR_TARGET_UNIT: $CUR_TARGET_UNIT"
        
        AUTO_TARGET=
        UNIT_VALID=
@@ -271,14 +271,42 @@ get_target() {
                                        ;;
                            esac
                        fi
-                       case ${CUR_TARGET_UNIT} in
-                           auto|Auto|AUTO) 
+                       # empty field in GUI or undefined GUI variable now defaults to auto
+                       if [ -z "${CUR_TARGET_VALUE}" -a -z "${CUR_TARGET_UNIT}" ];
+                       then                    
                                if [ ! -z "${CUR_LINK_KBPS}" ];
                                then
                                    TMP_TARGET_US=$( adapt_target_to_slow_link $CUR_LINK_KBPS )
                                    TMP_INTERVAL_STRING=$( adapt_interval_to_slow_link $TMP_TARGET_US )
                                    CUR_TARGET_STRING="target ${TMP_TARGET_US}us ${TMP_INTERVAL_STRING}"
                                    AUTO_TARGET="1"
+                                   sqm_logger "get_target defaulting to auto." 
+                               else
+                                   sqm_logger "required link bandwidth in kbps not passed to get_target()." 
+                               fi
+                       fi
+                       # but still allow explicit use of the keyword auto for backward compatibility
+                        case ${CUR_TARGET_UNIT} in
+                            auto|Auto|AUTO)
+                                if [ ! -z "${CUR_LINK_KBPS}" ];
+                                then
+                                    TMP_TARGET_US=$( adapt_target_to_slow_link $CUR_LINK_KBPS )
+                                    TMP_INTERVAL_STRING=$( adapt_interval_to_slow_link $TMP_TARGET_US )
+                                    CUR_TARGET_STRING="target ${TMP_TARGET_US}us ${TMP_INTERVAL_STRING}"
+                                    AUTO_TARGET="1"
+                                else
+                                    sqm_logger "required link bandwidth in kbps not passed to get_target()."
+                                fi
+                            ;;
+                        esac
+                       
+                       case ${CUR_TARGET_UNIT} in
+                           default|Default|DEFAULT) 
+                               if [ ! -z "${CUR_LINK_KBPS}" ];
+                               then
+                                   CUR_TARGET_STRING=""        # return nothing so the default target is not over-ridden...
+                                   AUTO_TARGET="1"
+                                   #sqm_logger "get_target using qdisc default, no explicit target string passed."
                                else
                                    sqm_logger "required link bandwidth in kbps not passed to get_target()." 
                                fi
@@ -288,7 +316,7 @@ get_target() {
                            then
                            if [ -z "${CUR_TARGET_VALUE}" -o -z "${UNIT_VALID}" ];
                            then 
-                               [ -z "$AUTO_TARGET" ] && sqm_logger "${CUR_TARGET} is not a well formed tc target specifier; e.g.: 5ms (or s, us), or the string auto."
+                               [ -z "$AUTO_TARGET" ] && sqm_logger "${CUR_TARGET} is not a well formed tc target specifier; e.g.: 5ms (or s, us), or one of the strings auto or default."
                            fi
                        fi
                    ;;
index 968292bcd37061edfa0cf8e593e7b7ac53f16224..7aa20ddbabc313b100c063865fa12a0d6743c3fa 100755 (executable)
@@ -13,29 +13,39 @@ STOP=
 ACTIVE_STATE_PREFIX="SQM_active_on_"
 ACTIVE_STATE_FILE_DIR="/var/run/SQM"
 mkdir -p ${ACTIVE_STATE_FILE_DIR}
-PROTO_STATE_FILE_LIST=$( ls ${ACTIVE_STATE_FILE_DIR}/${ACTIVE_STATE_PREFIX}* 2> /dev/null )
+
+
+START_ON_IF=$2 # only process this interface
+# TODO if $2 is empty select all interfaces with running sqm instance
+if [ -z ${START_ON_IF} ] ;
+then
+    # find all interfaces with active sqm instance
+    logger -t SQM -s "Trying to start/stop SQM on all interfaces."
+    PROTO_STATE_FILE_LIST=$( ls ${ACTIVE_STATE_FILE_DIR}/${ACTIVE_STATE_PREFIX}* 2> /dev/null )
+else
+    # only try to restart the just hotplugged interface, so reduce the list of interfaces to stop to the specified one
+    logger -t SQM -s "Trying to start/stop SQM on interface ${START_ON_IF}"
+    PROTO_STATE_FILE_LIST=${ACTIVE_STATE_FILE_DIR}/${ACTIVE_STATE_PREFIX}${START_ON_IF}
+fi
+
+
 
 
 case ${1} in
+    start)
+       # just run through, same as passing no argument
+       ;;
     stop)
         logger -t SQM -s "run.sh stop"
        STOP=$1
         ;;
-    interface)
-       START_ON_IF=$2  # only process this interface
-       logger -t SQM -s "Trying to re-start SQM on interface ${START_ON_IF}"
-       # TODO if $2 is empty just bail...
-       if [ -z ${START_ON_IF} ] ;
-       then
-           logger -t SQM -s "Interface name missing, nothing to do, bailing out"
-           return 0
-       fi
-       # only try to restart the just hotplugged interface, so reduce the list of interfaces to stop to the specified one
-       PROTO_STATE_FILE_LIST=${ACTIVE_STATE_FILE_DIR}/${ACTIVE_STATE_PREFIX}${START_ON_IF}
-       ;;
 esac
 
 
+
+
+
+
 # the current uci config file does not necessarily contain sections for all interfaces with active
 # SQM instances, so use the ACTIVE_STATE_FILES to detect the interfaces on which to stop SQM.
 # Currently the .qos scripts start with stopping any existing traffic shaping so this should not
index 9b13e7db5e417596837567b44ef4c9cd8f442f69..e7f1c0e6bbbf53386876b2629edaac8f66731708 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sslh
-PKG_VERSION:=v1.16
-PKG_RELEASE:=2
+PKG_VERSION:=v1.17
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://rutschle.net/tech/
-PKG_MD5SUM:=c6e7d1cb0adb15f6efe480e36d98c560
+PKG_MD5SUM:=1fc3ada4bafaca5a9786cc1431f48ed4
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
 
index 2ff68116f77b75f7700b59bc57372e5305de0122..2b461f6721e684ab56f6463bb8372865fb5dce64 100644 (file)
@@ -18,7 +18,7 @@
  echosrv: $(OBJS) echosrv.o
        $(CC) $(CFLAGS) $(LDFLAGS) -o echosrv echosrv.o probe.o common.o $(LIBS)
  
-@@ -86,7 +82,7 @@ distclean: clean
+@@ -85,7 +81,7 @@ distclean: clean
        rm -f tags cscope.*
  
  clean:
index 85816dd37dbd4a151f5e0360f0c16332f812e531..e4481c9eac6cd609f315e8181ad526d7704cdeaf 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=strongswan
 PKG_VERSION:=5.2.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://download.strongswan.org/ http://download2.strongswan.org/
diff --git a/net/strongswan/patches/001-ikev1-fix.patch b/net/strongswan/patches/001-ikev1-fix.patch
new file mode 100644 (file)
index 0000000..a48b0ac
--- /dev/null
@@ -0,0 +1,48 @@
+From 627f870ee6256b4b2e36e9ca768fc578febbccef Mon Sep 17 00:00:00 2001
+From: Tobias Brunner <tobias@strongswan.org>
+Date: Tue, 10 Feb 2015 19:03:44 +0100
+Subject: [PATCH] ikev1: Set protocol ID and SPIs in INITIAL-CONTACT
+ notification payloads
+
+The payload we sent before is not compliant with RFC 2407 and thus some
+peers might abort negotiation (e.g. with an INVALID-PROTOCOL-ID error).
+---
+ src/libcharon/sa/ikev1/tasks/main_mode.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/src/libcharon/sa/ikev1/tasks/main_mode.c b/src/libcharon/sa/ikev1/tasks/main_mode.c
+index 5065e70ffc25..3ea4a2a85e4f 100644
+--- a/src/libcharon/sa/ikev1/tasks/main_mode.c
++++ b/src/libcharon/sa/ikev1/tasks/main_mode.c
+@@ -213,6 +213,10 @@ static void add_initial_contact(private_main_mode_t *this, message_t *message,
+ {
+       identification_t *idr;
+       host_t *host;
++      notify_payload_t *notify;
++      ike_sa_id_t *ike_sa_id;
++      u_int64_t spi_i, spi_r;
++      chunk_t spi;
+       idr = this->ph1->get_id(this->ph1, this->peer_cfg, FALSE);
+       if (idr && !idr->contains_wildcards(idr))
+@@ -224,8 +228,15 @@ static void add_initial_contact(private_main_mode_t *this, message_t *message,
+                       if (!charon->ike_sa_manager->has_contact(charon->ike_sa_manager,
+                                                                               idi, idr, host->get_family(host)))
+                       {
+-                              message->add_notify(message, FALSE, INITIAL_CONTACT_IKEV1,
+-                                                                      chunk_empty);
++                              notify = notify_payload_create_from_protocol_and_type(
++                                                              PLV1_NOTIFY, PROTO_IKE, INITIAL_CONTACT_IKEV1);
++                              ike_sa_id = this->ike_sa->get_id(this->ike_sa);
++                              spi_i = ike_sa_id->get_initiator_spi(ike_sa_id);
++                              spi_r = ike_sa_id->get_responder_spi(ike_sa_id);
++                              spi = chunk_cata("cc", chunk_from_thing(spi_i),
++                                                               chunk_from_thing(spi_r));
++                              notify->set_spi_data(notify, spi);
++                              message->add_payload(message, (payload_t*)notify);
+                       }
+               }
+       }
+-- 
+1.9.1
+
diff --git a/net/stunnel/Makefile b/net/stunnel/Makefile
new file mode 100644 (file)
index 0000000..9238331
--- /dev/null
@@ -0,0 +1,77 @@
+#
+# Copyright (C) 2006-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:=stunnel
+PKG_VERSION:=5.10
+PKG_RELEASE:=1
+
+PKG_LICENSE:=GPL-2.0+
+PKG_MAINTAINER:=Michael Haas <haas@computerlinguist.org>
+PKG_LICENSE_FILES:=COPYING COPYRIGHT.GPL
+
+PKG_SOURCE_URL:=http://stunnel.cybermirror.org/archive/5.x/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=a0edda805eb7d6ea600a230fb0979ea1
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/stunnel
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libopenssl
+  TITLE:=SSL TCP Wrapper
+  URL:=http://www.stunnel.org/
+endef
+
+define Package/stunnel/description
+       Stunnel is a program that allows you to encrypt arbitrary TCP
+       connections inside SSL (Secure Sockets Layer) available on both Unix
+       and Windows. Stunnel can allow you to secure non-SSL aware daemons and
+       protocols (like POP, IMAP, LDAP, etc) by having Stunnel provide the
+       encryption, requiring no changes to the daemon's code.
+endef
+
+define Package/stunnel/conffiles
+/etc/stunnel/stunnel.conf
+endef
+
+
+CONFIGURE_ARGS+= \
+       --with-random=/dev/urandom \
+       --with-threads=fork \
+       --with-ssl=$(STAGING_DIR)/usr \
+       --disable-libwrap \
+       --disable-systemd
+
+ifeq ($(CONFIG_IPV6),n)
+CONFIGURE_ARGS+= \
+       --disable-ipv6
+endif
+
+define Build/Compile
+       mkdir -p $(PKG_INSTALL_DIR)/etc/stunnel
+       echo '#dummy' > $(PKG_INSTALL_DIR)/etc/stunnel/stunnel.pem
+       $(call Build/Compile/Default)
+endef
+
+define Package/stunnel/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/stunnel $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/lib/stunnel
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/stunnel/libstunnel.so $(1)/usr/lib/stunnel/
+       $(INSTALL_DIR) $(1)/etc/stunnel
+       $(INSTALL_CONF) ./files/stunnel.conf $(1)/etc/stunnel/stunnel.conf
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/stunnel.init $(1)/etc/init.d/stunnel
+endef
+
+$(eval $(call BuildPackage,stunnel))
diff --git a/net/stunnel/files/stunnel.conf b/net/stunnel/files/stunnel.conf
new file mode 100644 (file)
index 0000000..2f10800
--- /dev/null
@@ -0,0 +1,45 @@
+; Drop privileges
+setuid = nobody 
+setgid = nogroup
+
+; When running under procd, stay in foreground
+foreground = yes
+
+; Don't log to stderr, use syslog
+syslog = yes
+
+; 1-7. Use 7 for greatest verbosity
+;debug = 5
+
+; Starting here, enter your services or uncomment the examples
+
+; Example:
+; If your local httpd does not support HTTPS, use stunnel in remote
+; mode to forward TLS connections coming in on port 443 to non-TLS
+; on port 80.
+; Make sure that the cert is available.
+;[httpd]
+;accept = 443
+;connect = 127.0.0.1:80
+;cert = /etc/stunnel/stunnel.pem
+
+; Example:
+; If your local email client does not support TLS,
+; use stunnel in client mode to forward non-TLS connections on
+; port 143 to TLS-enabled servername:993.
+;[imap]
+;client = yes
+;accept = 143
+;connect = servername:993
+; Disable peer verification - be sure to understand the limitations of peer
+; verification in stunnel when enabling.
+;verify = 0
+
+; Default client section:
+; stunnel requires at least one section to start successfully.
+; You can safely remove this section once you have configured
+; your own. We use client mode here as server requires a certificate.
+[dummy]
+client = yes
+accept = localhost:6000
+connect = localhost:6001
diff --git a/net/stunnel/files/stunnel.init b/net/stunnel/files/stunnel.init
new file mode 100644 (file)
index 0000000..e622205
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006-2008 OpenWrt.org
+
+START=90
+USE_PROCD=1
+
+start_service() {
+       procd_open_instance
+       procd_set_param command /usr/bin/stunnel /etc/stunnel/stunnel.conf
+       procd_set_param respawn # respawn automatically if something died
+       procd_close_instance
+}
diff --git a/net/stunnel/patches/010_fix_getnameinfo.patch b/net/stunnel/patches/010_fix_getnameinfo.patch
new file mode 100644 (file)
index 0000000..f0a9faa
--- /dev/null
@@ -0,0 +1,25 @@
+--- a/src/prototypes.h
++++ b/src/prototypes.h
+@@ -559,7 +559,7 @@ extern GETNAMEINFO s_getnameinfo;
+ #endif /* USE_WIN32 */
+-int getnameinfo(const struct sockaddr *, int, char *, int, char *, int, int);
++int getnameinfo(const struct sockaddr *, socklen_t, char *, socklen_t, char *, socklen_t, unsigned int);
+ #endif /* !defined HAVE_GETNAMEINFO */
+--- a/src/resolver.c
++++ b/src/resolver.c
+@@ -535,8 +535,9 @@ const char *s_gai_strerror(int err) {
+ /* implementation is limited to functionality needed by stunnel */
+ #ifndef HAVE_GETNAMEINFO
+-int getnameinfo(const struct sockaddr *sa, int salen,
+-    char *host, int hostlen, char *serv, int servlen, int flags) {
++int getnameinfo(const struct sockaddr *sa, socklen_t salen,
++    char *host, socklen_t hostlen, char *serv, socklen_t servlen,
++    unsigned int flags) {
+ #if defined(USE_WIN32) && !defined(_WIN32_WCE)
+     if(s_getnameinfo)
diff --git a/net/stunnel/patches/011_disable_ssp_linking.patch b/net/stunnel/patches/011_disable_ssp_linking.patch
new file mode 100644 (file)
index 0000000..459c016
--- /dev/null
@@ -0,0 +1,140 @@
+--- a/configure
++++ b/configure
+@@ -5646,66 +5646,66 @@ done
+-for flag in -fstack-protector; do
+-  as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$flag" | $as_tr_sh`
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
+-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
+-if eval \${$as_CACHEVAR+:} false; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-
+-  ax_check_save_flags=$CFLAGS
+-  CFLAGS="$CFLAGS  $flag"
+-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"; then :
+-  eval "$as_CACHEVAR=yes"
+-else
+-  eval "$as_CACHEVAR=no"
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+-  CFLAGS=$ax_check_save_flags
+-fi
+-eval ac_res=\$$as_CACHEVAR
+-             { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+-$as_echo "$ac_res" >&6; }
+-if test x"`eval 'as_val=${'$as_CACHEVAR'};$as_echo "$as_val"'`" = xyes; then :
+-  if ${CFLAGS+:} false; then :
+-  case " $CFLAGS " in
+-    *" $flag "*)
+-      { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains \$flag"; } >&5
+-  (: CFLAGS already contains $flag) 2>&5
+-  ac_status=$?
+-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+-  test $ac_status = 0; }
+-      ;;
+-    *)
+-      { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$flag\""; } >&5
+-  (: CFLAGS="$CFLAGS $flag") 2>&5
+-  ac_status=$?
+-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+-  test $ac_status = 0; }
+-      CFLAGS="$CFLAGS $flag"
+-      ;;
+-   esac
+-else
+-  CFLAGS="$flag"
+-fi
+-
+-else
+-  :
+-fi
+-
+-done
++#for flag in -fstack-protector; do
++#  as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$flag" | $as_tr_sh`
++#{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
++#$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
++#if eval \${$as_CACHEVAR+:} false; then :
++#  $as_echo_n "(cached) " >&6
++#else
++#
++#  ax_check_save_flags=$CFLAGS
++#  CFLAGS="$CFLAGS  $flag"
++#  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++#/* end confdefs.h.  */
++
++#int
++#main ()
++#{
++#
++#  ;
++#  return 0;
++#}
++#_ACEOF
++#if ac_fn_c_try_compile "$LINENO"; then :
++#  eval "$as_CACHEVAR=yes"
++#else
++#  eval "$as_CACHEVAR=no"
++#fi
++#rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++#  CFLAGS=$ax_check_save_flags
++#fi
++#eval ac_res=\$$as_CACHEVAR
++#            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++#$as_echo "$ac_res" >&6; }
++#if test x"`eval 'as_val=${'$as_CACHEVAR'};$as_echo "$as_val"'`" = xyes; then :
++#  if ${CFLAGS+:} false; then :
++#  case " $CFLAGS " in
++#    *" $flag "*)
++#      { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains \$flag"; } >&5
++#  (: CFLAGS already contains $flag) 2>&5
++#  ac_status=$?
++#  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++#  test $ac_status = 0; }
++#      ;;
++#    *)
++#      { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$flag\""; } >&5
++#  (: CFLAGS="$CFLAGS $flag") 2>&5
++#  ac_status=$?
++#  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++#  test $ac_status = 0; }
++#      CFLAGS="$CFLAGS $flag"
++#      ;;
++#   esac
++#else
++#  CFLAGS="$flag"
++#fi
++#
++#else
++#  :
++#fi
++#
++#done
+--- a/configure.ac
++++ b/configure.ac
+@@ -71,7 +71,7 @@ AX_APPEND_COMPILE_FLAGS([-Wformat=2])
+ AX_APPEND_COMPILE_FLAGS([-Wconversion])
+ AX_APPEND_COMPILE_FLAGS([-Wno-long-long])
+ AX_APPEND_COMPILE_FLAGS([-Wno-deprecated-declarations])
+-AX_APPEND_COMPILE_FLAGS([-fstack-protector])
++#AX_APPEND_COMPILE_FLAGS([-fstack-protector])
+ AX_APPEND_COMPILE_FLAGS([-fPIE])
+ AX_APPEND_COMPILE_FLAGS([-D_FORTIFY_SOURCE=2])
+ AX_APPEND_LINK_FLAGS([-fPIE -pie])
index 6ffcf43bd21fcbf6e172c30b1b59d42a6005f297..8550f83581e7e254726df041f4d7063a066fb476 100644 (file)
@@ -41,7 +41,7 @@ endef
 define Package/tor
 $(call Package/tor/Default)
   TITLE:=An anonymous Internet communication system
-  DEPENDS:=+libevent2 +libopenssl +libpthread +librt +SSP_SUPPORT:libssp
+  DEPENDS:=+libevent2 +libopenssl +libpthread +librt
 endef
 
 define Package/tor/description
index df74fd566e75a5cac19547208b4029763972f9c9..1facadaf8dbb463b1e9b76abcbeb02761fefc165 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=transmission
 PKG_VERSION:=2.84
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://download-origin.transmissionbt.com/files/ http://mirrors.m0k.org/transmission/files
index d4f82fc2cd16a807bc98995d755ecad28dc8286b..e46a1ad98fe7bd5412049475edc5a7c6c25bb84c 100644 (file)
@@ -1,12 +1,14 @@
---- a/libtransmission/fdlimit.c        2014-07-01 20:08:59.000000000 +0300
-+++ b/libtransmission/fdlimit.c        2014-07-13 13:30:17.000000000 +0300
-@@ -22,7 +22,8 @@
+--- a/libtransmission/fdlimit.c
++++ b/libtransmission/fdlimit.c
+@@ -22,11 +22,6 @@
   #include <fcntl.h>
  #endif
+
 -#ifdef HAVE_FALLOCATE64
-+/* no need to define fallocate64 in glibc/eglibc case */
-+#if defined(__UCLIBC__) && (HAVE_FALLOCATE64)
-   /* FIXME can't find the right #include voodoo to pick up the declaration.. */
-   extern int fallocate64 (int fd, int mode, uint64_t offset, uint64_t len);
+-  /* FIXME can't find the right #include voodoo to pick up the declaration.. */
+-  extern int fallocate64 (int fd, int mode, uint64_t offset, uint64_t len);
+-#endif
+-
+ #ifdef HAVE_XFS_XFS_H
+  #include <xfs/xfs.h>
  #endif
diff --git a/net/transmission/patches/030-fix-musl-build.patch b/net/transmission/patches/030-fix-musl-build.patch
new file mode 100644 (file)
index 0000000..badf673
--- /dev/null
@@ -0,0 +1,34 @@
+Index: transmission-2.84/libtransmission/bitfield.c
+===================================================================
+--- transmission-2.84.orig/libtransmission/bitfield.c
++++ transmission-2.84/libtransmission/bitfield.c
+@@ -7,6 +7,8 @@
+  * $Id: bitfield.c 14302 2014-06-29 01:42:38Z jordan $
+  */
++#define __NEED_ssize_t
++
+ #include <assert.h>
+ #include <stdlib.h> /* realloc () */
+ #include <string.h> /* memset */
+@@ -15,6 +17,7 @@
+ #include "bitfield.h"
+ #include "utils.h" /* tr_new0 () */
++
+ const tr_bitfield TR_BITFIELD_INIT = { NULL, 0, 0, 0, false, false };
+ /****
+Index: transmission-2.84/libtransmission/fdlimit.h
+===================================================================
+--- transmission-2.84.orig/libtransmission/fdlimit.h
++++ transmission-2.84/libtransmission/fdlimit.h
+@@ -11,6 +11,8 @@
+  #error only libtransmission should #include this header.
+ #endif
++#define __NEED_off_t
++
+ #include "transmission.h"
+ #include "net.h"
index 6eeca195032abe76e1bce7d7a4e6716942d5a034..7d94a99f37c3d872b2825445f5c1a42c818fd74a 100644 (file)
@@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=udpxy
 PKG_SOURCE_VERSION:=c045a1e855a8033c5d70ab3e42271ba5636eb520
-PKG_VERSION:=2014-10-27-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=2
+PKG_VERSION:=2015-03-08-$(PKG_SOURCE_VERSION)
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://github.com/pcherenkov/udpxy.git
index 594206ca100578cce8bdf6a4a45424b1be043f95..24f62e7e90102bedc6af5447d2b8aae9dbb251b3 100644 (file)
@@ -11,8 +11,6 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
  chipmunk/Makefile | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)
 
-diff --git a/chipmunk/Makefile b/chipmunk/Makefile
-index e402128..fd41dbe 100644
 --- a/chipmunk/Makefile
 +++ b/chipmunk/Makefile
 @@ -32,10 +32,13 @@ DEBUG_ON := -g
@@ -30,6 +28,3 @@ index e402128..fd41dbe 100644
  
  BUILDFILE = BUILD
  BUILDNO := `cat $(BUILDFILE)`
--- 
-2.3.1
-
index c132622014c342ccceed4bd8d80b08b996f0be24..feb197dfcbb3a35c77b2feb08da5049815153a6f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2014 OpenWrt.org
+# Copyright (C) 2008-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,14 +9,16 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=wavemon
 PKG_VERSION:=0.7.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://eden-feed.erg.abdn.ac.uk/wavemon/stable-releases
-PKG_MD5SUM:=c60e25feb8b1785cf14371556f0613f4
+PKG_SOURCE:=v$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/uoaerg/wavemon/archive
+PKG_MD5SUM:=cd0049f174745d32b4fdf3b63d897bad
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
+PKG_MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
@@ -24,11 +26,10 @@ include $(INCLUDE_DIR)/package.mk
 define Package/wavemon
   SECTION:=net
   CATEGORY:=Network
-  PKG_MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
   TITLE:=N-curses based wireless network devices monitor
   DEPENDS:=+libncurses +libpthread
   SUBMENU:=wireless
-  URL:=http://eden-feed.erg.abdn.ac.uk/wavemon/
+  URL:=https://github.com/uoaerg/wavemon/releases
 endef
 
 define Package/wavemon/description
@@ -48,7 +49,7 @@ MAKE_FLAGS += \
 
 define Package/wavemon/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/wavemon $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/wavemon $(1)/usr/bin/
 endef
 
 $(eval $(call BuildPackage,wavemon))
index e8f71b77982071b31a5d03b11457d785b6fca202..a146a01ef737a53613c5eac591d39d63747ba529 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2014 OpenWrt.org
+# Copyright (C) 2007-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:=wget
-PKG_VERSION:=1.16.2
+PKG_VERSION:=1.16.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_MD5SUM:=50b67a11971ecc6d142e634e8436fc0f
+PKG_MD5SUM:=d2e4455781a70140ae83b54ca594ce21
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
index 5007a87355d75d150ab9b2779c04c8888afb8b7e..65b4045be5f927d6b07d95571e8fc8ba43210f2e 100644 (file)
@@ -44,9 +44,10 @@ define Build/Compile
 endef
 
 define Package/wshaper/install
-       $(INSTALL_DIR) $(1)/usr/sbin/ $(1)/etc/init.d $(1)/etc/config
+       $(INSTALL_DIR) $(1)/usr/sbin/ $(1)/etc/init.d $(1)/etc/config $(1)/etc/hotplug.d/iface
        $(INSTALL_BIN) ./files/wshaper.htb $(1)/usr/sbin/
        $(INSTALL_BIN) ./files/wshaper.init $(1)/etc/init.d/wshaper
+       $(INSTALL_BIN) ./files/wshaper.iface $(1)/etc/hotplug.d/iface/10-wshaper
        $(INSTALL_DATA) ./files/wshaper.config $(1)/etc/config/wshaper
 endef
 
diff --git a/net/wshaper/files/wshaper.iface b/net/wshaper/files/wshaper.iface
new file mode 100644 (file)
index 0000000..2964005
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+[ "$ACTION" = ifup ] && /etc/init.d/wshaper enabled && /etc/init.d/wshaper start || exit 0
diff --git a/net/xl2tpd/patches/120-no-bsd-signal-in-musl.patch b/net/xl2tpd/patches/120-no-bsd-signal-in-musl.patch
new file mode 100644 (file)
index 0000000..dba544c
--- /dev/null
@@ -0,0 +1,13 @@
+Index: xl2tpd-1.3.6/xl2tpd.c
+===================================================================
+--- xl2tpd-1.3.6.orig/xl2tpd.c
++++ xl2tpd-1.3.6/xl2tpd.c
+@@ -30,7 +30,7 @@
+ #include <errno.h>
+ #include <unistd.h>
+ #include <time.h>
+-#if (__GLIBC__ < 2)
++#if defined (__GLIBC__) && (__GLIBC__ < 2)
+ # if defined(FREEBSD) || defined(OPENBSD)
+ #  include <sys/signal.h>
+ # elif defined(LINUX)
diff --git a/sound/pianod/Makefile b/sound/pianod/Makefile
new file mode 100644 (file)
index 0000000..0c66894
--- /dev/null
@@ -0,0 +1,110 @@
+#
+# Copyright (C) 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:=pianod
+PKG_VERSION:=173
+PKG_RELEASE:=3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://deviousfish.com/Downloads/pianod/
+PKG_MD5SUM:=be0cec19ea6df1c4bc6c1cac8e253445
+
+PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
+
+PKG_LICENSE:=MIT VARIOUS
+PKG_LICENSE_FILES:=COPYING
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/pianod
+  SECTION:=sound
+  CATEGORY:=Sound
+  DEPENDS:=+libao +libfaad2 +libmad +libpolarssl +libjson-c +libgcrypt +libpthread
+  TITLE:=Pandora radio daemon
+  USERID:=pianod=88:pianod=88
+  URL:=http://deviousfish.com/pianod/
+endef
+
+define Package/pianod/description
+  pianod is a Pandora music player client with line-oriented and Websocket control interfaces.
+  A simple protocol makes for easy clients, mix scripting, integration with a
+  home automation system, use as multiple-user music system for home or office.
+  Documentation and configuration information can be found at:
+      http://deviousfish.com/pianod/
+endef
+
+define Package/pianod-client
+  SECTION:=sound
+  CATEGORY:=Sound
+  DEPENDS:=+pianod
+  TITLE:=Pandora radio daemon WebUI
+  URL:=http://deviousfish.com/pianod/
+endef
+
+define Package/pianod-client/description
+  Web client UI and remote player viewer for pianod
+  Examples --- (Note: The viewer.* files need not be on the pianod host)
+  Main interface: http://pianod-host:4446/pianod
+  Remote viewer: file:///<path>/viewer.html?server=pianod-host:4446  --or--
+                 http://pianod-host:4446/pianod/viewer.html?server=pianod-host:4446
+endef
+
+CONFIGURE_ARGS+= --with-polarssl
+
+PIANOD_CLIENT:=pianod-client-compiled-51.tar.gz
+
+define Download/pianod-client
+  URL:=$(PKG_SOURCE_URL)
+  FILE:=$(PIANOD_CLIENT)
+  MD5SUM:=abbdee5627bcee6a00c8304da8b4e2e7
+endef
+
+define Package/pianod/conffiles
+/etc/pianod/startscript
+/etc/pianod/users
+endef
+
+define Build/Prepare
+    $(call Build/Prepare/Default)
+    ifneq ($(CONFIG_PACKAGE_pianod-client),)
+       $(eval $(call Download,pianod-client))
+       mkdir -p $(PKG_BUILD_DIR)/pianod-client
+       $(TAR) -xf $(DL_DIR)/$(PIANOD_CLIENT) --strip=1 -C $(PKG_BUILD_DIR)/pianod-client
+    endif
+endef
+
+define Package/pianod-client/Configure
+endef
+
+define Package/pianod-client/Compile
+endef
+
+define Package/pianod/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pianod $(1)/usr/bin/
+# These scripts need ksh (install mksh and link)
+#      $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/piano $(1)/usr/bin/
+#      $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/runmix $(1)/usr/bin/
+
+       $(INSTALL_DIR) $(1)/etc/pianod
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/contrib/startscript-example $(1)/etc/pianod/startscript
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/pianod.init $(1)/etc/init.d/pianod
+endef
+
+define Package/pianod-client/install
+       $(INSTALL_DIR) $(1)/www/pianod
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/pianod-client/*.{html,js,gif,jpeg,css} $(1)/www/pianod/
+endef
+
+$(eval $(call BuildPackage,pianod))
+$(eval $(call BuildPackage,pianod-client))
diff --git a/sound/pianod/files/pianod.init b/sound/pianod/files/pianod.init
new file mode 100644 (file)
index 0000000..b232944
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
+
+NAME=pianod
+START=95
+
+USE_PROCD=1
+
+PD_USER=$NAME
+PD_STARTSCRIPT=/etc/$NAME/startscript
+PD_PASSWDFILE=/etc/$NAME/users
+PD_WEBUI=/www/$NAME
+
+start_service() {
+       # Take group ownership of audio devices
+       chown root:$NAME /dev/snd/* /dev/mixer /dev/dsp
+       chmod 664 /dev/snd/* /dev/mixer /dev/dsp
+
+       procd_open_instance
+
+       procd_set_param command "/usr/bin/$NAME"
+
+       procd_append_param command -n $PD_USER
+       procd_append_param command -i "$PD_STARTSCRIPT"
+       procd_append_param command -u "$PD_PASSWDFILE"
+       [ -d "$PD_WEBUI" ] && procd_append_param command -c "$PD_WEBUI"
+       # No HTTPS support without certificates
+       procd_append_param command -s 0
+
+       procd_close_instance
+}
+
+# Wait for service to exit and release sockets
+reload_service() {
+       stop
+       sleep 2
+       start
+}
+
+restart() {
+       reload_service
+}
diff --git a/sound/pianod/patches/005-Fix_IPV6_socket_handling.patch b/sound/pianod/patches/005-Fix_IPV6_socket_handling.patch
new file mode 100644 (file)
index 0000000..883495a
--- /dev/null
@@ -0,0 +1,75 @@
+--- a/src/libwaitress/waitress.c
++++ b/src/libwaitress/waitress.c
+@@ -805,34 +805,37 @@ static WaitressReturn_t WaitressConnect
+                       int pollres;
+                       /* we need shorter timeouts for connect() */
+-                      fcntl (sock, F_SETFL, O_NONBLOCK);
++                      pollres = fcntl (sock, F_SETFL, O_NONBLOCK);
++                      assert (pollres != -1);
+-                      /* increase socket receive buffer */
+-                      const int sockopt = 256*1024;
+-                      setsockopt (sock, SOL_SOCKET, SO_RCVBUF, &sockopt,
+-                                      sizeof (sockopt));
+-
+-                      /* non-blocking connect will return immediately */
+-                      connect (sock, gacurr->ai_addr, gacurr->ai_addrlen);
+-
+-                      pollres = WaitressPollLoop (sock, POLLOUT, waith->timeout);
+-                      if (pollres == 0) {
+-                              ret = WAITRESS_RET_TIMEOUT;
+-                      } else if (pollres == -1) {
+-                              ret = WAITRESS_RET_ERR;
+-                      } else {
+-                              /* check connect () return value */
+-                              socklen_t pollresSize = sizeof (pollres);
+-                              getsockopt (sock, SOL_SOCKET, SO_ERROR, &pollres,
+-                                              &pollresSize);
+-                              if (pollres != 0) {
+-                                      ret = WAITRESS_RET_CONNECT_REFUSED;
++                      if (connect (sock, gacurr->ai_addr, gacurr->ai_addrlen) != -1) {
++                              /* working */
++                              waith->request.sockfd = sock;
++                              break;
++                      } else if (errno == EINPROGRESS) {
++                              /* wait for connect to succeed */
++                              pollres = WaitressPollLoop (sock, POLLOUT, waith->timeout);
++                              if (pollres == 0) {
++                                      ret = WAITRESS_RET_TIMEOUT;
++                              } else if (pollres == -1) {
++                                      ret = WAITRESS_RET_ERR;
+                               } else {
+-                                      /* this one is working */
+-                                      waith->request.sockfd = sock;
+-                                      break;
++                                      /* check connect () return value */
++                                      socklen_t pollresSize = sizeof (pollres);
++                                      getsockopt (sock, SOL_SOCKET, SO_ERROR, &pollres,
++                                                      &pollresSize);
++                                      if (pollres != 0) {
++                                              ret = WAITRESS_RET_CONNECT_REFUSED;
++                                      } else {
++                                              /* this one is working */
++                                              waith->request.sockfd = sock;
++                                              break;
++                                      }
+                               }
++                      } else {
++                              ret = WAITRESS_RET_ERR;
+                       }
++
+                       close (sock);
+               }
+       }
+--- a/src/libfootball/fb_service.c
++++ b/src/libfootball/fb_service.c
+@@ -111,6 +111,8 @@ static bool fb_setup_socket (FB_SERVICE
+               service->socket [which] = 0;
+       } else {
+         fb_perror ("socket");
++        // Element must be zero (not -1)
++        service->socket [which] = 0;
+       };
+       return false;
+ }
diff --git a/sound/pianod/patches/010-Configure_add_SSL_options.patch b/sound/pianod/patches/010-Configure_add_SSL_options.patch
new file mode 100644 (file)
index 0000000..2c26779
--- /dev/null
@@ -0,0 +1,42 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,8 +31,6 @@ AC_CHECK_LIB([pthread], [pthread_create]
+ # with it, but don't consider it an error.
+ # PKG_CHECK_MODULES only validates that pkg-config returns stuff; it doesn't
+ # validate that these are correct, so check lib to make sure they're right.
+-PKG_CHECK_MODULES([gnutls], [gnutls],,
+-      [AC_MSG_WARN([No pkg-config for libgnutls])])
+ PKG_CHECK_MODULES([ao], [ao],,
+       [AC_MSG_WARN([No pkg-config for libao])])
+ PKG_CHECK_MODULES([mad], [mad],,
+@@ -42,12 +40,28 @@ PKG_CHECK_MODULES([json], [json-c],,
+               [PKG_CHECK_MODULES([json], [json0],,
+                       [AC_MSG_WARN([No pkg-config for json-c (aka libjson0, libjson)])])])])
++
+ # Network communication stuff:
+ AC_CHECK_LIB([gcrypt], [gcry_cipher_open],,
+       [AC_MSG_ERROR([Cannot find required library: libgcrypt],1)])
+-AC_CHECK_LIB([gnutls], [gnutls_record_recv],,
++# Check for SSL option
++AC_ARG_WITH(polarssl, [  --with-polarssl      Build waitress with PolarSSL (default GNUTLS)], [
++  AC_MSG_RESULT(>>Using PolarSSL)
++  HAS_POLARSSL=1
++  AC_DEFINE([USE_POLARSSL], 1, [Build for PolarSSL])
++  PKG_CHECK_MODULES([polarssl], [polarssl],,
++              [AC_MSG_WARN([No pkg-config for libpolarssl])])
++  AC_CHECK_LIB([polarssl], [ssl_set_session],,
++              [AC_MSG_ERROR([Cannot find required library: libpolarssl (aka polarssl)],1)])] )
++AM_CONDITIONAL([USE_POLARSSL],[test "x$HAS_POLARSSL" = "x1"])
++
++if test "x$HAS_POLARSSL" != x1 ; then
++  PKG_CHECK_MODULES([gnutls], [gnutls],,
++      [AC_MSG_WARN([No pkg-config for libgnutls])])
++  AC_CHECK_LIB([gnutls], [gnutls_record_recv],,
+       [AC_MSG_ERROR([Cannot find required library: libgnutls (aka gnutls)],1)])
+-AC_CHECK_FUNCS(gnutls_transport_set_int2 gnutls_sec_param_to_pk_bits)
++  AC_CHECK_FUNCS(gnutls_transport_set_int2 gnutls_sec_param_to_pk_bits)
++fi
+ # Bloody json library may be linked via -ljson, or -ljson-c depending on
+ # the platform.  Try both.
diff --git a/sound/pianod/patches/020-Use_package_config_h_for_all_modules.patch b/sound/pianod/patches/020-Use_package_config_h_for_all_modules.patch
new file mode 100644 (file)
index 0000000..228710b
--- /dev/null
@@ -0,0 +1,59 @@
+--- a/src/libpiano/config.h
++++ /dev/null
+@@ -1 +0,0 @@
+-#define PACKAGE "libpiano"
+--- a/src/libwaitress/config.h
++++ /dev/null
+@@ -1 +0,0 @@
+-#define PACKAGE "libwaitress"
+--- a/src/libpiano/piano.h
++++ b/src/libpiano/piano.h
+@@ -39,6 +39,8 @@ THE SOFTWARE.
+  * http://pan-do-ra-api.wikia.com
+  */
++#define LIBPIANO_NAME "libpiano"
++
+ #define PIANO_RPC_HOST "tuner.pandora.com"
+ #define PIANO_RPC_PATH "/services/json/?"
+--- a/src/libwaitress/waitress.c
++++ b/src/libwaitress/waitress.c
+@@ -918,14 +918,14 @@ static WaitressReturn_t WaitressSendRequ
+       if (WaitressProxyEnabled (waith) && !waith->url.tls) {
+               snprintf (buf, WAITRESS_BUFFER_SIZE,
+                       "%s http://%s:%s/%s HTTP/" WAITRESS_HTTP_VERSION "\r\n"
+-                      "Host: %s\r\nUser-Agent: " PACKAGE "\r\nConnection: Close\r\n",
++                      "Host: %s\r\nUser-Agent: " LIBWAITRESS_NAME "\r\nConnection: Close\r\n",
+                       (waith->method == WAITRESS_METHOD_GET ? "GET" : "POST"),
+                       waith->url.host,
+                       WaitressDefaultPort (&waith->url), path, waith->url.host);
+       } else {
+               snprintf (buf, WAITRESS_BUFFER_SIZE,
+                       "%s /%s HTTP/" WAITRESS_HTTP_VERSION "\r\n"
+-                      "Host: %s\r\nUser-Agent: " PACKAGE "\r\nConnection: Close\r\n",
++                      "Host: %s\r\nUser-Agent: " LIBWAITRESS_NAME "\r\nConnection: Close\r\n",
+                       (waith->method == WAITRESS_METHOD_GET ? "GET" : "POST"),
+                       path, waith->url.host);
+       }
+--- a/src/libwaitress/waitress.h
++++ b/src/libwaitress/waitress.h
+@@ -29,6 +29,8 @@ THE SOFTWARE.
+ #include <stdbool.h>
+ #include <gnutls/gnutls.h>
++#define LIBWAITRESS_NAME "libwaitress"
++
+ #define WAITRESS_BUFFER_SIZE 10*1024
+ typedef enum {
+--- a/src/libpiano/request.c
++++ b/src/libpiano/request.c
+@@ -40,6 +40,7 @@ THE SOFTWARE.
+ #include <stdio.h>
+ #include <string.h>
+ /* needed for urlencode */
++#include <config.h>
+ #include <waitress.h>
+ #include "piano.h"
diff --git a/sound/pianod/patches/030-Waitress_add_polarssl_variant.patch b/sound/pianod/patches/030-Waitress_add_polarssl_variant.patch
new file mode 100644 (file)
index 0000000..b2a6576
--- /dev/null
@@ -0,0 +1,333 @@
+--- a/src/libwaitress/waitress.h
++++ b/src/libwaitress/waitress.h
+@@ -27,7 +27,12 @@ THE SOFTWARE.
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <stdbool.h>
++
++#if defined(USE_POLARSSL)
++typedef struct _polarssl_ctx polarssl_ctx;
++#else
+ #include <gnutls/gnutls.h>
++#endif
+ #define LIBWAITRESS_NAME "libwaitress"
+@@ -102,8 +107,9 @@ typedef struct {
+       WaitressUrl_t url;
+       WaitressUrl_t proxy;
++#if !defined(USE_POLARSSL)
+       gnutls_certificate_credentials_t tlsCred;
+-
++#endif
+       /* per-request data */
+       struct {
+               int sockfd;
+@@ -121,7 +127,11 @@ typedef struct {
+               WaitressReturn_t (*read) (void *, char *, const size_t, size_t *);
+               WaitressReturn_t (*write) (void *, const char *, const size_t);
++#if defined(USE_POLARSSL)
++              polarssl_ctx* sslCtx;
++#else
+               gnutls_session_t tlsSession;
++#endif
+       } request;
+ } WaitressHandle_t;
+--- a/src/pianod.c
++++ b/src/pianod.c
+@@ -531,8 +531,11 @@ static bool initialize_libraries (APPSTA
+       gcry_check_version (NULL);
+       gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
+       gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
++
++#if !defined(USE_POLARSSL)
+       int crystatus = gnutls_global_init ();
+       if (crystatus == GNUTLS_E_SUCCESS) {
++#endif
+               PianoReturn_t status = PianoInit (&app->ph, app->settings.partnerUser, app->settings.partnerPassword,
+                                                                                 app->settings.device, app->settings.inkey, app->settings.outkey);
+               if (status == PIANO_RET_OK) {
+@@ -545,11 +548,13 @@ static bool initialize_libraries (APPSTA
+               } else {
+                       flog (LOG_ERROR, "initialize_libraries: PianoInit: %s", PianoErrorToStr (status));
+               }
++#if !defined(USE_POLARSSL)
+               gnutls_global_deinit ();
+       } else {
+               flog (LOG_ERROR, "initialize_libraries: gnutls_global_init: %s", gcry_strerror (crystatus));
+       }
++#endif
+       return false;
+ }
+@@ -728,7 +733,9 @@ int main (int argc, char **argv) {
+               PianoDestroyPlaylist (app.song_history);
+               PianoDestroyPlaylist (app.playlist);
+               WaitressFree (&app.waith);
++#if !defined(USE_POLARSSL)
+               gnutls_global_deinit ();
++#endif
+               settings_destroy (&app.settings);
+       }
+       
+--- a/src/libwaitress/waitress.c
++++ b/src/libwaitress/waitress.c
+@@ -41,11 +41,33 @@ THE SOFTWARE.
+ #include <assert.h>
+ #include <stdint.h>
+-#include <gnutls/x509.h>
+ #include "config.h"
+ #include "waitress.h"
++#if defined(USE_POLARSSL)
++
++#include <polarssl/ssl.h>
++#include <polarssl/entropy.h>
++#include <polarssl/ctr_drbg.h>
++#include <polarssl/x509.h>
++#include <polarssl/sha1.h>
++
++struct _polarssl_ctx
++{
++      ssl_context             ssl;
++      ssl_session             session;
++      entropy_context         entrophy;
++      ctr_drbg_context        rnd;
++};
++
++#else
++
++// Use gnutls by default (USE_POLARSSL not defined)
++#include <gnutls/x509.h>
++
++#endif
++
+ #define strcaseeq(a,b) (strcasecmp(a,b) == 0)
+ #define WAITRESS_HTTP_VERSION "1.1"
+@@ -56,6 +78,13 @@ typedef struct {
+ static WaitressReturn_t WaitressReceiveHeaders (WaitressHandle_t *, size_t *);
++// gnutls wants (void *) and polarssl want (unsigned char *)
++#if defined(USE_POLARSSL)
++#define BUFFER_CAST unsigned char
++#else
++#define BUFFER_CAST void
++#endif
++
+ #define READ_RET(buf, count, size) \
+               if ((wRet = waith->request.read (waith, buf, count, size)) != \
+                               WAITRESS_RET_OK) { \
+@@ -444,7 +473,7 @@ static int WaitressPollLoop (int fd, sho
+  *    @param write count bytes
+  *    @return number of written bytes or -1 on error
+  */
+-static ssize_t WaitressPollWrite (void *data, const void *buf, size_t count) {
++static ssize_t WaitressPollWrite (void *data, const BUFFER_CAST *buf, size_t count) {
+       int pollres = -1;
+       ssize_t retSize;
+       WaitressHandle_t *waith = data;
+@@ -478,13 +507,20 @@ static WaitressReturn_t WaitressOrdinary
+       return waith->request.readWriteRet;
+ }
+-static WaitressReturn_t WaitressGnutlsWrite (void *data, const char *buf,
++static WaitressReturn_t WaitressTlsWrite (void *data, const char *buf,
+               const size_t size) {
+       WaitressHandle_t *waith = data;
++#if defined(USE_POLARSSL)
++
++      if (ssl_write (&waith->request.sslCtx->ssl, buf, size) < 0) {
++              return WAITRESS_RET_TLS_WRITE_ERR;
++      }
++#else
+       if (gnutls_record_send (waith->request.tlsSession, buf, size) < 0) {
+               return WAITRESS_RET_TLS_WRITE_ERR;
+       }
++#endif
+       return waith->request.readWriteRet;
+ }
+@@ -494,7 +530,7 @@ static WaitressReturn_t WaitressGnutlsWr
+  *    @param buffer size
+  *    @return number of read bytes or -1 on error
+  */
+-static ssize_t WaitressPollRead (void *data, void *buf, size_t count) {
++static ssize_t WaitressPollRead (void *data, BUFFER_CAST *buf, size_t count) {
+       int pollres = -1;
+       ssize_t retSize;
+       WaitressHandle_t *waith = data;
+@@ -531,16 +567,34 @@ static WaitressReturn_t WaitressOrdinary
+       return waith->request.readWriteRet;
+ }
+-static WaitressReturn_t WaitressGnutlsRead (void *data, char *buf,
++static WaitressReturn_t WaitressTlsRead (void *data, char *buf,
+               const size_t size, size_t *retSize) {
+       WaitressHandle_t *waith = data;
++#if defined(USE_POLARSSL)
++      int ret;
++
++      *retSize = 0;
++      waith->request.readWriteRet = WAITRESS_RET_OK;
++      ret = ssl_read (&waith->request.sslCtx->ssl, buf, size);
++
++      if (ret < 0) {
++              if (ret != POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY) {
++                      waith->request.readWriteRet = WAITRESS_RET_TLS_READ_ERR;
++              }
++
++              return waith->request.readWriteRet;
++      }
++
++      *retSize = ret;
++#else
+       ssize_t ret = gnutls_record_recv (waith->request.tlsSession, buf, size);
+       if (ret < 0) {
+               return WAITRESS_RET_TLS_READ_ERR;
+       } else {
+               *retSize = ret;
+       }
++#endif
+       return waith->request.readWriteRet;
+ }
+@@ -727,10 +781,28 @@ static int WaitressParseStatusline (cons
+ /*    verify server certificate
+  */
+ static WaitressReturn_t WaitressTlsVerify (const WaitressHandle_t *waith) {
++
++#if defined(USE_POLARSSL)
++      unsigned char fingerprint[20];
++
++      const x509_crt* cert = ssl_get_peer_cert (&waith->request.sslCtx->ssl);
++
++      if (NULL == cert) {
++              return WAITRESS_RET_TLS_HANDSHAKE_ERR;
++      }
++
++      sha1 (cert->raw.p, cert->raw.len, fingerprint);
++
++      if (memcmp (fingerprint, waith->tlsFingerprint, sizeof (fingerprint)) != 0) {
++              return WAITRESS_RET_TLS_FINGERPRINT_MISMATCH;
++      }
++
++#else
+       gnutls_session_t session = waith->request.tlsSession;
+       unsigned int certListSize;
+       const gnutls_datum_t *certList;
+       gnutls_x509_crt_t cert;
++      char fingerprint[20];
+       if (gnutls_certificate_type_get (session) != GNUTLS_CRT_X509) {
+               return WAITRESS_RET_TLS_HANDSHAKE_ERR;
+@@ -750,7 +822,6 @@ static WaitressReturn_t WaitressTlsVerif
+               return WAITRESS_RET_TLS_HANDSHAKE_ERR;
+       }
+-      char fingerprint[20];
+       size_t fingerprintSize = sizeof (fingerprint);
+       if (gnutls_x509_crt_get_fingerprint (cert, GNUTLS_DIG_SHA1, fingerprint,
+                       &fingerprintSize) != 0) {
+@@ -763,7 +834,7 @@ static WaitressReturn_t WaitressTlsVerif
+       }
+       gnutls_x509_crt_deinit (cert);
+-
++#endif
+       return WAITRESS_RET_OK;
+ }
+@@ -876,6 +947,12 @@ static WaitressReturn_t WaitressConnect
+                       }
+               }
++#if defined(USE_POLARSSL)
++              ssl_set_hostname (&waith->request.sslCtx->ssl, waith->url.host);
++              if (ssl_handshake (&waith->request.sslCtx->ssl) != 0) {
++                      return WAITRESS_RET_TLS_HANDSHAKE_ERR;
++              }
++#else
+               /* Ignore return code as connection will likely still succeed */
+               gnutls_server_name_set (waith->request.tlsSession, GNUTLS_NAME_DNS,
+                               waith->url.host, strlen (waith->url.host));
+@@ -883,14 +960,15 @@ static WaitressReturn_t WaitressConnect
+               if (gnutls_handshake (waith->request.tlsSession) != GNUTLS_E_SUCCESS) {
+                       return WAITRESS_RET_TLS_HANDSHAKE_ERR;
+               }
++#endif
+               if ((wRet = WaitressTlsVerify (waith)) != WAITRESS_RET_OK) {
+                       return wRet;
+               }
+               /* now we can talk encrypted */
+-              waith->request.read = WaitressGnutlsRead;
+-              waith->request.write = WaitressGnutlsWrite;
++              waith->request.read = WaitressTlsRead;
++              waith->request.write = WaitressTlsWrite;
+       }
+       return WAITRESS_RET_OK;
+@@ -1116,6 +1194,21 @@ WaitressReturn_t WaitressFetchCall (Wait
+       waith->request.contentLengthKnown = false;
+       if (waith->url.tls) {
++#if defined(USE_POLARSSL)
++              waith->request.sslCtx = calloc (1, sizeof(polarssl_ctx));
++
++              entropy_init (&waith->request.sslCtx->entrophy);
++              ctr_drbg_init (&waith->request.sslCtx->rnd, entropy_func, &waith->request.sslCtx->entrophy, "libwaitress", 11);
++              ssl_init (&waith->request.sslCtx->ssl);
++
++              ssl_set_endpoint (&waith->request.sslCtx->ssl, SSL_IS_CLIENT);
++              ssl_set_authmode (&waith->request.sslCtx->ssl, SSL_VERIFY_NONE);
++              ssl_set_rng (&waith->request.sslCtx->ssl, ctr_drbg_random, &waith->request.sslCtx->rnd);
++              ssl_set_session (&waith->request.sslCtx->ssl, &waith->request.sslCtx->session);
++              ssl_set_bio (&waith->request.sslCtx->ssl,
++                           WaitressPollRead, waith,
++                           WaitressPollWrite, waith);
++#else
+               gnutls_init (&waith->request.tlsSession, GNUTLS_CLIENT);
+               gnutls_set_default_priority (waith->request.tlsSession);
+@@ -1133,6 +1226,7 @@ WaitressReturn_t WaitressFetchCall (Wait
+                               WaitressPollRead);
+               gnutls_transport_set_push_function (waith->request.tlsSession,
+                               WaitressPollWrite);
++#endif
+       }
+       /* buffer is required for connect already */
+@@ -1144,15 +1238,22 @@ WaitressReturn_t WaitressFetchCall (Wait
+               if ((wRet = WaitressSendRequest (waith)) == WAITRESS_RET_OK) {
+                       wRet = WaitressReceiveResponse (waith);
+               }
++#if !defined(USE_POLARSSL)
+               if (waith->url.tls) {
+                       gnutls_bye (waith->request.tlsSession, GNUTLS_SHUT_RDWR);
+               }
++#endif
+       }
+       /* cleanup */
+       if (waith->url.tls) {
++#if defined(USE_POLARSSL)
++              ssl_free (&waith->request.sslCtx->ssl);
++              free (waith->request.sslCtx);
++#else
+               gnutls_deinit (waith->request.tlsSession);
+               gnutls_certificate_free_credentials (waith->tlsCred);
++#endif
+       }
+       if (waith->request.sockfd != -1) {
+               close (waith->request.sockfd);
index e75e2c80c06c00a598a9b84bb35ad256d1249837..23a8c80d14821257c2ddc7918017a2203e070a6b 100644 (file)
@@ -42,6 +42,7 @@ endef
 
 define Package/pulseaudio-daemon
   $(call Package/pulseaudio/Default)
+  DEPENDS+=+libjson-c
 endef
 
 define Package/pulseaudio/Default/description
index 550df30c1316f66e0bd73115a66d9642ff058ee9..8e394e351aaaa14656f95e0f2596dc1e9e7771d6 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bluez
-PKG_VERSION:=5.28
+PKG_VERSION:=5.29
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.kernel.org/pub/linux/bluetooth/
-PKG_MD5SUM:=bc20a8285530758c68f6a60e4ca62a15
+PKG_MD5SUM:=aa9dc91689695a486c78c131cd68673e
 
 PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
@@ -46,8 +46,6 @@ $(call Package/bluez/Default)
 endef
 
 define Package/bluez-utils/conffiles
-/etc/bluetooth/hcid.conf
-/etc/bluetooth/rfcomm.conf
 /etc/config/bluetooth
 endef
 
index 9d5bec016030b8760d7667a4da3f9051bdce19e6..58396dcb01b3ee9a34e9fc3af55b1dba15a5e873 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -2038,7 +2038,7 @@ unit_tests = $(am__append_32) unit/test-
+@@ -2055,7 +2055,7 @@ unit_tests = $(am__append_32) unit/test-
  @CLIENT_TRUE@                                 monitor/uuid.h monitor/uuid.c
  
  @CLIENT_TRUE@client_bluetoothctl_LDADD = gdbus/libgdbus-internal.la @GLIB_LIBS@ @DBUS_LIBS@ \
@@ -9,7 +9,16 @@
  
  @MONITOR_TRUE@monitor_btmon_SOURCES = monitor/main.c monitor/bt.h \
  @MONITOR_TRUE@                                monitor/display.h monitor/display.c \
-@@ -2245,13 +2245,13 @@ unit_tests = $(am__append_32) unit/test-
+@@ -2226,7 +2226,7 @@ unit_tests = $(am__append_32) unit/test-
+ @EXPERIMENTAL_TRUE@tools_hcieventmask_LDADD = lib/libbluetooth-internal.la
+ @EXPERIMENTAL_TRUE@tools_btmgmt_SOURCES = tools/btmgmt.c src/uuid-helper.c client/display.c
+ @EXPERIMENTAL_TRUE@tools_btmgmt_LDADD = lib/libbluetooth-internal.la src/libshared-mainloop.la \
+-@EXPERIMENTAL_TRUE@                           -lreadline
++@EXPERIMENTAL_TRUE@                           -lreadline -lncurses
+ @EXPERIMENTAL_TRUE@tools_btinfo_SOURCES = tools/btinfo.c monitor/bt.h
+ @EXPERIMENTAL_TRUE@tools_btinfo_LDADD = src/libshared-mainloop.la
+@@ -2266,13 +2266,13 @@ unit_tests = $(am__append_32) unit/test-
  @READLINE_TRUE@                               client/display.h
  
  @READLINE_TRUE@attrib_gatttool_LDADD = lib/libbluetooth-internal.la \
@@ -25,7 +34,7 @@
  
  @READLINE_TRUE@tools_obex_server_tool_SOURCES = $(gobex_sources) $(btio_sources) \
  @READLINE_TRUE@                                               tools/obex-server-tool.c
-@@ -2261,13 +2261,13 @@ unit_tests = $(am__append_32) unit/test-
+@@ -2282,13 +2282,13 @@ unit_tests = $(am__append_32) unit/test-
  @READLINE_TRUE@                               client/display.h client/display.c
  
  @READLINE_TRUE@tools_bluetooth_player_LDADD = gdbus/libgdbus-internal.la \
index ea486b9a4ad3866106c14a4dcdef7da93e5e2907..63b8f6cdc0ee03e02e75e874126dd08e33e014d2 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=btrfs-progs
-PKG_VERSION:=3.17.3
+PKG_VERSION:=3.19.1
 PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/kdave/btrfs-progs/
-PKG_MD5SUM:=6716b4b109dd909af63ab3becbad67a6
+PKG_MD5SUM:=ec3b3c99df18633ddc9e41f0680c5a51
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION)
 
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
@@ -24,13 +24,15 @@ PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 PKG_BUILD_DEPENDS:=libacl
 
+PKG_FIXUP:=autoreconf
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/btrfs-progs
   SECTION:=utils
   CATEGORY:=Utilities
   SUBMENU:=Filesystem
-  DEPENDS:=+libattr +libuuid +zlib +libext2fs +libblkid +liblzo +libpthread
+  DEPENDS:=+libattr +libuuid +zlib +libblkid +liblzo +libpthread
   TITLE:=Btrfs filesystems utilities
   URL:=http://btrfs.wiki.kernel.org/
 endef
@@ -42,25 +44,20 @@ define Package/btrfs-progs/description
  GPL and open for contribution from anyone.
 endef
 
-progs = btrfs btrfsck btrfs-convert btrfs-debug-tree btrfs-find-root \
-       btrfs-image btrfs-map-logical btrfs-show-super btrfstune \
-       btrfs-zero-log fsck.btrfs mkfs.btrfs
-
+progs = btrfs btrfs-debug-tree btrfs-find-root btrfs-image btrfs-map-logical \
+       btrfs-show-super btrfstune btrfs-zero-log fsck.btrfs mkfs.btrfs
 
-MAKE_FLAGS+=\
-       CC="$(TARGET_CC)" \
-       CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
-       LDFLAGS="$(TARGET_LDFLAGS)" \
-       prefix=/usr \
-       DESTDIR=$(PKG_INSTALL_DIR) \
-       DISABLE_BACKTRACE=1 \
-       DISABLE_DOCUMENTATION=1
+CONFIGURE_ARGS += \
+       --disable-backtrace \
+       --disable-convert \
+       --disable-documentation
 
 define Package/btrfs-progs/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libbtrfs.so* $(1)/usr/lib
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(addprefix $(PKG_INSTALL_DIR)/usr/bin/, $(progs)) $(1)/usr/bin/
+       ln -s btrfs $(1)/usr/bin/btrfsck
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/btrfs-scan.init $(1)/etc/init.d/btrfs-scan
 endef
index 0e3216952bd426cdfc78525243e0d25f9157a5e5..aff55855b5649c5778d2e71a0a5d1fe2d5a7835c 100644 (file)
@@ -1,16 +1,20 @@
---- a/mkfs.c
-+++ b/mkfs.c
-@@ -34,7 +34,7 @@
+Index: btrfs-progs-v3.19.1/mkfs.c
+===================================================================
+--- btrfs-progs-v3.19.1.orig/mkfs.c
++++ btrfs-progs-v3.19.1/mkfs.c
+@@ -31,7 +31,7 @@
  #include <getopt.h>
  #include <uuid/uuid.h>
  #include <ctype.h>
 -#include <sys/xattr.h>
 +#include <attr/xattr.h>
+ #include <limits.h>
+ #include <linux/limits.h>
  #include <blkid/blkid.h>
- #include <ftw.h>
- #include "ctree.h"
---- a/props.c
-+++ b/props.c
+Index: btrfs-progs-v3.19.1/props.c
+===================================================================
+--- btrfs-progs-v3.19.1.orig/props.c
++++ btrfs-progs-v3.19.1/props.c
 @@ -17,7 +17,7 @@
  #include <sys/stat.h>
  #include <sys/ioctl.h>
  #include <fcntl.h>
  #include <unistd.h>
  
---- a/cmds-receive.c
-+++ b/cmds-receive.c
-@@ -39,7 +39,7 @@
+Index: btrfs-progs-v3.19.1/cmds-receive.c
+===================================================================
+--- btrfs-progs-v3.19.1.orig/cmds-receive.c
++++ btrfs-progs-v3.19.1/cmds-receive.c
+@@ -34,7 +34,7 @@
  #include <sys/ioctl.h>
  #include <sys/time.h>
  #include <sys/types.h>
  #include <uuid/uuid.h>
  
  #include "ctree.h"
---- a/cmds-restore.c
-+++ b/cmds-restore.c
-@@ -34,7 +34,7 @@
+Index: btrfs-progs-v3.19.1/cmds-restore.c
+===================================================================
+--- btrfs-progs-v3.19.1.orig/cmds-restore.c
++++ btrfs-progs-v3.19.1/cmds-restore.c
+@@ -32,7 +32,7 @@
  #include <regex.h>
  #include <getopt.h>
  #include <sys/types.h>
  
  #include "ctree.h"
  #include "disk-io.h"
---- a/Makefile
-+++ b/Makefile
-@@ -26,7 +26,7 @@ TESTS = fsck-tests.sh convert-tests.sh
- INSTALL = install
- prefix ?= /usr/local
- bindir = $(prefix)/bin
--lib_LIBS = -luuid -lblkid -lm -lz -llzo2 -L.
-+lib_LIBS = -lattr -luuid -lblkid -lm -lz -llzo2 -L.
- libdir ?= $(prefix)/lib
- incdir = $(prefix)/include/btrfs
- LIBS = $(lib_LIBS) $(libs_static)
+Index: btrfs-progs-v3.19.1/Makefile.in
+===================================================================
+--- btrfs-progs-v3.19.1.orig/Makefile.in
++++ btrfs-progs-v3.19.1/Makefile.in
+@@ -21,7 +21,7 @@ CFLAGS = @CFLAGS@ \
+ LDFLAGS = @LDFLAGS@ \
+         -rdynamic
+-LIBS = @UUID_LIBS@ @BLKID_LIBS@ @ZLIB_LIBS@ @LZO2_LIBS@ -L. -pthread
++LIBS = @ATTR_LIBS@ @UUID_LIBS@ @BLKID_LIBS@ @ZLIB_LIBS@ @LZO2_LIBS@ -L. -pthread
+ LIBBTRFS_LIBS = $(LIBS)
+ # Static compilation flags
+Index: btrfs-progs-v3.19.1/configure.ac
+===================================================================
+--- btrfs-progs-v3.19.1.orig/configure.ac
++++ btrfs-progs-v3.19.1/configure.ac
+@@ -115,6 +115,9 @@ dnl
+ dnl The default PKG_CHECK_MODULES() action-if-not-found is end the
+ dnl execution with error. The static libs are optional.
++PKG_CHECK_MODULES(ATTR, [libattr])
++PKG_STATIC(BLKID_LIBS_STATIC, [libattr])
++
+ PKG_CHECK_MODULES(BLKID, [blkid])
+ PKG_STATIC(BLKID_LIBS_STATIC, [blkid])
index 33af152a79937fc15b6158ac55186b67d97b408f..61b05a8844977cd38b96416be4d7b38e1e5aef11 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
-PKG_VERSION:=5.4.1
+PKG_VERSION:=5.4.2
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://collectd.org/files/
-PKG_MD5SUM:=6f56c71c96573a7f4f7fb3bfab185974
+PKG_MD5SUM:=feff9fd0ed89e956d7cf12ba18cfc248
 
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=aclocal.m4 libltdl/aclocal.m4
@@ -298,7 +298,7 @@ $(eval $(call BuildPlugin,logfile,log files output,logfile,))
 $(eval $(call BuildPlugin,madwifi,MadWifi status input,madwifi,))
 #$(eval $(call BuildPlugin,mysql,MySQL status input,mysql,+PACKAGE_collectd-mod-mysql:libmysqlclient-r))
 $(eval $(call BuildPlugin,memory,physical memory usage input,memory,))
-$(eval $(call BuildPlugin,modbus,read variables through libmodbus,modbus,+PACKAGE_collectd-mod-modbus:libmodbus @BROKEN))
+$(eval $(call BuildPlugin,modbus,read variables through libmodbus,modbus,+PACKAGE_collectd-mod-modbus:libmodbus))
 $(eval $(call BuildPlugin,netlink,netlink input,netlink,+PACKAGE_collectd-mod-netlink:ip @BROKEN))
 $(eval $(call BuildPlugin,network,network input/output,network))
 $(eval $(call BuildPlugin,nginx,nginx status input,nginx,+PACKAGE_collectd-mod-nginx:libcurl))
index d5aafa287d53a7fabda50be4338bfff91932ca2d..30a71e8d6ac8afde80de512898c9262c602694f0 100644 (file)
@@ -34,7 +34,7 @@
                double tmp = atof (value);
 --- a/src/utils_rrdcreate.c
 +++ b/src/utils_rrdcreate.c
-@@ -211,6 +211,9 @@ static int rra_get (char ***ret, const v
+@@ -212,6 +212,9 @@ static int rra_get (char ***ret, const v
      rts_num = rra_timespans_num;
    }
  
index 0d4120ebf2103e545d4793283dd32f50d32aef95..ac0a32512e99ce96ee42aeefc2bffb06cd1ac74e 100644 (file)
@@ -2,7 +2,7 @@
 +++ b/version-gen.sh
 @@ -2,7 +2,7 @@
  
- DEFAULT_VERSION="5.4.1.git"
+ DEFAULT_VERSION="5.4.2.git"
  
 -VERSION="`git describe 2> /dev/null | sed -e 's/^collectd-//'`"
 +#VERSION="`git describe 2> /dev/null | sed -e 's/^collectd-//'`"
index 1b358d01ea32a6f85e397e3f8e48980bb48aa9b3..cc95c0c750226681fe96af65d91bc5aafa5e63e9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -568,6 +568,9 @@ AC_CHECK_HEADERS(net/pfvar.h,
+@@ -580,6 +580,9 @@ AC_CHECK_HEADERS(net/pfvar.h,
  have_termios_h="no"
  AC_CHECK_HEADERS(termios.h, [have_termios_h="yes"])
  
@@ -10,7 +10,7 @@
  #
  # Checks for typedefs, structures, and compiler characteristics.
  #
-@@ -4819,6 +4822,7 @@ plugin_interface="no"
+@@ -4841,6 +4844,7 @@ plugin_interface="no"
  plugin_ipmi="no"
  plugin_ipvs="no"
  plugin_irq="no"
@@ -18,7 +18,7 @@
  plugin_libvirt="no"
  plugin_load="no"
  plugin_memory="no"
-@@ -5157,6 +5161,7 @@ AC_PLUGIN([ipmi],        [$plugin_ipmi],
+@@ -5179,6 +5183,7 @@ AC_PLUGIN([ipmi],        [$plugin_ipmi],
  AC_PLUGIN([iptables],    [$with_libiptc],      [IPTables rule counters])
  AC_PLUGIN([ipvs],        [$plugin_ipvs],       [IPVS connection statistics])
  AC_PLUGIN([irq],         [$plugin_irq],        [IRQ statistics])
@@ -26,7 +26,7 @@
  AC_PLUGIN([java],        [$with_java],         [Embed the Java Virtual Machine])
  AC_PLUGIN([libvirt],     [$plugin_libvirt],    [Virtual machine statistics])
  AC_PLUGIN([load],        [$plugin_load],       [System load])
-@@ -5458,6 +5463,7 @@ Configuration:
+@@ -5480,6 +5485,7 @@ Configuration:
      protobuf-c  . . . . . $have_protoc_c
      oracle  . . . . . . . $with_oracle
      python  . . . . . . . $with_python
@@ -34,7 +34,7 @@
  
    Features:
      daemon mode . . . . . $enable_daemon
-@@ -5502,6 +5508,7 @@ Configuration:
+@@ -5524,6 +5530,7 @@ Configuration:
      iptables  . . . . . . $enable_iptables
      ipvs  . . . . . . . . $enable_ipvs
      irq . . . . . . . . . $enable_irq
@@ -52,7 +52,7 @@
  #@BUILD_PLUGIN_JAVA_TRUE@LoadPlugin java
  #@BUILD_PLUGIN_LIBVIRT_TRUE@LoadPlugin libvirt
  @BUILD_PLUGIN_LOAD_TRUE@@BUILD_PLUGIN_LOAD_TRUE@LoadPlugin load
-@@ -467,6 +468,12 @@
+@@ -502,6 +503,12 @@
  #     IgnoreSelected true
  #</Plugin>
  
@@ -67,7 +67,7 @@
  #     JVMArg "-Djava.class.path=@prefix@/share/collectd/java/collectd-api.jar"
 --- a/src/collectd.conf.pod
 +++ b/src/collectd.conf.pod
-@@ -2056,6 +2056,27 @@ and all other interrupts are collected.
+@@ -2077,6 +2077,27 @@ and all other interrupts are collected.
  
  =back
  
diff --git a/utils/collectd/patches/905-fix-sigrok-upstream-patch-post-541 b/utils/collectd/patches/905-fix-sigrok-upstream-patch-post-541
deleted file mode 100644 (file)
index 2b614cc..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -3825,18 +3825,20 @@ AC_ARG_WITH(libsigrok, [AS_HELP_STRING([--with-libsigrok@<:@=PREFIX@:>@], [Path
-                       with_libsigrok_ldflags="-L$withval/lib"
-               fi
-       fi
--],[])
-+],[with_libsigrok="yes"])
- # libsigrok has a glib dependency
- if test "x$with_libsigrok" = "xyes"
- then
--      if test -z "m4_ifdef([AM_PATH_GLIB_2_0], [yes], [])"
--      then
--              with_libsigrok="no (glib not available)"
--      else
--              AM_PATH_GLIB_2_0([2.28.0],
--                      [with_libsigrok_cflags="$with_libsigrok_cflags $GLIB_CFLAGS"; with_libsigrok_ldflags="$with_libsigrok_ldflags $GLIB_LIBS"])
--      fi
-+m4_ifdef([AM_PATH_GLIB_2_0],
-+      [
-+       AM_PATH_GLIB_2_0([2.28.0],
-+              [with_libsigrok_cflags="$with_libsigrok_cflags $GLIB_CFLAGS"; with_libsigrok_ldflags="$with_libsigrok_ldflags $GLIB_LIBS"])
-+      ],
-+      [
-+       with_libsigrok="no (glib not available)"
-+      ]
-+)
- fi
- # libsigrok headers
index 330c4ecb6fcd37a9f0f33a443946a932a032b662..fb7fc1211ba6b1a63432be886e3bc2e34af1a948 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=cryptsetup
-PKG_VERSION:=1.6.6
+PKG_VERSION:=1.6.7
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0+ LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING COPYING.LGPL
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/cryptsetup/v1.6
-PKG_MD5SUM:=179c0781de59838a4e39f61b2df5ea48
+PKG_MD5SUM:=918406eb5d2e2f5a7348c432ea9b1473
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
index f5b2f94d7b1230d458b9ca927b28a2d613767ff4..41483f2ef7370f812f8ac7e545c4b26788f1ae56 100644 (file)
@@ -71,7 +71,7 @@ endef
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
                $(TARGET_CONFIGURE_OPTS) \
-               OPTFLAGS="$(TARGET_CFLAGS) -D_FILE_OFFSET_BITS=64" \
+               OPTFLAGS="$(TARGET_CFLAGS) -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE" \
                PREFIX="/usr" \
                SBINDIR="/usr/sbin" \
                LDFLAGS="$(LDFLAGS)" \
diff --git a/utils/flashrom/Config.in b/utils/flashrom/Config.in
new file mode 100644 (file)
index 0000000..552001a
--- /dev/null
@@ -0,0 +1,279 @@
+menu "Flashrom configuration"
+       depends on PACKAGE_flashrom
+
+       choice
+               prompt "Default Programmer"
+               default DEFPROG_INTERNAL if FLASHROM_PCI
+               default DEFPROG_LINUX_SPI
+
+               config DEFPROG_INTERNAL
+                       depends on FRPROG_INTERNAL
+                       bool "Internal"
+
+               config DEFPROG_LINUX_SPI
+                       depends on FRPROG_LINUX_SPI
+                       bool "Linux SPI"
+
+               config DEFPROG_SERPROG
+                       depends on FRPROG_SERPROG
+                       bool "Serial"
+
+               config DEFPROG_RAYER_SPI
+                       depends on FRPROG_RAYER_SPI
+                       bool "Rayer SPI"
+
+               config DEFPROG_PONY_SPI
+                       depends on FRPROG_PONY_SPI
+                       bool "Pony SPI"
+
+               config DEFPROG_NIC3COM
+                       depends on FRPROG_NIC3COM
+                       bool "NIC3Com"
+
+               config DEFPROG_GFXNVIDIA
+                       depends on FRPROG_GFXNVIDIA
+                       bool "GFX Nvidia"
+
+               config DEFPROG_SATASII
+                       depends on FRPROG_SATASII
+                       bool "SATASII"
+
+#              config DEFPROG_ATAHPT
+#                      depends on FRPROG_ATAHPT
+#                      bool "Highpoint (HPT) ATA/RAID"
+
+               config DEFPROG_ATAVIA
+                       depends on FRPROG_ATAVIA
+                       bool "ATAVIA"
+
+               config DEFPROG_FT2232_SPI
+                       depends on FRPROG_FT2232_SPI
+                       bool "FT2232 SPI"
+
+               config DEFPROG_USBBLASTER_SPI
+                       depends on FRPROG_USBBLASTER_SPI
+                       bool "USBBlaster SPI"
+
+#              config DEFPROG_MSTARDDC_SPI
+#                      depends on FRPROG_MSTARDDC_SPI
+#                      bool "MSTAR DDC SPI"
+
+               config DEFPROG_PICKIT2_SPI
+                       depends on FRPROG_PICKIT2_SPI
+                       bool "PICkit2 SPI"
+
+               config DEFPROG_DUMMY
+                       depends on FRPROG_DUMMY
+                       bool "Dummy"
+
+               config DEFPROG_DRKAISER
+                       depends on FRPROG_DRKAISER
+                       bool "Dr. Kaiser"
+
+               config DEFPROG_NICREALTEK
+                       depends on FRPROG_NICREALTEK
+                       bool "Realtek NICs"
+
+#              config DEFPROG_NICNATSEMI
+#                      depends on FRPROG_NICNATSEMI
+#                      bool "National Semiconductor NICs"
+
+               config DEFPROG_NICINTEL
+                       depends on FRPROG_NICINTEL
+                       bool "Intel NICs"
+
+               config DEFPROG_NICINTEL_SPI
+                       depends on FRPROG_NICINTEL_SPI
+                       bool "Intel NICs SPI"
+
+               config DEFPROG_NICINTEL_EEPROM
+                       depends on FRPROG_NICINTEL_EEPROM
+                       bool "Intel NICs EEPROM"
+
+               config DEFPROG_OGP_SPI
+                       depends on FRPROG_OGP_SPI
+                       bool "OGP SPI"
+
+               config DEFPROG_BUSPIRATE_SPI
+                       depends on FRPROG_BUSPIRATE_SPI
+                       bool "SPI BUS Pirate"
+
+#              config DEFPROG_DEDIPROG
+#                      depends on FRPROG_DEDIPROG
+#                      bool "Dediprog SF100"
+
+               config DEFPROG_SATAMV
+                       depends on FRPROG_SATAMV
+                       bool "Marvell SATA"
+
+               config DEFPROG_IT8212
+                       depends on FRPROG_IT8212
+                       bool "ITE IT8212F PATA"
+       endchoice
+
+
+       menu "Misc Programmers"
+               config FRPROG_LINUX_SPI
+                       bool "Linux SPI"
+                       default y
+
+#              config FRPROG_MSTARDDC_SPI
+#                      bool "MSTAR DDC"
+#                      default n
+
+               config FRPROG_DUMMY
+                       bool "Dummy"
+                       default y
+       endmenu
+
+
+       config FLASHROM_FTDI
+               bool "FTDI Support"
+               default y
+
+       menu "FTDI Programmers"
+               depends on FLASHROM_FTDI
+
+               config FRPROG_FT2232_SPI
+                       depends on FLASHROM_FTDI
+                       bool "FT2232 SPI"
+                       default y
+
+               config FRPROG_USBBLASTER_SPI
+                       depends on FLASHROM_FTDI
+                       bool "USBBlaster SPI"
+                       default y
+       endmenu
+
+
+       config FLASHROM_PCI
+               bool "PCI Support"
+               default y if (TARGET_x86||TARGET_x86_64)
+
+       menu "PCI Programmers"
+               depends on FLASHROM_PCI
+
+               config FRPROG_INTERNAL
+                       depends on FLASHROM_PCI
+                       bool "Internal"
+                       default y
+
+               config FRPROG_RAYER_SPI
+                       depends on FLASHROM_PCI
+                       bool "Rayer SPI"
+                       default y
+
+               config FRPROG_NIC3COM
+                       depends on FLASHROM_PCI
+                       bool "NIC3Com"
+                       default y
+
+               config FRPROG_GFXNVIDIA
+                       depends on FLASHROM_PCI
+                       bool "GFX Nvidia"
+                       default y
+
+               config FRPROG_SATASII
+                       depends on FLASHROM_PCI
+                       bool "SATASII"
+                       default y
+
+#              config FRPROG_ATAHPT
+#                      depends on FLASHROM_PCI
+#                      bool "Highpoint (HPT) ATA/RAID"
+#                      default n
+
+               config FRPROG_ATAVIA
+                       depends on FLASHROM_PCI
+                       bool "ATAVIA"
+                       default y
+
+               config FRPROG_IT8212
+                       depends on FLASHROM_PCI
+                       bool "ITE IT8212F PATA"
+                       default y
+
+               config FRPROG_DRKAISER
+                       depends on FLASHROM_PCI
+                       bool "Dr. Kaiser"
+                       default y
+
+               config FRPROG_NICREALTEK
+                       depends on FLASHROM_PCI
+                       bool "Realtek NICs"
+                       default y
+
+#              config FRPROG_NICNATSEMI
+#                      depends on FLASHROM_PCI
+#                      bool "National Semiconductor NICs"
+#                      default n
+
+               config FRPROG_NICINTEL
+                       depends on FLASHROM_PCI
+                       bool "Intel NICs"
+                       default y
+
+               config FRPROG_NICINTEL_SPI
+                       depends on FLASHROM_PCI
+                       bool "Intel NICs SPI"
+                       default y
+
+               config FRPROG_NICINTEL_EEPROM
+                       depends on FLASHROM_PCI
+                       bool "Intel NICs EEPROM"
+                       default y
+
+               config FRPROG_OGP_SPI
+                       depends on FLASHROM_PCI
+                       bool "OGP SPI"
+                       default y
+
+               config FRPROG_SATAMV
+                       depends on FLASHROM_PCI
+                       bool "Marvell SATA"
+                       default y
+       endmenu
+
+
+       config FLASHROM_SERIAL
+               bool "Serial Support"
+               default y
+
+       menu "Serial Programmers"
+               depends on FLASHROM_SERIAL
+
+               config FRPROG_SERPROG
+                       depends on FLASHROM_SERIAL
+                       bool "Serial"
+                       default y
+
+               config FRPROG_PONY_SPI
+                       depends on FLASHROM_SERIAL
+                       bool "Pony SPI"
+                       default y
+
+               config FRPROG_BUSPIRATE_SPI
+                       depends on FLASHROM_SERIAL
+                       bool "SPI BUS Pirate"
+                       default y
+       endmenu
+
+
+       config FLASHROM_USB
+               bool "USB Support"
+               default y
+
+       menu "USB Programmers"
+               depends on FLASHROM_USB
+
+               config FRPROG_PICKIT2_SPI
+                       depends on FLASHROM_USB
+                       bool "PICkit2 SPI"
+                       default y
+
+#              config FRPROG_DEDIPROG
+#                      depends on FLASHROM_USB
+#                      bool "Dediprog SF100"
+#                      default n
+       endmenu
+endmenu
index 45e20caf977cd3fbe1a6028a0feb163d4f3a8263..702e63bed1aaae9bee183c395276568e81fd5278 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2010-2014 OpenWrt.org
+# Copyright (C) 2010-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:=flashrom
-PKG_VERSION:=0.9.7
+PKG_VERSION:=0.9.8
 PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://download.flashrom.org/releases
-PKG_MD5SUM:=d239bafa1b46619d851f70f84a5b122a
+PKG_MD5SUM:=ac513076b63ab7eb411a7694bb8f6fda
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=GPL-2.0
@@ -22,13 +22,22 @@ PKG_LICENSE_FILES:=COPYING
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include flashrom.mk
 
 define Package/flashrom
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=FlashROM Utility
   URL:=http://www.flashrom.org/
-  DEPENDS:=+zlib +pciutils +(TARGET_x86||TARGET_x86_64):dmidecode +libftdi
+  DEPENDS:=\
+       +(TARGET_x86||TARGET_x86_64):dmidecode \
+       +FLASHROM_FTDI:libftdi \
+       +FLASHROM_PCI:pciutils \
+       +FLASHROM_USB:libusb-compat
+endef
+
+define Package/flashrom/config
+       source "$(SOURCE)/Config.in"
 endef
 
 define Package/flashrom/description
diff --git a/utils/flashrom/flashrom.mk b/utils/flashrom/flashrom.mk
new file mode 100644 (file)
index 0000000..14fc5d8
--- /dev/null
@@ -0,0 +1,54 @@
+# Flashrom configuration
+define DefineConfig
+  ifeq ($(CONFIG_FLASHROM_$(1)),)
+    MAKE_FLAGS += NEED_$(1)=0
+  endif
+endef
+define DefineProgrammer
+  ifeq ($(CONFIG_FRPROG_$(1)),)
+    MAKE_FLAGS += CONFIG_$(1)=0
+  endif
+  ifneq ($(CONFIG_DEFPROG_$(1)),)
+    MAKE_FLAGS += CONFIG_DEFAULT_PROGRAMMER=CONFIG_$(1)
+  endif
+endef
+
+# Misc
+$(eval $(call DefineProgrammer,LINUX_SPI))
+#$(eval $(call DefineProgrammer,MSTARDDC_SPI))
+$(eval $(call DefineProgrammer,DUMMY))
+
+# FTDI
+$(eval $(call DefineConfig,FTDI))
+$(eval $(call DefineProgrammer,FT2232_SPI))
+$(eval $(call DefineProgrammer,USBBLASTER_SPI))
+
+# PCI
+$(eval $(call DefineConfig,PCI))
+$(eval $(call DefineProgrammer,INTERNAL))
+$(eval $(call DefineProgrammer,RAYER_SPI))
+$(eval $(call DefineProgrammer,NIC3COM))
+$(eval $(call DefineProgrammer,GFXNVIDIA))
+$(eval $(call DefineProgrammer,SATASII))
+#$(eval $(call DefineProgrammer,ATAHPT))
+$(eval $(call DefineProgrammer,ATAVIA))
+$(eval $(call DefineProgrammer,IT8212))
+$(eval $(call DefineProgrammer,DRKAISER))
+$(eval $(call DefineProgrammer,NICREALTEK))
+#$(eval $(call DefineProgrammer,NICNATSEMI))
+$(eval $(call DefineProgrammer,NICINTEL))
+$(eval $(call DefineProgrammer,NICINTEL_SPI))
+$(eval $(call DefineProgrammer,NICINTEL_EEPROM))
+$(eval $(call DefineProgrammer,OGP_SPI))
+$(eval $(call DefineProgrammer,SATAMV))
+
+# Serial
+$(eval $(call DefineConfig,SERIAL))
+$(eval $(call DefineProgrammer,SERPROG))
+$(eval $(call DefineProgrammer,PONY_SPI))
+$(eval $(call DefineProgrammer,BUSPIRATE_SPI))
+
+# USB
+$(eval $(call DefineConfig,USB))
+$(eval $(call DefineProgrammer,PICKIT2_SPI))
+#$(eval $(call DefineProgrammer,DEDIPROG))
diff --git a/utils/flashrom/patches/0001-fix_internal_bitbang.patch b/utils/flashrom/patches/0001-fix_internal_bitbang.patch
new file mode 100644 (file)
index 0000000..376d6b2
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/programmer.h
++++ b/programmer.h
+@@ -557,7 +557,7 @@ enum spi_controller {
+ #if CONFIG_DEDIPROG == 1
+       SPI_CONTROLLER_DEDIPROG,
+ #endif
+-#if CONFIG_OGP_SPI == 1 || CONFIG_NICINTEL_SPI == 1 || CONFIG_RAYER_SPI == 1 || CONFIG_PONY_SPI == 1 || (CONFIG_INTERNAL == 1 && (defined(__i386__) || defined(__x86_64__)))
++#if CONFIG_OGP_SPI == 1 || CONFIG_NICINTEL_SPI == 1 || CONFIG_RAYER_SPI == 1 || CONFIG_PONY_SPI == 1 || CONFIG_INTERNAL == 1
+       SPI_CONTROLLER_BITBANG,
+ #endif
+ #if CONFIG_LINUX_SPI == 1
diff --git a/utils/flashrom/patches/100-mipsel_fix.patch b/utils/flashrom/patches/100-mipsel_fix.patch
deleted file mode 100755 (executable)
index 3e34aee..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -uprN a/internal.c b/internal.c
---- a/internal.c       2014-06-13 16:44:14.263689579 +0200
-+++ b/internal.c       2014-06-13 16:46:04.229020785 +0200
-@@ -337,10 +337,12 @@ int internal_init(void)
-       init_superio_ite();
- #endif
-+#if defined(__i386__) || defined(__x86_64__) || defined (__arm__)
-       if (board_flash_enable(board_vendor, board_model, cb_vendor, cb_model)) {
-               msg_perr("Aborting to be safe.\n");
-               return 1;
-       }
-+#endif
- #if defined(__i386__) || defined(__x86_64__) || defined (__mips)
-       register_par_programmer(&par_programmer_internal, internal_buses_supported);
index 11a5885a7ad4b9c7ba7be7aee228f68cde422515..6b19c9dccc952cf3202d934c3475e8562cc16b9c 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gammu
 PKG_VERSION:=1.34.0
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 
 PKG_SOURCE_URL:=http://dl.cihar.com/gammu/releases/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
@@ -18,8 +18,11 @@ PKG_MD5SUM:=5bc2508389d9b291ca0b8d4f210d0012
 PKG_MAINTAINER:=Vitaly Protsko <villy@sft.ru>
 PKG_LICENCE:=GPL-2.0
 
+PKG_INSTALL:=1
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/gammu
        SECTION:=utils
@@ -28,34 +31,18 @@ define Package/gammu
        URL:=http://dl.cihar.com/gammu/releases/
        DEPENDS:=+libpthread +libcurl +glib2 $(ICONV_DEPENDS) $(INTL_DEPENDS)
        DEPENDS+=+PACKAGE_python:python +PACKAGE_bluez-libs:bluez-libs
-       DEPENDS+=+PACKAGE_libmysqlclient:libmysqlclient +PACKAGE_unixodbc:unixodbc
+       DEPENDS+=+PACKAGE_libmysqlclient:libmysqlclient +PACKAGE_unixodbc:unixodbc +PACKAGE_libpq:libpq
        DEPENDS+=+PACKAGE_libusb-1.0:libusb-1.0
 endef
 
-CONFIGURE_ARGS:= \
-       --prefix=/usr \
-       --cross-root="$(STAGING_DIR) $(TOOLCHAIN_DIR)" \
-       --enable-shared \
-       --without-libdbi
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               $(TARGET_CONFIGURE_OPTS) \
-               LDSHARED="$(TARGET_CROSS)ld -shared" \
-               CFLAGS="$(TARGET_CFLAGS) $(FPIC)"
-endef
+CMAKE_OPTIONS += -DWITH_LibDBI:BOOL=OFF
 
-define Build/Install
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               install
-endef
 
 define Build/InstallDev
        mkdir -p $(1)/usr/include
        $(CP) -r $(PKG_INSTALL_DIR)/usr/include/gammu $(1)/usr/include/
        mkdir -p $(1)/usr/lib
-       $(CP)    $(PKG_INSTALL_DIR)/usr/lib/lib{Gammu*,gsmsd*} $(1)/usr/lib/
+       $(CP)    $(PKG_INSTALL_DIR)/usr/lib$(LIB_SUFFIX)/lib{Gammu*,gsmsd*} $(1)/usr/lib/
 endef
 
 define Package/gammu/install
@@ -63,7 +50,7 @@ define Package/gammu/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gammu $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gammu-{smsd,smsd-inject,smsd-monitor} $(1)/usr/bin
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/lib{Gammu*,gsmsd*} $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib$(LIB_SUFFIX)/lib{Gammu*,gsmsd*} $(1)/usr/lib
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/gammu $(1)/etc/config/gammu
index 89cfa4ab5bbd752cbb8d891848c5beb2d9f7e14a..1d58625e1184366ae2a33c59cbbff4131224130c 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2009 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,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haserl
-PKG_VERSION:=0.9.34
+PKG_VERSION:=0.9.35
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/haserl
-PKG_MD5SUM:=cae2240f25040c7a0a270c35cf7abda4
+PKG_MD5SUM:=918f0b4f6cec0b438c8b5c78f2989010
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
index e59c0315f66cf029d8b8e38d5fc28c8bf8bfebbd..96769aae51061f9f40dcc07f9f58d1504978b91d 100644 (file)
@@ -8,16 +8,18 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=kmod
-PKG_VERSION:=19
+PKG_VERSION:=20
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://www.kernel.org/pub/linux/utils/kernel/kmod/
-PKG_MD5SUM:=a08643f814aa4efc12211c6e5909f4d9
+PKG_MD5SUM:=d6f4fef718a50bd88080de6a43bc64d8
 PKG_MAINTAINER:=Jeff Waugh <jdub@bethesignal.org>
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=COPYING
+PKG_FIXUP:=autoreconf
 
+PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
diff --git a/utils/kmod/patches/001-fix_pkgconfig_file.patch b/utils/kmod/patches/001-fix_pkgconfig_file.patch
new file mode 100644 (file)
index 0000000..1891078
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -35,9 +35,6 @@ SED_PROCESS = \
+       -e 's,@zlib_LIBS\@,${zlib_LIBS},g' \
+       < $< > $@ || rm $@
+-%.pc: %.pc.in Makefile
+-      $(SED_PROCESS)
+-
+ LIBKMOD_CURRENT=4
+ LIBKMOD_REVISION=9
+ LIBKMOD_AGE=2
+--- a/configure.ac
++++ b/configure.ac
+@@ -221,6 +221,7 @@ AC_CONFIG_HEADERS(config.h)
+ AC_CONFIG_FILES([
+       Makefile
+       man/Makefile
++      libkmod/libkmod.pc
+       libkmod/docs/Makefile
+       libkmod/docs/version.xml
+ ])
index 803a279fd0c24d731c1ebdbe07204c02e9985009..3e4361b55e610944f22b093c199dcd9074a814fe 100644 (file)
@@ -9,13 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=LVM2
-PKG_VERSION:=2.02.116
-PKG_RELEASE:=2
+PKG_VERSION:=2.02.118
+PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0 LGPL-2.1
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=ftp://sources.redhat.com/pub/lvm2
-PKG_MD5SUM:=3a1104e3d1dc4d5e92a40228161cd660
+PKG_MD5SUM:=27f028974e8f067a9791d685b4e0fa90
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION)
 
index dc159c5529377485237368c679c8d77be5f849ad..09d2db96256c7f3700057cb7fba8117341c29750 100644 (file)
@@ -8,4 +8,4 @@
 +#include <blkid/blkid.h>
  #endif
  
- #include "device-types.h"
+ #ifdef UDEV_SYNC_SUPPORT
index eaf77efdb43c8e862261352bd128c06dd65a81d3..3b2d1e435528a0fcef2aa7333a8fc4839855600b 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lxc
-PKG_VERSION:=1.1.0
+PKG_VERSION:=1.1.1
 PKG_RELEASE:=1
 
 PKG_LICENSE:=LGPL-2.1+ BSD-2-Clause GPL-2.0
@@ -16,7 +16,7 @@ PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://linuxcontainers.org/downloads/lxc/
-PKG_MD5SUM:=ab1cbabf859abc15165050c854979c5c
+PKG_MD5SUM:=d80cb08f0edf36f0887e32c96aec8c13
 
 PKG_BUILD_DEPENDS:=lua
 PKG_BUILD_PARALLEL:=1
diff --git a/utils/lxc/patches/030-lxc-download.patch b/utils/lxc/patches/030-lxc-download.patch
new file mode 100644 (file)
index 0000000..295bae0
--- /dev/null
@@ -0,0 +1,43 @@
+--- a/templates/lxc-download.in
++++ b/templates/lxc-download.in
+@@ -39,7 +39,7 @@ DOWNLOAD_LIST_IMAGES="false"
+ DOWNLOAD_MODE="system"
+ DOWNLOAD_READY_GPG="false"
+ DOWNLOAD_RELEASE=
+-DOWNLOAD_SERVER="images.linuxcontainers.org"
++DOWNLOAD_SERVER="virtualwrt.org/containers/"
+ DOWNLOAD_SHOW_GPG_WARNING="true"
+ DOWNLOAD_SHOW_HTTP_WARNING="true"
+ DOWNLOAD_TARGET="system"
+@@ -257,14 +257,6 @@ for bin in tar xz wget; do
+     fi
+ done
+-# Check for GPG
+-if [ "$DOWNLOAD_VALIDATE" = "true" ]; then
+-    if ! type gpg >/dev/null 2>&1; then
+-        echo "ERROR: Missing recommended tool: gpg" 1>&2
+-        echo "You can workaround this by using --no-validate." 1>&2
+-        exit 1
+-    fi
+-fi
+ # Check that we have all variables we need
+ if [ -z "$LXC_NAME" ] || [ -z "$LXC_PATH" ] || [ -z "$LXC_ROOTFS" ]; then
+@@ -456,16 +448,9 @@ if [ "$DOWNLOAD_USE_CACHE" = "false" ];
+         echo "Downloading the rootfs"
+         download_file $DOWNLOAD_URL/rootfs.tar.xz \
+             ${DOWNLOAD_TEMP}/rootfs.tar.xz normal
+-        download_sig  $DOWNLOAD_URL/rootfs.tar.xz.asc \
+-             ${DOWNLOAD_TEMP}/rootfs.tar.xz.asc normal
+-        gpg_validate ${DOWNLOAD_TEMP}/rootfs.tar.xz.asc
+-
+         echo "Downloading the metadata"
+         download_file $DOWNLOAD_URL/meta.tar.xz \
+             ${DOWNLOAD_TEMP}/meta.tar.xz normal
+-        download_sig  $DOWNLOAD_URL/meta.tar.xz.asc \
+-            ${DOWNLOAD_TEMP}/meta.tar.xz.asc normal
+-        gpg_validate ${DOWNLOAD_TEMP}/meta.tar.xz.asc
+         if [ -d $LXC_CACHE_PATH ]; then
+             rm -Rf $LXC_CACHE_PATH
diff --git a/utils/lxc/patches/300-fix-lxc-destroy.patch b/utils/lxc/patches/300-fix-lxc-destroy.patch
deleted file mode 100644 (file)
index 241f387..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From bdeafb7bc4857e80dbca5192a751eedcf7b69abd Mon Sep 17 00:00:00 2001
-From: Luka Perkov <luka@openwrt.org>
-Date: Mon, 27 Oct 2014 21:49:46 +0100
-Subject: [PATCH] utils: remove unnecessary check of mystat.st_dev
-
-The check is not needed and it breaks lxc-destroy when container is installed
-on top of overlayfs. More information why this is a problem on overlayfs can be
-found here:
-
-https://kernel.googlesource.com/pub/scm/linux/kernel/git/mszeredi/vfs/+/overlayfs.current/Documentation/filesystems/overlayfs.txt
-
-Signed-off-by: Luka Perkov <luka@openwrt.org>
----
- src/lxc/utils.c | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
---- a/src/lxc/utils.c
-+++ b/src/lxc/utils.c
-@@ -47,7 +47,7 @@
- lxc_log_define(lxc_utils, lxc);
--static int _recursive_rmdir_onedev(char *dirname, dev_t pdev,
-+static int _recursive_rmdir_onedev(char *dirname,
-                                  const char *exclude, int level)
- {
-       struct dirent dirent, *direntp;
-@@ -108,10 +108,8 @@ static int _recursive_rmdir_onedev(char
-                       failed=1;
-                       continue;
-               }
--              if (mystat.st_dev != pdev)
--                      continue;
-               if (S_ISDIR(mystat.st_mode)) {
--                      if (_recursive_rmdir_onedev(pathname, pdev, exclude, level+1) < 0)
-+                      if (_recursive_rmdir_onedev(pathname, exclude, level+1) < 0)
-                               failed=1;
-               } else {
-                       if (unlink(pathname) < 0) {
-@@ -147,7 +145,7 @@ extern int lxc_rmdir_onedev(char *path,
-               return -1;
-       }
--      return _recursive_rmdir_onedev(path, mystat.st_dev, exclude, 0);
-+      return _recursive_rmdir_onedev(path, exclude, 0);
- }
- static int mount_fs(const char *source, const char *target, const char *type)
diff --git a/utils/lxc/patches/300-lxc-destroy.patch b/utils/lxc/patches/300-lxc-destroy.patch
new file mode 100644 (file)
index 0000000..a76e27a
--- /dev/null
@@ -0,0 +1,113 @@
+One of the 'features' of overlayfs is that depending on whether a file
+is on the upper or lower dir you get back a different device from stat.
+That breaks our lxc_rmdir_onedev.
+
+So at lxc_rmdir_ondev check the device of the directory being deleted.
+If it is overlayfs, then skip the device check.
+
+Note this is unrelated to overlayfs snapshots - in those cases when you
+delete a container, /var/lib/lxc/$container/ does not actually have an
+overlayfs under it.  Rather, to reproduce this you would
+
+sudo mkdir /opt/{lower,upper,workdir}
+sudo mount -t overlayfs -o lower=/opt/lower,upper=/opt/upper,workdir=/opt/workdir \
+       lxc /var/lib/lxc
+sudo lxc-create -t download -n c1 -- -d ubuntu -r trusty -a amd64
+sudo lxc-destroy -n c1
+
+Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
+---
+ src/lxc/utils.c | 39 ++++++++++++++++++++++++++++++++-------
+ 1 file changed, 32 insertions(+), 7 deletions(-)
+
+--- a/src/lxc/utils.c
++++ b/src/lxc/utils.c
+@@ -29,6 +29,7 @@
+ #include <stddef.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/vfs.h>
+ #include <sys/stat.h>
+ #include <sys/mman.h>
+ #include <sys/param.h>
+@@ -68,8 +69,8 @@
+ lxc_log_define(lxc_utils, lxc);
+-static int _recursive_rmdir_onedev(char *dirname, dev_t pdev,
+-                                 const char *exclude, int level)
++static int _recursive_rmdir(char *dirname, dev_t pdev,
++                          const char *exclude, int level, bool onedev)
+ {
+       struct dirent dirent, *direntp;
+       DIR *dir;
+@@ -106,7 +107,7 @@ static int _recursive_rmdir_onedev(char
+                       if (ret < 0) {
+                               switch(errno) {
+                               case ENOTEMPTY:
+-                                      INFO("Not deleting snapshots");
++                                      INFO("Not deleting snapshot %s", pathname);
+                                       hadexclude = true;
+                                       break;
+                               case ENOTDIR:
+@@ -129,14 +130,14 @@ static int _recursive_rmdir_onedev(char
+                       failed=1;
+                       continue;
+               }
+-              if (mystat.st_dev != pdev)
++              if (onedev && mystat.st_dev != pdev)
+                       continue;
+               if (S_ISDIR(mystat.st_mode)) {
+-                      if (_recursive_rmdir_onedev(pathname, pdev, exclude, level+1) < 0)
++                      if (_recursive_rmdir(pathname, pdev, exclude, level+1, onedev) < 0)
+                               failed=1;
+               } else {
+                       if (unlink(pathname) < 0) {
+-                              ERROR("%s: failed to delete %s", __func__, pathname);
++                              SYSERROR("%s: failed to delete %s", __func__, pathname);
+                               failed=1;
+                       }
+               }
+@@ -158,17 +159,41 @@ static int _recursive_rmdir_onedev(char
+       return failed ? -1 : 0;
+ }
++/* we have two different magic values for overlayfs, yay */
++#define OVERLAYFS_SUPER_MAGIC 0x794c764f
++#define OVERLAY_SUPER_MAGIC 0x794c7630
++/*
++ * In overlayfs, st_dev is unreliable.  so on overlayfs we don't do
++ * the lxc_rmdir_onedev()
++ */
++static bool is_native_overlayfs(const char *path)
++{
++      struct statfs sb;
++
++      if (statfs(path, &sb) < 0)
++              return false;
++      if (sb.f_type == OVERLAYFS_SUPER_MAGIC ||
++                      sb.f_type == OVERLAY_SUPER_MAGIC)
++              return true;
++      return false;
++}
++
+ /* returns 0 on success, -1 if there were any failures */
+ extern int lxc_rmdir_onedev(char *path, const char *exclude)
+ {
+       struct stat mystat;
++      bool onedev = true;
++
++      if (is_native_overlayfs(path)) {
++              onedev = false;
++      }
+       if (lstat(path, &mystat) < 0) {
+               ERROR("%s: failed to stat %s", __func__, path);
+               return -1;
+       }
+-      return _recursive_rmdir_onedev(path, mystat.st_dev, exclude, 0);
++      return _recursive_rmdir(path, mystat.st_dev, exclude, 0, onedev);
+ }
+ static int mount_fs(const char *source, const char *target, const char *type)
index 1fb7becccea456cb152c4c5bf2a5e82ea095a0cc..ab8cd1b0300713049207ccea3a1bc71281557c58 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,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mc
-PKG_VERSION:=4.8.13
-PKG_RELEASE:=1.2
+PKG_VERSION:=4.8.14
+PKG_RELEASE:=1.3
 PKG_MAINTAINER:=Dirk Brenken <dibdot@gmail.com>
 PKG_LICENSE:=GPL-3.0+
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://ftp.midnight-commander.org/
-PKG_MD5SUM:=d967caa12765eb86e52a6a63ca202500
+PKG_MD5SUM:=fbdaddb9edcf8925dcf3231331a8720b
 
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
@@ -36,7 +36,7 @@ include $(INCLUDE_DIR)/nls.mk
 define Package/mc
   SECTION:=utils
   CATEGORY:=Utilities
-  DEPENDS:=+glib2 +libncurses +MC_VFS:libssh2 $(LIBRPC_DEPENDS) $(ICONV_DEPENDS)
+  DEPENDS:=+glib2 +libncurses +libmount +MC_VFS:libssh2 $(LIBRPC_DEPENDS) $(ICONV_DEPENDS)
   TITLE:=Midnight Commander - a powerful visual file manager
   URL:=http://www.midnight-commander.org/
   MENU:=1
index 59da16c6c68e419f5c3efc4b09b45a840d13e1eb..a5c425b6a20839dde83569be0433abcc3ca0c7db 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mmc-utils
 PKG_VERSION=2015-03-06-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
diff --git a/utils/mmc-utils/patches/001-dont-set-fortify-source-in-makefile.patch b/utils/mmc-utils/patches/001-dont-set-fortify-source-in-makefile.patch
new file mode 100644 (file)
index 0000000..9b2b8ba
--- /dev/null
@@ -0,0 +1,11 @@
+Index: mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189/Makefile
+===================================================================
+--- mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189.orig/Makefile
++++ mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189/Makefile
+@@ -1,5 +1,5 @@
+ CC ?= gcc
+-AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2
++AM_CFLAGS = -D_FILE_OFFSET_BITS=64
+ CFLAGS ?= -g -O2
+ objects = \
+       mmc.o \
index 49f0b9bb978d60a4ae61d76feefe8bab3e4b04ed..6d000425da364bb16e899c73c677e3d029c06aab 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2014 OpenWrt.org
+# Copyright (C) 2007-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nano
-PKG_VERSION:=2.3.6
+PKG_VERSION:=2.4.0
 PKG_RELEASE:=1
+PKG_LICENSE:=GPL-3.0+
+PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.nano-editor.org/dist/v2.3
-PKG_MD5SUM:=df3d201aecb3155a80633990cc467831
+PKG_SOURCE_URL:=http://www.nano-editor.org/dist/v2.4
+PKG_MD5SUM:=e5c9c6424ee2303663ae4b99ecd4b493
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
diff --git a/utils/ntfs-3g/patches/001-fuseint-fix-path-mounted-on-musl.patch b/utils/ntfs-3g/patches/001-fuseint-fix-path-mounted-on-musl.patch
new file mode 100644 (file)
index 0000000..577c89b
--- /dev/null
@@ -0,0 +1,30 @@
+Index: ntfs-3g-2014.2.15-1-fuseint/libfuse-lite/fusermount.c
+===================================================================
+--- ntfs-3g-2014.2.15-1-fuseint.orig/libfuse-lite/fusermount.c
++++ ntfs-3g-2014.2.15-1-fuseint/libfuse-lite/fusermount.c
+@@ -36,6 +36,10 @@
+ #define FUSE_DEV_NEW "/dev/fuse"
++#ifndef _PATH_MOUNTED
++#define _PATH_MOUNTED "/proc/mounts"
++#endif
++
+ #ifndef MS_DIRSYNC
+ #define MS_DIRSYNC 128
+ #endif
+Index: ntfs-3g-2014.2.15-1-fuseint/libfuse-lite/mount_util.c
+===================================================================
+--- ntfs-3g-2014.2.15-1-fuseint.orig/libfuse-lite/mount_util.c
++++ ntfs-3g-2014.2.15-1-fuseint/libfuse-lite/mount_util.c
+@@ -255,6 +255,10 @@ int fuse_mnt_check_fuseblk(void)
+ #else /* __SOLARIS__ */
++#ifndef _PATH_MOUNTED
++#define _PATH_MOUNTED "/proc/mounts"
++#endif /* _PATH_MOUNTED */
++
+ static int mtab_needs_update(const char *mnt)
+ {
+       int res;
index c7e19f18b773172fa8fc872cdcac13d41e8bef37..1c8ef9d51db115420730f8cb86b89d2b1491a78d 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=open-plc-utils
-PKG_VERSION:=2013-01-29
+PKG_VERSION:=2015-02-23
 PKG_RELEASE:=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://github.com/qca/open-plc-utils.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=6beeb6fe6ce2b16b14284c26e1b9220b68044591
+PKG_SOURCE_VERSION:=1f6e7e372b313cf570aa63314037588ed01ec0de
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_MAINTAINER:=Florian Fainelli <florian@openwrt.org>
index d3b0765f85b7dd1dc1b3ab38940a86c3d8238bd8..0d7ec33f9a395a672d54a510eb61d3fa72aaf9b0 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2014 OpenWrt.org
+# Copyright (C) 2007-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pciutils
 PKG_VERSION:=3.3.0
-PKG_RELEASE:=1
+PKG_RELEASE:=3
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -29,7 +29,7 @@ define Package/pciutils
   CATEGORY:=Utilities
   TITLE:=Linux PCI Utilities
   URL:=http://mj.ucw.cz/pciutils.shtml
-  DEPENDS:=+zlib
+  DEPENDS:=+libkmod +zlib
 endef
 
 define Package/pciutils/description
@@ -50,7 +50,7 @@ MAKE_FLAGS += \
        HOST="$(GNU_TARGET_NAME)" \
        ZLIB="yes" \
 
-ifneq ($(CONFIG_USE_EGLIBC),)
+ifneq ($(CONFIG_USE_GLIBC),)
 TARGET_LDFLAGS += -lresolv
 endif
 
diff --git a/utils/tar/Makefile b/utils/tar/Makefile
new file mode 100644 (file)
index 0000000..02d796b
--- /dev/null
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2008-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:=tar
+PKG_VERSION:=1.28
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
+PKG_MD5SUM:=8f32b2bc1ed7ddf4cf4e4a39711341b0
+PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
+
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/tar
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+bzip2 +libacl +libattr
+  TITLE:=GNU tar
+  URL:=http://www.gnu.org/software/tar/
+endef
+
+define Package/tar/description
+       Tar is a program for packaging a set of files as a
+       single archive in tar format.
+endef
+
+define Package/tar/postinst
+#!/bin/sh
+if [ -e $${IPKG_INSTROOT}/bin/tar ]; then
+  rm -r $${IPKG_INSTROOT}/bin/tar;
+fi
+ln -sf /usr/bin/tar $${IPKG_INSTROOT}/bin/tar
+endef
+
+define Package/tar/postrm
+#!/bin/sh
+rm $${IPKG_INSTROOT}/bin/tar
+ln -s busybox $${IPKG_INSTROOT}/bin/tar
+$${IPKG_INSTROOT}/bin/tar 2>&1 | grep 'applet not found' > /dev/null 2>&1 && rm $${IPKG_INSTROOT}/bin/tar
+exit 0
+endef
+
+MAKE_FLAGS += \
+       CFLAGS="$(TARGET_CFLAGS)" \
+       LDFLAGS="$(TARGET_LDLAGS)"
+
+define Package/tar/install
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,tar))
index d42e9ab577068ee5ffe8b59376de58336b9390c5..0a2d62c0ca86e8e180127b7152bc5c6d16e58b91 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=taskwarrior
-PKG_VERSION:=2.4.0
+PKG_VERSION:=2.4.1
 PKG_RELEASE:=1
 
 PKG_LICENSE:=MIT
 
 PKG_SOURCE:=task-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.taskwarrior.org/download/
-PKG_MD5SUM:=de4b64b3d28bb9636af219a486552cd0
+PKG_MD5SUM:=f250f3fb3922e4153c6ad1b1270dceb8
 PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/task-$(PKG_VERSION)
diff --git a/utils/tmux/patches/200-usr-local.patch b/utils/tmux/patches/200-usr-local.patch
new file mode 100644 (file)
index 0000000..07336de
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -101,9 +101,9 @@ bin_PROGRAMS = tmux$(EXEEXT)
+ @IS_DEBUG_TRUE@@IS_GCC_TRUE@  -Wdeclaration-after-statement
+ @IS_DEBUG_TRUE@@IS_GCC_TRUE@am__append_4 = -DDEBUG
+ @IS_DEBUG_FALSE@@IS_GCC_TRUE@am__append_5 = -O2
+-@IS_GCC4_TRUE@@IS_GCC_TRUE@am__append_6 = -iquote. -I/usr/local/include
++@IS_GCC4_TRUE@@IS_GCC_TRUE@am__append_6 = -iquote.
+ @IS_DEBUG_TRUE@@IS_GCC4_TRUE@@IS_GCC_TRUE@am__append_7 = -Wno-pointer-sign
+-@IS_GCC4_FALSE@@IS_GCC_TRUE@am__append_8 = -I. -I- -I/usr/local/include
++@IS_GCC4_FALSE@@IS_GCC_TRUE@am__append_8 = -I. -I-
+ # Set flags for Solaris.
+ @IS_GCC_TRUE@@IS_SUNOS_TRUE@am__append_9 = -D_XPG6 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
index f74f7ad29c5cfc8600daaf58ecced6a7859acf4e..bcabfc56716986ff1f0f6387dbd33ecdd77bba5f 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unrar
-PKG_VERSION:=5.2.5
+PKG_VERSION:=5.2.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.rarlab.com/rar
-PKG_MD5SUM:=ba69acb6c17fb4829ea7440079001c36
+PKG_MD5SUM:=0c145e1ac47d428553123462c0740279
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=UnRAR
index 9e43821723fd7a94bbacdde1dacd81ce60d71804..da01c671ecda5d970c2ee545166cc0d5dce2e453 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vim
 PKG_VERSION:=7.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 VIMVER:=74
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
@@ -101,6 +101,7 @@ CONFIGURE_ARGS += \
        --disable-netbeans \
        --disable-cscope \
        --disable-gpm \
+       --disable-acl \
        --with-tlib=ncurses
 
 CONFIGURE_VARS += \
index 6f1b6ef8f5c63aec8ac77f2f7638195abf78b236..3327fddc4ec75376ed29d6667d5324a2d0875b0a 100644 (file)
@@ -9,8 +9,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zoneinfo
-PKG_VERSION:=2015a
-PKG_VERSION_CODE:=2015a
+PKG_VERSION:=2015b
+PKG_VERSION_CODE:=2015b
 PKG_RELEASE:=1
 
 #As i couldn't find real license used "Public Domain"
@@ -20,14 +20,14 @@ PKG_LICENSE:=Public Domain
 PKG_SOURCE:=tzdata$(PKG_VERSION).tar.gz
 PKG_SOURCE_CODE:=tzcode$(PKG_VERSION_CODE).tar.gz
 PKG_SOURCE_URL:=http://www.iana.org/time-zones/repository/releases
-PKG_MD5SUM:=4ed11c894a74a5ea64201b1c6dbb8831
+PKG_MD5SUM:=75571bb17c7b6be88a9f8872e45bc726
 
 include $(INCLUDE_DIR)/package.mk
 
 define Download/tzcode
    FILE=$(PKG_SOURCE_CODE)
    URL=$(PKG_SOURCE_URL)
-   MD5SUM:=8f375ede46ae137fbac047ac431bda37
+   MD5SUM:=f073a7c9bca7f9fe408491f826e92968
 endef
 
 $(eval $(call Download,tzcode))