Merge branch 'master' of https://github.com/openwrt/packages
This commit is contained in:
commit
4dbeaacf20
76 changed files with 1812 additions and 303 deletions
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=patch
|
PKG_NAME:=patch
|
||||||
PKG_VERSION:=2.7.4
|
PKG_VERSION:=2.7.5
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@GNU/patch
|
PKG_SOURCE_URL:=@GNU/patch
|
||||||
PKG_MD5SUM:=abc59498fcdddd44e0d07764aa105fd2
|
PKG_MD5SUM:=e3da7940431633fb65a01b91d3b7a27a
|
||||||
PKG_LICENSE:=GPL-3.0+
|
PKG_LICENSE:=GPL-3.0+
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=lua-penlight
|
PKG_NAME:=lua-penlight
|
||||||
PKG_VERSION:=1.3.1
|
PKG_VERSION:=1.3.2
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/Penlight-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/Penlight-$(PKG_VERSION)
|
||||||
PKG_SOURCE:=$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://github.com/stevedonovan/Penlight/archive/
|
PKG_SOURCE_URL:=https://github.com/stevedonovan/Penlight/archive/
|
||||||
|
PKG_MD5SUM:=0315a39834bb6fab07741ec04ede1bf4
|
||||||
PKG_LICENSE:=MIT
|
PKG_LICENSE:=MIT
|
||||||
PKG_LICENSE_FILE:=LICENSE.md
|
PKG_LICENSE_FILE:=LICENSE.md
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=php
|
PKG_NAME:=php
|
||||||
PKG_VERSION:=5.6.6
|
PKG_VERSION:=5.6.7
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
|
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
|
||||||
|
@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=http://www.php.net/distributions/
|
PKG_SOURCE_URL:=http://www.php.net/distributions/
|
||||||
PKG_MD5SUM:=b198117ee1d44c8143e030cee15f1b52
|
PKG_MD5SUM:=2e4b0534d4b8aa9aabedeef12e7c0aa8
|
||||||
|
|
||||||
PKG_FIXUP:=libtool autoreconf
|
PKG_FIXUP:=libtool autoreconf
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
|
@ -33,6 +33,13 @@ define HostPython
|
||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# These configure args are needed in detection of path to Python header files
|
||||||
|
# using autotools.
|
||||||
|
CONFIGURE_ARGS += \
|
||||||
|
_python_sysroot="$(STAGING_DIR)" \
|
||||||
|
_python_prefix="/usr" \
|
||||||
|
_python_exec_prefix="/usr"
|
||||||
|
|
||||||
PKG_USE_MIPS16:=0
|
PKG_USE_MIPS16:=0
|
||||||
# This is required in addition to PKG_USE_MIPS16:=0 because otherwise MIPS16
|
# This is required in addition to PKG_USE_MIPS16:=0 because otherwise MIPS16
|
||||||
# flags are inherited from the Python base package (via sysconfig module)
|
# flags are inherited from the Python base package (via sysconfig module)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2006-2014 OpenWrt.org
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -14,12 +14,12 @@ PYTHON_VERSION:=$(PYTHON3_VERSION)
|
||||||
PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
|
PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
|
||||||
|
|
||||||
PKG_NAME:=python3
|
PKG_NAME:=python3
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
|
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
|
||||||
|
|
||||||
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)
|
PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)
|
||||||
PKG_MD5SUM:=36fc7327c02c6f12fa24fc9ba78039e3
|
PKG_MD5SUM:=7d092d1bba6e17f0d9bd21b49e441dd5
|
||||||
|
|
||||||
PKG_LICENSE:=PSF
|
PKG_LICENSE:=PSF
|
||||||
PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
|
PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
|
||||||
|
@ -57,7 +57,7 @@ endef
|
||||||
define Package/python3-base
|
define Package/python3-base
|
||||||
$(call Package/python3/Default)
|
$(call Package/python3/Default)
|
||||||
TITLE:=Python $(PYTHON_VERSION) interpreter
|
TITLE:=Python $(PYTHON_VERSION) interpreter
|
||||||
DEPENDS:=+libpthread +zlib +libffi +libopenssl
|
DEPENDS:=+libpthread +zlib
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/python3-base/description
|
define Package/python3-base/description
|
||||||
|
@ -65,13 +65,45 @@ define Package/python3-base/description
|
||||||
for the interpreter to start.
|
for the interpreter to start.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/python3-light
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON_VERSION) light installation
|
||||||
|
DEPENDS:=+python3-base +libffi +libbz2
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/python3-light/description
|
||||||
|
This package is essentially the python3-base package plus
|
||||||
|
a few of the rarely used (and big) libraries stripped out
|
||||||
|
into separate packages.
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Define newline here, since it's not defined in OpenWRT
|
||||||
|
define newline
|
||||||
|
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
PYTHON3_LIB_FILES_DEL:=
|
||||||
|
PYTHON3_PACKAGES:=
|
||||||
|
PYTHON3_SO_SUFFIX:=cpython-34.so
|
||||||
|
define Py3BasePackage
|
||||||
|
PYTHON3_PACKAGES+=$(1)
|
||||||
|
PYTHON3_LIB_FILES_DEL+=$(2)
|
||||||
|
define Py3Package/$(1)/filespec
|
||||||
|
$(subst $(space),$(newline),$(foreach lib_file,$(2),+|$(lib_file)))
|
||||||
|
endef
|
||||||
|
endef
|
||||||
|
|
||||||
|
include ./files/python3-package-*.mk
|
||||||
|
|
||||||
define Package/python3
|
define Package/python3
|
||||||
$(call Package/python3/Default)
|
$(call Package/python3/Default)
|
||||||
DEPENDS:=+python3-base +libncursesw +libbz2 +libgdbm +libsqlite3 +libdb47
|
DEPENDS:=+python3-light $(foreach package,$(PYTHON3_PACKAGES),+$(package))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/python3/description
|
define Package/python3/description
|
||||||
This package contains the (almost) full Python install.
|
This package contains the (almost) full Python install.
|
||||||
|
It's python3-light + all other packages.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
MAKE_FLAGS+=\
|
MAKE_FLAGS+=\
|
||||||
|
@ -123,29 +155,35 @@ define Build/InstallDev
|
||||||
$(1)/usr/lib/python$(PYTHON_VERSION)/
|
$(1)/usr/lib/python$(PYTHON_VERSION)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
PYTHON3_BASE_LIB_FILES:= \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/encodings \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/_collections_abc.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/_sitebuiltins.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/_sysconfigdata.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/_weakrefset.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/abc.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/codecs.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/genericpath.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/io.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/os.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/posixpath.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/site.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/sysconfig.py \
|
||||||
|
/usr/lib/python$(PYTHON_VERSION)/stat.py
|
||||||
|
|
||||||
|
PYTHON3_LIB_FILES_DEL+=$(PYTHON3_BASE_LIB_FILES)
|
||||||
|
|
||||||
define Py3Package/python3-base/filespec
|
define Py3Package/python3-base/filespec
|
||||||
+|/usr/bin/python$(PYTHON_VERSION)
|
+|/usr/bin/python$(PYTHON_VERSION)
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/encodings
|
$(subst $(space),$(newline),$(foreach lib_file,$(PYTHON3_BASE_LIB_FILES),+|$(lib_file)))
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/_collections_abc.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/_sitebuiltins.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/_sysconfigdata.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/_weakrefset.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/abc.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/codecs.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/genericpath.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/io.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/os.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/site.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/sysconfig.py
|
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)/stat.py
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Py3Package/python3/filespec
|
define Py3Package/python3-light/filespec
|
||||||
+|/usr/lib/python$(PYTHON_VERSION)
|
+|/usr/lib/python$(PYTHON_VERSION)
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION)
|
-|/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION)
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/distutils/cygwinccompiler.py
|
-|/usr/lib/python$(PYTHON_VERSION)/distutils/cygwinccompiler.py
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst*
|
-|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst*
|
||||||
|
-|/usr/lib/python$(PYTHON_VERSION)/ensurepip
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/idlelib
|
-|/usr/lib/python$(PYTHON_VERSION)/idlelib
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/lib2to3
|
-|/usr/lib/python$(PYTHON_VERSION)/lib2to3
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/tkinter
|
-|/usr/lib/python$(PYTHON_VERSION)/tkinter
|
||||||
|
@ -157,6 +195,8 @@ define Py3Package/python3/filespec
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/webbrowser.py
|
-|/usr/lib/python$(PYTHON_VERSION)/webbrowser.py
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/*/test
|
-|/usr/lib/python$(PYTHON_VERSION)/*/test
|
||||||
-|/usr/lib/python$(PYTHON_VERSION)/*/tests
|
-|/usr/lib/python$(PYTHON_VERSION)/*/tests
|
||||||
|
-|/usr/lib/python$(PYTHON_VERSION)/_osx_support.py
|
||||||
|
$(subst $(space),$(newline),$(foreach lib_file,$(PYTHON3_LIB_FILES_DEL),-|$(lib_file)))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Py3Package/python3-base/install
|
define Py3Package/python3-base/install
|
||||||
|
@ -167,6 +207,14 @@ define Py3Package/python3-base/install
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON_VERSION).so* $(1)/usr/lib/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON_VERSION).so* $(1)/usr/lib/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Py3Package/python3/filespec
|
||||||
|
-|$(PYTHON3_PKG_DIR)
|
||||||
|
endef
|
||||||
|
|
||||||
|
HOST_CFLAGS+= \
|
||||||
|
-I/usr/include/ncursesw \
|
||||||
|
-I/usr/include/ncurses
|
||||||
|
|
||||||
HOST_CONFIGURE_ARGS+= \
|
HOST_CONFIGURE_ARGS+= \
|
||||||
--without-cxx-main \
|
--without-cxx-main \
|
||||||
--without-pymalloc \
|
--without-pymalloc \
|
||||||
|
@ -174,7 +222,7 @@ HOST_CONFIGURE_ARGS+= \
|
||||||
--prefix=$(STAGING_DIR_HOST) \
|
--prefix=$(STAGING_DIR_HOST) \
|
||||||
--with-ensurepip=upgrade \
|
--with-ensurepip=upgrade \
|
||||||
CONFIG_SITE= \
|
CONFIG_SITE= \
|
||||||
OPT="$(HOST_CFLAGS)"
|
CFLAGS="$(HOST_CFLAGS)"
|
||||||
|
|
||||||
define Host/Compile
|
define Host/Compile
|
||||||
+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) python Parser/pgen
|
+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) python Parser/pgen
|
||||||
|
@ -189,8 +237,15 @@ endef
|
||||||
|
|
||||||
$(eval $(call HostBuild))
|
$(eval $(call HostBuild))
|
||||||
|
|
||||||
|
$(foreach package, $(PYTHON3_PACKAGES), \
|
||||||
|
$(eval $(call Py3Package,$(package))) \
|
||||||
|
$(eval $(call BuildPackage,$(package))) \
|
||||||
|
)
|
||||||
|
|
||||||
$(eval $(call Py3Package,python3-base))
|
$(eval $(call Py3Package,python3-base))
|
||||||
|
$(eval $(call Py3Package,python3-light))
|
||||||
$(eval $(call Py3Package,python3))
|
$(eval $(call Py3Package,python3))
|
||||||
|
|
||||||
$(eval $(call BuildPackage,python3-base))
|
$(eval $(call BuildPackage,python3-base))
|
||||||
|
$(eval $(call BuildPackage,python3-light))
|
||||||
$(eval $(call BuildPackage,python3))
|
$(eval $(call BuildPackage,python3))
|
||||||
|
|
16
lang/python3/files/python3-package-asyncio.mk
Normal file
16
lang/python3/files/python3-package-asyncio.mk
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-asyncio
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) asyncio module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-asyncio, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/asyncio \
|
||||||
|
))
|
22
lang/python3/files/python3-package-codecs.mk
Normal file
22
lang/python3/files/python3-package-codecs.mk
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-codecs
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) codecs + unicode support
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-codecs, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_cn.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_hk.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_iso2022.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_jp.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_kr.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_codecs_tw.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/unicodedata.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
18
lang/python3/files/python3-package-ctypes.mk
Normal file
18
lang/python3/files/python3-package-ctypes.mk
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-ctypes
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) ctypes module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-ctypes, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/ctypes \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ctypes.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ctypes_test.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
17
lang/python3/files/python3-package-dbm.mk
Normal file
17
lang/python3/files/python3-package-dbm.mk
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-dbm
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) dbm module
|
||||||
|
DEPENDS:=+python3-light +libdb47
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-dbm, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/dbm \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_dbm.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
17
lang/python3/files/python3-package-decimal.mk
Normal file
17
lang/python3/files/python3-package-decimal.mk
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-decimal
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) decimal module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-decimal, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/decimal.py \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_decimal.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
16
lang/python3/files/python3-package-distutils.mk
Normal file
16
lang/python3/files/python3-package-distutils.mk
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-distutils
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) distutils module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-distutils, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/distutils \
|
||||||
|
))
|
16
lang/python3/files/python3-package-email.mk
Normal file
16
lang/python3/files/python3-package-email.mk
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-email
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) email module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-email, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/email \
|
||||||
|
))
|
16
lang/python3/files/python3-package-gdbm.mk
Normal file
16
lang/python3/files/python3-package-gdbm.mk
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-gdbm
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) gdbm module
|
||||||
|
DEPENDS:=+python3-light +libgdbm
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-gdbm, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_gdbm.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
16
lang/python3/files/python3-package-logging.mk
Normal file
16
lang/python3/files/python3-package-logging.mk
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-logging
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) logging module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-logging, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/logging \
|
||||||
|
))
|
17
lang/python3/files/python3-package-multiprocessing.mk
Normal file
17
lang/python3/files/python3-package-multiprocessing.mk
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-multiprocessing
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) multiprocessing
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-multiprocessing, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/multiprocessing \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_multiprocessing.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
18
lang/python3/files/python3-package-ncurses.mk
Normal file
18
lang/python3/files/python3-package-ncurses.mk
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-ncurses
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) ncurses module
|
||||||
|
DEPENDS:=+python3-light +libncursesw
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-ncurses, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/curses \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_curses.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_curses_panel.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
17
lang/python3/files/python3-package-openssl.mk
Normal file
17
lang/python3/files/python3-package-openssl.mk
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-openssl
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) SSL module
|
||||||
|
DEPENDS:=+python3-light +libopenssl
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-openssl, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_hashlib.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_ssl.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
18
lang/python3/files/python3-package-pydoc.mk
Normal file
18
lang/python3/files/python3-package-pydoc.mk
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-pydoc
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) pydoc module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-pydoc, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/doctest.py \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/pydoc.py \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/pydoc_data \
|
||||||
|
))
|
17
lang/python3/files/python3-package-sqlite3.mk
Normal file
17
lang/python3/files/python3-package-sqlite3.mk
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-sqlite3
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) sqlite3 module
|
||||||
|
DEPENDS:=+python3-light +libsqlite3
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-sqlite3, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_sqlite3.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/sqlite3 \
|
||||||
|
))
|
16
lang/python3/files/python3-package-unittest.mk
Normal file
16
lang/python3/files/python3-package-unittest.mk
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-unittest
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) unittest module
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-unittest, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/unittest \
|
||||||
|
))
|
19
lang/python3/files/python3-package-xml.mk
Normal file
19
lang/python3/files/python3-package-xml.mk
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
define Package/python3-xml
|
||||||
|
$(call Package/python3/Default)
|
||||||
|
TITLE:=Python $(PYTHON3_VERSION) xml libs
|
||||||
|
DEPENDS:=+python3-light
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call Py3BasePackage,python3-xml, \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/xml \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/xmlrpc \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/_elementtree.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
/usr/lib/python$(PYTHON3_VERSION)/lib-dynload/pyexpat.$(PYTHON3_SO_SUFFIX) \
|
||||||
|
))
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
PYTHON3_VERSION:=3.4
|
PYTHON3_VERSION:=3.4
|
||||||
PYTHON3_VERSION_MICRO:=2
|
PYTHON3_VERSION_MICRO:=3
|
||||||
|
|
||||||
PYTHON3_DIR:=$(STAGING_DIR)/usr
|
PYTHON3_DIR:=$(STAGING_DIR)/usr
|
||||||
PYTHON3_BIN_DIR:=$(PYTHON3_DIR)/bin
|
PYTHON3_BIN_DIR:=$(PYTHON3_DIR)/bin
|
||||||
|
|
31
lang/python3/patches/005-fix-libffi-x86-64-configure.patch
Normal file
31
lang/python3/patches/005-fix-libffi-x86-64-configure.patch
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
diff --git a/Modules/_ctypes/libffi/configure b/Modules/_ctypes/libffi/configure
|
||||||
|
index 75f62a7..4d6c9f2 100755
|
||||||
|
--- a/Modules/_ctypes/libffi/configure
|
||||||
|
+++ b/Modules/_ctypes/libffi/configure
|
||||||
|
@@ -17257,20 +17257,12 @@ case "$host" in
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
- i?86-*-* | x86_64-*-*)
|
||||||
|
- TARGETDIR=x86
|
||||||
|
- if test $ac_cv_sizeof_size_t = 4; then
|
||||||
|
- case "$host" in
|
||||||
|
- *-gnux32)
|
||||||
|
- TARGET=X86_64
|
||||||
|
- ;;
|
||||||
|
- *)
|
||||||
|
- TARGET=X86
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
- else
|
||||||
|
- TARGET=X86_64;
|
||||||
|
- fi
|
||||||
|
+ i?86-*-*)
|
||||||
|
+ TARGET=X86; TARGETDIR=x86
|
||||||
|
+ ;;
|
||||||
|
+
|
||||||
|
+ x86_64-*-*)
|
||||||
|
+ TARGET=X86_64; TARGETDIR=x86
|
||||||
|
;;
|
||||||
|
|
||||||
|
ia64*-*-*)
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 7868b7b..9ae0ef2 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -444,7 +444,6 @@ class PyBuildExt(build_ext):
|
||||||
|
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||||
|
if cross_compiling:
|
||||||
|
self.add_gcc_paths()
|
||||||
|
- self.add_multiarch_paths()
|
||||||
|
|
||||||
|
# Add paths specified in the environment variables LDFLAGS and
|
||||||
|
# CPPFLAGS for header and library files.
|
10
lang/python3/patches/007-distutils-do-not-adjust-path.patch
Normal file
10
lang/python3/patches/007-distutils-do-not-adjust-path.patch
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- a/Lib/distutils/command/build_scripts.py
|
||||||
|
+++ b/Lib/distutils/command/build_scripts.py
|
||||||
|
@@ -89,6 +89,7 @@ class build_scripts (Command):
|
||||||
|
adjust = 1
|
||||||
|
post_interp = match.group(1) or ''
|
||||||
|
|
||||||
|
+ adjust = 0
|
||||||
|
if adjust:
|
||||||
|
log.info("copying and adjusting %s -> %s", script,
|
||||||
|
self.build_dir)
|
|
@ -0,0 +1,15 @@
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 7868b7b..544fa7e 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -452,8 +452,9 @@ class PyBuildExt(build_ext):
|
||||||
|
# directly since an inconsistently reproducible issue comes up where
|
||||||
|
# the environment variable is not set even though the value were passed
|
||||||
|
# into configure and stored in the Makefile (issue found on OS X 10.3).
|
||||||
|
+ rt_lib_dirs = [] if cross_compiling else self.compiler.runtime_library_dirs
|
||||||
|
for env_var, arg_name, dir_list in (
|
||||||
|
- ('LDFLAGS', '-R', self.compiler.runtime_library_dirs),
|
||||||
|
+ ('LDFLAGS', '-R', rt_lib_dirs),
|
||||||
|
('LDFLAGS', '-L', self.compiler.library_dirs),
|
||||||
|
('CPPFLAGS', '-I', self.compiler.include_dirs)):
|
||||||
|
env_val = sysconfig.get_config_var(env_var)
|
|
@ -56,7 +56,7 @@ define Package/libavahi/Default
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
PROVIDES:=libavahi
|
PROVIDES:=libavahi
|
||||||
DEPENDS:=+libpthread +SSP_SUPPORT:libssp
|
DEPENDS:=+libpthread
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libavahi/description
|
define Package/libavahi/description
|
||||||
|
@ -155,7 +155,7 @@ endef
|
||||||
define Package/avahi-dnsconfd
|
define Package/avahi-dnsconfd
|
||||||
$(call Package/avahi/Default)
|
$(call Package/avahi/Default)
|
||||||
SUBMENU:=IP Addresses and Names
|
SUBMENU:=IP Addresses and Names
|
||||||
DEPENDS:=+libavahi +libdaemon +libpthread +SSP_SUPPORT:libssp
|
DEPENDS:=+libavahi +libdaemon +libpthread
|
||||||
TITLE:=A Unicast DNS server using avahi-daemon
|
TITLE:=A Unicast DNS server using avahi-daemon
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=libtasn1
|
PKG_NAME:=libtasn1
|
||||||
PKG_VERSION:=4.2
|
PKG_VERSION:=4.3
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=ftp://ftp.gnu.org/gnu/libtasn1
|
PKG_SOURCE_URL:=ftp://ftp.gnu.org/gnu/libtasn1
|
||||||
PKG_MD5SUM:=414df906df421dee0a5cf7548788d153
|
PKG_MD5SUM:=67e98988f966a34fbf1b82d33eef9e7e
|
||||||
|
|
||||||
#PKG_FIXUP:=autoreconf
|
#PKG_FIXUP:=autoreconf
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
|
|
|
@ -35,7 +35,10 @@ define Package/bogofilter/description
|
||||||
Bogofilter is a fast Bayesian spam filter
|
Bogofilter is a fast Bayesian spam filter
|
||||||
endef
|
endef
|
||||||
|
|
||||||
CONFIGURE_ARGS += --disable-unicode
|
CONFIGURE_ARGS += \
|
||||||
|
--disable-unicode \
|
||||||
|
--with-libdb-prefix=$(STAGING_DIR) \
|
||||||
|
--with-included-gsl
|
||||||
|
|
||||||
define Package/bogofilter/install
|
define Package/bogofilter/install
|
||||||
$(INSTALL_DIR) $(1)/etc/ \
|
$(INSTALL_DIR) $(1)/etc/ \
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=dmapd
|
PKG_NAME:=dmapd
|
||||||
PKG_VERSION:=0.0.70
|
PKG_VERSION:=0.0.71
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
|
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
|
||||||
|
@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://www.flyn.org/projects/dmapd
|
PKG_SOURCE_URL:=http://www.flyn.org/projects/dmapd
|
||||||
PKG_MD5SUM:=f503bf95f79b5c1f9418cccf26203952
|
PKG_MD5SUM:=cee310509e39db782110267edac4fe9a
|
||||||
|
|
||||||
PKG_FIXUP:=autoreconf
|
PKG_FIXUP:=autoreconf
|
||||||
PKG_INSTALL:=2
|
PKG_INSTALL:=2
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2009-2014 OpenWrt.org
|
# Copyright (C) 2009-2015 OpenWrt.org
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -8,19 +8,20 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=git
|
PKG_NAME:=git
|
||||||
PKG_VERSION:=2.3.0
|
PKG_VERSION:=2.3.3
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/software/scm/git/
|
PKG_SOURCE_URL:=@KERNEL/software/scm/git/
|
||||||
PKG_MD5SUM:=e5880760d1f43f4f49b3bf94b9046eee
|
PKG_MD5SUM:=14a885da3b432455b606cc1a25a6c681
|
||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
PKG_FIXUP:=autoreconf
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Package/git
|
define Package/git/Default
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
SUBMENU:=Version Control Systems
|
SUBMENU:=Version Control Systems
|
||||||
|
@ -30,18 +31,35 @@ define Package/git
|
||||||
MAINTAINER:=Peter Wagner <tripolar@gmx.at>
|
MAINTAINER:=Peter Wagner <tripolar@gmx.at>
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/git
|
||||||
|
$(call Package/git/Default)
|
||||||
|
DEPENDS:=+libopenssl +libpthread +librt
|
||||||
|
TITLE:=The fast version control system
|
||||||
|
endef
|
||||||
|
|
||||||
define Package/git/description
|
define Package/git/description
|
||||||
Git is a free & open source, distributed version control system
|
Git is a free & open source, distributed version control system
|
||||||
designed to handle everything from small to very large projects
|
designed to handle everything from small to very large projects
|
||||||
with speed and efficiency.
|
with speed and efficiency.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Package/git-http
|
||||||
|
$(call Package/git/Default)
|
||||||
|
DEPENDS:=git +libcurl +ca-certificates
|
||||||
|
TITLE:=Git HTTP commands
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/git-http/description
|
||||||
|
$(call Package/git/description)
|
||||||
|
|
||||||
|
This package allows git push/fetch over http(s) and ftp(s)
|
||||||
|
endef
|
||||||
|
|
||||||
MAKE_FLAGS := \
|
MAKE_FLAGS := \
|
||||||
CC="$(TARGET_CC)" \
|
CC="$(TARGET_CC)" \
|
||||||
CFLAGS="$(TARGET_CFLAGS)" \
|
CFLAGS="$(TARGET_CFLAGS)" \
|
||||||
CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
||||||
LDFLAGS="$(TARGET_LDFLAGS)" \
|
LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||||
NO_CURL="YesPlease" \
|
|
||||||
NO_EXPAT="YesPlease" \
|
NO_EXPAT="YesPlease" \
|
||||||
NO_MKSTEMPS="YesPlease" \
|
NO_MKSTEMPS="YesPlease" \
|
||||||
NO_GETTEXT="YesPlease" \
|
NO_GETTEXT="YesPlease" \
|
||||||
|
@ -51,21 +69,46 @@ MAKE_FLAGS := \
|
||||||
NO_NSEC="YesPlease" \
|
NO_NSEC="YesPlease" \
|
||||||
NO_PERL="YesPlease" \
|
NO_PERL="YesPlease" \
|
||||||
NO_PYTHON="YesPlease" \
|
NO_PYTHON="YesPlease" \
|
||||||
NO_TCLTK="YesPlease"
|
NO_TCLTK="YesPlease" \
|
||||||
|
NO_INSTALL_HARDLINKS="yes" \
|
||||||
|
|
||||||
|
CONFIGURE_ARGS += \
|
||||||
|
--without-iconv \
|
||||||
|
|
||||||
define Build/Configure
|
define Build/Configure
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||||
configure
|
configure
|
||||||
|
|
||||||
( cd $(PKG_BUILD_DIR); \
|
$(call Build/Configure/Default,)
|
||||||
./configure --prefix=/usr \
|
|
||||||
);
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/git/install
|
define Package/git/install
|
||||||
$(INSTALL_DIR) $(1)
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/git $(1)/usr/bin
|
||||||
$(RM) $(PKG_INSTALL_DIR)/usr/bin/git-cvsserver
|
$(RM) $(PKG_INSTALL_DIR)/usr/bin/git-cvsserver
|
||||||
$(CP) $(PKG_INSTALL_DIR)/* $(1)/
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/git-* $(1)/usr/bin
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/git-core
|
||||||
|
( cd $(PKG_INSTALL_DIR); $(TAR) \
|
||||||
|
--exclude=usr/lib/git-core/git-http-backend \
|
||||||
|
--exclude=usr/lib/git-core/git-http-fetch \
|
||||||
|
--exclude=usr/lib/git-core/git-remote-ftp \
|
||||||
|
--exclude=usr/lib/git-core/git-remote-ftps \
|
||||||
|
--exclude=usr/lib/git-core/git-remote-http \
|
||||||
|
--exclude=usr/lib/git-core/git-remote-https \
|
||||||
|
-cf - \
|
||||||
|
usr/lib/git-core \
|
||||||
|
) | ( cd $(1); $(TAR) -xf - )
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/git-http/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/git-core
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-http-backend $(1)/usr/lib/git-core
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-http-fetch $(1)/usr/lib/git-core
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-ftp $(1)/usr/lib/git-core
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-ftps $(1)/usr/lib/git-core
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-http $(1)/usr/lib/git-core
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/git-core/git-remote-https $(1)/usr/lib/git-core
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,git))
|
$(eval $(call BuildPackage,git))
|
||||||
|
$(eval $(call BuildPackage,git-http))
|
||||||
|
|
|
@ -7,31 +7,29 @@
|
||||||
-PROGRAM_OBJS += credential-store.o
|
-PROGRAM_OBJS += credential-store.o
|
||||||
-PROGRAM_OBJS += daemon.o
|
-PROGRAM_OBJS += daemon.o
|
||||||
-PROGRAM_OBJS += fast-import.o
|
-PROGRAM_OBJS += fast-import.o
|
||||||
-PROGRAM_OBJS += http-backend.o
|
PROGRAM_OBJS += http-backend.o
|
||||||
-PROGRAM_OBJS += imap-send.o
|
-PROGRAM_OBJS += imap-send.o
|
||||||
-PROGRAM_OBJS += sh-i18n--envsubst.o
|
-PROGRAM_OBJS += sh-i18n--envsubst.o
|
||||||
-PROGRAM_OBJS += shell.o
|
-PROGRAM_OBJS += shell.o
|
||||||
-PROGRAM_OBJS += show-index.o
|
-PROGRAM_OBJS += show-index.o
|
||||||
-PROGRAM_OBJS += upload-pack.o
|
-PROGRAM_OBJS += upload-pack.o
|
||||||
-PROGRAM_OBJS += remote-testsvn.o
|
-PROGRAM_OBJS += remote-testsvn.o
|
||||||
+PROGRAM_OBJS =
|
|
||||||
|
|
||||||
# Binary suffix, set to .exe for Windows builds
|
# Binary suffix, set to .exe for Windows builds
|
||||||
X =
|
X =
|
||||||
@@ -896,6 +887,12 @@ BUILTIN_OBJS += builtin/verify-commit.o
|
@@ -896,6 +887,11 @@ BUILTIN_OBJS += builtin/verify-commit.o
|
||||||
BUILTIN_OBJS += builtin/verify-pack.o
|
BUILTIN_OBJS += builtin/verify-pack.o
|
||||||
BUILTIN_OBJS += builtin/verify-tag.o
|
BUILTIN_OBJS += builtin/verify-tag.o
|
||||||
BUILTIN_OBJS += builtin/write-tree.o
|
BUILTIN_OBJS += builtin/write-tree.o
|
||||||
+BUILTIN_OBJS += builtin/daemon.o
|
+BUILTIN_OBJS += builtin/daemon.o
|
||||||
+BUILTIN_OBJS += builtin/fast-import.o
|
+BUILTIN_OBJS += builtin/fast-import.o
|
||||||
+BUILTIN_OBJS += builtin/http-backend.o
|
|
||||||
+BUILTIN_OBJS += builtin/imap-send.o
|
+BUILTIN_OBJS += builtin/imap-send.o
|
||||||
+BUILTIN_OBJS += builtin/shell.o
|
+BUILTIN_OBJS += builtin/shell.o
|
||||||
+BUILTIN_OBJS += builtin/upload-pack.o
|
+BUILTIN_OBJS += builtin/upload-pack.o
|
||||||
|
|
||||||
GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
|
GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
|
||||||
EXTLIBS =
|
EXTLIBS =
|
||||||
@@ -1070,7 +1067,7 @@ endif
|
@@ -1070,7 +1066,7 @@ endif
|
||||||
EXTLIBS += -lz
|
EXTLIBS += -lz
|
||||||
|
|
||||||
ifndef NO_OPENSSL
|
ifndef NO_OPENSSL
|
||||||
|
@ -40,7 +38,7 @@
|
||||||
ifdef OPENSSLDIR
|
ifdef OPENSSLDIR
|
||||||
BASIC_CFLAGS += -I$(OPENSSLDIR)/include
|
BASIC_CFLAGS += -I$(OPENSSLDIR)/include
|
||||||
OPENSSL_LINK = -L$(OPENSSLDIR)/$(lib) $(CC_LD_DYNPATH)$(OPENSSLDIR)/$(lib)
|
OPENSSL_LINK = -L$(OPENSSLDIR)/$(lib) $(CC_LD_DYNPATH)$(OPENSSLDIR)/$(lib)
|
||||||
@@ -1933,10 +1930,6 @@ endif
|
@@ -1933,10 +1929,6 @@ endif
|
||||||
git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
|
git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
|
||||||
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
|
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
|
||||||
|
|
||||||
|
@ -51,7 +49,7 @@
|
||||||
git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)
|
git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)
|
||||||
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
|
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
|
||||||
$(LIBS) $(CURL_LIBCURL)
|
$(LIBS) $(CURL_LIBCURL)
|
||||||
@@ -2254,24 +2247,22 @@ endif
|
@@ -2254,10 +2246,11 @@ endif
|
||||||
bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
|
bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
|
||||||
execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
|
execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
|
||||||
{ test "$$bindir/" = "$$execdir/" || \
|
{ test "$$bindir/" = "$$execdir/" || \
|
||||||
|
@ -59,34 +57,19 @@
|
||||||
+ for p in $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \
|
+ for p in $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \
|
||||||
$(RM) "$$execdir/$$p" && \
|
$(RM) "$$execdir/$$p" && \
|
||||||
test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
|
test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
|
||||||
- ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
|
ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \
|
||||||
+ ln -s git "$$execdir/$$p" 2>/dev/null || \
|
+ ln -s git "$$execdir/$$p" 2>/dev/null || \
|
||||||
cp "$$bindir/$$p" "$$execdir/$$p" || exit; \
|
cp "$$bindir/$$p" "$$execdir/$$p" || exit; \
|
||||||
done; \
|
done; \
|
||||||
} && \
|
} && \
|
||||||
for p in $(filter $(install_bindir_programs),$(BUILT_INS)); do \
|
|
||||||
$(RM) "$$bindir/$$p" && \
|
|
||||||
test -z "$(NO_INSTALL_HARDLINKS)" && \
|
|
||||||
- ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \
|
|
||||||
ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \
|
|
||||||
cp "$$bindir/git$X" "$$bindir/$$p" || exit; \
|
|
||||||
done && \
|
|
||||||
for p in $(BUILT_INS); do \
|
|
||||||
$(RM) "$$execdir/$$p" && \
|
|
||||||
test -z "$(NO_INSTALL_HARDLINKS)" && \
|
|
||||||
- ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \
|
|
||||||
ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
|
|
||||||
cp "$$execdir/git$X" "$$execdir/$$p" || exit; \
|
|
||||||
done && \
|
|
||||||
--- a/builtin.h
|
--- a/builtin.h
|
||||||
+++ b/builtin.h
|
+++ b/builtin.h
|
||||||
@@ -138,5 +138,11 @@ extern int cmd_verify_pack(int argc, con
|
@@ -138,5 +138,10 @@ extern int cmd_verify_pack(int argc, con
|
||||||
extern int cmd_show_ref(int argc, const char **argv, const char *prefix);
|
extern int cmd_show_ref(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_pack_refs(int argc, const char **argv, const char *prefix);
|
extern int cmd_pack_refs(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_replace(int argc, const char **argv, const char *prefix);
|
extern int cmd_replace(int argc, const char **argv, const char *prefix);
|
||||||
+extern int cmd_daemon(int argc, char **argv, const char *prefix);
|
+extern int cmd_daemon(int argc, char **argv, const char *prefix);
|
||||||
+extern int cmd_fast_import(int argc, char **argv, const char *prefix);
|
+extern int cmd_fast_import(int argc, char **argv, const char *prefix);
|
||||||
+extern int cmd_http_backend(int argc, char **argv, const char *prefix);
|
|
||||||
+extern int cmd_imap_send(int argc, char **argv, const char *prefix);
|
+extern int cmd_imap_send(int argc, char **argv, const char *prefix);
|
||||||
+extern int cmd_shell(int argc, char **argv, const char *prefix);
|
+extern int cmd_shell(int argc, char **argv, const char *prefix);
|
||||||
+extern int cmd_upload_pack(int argc, char **argv, const char *prefix);
|
+extern int cmd_upload_pack(int argc, char **argv, const char *prefix);
|
||||||
|
@ -101,10 +84,6 @@
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+#include "../fast-import.c"
|
+#include "../fast-import.c"
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/builtin/http-backend.c
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+#include "../http-backend.c"
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/builtin/imap-send.c
|
+++ b/builtin/imap-send.c
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+#include "../imap-send.c"
|
+#include "../imap-send.c"
|
||||||
|
@ -118,7 +97,7 @@
|
||||||
+#include "../upload-pack.c"
|
+#include "../upload-pack.c"
|
||||||
--- a/daemon.c
|
--- a/daemon.c
|
||||||
+++ b/daemon.c
|
+++ b/daemon.c
|
||||||
@@ -1096,7 +1096,7 @@ static int serve(struct string_list *lis
|
@@ -1193,7 +1193,7 @@ static int serve(struct string_list *lis
|
||||||
return service_loop(&socklist);
|
return service_loop(&socklist);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +106,7 @@
|
||||||
{
|
{
|
||||||
int listen_port = 0;
|
int listen_port = 0;
|
||||||
struct string_list listen_addr = STRING_LIST_INIT_NODUP;
|
struct string_list listen_addr = STRING_LIST_INIT_NODUP;
|
||||||
@@ -1292,12 +1292,13 @@ int main(int argc, char **argv)
|
@@ -1389,12 +1389,13 @@ int main(int argc, char **argv)
|
||||||
store_pid(pid_file);
|
store_pid(pid_file);
|
||||||
|
|
||||||
/* prepare argv for serving-processes */
|
/* prepare argv for serving-processes */
|
||||||
|
@ -148,7 +127,7 @@
|
||||||
}
|
}
|
||||||
--- a/fast-import.c
|
--- a/fast-import.c
|
||||||
+++ b/fast-import.c
|
+++ b/fast-import.c
|
||||||
@@ -3350,7 +3350,7 @@ static void parse_argv(void)
|
@@ -3354,7 +3354,7 @@ static void parse_argv(void)
|
||||||
read_marks();
|
read_marks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,16 +160,15 @@
|
||||||
{ "describe", cmd_describe, RUN_SETUP },
|
{ "describe", cmd_describe, RUN_SETUP },
|
||||||
{ "diff", cmd_diff },
|
{ "diff", cmd_diff },
|
||||||
{ "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE },
|
{ "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE },
|
||||||
@@ -411,6 +412,8 @@ static struct cmd_struct commands[] = {
|
@@ -411,6 +412,7 @@ static struct cmd_struct commands[] = {
|
||||||
{ "grep", cmd_grep, RUN_SETUP_GENTLY },
|
{ "grep", cmd_grep, RUN_SETUP_GENTLY },
|
||||||
{ "hash-object", cmd_hash_object },
|
{ "hash-object", cmd_hash_object },
|
||||||
{ "help", cmd_help },
|
{ "help", cmd_help },
|
||||||
+ { "http-backend", cmd_http_backend },
|
|
||||||
+ { "imap-send", cmd_imap_send },
|
+ { "imap-send", cmd_imap_send },
|
||||||
{ "index-pack", cmd_index_pack, RUN_SETUP_GENTLY },
|
{ "index-pack", cmd_index_pack, RUN_SETUP_GENTLY },
|
||||||
{ "init", cmd_init_db, NO_SETUP },
|
{ "init", cmd_init_db, NO_SETUP },
|
||||||
{ "init-db", cmd_init_db, NO_SETUP },
|
{ "init-db", cmd_init_db, NO_SETUP },
|
||||||
@@ -459,6 +462,7 @@ static struct cmd_struct commands[] = {
|
@@ -459,6 +461,7 @@ static struct cmd_struct commands[] = {
|
||||||
{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
|
{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
|
||||||
{ "rm", cmd_rm, RUN_SETUP },
|
{ "rm", cmd_rm, RUN_SETUP },
|
||||||
{ "send-pack", cmd_send_pack, RUN_SETUP },
|
{ "send-pack", cmd_send_pack, RUN_SETUP },
|
||||||
|
@ -198,7 +176,7 @@
|
||||||
{ "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
|
{ "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
|
||||||
{ "show", cmd_show, RUN_SETUP },
|
{ "show", cmd_show, RUN_SETUP },
|
||||||
{ "show-branch", cmd_show_branch, RUN_SETUP },
|
{ "show-branch", cmd_show_branch, RUN_SETUP },
|
||||||
@@ -475,6 +479,7 @@ static struct cmd_struct commands[] = {
|
@@ -475,6 +478,7 @@ static struct cmd_struct commands[] = {
|
||||||
{ "update-server-info", cmd_update_server_info, RUN_SETUP },
|
{ "update-server-info", cmd_update_server_info, RUN_SETUP },
|
||||||
{ "upload-archive", cmd_upload_archive },
|
{ "upload-archive", cmd_upload_archive },
|
||||||
{ "upload-archive--writer", cmd_upload_archive_writer },
|
{ "upload-archive--writer", cmd_upload_archive_writer },
|
||||||
|
@ -206,17 +184,6 @@
|
||||||
{ "var", cmd_var, RUN_SETUP_GENTLY },
|
{ "var", cmd_var, RUN_SETUP_GENTLY },
|
||||||
{ "verify-commit", cmd_verify_commit, RUN_SETUP },
|
{ "verify-commit", cmd_verify_commit, RUN_SETUP },
|
||||||
{ "verify-pack", cmd_verify_pack },
|
{ "verify-pack", cmd_verify_pack },
|
||||||
--- a/http-backend.c
|
|
||||||
+++ b/http-backend.c
|
|
||||||
@@ -557,7 +557,7 @@ static struct service_cmd {
|
|
||||||
{"POST", "/git-receive-pack$", service_rpc}
|
|
||||||
};
|
|
||||||
|
|
||||||
-int main(int argc, char **argv)
|
|
||||||
+int cmd_http_backend(int argc, char **argv, const char *prefix)
|
|
||||||
{
|
|
||||||
char *method = getenv("REQUEST_METHOD");
|
|
||||||
char *dir;
|
|
||||||
--- a/imap-send.c
|
--- a/imap-send.c
|
||||||
+++ b/imap-send.c
|
+++ b/imap-send.c
|
||||||
@@ -1484,7 +1484,7 @@ static int curl_append_msgs_to_imap(stru
|
@@ -1484,7 +1484,7 @@ static int curl_append_msgs_to_imap(stru
|
||||||
|
|
32
net/git/patches/300-configure_for_crosscompiling
Normal file
32
net/git/patches/300-configure_for_crosscompiling
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -844,7 +844,8 @@ AC_RUN_IFELSE(
|
||||||
|
FILE *f = fopen(".", "r");
|
||||||
|
return f && fread(&c, 1, 1, f)]])],
|
||||||
|
[ac_cv_fread_reads_directories=no],
|
||||||
|
- [ac_cv_fread_reads_directories=yes])
|
||||||
|
+ [ac_cv_fread_reads_directories=yes],
|
||||||
|
+ [ac_cv_fread_reads_directories=no])
|
||||||
|
])
|
||||||
|
if test $ac_cv_fread_reads_directories = yes; then
|
||||||
|
FREAD_READS_DIRECTORIES=UnfortunatelyYes
|
||||||
|
@@ -878,7 +879,8 @@ AC_RUN_IFELSE(
|
||||||
|
if (snprintf(buf, 3, "%s", "12345") != 5
|
||||||
|
|| strcmp(buf, "12")) return 1]])],
|
||||||
|
[ac_cv_snprintf_returns_bogus=no],
|
||||||
|
- [ac_cv_snprintf_returns_bogus=yes])
|
||||||
|
+ [ac_cv_snprintf_returns_bogus=yes],
|
||||||
|
+ [ac_cv_snprintf_returns_bogus=no])
|
||||||
|
])
|
||||||
|
if test $ac_cv_snprintf_returns_bogus = yes; then
|
||||||
|
SNPRINTF_RETURNS_BOGUS=UnfortunatelyYes
|
||||||
|
@@ -901,7 +903,8 @@ yippeeyeswehaveit
|
||||||
|
#endif
|
||||||
|
]),
|
||||||
|
[ac_cv_sane_mode_bits=yes],
|
||||||
|
- [ac_cv_sane_mode_bits=no])
|
||||||
|
+ [ac_cv_sane_mode_bits=no],
|
||||||
|
+ [ac_cv_sane_mode_bits=yes])
|
||||||
|
])
|
||||||
|
if test $ac_cv_sane_mode_bits = yes; then
|
||||||
|
NEEDS_MODE_TRANSLATION=
|
11
net/git/patches/400-imapsend_without_curl.patch
Normal file
11
net/git/patches/400-imapsend_without_curl.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -1039,7 +1039,7 @@ else
|
||||||
|
endif
|
||||||
|
curl_check := $(shell (echo 072200; curl-config --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
|
||||||
|
ifeq "$(curl_check)" "072200"
|
||||||
|
- USE_CURL_FOR_IMAP_SEND = YesPlease
|
||||||
|
+# USE_CURL_FOR_IMAP_SEND = YesPlease
|
||||||
|
endif
|
||||||
|
ifdef USE_CURL_FOR_IMAP_SEND
|
||||||
|
BASIC_CFLAGS += -DUSE_CURL_FOR_IMAP_SEND
|
|
@ -11,13 +11,13 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=knxd
|
PKG_NAME:=knxd
|
||||||
PKG_VERSION=2015-03-06-$(PKG_SOURCE_VERSION)
|
PKG_VERSION=2015-03-17-$(PKG_SOURCE_VERSION)
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/knxd/knxd.git
|
PKG_SOURCE_URL:=https://github.com/knxd/knxd.git
|
||||||
PKG_SOURCE_VERSION:=a63bc660d305e26ce3ed038607d387758fad8413
|
PKG_SOURCE_VERSION:=2c6c6732a684dffb87b391ea92cccdf07c8385b8
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
|
||||||
|
|
||||||
PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
|
PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
|
||||||
|
@ -26,7 +26,7 @@ PKG_LICENSE:=GPL-2.0+
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
|
||||||
|
|
||||||
PKG_FIXUP:=autoreconf
|
PKG_FIXUP:=autoreconf
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
|
@ -37,7 +37,7 @@ define Package/knxd
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
TITLE:=EIB KNX daemon
|
TITLE:=EIB KNX daemon
|
||||||
DEPENDS:=+pthsem +libusb-1.0
|
DEPENDS:=+pthsem +argp-standalone +libusb-1.0
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/knxd/description
|
define Package/knxd/description
|
||||||
|
@ -55,7 +55,7 @@ define Package/libeibclient
|
||||||
DEPENDS:=+pthsem
|
DEPENDS:=+pthsem
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/knxd-tools/description
|
define Package/libeibclient/description
|
||||||
EIB KNX client library
|
EIB KNX client library
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -84,9 +84,8 @@ CONFIGURE_ARGS+= \
|
||||||
--without-pth-test \
|
--without-pth-test \
|
||||||
--without-libstdc
|
--without-libstdc
|
||||||
|
|
||||||
TARGET_CFLAGS+= \
|
EXTRA_LDFLAGS+= \
|
||||||
$(FPIC) \
|
-fno-builtin -nodefaultlibs -lc -lgcc
|
||||||
-fno-builtin -nodefaultlibs -lc -lm -lgcc -largp -lpthsem
|
|
||||||
|
|
||||||
define Build/InstallDev
|
define Build/InstallDev
|
||||||
$(INSTALL_DIR) $(1)/usr/include
|
$(INSTALL_DIR) $(1)/usr/include
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008-2014 OpenWrt.org
|
# Copyright (C) 2008-2015 OpenWrt.org
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=linknx
|
PKG_NAME:=linknx
|
||||||
PKG_VERSION:=0.0.1.32
|
PKG_VERSION:=0.0.1.32
|
||||||
PKG_RELEASE:=4
|
PKG_RELEASE:=6
|
||||||
PKG_MD5SUM:=7ecc1208f59bceb05068c752b2250b63
|
PKG_MD5SUM:=7ecc1208f59bceb05068c752b2250b63
|
||||||
|
|
||||||
PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
|
PKG_MAINTAINER:=Othmar Truniger <github@truniger.ch>
|
||||||
|
@ -17,7 +17,7 @@ PKG_LICENSE:=GPL-2.0+
|
||||||
|
|
||||||
PKG_SOURCE_URL:=@SF/linknx
|
PKG_SOURCE_URL:=@SF/linknx
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_BUILD_DEPENDS:=pthsem curl libesmtp
|
PKG_BUILD_DEPENDS:=argp-standalone
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
@ -26,26 +26,19 @@ define Package/linknx
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
TITLE:=KNX home automation platform
|
TITLE:=KNX home automation platform
|
||||||
URL:=http://sourceforge.net/projects/linknx/
|
URL:=http://sourceforge.net/projects/linknx/
|
||||||
DEPENDS:=pthsem +lua +luac +libstdcpp +libcurl +libesmtp
|
DEPENDS:=+pthsem +lua +luac +libstdcpp +libcurl +libesmtp
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Configure
|
CONFIGURE_ARGS+= \
|
||||||
(cd $(PKG_BUILD_DIR); touch aclocal.m4 Makefile.in config.h.in configure; \
|
--verbose \
|
||||||
$(SED) 's,\"2.0.4\",\"2.0.4\"\n_pth_version=\"2.0.8\",g' $(PKG_BUILD_DIR)/configure )
|
--without-pth-test \
|
||||||
$(call Build/Configure/Default,--verbose --without-pth-test --with-pth=$(STAGING_DIR) --without-log4cpp --with-lua --with-libcurl --without-mysql, \
|
--without-log4cpp \
|
||||||
CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -lcrypt" \
|
--with-lua \
|
||||||
)
|
--with-libcurl \
|
||||||
endef
|
--without-mysql
|
||||||
|
|
||||||
define Build/Compile
|
EXTRA_LDFLAGS+= \
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR)/ \
|
-fno-builtin
|
||||||
LIBDIR="$(TARGET_LDFLAGS)" \
|
|
||||||
CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) " \
|
|
||||||
LD="$(TARGET_CROSS)ld -shared" \
|
|
||||||
LUA="$(STAGING_DIR_HOST)/bin/lua" \
|
|
||||||
LUAC="$(STAGING_DIR_HOST)/bin/luac" \
|
|
||||||
CFLAGS="$(TARGET_CFLAGS) -nodefaultlibs" all
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/linknx/install
|
define Package/linknx/install
|
||||||
$(INSTALL_DIR) $(1)/usr/bin
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=mDNSResponder
|
PKG_NAME:=mDNSResponder
|
||||||
PKG_VERSION:=561.1.1
|
PKG_VERSION:=567
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
|
PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
|
||||||
PKG_MD5SUM:=d4b56e22798d6f45e29b42cd6720ab6e
|
PKG_MD5SUM:=6eff6d243a12a3d4b6fca03c05a9893b
|
||||||
PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
|
PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
|
||||||
PKG_LICENSE:=Apache-2.0
|
PKG_LICENSE:=Apache-2.0
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/Clients/Makefile
|
--- a/Clients/Makefile
|
||||||
+++ b/Clients/Makefile
|
+++ b/Clients/Makefile
|
||||||
@@ -23,6 +23,8 @@
|
@@ -27,6 +27,8 @@
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
|
@ -9,22 +9,22 @@
|
||||||
# On OS X the dns_sd library functions are included in libSystem, which is implicitly linked with every executable
|
# On OS X the dns_sd library functions are included in libSystem, which is implicitly linked with every executable
|
||||||
# If /usr/lib/libSystem.dylib exists, then we're on OS X, so we don't need also to link the "dns_sd" shared library
|
# If /usr/lib/libSystem.dylib exists, then we're on OS X, so we don't need also to link the "dns_sd" shared library
|
||||||
ifneq "$(wildcard /usr/lib/libSystem.dylib)" ""
|
ifneq "$(wildcard /usr/lib/libSystem.dylib)" ""
|
||||||
@@ -42,10 +44,10 @@ build:
|
@@ -46,10 +48,10 @@ build:
|
||||||
mkdir build
|
mkdir build
|
||||||
|
|
||||||
build/dns-sd: build dns-sd.c ClientCommon.c
|
build/dns-sd: build dns-sd.c ClientCommon.c
|
||||||
- cc $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@
|
- $(CC) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@
|
||||||
+ $(CC) $(CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@
|
+ $(CC) $(CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@
|
||||||
|
|
||||||
build/dns-sd64: build dns-sd.c ClientCommon.c
|
build/dns-sd64: build dns-sd.c ClientCommon.c
|
||||||
- cc $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64
|
- $(CC) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64
|
||||||
+ $(CC) $(CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64
|
+ $(CC) $(CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64
|
||||||
|
|
||||||
# Note, we can make a 'fat' version of dns-sd using 'lipo', as shown below, but we
|
# Note, we can make a 'fat' version of dns-sd using 'lipo', as shown below, but we
|
||||||
# don't, because we don't want or need a 'fat' version of dns-sd, because it will
|
# don't, because we don't want or need a 'fat' version of dns-sd, because it will
|
||||||
--- a/mDNSPosix/Makefile
|
--- a/mDNSPosix/Makefile
|
||||||
+++ b/mDNSPosix/Makefile
|
+++ b/mDNSPosix/Makefile
|
||||||
@@ -54,10 +54,11 @@ COREDIR = ../mDNSCore
|
@@ -54,11 +54,12 @@ COREDIR = ../mDNSCore
|
||||||
SHAREDDIR ?= ../mDNSShared
|
SHAREDDIR ?= ../mDNSShared
|
||||||
JDK = /usr/jdk
|
JDK = /usr/jdk
|
||||||
|
|
||||||
|
@ -32,22 +32,14 @@
|
||||||
+CC = @gcc
|
+CC = @gcc
|
||||||
BISON = @bison
|
BISON = @bison
|
||||||
FLEX = @flex
|
FLEX = @flex
|
||||||
|
ST = @strip
|
||||||
-LD = ld -shared
|
-LD = ld -shared
|
||||||
+LD = @ld
|
+LD = @ld
|
||||||
+SOOPTS = -shared
|
+SOOPTS = -shared
|
||||||
CP = cp
|
CP = cp
|
||||||
RM = rm
|
RM = rm
|
||||||
LN = ln -s -f
|
LN = ln -s -f
|
||||||
@@ -82,7 +83,7 @@ else
|
@@ -92,7 +93,7 @@ CFLAGS_DEBUG = -O0 -DMDNS_DEBUGMSGS=0
|
||||||
CFLAGS_DEBUG = -Os -DMDNS_DEBUGMSGS=0
|
|
||||||
OBJDIR ?= objects/prod
|
|
||||||
BUILDDIR ?= build/prod
|
|
||||||
-STRIP = strip -S
|
|
||||||
+STRIP = @strip -S
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Configure per-OS peculiarities
|
|
||||||
@@ -91,7 +92,7 @@ CFLAGS_DEBUG = -O0 -DMDNS_DEBUGMSGS=0
|
|
||||||
CFLAGS_OS = -DNOT_HAVE_DAEMON -DNOT_HAVE_SA_LEN -DNOT_HAVE_SOCKLEN_T -DNOT_HAVE_IF_NAMETOINDEX \
|
CFLAGS_OS = -DNOT_HAVE_DAEMON -DNOT_HAVE_SA_LEN -DNOT_HAVE_SOCKLEN_T -DNOT_HAVE_IF_NAMETOINDEX \
|
||||||
-DLOG_PERROR=0 -D_XPG4_2 -D__EXTENSIONS__ -DHAVE_BROKEN_RECVIF_NAME -DTARGET_OS_SOLARIS
|
-DLOG_PERROR=0 -D_XPG4_2 -D__EXTENSIONS__ -DHAVE_BROKEN_RECVIF_NAME -DTARGET_OS_SOLARIS
|
||||||
CC = gcc
|
CC = gcc
|
||||||
|
@ -56,7 +48,7 @@
|
||||||
LINKOPTS = -lsocket -lnsl -lresolv
|
LINKOPTS = -lsocket -lnsl -lresolv
|
||||||
JAVACFLAGS_OS += -I$(JDK)/include/solaris
|
JAVACFLAGS_OS += -I$(JDK)/include/solaris
|
||||||
ifneq ($(DEBUG),1)
|
ifneq ($(DEBUG),1)
|
||||||
@@ -147,7 +148,8 @@ CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp
|
@@ -148,7 +149,8 @@ CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp
|
||||||
-D__MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_10_4 \
|
-D__MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_10_4 \
|
||||||
-D__APPLE_USE_RFC_2292 #-Wunreachable-code
|
-D__APPLE_USE_RFC_2292 #-Wunreachable-code
|
||||||
CC = gcc
|
CC = gcc
|
||||||
|
@ -66,7 +58,7 @@
|
||||||
LINKOPTS = -lSystem
|
LINKOPTS = -lSystem
|
||||||
LDSUFFIX = dylib
|
LDSUFFIX = dylib
|
||||||
JDK = /System/Library/Frameworks/JavaVM.framework/Home
|
JDK = /System/Library/Frameworks/JavaVM.framework/Home
|
||||||
@@ -169,8 +171,9 @@ NSSLIBFILE := $(NSSLIBNAME)-$(NSSVERSIO
|
@@ -170,8 +172,9 @@ NSSLIBFILE := $(NSSLIBNAME)-$(NSSVERSIO
|
||||||
NSSLINKNAME := $(NSSLIBNAME).so.2
|
NSSLINKNAME := $(NSSLIBNAME).so.2
|
||||||
NSSINSTPATH := /lib
|
NSSINSTPATH := /lib
|
||||||
|
|
||||||
|
@ -77,7 +69,7 @@
|
||||||
INSTBASE?=/usr
|
INSTBASE?=/usr
|
||||||
STARTUPSCRIPTNAME?=mdns
|
STARTUPSCRIPTNAME?=mdns
|
||||||
|
|
||||||
@@ -256,7 +259,7 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$
|
@@ -257,7 +260,7 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$
|
||||||
CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o
|
CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o
|
||||||
|
|
||||||
$(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
|
$(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
|
||||||
|
@ -86,7 +78,7 @@
|
||||||
@$(STRIP) $@
|
@$(STRIP) $@
|
||||||
|
|
||||||
Clients: setup libdns_sd ../Clients/build/dns-sd
|
Clients: setup libdns_sd ../Clients/build/dns-sd
|
||||||
@@ -291,7 +294,7 @@ InstalledManPages: $(MANPATH)/man8/mdnsd
|
@@ -292,7 +295,7 @@ InstalledManPages: $(MANPATH)/man8/mdnsd
|
||||||
InstalledClients: $(INSTBASE)/bin/dns-sd
|
InstalledClients: $(INSTBASE)/bin/dns-sd
|
||||||
@echo $+ " installed"
|
@echo $+ " installed"
|
||||||
|
|
||||||
|
@ -95,7 +87,7 @@
|
||||||
@echo $+ " installed"
|
@echo $+ " installed"
|
||||||
|
|
||||||
# Note: If daemon already installed, we make sure it's stopped before overwriting it
|
# Note: If daemon already installed, we make sure it's stopped before overwriting it
|
||||||
@@ -346,19 +349,21 @@ $(INSTBASE)/bin/dns-sd: ../Clients/build
|
@@ -347,19 +350,21 @@ $(INSTBASE)/bin/dns-sd: ../Clients/build
|
||||||
|
|
||||||
$(NSSINSTPATH)/$(NSSLINKNAME): $(NSSINSTPATH)/$(NSSLIBFILE)
|
$(NSSINSTPATH)/$(NSSLINKNAME): $(NSSINSTPATH)/$(NSSLIBFILE)
|
||||||
$(LN) $< $@
|
$(LN) $< $@
|
||||||
|
|
|
@ -84,7 +84,7 @@
|
||||||
}
|
}
|
||||||
--- a/mDNSPosix/mDNSPosix.c
|
--- a/mDNSPosix/mDNSPosix.c
|
||||||
+++ b/mDNSPosix/mDNSPosix.c
|
+++ b/mDNSPosix/mDNSPosix.c
|
||||||
@@ -136,7 +136,7 @@ mDNSlocal void SockAddrTomDNSAddr(const
|
@@ -138,7 +138,7 @@ mDNSlocal void SockAddrTomDNSAddr(const
|
||||||
|
|
||||||
// mDNS core calls this routine when it needs to send a packet.
|
// mDNS core calls this routine when it needs to send a packet.
|
||||||
mDNSexport mStatus mDNSPlatformSendUDP(const mDNS *const m, const void *const msg, const mDNSu8 *const end,
|
mDNSexport mStatus mDNSPlatformSendUDP(const mDNS *const m, const void *const msg, const mDNSu8 *const end,
|
||||||
|
@ -93,7 +93,7 @@
|
||||||
mDNSIPPort dstPort, mDNSBool useBackgroundTrafficClass)
|
mDNSIPPort dstPort, mDNSBool useBackgroundTrafficClass)
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
@@ -574,9 +574,17 @@ mDNSlocal void FreePosixNetworkInterface
|
@@ -583,9 +583,17 @@ mDNSlocal void FreePosixNetworkInterface
|
||||||
{
|
{
|
||||||
assert(intf != NULL);
|
assert(intf != NULL);
|
||||||
if (intf->intfName != NULL) free((void *)intf->intfName);
|
if (intf->intfName != NULL) free((void *)intf->intfName);
|
||||||
|
@ -111,9 +111,9 @@
|
||||||
+ assert(rv == 0);
|
+ assert(rv == 0);
|
||||||
+ }
|
+ }
|
||||||
#endif
|
#endif
|
||||||
free(intf);
|
|
||||||
}
|
// Move interface to the RecentInterfaces list for a minute
|
||||||
@@ -703,6 +711,29 @@ mDNSlocal int SetupSocket(struct sockadd
|
@@ -724,6 +732,29 @@ mDNSlocal int SetupSocket(struct sockadd
|
||||||
if (err < 0) { err = errno; perror("setsockopt - IP_MULTICAST_TTL"); }
|
if (err < 0) { err = errno; perror("setsockopt - IP_MULTICAST_TTL"); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
// And start listening for packets
|
// And start listening for packets
|
||||||
if (err == 0)
|
if (err == 0)
|
||||||
{
|
{
|
||||||
@@ -784,6 +815,29 @@ mDNSlocal int SetupSocket(struct sockadd
|
@@ -805,6 +836,29 @@ mDNSlocal int SetupSocket(struct sockadd
|
||||||
if (err < 0) { err = errno; perror("setsockopt - IPV6_MULTICAST_HOPS"); }
|
if (err < 0) { err = errno; perror("setsockopt - IPV6_MULTICAST_HOPS"); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@
|
||||||
// And start listening for packets
|
// And start listening for packets
|
||||||
if (err == 0)
|
if (err == 0)
|
||||||
{
|
{
|
||||||
@@ -815,7 +869,12 @@ mDNSlocal int SetupSocket(struct sockadd
|
@@ -836,7 +890,12 @@ mDNSlocal int SetupSocket(struct sockadd
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clean up
|
// Clean up
|
||||||
|
@ -187,7 +187,7 @@
|
||||||
assert((err == 0) == (*sktPtr != -1));
|
assert((err == 0) == (*sktPtr != -1));
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -994,7 +1053,7 @@ mDNSlocal mStatus OpenIfNotifySocket(int
|
@@ -1026,7 +1085,7 @@ mDNSlocal mStatus OpenIfNotifySocket(int
|
||||||
/* Subscribe the socket to Link & IP addr notifications. */
|
/* Subscribe the socket to Link & IP addr notifications. */
|
||||||
mDNSPlatformMemZero(&snl, sizeof snl);
|
mDNSPlatformMemZero(&snl, sizeof snl);
|
||||||
snl.nl_family = AF_NETLINK;
|
snl.nl_family = AF_NETLINK;
|
||||||
|
@ -196,7 +196,7 @@
|
||||||
ret = bind(sock, (struct sockaddr *) &snl, sizeof snl);
|
ret = bind(sock, (struct sockaddr *) &snl, sizeof snl);
|
||||||
if (0 == ret)
|
if (0 == ret)
|
||||||
*pFD = sock;
|
*pFD = sock;
|
||||||
@@ -1072,11 +1131,18 @@ mDNSlocal mDNSu32 ProcessRoutingNo
|
@@ -1104,11 +1163,18 @@ mDNSlocal mDNSu32 ProcessRoutingNo
|
||||||
PrintNetLinkMsg(pNLMsg);
|
PrintNetLinkMsg(pNLMsg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -217,7 +217,7 @@
|
||||||
|
|
||||||
// Advance pNLMsg to the next message in the buffer
|
// Advance pNLMsg to the next message in the buffer
|
||||||
if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
|
if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
|
||||||
@@ -1247,8 +1313,12 @@ mDNSexport mStatus mDNSPlatformInit(mDNS
|
@@ -1279,8 +1345,12 @@ mDNSexport mStatus mDNSPlatformInit(mDNS
|
||||||
if (err == mStatus_NoError) err = SetupSocket(&sa, zeroIPPort, 0, &m->p->unicastSocket6);
|
if (err == mStatus_NoError) err = SetupSocket(&sa, zeroIPPort, 0, &m->p->unicastSocket6);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@
|
||||||
|
|
||||||
// Tell mDNS core about DNS Servers
|
// Tell mDNS core about DNS Servers
|
||||||
mDNS_Lock(m);
|
mDNS_Lock(m);
|
||||||
@@ -1281,9 +1351,17 @@ mDNSexport void mDNSPlatformClose(mDNS *
|
@@ -1313,9 +1383,17 @@ mDNSexport void mDNSPlatformClose(mDNS *
|
||||||
{
|
{
|
||||||
assert(m != NULL);
|
assert(m != NULL);
|
||||||
ClearInterfaceList(m);
|
ClearInterfaceList(m);
|
||||||
|
@ -250,7 +250,7 @@
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1533,14 +1611,14 @@ mDNSexport mStatus mDNSPlatformClearS
|
@@ -1571,14 +1649,14 @@ mDNSexport mStatus mDNSPlatformClearS
|
||||||
mDNSexport mDNSu16 mDNSPlatformGetUDPPort(UDPSocket *sock)
|
mDNSexport mDNSu16 mDNSPlatformGetUDPPort(UDPSocket *sock)
|
||||||
{
|
{
|
||||||
(void) sock; // unused
|
(void) sock; // unused
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=luci-app-mwan3
|
PKG_NAME:=luci-app-mwan3
|
||||||
PKG_VERSION:=1.3
|
PKG_VERSION:=1.4
|
||||||
PKG_RELEASE:=5
|
PKG_RELEASE:=2
|
||||||
PKG_MAINTAINER:=Aedan Renner <chipdankly@gmail.com>
|
PKG_MAINTAINER:=Aedan Renner <chipdankly@gmail.com>
|
||||||
PKG_LICENSE:=GPLv2
|
PKG_LICENSE:=GPLv2
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,39 @@ proto = mwan_rule:option(DummyValue, "proto", translate("Protocol"))
|
||||||
return self.map:get(s, "proto") or "all"
|
return self.map:get(s, "proto") or "all"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sticky = mwan_rule:option(DummyValue, "sticky", translate("Sticky"))
|
||||||
|
sticky.rawhtml = true
|
||||||
|
function sticky.cfgvalue(self, s)
|
||||||
|
if self.map:get(s, "sticky") == "1" then
|
||||||
|
stickied = 1
|
||||||
|
return "Yes"
|
||||||
|
else
|
||||||
|
stickied = nil
|
||||||
|
return "No"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
timeout = mwan_rule:option(DummyValue, "timeout", translate("Sticky timeout"))
|
||||||
|
timeout.rawhtml = true
|
||||||
|
function timeout.cfgvalue(self, s)
|
||||||
|
if stickied then
|
||||||
|
local timeoutValue = self.map:get(s, "timeout")
|
||||||
|
if timeoutValue then
|
||||||
|
return timeoutValue .. "s"
|
||||||
|
else
|
||||||
|
return "600s"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return "—"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ipset = mwan_rule:option(DummyValue, "ipset", translate("IPset"))
|
||||||
|
ipset.rawhtml = true
|
||||||
|
function ipset.cfgvalue(self, s)
|
||||||
|
return self.map:get(s, "ipset") or "—"
|
||||||
|
end
|
||||||
|
|
||||||
use_policy = mwan_rule:option(DummyValue, "use_policy", translate("Policy assigned"))
|
use_policy = mwan_rule:option(DummyValue, "use_policy", translate("Policy assigned"))
|
||||||
use_policy.rawhtml = true
|
use_policy.rawhtml = true
|
||||||
function use_policy.cfgvalue(self, s)
|
function use_policy.cfgvalue(self, s)
|
||||||
|
|
|
@ -81,6 +81,19 @@ proto = mwan_rule:option(Value, "proto", translate("Protocol"),
|
||||||
proto:value("esp")
|
proto:value("esp")
|
||||||
cbiAddProtocol(proto)
|
cbiAddProtocol(proto)
|
||||||
|
|
||||||
|
sticky = mwan_rule:option(ListValue, "sticky", translate("Sticky"),
|
||||||
|
translate("Traffic from the same source IP address that previously matched this rule within the sticky timeout period will use the same WAN interface"))
|
||||||
|
sticky.default = "0"
|
||||||
|
sticky:value("1", translate("Yes"))
|
||||||
|
sticky:value("0", translate("No"))
|
||||||
|
|
||||||
|
timeout = mwan_rule:option(Value, "timeout", translate("Sticky timeout"),
|
||||||
|
translate("Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set"))
|
||||||
|
timeout.datatype = "range(1, 1000000)"
|
||||||
|
|
||||||
|
ipset = mwan_rule:option(Value, "ipset", translate("IPset"),
|
||||||
|
translate("Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/youtube.com/youtube\")"))
|
||||||
|
|
||||||
use_policy = mwan_rule:option(Value, "use_policy", translate("Policy assigned"))
|
use_policy = mwan_rule:option(Value, "use_policy", translate("Policy assigned"))
|
||||||
cbiAddPolicy(use_policy)
|
cbiAddPolicy(use_policy)
|
||||||
use_policy:value("unreachable", translate("unreachable (reject)"))
|
use_policy:value("unreachable", translate("unreachable (reject)"))
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=mwan3
|
PKG_NAME:=mwan3
|
||||||
PKG_VERSION:=1.5
|
PKG_VERSION:=1.6
|
||||||
PKG_RELEASE:=10
|
PKG_RELEASE:=1
|
||||||
PKG_MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
|
PKG_MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
|
||||||
PKG_LICENSE:=GPLv2
|
PKG_LICENSE:=GPLv2
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ define Package/mwan3
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
SUBMENU:=Routing and Redirection
|
SUBMENU:=Routing and Redirection
|
||||||
DEPENDS:=+ip +iptables +iptables-mod-conntrack-extra +iptables-mod-ipopt
|
DEPENDS:=+ip +ipset +iptables +iptables-mod-conntrack-extra +iptables-mod-ipopt
|
||||||
TITLE:=Multiwan hotplug script with connection tracking support
|
TITLE:=Multiwan hotplug script with connection tracking support
|
||||||
MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
|
MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
|
||||||
PKGARCH:=all
|
PKGARCH:=all
|
||||||
|
|
|
@ -61,17 +61,18 @@ config policy 'wan2_wan'
|
||||||
list use_member 'wan_m2_w3'
|
list use_member 'wan_m2_w3'
|
||||||
list use_member 'wan2_m1_w2'
|
list use_member 'wan2_m1_w2'
|
||||||
|
|
||||||
config rule 'sticky_even'
|
config rule 'youtube'
|
||||||
option src_ip '0.0.0.0/0.0.0.1'
|
option sticky '1'
|
||||||
option dest_port '443'
|
option ipset 'youtube'
|
||||||
|
option dest_port '80,443'
|
||||||
option proto 'tcp'
|
option proto 'tcp'
|
||||||
option use_policy 'wan_wan2'
|
option use_policy 'balanced'
|
||||||
|
|
||||||
config rule 'sticky_odd'
|
config rule 'https'
|
||||||
option src_ip '0.0.0.1/0.0.0.1'
|
option sticky '1'
|
||||||
option dest_port '443'
|
option dest_port '443'
|
||||||
option proto 'tcp'
|
option proto 'tcp'
|
||||||
option use_policy 'wan2_wan'
|
option use_policy 'balanced'
|
||||||
|
|
||||||
config rule 'default_rule'
|
config rule 'default_rule'
|
||||||
option dest_ip '0.0.0.0/0'
|
option dest_ip '0.0.0.0/0'
|
||||||
|
|
|
@ -12,12 +12,18 @@ mwan3_set_general_iptables()
|
||||||
$IPT -N mwan3_ifaces
|
$IPT -N mwan3_ifaces
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! $IPT -S mwan3_rules &> /dev/null; then
|
|
||||||
$IPT -N mwan3_rules
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! $IPT -S mwan3_connected &> /dev/null; then
|
if ! $IPT -S mwan3_connected &> /dev/null; then
|
||||||
$IPT -N mwan3_connected
|
$IPT -N mwan3_connected
|
||||||
|
$IPS create mwan3_connected hash:net
|
||||||
|
$IPT -A mwan3_connected -m set --match-set mwan3_connected dst -j MARK --set-xmark 0xff00/0xff00
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! $IPT -S mwan3_track &> /dev/null; then
|
||||||
|
$IPT -N mwan3_track
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! $IPT -S mwan3_rules &> /dev/null; then
|
||||||
|
$IPT -N mwan3_rules
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! $IPT -S mwan3_hook &> /dev/null; then
|
if ! $IPT -S mwan3_hook &> /dev/null; then
|
||||||
|
@ -25,15 +31,12 @@ mwan3_set_general_iptables()
|
||||||
$IPT -A mwan3_hook -j CONNMARK --restore-mark --nfmask 0xff00 --ctmask 0xff00
|
$IPT -A mwan3_hook -j CONNMARK --restore-mark --nfmask 0xff00 --ctmask 0xff00
|
||||||
$IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_ifaces
|
$IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_ifaces
|
||||||
$IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_connected
|
$IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_connected
|
||||||
|
$IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_track
|
||||||
$IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_rules
|
$IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_rules
|
||||||
$IPT -A mwan3_hook -j CONNMARK --save-mark --nfmask 0xff00 --ctmask 0xff00
|
$IPT -A mwan3_hook -j CONNMARK --save-mark --nfmask 0xff00 --ctmask 0xff00
|
||||||
$IPT -A mwan3_hook -m mark ! --mark 0xff00/0xff00 -j mwan3_connected
|
$IPT -A mwan3_hook -m mark ! --mark 0xff00/0xff00 -j mwan3_connected
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! $IPT -S mwan3_output_hook &> /dev/null; then
|
|
||||||
$IPT -N mwan3_output_hook
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! $IPT -S PREROUTING | grep mwan3_hook &> /dev/null; then
|
if ! $IPT -S PREROUTING | grep mwan3_hook &> /dev/null; then
|
||||||
$IPT -A PREROUTING -j mwan3_hook
|
$IPT -A PREROUTING -j mwan3_hook
|
||||||
fi
|
fi
|
||||||
|
@ -42,10 +45,6 @@ mwan3_set_general_iptables()
|
||||||
$IPT -A OUTPUT -j mwan3_hook
|
$IPT -A OUTPUT -j mwan3_hook
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! $IPT -S OUTPUT | grep mwan3_output_hook &> /dev/null; then
|
|
||||||
$IPT -A OUTPUT -j mwan3_output_hook
|
|
||||||
fi
|
|
||||||
|
|
||||||
$IPT -F mwan3_rules
|
$IPT -F mwan3_rules
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,28 +61,29 @@ mwan3_set_general_rules()
|
||||||
|
|
||||||
mwan3_set_connected_iptables()
|
mwan3_set_connected_iptables()
|
||||||
{
|
{
|
||||||
local connected_networks
|
local connected_network
|
||||||
|
|
||||||
if $IPT -S mwan3_connected &> /dev/null; then
|
if $IPT -S mwan3_connected &> /dev/null; then
|
||||||
$IPT -F mwan3_connected
|
|
||||||
|
|
||||||
for connected_networks in $($IP route | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
|
$IPS create mwan3_connected_temp hash:net
|
||||||
$IPT -A mwan3_connected -d $connected_networks -j MARK --set-xmark 0xff00/0xff00
|
|
||||||
|
for connected_network in $($IP route | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
|
||||||
|
$IPS -! add mwan3_connected_temp $connected_network
|
||||||
done
|
done
|
||||||
|
|
||||||
for connected_networks in $($IP route list table 0 | awk '{print $2}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
|
for connected_network in $($IP route list table 0 | awk '{print $2}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
|
||||||
$IPT -A mwan3_connected -d $connected_networks -j MARK --set-xmark 0xff00/0xff00
|
$IPS -! add mwan3_connected_temp $connected_network
|
||||||
done
|
done
|
||||||
|
|
||||||
$IPT -I mwan3_connected -d 224.0.0.0/3 -j MARK --set-xmark 0xff00/0xff00
|
$IPS add mwan3_connected_temp 224.0.0.0/3
|
||||||
$IPT -I mwan3_connected -d 127.0.0.0/8 -j MARK --set-xmark 0xff00/0xff00
|
$IPS swap mwan3_connected_temp mwan3_connected
|
||||||
|
$IPS destroy mwan3_connected_temp
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
mwan3_set_iface_iptables()
|
mwan3_set_iface_iptables()
|
||||||
{
|
{
|
||||||
local local_net local_nets
|
|
||||||
|
|
||||||
if ! $IPT -S mwan3_iface_$INTERFACE &> /dev/null; then
|
if ! $IPT -S mwan3_iface_$INTERFACE &> /dev/null; then
|
||||||
$IPT -N mwan3_iface_$INTERFACE
|
$IPT -N mwan3_iface_$INTERFACE
|
||||||
fi
|
fi
|
||||||
|
@ -92,16 +92,7 @@ mwan3_set_iface_iptables()
|
||||||
$IPT -D mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE &> /dev/null
|
$IPT -D mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE &> /dev/null
|
||||||
|
|
||||||
if [ $ACTION == "ifup" ]; then
|
if [ $ACTION == "ifup" ]; then
|
||||||
local_nets=$($IP route list dev $DEVICE scope link | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}')
|
$IPT -I mwan3_iface_$INTERFACE -i $DEVICE -m set --match-set mwan3_connected src -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
|
||||||
|
|
||||||
if [ -n "$local_nets" ]; then
|
|
||||||
for local_net in $local_nets ; do
|
|
||||||
if [ $ACTION == "ifup" ]; then
|
|
||||||
$IPT -I mwan3_iface_$INTERFACE -i $DEVICE -s $local_net -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
$IPT -A mwan3_iface_$INTERFACE -i $DEVICE -m mark --mark 0x0/0xff00 -m comment --comment "$INTERFACE" -j MARK --set-xmark $(($iface_id*256))/0xff00
|
$IPT -A mwan3_iface_$INTERFACE -i $DEVICE -m mark --mark 0x0/0xff00 -m comment --comment "$INTERFACE" -j MARK --set-xmark $(($iface_id*256))/0xff00
|
||||||
$IPT -A mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE
|
$IPT -A mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE
|
||||||
fi
|
fi
|
||||||
|
@ -131,6 +122,17 @@ mwan3_set_iface_rules()
|
||||||
[ $ACTION == "ifup" ] && $IP rule add pref $(($iface_id+2000)) fwmark $(($iface_id*256))/0xff00 lookup $iface_id
|
[ $ACTION == "ifup" ] && $IP rule add pref $(($iface_id+2000)) fwmark $(($iface_id*256))/0xff00 lookup $iface_id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mwan3_set_iface_ipset()
|
||||||
|
{
|
||||||
|
local setname entry
|
||||||
|
|
||||||
|
for setname in $(ipset -n list | grep ^mwan3_sticky_); do
|
||||||
|
for entry in $(ipset list $setname | grep "$(echo $(($iface_id*256)) | awk '{ printf "0x%08x", $1; }')" | cut -d ' ' -f 1); do
|
||||||
|
$IPS del $setname $entry
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
mwan3_track()
|
mwan3_track()
|
||||||
{
|
{
|
||||||
local track_ip track_ips reliability count timeout interval down up
|
local track_ip track_ips reliability count timeout interval down up
|
||||||
|
@ -154,22 +156,23 @@ mwan3_track()
|
||||||
config_get down $INTERFACE down 5
|
config_get down $INTERFACE down 5
|
||||||
config_get up $INTERFACE up 5
|
config_get up $INTERFACE up 5
|
||||||
|
|
||||||
if ! $IPT -S mwan3_track_$INTERFACE &> /dev/null; then
|
$IPS -! create mwan3_track_$INTERFACE hash:ip
|
||||||
$IPT -N mwan3_track_$INTERFACE
|
$IPS create mwan3_track_temp_$INTERFACE hash:ip
|
||||||
$IPT -A mwan3_output_hook -p icmp -m icmp --icmp-type 8 -m length --length 32 -j mwan3_track_$INTERFACE
|
|
||||||
fi
|
|
||||||
|
|
||||||
$IPT -F mwan3_track_$INTERFACE
|
|
||||||
|
|
||||||
for track_ip in $track_ips; do
|
for track_ip in $track_ips; do
|
||||||
$IPT -A mwan3_track_$INTERFACE -d $track_ip -j MARK --set-xmark 0xff00/0xff00
|
$IPS -! add mwan3_track_temp_$INTERFACE $track_ip
|
||||||
done
|
done
|
||||||
|
|
||||||
|
$IPS swap mwan3_track_temp_$INTERFACE mwan3_track_$INTERFACE
|
||||||
|
$IPS destroy mwan3_track_temp_$INTERFACE
|
||||||
|
|
||||||
|
$IPT -D mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00 &> /dev/null
|
||||||
|
$IPT -A mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00
|
||||||
|
|
||||||
[ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $INTERFACE $DEVICE $reliability $count $timeout $interval $down $up $track_ips &
|
[ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $INTERFACE $DEVICE $reliability $count $timeout $interval $down $up $track_ips &
|
||||||
else
|
else
|
||||||
$IPT -D mwan3_output_hook -p icmp -m icmp --icmp-type 8 -m length --length 32 -j mwan3_track_$INTERFACE &> /dev/null
|
$IPT -D mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00 &> /dev/null
|
||||||
$IPT -F mwan3_track_$INTERFACE &> /dev/null
|
$IPS destroy mwan3_track_$INTERFACE
|
||||||
$IPT -X mwan3_track_$INTERFACE &> /dev/null
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,9 +206,9 @@ mwan3_set_policy()
|
||||||
|
|
||||||
if [ "$probability" -lt 10 ]; then
|
if [ "$probability" -lt 10 ]; then
|
||||||
probability="0.00$probability"
|
probability="0.00$probability"
|
||||||
elif [ $probability -lt 100 ]; then
|
elif [ $probability -lt 100 ]; then
|
||||||
probability="0.0$probability"
|
probability="0.0$probability"
|
||||||
elif [ $probability -lt 1000 ]; then
|
elif [ $probability -lt 1000 ]; then
|
||||||
probability="0.$probability"
|
probability="0.$probability"
|
||||||
else
|
else
|
||||||
probability="1"
|
probability="1"
|
||||||
|
@ -254,10 +257,34 @@ mwan3_set_policies_iptables()
|
||||||
config_list_foreach $policy use_member mwan3_set_policy
|
config_list_foreach $policy use_member mwan3_set_policy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mwan3_set_sticky_iptables()
|
||||||
|
{
|
||||||
|
local INTERFACE iface_count iface_id
|
||||||
|
|
||||||
|
INTERFACE="$1"
|
||||||
|
|
||||||
|
config_foreach mwan3_get_iface_id interface
|
||||||
|
unset iface_count
|
||||||
|
|
||||||
|
$IPS -! create mwan3_sticky_$rule hash:ip,mark markmask 0xff00 timeout $timeout
|
||||||
|
|
||||||
|
if [ -n "$iface_id" ]; then
|
||||||
|
if [ -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" ]; then
|
||||||
|
$IPT -I mwan3_rule_$rule -m set ! --match-set mwan3_sticky_$rule src,src -j MARK --set-xmark 0x0/0xff00
|
||||||
|
$IPT -I mwan3_rule_$rule -m mark --mark 0/0xff00 -j MARK --set-xmark $(($iface_id*256))/0xff00
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset iface_id
|
||||||
|
}
|
||||||
|
|
||||||
mwan3_set_user_rules_iptables()
|
mwan3_set_user_rules_iptables()
|
||||||
{
|
{
|
||||||
local proto src_ip src_port dest_ip dest_port use_policy
|
local ipset proto src_ip src_port sticky dest_ip dest_port use_policy rule timeout
|
||||||
|
|
||||||
|
config_get sticky $1 sticky 0
|
||||||
|
config_get timeout $1 timeout 600
|
||||||
|
config_get ipset $1 ipset
|
||||||
config_get proto $1 proto all
|
config_get proto $1 proto all
|
||||||
config_get src_ip $1 src_ip 0.0.0.0/0
|
config_get src_ip $1 src_ip 0.0.0.0/0
|
||||||
config_get src_port $1 src_port 0:65535
|
config_get src_port $1 src_port 0:65535
|
||||||
|
@ -265,6 +292,20 @@ mwan3_set_user_rules_iptables()
|
||||||
config_get dest_port $1 dest_port 0:65535
|
config_get dest_port $1 dest_port 0:65535
|
||||||
config_get use_policy $1 use_policy
|
config_get use_policy $1 use_policy
|
||||||
|
|
||||||
|
rule="$1"
|
||||||
|
|
||||||
|
if [ "$rule" != $(echo "$rule" | cut -c1-15) ]; then
|
||||||
|
$LOG warn "Rule $rule exceeds max of 15 chars. Not setting rule" && return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$ipset" ]; then
|
||||||
|
if [ -z "$($IPS -n list $ipset)" ]; then
|
||||||
|
$IPS create $ipset hash:ip timeout 3600
|
||||||
|
fi
|
||||||
|
|
||||||
|
ipset="-m set --match-set $ipset dst"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$use_policy" ]; then
|
if [ -n "$use_policy" ]; then
|
||||||
if [ "$use_policy" == "default" ]; then
|
if [ "$use_policy" == "default" ]; then
|
||||||
use_policy="MARK --set-xmark 0xff00/0xff00"
|
use_policy="MARK --set-xmark 0xff00/0xff00"
|
||||||
|
@ -273,15 +314,32 @@ mwan3_set_user_rules_iptables()
|
||||||
elif [ "$use_policy" == "blackhole" ]; then
|
elif [ "$use_policy" == "blackhole" ]; then
|
||||||
use_policy="MARK --set-xmark 0xfd00/0xff00"
|
use_policy="MARK --set-xmark 0xfd00/0xff00"
|
||||||
else
|
else
|
||||||
use_policy="mwan3_policy_$use_policy"
|
if [ "$sticky" -eq 1 ]; then
|
||||||
|
|
||||||
|
if ! $IPT -S mwan3_rule_$rule &> /dev/null; then
|
||||||
|
$IPT -N mwan3_rule_$rule
|
||||||
|
fi
|
||||||
|
|
||||||
|
$IPT -F mwan3_rule_$rule
|
||||||
|
|
||||||
|
config_foreach mwan3_set_sticky_iptables interface
|
||||||
|
|
||||||
|
$IPT -A mwan3_rule_$rule -m mark --mark 0/0xff00 -j mwan3_policy_$use_policy
|
||||||
|
$IPT -A mwan3_rule_$rule -m mark ! --mark 0xfc00/0xfc00 -j SET --del-set mwan3_sticky_$rule src,src
|
||||||
|
$IPT -A mwan3_rule_$rule -m mark ! --mark 0xfc00/0xfc00 -j SET --add-set mwan3_sticky_$rule src,src
|
||||||
|
|
||||||
|
use_policy="mwan3_rule_$rule"
|
||||||
|
else
|
||||||
|
use_policy="mwan3_policy_$use_policy"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $proto in
|
case $proto in
|
||||||
tcp|udp)
|
tcp|udp)
|
||||||
$IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
|
$IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
$IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
|
$IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
@ -333,6 +391,7 @@ mwan3_ifupdown()
|
||||||
mwan3_set_iface_route
|
mwan3_set_iface_route
|
||||||
mwan3_set_iface_rules
|
mwan3_set_iface_rules
|
||||||
|
|
||||||
|
[ $ACTION == "ifdown" ] && mwan3_set_iface_ipset
|
||||||
[ $ACTION == "ifup" ] && mwan3_track
|
[ $ACTION == "ifup" ] && mwan3_track
|
||||||
|
|
||||||
config_foreach mwan3_set_policies_iptables policy
|
config_foreach mwan3_set_policies_iptables policy
|
||||||
|
@ -346,9 +405,15 @@ if [ $ACTION == "ifup" ]; then
|
||||||
[ -n "$DEVICE" ] || exit 0
|
[ -n "$DEVICE" ] || exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local IP IPT LOG
|
[ -x /usr/sbin/ip ] || exit 1
|
||||||
|
[ -x /usr/sbin/ipset ] || exit 1
|
||||||
|
[ -x /usr/sbin/iptables ] || exit 1
|
||||||
|
[ -x /usr/bin/logger ] || exit 1
|
||||||
|
|
||||||
|
local IP IPS IPT LOG
|
||||||
|
|
||||||
IP="/usr/sbin/ip -4"
|
IP="/usr/sbin/ip -4"
|
||||||
|
IPS="/usr/sbin/ipset"
|
||||||
IPT="/usr/sbin/iptables -t mangle -w"
|
IPT="/usr/sbin/iptables -t mangle -w"
|
||||||
LOG="/usr/bin/logger -t mwan3 -p"
|
LOG="/usr/bin/logger -t mwan3 -p"
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
. /lib/functions.sh
|
. /lib/functions.sh
|
||||||
|
|
||||||
IP="/usr/sbin/ip -4"
|
IP="/usr/sbin/ip -4"
|
||||||
|
IPS="/usr/sbin/ipset"
|
||||||
IPT="/usr/sbin/iptables -t mangle -w"
|
IPT="/usr/sbin/iptables -t mangle -w"
|
||||||
|
|
||||||
help()
|
help()
|
||||||
|
@ -78,7 +79,7 @@ interfaces()
|
||||||
device=$(uci get -p /var/state network.$1.ifname) &> /dev/null
|
device=$(uci get -p /var/state network.$1.ifname) &> /dev/null
|
||||||
|
|
||||||
if [ -z "$device" ]; then
|
if [ -z "$device" ]; then
|
||||||
echo "Interface $1 is unknown"
|
echo " interface $1 is unknown"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -92,21 +93,21 @@ interfaces()
|
||||||
|
|
||||||
if [ -n "$($IP rule | awk '$5 == "'$device'"')" -a -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -a -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
|
if [ -n "$($IP rule | awk '$5 == "'$device'"')" -a -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -a -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
|
||||||
if [ -n "$(uci get -p /var/state mwan3.$1.track_ip 2> /dev/null)" ]; then
|
if [ -n "$(uci get -p /var/state mwan3.$1.track_ip 2> /dev/null)" ]; then
|
||||||
echo "Interface $1 is online (tracking $tracking)"
|
echo " interface $1 is online (tracking $tracking)"
|
||||||
else
|
else
|
||||||
echo "Interface $1 is online"
|
echo " interface $1 is online"
|
||||||
fi
|
fi
|
||||||
elif [ -n "$($IP rule | awk '$5 == "'$device'"')" -o -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -o -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
|
elif [ -n "$($IP rule | awk '$5 == "'$device'"')" -o -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -o -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
|
||||||
echo "Interface $1 error"
|
echo " interface $1 error"
|
||||||
else
|
else
|
||||||
if [ "$enabled" -eq 1 ]; then
|
if [ "$enabled" -eq 1 ]; then
|
||||||
if [ -n "$(uci get -p /var/state mwan3.$1.track_ip 2> /dev/null)" ]; then
|
if [ -n "$(uci get -p /var/state mwan3.$1.track_ip 2> /dev/null)" ]; then
|
||||||
echo "Interface $1 is offline (tracking $tracking)"
|
echo " interface $1 is offline (tracking $tracking)"
|
||||||
else
|
else
|
||||||
echo "Interface $1 is offline"
|
echo " interface $1 is offline"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "Interface $1 is disabled"
|
echo " interface $1 is disabled"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -141,17 +142,19 @@ policies()
|
||||||
}
|
}
|
||||||
rules()
|
rules()
|
||||||
{
|
{
|
||||||
|
local address
|
||||||
|
|
||||||
if [ -n "$($IPT -S mwan3_connected 2> /dev/null)" ]; then
|
if [ -n "$($IPT -S mwan3_connected 2> /dev/null)" ]; then
|
||||||
echo "Known networks:"
|
echo "Known networks:"
|
||||||
echo "destination policy hits" | awk '{ printf "%-19s%-19s%-9s%s\n",$1,$2,$3}' | awk '1; {gsub(".","-")}1'
|
for address in $($IPS list mwan3_connected | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
|
||||||
$IPT -L mwan3_connected -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_//' | awk '{printf "%-19s%-19s%-9s%s\n",$9,"default",$1}'
|
echo " $address"
|
||||||
|
done
|
||||||
echo -e
|
echo -e
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$($IPT -S mwan3_rules 2> /dev/null)" ]; then
|
if [ -n "$($IPT -S mwan3_rules 2> /dev/null)" ]; then
|
||||||
echo "Active rules:"
|
echo "Active rules:"
|
||||||
echo "source destination proto src-port dest-port policy hits" | awk '{ printf "%-19s%-19s%-7s%-14s%-14s%-16s%-9s%s\n",$1,$2,$3,$4,$5,$6,$7}' | awk '1; {gsub(".","-")}1'
|
$IPT -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_/- /' | sed 's/mwan3_rule_/S /'
|
||||||
$IPT -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_//' | awk '{ printf "%-19s%-19s%-7s%-14s%-14s%-16s%-9s%s\n",$8,$9,$4,$12,$15,$3,$1}'
|
|
||||||
echo -e
|
echo -e
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -171,7 +174,7 @@ start()
|
||||||
|
|
||||||
stop()
|
stop()
|
||||||
{
|
{
|
||||||
local route rule table
|
local ipset route rule table
|
||||||
|
|
||||||
killall mwan3track &> /dev/null
|
killall mwan3track &> /dev/null
|
||||||
rm /var/run/mwan3track-* &> /dev/null
|
rm /var/run/mwan3track-* &> /dev/null
|
||||||
|
@ -186,7 +189,6 @@ stop()
|
||||||
|
|
||||||
$IPT -D PREROUTING -j mwan3_hook &> /dev/null
|
$IPT -D PREROUTING -j mwan3_hook &> /dev/null
|
||||||
$IPT -D OUTPUT -j mwan3_hook &> /dev/null
|
$IPT -D OUTPUT -j mwan3_hook &> /dev/null
|
||||||
$IPT -D OUTPUT -j mwan3_output_hook &> /dev/null
|
|
||||||
|
|
||||||
for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
|
for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
|
||||||
$IPT -F $table &> /dev/null
|
$IPT -F $table &> /dev/null
|
||||||
|
@ -195,6 +197,10 @@ stop()
|
||||||
for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
|
for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
|
||||||
$IPT -X $table &> /dev/null
|
$IPT -X $table &> /dev/null
|
||||||
done
|
done
|
||||||
|
|
||||||
|
for ipset in $(ipset -n list | grep mwan3); do
|
||||||
|
$IPS destroy $ipset
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
restart() {
|
restart() {
|
||||||
|
|
|
@ -216,7 +216,6 @@ define Package/libnetsnmp/install
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/snmpd/conffiles
|
define Package/snmpd/conffiles
|
||||||
/etc/default/snmpd
|
|
||||||
/etc/config/snmpd
|
/etc/config/snmpd
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -225,8 +224,6 @@ define Package/snmpd/install
|
||||||
$(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
|
$(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
|
||||||
$(INSTALL_DIR) $(1)/etc/snmp
|
$(INSTALL_DIR) $(1)/etc/snmp
|
||||||
ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
|
ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
|
||||||
$(INSTALL_DIR) $(1)/etc/default
|
|
||||||
$(INSTALL_DATA) ./files/snmpd.default $(1)/etc/default/snmpd
|
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
$(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
|
$(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
@ -234,7 +231,6 @@ define Package/snmpd/install
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/snmpd-static/conffiles
|
define Package/snmpd-static/conffiles
|
||||||
/etc/default/snmpd
|
|
||||||
/etc/config/snmpd
|
/etc/config/snmpd
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -243,8 +239,6 @@ define Package/snmpd-static/install
|
||||||
$(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
|
$(INSTALL_DATA) ./files/snmpd.conf $(1)/etc/config/snmpd
|
||||||
$(INSTALL_DIR) $(1)/etc/snmp
|
$(INSTALL_DIR) $(1)/etc/snmp
|
||||||
ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
|
ln -sf /var/run/snmpd.conf $(1)/etc/snmp/
|
||||||
$(INSTALL_DIR) $(1)/etc/default
|
|
||||||
$(INSTALL_DATA) ./files/snmpd.default $(1)/etc/default/snmpd
|
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
$(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
|
$(INSTALL_BIN) ./files/snmpd.init $(1)/etc/init.d/snmpd
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
OPTIONS="-Lf /dev/null -p /var/run/snmpd.pid"
|
|
|
@ -2,35 +2,35 @@
|
||||||
# Copyright (C) 2008 OpenWrt.org
|
# Copyright (C) 2008 OpenWrt.org
|
||||||
START=50
|
START=50
|
||||||
|
|
||||||
DEFAULT=/etc/default/snmpd
|
USE_PROCD=1
|
||||||
LIB_D=/var/lib/snmp
|
PROG="/usr/sbin/snmpd"
|
||||||
LOG_D=/var/log
|
|
||||||
RUN_D=/var/run
|
CONFIGFILE="/var/run/snmpd.conf"
|
||||||
PID_F=$RUN_D/snmpd.pid
|
|
||||||
RUN_C=$RUN_D/snmpd.conf
|
|
||||||
|
|
||||||
snmpd_agent_add() {
|
snmpd_agent_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
|
|
||||||
config_get agentaddress "$cfg" agentaddress
|
config_get agentaddress "$cfg" agentaddress
|
||||||
[ -n "$agentaddress" ] || return 0
|
[ -n "$agentaddress" ] || return 0
|
||||||
echo "agentaddress $agentaddress" >> $RUN_C
|
echo "agentaddress $agentaddress" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_system_add() {
|
snmpd_system_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
config_get syslocation "$cfg" sysLocation
|
config_get syslocation "$cfg" sysLocation
|
||||||
[ -n "$syslocation" ] && echo "sysLocation $syslocation" >> $RUN_C
|
[ -n "$syslocation" ] && echo "sysLocation $syslocation" >> $CONFIGFILE
|
||||||
config_get syscontact "$cfg" sysContact
|
config_get syscontact "$cfg" sysContact
|
||||||
[ -n "$syscontact" ] && echo "sysContact $syscontact" >> $RUN_C
|
[ -n "$syscontact" ] && echo "sysContact $syscontact" >> $CONFIGFILE
|
||||||
config_get sysname "$cfg" sysName
|
config_get sysname "$cfg" sysName
|
||||||
[ -n "$sysname" ] && echo "sysName $sysname" >> $RUN_C
|
[ -n "$sysname" ] && echo "sysName $sysname" >> $CONFIGFILE
|
||||||
config_get sysservice "$cfg" sysService
|
config_get sysservice "$cfg" sysService
|
||||||
[ -n "$sysservice" ] && echo "sysService $sysservice" >> $RUN_C
|
[ -n "$sysservice" ] && echo "sysService $sysservice" >> $CONFIGFILE
|
||||||
config_get sysdescr "$cfg" sysDescr
|
config_get sysdescr "$cfg" sysDescr
|
||||||
[ -n "$sysdescr" ] && echo "sysDescr $sysdescr" >> $RUN_C
|
[ -n "$sysdescr" ] && echo "sysDescr $sysdescr" >> $CONFIGFILE
|
||||||
config_get sysobjectid "$cfg" sysObjectID
|
config_get sysobjectid "$cfg" sysObjectID
|
||||||
[ -n "$sysobjectid" ] && echo "sysObjectID $sysobjectid" >> $RUN_C
|
[ -n "$sysobjectid" ] && echo "sysObjectID $sysobjectid" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_com2sec_add() {
|
snmpd_com2sec_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
config_get secname "$cfg" secname
|
config_get secname "$cfg" secname
|
||||||
|
@ -39,8 +39,9 @@ snmpd_com2sec_add() {
|
||||||
[ -n "$source" ] || return 0
|
[ -n "$source" ] || return 0
|
||||||
config_get community "$cfg" community
|
config_get community "$cfg" community
|
||||||
[ -n "$community" ] || return 0
|
[ -n "$community" ] || return 0
|
||||||
echo "com2sec $secname $source $community" >> $RUN_C
|
echo "com2sec $secname $source $community" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_com2sec6_add() {
|
snmpd_com2sec6_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
config_get secname "$cfg" secname
|
config_get secname "$cfg" secname
|
||||||
|
@ -49,8 +50,9 @@ snmpd_com2sec6_add() {
|
||||||
[ -n "$source" ] || return 0
|
[ -n "$source" ] || return 0
|
||||||
config_get community "$cfg" community
|
config_get community "$cfg" community
|
||||||
[ -n "$community" ] || return 0
|
[ -n "$community" ] || return 0
|
||||||
echo "com2sec6 $secname $source $community" >> $RUN_C
|
echo "com2sec6 $secname $source $community" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_group_add() {
|
snmpd_group_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
config_get group "$cfg" group
|
config_get group "$cfg" group
|
||||||
|
@ -59,8 +61,9 @@ snmpd_group_add() {
|
||||||
[ -n "$version" ] || return 0
|
[ -n "$version" ] || return 0
|
||||||
config_get secname "$cfg" secname
|
config_get secname "$cfg" secname
|
||||||
[ -n "$secname" ] || return 0
|
[ -n "$secname" ] || return 0
|
||||||
echo "group $group $version $secname" >> $RUN_C
|
echo "group $group $version $secname" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_view_add() {
|
snmpd_view_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
config_get viewname "$cfg" viewname
|
config_get viewname "$cfg" viewname
|
||||||
|
@ -71,8 +74,9 @@ snmpd_view_add() {
|
||||||
[ -n "$oid" ] || return 0
|
[ -n "$oid" ] || return 0
|
||||||
# optional mask
|
# optional mask
|
||||||
config_get mask "$cfg" mask
|
config_get mask "$cfg" mask
|
||||||
echo "view $viewname $type $oid $mask" >> $RUN_C
|
echo "view $viewname $type $oid $mask" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_access_add() {
|
snmpd_access_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
config_get group "$cfg" group
|
config_get group "$cfg" group
|
||||||
|
@ -92,8 +96,9 @@ snmpd_access_add() {
|
||||||
[ -n "$write" ] || return 0
|
[ -n "$write" ] || return 0
|
||||||
config_get notify "$cfg" notify
|
config_get notify "$cfg" notify
|
||||||
[ -n "$notify" ] || return 0
|
[ -n "$notify" ] || return 0
|
||||||
echo "access $group $context $version $level $prefix $read $write $notify" >> $RUN_C
|
echo "access $group $context $version $level $prefix $read $write $notify" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_pass_add() {
|
snmpd_pass_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local pass='pass'
|
local pass='pass'
|
||||||
|
@ -106,8 +111,9 @@ snmpd_pass_add() {
|
||||||
[ $persist -ne 0 ] && pass='pass_persist'
|
[ $persist -ne 0 ] && pass='pass_persist'
|
||||||
config_get priority "$cfg" priority
|
config_get priority "$cfg" priority
|
||||||
priority=${priority:+-p $priority}
|
priority=${priority:+-p $priority}
|
||||||
echo "$pass $priority $miboid $prog" >> $RUN_C
|
echo "$pass $priority $miboid $prog" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_exec_add() {
|
snmpd_exec_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
|
|
||||||
|
@ -117,8 +123,9 @@ snmpd_exec_add() {
|
||||||
[ -n "$prog" ] || return 0
|
[ -n "$prog" ] || return 0
|
||||||
config_get args "$cfg" args
|
config_get args "$cfg" args
|
||||||
config_get miboid "$cfg" miboid
|
config_get miboid "$cfg" miboid
|
||||||
echo "exec $miboid $name $prog $args" >> $RUN_C
|
echo "exec $miboid $name $prog $args" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
snmpd_disk_add() {
|
snmpd_disk_add() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local disk='disk'
|
local disk='disk'
|
||||||
|
@ -127,13 +134,13 @@ snmpd_disk_add() {
|
||||||
[ -n "$partition" ] || return 0
|
[ -n "$partition" ] || return 0
|
||||||
config_get size "$cfg" size
|
config_get size "$cfg" size
|
||||||
[ -n "$size" ] || return 0
|
[ -n "$size" ] || return 0
|
||||||
echo "$disk $partition $size" >> $RUN_C
|
echo "$disk $partition $size" >> $CONFIGFILE
|
||||||
}
|
}
|
||||||
start() {
|
|
||||||
[ -d $LIB_D ] || mkdir -p $LIB_D
|
start_service() {
|
||||||
[ -d $LOG_D ] || mkdir -p $LOG_D
|
[ -f "$CONFIGFILE" ] && rm -f "$CONFIGFILE"
|
||||||
[ -d $RUN_D ] || mkdir -p $RUN_D
|
|
||||||
[ -f $RUN_C ] && rm -f $RUN_C
|
procd_open_instance
|
||||||
|
|
||||||
config_load snmpd
|
config_load snmpd
|
||||||
|
|
||||||
|
@ -148,10 +155,17 @@ start() {
|
||||||
config_foreach snmpd_exec_add exec
|
config_foreach snmpd_exec_add exec
|
||||||
config_foreach snmpd_disk_add disk
|
config_foreach snmpd_disk_add disk
|
||||||
|
|
||||||
[ -f $DEFAULT ] && . $DEFAULT
|
procd_set_param command $PROG -Lf /dev/null -f
|
||||||
$DEBUG /usr/sbin/snmpd $OPTIONS
|
procd_set_param file $CONFIGFILE
|
||||||
|
procd_set_param respawn
|
||||||
|
|
||||||
|
for iface in $(ls /sys/class/net 2>/dev/null); do
|
||||||
|
procd_append_param netdev "$iface"
|
||||||
|
done
|
||||||
|
|
||||||
|
procd_close_instance
|
||||||
}
|
}
|
||||||
stop() {
|
|
||||||
[ -f $PID_F ] && kill $(cat $PID_F)
|
stop_service() {
|
||||||
[ -f $RUN_C ] && rm -f $RUN_C
|
[ -f "$CONFIGFILE" ] && rm -f "$CONFIGFILE"
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=openconnect
|
PKG_NAME:=openconnect
|
||||||
PKG_VERSION:=7.04
|
PKG_VERSION:=7.05
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
|
PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/openconnect/
|
||||||
PKG_MD5SUM:=828fe81388b7ea1155419b8be64a350f
|
PKG_MD5SUM:=10cd4f61e8a11cdf793da2b0fd7a6003
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS:= \
|
PKG_CONFIG_DEPENDS:= \
|
||||||
CONFIG_OPENCONNECT_GNUTLS \
|
CONFIG_OPENCONNECT_GNUTLS \
|
||||||
|
|
|
@ -8,13 +8,13 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=openssh
|
PKG_NAME:=openssh
|
||||||
PKG_VERSION:=6.7p1
|
PKG_VERSION:=6.8p1
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
|
PKG_SOURCE_URL:=http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
|
||||||
http://ftp.belnet.be/pub/OpenBSD/OpenSSH/portable/
|
http://ftp.belnet.be/pub/OpenBSD/OpenSSH/portable/
|
||||||
PKG_MD5SUM:=3246aa79317b1d23cae783a3bf8275d6
|
PKG_MD5SUM:=08f72de6751acfbd0892b5f003922701
|
||||||
|
|
||||||
PKG_LICENSE:=BSD ISC
|
PKG_LICENSE:=BSD ISC
|
||||||
PKG_LICENSE_FILES:=LICENCE
|
PKG_LICENSE_FILES:=LICENCE
|
||||||
|
@ -29,7 +29,7 @@ include $(INCLUDE_DIR)/package.mk
|
||||||
define Package/openssh/Default
|
define Package/openssh/Default
|
||||||
SECTION:=net
|
SECTION:=net
|
||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
DEPENDS:=+libopenssl +zlib +SSP_SUPPORT:libssp
|
DEPENDS:=+libopenssl +zlib
|
||||||
TITLE:=OpenSSH
|
TITLE:=OpenSSH
|
||||||
MAINTAINER:=Peter Wagner <tripolar@gmx.at>
|
MAINTAINER:=Peter Wagner <tripolar@gmx.at>
|
||||||
URL:=http://www.openssh.com/
|
URL:=http://www.openssh.com/
|
||||||
|
@ -124,7 +124,6 @@ endef
|
||||||
define Package/openssh-sftp-server
|
define Package/openssh-sftp-server
|
||||||
$(call Package/openssh/Default)
|
$(call Package/openssh/Default)
|
||||||
TITLE+= SFTP server
|
TITLE+= SFTP server
|
||||||
DEPENDS:=+SSP_SUPPORT:libssp
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/openssh-sftp-server/description
|
define Package/openssh-sftp-server/description
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/includes.h
|
--- a/includes.h
|
||||||
+++ b/includes.h
|
+++ b/includes.h
|
||||||
@@ -59,6 +59,9 @@
|
@@ -60,6 +60,9 @@
|
||||||
/*
|
/*
|
||||||
*-*-nto-qnx needs these headers for strcasecmp and LASTLOG_FILE respectively
|
*-*-nto-qnx needs these headers for strcasecmp and LASTLOG_FILE respectively
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=snort
|
PKG_NAME:=snort
|
||||||
PKG_VERSION:=2.9.7.0
|
PKG_VERSION:=2.9.7.2
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://www.snort.org/downloads/snort/
|
PKG_SOURCE_URL:=https://www.snort.org/downloads/snort/
|
||||||
PKG_MD5SUM:=c2a45bc56441ee9456478f219dd8d1e2
|
PKG_MD5SUM:=b01e9964827394c39194a0147bc15705
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=librpc
|
PKG_BUILD_DEPENDS:=librpc
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
|
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=sslh
|
PKG_NAME:=sslh
|
||||||
PKG_VERSION:=v1.16
|
PKG_VERSION:=v1.17
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://rutschle.net/tech/
|
PKG_SOURCE_URL:=http://rutschle.net/tech/
|
||||||
PKG_MD5SUM:=c6e7d1cb0adb15f6efe480e36d98c560
|
PKG_MD5SUM:=1fc3ada4bafaca5a9786cc1431f48ed4
|
||||||
PKG_LICENSE:=GPL-2.0+
|
PKG_LICENSE:=GPL-2.0+
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
echosrv: $(OBJS) echosrv.o
|
echosrv: $(OBJS) echosrv.o
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o echosrv echosrv.o probe.o common.o $(LIBS)
|
$(CC) $(CFLAGS) $(LDFLAGS) -o echosrv echosrv.o probe.o common.o $(LIBS)
|
||||||
|
|
||||||
@@ -86,7 +82,7 @@ distclean: clean
|
@@ -85,7 +81,7 @@ distclean: clean
|
||||||
rm -f tags cscope.*
|
rm -f tags cscope.*
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
77
net/stunnel/Makefile
Normal file
77
net/stunnel/Makefile
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2014 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=stunnel
|
||||||
|
PKG_VERSION:=5.10
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_LICENSE:=GPL-2.0+
|
||||||
|
PKG_MAINTAINER:=Michael Haas <haas@computerlinguist.org>
|
||||||
|
PKG_LICENSE_FILES:=COPYING COPYRIGHT.GPL
|
||||||
|
|
||||||
|
PKG_SOURCE_URL:=http://stunnel.cybermirror.org/archive/5.x/
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_MD5SUM:=a0edda805eb7d6ea600a230fb0979ea1
|
||||||
|
|
||||||
|
PKG_FIXUP:=autoreconf
|
||||||
|
PKG_INSTALL:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/stunnel
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
DEPENDS:=+libopenssl
|
||||||
|
TITLE:=SSL TCP Wrapper
|
||||||
|
URL:=http://www.stunnel.org/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/stunnel/description
|
||||||
|
Stunnel is a program that allows you to encrypt arbitrary TCP
|
||||||
|
connections inside SSL (Secure Sockets Layer) available on both Unix
|
||||||
|
and Windows. Stunnel can allow you to secure non-SSL aware daemons and
|
||||||
|
protocols (like POP, IMAP, LDAP, etc) by having Stunnel provide the
|
||||||
|
encryption, requiring no changes to the daemon's code.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/stunnel/conffiles
|
||||||
|
/etc/stunnel/stunnel.conf
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= \
|
||||||
|
--with-random=/dev/urandom \
|
||||||
|
--with-threads=fork \
|
||||||
|
--with-ssl=$(STAGING_DIR)/usr \
|
||||||
|
--disable-libwrap \
|
||||||
|
--disable-systemd
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_IPV6),n)
|
||||||
|
CONFIGURE_ARGS+= \
|
||||||
|
--disable-ipv6
|
||||||
|
endif
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
mkdir -p $(PKG_INSTALL_DIR)/etc/stunnel
|
||||||
|
echo '#dummy' > $(PKG_INSTALL_DIR)/etc/stunnel/stunnel.pem
|
||||||
|
$(call Build/Compile/Default)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/stunnel/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/stunnel $(1)/usr/bin/
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/stunnel
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/stunnel/libstunnel.so $(1)/usr/lib/stunnel/
|
||||||
|
$(INSTALL_DIR) $(1)/etc/stunnel
|
||||||
|
$(INSTALL_CONF) ./files/stunnel.conf $(1)/etc/stunnel/stunnel.conf
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
$(INSTALL_BIN) ./files/stunnel.init $(1)/etc/init.d/stunnel
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,stunnel))
|
45
net/stunnel/files/stunnel.conf
Normal file
45
net/stunnel/files/stunnel.conf
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
; Drop privileges
|
||||||
|
setuid = nobody
|
||||||
|
setgid = nogroup
|
||||||
|
|
||||||
|
; When running under procd, stay in foreground
|
||||||
|
foreground = yes
|
||||||
|
|
||||||
|
; Don't log to stderr, use syslog
|
||||||
|
syslog = yes
|
||||||
|
|
||||||
|
; 1-7. Use 7 for greatest verbosity
|
||||||
|
;debug = 5
|
||||||
|
|
||||||
|
; Starting here, enter your services or uncomment the examples
|
||||||
|
|
||||||
|
; Example:
|
||||||
|
; If your local httpd does not support HTTPS, use stunnel in remote
|
||||||
|
; mode to forward TLS connections coming in on port 443 to non-TLS
|
||||||
|
; on port 80.
|
||||||
|
; Make sure that the cert is available.
|
||||||
|
;[httpd]
|
||||||
|
;accept = 443
|
||||||
|
;connect = 127.0.0.1:80
|
||||||
|
;cert = /etc/stunnel/stunnel.pem
|
||||||
|
|
||||||
|
; Example:
|
||||||
|
; If your local email client does not support TLS,
|
||||||
|
; use stunnel in client mode to forward non-TLS connections on
|
||||||
|
; port 143 to TLS-enabled servername:993.
|
||||||
|
;[imap]
|
||||||
|
;client = yes
|
||||||
|
;accept = 143
|
||||||
|
;connect = servername:993
|
||||||
|
; Disable peer verification - be sure to understand the limitations of peer
|
||||||
|
; verification in stunnel when enabling.
|
||||||
|
;verify = 0
|
||||||
|
|
||||||
|
; Default client section:
|
||||||
|
; stunnel requires at least one section to start successfully.
|
||||||
|
; You can safely remove this section once you have configured
|
||||||
|
; your own. We use client mode here as server requires a certificate.
|
||||||
|
[dummy]
|
||||||
|
client = yes
|
||||||
|
accept = localhost:6000
|
||||||
|
connect = localhost:6001
|
12
net/stunnel/files/stunnel.init
Normal file
12
net/stunnel/files/stunnel.init
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (C) 2006-2008 OpenWrt.org
|
||||||
|
|
||||||
|
START=90
|
||||||
|
USE_PROCD=1
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
procd_open_instance
|
||||||
|
procd_set_param command /usr/bin/stunnel /etc/stunnel/stunnel.conf
|
||||||
|
procd_set_param respawn # respawn automatically if something died
|
||||||
|
procd_close_instance
|
||||||
|
}
|
25
net/stunnel/patches/010_fix_getnameinfo.patch
Normal file
25
net/stunnel/patches/010_fix_getnameinfo.patch
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
--- a/src/prototypes.h
|
||||||
|
+++ b/src/prototypes.h
|
||||||
|
@@ -559,7 +559,7 @@ extern GETNAMEINFO s_getnameinfo;
|
||||||
|
|
||||||
|
#endif /* USE_WIN32 */
|
||||||
|
|
||||||
|
-int getnameinfo(const struct sockaddr *, int, char *, int, char *, int, int);
|
||||||
|
+int getnameinfo(const struct sockaddr *, socklen_t, char *, socklen_t, char *, socklen_t, unsigned int);
|
||||||
|
|
||||||
|
#endif /* !defined HAVE_GETNAMEINFO */
|
||||||
|
|
||||||
|
--- a/src/resolver.c
|
||||||
|
+++ b/src/resolver.c
|
||||||
|
@@ -535,8 +535,9 @@ const char *s_gai_strerror(int err) {
|
||||||
|
/* implementation is limited to functionality needed by stunnel */
|
||||||
|
|
||||||
|
#ifndef HAVE_GETNAMEINFO
|
||||||
|
-int getnameinfo(const struct sockaddr *sa, int salen,
|
||||||
|
- char *host, int hostlen, char *serv, int servlen, int flags) {
|
||||||
|
+int getnameinfo(const struct sockaddr *sa, socklen_t salen,
|
||||||
|
+ char *host, socklen_t hostlen, char *serv, socklen_t servlen,
|
||||||
|
+ unsigned int flags) {
|
||||||
|
|
||||||
|
#if defined(USE_WIN32) && !defined(_WIN32_WCE)
|
||||||
|
if(s_getnameinfo)
|
140
net/stunnel/patches/011_disable_ssp_linking.patch
Normal file
140
net/stunnel/patches/011_disable_ssp_linking.patch
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -5646,66 +5646,66 @@ done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-for flag in -fstack-protector; do
|
||||||
|
- as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$flag" | $as_tr_sh`
|
||||||
|
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
|
||||||
|
-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
|
||||||
|
-if eval \${$as_CACHEVAR+:} false; then :
|
||||||
|
- $as_echo_n "(cached) " >&6
|
||||||
|
-else
|
||||||
|
-
|
||||||
|
- ax_check_save_flags=$CFLAGS
|
||||||
|
- CFLAGS="$CFLAGS $flag"
|
||||||
|
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
-/* end confdefs.h. */
|
||||||
|
-
|
||||||
|
-int
|
||||||
|
-main ()
|
||||||
|
-{
|
||||||
|
-
|
||||||
|
- ;
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-_ACEOF
|
||||||
|
-if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
- eval "$as_CACHEVAR=yes"
|
||||||
|
-else
|
||||||
|
- eval "$as_CACHEVAR=no"
|
||||||
|
-fi
|
||||||
|
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
- CFLAGS=$ax_check_save_flags
|
||||||
|
-fi
|
||||||
|
-eval ac_res=\$$as_CACHEVAR
|
||||||
|
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||||
|
-$as_echo "$ac_res" >&6; }
|
||||||
|
-if test x"`eval 'as_val=${'$as_CACHEVAR'};$as_echo "$as_val"'`" = xyes; then :
|
||||||
|
- if ${CFLAGS+:} false; then :
|
||||||
|
- case " $CFLAGS " in
|
||||||
|
- *" $flag "*)
|
||||||
|
- { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains \$flag"; } >&5
|
||||||
|
- (: CFLAGS already contains $flag) 2>&5
|
||||||
|
- ac_status=$?
|
||||||
|
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
- test $ac_status = 0; }
|
||||||
|
- ;;
|
||||||
|
- *)
|
||||||
|
- { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$flag\""; } >&5
|
||||||
|
- (: CFLAGS="$CFLAGS $flag") 2>&5
|
||||||
|
- ac_status=$?
|
||||||
|
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
- test $ac_status = 0; }
|
||||||
|
- CFLAGS="$CFLAGS $flag"
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
-else
|
||||||
|
- CFLAGS="$flag"
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-else
|
||||||
|
- :
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-done
|
||||||
|
+#for flag in -fstack-protector; do
|
||||||
|
+# as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$flag" | $as_tr_sh`
|
||||||
|
+#{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5
|
||||||
|
+#$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
|
||||||
|
+#if eval \${$as_CACHEVAR+:} false; then :
|
||||||
|
+# $as_echo_n "(cached) " >&6
|
||||||
|
+#else
|
||||||
|
+#
|
||||||
|
+# ax_check_save_flags=$CFLAGS
|
||||||
|
+# CFLAGS="$CFLAGS $flag"
|
||||||
|
+# cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
+#/* end confdefs.h. */
|
||||||
|
+
|
||||||
|
+#int
|
||||||
|
+#main ()
|
||||||
|
+#{
|
||||||
|
+#
|
||||||
|
+# ;
|
||||||
|
+# return 0;
|
||||||
|
+#}
|
||||||
|
+#_ACEOF
|
||||||
|
+#if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
|
+# eval "$as_CACHEVAR=yes"
|
||||||
|
+#else
|
||||||
|
+# eval "$as_CACHEVAR=no"
|
||||||
|
+#fi
|
||||||
|
+#rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
+# CFLAGS=$ax_check_save_flags
|
||||||
|
+#fi
|
||||||
|
+#eval ac_res=\$$as_CACHEVAR
|
||||||
|
+# { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
||||||
|
+#$as_echo "$ac_res" >&6; }
|
||||||
|
+#if test x"`eval 'as_val=${'$as_CACHEVAR'};$as_echo "$as_val"'`" = xyes; then :
|
||||||
|
+# if ${CFLAGS+:} false; then :
|
||||||
|
+# case " $CFLAGS " in
|
||||||
|
+# *" $flag "*)
|
||||||
|
+# { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains \$flag"; } >&5
|
||||||
|
+# (: CFLAGS already contains $flag) 2>&5
|
||||||
|
+# ac_status=$?
|
||||||
|
+# $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
+# test $ac_status = 0; }
|
||||||
|
+# ;;
|
||||||
|
+# *)
|
||||||
|
+# { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS \$flag\""; } >&5
|
||||||
|
+# (: CFLAGS="$CFLAGS $flag") 2>&5
|
||||||
|
+# ac_status=$?
|
||||||
|
+# $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
+# test $ac_status = 0; }
|
||||||
|
+# CFLAGS="$CFLAGS $flag"
|
||||||
|
+# ;;
|
||||||
|
+# esac
|
||||||
|
+#else
|
||||||
|
+# CFLAGS="$flag"
|
||||||
|
+#fi
|
||||||
|
+#
|
||||||
|
+#else
|
||||||
|
+# :
|
||||||
|
+#fi
|
||||||
|
+#
|
||||||
|
+#done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -71,7 +71,7 @@ AX_APPEND_COMPILE_FLAGS([-Wformat=2])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-Wconversion])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-Wno-long-long])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-Wno-deprecated-declarations])
|
||||||
|
-AX_APPEND_COMPILE_FLAGS([-fstack-protector])
|
||||||
|
+#AX_APPEND_COMPILE_FLAGS([-fstack-protector])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-fPIE])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-D_FORTIFY_SOURCE=2])
|
||||||
|
AX_APPEND_LINK_FLAGS([-fPIE -pie])
|
|
@ -41,7 +41,7 @@ endef
|
||||||
define Package/tor
|
define Package/tor
|
||||||
$(call Package/tor/Default)
|
$(call Package/tor/Default)
|
||||||
TITLE:=An anonymous Internet communication system
|
TITLE:=An anonymous Internet communication system
|
||||||
DEPENDS:=+libevent2 +libopenssl +libpthread +librt +SSP_SUPPORT:libssp
|
DEPENDS:=+libevent2 +libopenssl +libpthread +librt
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/tor/description
|
define Package/tor/description
|
||||||
|
|
110
sound/pianod/Makefile
Normal file
110
sound/pianod/Makefile
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2015 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=pianod
|
||||||
|
PKG_VERSION:=173
|
||||||
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=http://deviousfish.com/Downloads/pianod/
|
||||||
|
PKG_MD5SUM:=be0cec19ea6df1c4bc6c1cac8e253445
|
||||||
|
|
||||||
|
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
|
||||||
|
|
||||||
|
PKG_LICENSE:=MIT VARIOUS
|
||||||
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
|
PKG_FIXUP:=autoreconf
|
||||||
|
PKG_INSTALL:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/pianod
|
||||||
|
SECTION:=sound
|
||||||
|
CATEGORY:=Sound
|
||||||
|
DEPENDS:=+libao +libfaad2 +libmad +libpolarssl +libjson-c +libgcrypt +libpthread
|
||||||
|
TITLE:=Pandora radio daemon
|
||||||
|
USERID:=pianod=88:pianod=88
|
||||||
|
URL:=http://deviousfish.com/pianod/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod/description
|
||||||
|
pianod is a Pandora music player client with line-oriented and Websocket control interfaces.
|
||||||
|
A simple protocol makes for easy clients, mix scripting, integration with a
|
||||||
|
home automation system, use as multiple-user music system for home or office.
|
||||||
|
Documentation and configuration information can be found at:
|
||||||
|
http://deviousfish.com/pianod/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod-client
|
||||||
|
SECTION:=sound
|
||||||
|
CATEGORY:=Sound
|
||||||
|
DEPENDS:=+pianod
|
||||||
|
TITLE:=Pandora radio daemon WebUI
|
||||||
|
URL:=http://deviousfish.com/pianod/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod-client/description
|
||||||
|
Web client UI and remote player viewer for pianod
|
||||||
|
Examples --- (Note: The viewer.* files need not be on the pianod host)
|
||||||
|
Main interface: http://pianod-host:4446/pianod
|
||||||
|
Remote viewer: file:///<path>/viewer.html?server=pianod-host:4446 --or--
|
||||||
|
http://pianod-host:4446/pianod/viewer.html?server=pianod-host:4446
|
||||||
|
endef
|
||||||
|
|
||||||
|
CONFIGURE_ARGS+= --with-polarssl
|
||||||
|
|
||||||
|
PIANOD_CLIENT:=pianod-client-compiled-51.tar.gz
|
||||||
|
|
||||||
|
define Download/pianod-client
|
||||||
|
URL:=$(PKG_SOURCE_URL)/Devel
|
||||||
|
FILE:=$(PIANOD_CLIENT)
|
||||||
|
MD5SUM:=abbdee5627bcee6a00c8304da8b4e2e7
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod/conffiles
|
||||||
|
/etc/pianod/startscript
|
||||||
|
/etc/pianod/users
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Prepare
|
||||||
|
$(call Build/Prepare/Default)
|
||||||
|
ifeq ($(CONFIG_PACKAGE_pianod-client),y)
|
||||||
|
$(eval $(call Download,pianod-client))
|
||||||
|
mkdir -p $(PKG_BUILD_DIR)/pianod-client
|
||||||
|
$(TAR) -xf $(DL_DIR)/$(PIANOD_CLIENT) --strip=1 -C $(PKG_BUILD_DIR)/pianod-client
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod-client/Configure
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod-client/Compile
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/pianod $(1)/usr/bin/
|
||||||
|
# These scripts need ksh (install mksh and link)
|
||||||
|
# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/piano $(1)/usr/bin/
|
||||||
|
# $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/runmix $(1)/usr/bin/
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/etc/pianod
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/contrib/startscript-example $(1)/etc/pianod/startscript
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
$(INSTALL_BIN) ./files/pianod.init $(1)/etc/init.d/pianod
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/pianod-client/install
|
||||||
|
$(INSTALL_DIR) $(1)/www/pianod
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/pianod-client/*.{html,js,gif,jpeg,css} $(1)/www/pianod/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,pianod))
|
||||||
|
$(eval $(call BuildPackage,pianod-client))
|
42
sound/pianod/files/pianod.init
Normal file
42
sound/pianod/files/pianod.init
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (C) 2015 OpenWrt.org
|
||||||
|
|
||||||
|
NAME=pianod
|
||||||
|
START=95
|
||||||
|
|
||||||
|
USE_PROCD=1
|
||||||
|
|
||||||
|
PD_USER=$NAME
|
||||||
|
PD_STARTSCRIPT=/etc/$NAME/startscript
|
||||||
|
PD_PASSWDFILE=/etc/$NAME/users
|
||||||
|
PD_WEBUI=/www/$NAME
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
# Take group ownership of audio devices
|
||||||
|
chown root:$NAME /dev/snd/* /dev/mixer /dev/dsp
|
||||||
|
chmod 664 /dev/snd/* /dev/mixer /dev/dsp
|
||||||
|
|
||||||
|
procd_open_instance
|
||||||
|
|
||||||
|
procd_set_param command "/usr/bin/$NAME"
|
||||||
|
|
||||||
|
procd_append_param command -n $PD_USER
|
||||||
|
procd_append_param command -i "$PD_STARTSCRIPT"
|
||||||
|
procd_append_param command -u "$PD_PASSWDFILE"
|
||||||
|
[ -d "$PD_WEBUI" ] && procd_append_param command -c "$PD_WEBUI"
|
||||||
|
# No HTTPS support without certificates
|
||||||
|
procd_append_param command -s 0
|
||||||
|
|
||||||
|
procd_close_instance
|
||||||
|
}
|
||||||
|
|
||||||
|
# Wait for service to exit and release sockets
|
||||||
|
reload_service() {
|
||||||
|
stop
|
||||||
|
sleep 2
|
||||||
|
start
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
reload_service
|
||||||
|
}
|
29
sound/pianod/patches/005-Fix_IPV6_socket_handling.patch
Normal file
29
sound/pianod/patches/005-Fix_IPV6_socket_handling.patch
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
--- a/src/libwaitress/waitress.c
|
||||||
|
+++ b/src/libwaitress/waitress.c
|
||||||
|
@@ -813,7 +813,14 @@ static WaitressReturn_t WaitressConnect
|
||||||
|
sizeof (sockopt));
|
||||||
|
|
||||||
|
/* non-blocking connect will return immediately */
|
||||||
|
- connect (sock, gacurr->ai_addr, gacurr->ai_addrlen);
|
||||||
|
+ if (connect (sock, gacurr->ai_addr, gacurr->ai_addrlen) == -1) {
|
||||||
|
+ // Error if not in-progress or immediate success
|
||||||
|
+ if (errno != EINPROGRESS) {
|
||||||
|
+ // Close socket and try alternatives
|
||||||
|
+ close (sock);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
pollres = WaitressPollLoop (sock, POLLOUT, waith->timeout);
|
||||||
|
if (pollres == 0) {
|
||||||
|
--- a/src/libfootball/fb_service.c
|
||||||
|
+++ b/src/libfootball/fb_service.c
|
||||||
|
@@ -111,6 +111,8 @@ static bool fb_setup_socket (FB_SERVICE
|
||||||
|
service->socket [which] = 0;
|
||||||
|
} else {
|
||||||
|
fb_perror ("socket");
|
||||||
|
+ // Element must be zero (not -1)
|
||||||
|
+ service->socket [which] = 0;
|
||||||
|
};
|
||||||
|
return false;
|
||||||
|
}
|
42
sound/pianod/patches/010-Configure_add_SSL_options.patch
Normal file
42
sound/pianod/patches/010-Configure_add_SSL_options.patch
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -31,8 +31,6 @@ AC_CHECK_LIB([pthread], [pthread_create]
|
||||||
|
# with it, but don't consider it an error.
|
||||||
|
# PKG_CHECK_MODULES only validates that pkg-config returns stuff; it doesn't
|
||||||
|
# validate that these are correct, so check lib to make sure they're right.
|
||||||
|
-PKG_CHECK_MODULES([gnutls], [gnutls],,
|
||||||
|
- [AC_MSG_WARN([No pkg-config for libgnutls])])
|
||||||
|
PKG_CHECK_MODULES([ao], [ao],,
|
||||||
|
[AC_MSG_WARN([No pkg-config for libao])])
|
||||||
|
PKG_CHECK_MODULES([mad], [mad],,
|
||||||
|
@@ -42,12 +40,28 @@ PKG_CHECK_MODULES([json], [json-c],,
|
||||||
|
[PKG_CHECK_MODULES([json], [json0],,
|
||||||
|
[AC_MSG_WARN([No pkg-config for json-c (aka libjson0, libjson)])])])])
|
||||||
|
|
||||||
|
+
|
||||||
|
# Network communication stuff:
|
||||||
|
AC_CHECK_LIB([gcrypt], [gcry_cipher_open],,
|
||||||
|
[AC_MSG_ERROR([Cannot find required library: libgcrypt],1)])
|
||||||
|
-AC_CHECK_LIB([gnutls], [gnutls_record_recv],,
|
||||||
|
+# Check for SSL option
|
||||||
|
+AC_ARG_WITH(polarssl, [ --with-polarssl Build waitress with PolarSSL (default GNUTLS)], [
|
||||||
|
+ AC_MSG_RESULT(>>Using PolarSSL)
|
||||||
|
+ HAS_POLARSSL=1
|
||||||
|
+ AC_DEFINE([USE_POLARSSL], 1, [Build for PolarSSL])
|
||||||
|
+ PKG_CHECK_MODULES([polarssl], [polarssl],,
|
||||||
|
+ [AC_MSG_WARN([No pkg-config for libpolarssl])])
|
||||||
|
+ AC_CHECK_LIB([polarssl], [ssl_set_session],,
|
||||||
|
+ [AC_MSG_ERROR([Cannot find required library: libpolarssl (aka polarssl)],1)])] )
|
||||||
|
+AM_CONDITIONAL([USE_POLARSSL],[test "x$HAS_POLARSSL" = "x1"])
|
||||||
|
+
|
||||||
|
+if test "x$HAS_POLARSSL" != x1 ; then
|
||||||
|
+ PKG_CHECK_MODULES([gnutls], [gnutls],,
|
||||||
|
+ [AC_MSG_WARN([No pkg-config for libgnutls])])
|
||||||
|
+ AC_CHECK_LIB([gnutls], [gnutls_record_recv],,
|
||||||
|
[AC_MSG_ERROR([Cannot find required library: libgnutls (aka gnutls)],1)])
|
||||||
|
-AC_CHECK_FUNCS(gnutls_transport_set_int2 gnutls_sec_param_to_pk_bits)
|
||||||
|
+ AC_CHECK_FUNCS(gnutls_transport_set_int2 gnutls_sec_param_to_pk_bits)
|
||||||
|
+fi
|
||||||
|
|
||||||
|
# Bloody json library may be linked via -ljson, or -ljson-c depending on
|
||||||
|
# the platform. Try both.
|
|
@ -0,0 +1,59 @@
|
||||||
|
--- a/src/libpiano/config.h
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-#define PACKAGE "libpiano"
|
||||||
|
--- a/src/libwaitress/config.h
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-#define PACKAGE "libwaitress"
|
||||||
|
--- a/src/libpiano/piano.h
|
||||||
|
+++ b/src/libpiano/piano.h
|
||||||
|
@@ -39,6 +39,8 @@ THE SOFTWARE.
|
||||||
|
* http://pan-do-ra-api.wikia.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
+#define LIBPIANO_NAME "libpiano"
|
||||||
|
+
|
||||||
|
#define PIANO_RPC_HOST "tuner.pandora.com"
|
||||||
|
#define PIANO_RPC_PATH "/services/json/?"
|
||||||
|
|
||||||
|
--- a/src/libwaitress/waitress.c
|
||||||
|
+++ b/src/libwaitress/waitress.c
|
||||||
|
@@ -922,14 +922,14 @@ static WaitressReturn_t WaitressSendRequ
|
||||||
|
if (WaitressProxyEnabled (waith) && !waith->url.tls) {
|
||||||
|
snprintf (buf, WAITRESS_BUFFER_SIZE,
|
||||||
|
"%s http://%s:%s/%s HTTP/" WAITRESS_HTTP_VERSION "\r\n"
|
||||||
|
- "Host: %s\r\nUser-Agent: " PACKAGE "\r\nConnection: Close\r\n",
|
||||||
|
+ "Host: %s\r\nUser-Agent: " LIBWAITRESS_NAME "\r\nConnection: Close\r\n",
|
||||||
|
(waith->method == WAITRESS_METHOD_GET ? "GET" : "POST"),
|
||||||
|
waith->url.host,
|
||||||
|
WaitressDefaultPort (&waith->url), path, waith->url.host);
|
||||||
|
} else {
|
||||||
|
snprintf (buf, WAITRESS_BUFFER_SIZE,
|
||||||
|
"%s /%s HTTP/" WAITRESS_HTTP_VERSION "\r\n"
|
||||||
|
- "Host: %s\r\nUser-Agent: " PACKAGE "\r\nConnection: Close\r\n",
|
||||||
|
+ "Host: %s\r\nUser-Agent: " LIBWAITRESS_NAME "\r\nConnection: Close\r\n",
|
||||||
|
(waith->method == WAITRESS_METHOD_GET ? "GET" : "POST"),
|
||||||
|
path, waith->url.host);
|
||||||
|
}
|
||||||
|
--- a/src/libwaitress/waitress.h
|
||||||
|
+++ b/src/libwaitress/waitress.h
|
||||||
|
@@ -29,6 +29,8 @@ THE SOFTWARE.
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <gnutls/gnutls.h>
|
||||||
|
|
||||||
|
+#define LIBWAITRESS_NAME "libwaitress"
|
||||||
|
+
|
||||||
|
#define WAITRESS_BUFFER_SIZE 10*1024
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
--- a/src/libpiano/request.c
|
||||||
|
+++ b/src/libpiano/request.c
|
||||||
|
@@ -40,6 +40,7 @@ THE SOFTWARE.
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
/* needed for urlencode */
|
||||||
|
+#include <config.h>
|
||||||
|
#include <waitress.h>
|
||||||
|
|
||||||
|
#include "piano.h"
|
344
sound/pianod/patches/030-Waitress_add_polarssl_variant.patch
Normal file
344
sound/pianod/patches/030-Waitress_add_polarssl_variant.patch
Normal file
|
@ -0,0 +1,344 @@
|
||||||
|
--- a/src/libwaitress/waitress.h
|
||||||
|
+++ b/src/libwaitress/waitress.h
|
||||||
|
@@ -27,7 +27,12 @@ THE SOFTWARE.
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
+
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+typedef struct _polarssl_ctx polarssl_ctx;
|
||||||
|
+#else
|
||||||
|
#include <gnutls/gnutls.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#define LIBWAITRESS_NAME "libwaitress"
|
||||||
|
|
||||||
|
@@ -102,8 +107,9 @@ typedef struct {
|
||||||
|
WaitressUrl_t url;
|
||||||
|
WaitressUrl_t proxy;
|
||||||
|
|
||||||
|
+#if !defined(USE_POLARSSL)
|
||||||
|
gnutls_certificate_credentials_t tlsCred;
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
/* per-request data */
|
||||||
|
struct {
|
||||||
|
int sockfd;
|
||||||
|
@@ -121,7 +127,11 @@ typedef struct {
|
||||||
|
WaitressReturn_t (*read) (void *, char *, const size_t, size_t *);
|
||||||
|
WaitressReturn_t (*write) (void *, const char *, const size_t);
|
||||||
|
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+ polarssl_ctx* sslCtx;
|
||||||
|
+#else
|
||||||
|
gnutls_session_t tlsSession;
|
||||||
|
+#endif
|
||||||
|
} request;
|
||||||
|
} WaitressHandle_t;
|
||||||
|
|
||||||
|
--- a/src/pianod.c
|
||||||
|
+++ b/src/pianod.c
|
||||||
|
@@ -531,8 +531,11 @@ static bool initialize_libraries (APPSTA
|
||||||
|
gcry_check_version (NULL);
|
||||||
|
gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
|
||||||
|
gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
|
||||||
|
+
|
||||||
|
+#if !defined(USE_POLARSSL)
|
||||||
|
int crystatus = gnutls_global_init ();
|
||||||
|
if (crystatus == GNUTLS_E_SUCCESS) {
|
||||||
|
+#endif
|
||||||
|
PianoReturn_t status = PianoInit (&app->ph, app->settings.partnerUser, app->settings.partnerPassword,
|
||||||
|
app->settings.device, app->settings.inkey, app->settings.outkey);
|
||||||
|
if (status == PIANO_RET_OK) {
|
||||||
|
@@ -545,11 +548,13 @@ static bool initialize_libraries (APPSTA
|
||||||
|
} else {
|
||||||
|
flog (LOG_ERROR, "initialize_libraries: PianoInit: %s", PianoErrorToStr (status));
|
||||||
|
}
|
||||||
|
+#if !defined(USE_POLARSSL)
|
||||||
|
gnutls_global_deinit ();
|
||||||
|
} else {
|
||||||
|
flog (LOG_ERROR, "initialize_libraries: gnutls_global_init: %s", gcry_strerror (crystatus));
|
||||||
|
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -728,7 +733,9 @@ int main (int argc, char **argv) {
|
||||||
|
PianoDestroyPlaylist (app.song_history);
|
||||||
|
PianoDestroyPlaylist (app.playlist);
|
||||||
|
WaitressFree (&app.waith);
|
||||||
|
+#if !defined(USE_POLARSSL)
|
||||||
|
gnutls_global_deinit ();
|
||||||
|
+#endif
|
||||||
|
settings_destroy (&app.settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
--- a/src/libwaitress/waitress.c
|
||||||
|
+++ b/src/libwaitress/waitress.c
|
||||||
|
@@ -41,11 +41,33 @@ THE SOFTWARE.
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
-#include <gnutls/x509.h>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "waitress.h"
|
||||||
|
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+
|
||||||
|
+#include <polarssl/ssl.h>
|
||||||
|
+#include <polarssl/entropy.h>
|
||||||
|
+#include <polarssl/ctr_drbg.h>
|
||||||
|
+#include <polarssl/x509.h>
|
||||||
|
+#include <polarssl/sha1.h>
|
||||||
|
+
|
||||||
|
+struct _polarssl_ctx
|
||||||
|
+{
|
||||||
|
+ ssl_context ssl;
|
||||||
|
+ ssl_session session;
|
||||||
|
+ entropy_context entrophy;
|
||||||
|
+ ctr_drbg_context rnd;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+#else
|
||||||
|
+
|
||||||
|
+// Use gnutls by default (USE_POLARSSL not defined)
|
||||||
|
+#include <gnutls/x509.h>
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#define strcaseeq(a,b) (strcasecmp(a,b) == 0)
|
||||||
|
#define WAITRESS_HTTP_VERSION "1.1"
|
||||||
|
|
||||||
|
@@ -56,6 +78,13 @@ typedef struct {
|
||||||
|
|
||||||
|
static WaitressReturn_t WaitressReceiveHeaders (WaitressHandle_t *, size_t *);
|
||||||
|
|
||||||
|
+// gnutls wants (void *) and polarssl want (unsigned char *)
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+#define BUFFER_CAST unsigned char
|
||||||
|
+#else
|
||||||
|
+#define BUFFER_CAST void
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#define READ_RET(buf, count, size) \
|
||||||
|
if ((wRet = waith->request.read (waith, buf, count, size)) != \
|
||||||
|
WAITRESS_RET_OK) { \
|
||||||
|
@@ -444,7 +473,7 @@ static int WaitressPollLoop (int fd, sho
|
||||||
|
* @param write count bytes
|
||||||
|
* @return number of written bytes or -1 on error
|
||||||
|
*/
|
||||||
|
-static ssize_t WaitressPollWrite (void *data, const void *buf, size_t count) {
|
||||||
|
+static ssize_t WaitressPollWrite (void *data, const BUFFER_CAST *buf, size_t count) {
|
||||||
|
int pollres = -1;
|
||||||
|
ssize_t retSize;
|
||||||
|
WaitressHandle_t *waith = data;
|
||||||
|
@@ -478,13 +507,20 @@ static WaitressReturn_t WaitressOrdinary
|
||||||
|
return waith->request.readWriteRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static WaitressReturn_t WaitressGnutlsWrite (void *data, const char *buf,
|
||||||
|
+static WaitressReturn_t WaitressTlsWrite (void *data, const char *buf,
|
||||||
|
const size_t size) {
|
||||||
|
WaitressHandle_t *waith = data;
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+
|
||||||
|
+ if (ssl_write (&waith->request.sslCtx->ssl, buf, size) < 0) {
|
||||||
|
+ return WAITRESS_RET_TLS_WRITE_ERR;
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
|
||||||
|
if (gnutls_record_send (waith->request.tlsSession, buf, size) < 0) {
|
||||||
|
return WAITRESS_RET_TLS_WRITE_ERR;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
return waith->request.readWriteRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -494,7 +530,7 @@ static WaitressReturn_t WaitressGnutlsWr
|
||||||
|
* @param buffer size
|
||||||
|
* @return number of read bytes or -1 on error
|
||||||
|
*/
|
||||||
|
-static ssize_t WaitressPollRead (void *data, void *buf, size_t count) {
|
||||||
|
+static ssize_t WaitressPollRead (void *data, BUFFER_CAST *buf, size_t count) {
|
||||||
|
int pollres = -1;
|
||||||
|
ssize_t retSize;
|
||||||
|
WaitressHandle_t *waith = data;
|
||||||
|
@@ -531,16 +567,34 @@ static WaitressReturn_t WaitressOrdinary
|
||||||
|
return waith->request.readWriteRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static WaitressReturn_t WaitressGnutlsRead (void *data, char *buf,
|
||||||
|
+static WaitressReturn_t WaitressTlsRead (void *data, char *buf,
|
||||||
|
const size_t size, size_t *retSize) {
|
||||||
|
WaitressHandle_t *waith = data;
|
||||||
|
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+ int ret;
|
||||||
|
+
|
||||||
|
+ *retSize = 0;
|
||||||
|
+ waith->request.readWriteRet = WAITRESS_RET_OK;
|
||||||
|
+ ret = ssl_read (&waith->request.sslCtx->ssl, buf, size);
|
||||||
|
+
|
||||||
|
+ if (ret < 0) {
|
||||||
|
+ if (ret != POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY) {
|
||||||
|
+ waith->request.readWriteRet = WAITRESS_RET_TLS_READ_ERR;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return waith->request.readWriteRet;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ *retSize = ret;
|
||||||
|
+#else
|
||||||
|
ssize_t ret = gnutls_record_recv (waith->request.tlsSession, buf, size);
|
||||||
|
if (ret < 0) {
|
||||||
|
return WAITRESS_RET_TLS_READ_ERR;
|
||||||
|
} else {
|
||||||
|
*retSize = ret;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
return waith->request.readWriteRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -727,10 +781,28 @@ static int WaitressParseStatusline (cons
|
||||||
|
/* verify server certificate
|
||||||
|
*/
|
||||||
|
static WaitressReturn_t WaitressTlsVerify (const WaitressHandle_t *waith) {
|
||||||
|
+
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+ unsigned char fingerprint[20];
|
||||||
|
+
|
||||||
|
+ const x509_crt* cert = ssl_get_peer_cert (&waith->request.sslCtx->ssl);
|
||||||
|
+
|
||||||
|
+ if (NULL == cert) {
|
||||||
|
+ return WAITRESS_RET_TLS_HANDSHAKE_ERR;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ sha1 (cert->raw.p, cert->raw.len, fingerprint);
|
||||||
|
+
|
||||||
|
+ if (memcmp (fingerprint, waith->tlsFingerprint, sizeof (fingerprint)) != 0) {
|
||||||
|
+ return WAITRESS_RET_TLS_FINGERPRINT_MISMATCH;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#else
|
||||||
|
gnutls_session_t session = waith->request.tlsSession;
|
||||||
|
unsigned int certListSize;
|
||||||
|
const gnutls_datum_t *certList;
|
||||||
|
gnutls_x509_crt_t cert;
|
||||||
|
+ char fingerprint[20];
|
||||||
|
|
||||||
|
if (gnutls_certificate_type_get (session) != GNUTLS_CRT_X509) {
|
||||||
|
return WAITRESS_RET_TLS_HANDSHAKE_ERR;
|
||||||
|
@@ -750,7 +822,6 @@ static WaitressReturn_t WaitressTlsVerif
|
||||||
|
return WAITRESS_RET_TLS_HANDSHAKE_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
- char fingerprint[20];
|
||||||
|
size_t fingerprintSize = sizeof (fingerprint);
|
||||||
|
if (gnutls_x509_crt_get_fingerprint (cert, GNUTLS_DIG_SHA1, fingerprint,
|
||||||
|
&fingerprintSize) != 0) {
|
||||||
|
@@ -763,7 +834,7 @@ static WaitressReturn_t WaitressTlsVerif
|
||||||
|
}
|
||||||
|
|
||||||
|
gnutls_x509_crt_deinit (cert);
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
return WAITRESS_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -807,11 +878,6 @@ static WaitressReturn_t WaitressConnect
|
||||||
|
/* we need shorter timeouts for connect() */
|
||||||
|
fcntl (sock, F_SETFL, O_NONBLOCK);
|
||||||
|
|
||||||
|
- /* increase socket receive buffer */
|
||||||
|
- const int sockopt = 256*1024;
|
||||||
|
- setsockopt (sock, SOL_SOCKET, SO_RCVBUF, &sockopt,
|
||||||
|
- sizeof (sockopt));
|
||||||
|
-
|
||||||
|
/* non-blocking connect will return immediately */
|
||||||
|
if (connect (sock, gacurr->ai_addr, gacurr->ai_addrlen) == -1) {
|
||||||
|
// Error if not in-progress or immediate success
|
||||||
|
@@ -880,6 +946,11 @@ static WaitressReturn_t WaitressConnect
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+ if (ssl_handshake (&waith->request.sslCtx->ssl) != 0) {
|
||||||
|
+ return WAITRESS_RET_TLS_HANDSHAKE_ERR;
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
/* Ignore return code as connection will likely still succeed */
|
||||||
|
gnutls_server_name_set (waith->request.tlsSession, GNUTLS_NAME_DNS,
|
||||||
|
waith->url.host, strlen (waith->url.host));
|
||||||
|
@@ -887,14 +958,15 @@ static WaitressReturn_t WaitressConnect
|
||||||
|
if (gnutls_handshake (waith->request.tlsSession) != GNUTLS_E_SUCCESS) {
|
||||||
|
return WAITRESS_RET_TLS_HANDSHAKE_ERR;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if ((wRet = WaitressTlsVerify (waith)) != WAITRESS_RET_OK) {
|
||||||
|
return wRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* now we can talk encrypted */
|
||||||
|
- waith->request.read = WaitressGnutlsRead;
|
||||||
|
- waith->request.write = WaitressGnutlsWrite;
|
||||||
|
+ waith->request.read = WaitressTlsRead;
|
||||||
|
+ waith->request.write = WaitressTlsWrite;
|
||||||
|
}
|
||||||
|
|
||||||
|
return WAITRESS_RET_OK;
|
||||||
|
@@ -1120,6 +1192,21 @@ WaitressReturn_t WaitressFetchCall (Wait
|
||||||
|
waith->request.contentLengthKnown = false;
|
||||||
|
|
||||||
|
if (waith->url.tls) {
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+ waith->request.sslCtx = calloc (1, sizeof(polarssl_ctx));
|
||||||
|
+
|
||||||
|
+ entropy_init (&waith->request.sslCtx->entrophy);
|
||||||
|
+ ctr_drbg_init (&waith->request.sslCtx->rnd, entropy_func, &waith->request.sslCtx->entrophy, "libwaitress", 11);
|
||||||
|
+ ssl_init (&waith->request.sslCtx->ssl);
|
||||||
|
+
|
||||||
|
+ ssl_set_endpoint (&waith->request.sslCtx->ssl, SSL_IS_CLIENT);
|
||||||
|
+ ssl_set_authmode (&waith->request.sslCtx->ssl, SSL_VERIFY_NONE);
|
||||||
|
+ ssl_set_rng (&waith->request.sslCtx->ssl, ctr_drbg_random, &waith->request.sslCtx->rnd);
|
||||||
|
+ ssl_set_session (&waith->request.sslCtx->ssl, &waith->request.sslCtx->session);
|
||||||
|
+ ssl_set_bio (&waith->request.sslCtx->ssl,
|
||||||
|
+ WaitressPollRead, waith,
|
||||||
|
+ WaitressPollWrite, waith);
|
||||||
|
+#else
|
||||||
|
gnutls_init (&waith->request.tlsSession, GNUTLS_CLIENT);
|
||||||
|
gnutls_set_default_priority (waith->request.tlsSession);
|
||||||
|
|
||||||
|
@@ -1137,6 +1224,7 @@ WaitressReturn_t WaitressFetchCall (Wait
|
||||||
|
WaitressPollRead);
|
||||||
|
gnutls_transport_set_push_function (waith->request.tlsSession,
|
||||||
|
WaitressPollWrite);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* buffer is required for connect already */
|
||||||
|
@@ -1148,15 +1236,22 @@ WaitressReturn_t WaitressFetchCall (Wait
|
||||||
|
if ((wRet = WaitressSendRequest (waith)) == WAITRESS_RET_OK) {
|
||||||
|
wRet = WaitressReceiveResponse (waith);
|
||||||
|
}
|
||||||
|
+#if !defined(USE_POLARSSL)
|
||||||
|
if (waith->url.tls) {
|
||||||
|
gnutls_bye (waith->request.tlsSession, GNUTLS_SHUT_RDWR);
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* cleanup */
|
||||||
|
if (waith->url.tls) {
|
||||||
|
+#if defined(USE_POLARSSL)
|
||||||
|
+ ssl_free (&waith->request.sslCtx->ssl);
|
||||||
|
+ free (waith->request.sslCtx);
|
||||||
|
+#else
|
||||||
|
gnutls_deinit (waith->request.tlsSession);
|
||||||
|
gnutls_certificate_free_credentials (waith->tlsCred);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
if (waith->request.sockfd != -1) {
|
||||||
|
close (waith->request.sockfd);
|
|
@ -298,7 +298,7 @@ $(eval $(call BuildPlugin,logfile,log files output,logfile,))
|
||||||
$(eval $(call BuildPlugin,madwifi,MadWifi status input,madwifi,))
|
$(eval $(call BuildPlugin,madwifi,MadWifi status input,madwifi,))
|
||||||
#$(eval $(call BuildPlugin,mysql,MySQL status input,mysql,+PACKAGE_collectd-mod-mysql:libmysqlclient-r))
|
#$(eval $(call BuildPlugin,mysql,MySQL status input,mysql,+PACKAGE_collectd-mod-mysql:libmysqlclient-r))
|
||||||
$(eval $(call BuildPlugin,memory,physical memory usage input,memory,))
|
$(eval $(call BuildPlugin,memory,physical memory usage input,memory,))
|
||||||
$(eval $(call BuildPlugin,modbus,read variables through libmodbus,modbus,+PACKAGE_collectd-mod-modbus:libmodbus @BROKEN))
|
$(eval $(call BuildPlugin,modbus,read variables through libmodbus,modbus,+PACKAGE_collectd-mod-modbus:libmodbus))
|
||||||
$(eval $(call BuildPlugin,netlink,netlink input,netlink,+PACKAGE_collectd-mod-netlink:ip @BROKEN))
|
$(eval $(call BuildPlugin,netlink,netlink input,netlink,+PACKAGE_collectd-mod-netlink:ip @BROKEN))
|
||||||
$(eval $(call BuildPlugin,network,network input/output,network))
|
$(eval $(call BuildPlugin,network,network input/output,network))
|
||||||
$(eval $(call BuildPlugin,nginx,nginx status input,nginx,+PACKAGE_collectd-mod-nginx:libcurl))
|
$(eval $(call BuildPlugin,nginx,nginx status input,nginx,+PACKAGE_collectd-mod-nginx:libcurl))
|
||||||
|
|
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=mmc-utils
|
PKG_NAME:=mmc-utils
|
||||||
PKG_VERSION=2015-03-06-$(PKG_SOURCE_VERSION)
|
PKG_VERSION=2015-03-06-$(PKG_SOURCE_VERSION)
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
|
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
Index: mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189.orig/Makefile
|
||||||
|
+++ mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189/Makefile
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
CC ?= gcc
|
||||||
|
-AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2
|
||||||
|
+AM_CFLAGS = -D_FILE_OFFSET_BITS=64
|
||||||
|
CFLAGS ?= -g -O2
|
||||||
|
objects = \
|
||||||
|
mmc.o \
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2007-2014 OpenWrt.org
|
# Copyright (C) 2007-2015 OpenWrt.org
|
||||||
#
|
#
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
# See /LICENSE for more information.
|
# See /LICENSE for more information.
|
||||||
|
@ -8,12 +8,14 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=nano
|
PKG_NAME:=nano
|
||||||
PKG_VERSION:=2.3.6
|
PKG_VERSION:=2.4.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
PKG_LICENSE:=GPL-3.0+
|
||||||
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://www.nano-editor.org/dist/v2.3
|
PKG_SOURCE_URL:=http://www.nano-editor.org/dist/v2.4
|
||||||
PKG_MD5SUM:=df3d201aecb3155a80633990cc467831
|
PKG_MD5SUM:=e5c9c6424ee2303663ae4b99ecd4b493
|
||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=zoneinfo
|
PKG_NAME:=zoneinfo
|
||||||
PKG_VERSION:=2015a
|
PKG_VERSION:=2015b
|
||||||
PKG_VERSION_CODE:=2015a
|
PKG_VERSION_CODE:=2015b
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
#As i couldn't find real license used "Public Domain"
|
#As i couldn't find real license used "Public Domain"
|
||||||
|
@ -20,14 +20,14 @@ PKG_LICENSE:=Public Domain
|
||||||
PKG_SOURCE:=tzdata$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=tzdata$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_CODE:=tzcode$(PKG_VERSION_CODE).tar.gz
|
PKG_SOURCE_CODE:=tzcode$(PKG_VERSION_CODE).tar.gz
|
||||||
PKG_SOURCE_URL:=http://www.iana.org/time-zones/repository/releases
|
PKG_SOURCE_URL:=http://www.iana.org/time-zones/repository/releases
|
||||||
PKG_MD5SUM:=4ed11c894a74a5ea64201b1c6dbb8831
|
PKG_MD5SUM:=75571bb17c7b6be88a9f8872e45bc726
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
define Download/tzcode
|
define Download/tzcode
|
||||||
FILE=$(PKG_SOURCE_CODE)
|
FILE=$(PKG_SOURCE_CODE)
|
||||||
URL=$(PKG_SOURCE_URL)
|
URL=$(PKG_SOURCE_URL)
|
||||||
MD5SUM:=8f375ede46ae137fbac047ac431bda37
|
MD5SUM:=f073a7c9bca7f9fe408491f826e92968
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call Download,tzcode))
|
$(eval $(call Download,tzcode))
|
||||||
|
|
Loading…
Reference in a new issue