include $(TOPDIR)/rules.mk
PKG_NAME:=netdata
-PKG_VERSION:=20160508-devel
+PKG_VERSION:=1.2.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Sebastian Careba <nitroshift@yahoo.com>
PKG_LICENSE:=GPL-3.0
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/firehol/netdata
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=0ec2db444011f5b6ebf41dab45502c27cd544af2
+PKG_SOURCE_VERSION:=bb4aa949f5ac825253d8adc6070661299abc1c3b
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_INSTALL:=1
define Package/netdata
SECTION:=admin
CATEGORY:=Administration
- DEPENDS:=+zlib
+ DEPENDS:=+zlib +libuuid
TITLE:=Real-time performance monitoring tool
URL:=http://netdata.firehol.org/
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=attrs
-PKG_VERSION:=15.2.0
+PKG_VERSION:=16.0.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/a/attrs
-PKG_MD5SUM:=b3c460eb6482f6e557c0e4025475c007
+PKG_SOURCE_URL:=https://pypi.python.org/packages/89/15/80d388d696c8c8ba14874635207aa698eb30ef1242dbb54d9eccf0e927ff
+PKG_MD5SUM:=5bcdd418f6e83e580434c63067c08a73
PKG_BUILD_DEPENDS:=python python-setuptools
include $(TOPDIR)/rules.mk
PKG_NAME:=cffi
-PKG_VERSION:=1.5.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.7.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/c/cffi
-PKG_MD5SUM:=fa766133f7299464c8bf857e0c966a82
+PKG_SOURCE_URL:=https://pypi.python.org/packages/83/3c/00b553fd05ae32f27b3637f705c413c4ce71290aa9b4c4764df694e906d9
+PKG_MD5SUM:=34122a545060cee58bab88feab57006d
PKG_BUILD_DEPENDS:=python python-setuptools
HOST_BUILD_DEPENDS:=libffi/host python/host python-setuptools/host python-pycparser/host
include $(TOPDIR)/rules.mk
PKG_NAME:=cryptography
-PKG_VERSION:=1.3.1
+PKG_VERSION:=1.4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/c/cryptography
-PKG_MD5SUM:=bc8148d2ff2d80fef8ef2d2e856b3a7f
+PKG_SOURCE_URL:=https://pypi.python.org/packages/a9/5b/a383b3a778609fe8177bd51307b5ebeee369b353550675353f46cb99c6f0
+PKG_MD5SUM:=a9763e3831cc7cdb402c028fac1ceb39
PKG_BUILD_DEPENDS:=python-cffi/host
--- /dev/null
+diff --git a/src/_cffi_src/openssl/cmac.py b/src/_cffi_src/openssl/cmac.py
+index f4a3686..bf52144 100644
+--- a/src/_cffi_src/openssl/cmac.py
++++ b/src/_cffi_src/openssl/cmac.py
+@@ -5,7 +5,7 @@
+ from __future__ import absolute_import, division, print_function
+
+ INCLUDES = """
+-#if OPENSSL_VERSION_NUMBER >= 0x10001000L
++#if !defined(OPENSSL_NO_CMAC) && OPENSSL_VERSION_NUMBER >= 0x10001000L
+ #include <openssl/cmac.h>
+ #endif
+ """
+@@ -28,7 +28,7 @@ void CMAC_CTX_free(CMAC_CTX *);
+ """
+
+ CUSTOMIZATIONS = """
+-#if OPENSSL_VERSION_NUMBER < 0x10001000L
++#if defined(OPENSSL_NO_CMAC) || OPENSSL_VERSION_NUMBER < 0x10001000L
+
+ static const long Cryptography_HAS_CMAC = 0;
+ typedef void CMAC_CTX;
#
-# Copyright (C) 2015 OpenWrt.org
+# Copyright (C) 2015-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=gmpy2
-PKG_VERSION:=2.0.7
+PKG_VERSION:=2.0.8
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/g/gmpy2
-PKG_MD5SUM:=b5aada3ee5afb316ea94604f45192054
+PKG_SOURCE_URL:=https://pypi.python.org/packages/90/f4/9a2e384b325b69bc5827b9a6510a8fb4a51698c915c06a3f25a86458892a
+PKG_MD5SUM:=56d40bddcf8f22be0a36d60f764f3241
PKG_LICENSE:=LGPL-3.0+
PKG_LICENSE_FILES:=COPYING.LESSER
include $(TOPDIR)/rules.mk
PKG_NAME:=python-pyserial
-PKG_VERSION:=2.7
+PKG_VERSION:=3.1.1
PKG_RELEASE:=1
PKG_MAINTAINER:=Micke Prag <micke.prag@telldus.se>
PKG_LICENSE:=Python-2.0
PKG_SOURCE:=pyserial-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://pypi.python.org/packages/source/p/pyserial/
-PKG_MD5SUM:=794506184df83ef2290de0d18803dd11
+PKG_SOURCE_URL:=http://pypi.python.org/packages/3c/d8/a9fa247ca60b02b3bebbd61766b4f321393b57b13c53b18f6f62cf172c08/
+PKG_MD5SUM:=2f72100de3e410b36d575e12e82e9d27
PKG_BUILD_DIR:=$(BUILD_DIR)/pyserial-$(PKG_VERSION)
PKG_BUILD_DEPENDS:=python
endef
define Build/Compile
- $(call Build/Compile/PyMod,,install --prefix="$(PKG_INSTALL_DIR)/usr")
+ $(call Build/Compile/PyMod,,install --prefix=/usr --root="$(PKG_INSTALL_DIR)")
endef
define Package/python-pyserial/install
include $(TOPDIR)/rules.mk
PKG_NAME:=twisted
-PKG_VERSION:=16.0.0
+PKG_VERSION:=16.3.0
PKG_RELEASE:=1
PKG_SOURCE:=Twisted-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/T/Twisted \
- http://twistedmatrix.com/Releases/Twisted/16.0
-PKG_MD5SUM:=c6aa35e9a1e40fce6797247f39647d2a
+PKG_SOURCE_URL:=https://pypi.python.org/packages/c0/7c/c1e5b61e30b7ffc96576d2a922615c8068e6996a622be813fc626cef07aa \
+ http://twistedmatrix.com/Releases/Twisted/16.3
+PKG_MD5SUM:=e044af844623e9fbcbe29f578db6053a
PKG_BUILD_DIR:=$(BUILD_DIR)/Twisted-$(PKG_VERSION)
PKG_BUILD_DEPENDS:=python python-setuptools USE_MUSL:librpc
define PyPackage/twisted/filespec
+|/usr/bin
--|/usr/bin/manhole
--|/usr/bin/tap2deb
--|/usr/bin/tap2rpm
-|/usr/bin/tkconch
+|$(PYTHON_PKG_DIR)
-|$(PYTHON_PKG_DIR)/twisted/conch/scripts/tkconch.py
--|$(PYTHON_PKG_DIR)/twisted/scripts/manhole.py
--|$(PYTHON_PKG_DIR)/twisted/scripts/tap2deb.py
--|$(PYTHON_PKG_DIR)/twisted/scripts/tap2rpm.py
endef
define Build/Compile
-diff -Nur a/twisted/python/twisted-completion.zsh b/twisted/python/twisted-completion.zsh
---- a/twisted/python/twisted-completion.zsh 2015-11-29 11:30:47.000000000 +0800
-+++ b/twisted/python/twisted-completion.zsh 2015-11-30 20:05:59.755695237 +0800
+diff --git a/twisted/python/twisted-completion.zsh b/twisted/python/twisted-completion.zsh
+index 4d97aa5..9a8d4d8 100644
+--- a/twisted/python/twisted-completion.zsh
++++ b/twisted/python/twisted-completion.zsh
@@ -1,4 +1,4 @@
--#compdef twistd trial conch cftp ckeygen pyhtmlizer tap2deb tkconch manhole tap2rpm
+-#compdef twistd trial conch cftp ckeygen pyhtmlizer tkconch
+#compdef twistd trial conch cftp ckeygen pyhtmlizer
#
# This is the ZSH completion file for Twisted commands. It calls the current
-diff -Nur a/setup.py b/setup.py
---- a/setup.py 2015-11-29 11:30:46.000000000 +0800
-+++ b/setup.py 2015-12-02 18:22:10.251268303 +0800
-@@ -49,11 +49,11 @@
- scripts = getScripts()
+diff --git a/setup.py b/setup.py
+index d10f17d..d347d64 100755
+--- a/setup.py
++++ b/setup.py
+@@ -40,11 +40,12 @@ def main(args):
+ setup_args = STATIC_PACKAGE_METADATA.copy()
setup_args.update(dict(
-- packages=getPackages('twisted'),
-+ packages=getPackages('twisted', ignore=['test']),
+- packages=setuptools.find_packages(),
++ packages=setuptools.find_packages(exclude=["*.test", "*.test.*"]),
+ install_requires=requirements,
conditionalExtensions=getExtensions(),
- scripts=scripts,
+ scripts=getScripts(),
+ include_package_data=True,
++ exclude_package_data={'':['test/*']},
+ zip_safe=False,
extras_require=_EXTRAS_REQUIRE,
-- data_files=getDataFiles('twisted'),
-+ data_files=getDataFiles('twisted', ignore=['test']),
- **STATIC_PACKAGE_METADATA))
-
- setup(**setup_args)
-diff -Nur a/twisted/python/dist.py b/twisted/python/dist.py
---- a/twisted/python/dist.py 2015-11-29 11:30:47.000000000 +0800
-+++ b/twisted/python/dist.py 2015-12-02 19:21:20.076370379 +0800
-@@ -268,11 +268,6 @@
+ ))
+diff --git a/twisted/python/dist.py b/twisted/python/dist.py
+index aac2756..5633f09 100644
+--- a/twisted/python/dist.py
++++ b/twisted/python/dist.py
+@@ -182,10 +182,10 @@ def getExtensions():
+ Get the C extensions used for Twisted.
"""
extensions = [
- ConditionalExtension(
+- ConditionalExtension(
- "twisted.test.raiser",
- ["twisted/test/raiser.c"],
- condition=lambda _: _isCPython),
--
-- ConditionalExtension(
++ #ConditionalExtension(
++ # "twisted.test.raiser",
++ # ["twisted/test/raiser.c"],
++ # condition=lambda _: _isCPython),
+
+ ConditionalExtension(
"twisted.internet.iocpreactor.iocpsupport",
- ["twisted/internet/iocpreactor/iocpsupport/iocpsupport.c",
- "twisted/internet/iocpreactor/iocpsupport/winsock_pointers.c"],
#
-# Copyright (C) 2006-2015 OpenWrt.org
+# Copyright (C) 2006-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=zope.interface
-PKG_VERSION:=4.1.3
+PKG_VERSION:=4.2.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://pypi.python.org/packages/source/z/zope.interface
-PKG_MD5SUM:=9ae3d24c0c7415deb249dd1a132f0f79
+PKG_SOURCE_URL:=https://pypi.python.org/packages/ea/a3/38bdc8e8bd068ea5b4d21a2d80eca1547cd8509318e8d7c875f7247abe43
+PKG_MD5SUM:=2950a6db7e985e19c7a846cc20f5d82a
PKG_BUILD_DEPENDS:=python python-setuptools
+++ /dev/null
-#
-# Copyright (C) 2007-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:=libnfc
-PKG_VERSION:=1.7.1
-PKG_RELEASE:=1
-PKG_INSTALL:=1
-PKG_FIXUP:=autoreconf
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=https://github.com/nfc-tools/libnfc
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_VERSION:=$(PKG_NAME)-$(PKG_VERSION)
-
-PKG_LICENSE:=LGPL-2.1
-PKG_MAINTAINER:=Sebastian Wendel <packages@sourceindex.de>
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/libnfc/Default
- TITLE:=A open source library for Near Field Communication (NFC)
- URL:=http://nfc-tools.org/
-endef
-
-define Package/libnfc
- $(call Package/libnfc/Default)
- SECTION:=libs
- CATEGORY:=Libraries
- DEPENDS:=+libusb-compat +pcscd +ccid
-endef
-
-define Package/libnfc/description
- libnfc is the first libre, platform-independent, low level NFC SDK and Programmers API
-
- * manipulate Jewel Topaz tags using libnfc
- * manipulate MIFARE Classic and Ultralight tags using libnfc
-
-endef
-
-define Package/nfc-utils
- $(call Package/libnfc/Default)
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS:=+libnfc
-endef
-
-define Package/nfc-utils/description
- Provide some examples shared functions like print, parity calculation, options parsing
-
- * Emulates a NFC Forum Tag Type 4 v2.0 (or v1.0)
- * Jewel dump/restore tool
- * Lists the first target present of each founded device
- * MIFARE Classic manipulation example
- * MIFARE Ultralight dump/restore tool
- * Extract NDEF Message from a NFC Forum Tag Type 3
- * Relay example using two PN532 devices
- * Lists each available NFC device
-
-endef
-
-TARGET_CFLAGS+=$(FPIC)
-CONFIGURE_ARGS+=--without-readline
-
-define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include
- $(CP) $(PKG_INSTALL_DIR)/usr/include/nfc $(1)/usr/include/
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnfc.{a,so*} $(1)/usr/lib/
- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnfc.pc $(1)/usr/lib/pkgconfig/
-endef
-
-define Package/libnfc/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnfc.so.* $(1)/usr/lib/
-endef
-
-define Package/nfc-utils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-emulate-forum-tag4 $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-jewel $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-list $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-mfclassic $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-mfultralight $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-read-forum-tag3 $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-relay-picc $(1)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/nfc-scan-device $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,libnfc))
-$(eval $(call BuildPackage,nfc-utils))
PKG_NAME:=sqlite
PKG_VERSION:=3130000
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-autoconf-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.sqlite.org/2016/
CONFIGURE_ARGS += \
--enable-shared \
--enable-static \
+ --disable-editline
CONFIGURE_VARS += \
config_BUILD_CC="$(HOSTCC)" \
#
# Copyright (C) 2009 David Cooper <dave@kupesoft.com>
-# Copyright (C) 2009-2015 OpenWrt.org
+# Copyright (C) 2009-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_NAME:=msmtp
PKG_VERSION:=1.6.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@SF/msmtp
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
define Package/msmtp/Default
SECTION:=mail
CATEGORY:=Mail
+ DEPENDS:=$(INTL_DEPENDS)
TITLE:=Simple sendmail SMTP forwarding
URL:=http://msmtp.sourceforge.net/
endef
-menu "Configuration"
- depends on PACKAGE_libffmpeg-custom
+if PACKAGE_libffmpeg-custom
config FFMPEG_CUSTOM_PATENTED
bool "Include patented codecs and technologies"
default BUILD_PATENTED
-comment "Profiles ---"
+comment "Profiles"
config FFMPEG_CUSTOM_FFSERVER_SUPPORT
bool "Include support for ffserver (FFmpeg streaming server)"
select FFMPEG_CUSTOM_DECODER_pcm_s16be
select FFMPEG_CUSTOM_DECODER_pcm_s16le
select FFMPEG_CUSTOM_SELECT_speex
+ select FFMPEG_CUSTOM_SELECT_libopus
select FFMPEG_CUSTOM_DECODER_vorbis
select FFMPEG_CUSTOM_DECODER_wavpack
select FFMPEG_CUSTOM_DECODER_wmav1
select FFMPEG_CUSTOM_PROTOCOL_tcp
select FFMPEG_CUSTOM_PROTOCOL_udp
-comment "External Libraries ---"
+comment "External Libraries"
+
+config FFMPEG_CUSTOM_SELECT_mp3lame
+ bool "MP3 LAME"
+ depends on FFMPEG_CUSTOM_PATENTED
+ select FFMPEG_CUSTOM_DECODER_mp3
+ select FFMPEG_CUSTOM_MUXER_mp3
+ select FFMPEG_CUSTOM_DEMUXER_mp3
config FFMPEG_CUSTOM_SELECT_libopus
bool "Opus"
config FFMPEG_CUSTOM_SELECT_speex
bool "Speex"
-comment "Encoders ---"
+config FFMPEG_CUSTOM_SELECT_x264
+ depends on FFMPEG_CUSTOM_PATENTED
+ bool "x264"
+ select FFMPEG_CUSTOM_DECODER_h264
+ select FFMPEG_CUSTOM_MUXER_h264
+ select FFMPEG_CUSTOM_DEMUXER_h264
+ select FFMPEG_CUSTOM_PARSER_h264
+
+comment "Encoders"
config FFMPEG_CUSTOM_ENCODER_ac3
bool "AC3"
config FFMPEG_CUSTOM_ENCODER_zlib
bool "Zlib"
-comment "Decoders ---"
+comment "Decoders"
config FFMPEG_CUSTOM_DECODER_aac
bool "AAC (Advanced Audio Coding)"
config FFMPEG_CUSTOM_DECODER_zlib
bool "Zlib"
-comment "Muxers ---"
+comment "Muxers"
config FFMPEG_CUSTOM_MUXER_ac3
bool "AC3"
config FFMPEG_CUSTOM_MUXER_rtp
bool "RTP"
-comment "Demuxers ---"
+comment "Demuxers"
config FFMPEG_CUSTOM_DEMUXER_aac
bool "AAC"
config FFMPEG_CUSTOM_DEMUXER_wv
bool "WV"
-comment "Parsers ---"
+comment "Parsers"
config FFMPEG_CUSTOM_PARSER_aac
bool "AAC (Advanced Audio Coding)"
config FFMPEG_CUSTOM_PARSER_opus
bool "Opus"
-comment "Protocols ---"
+comment "Protocols"
config FFMPEG_CUSTOM_PROTOCOL_file
bool "file:"
config FFMPEG_CUSTOM_PROTOCOL_udp
bool "udp:"
-endmenu
+endif
include $(TOPDIR)/rules.mk
PKG_NAME:=ffmpeg
-PKG_VERSION:=2.7.6
+PKG_VERSION:=2.8.7
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://ffmpeg.org/releases/
-PKG_MD5SUM:=578c88242872e58cf0db5f23faa4b2af
+PKG_MD5SUM:=7e5b1c98eedfc3a364fa8c4095deeae5
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPL-2.1+ GPL-2+ LGPL-3
This package contains the FFmpeg streaming server.
endef
-
define Package/libffmpeg/Default
$(call Package/ffmpeg/Default)
SECTION:=libs
CATEGORY:=Libraries
TITLE+= libraries
- DEPENDS+= +libpthread +zlib +libbz2
+ DEPENDS+= @BUILD_PATENTED +libpthread +zlib +libbz2
PROVIDES:= libffmpeg
endef
define Package/libffmpeg-custom
$(call Package/libffmpeg/Default)
TITLE+= (custom)
- DEPENDS+= @DEVEL @!ALL +libopus +libspeex
+ DEPENDS+= +FFMPEG_CUSTOM_SELECT_libopus:libopus +FFMPEG_CUSTOM_SELECT_speex:libspeex \
+ +FFMPEG_CUSTOM_SELECT_x264:libx264 +FFMPEG_CUSTOM_SELECT_mp3lame:lame-lib
VARIANT:=custom
MENU:=1
endef
define Package/libffmpeg-audio-dec
$(call Package/libffmpeg/Default)
TITLE+= (audio)
- DEPENDS+= @BUILD_PATENTED +libspeex
+ DEPENDS+= +libspeex +libopus
VARIANT:=audio-dec
endef
define Package/libffmpeg-full
$(call Package/libffmpeg/Default)
TITLE+= (full)
- DEPENDS+= @BUILD_PATENTED +alsa-lib
+ DEPENDS+= +alsa-lib +libx264 +lame-lib +libopus +libspeex
VARIANT:=full
endef
define Package/libffmpeg-mini
$(call Package/libffmpeg/Default)
TITLE+= (mini)
- DEPENDS+= @BUILD_PATENTED
VARIANT:=mini
endef
--disable-fma3 \
--disable-fma4 \
--disable-avx2 \
- --disable-vfp \
- --disable-neon \
- --disable-inline-asm \
--disable-yasm \
+ --disable-inline-asm \
--disable-mips32r2 \
--disable-mipsdspr1 \
--disable-mipsdspr2 \
--disable-vdpau \
--disable-outdevs
+
+#selectibly disable optimizations according to arch/cpu type
+ifneq ($(findstring arm,$(CONFIG_ARCH)),)
+ ifeq (,$(findstring vfp,$(CONFIG_TARGET_OPTIMIZATION)))
+ FFMPEG_CONFIGURE+= \
+ --disable-vfp
+ endif
+ ifeq (,$(findstring neon,$(CONFIG_TARGET_OPTIMIZATION)))
+ FFMPEG_CONFIGURE+= \
+ --disable-neon
+ endif
+
+else ifneq ($(ARCH),aarch64)
+ FFMPEG_CONFIGURE+= \
+ --disable-vfp \
+ --disable-neon
+
+endif
+
+ifeq ($(BUILD_VARIANT),full)
+ FFMPEG_CONFIGURE+= \
+ --enable-libopus --enable-decoder=libopus \
+ --enable-libspeex --enable-decoder=libspeex \
+ --enable-libx264 \
+ --enable-libmp3lame
+endif
+
ifeq ($(BUILD_VARIANT),custom)
FFMPEG_ENABLE= \
ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libopus),y)
FFMPEG_CONFIGURE+= \
- --enable-libopus --enable-decoder=libopus \
-
+ --enable-libopus --enable-decoder=libopus
endif
ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_speex),y)
FFMPEG_CONFIGURE+= \
- --enable-libspeex --enable-decoder=libspeex \
+ --enable-libspeex --enable-decoder=libspeex
+endif
+
+ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_x264),y)
+ FFMPEG_CONFIGURE+= \
+ --enable-libx264 --enable-decoder=libx264
+endif
+ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_mp3lame),y)
+ FFMPEG_CONFIGURE+= \
+ --enable-libmp3lame --enable-encoder=mp3
endif
endif
$(eval $(call BuildPackage,ffmpeg))
$(eval $(call BuildPackage,ffprobe))
$(eval $(call BuildPackage,ffserver))
-$(eval $(call BuildPackage,libffmpeg-custom))
+$(eval $(call BuildPackage,libffmpeg-audio-dec))
$(eval $(call BuildPackage,libffmpeg-full))
$(eval $(call BuildPackage,libffmpeg-mini))
-$(eval $(call BuildPackage,libffmpeg-audio-dec))
+ifneq ($(CONFIG_ALL),y)
+ $(eval $(call BuildPackage,libffmpeg-custom))
+endif
#
-# Copyright (C) 2006-2015 OpenWrt.org
+# Copyright (C) 2006-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-libav
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.8.2
PKG_RELEASE:=1
-PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
+ Ted Hess <thess@kitschensync.net>
PKG_SOURCE:=gst-libav-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-libav
-PKG_MD5SUM:=09644a38827d233f53edeac815dd0ec0
+PKG_MD5SUM:=b5f3c7a27b39b5f5c2f0bfd546b0c655020faf6b38d27b64b346c43e5ebf687a
PKG_LICENSE:=GPL-2.0 LGPL-2.0
PKG_LICENSE_FILES:=COPYING COPYING.LIB
mpeg1video \
mpeg2video \
mpeg4 \
- mpeg4aac \
mpegvideo \
pcm_s16be \
pcm_s16le \
URL:=http://www.gstreamer.net/modules/gst-libav.html
DEPENDS:= +libgstreamer1 +gstreamer1-plugins-base \
+gst1-mod-alsa +libgst1audio +libgst1pbutils +libgst1video \
- +libbz2
+ +libbz2 +liblzma
endef
define Package/gst1-libav/description
CONFIGURE_ARGS += \
--without-system-libav \
- --with-libav-extra-configure="--target-os=linux \
+ --with-libav-extra-configure="--target-os=linux --cpu=$(CONFIG_CPU_TYPE) \
--disable-bsfs \
--disable-programs \
--disable-devices \
--disable-fma3 \
--disable-fma4 \
--disable-avx2 \
- --disable-vfp \
- --disable-neon \
--disable-inline-asm \
--disable-yasm"
-# XXX: trick to force use of embedded Libav headers
-TARGET_CFLAGS += $(TARGET_CPPFLAGS) -D_GNU_SOURCE
-TARGET_CPPFLAGS :=
+TARGET_CFLAGS += -D_GNU_SOURCE
TARGET_LDFLAGS += $(FPIC)
-define Build/Prepare
-$(call Build/Prepare/Default)
-endef
-
define Package/gst1-libav/install
$(INSTALL_DIR) $(1)/usr/lib/gstreamer-$(GST_VERSION)
( cd $(PKG_INSTALL_DIR); $(CP) \
#
-# Copyright (C) 2011-2015 OpenWrt.org
+# Copyright (C) 2011-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-bad
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.8.2
PKG_RELEASE:=1
-PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
+ Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPLv2 GPLv2
PKG_LICENSE_FILES:=COPYING.LIB COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-bad-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-bad-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-bad/
-PKG_MD5SUM:=7c73bec1d389f0e184ebbbbb9e9f883d
+PKG_MD5SUM:=d7995317530c8773ec088f94d9320909d41da61996b801ebacce9a56af493f97
PKG_BUILD_DEPENDS:= libgstreamer1 gstreamer1-plugins-base
--disable-schro \
--disable-zbar \
--disable-srtp \
- --disable-hls \
\
--without-libiconv-prefix \
--without-libintl-prefix \
$$(eval $$(call BuildPackage,libgst1$(1)))
endef
+$(eval $(call GstBuildLibrary,adaptivedemux,adaptivedemux,app uridownloader,))
$(eval $(call GstBuildLibrary,photography,photography,,))
$(eval $(call GstBuildLibrary,basecamerabinsrc,basecamerabinsrc,app,))
+$(eval $(call GstBuildLibrary,uridownloader,uridownloader,,))
+$(eval $(call GstBuildLibrary,badbase,badbase,,))
# 1: short name
# 2: description
$(eval $(call GstBuildPlugin,asfmux,asf muxing support,rtp,,))
$(eval $(call GstBuildPlugin,autoconvert,autoconvert support,,,))
$(eval $(call GstBuildPlugin,bayer,bayer support,video,,))
-$(eval $(call GstBuildPlugin,camerabin2,camerabin support,basecamerabinsrc photography tag pbutils app,,))
+$(eval $(call GstBuildPlugin,camerabin2,camerabin support,basecamerabinsrc photography pbutils app,,))
$(eval $(call GstBuildPlugin,dataurisrc,dataurisrc support,,,))
$(eval $(call GstBuildPlugin,debugutilsbad,debugutils support,video,,))
$(eval $(call GstBuildPlugin,dvdspu,dvdspu support,video,,))
$(eval $(call GstBuildPlugin,fbdevsink,fbdev support,video,,))
$(eval $(call GstBuildPlugin,festival,festival support,audio,,))
+$(eval $(call GstBuildPlugin,hls,HLS support,pbutils adaptivedemux,multifile,+libnettle))
$(eval $(call GstBuildPlugin,frei0r,frei0r support,controller video,,))
$(eval $(call GstBuildPlugin,id3tag,id3tag support,tag,,))
$(eval $(call GstBuildPlugin,jpegformat,jpegformat support,tag,,))
-$(eval $(call GstBuildPlugin,liveadder,liveadder support,audio,,))
-$(eval $(call GstBuildPlugin,mpegpsdemux,mpegpsdemux support,pbutils tag,,))
+$(eval $(call GstBuildPlugin,mpegpsdemux,mpegpsdemux support,pbutils,,))
$(eval $(call GstBuildPlugin,mpegpsmux,mpegpsmux support,,,))
-#$(eval $(call GstBuildPlugin,mpegtsdemux,mpegtsdemux support,mpegts pbutils tag,,))
+#$(eval $(call GstBuildPlugin,mpegtsdemux,mpegtsdemux support,mpegts pbutils,,))
#$(eval $(call GstBuildPlugin,mpegtsmux,mpegtsmux support,video,,))
-$(eval $(call GstBuildPlugin,mxf,mxf support,audio video,,))
-$(eval $(call GstBuildPlugin,opus,OPUS plugin library,audio tag rtp,,+libopus))
+$(eval $(call GstBuildPlugin,mxf,mxf support,badbase audio video,,))
+$(eval $(call GstBuildPlugin,opusparse,OPUS streams library,pbutils,,+libopus))
$(eval $(call GstBuildPlugin,pcapparse,pcapparse support,,,))
$(eval $(call GstBuildPlugin,pnm,pnm support,video,,))
$(eval $(call GstBuildPlugin,rawparse,rawparse support,audio video,,))
-diff -u --recursive gst-plugins-bad-1.6.2-vanilla/configure.ac gst-plugins-bad-1.6.2/configure.ac
---- gst-plugins-bad-1.6.2-vanilla/configure.ac 2016-01-01 10:40:17.883755147 -0500
-+++ gst-plugins-bad-1.6.2/configure.ac 2016-01-01 10:41:14.832426692 -0500
-@@ -3455,7 +3455,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -3717,7 +3717,6 @@ ext/x265/Makefile
ext/xvid/Makefile
ext/zbar/Makefile
ext/dtls/Makefile
docs/Makefile
docs/plugins/Makefile
docs/libs/Makefile
-diff -u --recursive gst-plugins-bad-1.6.2-vanilla/Makefile.am gst-plugins-bad-1.6.2/Makefile.am
---- gst-plugins-bad-1.6.2-vanilla/Makefile.am 2016-01-01 10:40:17.883755147 -0500
-+++ gst-plugins-bad-1.6.2/Makefile.am 2016-01-01 10:41:47.607858580 -0500
-@@ -2,11 +2,11 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,11 +2,11 @@ DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-d
SUBDIRS = \
gst-libs gst sys ext pkgconfig \
-diff -u --recursive gst-plugins-bad-1.6.2-vanilla/configure.ac gst-plugins-bad-1.6.2/configure.ac
---- gst-plugins-bad-1.6.2-vanilla/configure.ac 2016-01-01 11:58:54.503551141 -0500
-+++ gst-plugins-bad-1.6.2/configure.ac 2016-01-01 11:50:38.388185503 -0500
-@@ -3355,37 +3355,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -3617,38 +3617,6 @@ sys/wasapi/Makefile
sys/wininet/Makefile
sys/winks/Makefile
sys/winscreencap/Makefile
-tests/examples/mxf/Makefile
-tests/examples/opencv/Makefile
-tests/examples/uvch264/Makefile
+-tests/examples/waylandsink/Makefile
-tests/icles/Makefile
ext/voamrwbenc/Makefile
ext/voaacenc/Makefile
ext/assrender/Makefile
-diff -u --recursive gst-plugins-bad-1.6.2-vanilla/Makefile.am gst-plugins-bad-1.6.2/Makefile.am
---- gst-plugins-bad-1.6.2-vanilla/Makefile.am 2016-01-01 11:58:54.504551169 -0500
-+++ gst-plugins-bad-1.6.2/Makefile.am 2016-01-01 11:50:06.848314203 -0500
-@@ -2,11 +2,11 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,11 +2,11 @@ DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-d
SUBDIRS = \
gst-libs gst sys ext pkgconfig \
#
-# Copyright (C) 2008-2015 OpenWrt.org
+# Copyright (C) 2008-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-base
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.8.2
PKG_RELEASE:=1
-PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
+ Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPLv2 GPLv2
PKG_LICENSE_FILES:=COPYING.LIB COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-base-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-base-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-base/
-PKG_MD5SUM:=f530fbbe287edce79c55a37bd1a39fe2
+PKG_MD5SUM:=9d7109c8fb0a5dec8edb17b0053c59a46aba7ddf48dc48ea822ebbbd4339d38d
PKG_BUILD_DEPENDS:= libgstreamer1
PKG_CONFIG_DEPENDS:= \
$(eval $(call GstBuildLibrary,riff,RIFF media,audio tag,,))
$(eval $(call GstBuildLibrary,rtp,RTP,,))
$(eval $(call GstBuildLibrary,rtsp,RTSP,,))
-$(eval $(call GstBuildLibrary,sdp,SDP,,))
+$(eval $(call GstBuildLibrary,sdp,SDP,rtp,))
$(eval $(call GstBuildLibrary,tag,tag support,,))
$(eval $(call GstBuildLibrary,video,video,,))
$(eval $(call GstBuildPlugin,playback,media decoder (v2),pbutils,,))
$(eval $(call GstBuildPlugin,gio,GIO,,,))
$(eval $(call GstBuildPlugin,ogg,Ogg,riff tag pbutils video,,+libogg))
+$(eval $(call GstBuildPlugin,opus,OPUS plugin library,pbutils video,,+libopus))
$(eval $(call GstBuildPlugin,tcp,TCP,net,,))
$(eval $(call GstBuildPlugin,theora,Theora,tag video,,+libogg +libtheora))
$(eval $(call GstBuildPlugin,typefindfunctions,'typefind' functions,audio pbutils tag video,,))
-diff -u --recursive gst-plugins-base-1.6.2-vanilla/configure.ac gst-plugins-base-1.6.2/configure.ac
---- gst-plugins-base-1.6.2-vanilla/configure.ac 2016-01-01 10:40:17.931759357 -0500
-+++ gst-plugins-base-1.6.2/configure.ac 2016-01-01 10:43:44.374351388 -0500
-@@ -921,7 +921,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -929,7 +929,6 @@ docs/design/Makefile
docs/libs/Makefile
docs/plugins/Makefile
docs/version.entities
common/Makefile
common/m4/Makefile
m4/Makefile
-diff -u --recursive gst-plugins-base-1.6.2-vanilla/Makefile.am gst-plugins-base-1.6.2/Makefile.am
---- gst-plugins-base-1.6.2-vanilla/Makefile.am 2016-01-01 10:40:17.931759357 -0500
-+++ gst-plugins-base-1.6.2/Makefile.am 2016-01-01 10:44:17.403209313 -0500
-@@ -13,7 +13,6 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -13,7 +13,6 @@ SUBDIRS = \
tools \
tests \
docs \
common \
m4
-@@ -24,7 +23,6 @@
+@@ -24,7 +23,6 @@ DIST_SUBDIRS = \
gst sys ext \
tools \
tests \
-diff -u --recursive gst-plugins-base-1.6.2-vanilla/configure.ac gst-plugins-base-1.6.2/configure.ac
---- gst-plugins-base-1.6.2-vanilla/configure.ac 2016-01-01 12:00:43.489564691 -0500
-+++ gst-plugins-base-1.6.2/configure.ac 2016-01-01 12:02:24.452371618 -0500
-@@ -899,23 +899,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -907,23 +907,6 @@ pkgconfig/gstreamer-video.pc
pkgconfig/gstreamer-video-uninstalled.pc
pkgconfig/gstreamer-plugins-base.pc
pkgconfig/gstreamer-plugins-base-uninstalled.pc
docs/Makefile
docs/design/Makefile
docs/libs/Makefile
-diff -u --recursive gst-plugins-base-1.6.2-vanilla/Makefile.am gst-plugins-base-1.6.2/Makefile.am
---- gst-plugins-base-1.6.2-vanilla/Makefile.am 2016-01-01 12:00:43.489564691 -0500
-+++ gst-plugins-base-1.6.2/Makefile.am 2016-01-01 12:01:54.055525170 -0500
-@@ -11,7 +11,6 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -11,7 +11,6 @@ SUBDIRS = \
gst-libs \
gst sys $(SUBDIRS_EXT) \
tools \
docs \
common \
m4
-@@ -22,7 +21,6 @@
+@@ -22,7 +21,6 @@ DIST_SUBDIRS = \
gst-libs \
gst sys ext \
tools \
-diff -u --recursive gst-plugins-base-1.6.2-vanilla/configure.ac gst-plugins-base-1.6.2/configure.ac
---- gst-plugins-base-1.6.2-vanilla/configure.ac 2016-01-01 12:10:41.158319142 -0500
-+++ gst-plugins-base-1.6.2/configure.ac 2016-01-01 12:07:36.271107197 -0500
-@@ -899,11 +899,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -907,11 +907,6 @@ pkgconfig/gstreamer-video.pc
pkgconfig/gstreamer-video-uninstalled.pc
pkgconfig/gstreamer-plugins-base.pc
pkgconfig/gstreamer-plugins-base-uninstalled.pc
common/Makefile
common/m4/Makefile
m4/Makefile
-diff -u --recursive gst-plugins-base-1.6.2-vanilla/Makefile.am gst-plugins-base-1.6.2/Makefile.am
---- gst-plugins-base-1.6.2-vanilla/Makefile.am 2016-01-01 12:10:41.159319170 -0500
-+++ gst-plugins-base-1.6.2/Makefile.am 2016-01-01 12:07:32.869011473 -0500
-@@ -11,13 +11,11 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -11,13 +11,11 @@ SUBDIRS = \
gst-libs \
gst sys $(SUBDIRS_EXT) \
tools \
#
-# Copyright (C) 2009-2015 OpenWrt.org
+# Copyright (C) 2009-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-good
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.8.2
PKG_RELEASE:=1
-PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
+ Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPLv2
PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-good-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-good-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-good/
-PKG_MD5SUM:=ef4f5bc4f31f706832a234b0f603967b
+PKG_MD5SUM:=8d7549118a3b7a009ece6bb38a05b66709c551d32d2adfd89eded4d1d7a23944
PKG_BUILD_DEPENDS:= libgstreamer1 gstreamer1-plugins-base
$(eval $(call GstBuildPlugin,flv,flv codec,audio pbutils tag video,,))
$(eval $(call GstBuildPlugin,flxdec,flx codec,,,))
#$(eval $(call GstBuildPlugin,gdkpixbuf,gdkpixbuf support,video,,))
-$(eval $(call GstBuildPlugin,goom2k1,goom support,audio video,,))
-$(eval $(call GstBuildPlugin,goom,goom support,audio video,,))
+$(eval $(call GstBuildPlugin,goom2k1,goom support,audio video pbutils,,))
+$(eval $(call GstBuildPlugin,goom,goom support,audio video pbutils,,))
$(eval $(call GstBuildPlugin,icydemux,icy demuxer,audio tag,,))
$(eval $(call GstBuildPlugin,id3demux,ID3v1/v2 demuxer,pbutils tag,,))
$(eval $(call GstBuildPlugin,imagefreeze,imagefreeze support,,,))
-diff -u --recursive gst-plugins-good-1.6.2-vanilla/configure.ac gst-plugins-good-1.6.2/configure.ac
---- gst-plugins-good-1.6.2-vanilla/configure.ac 2016-01-01 10:40:17.994764882 -0500
-+++ gst-plugins-good-1.6.2/configure.ac 2016-01-01 10:45:25.668599823 -0500
-@@ -1014,7 +1014,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1049,7 +1049,6 @@ sys/sunaudio/Makefile
sys/v4l2/Makefile
sys/waveform/Makefile
sys/ximage/Makefile
tests/Makefile
tests/check/Makefile
tests/examples/Makefile
-diff -u --recursive gst-plugins-good-1.6.2-vanilla/Makefile.am gst-plugins-good-1.6.2/Makefile.am
---- gst-plugins-good-1.6.2-vanilla/Makefile.am 2016-01-01 10:40:17.994764882 -0500
-+++ gst-plugins-good-1.6.2/Makefile.am 2016-01-01 10:45:19.923089598 -0500
-@@ -4,7 +4,6 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -4,7 +4,6 @@ ALWAYS_SUBDIRS = \
gst sys ext \
tests \
docs \
-diff -u --recursive gst-plugins-good-1.6.2-vanilla/configure.ac gst-plugins-good-1.6.2/configure.ac
---- gst-plugins-good-1.6.2-vanilla/configure.ac 2016-01-01 12:00:52.525815362 -0500
-+++ gst-plugins-good-1.6.2/configure.ac 2016-01-01 12:03:22.198982586 -0500
-@@ -1014,21 +1014,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1049,21 +1049,6 @@ sys/sunaudio/Makefile
sys/v4l2/Makefile
sys/waveform/Makefile
sys/ximage/Makefile
common/Makefile
common/m4/Makefile
m4/Makefile
-diff -u --recursive gst-plugins-good-1.6.2-vanilla/Makefile.am gst-plugins-good-1.6.2/Makefile.am
---- gst-plugins-good-1.6.2-vanilla/Makefile.am 2016-01-01 12:00:52.525815362 -0500
-+++ gst-plugins-good-1.6.2/Makefile.am 2016-01-01 12:03:06.921556033 -0500
-@@ -2,7 +2,6 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,7 +2,6 @@ DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-d
ALWAYS_SUBDIRS = \
gst sys ext \
-diff -u --recursive gst-plugins-good-1.6.2-vanilla/configure.ac gst-plugins-good-1.6.2/configure.ac
---- gst-plugins-good-1.6.2-vanilla/configure.ac 2016-01-01 12:10:51.392608142 -0500
-+++ gst-plugins-good-1.6.2/configure.ac 2016-01-01 12:08:39.568889466 -0500
-@@ -1017,9 +1017,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1052,9 +1052,6 @@ sys/ximage/Makefile
common/Makefile
common/m4/Makefile
m4/Makefile
pkgconfig/Makefile
pkgconfig/gstreamer-plugins-good-uninstalled.pc
gst-plugins-good.spec
-diff -u --recursive gst-plugins-good-1.6.2-vanilla/Makefile.am gst-plugins-good-1.6.2/Makefile.am
---- gst-plugins-good-1.6.2-vanilla/Makefile.am 2016-01-01 12:10:51.393608170 -0500
-+++ gst-plugins-good-1.6.2/Makefile.am 2016-01-01 12:08:35.442773216 -0500
-@@ -2,7 +2,6 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,7 +2,6 @@ DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-d
ALWAYS_SUBDIRS = \
gst sys ext \
#
-# Copyright (C) 2009-2015 OpenWrt.org
+# Copyright (C) 2009-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=gst1-plugins-ugly
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.8.2
PKG_RELEASE:=1
-PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
+ Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPLv2
PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/gst-plugins-ugly-$(PKG_VERSION)
PKG_SOURCE:=gst-plugins-ugly-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gst-plugins-ugly/
-PKG_MD5SUM:=0f0e30336e3155443cd5bfec5c215d56
+PKG_MD5SUM:=9c5b33a2a98fc1d6d6c99a1b536b1fb2de45f53cc8bf8ab85a8b8141fed1a8ac
PKG_BUILD_DEPENDS:= libgstreamer1 gstreamer1-plugins-base
PKG_CONFIG_DEPENDS:= \
-diff -u --recursive gst-plugins-ugly-1.6.2-vanilla/configure.ac gst-plugins-ugly-1.6.2/configure.ac
---- gst-plugins-ugly-1.6.2-vanilla/configure.ac 2016-01-01 12:01:01.547065731 -0500
-+++ gst-plugins-ugly-1.6.2/configure.ac 2016-01-01 12:04:18.111545715 -0500
-@@ -467,8 +467,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -478,9 +478,6 @@ ext/x264/Makefile
docs/Makefile
docs/plugins/Makefile
docs/version.entities
-tests/Makefile
-tests/check/Makefile
+-tests/files/Makefile
m4/Makefile
pkgconfig/Makefile
pkgconfig/gstreamer-plugins-ugly-uninstalled.pc
-diff -u --recursive gst-plugins-ugly-1.6.2-vanilla/Makefile.am gst-plugins-ugly-1.6.2/Makefile.am
---- gst-plugins-ugly-1.6.2-vanilla/Makefile.am 2016-01-01 12:01:01.547065731 -0500
-+++ gst-plugins-ugly-1.6.2/Makefile.am 2016-01-01 12:04:12.087377153 -0500
+--- a/Makefile.am
++++ b/Makefile.am
@@ -1,7 +1,7 @@
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
-diff -u --recursive gst-plugins-ugly-1.6.2-vanilla/configure.ac gst-plugins-ugly-1.6.2/configure.ac
---- gst-plugins-ugly-1.6.2-vanilla/configure.ac 2016-01-01 12:11:03.267943540 -0500
-+++ gst-plugins-ugly-1.6.2/configure.ac 2016-01-01 12:13:30.992120335 -0500
-@@ -464,9 +464,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -475,9 +475,6 @@ ext/mpg123/Makefile
ext/sidplay/Makefile
ext/twolame/Makefile
ext/x264/Makefile
m4/Makefile
pkgconfig/Makefile
pkgconfig/gstreamer-plugins-ugly-uninstalled.pc
-diff -u --recursive gst-plugins-ugly-1.6.2-vanilla/Makefile.am gst-plugins-ugly-1.6.2/Makefile.am
---- gst-plugins-ugly-1.6.2-vanilla/Makefile.am 2016-01-01 12:11:03.268943568 -0500
-+++ gst-plugins-ugly-1.6.2/Makefile.am 2016-01-01 12:13:28.110038773 -0500
+--- a/Makefile.am
++++ b/Makefile.am
@@ -1,7 +1,7 @@
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
#
-# Copyright (C) 2008-2015 OpenWrt.org
+# Copyright (C) 2008-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=gstreamer1
-PKG_VERSION:=1.6.2
+PKG_VERSION:=1.8.2
PKG_RELEASE:=1
-PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> \
+ Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPLv2
PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/gstreamer-$(PKG_VERSION)
PKG_SOURCE:=gstreamer-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://gstreamer.freedesktop.org/src/gstreamer/
-PKG_MD5SUM:=5e610b5a94c209487310739b39b6c464
+PKG_MD5SUM:=9dbebe079c2ab2004ef7f2649fa317cabea1feb4fb5605c24d40744b90918341
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=autogen.sh aclocal.m4
-diff -u --recursive gstreamer-1.6.2-vanilla/configure.ac gstreamer-1.6.2/configure.ac
---- gstreamer-1.6.2-vanilla/configure.ac 2016-01-01 10:40:18.040768907 -0500
-+++ gstreamer-1.6.2/configure.ac 2016-01-01 10:48:24.160887684 -0500
-@@ -980,7 +980,6 @@
- libs/gst/net/Makefile
+--- a/configure.ac
++++ b/configure.ac
+@@ -998,7 +998,6 @@ libs/gst/net/Makefile
plugins/Makefile
plugins/elements/Makefile
+ plugins/tracers/Makefile
-po/Makefile.in
tests/Makefile
tests/benchmarks/Makefile
tests/check/Makefile
-diff -u --recursive gstreamer-1.6.2-vanilla/Makefile.am gstreamer-1.6.2/Makefile.am
---- gstreamer-1.6.2-vanilla/Makefile.am 2016-01-01 10:40:18.040768907 -0500
-+++ gstreamer-1.6.2/Makefile.am 2016-01-01 10:48:19.150568341 -0500
-@@ -9,7 +9,6 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -9,7 +9,6 @@ aclocal_DATA = gst-element-check-@GST_AP
SUBDIRS = pkgconfig \
gst libs plugins tests \
docs \
m4 \
common \
data
-@@ -22,7 +21,6 @@
+@@ -22,7 +21,6 @@ endif
DIST_SUBDIRS = pkgconfig \
gst libs plugins tools tests \
docs \
-diff -u --recursive gstreamer-1.6.2-vanilla/configure.ac gstreamer-1.6.2/configure.ac
---- gstreamer-1.6.2-vanilla/configure.ac 2016-01-01 12:01:10.863324404 -0500
-+++ gstreamer-1.6.2/configure.ac 2016-01-01 12:05:07.794937166 -0500
-@@ -980,21 +980,6 @@
- libs/gst/net/Makefile
+--- a/configure.ac
++++ b/configure.ac
+@@ -998,21 +998,6 @@ libs/gst/net/Makefile
plugins/Makefile
plugins/elements/Makefile
+ plugins/tracers/Makefile
-tests/Makefile
-tests/benchmarks/Makefile
-tests/check/Makefile
tools/Makefile
common/Makefile
common/m4/Makefile
-diff -u --recursive gstreamer-1.6.2-vanilla/Makefile.am gstreamer-1.6.2/Makefile.am
---- gstreamer-1.6.2-vanilla/Makefile.am 2016-01-01 12:01:10.862324377 -0500
-+++ gstreamer-1.6.2/Makefile.am 2016-01-01 12:05:03.190808129 -0500
-@@ -7,7 +7,7 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -7,7 +7,7 @@ aclocaldir = $(datadir)/aclocal
aclocal_DATA = gst-element-check-@GST_API_VERSION@.m4
SUBDIRS = pkgconfig \
docs \
m4 \
common \
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,7 @@ endif
# These are all the possible subdirs
DIST_SUBDIRS = pkgconfig \
-diff -u --recursive gstreamer-1.6.2-vanilla/configure.ac gstreamer-1.6.2/configure.ac
---- gstreamer-1.6.2-vanilla/configure.ac 2016-01-01 12:11:19.150392204 -0500
-+++ gstreamer-1.6.2/configure.ac 2016-01-01 12:06:49.611795028 -0500
-@@ -983,18 +983,6 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1001,18 +1001,6 @@ plugins/tracers/Makefile
tools/Makefile
common/Makefile
common/m4/Makefile
m4/Makefile
pkgconfig/Makefile
stamp.h
-diff -u --recursive gstreamer-1.6.2-vanilla/Makefile.am gstreamer-1.6.2/Makefile.am
---- gstreamer-1.6.2-vanilla/Makefile.am 2016-01-01 12:11:19.151392233 -0500
-+++ gstreamer-1.6.2/Makefile.am 2016-01-01 12:06:41.546568365 -0500
-@@ -8,7 +8,6 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -8,7 +8,6 @@ aclocal_DATA = gst-element-check-@GST_AP
SUBDIRS = pkgconfig \
gst libs plugins \
m4 \
common \
data
-@@ -20,7 +19,6 @@
+@@ -20,7 +19,6 @@ endif
# These are all the possible subdirs
DIST_SUBDIRS = pkgconfig \
gst libs plugins tools \
-diff -u --recursive gstreamer-1.6.2-vanilla/gst/gstplugin.c gstreamer-1.6.2/gst/gstplugin.c
---- gstreamer-1.6.2-vanilla/gst/gstplugin.c 2016-01-01 12:37:38.178990140 -0500
-+++ gstreamer-1.6.2/gst/gstplugin.c 2016-01-01 12:38:30.431328737 -0500
-@@ -732,15 +732,8 @@
+--- a/gst/gstplugin.c
++++ b/gst/gstplugin.c
+@@ -732,15 +732,8 @@ _priv_gst_plugin_load_file_for_registry
goto return_error;
}
--- /dev/null
+#
+# Copyright (C) 2016 Toke Høiland-Jørgensen
+#
+# This is free software, licensed under the GNU General Public License v3 or
+# later.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=acme
+PKG_SOURCE_VERSION:=1e6b68f5d187fa3d64c889d04a77ee1c79726282
+PKG_VERSION:=1.1
+PKG_RELEASE:=1
+PKG_LICENSE:=GPLv3
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.xz
+PKG_SOURCE_URL:=git://github.com/Neilpang/acme.sh.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)
+LUCI_DIR:=/usr/lib/lua/luci
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/acme
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+curl +ca-certificates +uhttpd-mod-tls +openssl-util
+ TITLE:=ACME (Letsencrypt) client
+ PKGARCH:=all
+ MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
+endef
+
+define Package/acme/description
+ A client for issuing Letsencrypt certificates.
+endef
+
+define Package/acme/conffiles
+/etc/config/acme
+/etc/acme
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/acme/install
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_CONF) ./files/acme.config $(1)/etc/config/acme
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/acme.init $(1)/etc/init.d/acme
+ $(INSTALL_DIR) $(1)/usr/lib/acme
+ $(INSTALL_BIN) ./files/run.sh $(1)/usr/lib/acme/run-acme
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/acme.sh $(1)/usr/lib/acme/acme.sh
+endef
+
+define Package/luci-app-acme
+ SECTION:=luci
+ CATEGORY:=LuCI
+ TITLE:=ACME package - LuCI interface
+ MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
+ PKGARCH:=all
+ DEPENDS:= lua luci-base +acme luci-app-uhttpd
+ SUBMENU:=3. Applications
+endef
+
+define Package/luci-app-acme/description
+ Control the ACME Letsencrypt certificate interface
+endef
+
+define Package/luci-app-acme/install
+ $(INSTALL_DIR) $(1)$(LUCI_DIR)/controller $(1)$(LUCI_DIR)/model/cbi
+ $(INSTALL_DATA) ./files/acme-controller.lua $(1)$(LUCI_DIR)/controller/acme.lua
+ $(INSTALL_DATA) ./files/acme-cbi.lua $(1)$(LUCI_DIR)/model/cbi/acme.lua
+ $(INSTALL_DIR) $(1)/etc/uci-defaults
+ $(INSTALL_BIN) ./files/uci-defaults-acme $(1)/etc/uci-defaults/luci-acme
+endef
+
+define Package/luci-app-acme/postinst
+#!/bin/sh
+[ -x /etc/uci-defaults/luci-acme ] && /etc/uci-defaults/luci-acme || exit 0
+endef
+
+define Package/luci-app-acme/postrm
+#!/bin/sh
+which uci > /dev/null || exit 0
+uci -q get ucitrack.@acme[0] > /dev/null && {
+ uci delete ucitrack.@acme[0]
+ uci commit
+}
+endef
+
+
+$(eval $(call BuildPackage,acme))
+$(eval $(call BuildPackage,luci-app-acme))
--- /dev/null
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2016 Toke Høiland-Jørgensen <toke@toke.dk>
+
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3 of the License, or (at your option) any later
+# version.
+
+]]--
+
+m = Map("acme", translate("ACME certificates"),
+ translate("This configures ACME (Letsencrypt) automatic certificate installation. " ..
+ "Simply fill out this to have the router configured with Letsencrypt-issued " ..
+ "certificates for the web interface. " ..
+ "Note that the domain names in the certificate must already be configured to " ..
+ "point at the router's public IP address. " ..
+ "Once configured, issuing certificates can take a while. " ..
+ "Check the logs for progress and any errors."))
+
+s = m:section(TypedSection, "acme", translate("ACME global config"))
+s.anonymous = true
+
+st = s:option(Value, "state_dir", translate("State directory"),
+ translate("Where certs and other state files are kept."))
+st.rmempty = false
+st.datatype = "string"
+
+ae = s:option(Value, "account_email", translate("Account email"),
+ translate("Email address to associate with account key."))
+ae.rmempty = false
+
+d = s:option(Flag, "debug", translate("Enable debug logging"))
+d.rmempty = false
+
+cs = m:section(TypedSection, "cert", translate("Certificate config"))
+cs.anonymous = false
+cs.addremove = true
+
+e = cs:option(Flag, "enabled", translate("Enabled"))
+e.rmempty = false
+
+us = cs:option(Flag, "use_staging", translate("Use staging server"),
+ translate("Get certificate from the Letsencrypt staging server " ..
+ "(use for testing; the certificate won't be valid)."))
+us.rmempty = false
+
+kl = cs:option(Value, "keylength", translate("Key length"),
+ translate("Number of bits (minimum 2048)."))
+kl.rmempty = false
+kl.datatype = "and(uinteger,min(2048))"
+
+u = cs:option(Flag, "update_uhttpd", translate("Use for uhttpd"),
+ translate("Update the uhttpd config with this certificate once issued " ..
+ "(only select this for one certificate)."))
+u.rmempty = false
+
+dom = cs:option(DynamicList, "domains", translate("Domain names"),
+ translate("Domain names to include in the certificate. " ..
+ "The first name will be the subject name, subsequent names will be alt names. " ..
+ "Note that all domain names must point at the router in the global DNS."))
+dom.datatype = "list(string)"
+
+return m
--- /dev/null
+module("luci.controller.acme", package.seeall)
+
+function index()
+ entry({"admin", "services", "acme"},
+ cbi("acme"),
+ _("ACME certs"), 50).dependent = false
+end
--- /dev/null
+config acme
+ option state_dir '/etc/acme'
+ option account_email 'email@example.org'
+ option debug 0
+
+config cert 'example'
+ option enabled 0
+ option use_staging 0
+ option keylength 2048
+ option update_uhttpd 1
+ list domains example.org
--- /dev/null
+#!/bin/sh /etc/rc.common
+
+USE_PROCD=1
+
+START=50
+SCRIPT=/usr/lib/acme/run-acme
+
+start_service()
+{
+ procd_open_instance
+ procd_set_param command $SCRIPT
+ procd_set_param file /etc/config/acme
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_close_instance
+}
+
+reload_service() {
+ rc_procd start_service "$@"
+ return 0
+}
+
+stop_service() {
+ return 0
+}
+
+boot() {
+ $SCRIPT check_cron
+}
+
+service_triggers()
+{
+ procd_add_reload_trigger acme
+}
--- /dev/null
+#!/bin/sh
+# Wrapper for acme.sh to work on openwrt.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3 of the License, or (at your option) any later
+# version.
+#
+# Author: Toke Høiland-Jørgensen <toke@toke.dk>
+
+CHECK_CRON=$1
+ACME=/usr/lib/acme/acme.sh
+export SSL_CERT_DIR=/etc/ssl/certs
+
+UHTTPD_REDIRECT_HTTPS=
+UHTTPD_LISTEN_HTTP=
+STATE_DIR='/etc/acme'
+ACCOUNT_EMAIL=
+DEBUG=0
+
+. /lib/functions.sh
+
+check_cron()
+{
+ [ -f "/etc/crontabs/root" ] && grep -q '/etc/init.d/acme' /etc/crontabs/root && return
+ echo "0 0 * * * /etc/init.d/acme start" >> /etc/crontabs/root
+ /etc/init.d/cron start
+}
+
+pre_checks()
+{
+ echo "Running pre checks."
+ check_cron
+
+ UHTTPD_REDIRECT_HTTPS=$(uci get uhttpd.main.redirect_https)
+ UHTTPD_LISTEN_HTTP=$(uci get uhttpd.main.listen_http)
+
+ uci set uhttpd.main.redirect_https=1
+ uci set uhttpd.main.listen_http='0.0.0.0:80'
+ uci commit uhttpd
+ /etc/init.d/uhttpd reload || return 1
+
+ iptables -I input_rule -p tcp --dport 80 -j ACCEPT || return 1
+ return 0
+}
+
+post_checks()
+{
+ echo "Running post checks (cleanup)."
+ iptables -D input_rule -p tcp --dport 80 -j ACCEPT
+
+ uci set uhttpd.main.redirect_https="$UHTTPD_REDIRECT_HTTPS"
+ uci set uhttpd.main.listen_http="$UHTTPD_LISTEN_HTTP"
+ uci commit uhttpd
+ /etc/init.d/uhttpd reload
+}
+
+err_out()
+{
+ post_checks
+ exit 1
+}
+
+int_out()
+{
+ post_checks
+ trap - SIGINT
+ kill -SIGINT $$
+}
+
+issue_cert()
+{
+ local section="$1"
+ local acme_args=
+ local enabled
+ local use_staging
+ local update_uhttpd
+ local keylength
+ local domains
+ local main_domain
+
+ config_get_bool enabled "$section" enabled 0
+ config_get_bool use_staging "$section" use_staging
+ config_get_bool update_uhttpd "$section" update_uhttpd
+ config_get domains "$section" domains
+ config_get keylength "$section" keylength
+
+ [ "$enabled" -eq "1" ] || return
+
+ [ "$DEBUG" -eq "1" ] && acme_args="$acme_args --debug"
+
+ set -- $domains
+ main_domain=$1
+
+ if [ -e "$STATE_DIR/$main_domain" ]; then
+ $ACME --home "$STATE_DIR" --renew -d "$main_domain" $acme_args || return 1
+ return 0
+ fi
+
+
+ acme_args="$acme_args $(for d in $domains; do echo -n "-d $d "; done)"
+ acme_args="$acme_args --webroot $(uci get uhttpd.main.home)"
+ acme_args="$acme_args --keylength $keylength"
+ [ -n "$ACCOUNT_EMAIL" ] && acme_args="$acme_args --accountemail $ACCOUNT_EMAIL"
+ [ "$use_staging" -eq "1" ] && acme_args="$acme_args --staging"
+
+ if ! $ACME --home "$STATE_DIR" --issue $acme_args; then
+ echo "Issuing cert for $main_domain failed. It may be necessary to remove $STATE_DIR/$main_domain to recover." >&2
+ return 1
+ fi
+
+ if [ "$update_uhttpd" -eq "1" ]; then
+ uci set uhttpd.main.key="$STATE_DIR/${main_domain}/${main_domain}.key"
+ uci set uhttpd.main.cert="$STATE_DIR/${main_domain}/fullchain.cer"
+ # commit and reload is in post_checks
+ fi
+
+}
+
+load_vars()
+{
+ local section="$1"
+
+ STATE_DIR=$(config_get "$section" state_dir)
+ ACCOUNT_EMAIL=$(config_get "$section" account_email)
+ DEBUG=$(config_get "$section" debug)
+}
+
+if [ -n "$CHECK_CRON" ]; then
+ check_cron
+ exit 0
+fi
+
+config_load acme
+config_foreach load_vars acme
+
+pre_checks || exit 1
+trap err_out SIGHUP SIGTERM
+trap int_out SIGINT
+
+config_foreach issue_cert cert
+post_checks
+
+exit 0
--- /dev/null
+#!/bin/sh
+
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@acme[-1]
+ add ucitrack acme
+ add_list ucitrack.@bcp38[0].init=acme
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
--- /dev/null
+--- a/acme.sh 2016-08-05 17:00:58.000000000 +0200
++++ b/acme.sh 2016-08-05 17:13:58.582459764 +0200
+@@ -48,9 +48,9 @@
+
+ _info() {
+ if [ -z "$2" ] ; then
+- echo "[$(date)] $1"
++ echo "$1"
+ else
+- echo "[$(date)] $1='$2'"
++ echo "$1='$2'"
+ fi
+ }
+
include $(TOPDIR)/rules.mk
PKG_NAME:=adblock
-PKG_VERSION:=1.4.1
+PKG_VERSION:=1.4.3
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
define Package/$(PKG_NAME)/description
Powerful adblock script to block ad/abuse domains.
-Currently the script supports 19 domain blacklist sites plus manual black- and whitelist overrides.
+Currently the script supports 20 domain blacklist sites plus manual black- and whitelist overrides.
Please see https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md for further information.
endef
* => daily updates, approx. 4.500 entries
* [feodotracker](https://feodotracker.abuse.ch)
* => daily updates, approx. 0-10 entries
+ * [hphosts](https://hosts-file.net)
+ * => monthly updates, approx. 390.000 entries
* [malwaredomains](http://malwaredomains.com)
* => daily updates, approx. 16.000 entries
* [malwaredomainlist](http://www.malwaredomainlist.com)
network_get_device adb_landev "${adb_lanif}"
network_find_wan adb_wanif4
network_find_wan6 adb_wanif6
-
- # set restricted mode
- #
- if [ "${adb_restricted}" = "1" ]
- then
- adb_uci="$(which true)"
- restricted_ok="true"
- fi
}
# f_envcheck: check/set environment prerequisites
fi
if [ "${adb_enabled}" != "1" ]
then
- rc=-1
+ rc=-10
f_log "adblock is currently disabled, please set adblock.global.adb_enabled=1' to use this service"
f_exit
fi
then
adb_nullipv4="${adb_ipv4}"
adb_nullipv6="${adb_ipv6}"
- if [ "$(${adb_uci} -q get uhttpd.main.listen_http | grep -Fo "80")" = "80" ] ||
- [ "$(${adb_uci} -q get uhttpd.main.listen_https | grep -Fo "443")" = "443" ]
+ if [ -n "$(${adb_uci} -q get uhttpd.main.listen_http | grep -Fo "80")" ] ||
+ [ -n "$(${adb_uci} -q get uhttpd.main.listen_https | grep -Fo "443")" ]
then
rc=-1
f_log "AP mode detected, please set local LuCI instance to ports <> 80/443"
check="$(${adb_uci} -q get bcp38.@bcp38[0].enabled)"
if [ "${check}" = "1" ]
then
- check="$(${adb_uci} -q get bcp38.@bcp38[0].match | grep -Fo "${adb_nullipv4%.*}")"
- if [ -n "${check}" ]
+ if [ -n "$(${adb_uci} -q get bcp38.@bcp38[0].match | grep -Fo "${adb_nullipv4%.*}")" ]
then
rc=-1
f_log "please whitelist '${adb_nullipv4}' in your bcp38 configuration to use adblock"
f_log "AP mode enabled"
fi
- # log restricted mode
+ # set/log restricted mode
#
- if [ "${restricted_ok}" = "true" ]
+ if [ "${adb_restricted}" = "1" ]
then
+ adb_uci="$(which true)"
f_log "Restricted mode enabled"
fi
local options="adb_src_timestamp adb_src_count"
local section="${1}"
- rm_cfg="${adb_lastrun}"
- if [ -n "${rm_cfg}" ]
- then
- "${adb_uci}" -q delete "adblock.global.adb_overall_count"
- "${adb_uci}" -q delete "adblock.global.adb_dnstoggle"
- "${adb_uci}" -q delete "adblock.global.adb_percentage"
- "${adb_uci}" -q delete "adblock.global.adb_lastrun"
- for opt in ${options}
- do
- "${adb_uci}" -q delete "adblock.${section}.${opt}"
- done
- fi
+ "${adb_uci}" -q delete "adblock.global.adb_overall_count"
+ "${adb_uci}" -q delete "adblock.global.adb_dnstoggle"
+ "${adb_uci}" -q delete "adblock.global.adb_percentage"
+ "${adb_uci}" -q delete "adblock.global.adb_lastrun"
+ for opt in ${options}
+ do
+ "${adb_uci}" -q delete "adblock.${section}.${opt}"
+ done
}
# f_rmdns: remove dns block lists and backups
local log_parm
local log_msg="${1}"
local class="info "
- local lastrun="$(date "+%d.%m.%Y %H:%M:%S")"
# check for terminal session
#
class="error"
fi
logger ${log_parm} -t "adblock[${adb_pid}] ${class}" "${log_msg}" 2>&1
-
- # clean exit on error
- #
- if [ $((rc)) -eq -1 ] || [ $((rc)) -gt 0 ]
- then
- f_rmdns
- f_rmuhttpd
- f_rmfirewall
- config_foreach f_rmconfig source
- "${adb_uci}" -q set "adblock.global.adb_lastrun=${lastrun} => runtime error, please check the log!"
- "${adb_uci}" -q commit "adblock"
- fi
fi
}
{
local lastrun="$(date "+%d.%m.%Y %H:%M:%S")"
+ if [ "${adb_restricted}" = "1" ]
+ then
+ adb_uci="$(which true)"
+ fi
+
+ # delete temp files & directories
+ #
rm -f "${adb_tmpfile}"
rm -rf "${adb_tmpdir}"
+ # tidy up on error
+ #
+ if [ $((rc)) -lt 0 ] || [ $((rc)) -gt 0 ]
+ then
+ f_rmdns
+ f_rmuhttpd
+ f_rmfirewall
+ config_foreach f_rmconfig source
+ if [ $((rc)) -eq -1 ]
+ then
+ "${adb_uci}" -q set "adblock.global.adb_lastrun=${lastrun} => runtime error, please check the log!"
+ fi
+ fi
+
# final log message and iptables statistics
#
if [ $((rc)) -eq 0 ]
then
f_statistics
"${adb_uci}" -q set "adblock.global.adb_lastrun=${lastrun}"
- "${adb_uci}" -q commit "adblock"
f_log "domain adblock processing finished successfully (${adb_scriptver}, ${adb_sysver}, ${lastrun})"
elif [ $((rc)) -gt 0 ]
then
else
rc=0
fi
+ "${adb_uci}" -q commit "adblock"
rm -f "${adb_pidfile}"
exit ${rc}
}
#
adb_pid="${$}"
adb_pidfile="/var/run/adblock.pid"
-adb_scriptver="1.4.1"
-adb_mincfgver="2.2"
+adb_scriptver="1.4.3"
+adb_mincfgver="2.3"
adb_scriptdir="${0%/*}"
if [ -r "${adb_pidfile}" ]
then
config adblock 'global'
option adb_enabled '1'
- option adb_cfgver '2.2'
+ option adb_cfgver '2.3'
option adb_whitelist '/etc/adblock/adblock.whitelist'
option adb_whitelist_rset '\$1 ~/^([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\"^\"\$1\"\\\|[.]\"\$1)}'
option adb_forcedns '1'
option adb_src_rset '\$1 ~/^([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\$1)}'
option adb_src_desc 'focus on feodo botnet domains, daily updates, approx. 0-10 entries'
+config source 'hphosts'
+ option enabled '0'
+ option adb_src 'https://hosts-file.net/download/hosts.txt'
+ option adb_src_rset '\$0 ~/^127\.0\.0\.1[ \t]+([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\$2)}'
+ option adb_src_desc 'broad blocklist against ad-, tracking- and other malicious hosts, monthly updates, approx. 390.000 entries'
+
config source 'malware'
option enabled '0'
option adb_src 'https://mirror.cedia.org.ec/malwaredomains/justdomains'
adb_helper="/usr/bin/adblock-helper.sh"
adb_pidfile="/var/run/adblock.pid"
bg_parm="&"
-if [ -t 1 ]
-then
- unset bg_parm
-fi
if [ $((adb_debug)) -eq 0 ]
then
. "${adb_helper}"
f_envload
+if [ "${adb_restricted}" = "1" ]
+then
+ adb_uci="$(which true)"
+fi
+
boot()
{
return 0
start()
{
+ if [ -t 1 ]
+ then
+ unset bg_parm
+ fi
eval "${adb_script}" ${bg_parm}
return 0
}
{
f_rmdns
f_rmuhttpd
- adb_uci="$(which uci)"
config_foreach f_rmconfig source
- if [ -n "$(${adb_uci} -q changes adblock)" ]
- then
- "${adb_uci}" -q commit adblock
- fi
if [ -z "${reload}" ]
then
f_rmfirewall
fi
- if [ -n "${rm_dns}" ] || [ -n "${rm_uhttpd}" ] || [ -n "${rm_fw}" ] || [ -n "${rm_cfg}" ]
+ if [ -n "${rm_dns}" ] || [ -n "${rm_uhttpd}" ] || [ -n "${rm_fw}" ] || [ -n "$(${adb_uci} -q changes adblock)" ]
then
+ "${adb_uci}" -q commit adblock
f_log "all adblock related services stopped"
fi
return 0
if [ -n "${list_dns}" ] || [ -n "${list_dnshide}" ]
then
mv -f "${source}"* "${target}"
+ /etc/init.d/dnsmasq restart
"${adb_uci}" -q set "adblock.global.adb_dnstoggle=${pos}"
"${adb_uci}" -q commit "adblock"
- /etc/init.d/dnsmasq restart
f_log "adblock toggle switched '${pos}'"
fi
fi
--- /dev/null
+#
+# Copyright (C) 2006-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=addrwatch
+PKG_VERSION:=0.8
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-master.tar.gz
+PKG_SOURCE_URL:=https://github.com/fln/addrwatch/releases/download/$(PKG_VERSION)/
+PKG_MD5SUM:=8f401415be993005fa5fb58a05e14295
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=COPYING
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-master
+PKG_FIXUP:=autoreconf
+PKG_BUILD_DEPENDS:=USE_UCLIBC:argp-standalone USE_MUSL:argp-standalone
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/addrwatch
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libpcap +libevent2
+ TITLE:=IPv4/IPv6 and ethernet address pairing tool
+ URL:=https://github.com/fln/addrwatch
+ MAINTAINER:=Ondrej Caletka <ondrej@caletka.cz>
+endef
+
+define Package/addrwatch/description
+ This is a tool similar to arpwatch. It main purpose is to monitor network and
+ log discovered ethernet/ip pairings. Addrwatch is extremely useful in networks
+ with IPv6 autoconfiguration (RFC4862) enabled. It allows to track IPv6
+ addresses of hosts using IPv6 privacy extensions (RFC4941).
+endef
+
+define Package/addrwatch/conffiles
+ /etc/config/addrwatch
+endef
+
+define Package/addrwatch/install
+ $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/addrwatch $(1)/usr/sbin/
+ $(INSTALL_BIN) ./files/addrwatch.init $(1)/etc/init.d/addrwatch
+ $(INSTALL_CONF) ./files/addrwatch.config $(1)/etc/config/addrwatch$
+endef
+
+$(eval $(call BuildPackage,addrwatch))
--- /dev/null
+
+config addrwatch
+ option disabled '0'
+ list interface 'lan'
+ #list interface 'wan'
+ #option syslog '1'
+ #option verbose '0'
+ #option output '/var/log/addrwatch'
+ #list blacklist '192.168.1.1'
+ #option hashsize '1'
+ #option ratelimit '-1'
+
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2016 OpenWrt.org
+
+START=50
+USE_PROCD=1
+
+. /lib/functions/network.sh
+
+validate_section_addrwatch() {
+ uci_validate_section addrwatch addrwatch "${1}" \
+ 'disabled:bool:0' \
+ 'interface:list(string):lan' \
+ 'syslog:bool:1' \
+ 'output:string' \
+ 'quiet:bool:0' \
+ 'verbose:bool:0' \
+ 'ipv4only:bool:0' \
+ 'ipv6only:bool:0' \
+ 'blacklist:list(or(ip4addr,ip6addr))' \
+ 'hashsize:range(1,65536):1024'\
+ 'ratelimit:integer:3600'
+ return $?
+}
+
+start_instance() {
+ local cfg="$1"
+ local disabled interface syslog output quiet verbose ipv4only ipv6only
+ local blacklist hashsize ratelimit
+ local netdevs=""
+
+ validate_section_addrwatch "${cfg}" || {
+ echo "validation of config $cfg failed"
+ return 1
+ }
+ [ $disabled -ne 0 ] && return 1
+
+ for iface in $interface; do
+ local netdev
+ network_get_physdev netdev "${iface}"
+ append netdevs "${netdev}"
+ done
+
+ procd_open_instance
+ procd_set_param command /usr/sbin/addrwatch
+ [ "${syslog}" -eq 1 ] && procd_append_param command --syslog
+ [ -n "${output}" ] && procd_append_param command --output "$output"
+ [ "$quiet" -eq 1 ] && procd_append_param command --quiet
+ [ "$verbose" -eq 1 ] && procd_append_param command --verbose
+ [ "$ipv4only" -eq 1 ] && procd_append_param command --ipv4only
+ [ "$ipv6only" -eq 1 ] && procd_append_param command --ipv6only
+ [ -n "$hashsize" ] && procd_append_param command --hashsize "$hashsize"
+ [ -n "$ratelimit" ] && procd_append_param command --ratelimit "$ratelimit"
+ for blitem in $blacklist; do
+ procd_append_param command "--blacklist=${blitem}"
+ done
+ procd_append_param command $netdevs
+ procd_set_param netdev $netdevs
+ procd_set_param respawn
+ procd_open_trigger
+ for iface in $interface; do
+ procd_add_interface_trigger "interface.*" ${iface} /etc/init.d/addrwatch reload
+ done
+ procd_close_trigger
+ procd_close_instance
+}
+
+start_service() {
+ config_load 'addrwatch'
+ config_foreach start_instance 'addrwatch'
+}
+
+service_triggers() {
+ procd_add_reload_trigger 'addrwatch'
+}
--- /dev/null
+--- a/configure.ac
++++ b/configure.ac
+@@ -56,9 +56,6 @@ AC_CHECK_HEADERS([arpa/inet.h netinet/in
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_C_INLINE
+ AC_TYPE_PID_T
+-AC_CHECK_DECLS([sys_siglist], [], [
+- AC_MSG_ERROR([Unable to find sys_siglist declaration.])
+-], [[#include <signal.h>]])
+ AC_TYPE_UINT32_T
+ AC_TYPE_UINT16_T
+ AC_TYPE_UINT8_T
+--- a/src/addrwatch.c
++++ b/src/addrwatch.c
+@@ -339,7 +339,7 @@ void reload_cb(evutil_socket_t fd, short
+ void reload_cb(int fd, short events, void *arg)
+ #endif
+ {
+- log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, sys_siglist[fd]);
++ log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, strsignal(fd));
+ log_msg(LOG_DEBUG, "Reopening output files");
+
+ output_flatfile_reload();
+@@ -353,7 +353,7 @@ void stop_cb(evutil_socket_t fd, short e
+ void stop_cb(int fd, short events, void *arg)
+ #endif
+ {
+- log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, sys_siglist[fd]);
++ log_msg(LOG_DEBUG, "Received signal (%d), %s", fd, strsignal(fd));
+ #if HAVE_LIBEVENT2
+ event_base_loopbreak(cfg.eb);
+ #else
--- /dev/null
+--- a/src/addrwatch.c
++++ b/src/addrwatch.c
+@@ -492,7 +492,7 @@ int main(int argc, char *argv[])
+ argp_parse(&argp, argc, argv, 0, &optind, 0);
+
+ if (!cfg.hostname) {
+- cfg.hostname_len = sysconf(_SC_HOST_NAME_MAX);
++ cfg.hostname_len = HOST_NAME_MAX;
+ cfg.hostname = (char *)calloc(cfg.hostname_len, sizeof(char));
+ gethostname(cfg.hostname, cfg.hostname_len);
+ }
PKG_NAME:=apache
PKG_VERSION:=2.2.31
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE_NAME:=httpd
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=Apache License
--- a/docs/conf/httpd.conf.in
+++ b/docs/conf/httpd.conf.in
-@@ -51,7 +51,6 @@ Listen @@Port@@
+@@ -52,7 +52,6 @@ Listen @@Port@@
# Example:
# LoadModule foo_module modules/mod_foo.so
#
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
-@@ -63,8 +62,8 @@ Listen @@Port@@
+@@ -64,8 +63,8 @@ Listen @@Port@@
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
</IfModule>
</IfModule>
-@@ -191,7 +190,7 @@ ErrorLog "@rel_logfiledir@/error_log"
+@@ -192,7 +191,7 @@ ErrorLog "@rel_logfiledir@/error_log"
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
<IfModule log_config_module>
#
-@@ -336,7 +335,7 @@ DefaultType text/plain
+@@ -337,7 +336,7 @@ DefaultType text/plain
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
#
# Customizable error responses come in three flavors:
-@@ -358,7 +357,7 @@ DefaultType text/plain
+@@ -366,7 +365,7 @@ DefaultType text/plain
# broken on your system.
#
#EnableMMAP off
# Supplemental configuration
#
-@@ -404,7 +403,7 @@ DefaultType text/plain
+@@ -412,7 +411,7 @@ DefaultType text/plain
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#
--- /dev/null
+--- a/support/ab.c
++++ b/support/ab.c
+@@ -2232,8 +2232,10 @@ int main(int argc, const char * const ar
+ } else if (strncasecmp(optarg, "SSL2", 4) == 0) {
+ meth = SSLv2_client_method();
+ #endif
++#ifndef OPENSSL_NO_SSL3_METHOD
+ } else if (strncasecmp(optarg, "SSL3", 4) == 0) {
+ meth = SSLv3_client_method();
++#endif
+ #ifdef HAVE_TLSV1_X
+ } else if (strncasecmp(optarg, "TLS1.1", 6) == 0) {
+ meth = TLSv1_1_client_method();
PKG_NAME:=aria2
PKG_VERSION:=1.25.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://github.com/aria2/aria2/releases/download/release-$(PKG_VERSION)/
option enable_dht 'true'
option follow_torrent 'true'
option user 'root'
- option dir '/mnt/sda1'
+ option dir '/mnt/sda1/aria2'
option save_session_interval '30'
section_enabled "$s" || return 1
config_get config_dir "$s" 'config_dir' '/var/etc/aria2'
+ config_get dir "$s" 'dir'
config_get user "$s" 'user'
config_file="$config_dir/aria2.conf"
[ -d "$config_dir" ] || {
mkdir -m 0755 -p "$config_dir"
touch "$config_file"
- [ -z "$user" ] || chown -R $user $config_dir
}
- touch "$session_file"
+ [ -d "$dir" ] || {
+ mkdir -m 0755 -p "$dir" # create download dir
+ touch "$dir"
+ }
+
+ touch "$session_file" # create session file
echo -e "enable-rpc=true\nrpc-allow-origin-all=true\nrpc-listen-all=true\nquiet=true" > $config_file
echo -e "continue=true\ninput-file=$session_file\nsave-session=$session_file" >> $config_file
option_disabled "$s" 'enable_dht' || echo "dht-file-path=$dht_file" >> $config_file
option_disabled "$s" 'enable_log' || {
- touch "$log_file"
+ [ -f "$log_file" ] && echo > $log_file # if log file exist, clear it
echo -e "log=$log_file" >> $config_file
}
+ # if user is set, change dir owner
+ [ -z "$user" ] || {
+ chown -R $user:$user $config_dir
+ chown -R $user:$user $dir
+ }
+
append_params "$s" \
file_allocation bt_enable_lpd enable_dht rpc_user rpc_passwd rpc_listen_port dir bt_tracker disk_cache \
max_overall_download_limit max_overall_upload_limit max_download_limit max_upload_limit max_concurrent_downloads \
max_connection_per_server min_split_size split save_session_interval follow_torrent listen_port bt_max_peers \
- peer_id_prefix user_agent rpc_secret
+ peer_id_prefix user_agent rpc_secret log_level
config_list_foreach "$s" extra_settings append_extrasettings
PKG_VERSION:=2.7.3
# Release == build
# increase on changes of services files or tld_names.dat
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=GPL-2.0
PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
"dyns.net" "http://www.dyns.net/postscript011.php?username=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&ip=[IP]" "200"
# dnshome.de
-"dnshome.de" ""https://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip=[IP]"
+"dnshome.de" "https://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip=[IP]"
+# core-networks.de
+"core-networks.de" "https://[USERNAME]:[PASSWORD]@dyndns.core-networks.de/?hostname=[DOMAIN]&myip=[IP]&keepipv6=1" "good"
"myonlineportal.net" "http://[USERNAME]:[PASSWORD]@myonlineportal.net/updateddns?hostname=[DOMAIN]&ip6=[IP]" "good|nochg"
# dnshome.de
-"dnshome.de" ""https://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip6=[IP]"
+"dnshome.de" "https://[USERNAME]:[PASSWORD]@www.dnshome.de/dyndns.php?hostname=[DOMAIN]&ip6=[IP]"
+# core-networks.de
+"core-networks.de" "https://[USERNAME]:[PASSWORD]@dyndns.core-networks.de/?hostname=[DOMAIN]&myip=[IP]&keepipv4=1" "good"
mkdir -p /var/db/radacct
procd_open_instance
- procd_set_param command $PROG
+ procd_set_param command $PROG -f
+ procd_set_param env LD_LIBRARY_PATH=/usr/lib/freeradius2
[ -n "$IPADDR" ] && procd_append_param command -i $IPADDR
[ -n "$OPTIONS" ] && procd_append_param command $OPTIONS
procd_set_param respawn
mkdir -p /var/db/radacct
procd_open_instance
- procd_set_param command $PROG
+ procd_set_param command $PROG -f
+ procd_set_param env LD_LIBRARY_PATH=/usr/lib/freeradius3
[ -n "$IPADDR" ] && procd_append_param command -i $IPADDR
[ -n "$OPTIONS" ] && procd_append_param command $OPTIONS
procd_set_param respawn
#
-# Copyright (C) 2009-2015 OpenWrt.org
+# Copyright (C) 2009-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_NAME:=git
PKG_VERSION:=2.8.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/scm/git/
CATEGORY:=Network
SUBMENU:=Version Control Systems
DEPENDS:=+libopenssl +libpthread +librt +zlib
- TITLE:=The fast version control system
URL:=http://git-scm.com
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-http
$(call Package/git/Default)
- DEPENDS:=git +libcurl +ca-certificates
+ DEPENDS+=git +libcurl +ca-certificates
TITLE:=Git HTTP commands
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=37547
+PKG_SOURCE_VERSION:=37681
PKG_VERSION:=0.10.1-svn$(PKG_SOURCE_VERSION)
PKG_RELEASE:=1
CONF_dv:=dv
DEPENDS_fs:=+gnunet-datastore +gnunet-peerstore +libextractor
-BIN_fs:=auto-share directory download download-manager.scm fs publish unindex search
+BIN_fs:=auto-share directory download fs publish unindex search
LIB_fs:=fs
PLUGIN_fs:=block_fs
LIBEXEC_fs:=helper-fs-publish service-fs
define PostInstFixSUIDPerms
define Package/$(1)/postinst
#!/bin/sh
-[ -e /usr/share/gnunet/.permfix ] && rm /usr/share/gnunet/.permfix
+[ -z "$IPKG_INSTROOT" ] || exit 0
+[ -e /usr/share/gnunet/.permfix ] && rm /usr/share/gnunet/.permfix || exit 0
endef
endef
#
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=kismet
-PKG_VERSION:=2013-03-R1b
+PKG_VERSION:=2016-07-R1
PKG_RELEASE:=1
PKG_LICENSE:=LGPLv2.1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://www.kismetwireless.net/code
-PKG_MD5SUM:=6cdcd78baf2e15edbe8a9de3c5493f02
+PKG_MD5SUM:=7fa6e86c5078a0e7d91fc9bf954c5107
PKG_BUILD_DEPENDS:=libpcap libncurses libpcre
SECTION:=net
CATEGORY:=Network
TITLE:=Kismet
- MAINTAINER:=Sebastian Wendel <packages@sourceindex.de>
+ MAINTAINER:=Jean-Michel lacroix <lacroix@lepine-lacroix.info>
DEPENDS:= $(CXX_DEPENDS) +libnl
URL:=http://www.kismetwireless.net/
SUBMENU:=wireless
--- a/configure
+++ b/configure
-@@ -5456,9 +5456,6 @@ fi
+@@ -5981,9 +5981,6 @@ fi
#include "ipc_remote.h"
#ifndef SYS_CYGWIN
+--- a/ifcontrol.h
++++ b/ifcontrol.h
+@@ -39,7 +39,6 @@
+ #include <net/if_arp.h>
+ #include <sys/ioctl.h>
+ #include <netinet/in.h>
+-#include <netinet/if_ether.h>
+ #include <arpa/inet.h>
+ #endif
+
PKG_NAME:=mini_snmpd
PKG_VERSION:=1.4-rc1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_MAINTAINER:=Luke McKee <hojuruku@gmail.com>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
local name="$1" netdev netdev_count
[ -z $netdev_count ] && netdev_count=0
# for the purposes of snmp monitoring it doesn't need to be up, it just needs to exist in /proc/net/dev
- netdev=$(ubus -S call network.interface dump|jsonfilter -e "@.interface[@.interface=\"$name\"].device")
+ netdev=$(ubus -S call network.interface dump|jsonfilter -e "@.interface[@.interface=\"$name\"].l3_device")
if [ -n "$netdev" ] && grep -qF "$netdev" /proc/net/dev ]; then
[ $netdev_count -ge 4 ] && {
_err "$cfg: too many network interfaces configured, ignoring $name"
--- /dev/null
+#
+# Copyright (C) 2006-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=obfsproxy
+PKG_VERSION:=0.2.13
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/o/obfsproxy
+PKG_MD5SUM:=f596aeeda7bf03cdf0e78e68e6e7ac9f
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/obfsproxy
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=A pluggable transport proxy written in Python
+ URL:=https://www.torproject.org/projects/obfsproxy.html.en
+ DEPENDS:=+python-light +python-crypto +python-pyptlib +python-setuptools +python-yaml +twisted
+endef
+
+define Package/obfsproxy/description
+obfsproxy is a tool that attempts to circumvent censorship, by
+transforming the Tor traffic between the client and the bridge. This
+way, censors, who usually monitor traffic between the client and the
+bridge, will see innocent-looking transformed traffic instead of the
+actual Tor traffic.
+endef
+
+define Package/obfsproxy/conffiles
+/etc/config/obfsproxy
+endef
+
+define Build/Compile
+ $(call Build/Compile/PyMod,,install --prefix="/usr" --root="$(PKG_INSTALL_DIR)")
+endef
+
+define PyPackage/obfsproxy/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/obfsproxy $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/etc/config
+ $(INSTALL_CONF) ./files/obfsproxy.conf $(1)/etc/config/obfsproxy
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/obfsproxy.init $(1)/etc/init.d/obfsproxy
+endef
+
+$(eval $(call PyPackage,obfsproxy))
+$(eval $(call BuildPackage,obfsproxy))
--- /dev/null
+# To use Obfsproxy with Tor, follow the instructions at:
+#
+# https://www.torproject.org/projects/obfsproxy-instructions.html.en
+#
+# instead of setting up a separate instance of Obfsproxy.
+
+config obfsproxy 'obfsproxy'
+ # Set to 1 to enable this instance
+ option enabled 0
+
+ # One of: managed, dummy, b64, obfs2, obfs3, scramblesuit
+ option transport 'scramblesuit'
+
+ # Shared secret / password
+ # For obfs2 (as the shared secret parameter) and scramblesuit only
+ option password 'EXAMPLEPASSWORDNOTREAL'
+
+ # One of: server, ext_server, client, socks
+ option mode 'socks'
+
+ # Destination address
+ # Required for all modes except 'socks'
+ #option dest_host '0.0.0.0'
+ #option dest_port '80'
+
+ # Extended ORPort authentication cookie file location
+ # Required for 'ext_server' mode
+ #option ext_cookie_file ''
+
+ # Listener address
+ option listen_host '127.0.0.1'
+ option listen_port '8080'
+
+ # Set to log to a file instead of syslog
+ #option log_file '/var/log/obfsproxy.log'
+
+ # Minimum logging severity
+ # One of: error, warning, info, debug
+ #option log_min_severity 'info'
+
+ # Set to 1 to disable logging
+ #option no_log 0
+
+ # Set to 1 to disable safe (scrubbed address) logging
+ #option no_safe_logging 0
+
+ # Run as a different user
+ #option user 'nobody'
+
+ # Outgoing proxy
+ # proxy_scheme is one of: socks4a, socks5, http
+ # txsocksx is required for socks4a or socks5
+ #option proxy_scheme ''
+ #option proxy_username ''
+ #option proxy_password ''
+ #option proxy_host ''
+ #option proxy_port ''
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2016 OpenWrt.org
+
+START=80
+STOP=20
+USE_PROCD=1
+
+PROG=/usr/bin/obfsproxy
+
+append_arg() {
+ local cfg="$1"
+ local var="$2"
+ local opt="$3"
+ local def="$4"
+ local val
+
+ config_get val "$cfg" "$var"
+ [ -n "$val" -o -n "$def" ] && procd_append_param command "$opt" "${val:-$def}"
+}
+
+append_bool() {
+ local cfg="$1"
+ local var="$2"
+ local opt="$3"
+ local def="$4"
+ local val
+
+ config_get_bool val "$cfg" "$var" "$def"
+ [ "$val" = 1 ] && procd_append_param command "$opt"
+}
+
+append_plain() {
+ procd_append_param command "$1"
+}
+
+append_param() {
+ local cfg="$1"
+ local var="$2"
+ local opt="$3"
+ local def="$4"
+ local val
+
+ config_get val "$cfg" "$var"
+ [ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}"
+}
+
+append_proxy_spec() {
+ local cfg="$1"
+ local scheme_var="$2"
+ local username_var="$3"
+ local password_var="$4"
+ local host_var="$5"
+ local port_var="$6"
+ local opt="$7"
+ local def="$8"
+ local scheme
+ local username
+ local password
+ local host
+ local port
+ local login
+ local val
+
+ config_get scheme "$cfg" "$scheme_var"
+ config_get username "$cfg" "$username_var"
+ config_get password "$cfg" "$password_var"
+ config_get host "$cfg" "$host_var"
+ config_get port "$cfg" "$port_var"
+ [ "$username" ] && login="$username${password:+:$password}@"
+ [ -n "$scheme" -a -n "$host" -a -n "$port" ] && val="$scheme://$login$host:$port"
+ [ -n "$val" -o -n "$def" ] && procd_append_param command "$opt" "${val:-$def}"
+}
+
+append_host_port() {
+ local cfg="$1"
+ local host_var="$2"
+ local port_var="$3"
+ local opt="$4"
+ local def="$5"
+ local host
+ local port
+ local val
+
+ config_get host "$cfg" "$host_var"
+ config_get port "$cfg" "$port_var"
+ [ -n "$host" -a -n "$port" ] && val="$host:$port"
+ [ -n "$val" -o -n "$def" ] && {
+ [ "$opt" ] && procd_append_param command "$opt"
+ procd_append_param command "${val:-$def}"
+ }
+}
+
+start_instance() {
+ local cfg="$1"
+ local lib_dir="/var/lib/obfsproxy/$cfg"
+ local redirect=0
+ local enabled
+ local user
+ local transport
+ local password
+ local log_min_severity
+
+ config_get_bool enabled "$cfg" 'enabled' '0'
+ [ "$enabled" = 0 ] && return 1
+
+ config_get user "$cfg" 'user' 'root'
+ config_get transport "$cfg" 'transport'
+ [ "$transport" = "scramblesuit" ] && config_get password "$cfg" 'password'
+
+ [ -d "$lib_dir" ] || {
+ mkdir -m 0755 -p "$lib_dir/data"
+ chmod -R 0700 "$lib_dir"
+ }
+ [ "$password" ] && {
+ echo "$password" > "$lib_dir/secret"
+ chmod 0600 "$lib_dir/secret"
+ }
+ chown -R "$user:" "$lib_dir"
+
+ config_get log_min_severity "$cfg" 'log_min_severity'
+ [ "$log_min_severity" = "debug" ] && redirect=1
+
+ procd_open_instance
+
+ procd_set_param command "$PROG" --data-dir "$lib_dir/data" --syslog "obfsproxy($cfg)"
+
+ append_arg "$cfg" log_file "--log-file"
+ append_arg "$cfg" log_min_severity "--log-min-severity"
+ append_bool "$cfg" no_log "--no-log"
+ append_bool "$cfg" no_safe_logging "--no-safe-logging"
+ append_proxy_spec "$cfg" proxy_scheme proxy_username proxy_password proxy_host proxy_port "--proxy"
+
+ append_param "$cfg" transport command
+ [ "$transport" = "obfs2" ] && append_arg "$cfg" password "--shared-secret"
+ [ "$password" ] && procd_append_param command "--password-file" "$lib_dir/secret"
+
+ append_param "$cfg" mode command
+ append_host_port "$cfg" dest_host dest_port "--dest"
+ append_arg "$cfg" ext_cookie_file "--ext-cookie-file"
+
+ append_host_port "$cfg" listen_host listen_port
+
+ procd_set_param respawn
+ procd_set_param stdout $redirect
+ procd_set_param stderr $redirect
+ append_param "$cfg" user user
+
+ procd_close_instance
+}
+
+service_triggers() {
+ procd_add_reload_trigger obfsproxy
+}
+
+start_service() {
+ config_load obfsproxy
+ config_foreach start_instance obfsproxy
+}
--- /dev/null
+diff --git a/setup.py b/setup.py
+index 2353a29..9d2a9a9 100644
+--- a/setup.py
++++ b/setup.py
+@@ -21,7 +21,7 @@ setup(
+ version=versioneer.get_version(),
+ cmdclass=versioneer.get_cmdclass(),
+
+- packages = find_packages(),
++ packages = find_packages(exclude=['*.test', '*.test.*']),
+ entry_points = {
+ 'console_scripts': [
+ 'obfsproxy = obfsproxy.pyobfsproxy:run'
--- /dev/null
+diff --git a/setup.py b/setup.py
+index 2353a29..8d3d56d 100644
+--- a/setup.py
++++ b/setup.py
+@@ -27,6 +27,11 @@ setup(
+ 'obfsproxy = obfsproxy.pyobfsproxy:run'
+ ]
+ },
++ options = {
++ 'build_scripts': {
++ 'executable': '/usr/bin/python'
++ },
++ },
+
+ install_requires = [
+ 'setuptools',
--- /dev/null
+diff --git a/setup.py b/setup.py
+index 2353a29..e04c5f5 100644
+--- a/setup.py
++++ b/setup.py
+@@ -32,7 +32,6 @@ setup(
+ 'setuptools',
+ 'PyCrypto',
+ 'Twisted',
+- 'argparse',
+ 'pyptlib >= 0.0.6',
+ 'pyyaml'
+ ],
--- /dev/null
+diff --git a/obfsproxy/common/log.py b/obfsproxy/common/log.py
+index bb30296..79193d2 100644
+--- a/obfsproxy/common/log.py
++++ b/obfsproxy/common/log.py
+@@ -1,5 +1,6 @@
+ """obfsproxy logging code"""
+ import logging
++import logging.handlers
+ import sys
+
+ from twisted.python import log
+@@ -50,6 +51,18 @@ class ObfsLogger(object):
+
+ self.obfslogger.addHandler(log_handler)
+
++ def set_syslog(self, progname):
++ """Set up our logger so that it starts logging to syslog instead."""
++
++ # remove the default handler, and add the SysLogHandler:
++ self.obfslogger.removeHandler(self.default_handler)
++
++ log_handler = logging.handlers.SysLogHandler(address='/dev/log')
++ formatter = logging.Formatter(progname + "[%(process)d]: %(message)s")
++ log_handler.setFormatter(formatter)
++
++ self.obfslogger.addHandler(log_handler)
++
+
+ def set_log_severity(self, sev_string):
+ """Update our minimum logging severity to 'sev_string'."""
+diff --git a/obfsproxy/pyobfsproxy.py b/obfsproxy/pyobfsproxy.py
+index 4a2faf6..eaf8a44 100755
+--- a/obfsproxy/pyobfsproxy.py
++++ b/obfsproxy/pyobfsproxy.py
+@@ -42,6 +42,7 @@ def set_up_cli_parsing():
+
+ parser.add_argument('-v', '--version', action='version', version=__version__)
+ parser.add_argument('--log-file', help='set logfile')
++ parser.add_argument('--syslog', metavar='PROGNAME', help='use syslog')
+ parser.add_argument('--log-min-severity',
+ choices=['error', 'warning', 'info', 'debug'],
+ help='set minimum logging severity (default: %(default)s)')
+@@ -110,6 +111,8 @@ def consider_cli_args(args):
+
+ if args.log_file:
+ log.set_log_file(args.log_file)
++ elif args.syslog:
++ log.set_syslog(args.syslog)
+ if args.log_min_severity:
+ log.set_log_severity(args.log_min_severity)
+ if args.no_log:
include $(TOPDIR)/rules.mk
PKG_NAME:=ocserv
-PKG_VERSION:=0.11.3
+PKG_VERSION:=0.11.4
PKG_RELEASE:=1
PKG_USE_MIPS16:=0
PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/ocserv/
-PKG_MD5SUM:=ffe3d79662e939bb55dfe7c9e490b4f2
+PKG_MD5SUM:=645b8f26d2aa40bfe4c32c8de7c8c87e
PKG_LICENSE:=GPLv2+
PKG_LICENSE_FILES:=COPYING
include $(TOPDIR)/rules.mk
PKG_NAME:=openssh
-PKG_VERSION:=7.2p2
+PKG_VERSION:=7.3p1
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:=13009a9156510d8f27e752659075cced
+PKG_MD5SUM:=dfadd9f035d38ce5d58a3bf130b86d08
PKG_LICENSE:=BSD ISC
PKG_LICENSE_FILES:=LICENCE
+++ /dev/null
---- a/cipher.c
-+++ b/cipher.c
-@@ -88,8 +88,10 @@ static const struct sshcipher ciphers[]
- { "3des-cbc", SSH_CIPHER_SSH2, 8, 24, 0, 0, 0, 1, EVP_des_ede3_cbc },
- { "blowfish-cbc",
- SSH_CIPHER_SSH2, 8, 16, 0, 0, 0, 1, EVP_bf_cbc },
-+#ifndef OPENSSL_NO_CAST
- { "cast128-cbc",
- SSH_CIPHER_SSH2, 8, 16, 0, 0, 0, 1, EVP_cast5_cbc },
-+#endif
- { "arcfour", SSH_CIPHER_SSH2, 8, 16, 0, 0, 0, 0, EVP_rc4 },
- { "arcfour128", SSH_CIPHER_SSH2, 8, 16, 0, 0, 1536, 0, EVP_rc4 },
- { "arcfour256", SSH_CIPHER_SSH2, 8, 32, 0, 0, 1536, 0, EVP_rc4 },
#
-# Copyright (C) 2008-2012 OpenWrt.org
+# Copyright (C) 2008-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_NAME:=radsecproxy
PKG_VERSION:=1.6.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://software.uninett.no/radsecproxy/
PKG_MD5SUM:=d76cf4fc68515667b8c67387f5045150
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=LICENSE
+
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/radsecproxy/install
$(INSTALL_DIR) $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/radsecproxy $(1)/usr/sbin/
- $(INSTALL_DIR) $(1)/etc/
- $(CP) $(PKG_BUILD_DIR)/radsecproxy.conf-example $(1)/etc/radsecproxy.conf
+ $(INSTALL_DIR) $(1)/etc/config/
+ $(INSTALL_DATA) ./files/radsecproxy.conf $(1)/etc/config/radsecproxy
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/radsecproxy.init $(1)/etc/init.d/radsecproxy
endef
define Package/radsecproxy/conffiles
-/etc/radsecproxy.conf
+/etc/config/radsecproxy
endef
$(eval $(call BuildPackage,radsecproxy))
--- /dev/null
+# Sample radsecproxy configuration
+
+#Basic options
+config options
+ option include '/etc/radsecproxy.conf'
+ #option LogLevel '3'
+ #option LogDestination 'x-syslog:///'
+ #list ListenUDP '127.0.0.1:1812'
+ #list ListenTLS '0.0.0.0:2083'
+ #list ListenTLS '[::]:2083'
+
+#config tls
+# option name 'default'
+# option CACertificatePath '/etc/ssl/certs'
+# option certificateFile '/etc/ssl/certs/host.example.com.pem'
+# option certificateKeyFile '/etc/ssl/private/host.example.com.key.pem'
+
+#config client
+# option name 'localhost'
+# option type 'udp'
+# option secret 'mysecret'
+
+#config server
+# option name '[2001:db8::1]'
+# option type 'tls'
+# option secret 'radsec'
+# option statusServer '1'
+
+# Please note that ordering of realm blocks is important
+
+#config realm
+# option name '/myabc\.com$'
+# option replyMessage 'Misconfigured client: default realm of Intel PRO/Wireless supplicant!'
+#
+
+#config realm
+# option name '/^$/'
+# option replyMessage 'Misconfigured client: empty realm!'
+#
+
+#config realm
+# option name '*'
+# list server '[2001:db8::1]'
USE_PROCD=1
PROG=/usr/sbin/radsecproxy
-CONFFILE=/etc/radsecproxy.conf
+CONFFILE=/var/etc/radsecproxy.conf
+LIST_SEP="
+"
+append_params() {
+ local param
+ local value
+ local section="$1"
+ shift
+ for param in $*; do
+ config_get value "$section" "$param"
+ [ -z "$value" ] && {
+ param=$(echo $param | tr [A-Z] [a-z])
+ config_get value "$section" "$param"
+ }
+ IFS="$LIST_SEP"
+ for value in $value; do
+ [ -n "$value" ] && echo " $param '$value'" >> "$CONFFILE"
+ done
+ unset IFS
+ done
+}
+
+append_bools() {
+ local param
+ local value
+ local section="$1"
+ shift
+ for param in $*; do
+ config_get_bool value "$section" "$param"
+ [ -z "$value" ] && {
+ param=$(echo $param | tr [A-Z] [a-z])
+ config_get_bool value "$section" "$param"
+ }
+ [ -n "$value" ] && {
+ [ "$value" -eq 0 ] && echo " $param off" >> "$CONFFILE"
+ [ "$value" -eq 1 ] && echo " $param on" >> "$CONFFILE"
+ }
+ done
+}
+
+radsecproxy_options() {
+ local cfg="$1"
+ append_params "$cfg" \
+ Include PidFile LogLevel LogDestination FTicksReporting FTicksMAC FTicksKey \
+ FTicksSyslogFacility ListenUDP ListenTCP ListenTLS ListenDTLS SourceUDP \
+ SourceTCP SourceTLS SourceDTLS TTLAttribute AddTTL
+ append_bools "$cfg" \
+ LoopPrevention IPv4Only IPv6Only
+}
+
+tls_block() {
+ local cfg="$1"
+ local name
+ config_get name "$cfg" name
+ echo "tls '$name' {" >> "$CONFFILE"
+ append_params "$cfg" \
+ Include CACertificateFile CACertificatePath certificateFile certificateKeyFile \
+ certificateKeyPassword cacheExpiry policyOID
+ append_bools "$cfg" \
+ CRLCheck
+ echo "}" >> "$CONFFILE"
+}
+
+rewrite_block() {
+ local cfg="$1"
+ local name
+ config_get name "$cfg" name
+ echo "rewrite '$name' {" >> "$CONFFILE"
+ append_params "$cfg" \
+ Include addAttribute addVendorAttribute removeAttribute removeVendorAttribute \
+ modifyAttribute
+ echo "}" >> "$CONFFILE"
+}
+
+client_block() {
+ local cfg="$1"
+ local name
+ config_get name "$cfg" name
+ echo "client '$name' {" >> "$CONFFILE"
+ append_params "$cfg" \
+ Include host type secret tls matchCertificateAttribute duplicateInterval \
+ AddTTL fticksVISCOUNTRY fticksVISINST rewrite rewriteIn rewriteOut \
+ rewriteAttribute
+ append_bools "$cfg" \
+ IPv4Only IPv6Only certificateNameCheck
+ echo "}" >> "$CONFFILE"
+}
+
+server_block() {
+ local cfg="$1"
+ local name
+ config_get name "$cfg" name
+ echo "server '$name' {" >> "$CONFFILE"
+ append_params "$cfg" \
+ Include host port type secret tls matchCertificateAttribute \
+ AddTTL rewrite rewriteIn rewriteOut retryCount dynamicLookupCommand \
+ retryInterval
+ append_bools "$cfg" \
+ IPv4Only IPv6Only certificateNameCheck statusServer LoopPrevention
+ echo "}" >> "$CONFFILE"
+}
+
+realm_block() {
+ local cfg="$1"
+ local name
+ config_get name "$cfg" name
+ echo "realm '$name' {" >> "$CONFFILE"
+ append_params "$cfg" \
+ Include server accountingServer replyMessage
+ append_bools "$cfg" \
+ accountingResponse
+ echo "}" >> "$CONFFILE"
+}
start_service() {
+ mkdir -p $(dirname $CONFFILE)
+ echo "# auto-generated config file from /etc/config/radsecproxy" > $CONFFILE
+ config_load 'radsecproxy'
+ config_foreach radsecproxy_options options
+ config_foreach tls_block tls
+ config_foreach rewrite_block rewrite
+ config_foreach client_block client
+ config_foreach server_block server
+ config_foreach realm_block realm
+
procd_open_instance
procd_set_param command $PROG -f -c $CONFFILE
procd_set_param file $CONFFILE
procd_set_param respawn
procd_close_instance
}
+
+service_triggers() {
+ procd_add_reload_trigger 'radsecproxy'
+}
--- /dev/null
+#
+# Copyright (C) 2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=tcpreplay
+PKG_VERSION:=4.1.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/appneta/tcpreplay/releases/download/v$(PKG_VERSION)
+PKG_MD5SUM:=80394c33fe697b53b69eac9bb0968ae9
+
+PKG_LICENSE:=GPL-3.0
+
+PKG_FIXUP:=libtool
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+TCPREPLAY_MODULES:= \
+ tcpbridge tcpcapinfo tcpliveplay tcpprep \
+ tcpreplay tcpreplay-edit tcprewrite
+
+define Package/tcpreplay/default
+ SUBMENU:=tcprelay
+ SECTION:=net
+ CATEGORY:=Network
+ URL:=http://tcpreplay.appneta.com/
+ MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
+ DEPENDS:=+librt +libpcap
+endef
+
+define Package/tcpbridge
+$(call Package/tcpreplay/default)
+ TITLE:=Bridge network traffic across two interfaces
+endef
+
+define Package/tcpcapinfo
+$(call Package/tcpreplay/default)
+ TITLE:=Pcap file dissector for debugging broken pcap files
+endef
+
+define Package/tcpliveplay
+$(call Package/tcpreplay/default)
+ TITLE:=Replays network traffic stored in a pcap file on live networks using new TCP connections
+endef
+
+define Package/tcpprep
+$(call Package/tcpreplay/default)
+ TITLE:=Create a tcpreplay cache file from a pcap file
+endef
+
+define Package/tcpreplay
+$(call Package/tcpreplay/default)
+ TITLE:=Replay network traffic stored in pcap files
+endef
+
+define Package/tcpreplay-edit
+$(call Package/tcpreplay/default)
+ TITLE:=Replay network traffic stored in pcap files
+endef
+
+define Package/tcprewrite
+$(call Package/tcpreplay/default)
+ TITLE:=Rewrite the packets in a pcap file
+endef
+
+define Package/tcpreplay-all
+$(call Package/tcpreplay/default)
+ TITLE:=Pcap editing and replaying utilities
+ DEPENDS:=$(foreach m,$(TCPREPLAY_MODULES),+$(m))
+endef
+
+define Package/tcpbridge/description
+ tcpbridge is a tool for selectively briding network traffic across two
+ interfaces and optionally modifying the packets in between
+endef
+
+define Package/tcpcapinfo/description
+ tcpcapinfo is a tool for decoding the structure of a pcap(3) file with a
+ focus on finding broken pcap files and determining how two related pcap
+ files might differ.
+endef
+
+define Package/tcpliveplay/description
+ This program, 'tcpliveplay' replays a captured set of packets using new TCP
+ connections with the captured TCP payloads against a remote host in order
+ to do comprehensive vulnerability testings.
+endef
+
+define Package/tcpprep/description
+ tcpprep is a ``pcap(3)'' file pre-processor which creates a cache file
+ which provides "rules" for ``tcprewrite(1)'' and ``tcpreplay(1)'' on how to
+ process and send packets.
+endef
+
+define Package/tcpreplay/description
+ tcpreplay is a tool for replaying network traffic from files saved with
+ tcpdump or other tools which write pcap(3) files.
+endef
+
+define Package/tcpreplay-edit/description
+ tcpreplay-edit includes all the functionality of both tcpreplay
+ and tcprewrite.
+endef
+
+define Package/tcprewrite/description
+ Rewrite/edit the packets in a pcap file
+endef
+
+define Package/tcpreplay-all/description
+ Tcpreplay is a suite of free Open Source utilities for
+ editing and replaying previously captured network traffic.
+ Originally designed to replay malicious traffic patterns to
+ Intrusion Detection/Prevention Systems, it has seen many evolutions
+ including capabilities to replay to web servers.
+
+ Version 4.0.0 introduces features and performance enhancements
+ to support switches, routers, and IP Flow/NetFlow appliances.
+endef
+
+CONFIGURE_ARGS += \
+ --enable-force-pf \
+ --enable-dynamic-link \
+ --prefix="$(PKG_INSTALL_DIR)/usr" \
+ --exec-prefix="$(PKG_INSTALL_DIR)/usr" \
+ --with-libpcap="$(STAGING_DIR)/usr"
+
+define tcpreplayTemplate
+ define Package/$(1)/install
+ $(INSTALL_DIR) $$(1)/usr/bin ; \
+ $(CP) $$(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin
+ endef
+endef
+
+define Package/tcpreplay-all/install
+ :
+endef
+
+$(foreach m, $(TCPREPLAY_MODULES), \
+ $(eval $(call tcpreplayTemplate,$(m))) \
+ $(eval $(call BuildPackage,$(m))) \
+)
+
+$(eval $(call BuildPackage,tcpreplay-all))
+
--- /dev/null
+diff --git a/configure.ac b/configure.ac
+index 6c61381..7f72871 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -773,7 +773,6 @@ if ! test $using_pcap_config = yes; then
+ AC_CHECK_LIB(nl, nl_cache_alloc, [nl_found=yes])
+ AC_CHECK_LIB(nl-genl-3, genl_connect, [nl_genl_3_found=yes])
+ AC_CHECK_LIB(nl-3, nl_cache_alloc, [nl_3_found=yes])
+- AC_CHECK_LIB(dbus-1, dbus_malloc, [dbus_1_found=yes])
+ if test "$nl_found" = "yes"; then
+ LPCAPLIB="$LPCAPLIB -lnl"
+ fi
Note that you need to configure the firewall to allow communication between
the MYVPN interface and lan.
+If you install this package via opkg, there are reports that you must reboot
+before it can be used.
PKG_NAME:=xl2tpd
PKG_VERSION:=devel-20151125
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE
available=1
no_device=1
no_proto_task=1
+ teardown_on_l3_link_down=1
}
proto_l2tp_setup() {
--- /dev/null
+#
+# Copyright (C) 2006-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bandwidthd-php
+PKG_VERSION:=2.0.1
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=Jean-Michel Lacroix <lacroix@lepine-lacroix.info>
+
+PKG_LICENSE:=GPL-2.0
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/bandwidthd-php
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=+libpcre +libxml2 +php5 +php5-cgi +php5-mod-pgsql +php5-mod-gd
+ TITLE:=PHP files to graph bandwidthd data in a postgresql database
+ URL:=http://bandwidthd.sourceforge.net/
+endef
+
+define Package/bandwidthd-php/description
+ PHP files to graph bandwidthd data in a postgresql database
+endef
+
+define Build/Compile
+endef
+
+define Package/bandwidthd-php/install
+ $(INSTALL_DIR) $(1)/www/phphtdocs
+ $(INSTALL_DATA) ./files/legend.gif $(1)/www/phphtdocs/
+ $(INSTALL_DATA) ./files/logo.gif $(1)/www/phphtdocs/
+ $(INSTALL_DATA) ./files/details.php $(1)/www/phphtdocs/
+ $(INSTALL_DATA) ./files/footer.php $(1)/www/phphtdocs/
+ $(INSTALL_DATA) ./files/graph.php $(1)/www/phphtdocs/
+ $(INSTALL_DATA) ./files/include.php $(1)/www/phphtdocs/
+ $(INSTALL_DATA) ./files/index.php $(1)/www/phphtdocs/
+ ln -s /var/etc/bandwidthd-php.conf $(1)/www/phphtdocs/config.conf
+ $(INSTALL_DIR) $(1)//etc/config
+ $(INSTALL_CONF) ./files/bandwidthd-php.config $(1)/etc/config/bandwidthd-php
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/bandwidthd-php.init $(1)/etc/init.d/bandwidthd-php
+endef
+
+$(eval $(call BuildPackage,bandwidthd-php))
--- /dev/null
+config bandwidthd-php
+ option dflt_width '900'
+ option dflt_height '256'
+ option dflt_interval 'INT_DAILY'
+ option host '127.0.0.1'
+ option user 'postgres'
+ option dbname 'bandwidthd'
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006-2016 OpenWrt.org
+
+START=99
+
+USE_PROCD=1
+
+CONFIGNAME="bandwidthd-php"
+CONFIGFILE="/var/etc/bandwidthd-php.conf"
+
+config_cb() {
+ local cfg_type="$1"
+ local cfg_name="$2"
+ case "$cfg_type" in
+ $CONFIGNAME)
+ append cfgs "$cfg_name"
+ ;;
+ esac
+}
+
+export_number() {
+ local option="$1"
+ local section="$2"
+ local _loctmp
+ paramstr=""
+ config_get _loctmp "$section" "$option"
+ if [ -n "$_loctmp" ]; then
+ paramstr="${_loctmp}"
+ fi
+}
+
+export_string() {
+ local option="$1"
+ local section="$2"
+ local _loctmp
+ paramstr=""
+ config_get _loctmp "$section" "$option"
+ if [ -n "$_loctmp" ]; then
+ paramstr="${_loctmp}"
+ fi
+}
+
+service_triggers()
+{
+ procd_add_reload_trigger $CONFIGNAME
+}
+
+
+start_service() {
+ local conffile="<?php\n// auto-generated config file from /etc/config/${CONFIGNAME}\n"
+ rm -f $CONFIGFILE
+ touch $CONFIGFILE
+
+ config_load $CONFIGNAME
+ for cfg in $cfgs; do
+ export_number dflt_width $cfg
+ conffile="${conffile}define(\"DFLT_WIDTH\", ${paramstr:-"900"});\n"
+
+ export_number dflt_height $cfg
+ conffile="${conffile}define(\"DFLT_HEIGHT\", ${paramstr:-"256"});\n"
+
+ export_string dflt_interval $cfg
+ conffile="${conffile}define(\"DFLT_INTERVAL\", ${paramstr:-"INT_DAILY"});\n\n"'$db_connect_string = "host='
+
+ export_string host $cfg
+ conffile="${conffile}${paramstr:-"127.0.0.1"} user="
+
+ export_string user $cfg
+ conffile="${conffile}${paramstr:-"postgres"} dbname="
+
+ export_string dbname $cfg
+ conffile="${conffile}${paramstr:-"bandwidthd"}"'"'"\n?>"
+ [ -n "$conffile" ] && echo -e "$conffile" >>$CONFIGFILE
+ done
+}
--- /dev/null
+<?php
+include("include.php");
+?>
+<html>
+<center>
+<img src=logo.gif>
+<?php
+if (isset($_GET['sensor_name']))
+ $sensor_name = $_GET['sensor_name'];
+else
+ {
+ echo "<br>Please provide a sensor_name";
+ exit(1);
+ }
+
+if (isset($_GET['ip']))
+ $ip = $_GET['ip'];
+else
+ {
+ echo "<br>Please provide an ip address";
+ exit(1);
+ }
+
+echo "<h3>";
+if (strpos($ip, "/") === FALSE)
+ echo "$ip - ".gethostbyaddr($ip)."</h3>";
+else
+ echo "Total - $ip</h3>";
+
+$db = ConnectDb();
+
+if ($ip == "0.0.0.0/0")
+ {
+ $rxtable = "bd_rx_total_log";
+ $txtable = "bd_tx_total_log";
+ }
+else
+ {
+ $rxtable = "bd_rx_log";
+ $txtable = "bd_tx_log";
+ }
+
+$sql = "select rx.scale as rxscale, tx.scale as txscale, tx.total+rx.total as total, tx.total as sent,
+rx.total as received, tx.tcp+rx.tcp as tcp, tx.udp+rx.udp as udp,
+tx.icmp+rx.icmp as icmp, tx.http+rx.http as http,
+tx.p2p+rx.p2p as p2p, tx.ftp+rx.ftp as ftp
+from
+
+(SELECT ip, max(total/sample_duration)*8 as scale, sum(total) as total, sum(tcp) as tcp, sum(udp) as udp, sum(icmp) as icmp,
+sum(http) as http, sum(p2p) as p2p, sum(ftp) as ftp
+from sensors, $txtable
+where sensor_name = '$sensor_name'
+and sensors.sensor_id = ".$txtable.".sensor_id
+and ip <<= '$ip'
+group by ip) as tx,
+
+(SELECT ip, max(total/sample_duration)*8 as scale, sum(total) as total, sum(tcp) as tcp, sum(udp) as udp, sum(icmp) as icmp,
+sum(http) as http, sum(p2p) as p2p, sum(ftp) as ftp
+from sensors, $rxtable
+where sensor_name = '$sensor_name'
+and sensors.sensor_id = ".$rxtable.".sensor_id
+and ip <<= '$ip'
+group by ip) as rx
+
+where tx.ip = rx.ip;";
+//echo "</center><pre>$sql</pre><center>";exit(0);
+$result = pg_query($sql);
+echo "<table width=100% border=1 cellspacing=0><tr><td>Ip<td>Name<td>Total<td>Sent<td>Received<td>tcp<td>udp<td>icmp<td>http<td>p2p<td>ftp";
+$r = pg_fetch_array($result);
+echo "<tr><td>";
+if (strpos($ip, "/") === FALSE)
+ echo "$ip<td>".gethostbyaddr($ip);
+else
+ echo "Total<td>$ip";
+echo fmtb($r['total']).fmtb($r['sent']).fmtb($r['received']).
+ fmtb($r['tcp']).fmtb($r['udp']).fmtb($r['icmp']).fmtb($r['http']).
+ fmtb($r['p2p']).fmtb($r['ftp']);
+echo "</table></center>";
+
+echo "<center><h4>Daily</h4></center>";
+echo "Send:<br><img src=graph.php?ip=$ip&sensor_name=".$sensor_name."&table=$txtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
+echo "Receive:<br><img src=graph.php?ip=$ip&sensor_name=".$sensor_name."&table=$rxtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
+
+echo "<center><h4>Weekly</h4></center>";
+echo "Send:<br><img src=graph.php?interval=".INT_WEEKLY."&ip=$ip&sensor_name=$sensor_name&table=$txtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
+echo "Receive:<br><img src=graph.php?interval=".INT_WEEKLY."&ip=$ip&sensor_name=$sensor_name&table=$rxtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
+
+echo "<center><h4>Monthly</h4></center>";
+echo "Send:<br><img src=graph.php?interval=".INT_MONTHLY."&ip=$ip&sensor_name=$sensor_name&table=$txtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
+echo "Receive:<br><img src=graph.php?interval=".INT_MONTHLY."&ip=$ip&sensor_name=$sensor_name&table=$rxtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
+
+echo "<center><h4>Yearly</h4></center>";
+echo "Send:<br><img src=graph.php?interval=".INT_YEARLY."&ip=$ip&sensor_name=$sensor_name&table=$txtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
+echo "Receive:<br><img src=graph.php?interval=".INT_YEARLY."&ip=$ip&sensor_name=$sensor_name&table=$rxtable&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+echo "<img src=legend.gif><br>";
--- /dev/null
+<?php
+echo("Page load completed in ". (time() - $starttime) ." seconds");
+?>
--- /dev/null
+<?php
+require("include.php");
+
+// Returns x location of any given timestamp
+function ts2x($ts)
+ {
+ global $timestamp, $width, $interval;
+ return(($ts-$timestamp)*(($width-XOFFSET) / $interval) + XOFFSET);
+ }
+
+// If we have multiple IP's in a result set we need to total the average of each IP's samples
+function AverageAndAccumulate()
+ {
+ global $Count, $total, $icmp, $udp, $tcp, $ftp, $http, $p2p, $YMax;
+ global $a_total, $a_icmp, $a_udp, $a_tcp, $a_ftp, $a_http, $a_p2p;
+
+ foreach ($Count as $key => $number)
+ {
+ $total[$key] /= $number;
+ $icmp[$key] /= $number;
+ $udp[$key] /= $number;
+ $tcp[$key] /= $number;
+ $ftp[$key] /= $number;
+ $http[$key] /= $number;
+ $p2p[$key] /= $number;
+ }
+
+ foreach ($Count as $key => $number)
+ {
+ $a_total[$key] += $total[$key];
+ $a_icmp[$key] += $icmp[$key];
+ $a_udp[$key] += $udp[$key];
+ $a_tcp[$key] += $tcp[$key];
+ $a_ftp[$key] += $ftp[$key];
+ $a_http[$key] += $http[$key];
+ $a_p2p[$key] += $p2p[$key];
+
+ if ($a_total[$key] > $YMax)
+ $YMax = $a_total[$key];
+ }
+
+ unset($GLOBALS['total'], $GLOBALS['icmp'], $GLOBALS['udp'], $GLOBALS['tcp'], $GLOBALS['ftp'], $GLOBALS['http'], $GLOBALS['p2p'], $GLOBALS['Count']);
+
+ $total = array();
+ $icmp = array();
+ $udp = array();
+ $tcp = array();
+ $ftp = array();
+ $http = array();
+ $p2p = array();
+ $Count = array();
+ }
+
+
+$db = ConnectDb();
+
+// Get parameters
+
+if (isset($_GET['width']))
+ $width = $_GET['width'];
+else
+ $width = DFLT_WIDTH;
+
+if (isset($_GET['height']))
+ $height = $_GET['height'];
+else
+ $height = DFLT_HEIGHT;
+
+if (isset($_GET['interval']))
+ $interval = $_GET['interval'];
+else
+ $interval = DFLT_INTERVAL;
+
+if (isset($_GET['ip']))
+ $ip = $_GET['ip'];
+else
+ exit(1);
+
+if (isset($_GET['sensor_name']))
+ $sensor_name = $_GET['sensor_name'];
+else
+ exit(1);
+
+if (isset($_GET['timestamp']))
+ $timestamp = $_GET['timestamp'];
+else
+ $timestamp = time() - $interval + (0.05*$interval);
+
+if (isset($_GET['table']))
+ $table = $_GET['table'];
+else
+ $table = "bd_rx_log";
+
+if (isset($_GET['yscale']))
+ $yscale = $_GET['yscale'];
+
+$total = array();
+$icmp = array();
+$udp = array();
+$tcp = array();
+$ftp = array();
+$http = array();
+$p2p = array();
+$Count = array();
+
+// Accumulator
+$a_total = array();
+$a_icmp = array();
+$a_udp = array();
+$a_tcp = array();
+$a_ftp = array();
+$a_http = array();
+$a_p2p = array();
+
+$sql = "select *, extract(epoch from timestamp) as ts from sensors, $table where sensors.sensor_id = ".$table.".sensor_id and ip <<= '$ip' and sensor_name = '$sensor_name' and timestamp > $timestamp::abstime and timestamp < ".($timestamp+$interval)."::abstime order by ip;";
+//echo $sql."<br>"; exit(1);
+$result = pg_query($sql);
+
+// The SQL statement pulls the data out of the database ordered by IP address, that way we can average each
+// datapoint for each IP address to provide smoothing and then toss the smoothed value into the accumulator
+// to provide accurate total traffic rate.
+
+while ($row = pg_fetch_array($result))
+ {
+ if ($row['ip'] != $last_ip)
+ {
+ AverageAndAccumulate();
+ $last_ip = $row['ip'];
+ }
+
+ $x = ($row['ts']-$timestamp)*(($width-XOFFSET)/$interval)+XOFFSET;
+ $xint = (int) $x;
+
+ //echo "xint: ".$xint."<br>";
+ $Count[$xint]++;
+
+ if ($row['total']/$row['sample_duration'] > $SentPeak)
+ $SentPeak = $row['total']/$row['sample_duration'];
+ $TotalSent += $row['total'];
+ $total[$xint] += $row['total']/$row['sample_duration'];
+ $icmp[$xint] += $row['icmp']/$row['sample_duration'];
+ $udp[$xint] += $row['udp']/$row['sample_duration'];
+ $tcp[$xint] += $row['tcp']/$row['sample_duration'];
+ $ftp[$xint] += $row['ftp']/$row['sample_duration'];
+ $http[$xint] += $row['http']/$row['sample_duration'];
+ $p2p[$xint] += $row['p2p']/$row['sample_duration'];
+ }
+
+// One more time for the last IP
+AverageAndAccumulate();
+
+// Pull the data out of Accumulator
+$total = $a_total;
+$icmp = $a_icmp;
+$udp = $a_udp;
+$tcp = $a_tcp;
+$ftp = $a_ftp;
+$http = $a_http;
+$p2p = $a_p2p;
+
+$YMax += $YMax*0.05; // Add an extra 5%
+
+// if a y scale was specified override YMax
+if (isset($yscale))
+ $YMax = $yscale/8;
+
+// Plot the data
+
+header("Content-type: image/png");
+
+$im = imagecreate($width, $height);
+$white = imagecolorallocate($im, 255, 255, 255);
+$yellow = ImageColorAllocate($im, 255, 255, 0);
+$purple = ImageColorAllocate($im, 255, 0, 255);
+$green = ImageColorAllocate($im, 0, 255, 0);
+$blue = ImageColorAllocate($im, 0, 0, 255);
+$lblue = ImageColorAllocate($im, 128, 128, 255);
+$brown = ImageColorAllocate($im, 128, 0, 0);
+$red = ImageColorAllocate($im, 255, 0, 0);
+$black = ImageColorAllocate($im, 0, 0, 0);
+
+for($Counter=XOFFSET+1; $Counter < $width; $Counter++)
+ {
+ if (isset($total[$Counter]))
+ {
+ // Convert the bytes/sec to y coords
+ $total[$Counter] = ($total[$Counter]*($height-YOFFSET))/$YMax;
+ $tcp[$Counter] = ($tcp[$Counter]*($height-YOFFSET))/$YMax;
+ $ftp[$Counter] = ($ftp[$Counter]*($height-YOFFSET))/$YMax;
+ $http[$Counter] = ($http[$Counter]*($height-YOFFSET))/$YMax;
+ $p2p[$Counter] = ($p2p[$Counter]*($height-YOFFSET))/$YMax;
+ $udp[$Counter] = ($udp[$Counter]*($height-YOFFSET))/$YMax;
+ $icmp[$Counter] = ($icmp[$Counter]*($height-YOFFSET))/$YMax;
+
+ // Stack 'em up!
+ // Total is stacked from the bottom
+ // Icmp is on the bottom too
+ // Udp is stacked on top of icmp
+ $udp[$Counter] += $icmp[$Counter];
+ // TCP and p2p are stacked on top of Udp
+ $tcp[$Counter] += $udp[$Counter];
+ $p2p[$Counter] += $udp[$Counter];
+ // Http is stacked on top of p2p
+ $http[$Counter] += $p2p[$Counter];
+ // Ftp is stacked on top of http
+ $ftp[$Counter] += $http[$Counter];
+
+ // Plot them!
+ //echo "$Counter:".$Counter." (h-y)-t:".($height-YOFFSET) - $total[$Counter]." h-YO-1:".$height-YOFFSET-1;
+ ImageLine($im, $Counter, ($height-YOFFSET) - $total[$Counter], $Counter, $height-YOFFSET-1, $yellow);
+ ImageLine($im, $Counter, ($height-YOFFSET) - $icmp[$Counter], $Counter, $height-YOFFSET-1, $red);
+ ImageLine($im, $Counter, ($height-YOFFSET) - $udp[$Counter], $Counter, ($height-YOFFSET) - $icmp[$Counter] - 1, $brown);
+ ImageLine($im, $Counter, ($height-YOFFSET) - $tcp[$Counter], $Counter, ($height-YOFFSET) - $udp[$Counter] - 1, $green);
+ ImageLine($im, $Counter, ($height-YOFFSET) - $p2p[$Counter], $Counter, ($height-YOFFSET) - $udp[$Counter] - 1, $purple);
+ ImageLine($im, $Counter, ($height-YOFFSET) - $http[$Counter], $Counter, ($height-YOFFSET) - $p2p[$Counter] - 1, $blue);
+ ImageLine($im, $Counter, ($height-YOFFSET) - $ftp[$Counter], $Counter, ($height-YOFFSET) - $http[$Counter] - 1, $lblue);
+ }
+// else
+// echo $Counter." not set<br>";
+ }
+
+// Margin Text
+if ($SentPeak < 1024/8)
+ $txtPeakSendRate = sprintf("Peak Send Rate: %.1f KBits/sec", $SentPeak*8);
+else if ($SentPeak < (1024*1024)/8)
+ $txtPeakSendRate = sprintf("Peak Send Rate: %.1f MBits/sec", ($SentPeak*8.0)/1024.0);
+else
+ $txtPeakSendRate = sprintf("Peak Send Rate: %.1f GBits/sec", ($SentPeak*8.0)/(1024.0*1024.0));
+
+if ($TotalSent < 1024)
+ $txtTotalSent = sprintf("Sent %.1f KBytes", $TotalSent);
+else if ($TotalSent < 1024*1024)
+ $txtTotalSent = sprintf("Sent %.1f MBytes", $TotalSent/1024.0);
+else
+ $txtTotalSent = sprintf("Sent %.1f GBytes", $TotalSent/(1024.0*1024.0));
+
+ImageString($im, 2, XOFFSET+5, $height-20, $txtTotalSent, $black);
+ImageString($im, 2, $width/2+XOFFSET/2, $height-20, $txtPeakSendRate, $black);
+
+// Draw X Axis
+
+ImageLine($im, 0, $height-YOFFSET, $width, $height-YOFFSET, $black);
+
+// Day/Month Seperator bars
+
+if ((24*60*60*($width-XOFFSET))/$interval > ($width-XOFFSET)/10)
+ {
+ $ts = getdate($timestamp);
+ $MarkTime = mktime(0, 0, 0, $ts['mon'], $ts['mday'], $ts['year']);
+
+ $x = ts2x($MarkTime);
+ while ($x < XOFFSET)
+ {
+ $MarkTime += (24*60*60);
+ $x = ts2x($MarkTime);
+ }
+
+ while ($x < ($width-10))
+ {
+ // Day Lines
+ ImageLine($im, $x, 0, $x, $height-YOFFSET, $black);
+ ImageLine($im, $x+1, 0, $x+1, $height-YOFFSET, $black);
+
+ $txtDate = strftime("%a, %b %d", $MarkTime);
+ ImageString($im, 2, $x-30, $height-YOFFSET+10, $txtDate, $black);
+
+ // Calculate Next x
+ $MarkTime += (24*60*60);
+ $x = ts2x($MarkTime);
+ }
+ }
+else if ((24*60*60*30*($width-XOFFSET))/$interval > ($width-XOFFSET)/10)
+ {
+ // Monthly Bars
+ $ts = getdate($timestamp);
+ $month = $ts['mon'];
+ $MarkTime = mktime(0, 0, 0, $month, 1, $ts['year']);
+
+ $x = ts2x($MarkTime);
+ while ($x < XOFFSET)
+ {
+ $month++;
+ $MarkTime = mktime(0, 0, 0, $month, 1, $ts['year']);
+ $x = ts2x($MarkTime);
+ }
+
+ while ($x < ($width-10))
+ {
+ // Day Lines
+ ImageLine($im, $x, 0, $x, $height-YOFFSET, $black);
+ ImageLine($im, $x+1, 0, $x+1, $height-YOFFSET, $black);
+
+ $txtDate = strftime("%b, %Y", $MarkTime);
+ ImageString($im, 2, $x-25, $height-YOFFSET+10, $txtDate, $black);
+
+ // Calculate Next x
+ $month++;
+ $MarkTime = mktime(0, 0, 0, $month, 1, $ts['year']);
+ $x = ts2x($MarkTime);
+ }
+ }
+else
+ {
+ // Year Bars
+ $ts = getdate($timestamp);
+ $year = $ts['year'];
+ $MarkTime = mktime(0, 0, 0, 1, 1, $year);
+
+ $x = ts2x($MarkTime);
+ while ($x < XOFFSET)
+ {
+ $year++;
+ $MarkTime = mktime(0, 0, 0, 1, 1, $year);
+ $x = ts2x($MarkTime);
+ }
+
+ while ($x < ($width-10))
+ {
+ // Day Lines
+ ImageLine($im, $x, 0, $x, $height-YOFFSET, $black);
+ ImageLine($im, $x+1, 0, $x+1, $height-YOFFSET, $black);
+
+ $txtDate = strftime("%b, %Y", $MarkTime);
+ ImageString($im, 2, $x-25, $height-YOFFSET+10, $txtDate, $black);
+
+ // Calculate Next x
+ $year++;
+ $MarkTime = mktime(0, 0, 0, 1, 1, $year);
+ $x = ts2x($MarkTime);
+ }
+ }
+
+// Draw Major Tick Marks
+if ((6*60*60*($width-XOFFSET))/$interval > 10) // pixels per 6 hours is more than 2
+ $MarkTimeStep = 6*60*60; // Major ticks are 6 hours
+else if ((24*60*60*($width-XOFFSET))/$interval > 10)
+ $MarkTimeStep = 24*60*60; // Major ticks are 24 hours;
+else if ((24*60*60*30*($width-XOFFSET))/$interval > 10)
+ {
+ // Major tick marks are months
+ $MarkTimeStep = 0; // Skip the standard way of drawing major tick marks below
+
+ $ts = getdate($timestamp);
+ $month = $ts['mon'];
+ $MarkTime = mktime(0, 0, 0, $month, 1, $ts['year']);
+
+ $x = ts2x($MarkTime);
+ while ($x < XOFFSET)
+ {
+ $month++;
+ $MarkTime = mktime(0, 0, 0, $month, 1, $ts['year']);
+ $x = ts2x($MarkTime);
+ }
+
+ while ($x < ($width-10))
+ {
+ // Day Lines
+ $date = getdate($MarkTime);
+ if ($date['mon'] != 1)
+ {
+ ImageLine($im, $x, $height-YOFFSET-5, $x, $height-YOFFSET+5, $black);
+ $txtDate = strftime("%b", $MarkTime);
+ ImageString($im, 2, $x-5, $height-YOFFSET+10, $txtDate, $black);
+ }
+
+ // Calculate Next x
+ $month++;
+ $MarkTime = mktime(0, 0, 0, $month, 1, $ts['year']);
+ $x = ts2x($MarkTime);
+ }
+ }
+else
+ $MarkTimeStep = 0; // Skip Major Tick Marks
+
+if ($MarkTimeStep)
+ {
+ $ts = getdate($timestamp);
+ $MarkTime = mktime(0, 0, 0, $ts['mon'], $ts['mday'], $ts['year']);
+ $x = ts2x($MarkTime);
+
+ while ($x < ($width-10))
+ {
+ if ($x > XOFFSET)
+ {
+ ImageLine($im, $x, $height-YOFFSET-5, $x, $height-YOFFSET+5, $black);
+ }
+ $MarkTime += $MarkTimeStep;
+ $x = ts2x($MarkTime);
+ }
+ }
+
+// Draw Minor Tick marks
+if ((60*60*($width-XOFFSET))/$interval > 4) // pixels per hour is more than 2
+ $MarkTimeStep = 60*60; // Minor ticks are 1 hour
+else if ((6*60*60*($width-XOFFSET))/$interval > 4)
+ $MarkTimeStep = 6*60*60; // Minor ticks are 6 hours
+else if ((24*60*60*($width-XOFFSET))/$interval > 4)
+ $MarkTimeStep = 24*60*60;
+else
+ $MarkTimeStep = 0; // Skip minor tick marks
+
+if ($MarkTimeStep)
+ {
+ $ts = getdate($timestamp);
+ $MarkTime = mktime(0, 0, 0, $ts['mon'], $ts['mday'], $ts['year']);
+ $x = ts2x($MarkTime);
+
+ while ($x < ($width-10))
+ {
+ if ($x > XOFFSET)
+ {
+ ImageLine($im, $x, $height-YOFFSET, $x, $height-YOFFSET+5, $black);
+ }
+ $MarkTime += $MarkTimeStep;
+ $x = ts2x($MarkTime);
+ }
+ }
+
+// Draw Y Axis
+ImageLine($im, XOFFSET, 0, XOFFSET, $height, $black);
+
+$YLegend = 'k';
+$Divisor = 1;
+if ($YMax*8 > 1024*2)
+ {
+ $Divisor = 1024; // Display in m
+ $YLegend = 'm';
+ }
+
+if ($YMax*8 > 1024*1024*2)
+ {
+ $Divisor = 1024*1024; // Display in g
+ $YLegend = 'g';
+ }
+
+if ($YMax*8 > 1024*1024*1024*2)
+ {
+ $Divisor = 1024*1024*1024; // Display in t
+ $YLegend = 't';
+ }
+
+$YStep = $YMax/10;
+if ($YStep < 1)
+ $YStep=1;
+$YTic=$YStep;
+
+while ($YTic <= ($YMax - $YMax/10))
+ {
+ $y = ($height-YOFFSET)-(($YTic*($height-YOFFSET))/$YMax);
+ ImageLine($im, XOFFSET, $y, $width, $y, $black);
+ $txtYLegend = sprintf("%4.1f %sbits/s", (8.0*$YTic)/$Divisor, $YLegend);
+ ImageString($im, 2, 3, $y-7, $txtYLegend, $black);
+ $YTic += $YStep;
+ }
+
+imagepng($im);
+imagedestroy($im);
--- /dev/null
+<?php
+define("INT_DAILY", 60*60*24*2);
+define("INT_WEEKLY", 60*60*24*8);
+define("INT_MONTHLY", 60*60*24*35);
+define("INT_YEARLY", 60*60*24*400);
+
+define("XOFFSET", 90);
+define("YOFFSET", 45);
+
+require("config.conf");
+
+function ConnectDb()
+ {
+ global $db_connect_string;
+
+ $db = pg_pconnect($db_connect_string);
+ if (!$db)
+ {
+ printf("DB Error, could not connect to database");
+ exit(1);
+ }
+ return($db);
+ }
+
+function fmtb($kbytes)
+ {
+ $Max = 1024;
+ $Output = $kbytes;
+ $Suffix = 'K';
+
+ if ($Output > $Max)
+ {
+ $Output /= 1024;
+ $Suffix = 'M';
+ }
+
+ if ($Output > $Max)
+ {
+ $Output /= 1024;
+ $Suffix = 'G';
+ }
+
+ if ($Output > $Max)
+ {
+ $Output /= 1024;
+ $Suffix = 'T';
+ }
+
+ return(sprintf("<td align=right><tt>%.1f%s</td>", $Output, $Suffix));
+ }
+
+$starttime = time();
+set_time_limit(300);
+?>
--- /dev/null
+<?php
+include("include.php");
+?>
+<html>
+<center>
+<img src=logo.gif>
+<?php
+// Get variables from url
+
+if (isset($_GET['sensor_name']) && $_GET['sensor_name'] != "none")
+ $sensor_name = $_GET['sensor_name'];
+
+if (isset($_GET['interval']) && $_GET['interval'] != "none")
+ $interval = $_GET['interval'];
+
+if (isset($_GET['timestamp']) && $_GET['timestamp'] != "none")
+ $timestamp = $_GET['timestamp'];
+
+if (isset($_GET['subnet']) && $_GET['subnet'] != "none")
+ $subnet = $_GET['subnet'];
+
+if (isset($_GET['limit']) && $_GET['limit'] != "none")
+ $limit = $_GET['limit'];
+
+
+$db = ConnectDb();
+?>
+<FORM name="navigation" method=get action=<?php echo $PHP_SELF?>>
+<table width=100% cellspacing=0 cellpadding=5 border=1>
+<tr>
+<td><SELECT name="sensor_name">
+
+<OPTION value="none">--Select A Sensor--
+<?php
+$sql = "SELECT sensor_name from sensors order by sensor_name;";
+$result = pg_query($sql);
+while ($r = pg_fetch_array($result))
+ echo "<option value=\"".$r['sensor_name']."\" ".($sensor_name==$r['sensor_name']?"SELECTED":"").">".$r['sensor_name']."\n";
+?>
+</SELECT>
+<td><SELECT name="interval">
+<OPTION value="none">--Select An Interval--
+<OPTION value=<?php echo INT_DAILY?> <?php echo $interval==INT_DAILY?"SELECTED":""?>>Daily
+<OPTION value=<?php echo INT_WEEKLY?> <?php echo $interval==INT_WEEKLY?"SELECTED":""?>>Weekly
+<OPTION value=<?php echo INT_MONTHLY?> <?php echo $interval==INT_MONTHLY?"SELECTED":""?>>Monthly
+<OPTION value=<?php echo INT_YEARLY?> <?php echo $interval==INT_YEARLY?"SELECTED":""?>>Yearly
+<OPTION value=<?php echo 24*60*60?> <?php echo $interval==24*60*60?"SELECTED":""?>>24hrs
+<OPTION value=<?php echo 30*24*60*60?> <?php echo $interval==30*24*60*60?"SELECTED":""?>>30days
+</select>
+
+<td><SELECT name="limit">
+<OPTION value="none">--How Many Results--
+<OPTION value=20 <?php echo $limit==20?"SELECTED":""?>>20
+<OPTION value=50 <?php echo $limit==50?"SELECTED":""?>>50
+<OPTION value=100 <?php echo $limit==100?"SELECTED":""?>>100
+<OPTION value=all <?php echo $limit=="all"?"SELECTED":""?>>All
+</select>
+
+<td>Subnet Filter:<input name=subnet value="<?php echo isset($subnet)?$subnet:"0.0.0.0/0"?>">
+<input type=submit value="Go">
+</table>
+</FORM>
+<?php
+// Set defaults
+if (!isset($interval))
+ $interval = DFLT_INTERVAL;
+
+if (!isset($timestamp))
+ $timestamp = time() - $interval + (0.05*$interval);
+
+if (!isset($limit))
+ $limit = 20;
+
+// Validation
+if (!isset($sensor_name))
+ exit(0);
+
+// Print Title
+
+if (isset($limit))
+ echo "<h2>Top $limit - $sensor_name</h2>";
+else
+ echo "<h2>All Records - $sensor_name</h2>";
+
+// Sqlize the incomming variables
+if (isset($subnet))
+ $sql_subnet = "and ip <<= '$subnet'";
+
+// Sql Statement
+$sql = "select tx.ip, rx.scale as rxscale, tx.scale as txscale, tx.total+rx.total as total, tx.total as sent,
+rx.total as received, tx.tcp+rx.tcp as tcp, tx.udp+rx.udp as udp,
+tx.icmp+rx.icmp as icmp, tx.http+rx.http as http,
+tx.p2p+rx.p2p as p2p, tx.ftp+rx.ftp as ftp
+from
+
+(SELECT ip, max(total/sample_duration)*8 as scale, sum(total) as total, sum(tcp) as tcp, sum(udp) as udp, sum(icmp) as icmp,
+sum(http) as http, sum(p2p) as p2p, sum(ftp) as ftp
+from sensors, bd_tx_log
+where sensor_name = '$sensor_name'
+and sensors.sensor_id = bd_tx_log.sensor_id
+$sql_subnet
+and timestamp > $timestamp::abstime and timestamp < ".($timestamp+$interval)."::abstime
+group by ip) as tx,
+
+(SELECT ip, max(total/sample_duration)*8 as scale, sum(total) as total, sum(tcp) as tcp, sum(udp) as udp, sum(icmp) as icmp,
+sum(http) as http, sum(p2p) as p2p, sum(ftp) as ftp
+from sensors, bd_rx_log
+where sensor_name = '$sensor_name'
+and sensors.sensor_id = bd_rx_log.sensor_id
+$sql_subnet
+and timestamp > $timestamp::abstime and timestamp < ".($timestamp+$interval)."::abstime
+group by ip) as rx
+
+where tx.ip = rx.ip
+order by total desc;";
+
+//echo "</center><pre>$sql</pre><center>"; exit(0);
+pg_query("SET sort_mem TO 30000;");
+$result = pg_query($sql);
+pg_query("set sort_mem to default;");
+
+if ($limit == "all")
+ $limit = pg_num_rows($result);
+
+echo "<table width=100% border=1 cellspacing=0><tr><td>Ip<td>Name<td>Total<td>Sent<td>Received<td>tcp<td>udp<td>icmp<td>http<td>p2p<td>ftp";
+
+if (!isset($subnet)) // Set this now for total graphs
+ $subnet = "0.0.0.0/0";
+
+// Output Total Line
+echo "<TR><TD><a href=Total>Total</a><TD>$subnet";
+foreach (array("total", "sent", "received", "tcp", "udp", "icmp", "http", "p2p", "ftp") as $key)
+ {
+ for($Counter=0, $Total = 0; $Counter < pg_num_rows($result); $Counter++)
+ {
+ $r = pg_fetch_array($result, $Counter);
+ $Total += $r[$key];
+ }
+ echo fmtb($Total);
+ }
+echo "\n";
+
+// Output Other Lines
+for($Counter=0; $Counter < pg_num_rows($result) && $Counter < $limit; $Counter++)
+ {
+ $r = pg_fetch_array($result, $Counter);
+ echo "<tr><td><a href=#".$r['ip'].">";
+ echo $r['ip']."<td>".gethostbyaddr($r['ip']);
+ echo "</a>";
+ echo fmtb($r['total']).fmtb($r['sent']).fmtb($r['received']).
+ fmtb($r['tcp']).fmtb($r['udp']).fmtb($r['icmp']).fmtb($r['http']).
+ fmtb($r['p2p']).fmtb($r['ftp'])."\n";
+ }
+echo "</table></center>";
+
+// Output Total Graph
+for($Counter=0, $Total = 0; $Counter < pg_num_rows($result); $Counter++)
+ {
+ $r = pg_fetch_array($result, $Counter);
+ $scale = max($r['txscale'], $scale);
+ $scale = max($r['rxscale'], $scale);
+ }
+
+if ($subnet == "0.0.0.0/0")
+ $total_table = "bd_tx_total_log";
+else
+ $total_table = "bd_tx_log";
+echo "<a name=Total><h3><a href=details.php?sensor_name=$sensor_name&ip=$subnet>";
+echo "Total - Total of $subnet</h3>";
+echo "</a>";
+echo "Send:<br><img src=graph.php?ip=$subnet&interval=$interval&sensor_name=".$sensor_name."&table=$total_table><br>";
+echo "<img src=legend.gif><br>\n";
+if ($subnet == "0.0.0.0/0")
+ $total_table = "bd_rx_total_log";
+else
+ $total_table = "bd_rx_log";
+echo "Receive:<br><img src=graph.php?ip=$subnet&interval=$interval&sensor_name=".$sensor_name."&table=$total_table><br>";
+echo "<img src=legend.gif><br>\n";
+
+
+// Output Other Graphs
+for($Counter=0; $Counter < pg_num_rows($result) && $Counter < $limit; $Counter++)
+ {
+ $r = pg_fetch_array($result, $Counter);
+ echo "<a name=".$r['ip']."><h3><a href=details.php?sensor_name=$sensor_name&ip=".$r['ip'].">";
+ if ($r['ip'] == "0.0.0.0")
+ echo "Total - Total of all subnets</h3>";
+ else
+ echo $r['ip']." - ".gethostbyaddr($r['ip'])."</h3>";
+ echo "</a>";
+ echo "Send:<br><img src=graph.php?ip=".$r['ip']."&interval=$interval&sensor_name=".$sensor_name."&table=bd_tx_log&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+ echo "<img src=legend.gif><br>\n";
+ echo "Receive:<br><img src=graph.php?ip=".$r['ip']."&interval=$interval&sensor_name=".$sensor_name."&table=bd_rx_log&yscale=".(max($r['txscale'], $r['rxscale']))."><br>";
+ echo "<img src=legend.gif><br>\n";
+ }
+
+include('footer.php');
endef
define Package/coreutils/description
- Full versions of standard GNU utilities. Normally, you would not use this
- package, since the functionality in BusyBox is more than sufficient and
- smaller.
+ Full versions of standard GNU utilities. If an equivalent Busybox applet is
+ available, you should consider compiling that instead as Busybox applets are
+ usually smaller, at the expense of reduced functionality.
endef
define GenPlugin
endef
define Package/$(1)/description
- Full version of standard GNU $(2) utility. Normally, you would not use this
- package, since the functionality in BusyBox is more than sufficient.
+ Full version of standard GNU $(2) utility.
endef
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=klish
-PKG_VERSION:=2.1.1
+PKG_VERSION:=2.1.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=http://libcode.org/attachments/download/61/
+PKG_SOURCE_URL:=http://libcode.org/attachments/download/66/
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENCE
PKG_MAINTAINER:=Takashi Umeno <umeno.takashi@gmail.com>
-PKG_MD5SUM:=4913259794d85585de0f8791c54ac633
+PKG_MD5SUM:=7dfe46d474c02c86946c1d7a461ae549
PKG_INSTALL:=1
# Building qemu-ga alone does not require zlib
CONFIGURE_ARGS+= \
--cross-prefix=$(TARGET_CROSS) \
- --host-cc=$(HOSTCC) \
+ --host-cc="$(HOSTCC)" \
--target-list='' \
--disable-zlib-test \
--enable-guest-agent
PKG_NAME:=relayctl
PKG_VERSION:=0.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/relayctl/relayctl-$(PKG_VERSION)
PKG_LICENSE_FILES:=COPYING
PKG_INSTALL:=1
+PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk