include $(TOPDIR)/rules.mk
PKG_NAME:=m4
-PKG_VERSION:=1.4.17
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.18
+PKG_RELEASE:=1
PKG_SOURCE_URL:=@GNU/m4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MD5SUM:=12a3c829301a4fd6586a57d3fcf196dc
+PKG_MD5SUM:=f2c1e86ca0a404ff281631bdc8377638992744b175afb806e25871a24a934e07
PKG_MAINTAINER:=Heinrich Schuchardt <xypron.glpk@gmx.de>
PKG_LICENSE:=GPL-3.0+
PKG_VERSION:=2.1.0
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_URL:=https://bitbucket.org/wilhelmy/lua-bencode
-PKG_SOURCE_PROTO:=hg
-PKG_SOURCE_VERSION:=500243383cb6acbddd3cf12aee6e4667aab53324
+PKG_SOURCE_URL:=https://bitbucket.org/wilhelmy/lua-bencode/downloads/
+PKG_HASH:=4624f33ff026bc62990a323ee4953e42d68430c38a1a4726c9cfd77c085b1422
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/rules.mk
PKG_NAME:=php
-PKG_VERSION:=7.1.3
-PKG_RELEASE:=2
+PKG_VERSION:=7.1.4
+PKG_RELEASE:=5
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_MD5SUM:=d604d688be17f4a05b99dbb7fb9581f4
-PKG_HASH:=e4887c2634778e37fd962fbdf5c4a7d32cd708482fe07b448804625570cb0bb0
+PKG_MD5SUM:=a74c13f8779349872b365e6732e8c98e
+PKG_HASH:=71514386adf3e963df087c2044a0b3747900b8b1fc8da3a99f0a0ae9180d300b
PKG_FIXUP:=libtool autoreconf
PKG_BUILD_PARALLEL:=1
config PHP7_FILTER
bool "PHP7 Filter support"
depends on PACKAGE_php7-cli || PACKAGE_php7-cgi
+ default y
config PHP7_LIBXML
bool "PHP7 LIBXML support"
This package contains the FastCGI Process Manager of the PHP7 interpreter.
endef
+# not everything groks --disable-nls
+DISABLE_NLS:=
+
CONFIGURE_ARGS+= \
--enable-cli \
--enable-cgi \
--with-jpeg-dir="$(STAGING_DIR)/usr" \
--with-png-dir="$(STAGING_DIR)/usr" \
--without-xpm-dir \
- --without-t1lib \
--enable-gd-native-ttf \
--disable-gd-jis-conv
else
ifneq ($(SDK)$(CONFIG_PACKAGE_php7-mod-intl),)
CONFIGURE_ARGS+= --enable-intl=shared
+ TARGET_CXXFLAGS+= -std=c++0x
else
CONFIGURE_ARGS+= --disable-intl
endif
--- /dev/null
+--- a/configure.in 2017-04-14 11:53:48.345481008 -0600
++++ b/configure.in 2017-04-14 11:58:47.887644651 -0600
+@@ -497,6 +497,7 @@
+ locale.h \
+ monetary.h \
+ netdb.h \
++poll.h \
+ pwd.h \
+ resolv.h \
+ signal.h \
+@@ -509,7 +510,6 @@
+ sys/file.h \
+ sys/mman.h \
+ sys/mount.h \
+-sys/poll.h \
+ sys/resource.h \
+ sys/select.h \
+ sys/socket.h \
+--- a/main/php_network.h 2017-04-11 09:37:35.000000000 -0600
++++ b/main/php_network.h 2017-04-14 12:00:00.736168983 -0600
+@@ -122,8 +122,8 @@
+ /* uncomment this to debug poll(2) emulation on systems that have poll(2) */
+ /* #define PHP_USE_POLL_2_EMULATION 1 */
+
+-#if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL)
+-# include <sys/poll.h>
++#if defined(HAVE_POLL_H) && defined(HAVE_POLL)
++# include <poll.h>
+ typedef struct pollfd php_pollfd;
+ #else
+ typedef struct _php_pollfd {
+--- a/main/network.c 2017-04-11 09:37:35.000000000 -0600
++++ b/main/network.c 2017-04-14 11:59:44.528052372 -0600
+@@ -51,8 +51,8 @@
+ #ifdef HAVE_SYS_SELECT_H
+ #include <sys/select.h>
+ #endif
+-#if HAVE_SYS_POLL_H
+-#include <sys/poll.h>
++#if HAVE_POLL_H
++#include <poll.h>
+ #endif
+
+ #if defined(NETWARE)
+--- a/main/fastcgi.c 2017-04-11 09:37:35.000000000 -0600
++++ b/main/fastcgi.c 2017-04-14 12:01:06.924644901 -0600
+@@ -76,8 +76,8 @@
+ # include <netdb.h>
+ # include <signal.h>
+
+-# if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL)
+-# include <sys/poll.h>
++# if defined(HAVE_POLL_H) && defined(HAVE_POLL)
++# include <poll.h>
+ # endif
+ # if defined(HAVE_SYS_SELECT_H)
+ # include <sys/select.h>
+@@ -1430,7 +1430,7 @@
+ break;
+ #else
+ if (req->fd >= 0) {
+-#if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL)
++#if defined(HAVE_POLL_H) && defined(HAVE_POLL)
+ struct pollfd fds;
+ int ret;
+
include $(INCLUDE_DIR)/target.mk
PKG_NAME:=boost
-PKG_VERSION:=1.63.0
-PKG_SOURCE_VERSION:=1_63_0
-PKG_RELEASE:=2
+PKG_VERSION:=1.64.0
+PKG_SOURCE_VERSION:=1_64_0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=https://sourceforge.net/projects/boost/files/boost/$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)_$(PKG_SOURCE_VERSION)
-PKG_MD5SUM:=beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0
+PKG_MD5SUM:=7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332
PKG_LICENSE:=Boost Software License <http://www.boost.org/users/license.html>
PKG_MAINTAINER:=Carlos M. Ferreira <carlosmf.pt@gmail.com>
endef
define Package/boost/description
-This package provides the Boost v1.63 libraries.
+This package provides the Boost v1.64 libraries.
Boost is a set of free, peer-reviewed, portable C++ source libraries.
-----------------------------------------------------------------------------
- wave
There are many more header-only libraries supported by Boost.
-See more at http://www.boost.org/doc/libs/1_63_0/
+See more at http://www.boost.org/doc/libs/1_64_0/
endef
PKG_BUILD_DEPENDS:=boost/host PACKAGE_python:python PACKAGE_python3:python3
--- /dev/null
+Index: boost_1_64_0/boost/context/continuation.hpp
+===================================================================
+--- boost_1_64_0.orig/boost/context/continuation.hpp 2017-04-24 12:36:55.987412031 +0100
++++ boost_1_64_0/boost/context/continuation.hpp 2017-04-24 12:37:49.730416122 +0100
+@@ -56,7 +56,7 @@
+ namespace context {
+ namespace detail {
+
+-template< int N >
++template<typename U>
+ struct helper {
+ template< typename T >
+ static T convert( T && t) noexcept {
+@@ -64,8 +64,8 @@
+ }
+ };
+
+-template<>
+-struct helper< 1 > {
++template<typename U>
++struct helper< std::tuple<U> > {
+ template< typename T >
+ static std::tuple< T > convert( T && t) noexcept {
+ return std::make_tuple( std::forward< T >( t) );
+@@ -239,15 +239,16 @@
+
+ }
+
+-template< typename Ctx, typename Fn, typename ... Arg >
++template< typename Ctx, typename Fn, typename Arg >
+ detail::transfer_t context_ontop( detail::transfer_t t) {
+- auto p = static_cast< std::tuple< Fn, std::tuple< Arg ... > > * >( t.data);
++ auto p = static_cast< Arg * >( t.data);
+ BOOST_ASSERT( nullptr != p);
+ typename std::decay< Fn >::type fn = std::forward< Fn >( std::get< 0 >( * p) );
+ t.data = & std::get< 1 >( * p);
+ Ctx c{ t };
+ // execute function, pass continuation via reference
+- std::get< 1 >( * p) = detail::helper< sizeof ... (Arg) >::convert( fn( std::move( c) ) );
++ typedef typename std::decay<decltype(std::get<1>(*p))>::type H;
++ std::get< 1 >(* p) = detail::helper<H>::convert( fn( std::move( c) ) );
+ #if defined(BOOST_NO_CXX14_STD_EXCHANGE)
+ return { detail::exchange( c.t_.fctx, nullptr), & std::get< 1 >( * p) };
+ #else
+@@ -275,7 +276,7 @@
+ template< typename Ctx, typename StackAlloc, typename Fn >
+ friend class detail::record;
+
+- template< typename Ctx, typename Fn, typename ... Arg >
++ template< typename Ctx, typename Fn, typename Arg >
+ friend detail::transfer_t
+ context_ontop( detail::transfer_t);
+
+@@ -354,7 +355,7 @@
+ template< typename Fn, typename ... Arg >
+ continuation resume_with( Fn && fn, Arg ... arg) {
+ BOOST_ASSERT( nullptr != t_.fctx);
+- auto tpl = std::make_tuple( std::forward< Fn >( fn), std::forward< Arg >( arg) ... );
++ auto tpl = std::make_tuple( std::forward< Fn >( fn), std::make_tuple( std::forward< Arg >( arg) ... ));
+ return detail::ontop_fcontext(
+ #if defined(BOOST_NO_CXX14_STD_EXCHANGE)
+ detail::exchange( t_.fctx, nullptr),
+@@ -362,7 +363,7 @@
+ std::exchange( t_.fctx, nullptr),
+ #endif
+ & tpl,
+- context_ontop< continuation, Fn, Arg ... >);
++ context_ontop< continuation, Fn, decltype(tpl) >);
+ }
+
+ continuation resume() {
+@@ -451,7 +452,8 @@
+ template<
+ typename Fn,
+ typename ... Arg,
+- typename = detail::disable_overload< continuation, Fn >
++ typename = detail::disable_overload< continuation, Fn >,
++ typename = detail::disable_overload< std::allocator_arg_t, Fn >
+ >
+ continuation
+ callcc( Fn && fn, Arg ... arg) {
+++ /dev/null
-Index: boost_1_63_0/boost/test/impl/execution_monitor.ipp
-===================================================================
---- boost_1_63_0.orig/boost/test/impl/execution_monitor.ipp
-+++ boost_1_63_0/boost/test/impl/execution_monitor.ipp
-@@ -1375,7 +1375,7 @@ enable( unsigned mask )
- #endif
-
- return ~old_cw & BOOST_FPE_ALL;
--#elif defined(__GLIBC__) && defined(__USE_GNU)
-+#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
- if (BOOST_FPE_ALL == BOOST_FPE_OFF)
- /* Not Implemented */
- return BOOST_FPE_OFF;
-@@ -1415,7 +1415,7 @@ disable( unsigned mask )
- #endif
-
- return ~old_cw & BOOST_FPE_ALL;
--#elif defined(__GLIBC__) && defined(__USE_GNU)
-+#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
- if (BOOST_FPE_ALL == BOOST_FPE_OFF)
- /* Not Implemented */
- return BOOST_FPE_INV;
include $(TOPDIR)/rules.mk
PKG_NAME:=icu4c
-PKG_VERSION:=58.2
-PKG_RELEASE:=5
+PKG_VERSION:=59.1
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-58_2-src.tgz
+PKG_SOURCE:=$(PKG_NAME)-59_1-src.tgz
PKG_SOURCE_URL:=http://download.icu-project.org/files/$(PKG_NAME)/$(PKG_VERSION)
-PKG_MD5SUM:=fac212b32b7ec7ab007a12dff1f3aea1
+PKG_MD5SUM:=54923fa9fab5b2b83f235fb72523de37
+PKG_HASH:=7132fdaf9379429d004005217f10e00b7d2319d0fea22bdfddef8991c45b75fe
PKG_LICENSE:=ICU-1.8.1+
PKG_LICENSE_FILES:=LICENSE
index 9db6c52..6aa2273 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -180,7 +180,6 @@ install-icu: $(INSTALLED_BUILT_FILES)
+@@ -184,7 +184,6 @@ install-icu: $(INSTALLED_BUILT_FILES)
$(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh
@$(MKINSTALLDIRS) $(DESTDIR)$(libdir)/pkgconfig
$(INSTALL_DATA) $(ALL_PKGCONFIG_FILES) $(DESTDIR)$(libdir)/pkgconfig/
--- a/configure.ac
+++ b/configure.ac
-@@ -893,8 +893,8 @@
+@@ -883,8 +883,8 @@
AC_CHECK_FUNC(strtod_l)
if test x$ac_cv_func_strtod_l = xyes
then
U_HAVE_STRTOD_L=0
--- a/configure
+++ b/configure
-@@ -7053,8 +7053,8 @@
+@@ -7093,8 +7093,8 @@
if test x$ac_cv_func_strtod_l = xyes
then
#
-# Copyright (C) 2011-2014 OpenWrt.org
+# Copyright (C) 2011-2017 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:=jansson
-PKG_VERSION:=2.7
+PKG_VERSION:=2.10
PKG_RELEASE:=1
PKG_LICENSE:=MIT
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.digip.org/jansson/releases/
-PKG_MD5SUM:=3a106a465bbb77637550b422f5b262ef
+PKG_HASH:=241125a55f739cd713808c4e0089986b8c3da746da8b384952912ad659fa2f5a
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=libgd
-PKG_VERSION:=2.1.1
-PKG_RELEASE:=1
+PKG_VERSION:=2.2.4
+PKG_RELEASE:=2
-PKG_SOURCE:=gd-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/libgd/libgd/archive
-PKG_MD5SUM:=e91a1a99903e460e7ba00a794e72cc1e
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/releases/download/gd-$(PKG_VERSION)/
+PKG_HASH:=137f13a7eb93ce72e32ccd7cebdab6874f8cf7ddf31d3a455a68e016ecd9e4e6
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=MIT
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
-PKG_BUILD_DIR:=$(BUILD_DIR)/libgd-gd-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/libgd
SECTION:=libs
CATEGORY:=Libraries
- DEPENDS:=+libjpeg +libpng
+ DEPENDS:=+libjpeg +libpng +LIBGD_TIFF:libtiff +LIBGD_FREETYPE:libfreetype
TITLE:=The GD graphics library
URL:=http://www.libgd.org/
+ MENU:=1
endef
define Package/libgd/description
programmers. GD creates PNG, JPEG and GIF images, among other formats.
endef
+define Package/libgd/config
+ if PACKAGE_libgd
+ config LIBGD_TIFF
+ bool "TIFF image support"
+ default n
+ help
+ Enable TIFF image support through libtiff
+ endif
+ if PACKAGE_libgd
+ config LIBGD_FREETYPE
+ bool "Freetype 2.x library support"
+ default n
+ help
+ Enable Freetype 2.x font engine support through libfreetype
+ endif
+endef
+
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--disable-rpath \
--without-x \
--without-fontconfig \
- --without-freetype \
--with-jpeg=$(STAGING_DIR)/usr \
--with-png=$(STAGING_DIR)/usr \
- --with-vpx=no \
- --without-xpm \
- --without-iconv
+ --without-xpm
+
+ifdef CONFIG_LIBGD_TIFF
+ CONFIGURE_ARGS+= \
+ --with-tiff=$(STAGING_DIR)/usr
+else
+ CONFIGURE_ARGS+= \
+ --without-tiff
+endif
+
+ifdef CONFIG_LIBGD_FREETYPE
+ CONFIGURE_ARGS+= \
+ --with-freetype=$(STAGING_DIR)/usr
+else
+ CONFIGURE_ARGS+= \
+ --without-freetype
+endif
CONFIGURE_VARS += \
ac_cv_header_iconv_h=no
$(1)/usr/bin/gdlib-config
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/entities.h $(1)/usr/include/
- $(CP) $(PKG_INSTALL_DIR)/usr/include/gd{,_io,cache,fontg,fontl,fontmb,fonts,fontt,fx}.h \
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/gd{,_color_map,_errors,_io,cache,fontg,fontl,fontmb,fonts,fontt,fx,pp}.h \
$(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libgd.{a,la,so*} $(1)/usr/lib/
--- a/config/gdlib-config.in
+++ b/config/gdlib-config.in
-@@ -71,7 +71,7 @@ while test $# -gt 0; do
+@@ -74,7 +74,7 @@ while test $# -gt 0; do
echo @LDFLAGS@
;;
--libs)
;;
--cflags|--includes)
echo -I@includedir@
-@@ -84,7 +84,7 @@ while test $# -gt 0; do
+@@ -87,7 +87,7 @@ while test $# -gt 0; do
echo "includedir: $includedir"
echo "cflags: -I@includedir@"
echo "ldflags: @LDFLAGS@"
--- /dev/null
+--- a/config/gdlib.pc.in
++++ b/config/gdlib.pc.in
+@@ -7,5 +7,5 @@ Name: gd
+ Description: GD graphics library
+ Version: @VERSION@
+ Cflags: -I${includedir}
+-Libs.private: @LIBS@ @LIBICONV@
++Libs.private: @LIBS@
+ Libs: -L${libdir} -lgd
--- a/src/gd_bmp.c
+++ b/src/gd_bmp.c
-@@ -21,6 +21,7 @@
+@@ -28,6 +28,7 @@
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include "gd.h"
#include "gdhelpers.h"
#include "bmp.h"
-@@ -42,6 +43,13 @@ static int bmp_read_rle(gdImagePtr im, g
+@@ -49,6 +50,13 @@ static int bmp_read_rle(gdImagePtr im, g
#define BMP_DEBUG(s)
PKG_NAME:=libpng
PKG_VERSION:=1.6.29
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@SF/libpng
's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' \
$(1)/usr/bin/libpng{,16}-config
$(INSTALL_DIR) $(1)/usr/include
- $(CP) $(PKG_INSTALL_DIR)/usr/include/png{,conf}.h $(1)/usr/include/
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/png{,conf,libconf}.h $(1)/usr/include/
$(CP) $(PKG_INSTALL_DIR)/usr/include/libpng16 $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpng16.{a,la,so*} $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpng.{a,la,so} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpng{,16}.pc $(1)/usr/lib/pkgconfig/
$(INSTALL_DIR) $(2)/bin
define Package/libpng/install
$(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpng16.so.* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpng16.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpng.so $(1)/usr/lib/
endef
$(eval $(call HostBuild))
CMAKE_OPTIONS:= -DBUILD_TESTS=0 -DBUILD_EXAMPLES=0
CMAKE_OPTIONS+= -DHAVE_WORDS_BIGENDIAN_EXITCODE=$(if $(CONFIG_BIG_ENDIAN),0,1)
+CMAKE_OPTIONS+= -DWITH_OPENMP=0
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
include $(TOPDIR)/rules.mk
PKG_NAME:=xmlrpc-c
-PKG_REV:=2640
-PKG_VERSION:=1.39.0
+PKG_VERSION:=1.39.12
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://svn.code.sf.net/p/xmlrpc-c/code/advanced
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=$(PKG_REV)
-PKG_SOURCE_PROTO:=svn
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
+PKG_SOURCE_URL:=@SF/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(PKG_VERSION)
+PKG_HASH:=d830f3264a832dfe09f629cc64036acfd08121692526d0fabe090f7ff881ce08
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=VARIOUS
include $(TOPDIR)/rules.mk
PKG_NAME:=dovecot
-PKG_VERSION:=2.2.28
+PKG_VERSION:=2.2.29.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.dovecot.org/releases/2.2
-PKG_HASH:=e0288f59e326ab87cb3881fdabadafe542f4dc7ab9996db13863a439ebbc1f25
+PKG_HASH:=ccfa9ffb7eb91e9e87c21c108324b911250c9ffa838bffb64b1caafadcb0f388
PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique
PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT
PKG_NAME:=acme
PKG_SOURCE_VERSION:=7b40cbe8c1a52041351524bcde4b37665a7cdf79
-PKG_VERSION:=1.5
+PKG_VERSION:=1.6
PKG_RELEASE:=1
PKG_LICENSE:=GPLv3
endef
define Package/acme/install
+ $(INSTALL_DIR) $(1)/etc/acme
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/acme.config $(1)/etc/config/acme
$(INSTALL_DIR) $(1)/etc/init.d
st = s:option(Value, "state_dir", translate("State directory"),
translate("Where certs and other state files are kept."))
st.rmempty = false
-st.datatype = "string"
+st.datatype = "directory"
ae = s:option(Value, "account_email", translate("Account email"),
translate("Email address to associate with account key."))
ae.rmempty = false
+ae.datatype = "minlength(1)"
d = s:option(Flag, "debug", translate("Enable debug logging"))
d.rmempty = false
"(only select this for one certificate)."))
u.rmempty = false
+wr = cs:option(Value, "webroot", translate("Webroot directory"),
+ translate("Webserver root directory. Set this to the webserver " ..
+ "document root to run Acme in webroot mode. The web " ..
+ "server must be accessible from the internet on port 80."))
+wr.rmempty = false
+
dom = cs:option(DynamicList, "domains", translate("Domain names"),
translate("Domain names to include in the certificate. " ..
"The first name will be the subject name, subsequent names will be alt names. " ..
config cert 'example'
option enabled 0
- option use_staging 0
+ option use_staging 1
option keylength 2048
option update_uhttpd 1
+ option webroot ""
list domains example.org
/etc/init.d/cron start
}
-debug()
+log()
{
- [ "$DEBUG" -eq "1" ] && echo "$@" >&2
+ logger -t acme -s -p daemon.info "$@"
}
-pre_checks()
+err()
{
- echo "Running pre checks."
- check_cron
-
- [ -d "$STATE_DIR" ] || mkdir -p "$STATE_DIR"
-
- if [ -e /etc/init.d/uhttpd ]; then
+ logger -t acme -s -p daemon.err "$@"
+}
- UHTTPD_LISTEN_HTTP=$(uci get uhttpd.main.listen_http)
+debug()
+{
+ [ "$DEBUG" -eq "1" ] && logger -t acme -s -p daemon.debug "$@"
+}
- uci set uhttpd.main.listen_http=''
- uci commit uhttpd
- /etc/init.d/uhttpd reload || return 1
- fi
+get_listeners()
+{
+ netstat -nptl 2>/dev/null | awk 'match($4, /:80$/){split($7, parts, "/"); print parts[2];}' | uniq | tr "\n" " "
+}
- iptables -I input_rule -p tcp --dport 80 -j ACCEPT || return 1
- ip6tables -I input_rule -p tcp --dport 80 -j ACCEPT || return 1
+pre_checks()
+{
+ main_domain="$1"
+
+ log "Running pre checks for $main_domain."
+
+ listeners="$(get_listeners)"
+ debug "port80 listens: $listeners"
+
+ case "$listeners" in
+ "uhttpd")
+ debug "Found uhttpd listening on port 80; trying to disable."
+
+ UHTTPD_LISTEN_HTTP=$(uci get uhttpd.main.listen_http)
+
+ if [ -z "$UHTTPD_LISTEN_HTTP" ]; then
+ err "$main_domain: Unable to find uhttpd listen config."
+ err "Manually disable uhttpd or set webroot to continue."
+ return 1
+ fi
+
+ uci set uhttpd.main.listen_http=''
+ uci commit uhttpd || return 1
+ if ! /etc/init.d/uhttpd reload ; then
+ uci set uhttpd.main.listen_http="$UHTTPD_LISTEN_HTTP"
+ uci commit uhttpd
+ return 1
+ fi
+ ;;
+ "")
+ debug "Nothing listening on port 80."
+ ;;
+ *)
+ err "$main_domain: Cannot run in standalone mode; another daemon is listening on port 80."
+ err "Disable other daemon or set webroot to continue."
+ return 1
+ ;;
+ esac
+
+ iptables -I input_rule -p tcp --dport 80 -j ACCEPT -m comment --comment "ACME" || return 1
+ ip6tables -I input_rule -p tcp --dport 80 -j ACCEPT -m comment --comment "ACME" || return 1
debug "v4 input_rule: $(iptables -nvL input_rule)"
debug "v6 input_rule: $(ip6tables -nvL input_rule)"
- debug "port80 listens: $(netstat -ntpl | grep :80)"
return 0
}
post_checks()
{
- echo "Running post checks (cleanup)."
- iptables -D input_rule -p tcp --dport 80 -j ACCEPT
- ip6tables -D input_rule -p tcp --dport 80 -j ACCEPT
+ log "Running post checks (cleanup)."
+ # The comment ensures we only touch our own rules. If no rules exist, that
+ # is fine, so hide any errors
+ iptables -D input_rule -p tcp --dport 80 -j ACCEPT -m comment --comment "ACME" 2>/dev/null
+ ip6tables -D input_rule -p tcp --dport 80 -j ACCEPT -m comment --comment "ACME" 2>/dev/null
- if [ -e /etc/init.d/uhttpd ]; then
+ if [ -e /etc/init.d/uhttpd ] && [ -n "$UHTTPD_LISTEN_HTTP" ]; then
uci set uhttpd.main.listen_http="$UHTTPD_LISTEN_HTTP"
uci commit uhttpd
/etc/init.d/uhttpd reload
+ UHTTPD_LISTEN_HTTP=
fi
}
local main_domain
local moved_staging=0
local failed_dir
+ local webroot
config_get_bool enabled "$section" enabled 0
config_get_bool use_staging "$section" use_staging
config_get_bool update_uhttpd "$section" update_uhttpd
config_get domains "$section" domains
config_get keylength "$section" keylength
+ config_get webroot "$section" webroot
[ "$enabled" -eq "1" ] || return
set -- $domains
main_domain=$1
+ [ -n "$webroot" ] || pre_checks "$main_domain" || return 1
+
+ log "Running ACME for $main_domain"
+
if [ -e "$STATE_DIR/$main_domain" ]; then
if [ "$use_staging" -eq "0" ] && is_staging "$main_domain"; then
- echo "Found previous cert issued using staging server. Moving it out of the way."
+ log "Found previous cert issued using staging server. Moving it out of the way."
mv "$STATE_DIR/$main_domain" "$STATE_DIR/$main_domain.staging"
moved_staging=1
else
- echo "Found previous cert config. Issuing renew."
+ log "Found previous cert config. Issuing renew."
$ACME --home "$STATE_DIR" --renew -d "$main_domain" $acme_args || return 1
return 0
fi
acme_args="$acme_args $(for d in $domains; do echo -n "-d $d "; done)"
- acme_args="$acme_args --standalone"
acme_args="$acme_args --keylength $keylength"
[ -n "$ACCOUNT_EMAIL" ] && acme_args="$acme_args --accountemail $ACCOUNT_EMAIL"
[ "$use_staging" -eq "1" ] && acme_args="$acme_args --staging"
+ if [ -z "$webroot" ]; then
+ log "Using standalone mode"
+ acme_args="$acme_args --standalone"
+ else
+ if [ ! -d "$webroot" ]; then
+ err "$main_domain: Webroot dir '$webroot' does not exist!"
+ return 1
+ fi
+ log "Using webroot dir: $webroot"
+ acme_args="$acme_args --webroot \"$webroot\""
+ fi
+
if ! $ACME --home "$STATE_DIR" --issue $acme_args; then
failed_dir="$STATE_DIR/${main_domain}.failed-$(date +%s)"
- echo "Issuing cert for $main_domain failed. Moving state to $failed_dir" >&2
+ err "Issuing cert for $main_domain failed. Moving state to $failed_dir"
[ -d "$STATE_DIR/$main_domain" ] && mv "$STATE_DIR/$main_domain" "$failed_dir"
if [ "$moved_staging" -eq "1" ]; then
- echo "Restoring staging certificate" >&2
+ err "Restoring staging certificate"
mv "$STATE_DIR/${main_domain}.staging" "$STATE_DIR/${main_domain}"
fi
return 1
# commit and reload is in post_checks
fi
+ post_checks
}
load_vars()
DEBUG=$(config_get "$section" debug)
}
-if [ -n "$CHECK_CRON" ]; then
- check_cron
- exit 0
-fi
+check_cron
+[ -n "$CHECK_CRON" ] && exit 0
config_load acme
config_foreach load_vars acme
-pre_checks || exit 1
+if [ -z "$STATE_DIR" ] || [ -z "$ACCOUNT_EMAIL" ]; then
+ err "state_dir and account_email must be set"
+ exit 1
+fi
+
+[ -d "$STATE_DIR" ] || mkdir -p "$STATE_DIR"
+
trap err_out HUP TERM
trap int_out INT
config_foreach issue_cert cert
-post_checks
exit 0
include $(TOPDIR)/rules.mk
PKG_NAME:=adblock
-PKG_VERSION:=2.6.0
+PKG_VERSION:=2.6.1
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
* simple but yet powerful adblock engine: adblock does not use error prone external iptables rulesets, http pixel server instances and things like that
* automatically selects dnsmasq or unbound as dns backend
* automatically selects uclient-fetch or wget as download utility (other tools like curl or aria2c are supported as well)
+* support http only mode (without installed ssl library) for all non-SSL blocklist sources
* automatically supports a wide range of router modes, even AP modes are supported
* full IPv4 and IPv6 support
* supports tld compression (top level domain compression), this feature removes thousands of needless host entries from the block lists and lowers the memory footprint for the dns backends
* suspend & resume adblock actions temporarily without block list reloading
* runtime information available via LuCI & via 'status' init command
* query function to quickly identify blocked (sub-)domains, e.g. for whitelisting
+* optional: force dns requests to local resolver
+* optional: force overall sort / duplicate removal for low memory devices (handle with care!)
* optional: automatic block list backup & restore, backups will be (de-)compressed and restored on the fly in case of any runtime error
* optional: add new adblock sources on your own via uci config
* a usual setup with an enabled dns backend at minimum - dump AP modes without a working dns backend are _not_ supported
* a download utility:
* to support all blocklist sources a full version (with ssl support) of 'wget', 'uclient-fetch' with one of the 'libustream-*' ssl libraries, 'aria2c' or 'curl' is required
- * for limited devices with real memory constraints, adblock provides also a plain http option and supports wget-nossl and uclient-fetch (wihout libustream-ssl), too
+ * for limited devices with real memory constraints, adblock provides also a plain http option and supports wget-nossl and uclient-fetch (without libustream-ssl), too
* for more configuration options see examples below
## LEDE trunk Installation & Usage
* **restrict procd interface trigger:** restrict the procd interface trigger to a (list of) certain interface(s) (default: wan). To disable it at all, remove all entries
* **suspend & resume adblocking:** to quickly switch the adblock service 'on' or 'off', simply use _/etc/init.d/adblock [suspend|resume]_
* **domain query:** to query the active block lists for a specific domain, please run _/etc/init.d/adblock query `<DOMAIN>`_ (see example below)
-* **divert dns requests:** to force dns requests to your local dns resolver add an appropriate firewall rule (see example below)
* **add new list sources:** you could add new block list sources on your own via uci config, all you need is a source url and an awk one-liner (see example below)
* **disable active dns probing in windows 10:** to prevent a yellow exclamation mark on your internet connection icon (which wrongly means connected, but no internet), please change the following registry key/value from "1" to "0" _HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet\EnableActiveProbing_
* adb\_iface => set the procd interface trigger to a (list of) lan / wan interface(s) (default: 'wan')
* adb\_fetch => full path to a different download utility, see example below (default: not set, use wget)
* adb\_fetchparm => options for the download utility, see example below (default: not set, use wget options)
- * adb\_triggerdelay => additional trigger delay in seconds before adblock processing starts (default: '1')
+ * adb\_triggerdelay => additional trigger delay in seconds before adblock processing starts (default: '2')
+ * adb\_forcedns => force dns requests to local resolver (default: '0', disabled)
+ * adb\_forcesrt => force overall sort on low memory devices with less than 64 MB RAM (default: '0', disabled)
## Examples
**change default dns backend to 'unbound':**
In the example above whitelist "www.doubleclick.net" to free the submitted domain.
</code></pre>
-**divert dns requests to local dns resolver in /etc/config/firewall:**
-<pre><code>
-config redirect
- option name 'Divert DNS'
- option src 'lan'
- option proto 'tcp udp'
- option src_dport '53'
- option dest_port '53'
- option target 'DNAT'
-</code></pre>
-
**add a new block list source:**
<pre><code>
1. the easy way ...
config adblock 'global'
option adb_enabled '1'
option adb_debug '0'
+ option adb_forcesrt '0'
+ option adb_forcedns '0'
option adb_iface 'wan'
- option adb_triggerdelay '1'
+ option adb_triggerdelay '2'
option adb_whitelist '/etc/adblock/adblock.whitelist'
option adb_whitelist_rset '\$1 ~/^([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\"^\"\$1\"\\\|[.]\"\$1)}'
option adb_backup '0'
#!/bin/sh /etc/rc.common
#
-START=90
+START=50
USE_PROCD=1
EXTRA_COMMANDS="suspend resume query status"
local iface="$(uci -q get adblock.global.adb_iface)"
local delay="$(uci -q get adblock.global.adb_triggerdelay)"
- PROCD_RELOAD_DELAY=$((${delay:=1} * 1000))
+ PROCD_RELOAD_DELAY=$((${delay:=2} * 1000))
for name in ${iface}
do
procd_add_interface_trigger "interface.*.up" "${name}" "${adb_init}" start
done
+ PROCD_RELOAD_DELAY=1000
procd_add_config_trigger "config.change" "adblock" "${adb_init}" start
}
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="2.6.0"
+adb_ver="2.6.1"
adb_sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
adb_enabled=1
adb_debug=0
+adb_forcesrt=0
+adb_forcedns=0
adb_backup=0
adb_backupdir="/mnt"
adb_whitelist="/etc/adblock/adblock.whitelist"
#
config_load adblock
config_foreach parse_config source
+
+ # force dns to local resolver
+ #
+ if [ ${adb_forcedns} -eq 1 ] && [ -z "$(uci -q get firewall.adblock_dns)" ]
+ then
+ uci -q set firewall.adblock_dns="redirect"
+ uci -q set firewall.adblock_dns.src="lan"
+ uci -q set firewall.adblock_dns.proto="tcp udp"
+ uci -q set firewall.adblock_dns.src_dport="53"
+ uci -q set firewall.adblock_dns.dest_port="53"
+ uci -q set firewall.adblock_dns.target="DNAT"
+ elif [ ${adb_forcedns} -eq 0 ] && [ -n "$(uci -q get firewall.adblock_dns)" ]
+ then
+ uci -q delete firewall.adblock_dns
+ fi
+ if [ -n "$(uci -q changes firewall)" ]
+ then
+ uci -q commit firewall
+ /etc/init.d/firewall reload >/dev/null 2>&1
+ fi
}
# f_envcheck: check/set environment prerequisites
# download block list
#
- f_log "debug" "name: ${src_name}, enabled: ${enabled}, backup: ${adb_backup}, dns: ${adb_dns}, fetch: ${adb_fetchinfo}, memory: ${mem_total}"
+ f_log "debug" "name: ${src_name}, enabled: ${enabled}, backup: ${adb_backup}, dns: ${adb_dns}, fetch: ${adb_fetchinfo}, memory: ${mem_total}, force srt/dns: ${adb_forcesrt}/${adb_forcedns}"
if [ "${src_name}" = "blacklist" ]
then
cat "${url}" 2>/dev/null > "${adb_tmpload}"
#
for src_name in $(ls -dASr "${adb_tmpdir}/${adb_dnsprefix}"* 2>/dev/null)
do
- if [ ${mem_total} -ge 64000 ]
+ if [ ${mem_total} -ge 64000 ] || [ ${adb_forcesrt} -eq 1 ]
then
if [ -s "${adb_tmpdir}/blocklist.overall" ]
then
PKG_NAME:=freeradius3
PKG_VERSION:=release_3_0_11
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/FreeRADIUS/freeradius-server/archive
/etc/freeradius3/mods-available/eap
/etc/freeradius3/mods-enabled/eap
/etc/freeradius3/policy.d/eap
+/etc/freeradius3/sites-enabled/inner-tunnel
+/etc/freeradius3/sites-available/inner-tunnel
endef
define Package/freeradius3-mod-eap-gtc
TITLE:=EAP/PEAP module
endef
-define Package/freeradius3-mod-eap-peap/conffiles
-/etc/freeradius3/sites-available/inner-tunnel
-/etc/freeradius3/sites-enabled/inner-tunnel
-endef
-
define Package/freeradius3-mod-eap-tls
$(call Package/freeradius3/Default)
DEPENDS:=freeradius3-mod-eap @FREERADIUS3_OPENSSL
TITLE:=EAP/TTLS module
endef
-define Package/freeradius3-mod-eap-ttls/conffiles
-/etc/freeradius3/sites-available/inner-tunnel
-/etc/freeradius3/sites-enabled/inner-tunnel
-endef
-
define Package/freeradius3-mod-exec
$(call Package/freeradius3/Default)
DEPENDS:=freeradius3
--- /dev/null
+--- a/raddb/certs/ca.cnf
++++ b/raddb/certs/ca.cnf
+@@ -14,7 +14,7 @@ private_key = $dir/ca.key
+ RANDFILE = $dir/.rand
+ name_opt = ca_default
+ cert_opt = ca_default
+-default_days = 60
++default_days = 365
+ default_crl_days = 30
+ default_md = sha256
+ preserve = no
+--- a/raddb/certs/client.cnf
++++ b/raddb/certs/client.cnf
+@@ -14,7 +14,7 @@ private_key = $dir/ca.key
+ RANDFILE = $dir/.rand
+ name_opt = ca_default
+ cert_opt = ca_default
+-default_days = 60
++default_days = 365
+ default_crl_days = 30
+ default_md = sha256
+ preserve = no
+--- a/raddb/certs/server.cnf
++++ b/raddb/certs/server.cnf
+@@ -14,7 +14,7 @@ private_key = $dir/ca.key
+ RANDFILE = $dir/.rand
+ name_opt = ca_default
+ cert_opt = ca_default
+-default_days = 60
++default_days = 365
+ default_crl_days = 30
+ default_md = sha256
+ preserve = no
include $(TOPDIR)/rules.mk
PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=f7ef810b99d2c47d5a07739ecb0be1667f32567f
-PKG_MIRROR_HASH:=1f1fbccff28240ca8c1980b3f7c95ee413a2978f6a245838d7acaae19db3f586
+PKG_SOURCE_VERSION:=1c2ab4aa3b9b563ad2098984b5751e67d3267778
+PKG_MIRROR_HASH:=cb0286944b78616e381b049de678a3475b0a496055f40f8af5eea367c4d9c0c6
-PKG_VERSION:=0.10.2-git-20170313-$(PKG_SOURCE_VERSION)
+PKG_VERSION:=0.10.2-git-20170419-$(PKG_SOURCE_VERSION)
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_NAME:=isc-dhcp
UPSTREAM_NAME:=dhcp
PKG_VERSION:=4.3.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
-PKG_MAINTAINER:=Antony Antony <antony@phenome.org>
+PKG_MAINTAINER:=Philip Prindeville <philipp@redfish-solutions.com>
PKG_SOURCE:=$(UPSTREAM_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://ftp.isc.org/isc/dhcp/$(PKG_VERSION) \
PKG_NAME:=ocserv
PKG_VERSION:=0.11.7
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_USE_MIPS16:=0
PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
endef
define Package/ocserv/description
- OpenConnect server (ocserv) is an SSL VPN server. Its purpose is to be
+ OpenConnect server (ocserv) is an SSL VPN server. Its purpose is to be
a secure, small, fast and configurable VPN server. It implements the
OpenConnect SSL VPN protocol, and has also (currently experimental)
compatibility with clients using the AnyConnect SSL VPN protocol. The
OpenConnect VPN protocol uses the standard IETF security protocols such
- as TLS 1.2, and Datagram TLS to provide the secure VPN service.
+ as TLS 1.2, and Datagram TLS to provide the secure VPN service.
endef
EXTRA_CPPFLAGS+=-I$(STAGING_DIR)/usr/include/readline/
START=50
USE_PROCD=1
+. $IPKG_INSTROOT/lib/functions/network.sh
+
setup_config() {
config_get port $1 port "4443"
config_get max_clients $1 max_clients "8"
uci set dhcp.lan.start=100
uci set dhcp.lan.limit=91
fi
- ip=$(uci get network.lan.ipaddr)
+ network_get_ipaddr ip lan
ipaddr="$(echo $ip|cut -d . -f1,2,3).192"
netmask="255.255.255.192"
- uci set ocserv.config.ipaddr="$ipaddr"
- uci set ocserv.config.netmask="$netmask"
- uci commit
fi
if test -z "$ip6addr";then
- ip6addr=$(uci get network.lan.ip6addr 2>/dev/null)
- test -n "$ip6addr" && uci set ocserv.config.ip6addr="$ip6addr"
- uci commit
+ network_get_ipaddr6 ip6addr lan
+ # Append ipv6 prefix
+ test -n "$ip6addr" && ip6addr="$ip6addr/96"
fi
ping_leases=1
- test -n "$ipaddr" && sysctl -w "net.ipv4.conf.$(uci get network.lan.ifname).proxy_arp"=1 >/dev/null
- test -n "$ip6addr" && sysctl -w "net.ipv6.conf.$(uci get network.lan.ifname).proxy_ndp"=1 >/dev/null
+ local ifname
+ network_get_device ifname lan
+ if test -n "ifname";then
+ test -n "$ipaddr" && sysctl -w "net.ipv4.conf.$ifname.proxy_arp"=1 >/dev/null
+ test -n "$ip6addr" && sysctl -w "net.ipv6.conf.$ifname.proxy_ndp"=1 >/dev/null
+ fi
else
- test "$ipaddr" = "" && ipaddr="192.168.100.0"
- test "$netmask" = "" && ipaddr="255.255.255.0"
+ test -z "$ipaddr" && ipaddr="192.168.100.0"
+ test -z "$netmask" && netmask="255.255.255.0"
fi
enable_default_domain="#"
[ -f /etc/config/ocserv-dir/ca-key.pem ] && mv /etc/config/ocserv-dir/ca-key.pem /etc/ocserv/ca-key.pem
[ -f /etc/config/ocserv-dir/ca.pem ] && mv /etc/config/ocserv-dir/ca.pem /etc/ocserv/ca.pem
[ -f /etc/config/ocserv-dir/server-key.pem ] && mv /etc/config/ocserv-dir/server-key.pem /etc/ocserv/server-key.pem
- [ -f /etc/config/ocserv-dir/server-cert.pem ] && mv /etc/config/ocserv-dir/server-cert.pem /etc/ocserv/server-cert.pem
+ [ -f /etc/config/ocserv-dir/server-cert.pem ] && mv /etc/config/ocserv-dir/server-cert.pem /etc/ocserv/server-cert.pem
[ -d /etc/config/ocserv-dir ] && rmdir /etc/config/ocserv-dir
[ ! -f /etc/ocserv/ca-key.pem ] && [ -x /usr/bin/certtool ] && {
PKG_NAME:=ser2net
PKG_VERSION:=3.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/ser2net
--- /dev/null
+From 8614cf0ad4a017184285e814a704322f59a28869 Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Wed, 12 Apr 2017 23:36:17 +0200
+Subject: [PATCH] dataxfer.c: fix possible buffer overruns caused by
+ gai_strerror
+
+This fixes a possible buffer overrun that could occur due to
+gai_strerror() returning a string which is longer than the portbuff
+array, i.e. longer than 32 byte.
+
+Reported-by: David Thornley <david.thornley@touchstargroup.com>
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 3d1e713..988f4e4 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3702,18 +3702,20 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ portbuff, sizeof(portbuff),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (err) {
+- strcpy(buffer, "*err*");
+- sprintf(portbuff, "%s", gai_strerror(err));
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ count = controller_outputf(cntlr, "%s", buffer);
++ } else {
++ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+ }
+- bytes_recv = netcon->bytes_received;
+- bytes_sent = netcon->bytes_sent;
+
+- count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+ while (count < 23) {
+ controller_outs(cntlr, " ");
+ count++;
+ }
+
++ bytes_recv = netcon->bytes_received;
++ bytes_sent = netcon->bytes_sent;
++
+ controller_outputf(cntlr, "%-22s ", port->io.devname);
+ controller_outputf(cntlr, "%-14s ", state_str[port->net_to_dev_state]);
+ controller_outputf(cntlr, "%-14s ", state_str[port->dev_to_net_state]);
+@@ -3758,11 +3760,12 @@ showport(struct controller_info *cntlr, port_info_t *port)
+ portbuff, sizeof(portbuff),
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (err) {
+- strcpy(buffer, "*err*");
+- sprintf(portbuff, "%s", gai_strerror(err));
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ controller_outputf(cntlr, " connected to: %s\r\n", buffer);
++ } else {
++ controller_outputf(cntlr, " connected to: %s,%s\r\n",
++ buffer, portbuff);
+ }
+- controller_outputf(cntlr, " connected to: %s,%s\r\n",
+- buffer, portbuff);
+ controller_outputf(cntlr, " bytes read from TCP: %d\r\n",
+ netcon->bytes_received);
+ controller_outputf(cntlr, " bytes written to TCP: %d\r\n",
+--
+2.7.4
+
--- /dev/null
+From b303432f2dbd6a20afa99cb462aa0a1bb740b86d Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Wed, 12 Apr 2017 23:43:18 +0200
+Subject: [PATCH] dataxfer.c: truncate error message to fit the column width
+
+gai_strerror() could return a string which is longer than our current
+column width of "Remote address". To make the output nice again,
+truncate the error string in this case.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 988f4e4..75c2777 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3703,6 +3703,10 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ NI_NUMERICHOST | NI_NUMERICSERV);
+ if (err) {
+ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ /* gai_strerror could return an elongated string which could break
++ our pretty formatted output below, so truncate the string nicely */
++ if (strlen(buffer) > 22)
++ strcpy(&buffer[22 - 3], "...");
+ count = controller_outputf(cntlr, "%s", buffer);
+ } else {
+ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+--
+2.7.4
+
--- /dev/null
+From 81f3991e232fd45b05ff52b5091393532e4305e5 Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Thu, 13 Apr 2017 20:29:10 +0200
+Subject: [PATCH] dataxfer.c: adjust "Remote address" column width
+
+In case we are connected to an IPv6 address the current column width
+is too small to take the complete address and port number so adjust it.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 75c2777..9955403 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3674,6 +3674,9 @@ clear_old_port_config(int curr_config)
+ UNLOCK(ports_lock);
+ }
+
++#define REMOTEADDR_COLUMN_WIDTH \
++ (INET6_ADDRSTRLEN - 1 /* terminating NUL */ + 1 /* comma */ + 5 /* strlen("65535") */)
++
+ /* Print information about a port to the control port given in cntlr. */
+ static void
+ showshortport(struct controller_info *cntlr, port_info_t *port)
+@@ -3705,14 +3708,14 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
+ /* gai_strerror could return an elongated string which could break
+ our pretty formatted output below, so truncate the string nicely */
+- if (strlen(buffer) > 22)
+- strcpy(&buffer[22 - 3], "...");
++ if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
++ strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
+ count = controller_outputf(cntlr, "%s", buffer);
+ } else {
+ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
+ }
+
+- while (count < 23) {
++ while (count < REMOTEADDR_COLUMN_WIDTH + 1) {
+ controller_outs(cntlr, " ");
+ count++;
+ }
+@@ -3878,10 +3881,11 @@ showshortports(struct controller_info *cntlr, char *portspec)
+ port_info_t *port;
+
+ controller_outputf(cntlr,
+- "%-22s %-6s %7s %-22s %-22s %-14s %-14s %9s %9s %9s %9s %s\r\n",
++ "%-22s %-6s %7s %-*s %-22s %-14s %-14s %9s %9s %9s %9s %s\r\n",
+ "Port name",
+ "Type",
+ "Timeout",
++ REMOTEADDR_COLUMN_WIDTH,
+ "Remote address",
+ "Device",
+ "TCP to device",
+--
+2.7.4
+
--- /dev/null
+From 1479d3acc7ffb77225ea294f83a8d3fbdadfece6 Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Thu, 13 Apr 2017 20:37:35 +0200
+Subject: [PATCH] dataxfer.c: in case port is not connected display this
+ directly
+
+In this case we don't bother to call into getnameinfo but show
+directly "unconnected", this prevents showing an error message.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
+
+diff --git a/dataxfer.c b/dataxfer.c
+index 9955403..d6a59d9 100644
+--- a/dataxfer.c
++++ b/dataxfer.c
+@@ -3700,19 +3700,23 @@ showshortport(struct controller_info *cntlr, port_info_t *port)
+ if (!netcon)
+ netcon = &(port->netcons[0]);
+
+- err = getnameinfo(netcon->raddr, netcon->raddrlen,
+- buffer, sizeof(buffer),
+- portbuff, sizeof(portbuff),
+- NI_NUMERICHOST | NI_NUMERICSERV);
+- if (err) {
+- snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
+- /* gai_strerror could return an elongated string which could break
+- our pretty formatted output below, so truncate the string nicely */
+- if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
+- strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
+- count = controller_outputf(cntlr, "%s", buffer);
++ if (port->net_to_dev_state != PORT_UNCONNECTED) {
++ err = getnameinfo(netcon->raddr, netcon->raddrlen,
++ buffer, sizeof(buffer),
++ portbuff, sizeof(portbuff),
++ NI_NUMERICHOST | NI_NUMERICSERV);
++ if (err) {
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ /* gai_strerror could return an elongated string which could break
++ our pretty formatted output below, so truncate the string nicely */
++ if (strlen(buffer) > REMOTEADDR_COLUMN_WIDTH)
++ strcpy(&buffer[REMOTEADDR_COLUMN_WIDTH - 3], "...");
++ count = controller_outputf(cntlr, "%s", buffer);
++ } else {
++ count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
++ }
+ } else {
+- count = controller_outputf(cntlr, "%s,%s", buffer, portbuff);
++ count = controller_outputf(cntlr, "unconnected");
+ }
+
+ while (count < REMOTEADDR_COLUMN_WIDTH + 1) {
+@@ -3762,21 +3766,25 @@ showport(struct controller_info *cntlr, port_info_t *port)
+ controller_outputf(cntlr, " timeout: %d\r\n", port->timeout);
+
+ for_each_connection(port, netcon) {
+- err = getnameinfo(netcon->raddr, netcon->raddrlen,
+- buffer, sizeof(buffer),
+- portbuff, sizeof(portbuff),
+- NI_NUMERICHOST | NI_NUMERICSERV);
+- if (err) {
+- snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
+- controller_outputf(cntlr, " connected to: %s\r\n", buffer);
++ if (port->net_to_dev_state != PORT_UNCONNECTED) {
++ err = getnameinfo(netcon->raddr, netcon->raddrlen,
++ buffer, sizeof(buffer),
++ portbuff, sizeof(portbuff),
++ NI_NUMERICHOST | NI_NUMERICSERV);
++ if (err) {
++ snprintf(buffer, sizeof(buffer), "*err*,%s", gai_strerror(err));
++ controller_outputf(cntlr, " connected to: %s\r\n", buffer);
++ } else {
++ controller_outputf(cntlr, " connected to: %s,%s\r\n",
++ buffer, portbuff);
++ }
++ controller_outputf(cntlr, " bytes read from TCP: %d\r\n",
++ netcon->bytes_received);
++ controller_outputf(cntlr, " bytes written to TCP: %d\r\n",
++ netcon->bytes_sent);
+ } else {
+- controller_outputf(cntlr, " connected to: %s,%s\r\n",
+- buffer, portbuff);
++ controller_outputf(cntlr, " unconnected\r\n");
+ }
+- controller_outputf(cntlr, " bytes read from TCP: %d\r\n",
+- netcon->bytes_received);
+- controller_outputf(cntlr, " bytes written to TCP: %d\r\n",
+- netcon->bytes_sent);
+ }
+
+ controller_outputf(cntlr, " device: %s\r\n", port->io.devname);
+--
+2.7.4
+
option http_port '3128'
option coredump_dir '/tmp/squid'
option visible_hostname 'OpenWrt'
+ option mime_table '/etc/squid/mime.conf'
#option http_port_options 'intercept'
#option ssldb '/tmp/squid/ssldb'
#option ssldb_options '-M 4MB'
USE_PROCD=1
PROG=/usr/sbin/squid
CONFIGFILE="/tmp/squid/squid.conf"
+MIMETABLE="/tmp/squid/mime.conf"
validate_squid_section() {
uci_validate_section squid squid "${1}" \
'ssldb_options:string' \
'coredump_dir:string' \
'visible_hostname:string:OpenWrt' \
- 'pinger_enable:string:off'
+ 'pinger_enable:string:off' \
+ 'mime_table:string:/etc/squid/mime.conf'
}
start_service() {
echo coredump_dir $coredump_dir >> $CONFIGFILE
echo visible_hostname $visible_hostname >> $CONFIGFILE
echo pinger_enable $pinger_enable >> $CONFIGFILE
+ cat $mime_table > $MIMETABLE
+ echo mime_table $MIMETABLE >> $CONFIGFILE
[ "$ssldb" ] && echo sslcrtd_program /usr/lib/squid/ssl_crtd -s $ssldb $ssldb_options >> $CONFIGFILE
$PROG -s -f $CONFIGFILE -N -z 2>/dev/null
include $(TOPDIR)/rules.mk
PKG_NAME:=strongswan
-PKG_VERSION:=5.5.1
-PKG_RELEASE:=2
+PKG_VERSION:=5.5.2
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_HASH:=da976fca836f05fc7b7a38baab299745f960cb7640319969d239d8aa4ace9f6a
PKG_SOURCE_URL:=http://download.strongswan.org/ http://download2.strongswan.org/
-PKG_MD5SUM:=4eba9474f7dc6c8c8d7037261358e68d
PKG_LICENSE:=GPL-2.0+
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
#include <linux/netlink.h>
--- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_shared.c
+++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_shared.c
-@@ -15,6 +15,8 @@
- * for more details.
+@@ -38,6 +38,8 @@
+ * THE SOFTWARE.
*/
+#include "musl.h"
--- a/src/ipsec/_ipsec.in
+++ b/src/ipsec/_ipsec.in
-@@ -259,7 +259,7 @@ stop)
+@@ -257,7 +257,7 @@ stop)
loop=110
while [ $loop -gt 0 ] ; do
kill -0 $spid 2>/dev/null || break
ARG_ENABL_SET([gcrypt], [enables the libgcrypt plugin.])
ARG_DISBL_SET([gmp], [disable GNU MP (libgmp) based crypto implementation plugin.])
+ARG_DISBL_SET([gmpdh], [disable GNU MP (libgmp) based static-linked crypto DH minimal implementation plugin.])
+ ARG_DISBL_SET([curve25519], [disable Curve25519 Diffie-Hellman plugin.])
ARG_DISBL_SET([hmac], [disable HMAC crypto implementation plugin.])
ARG_ENABL_SET([md4], [enable MD4 software implementation plugin.])
- ARG_DISBL_SET([md5], [disable MD5 software implementation plugin.])
-@@ -1347,6 +1348,7 @@ ADD_PLUGIN([gcrypt], [s ch
+@@ -1362,6 +1363,7 @@ ADD_PLUGIN([gcrypt], [s ch
ADD_PLUGIN([af-alg], [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
ADD_PLUGIN([fips-prf], [s charon nm cmd])
ADD_PLUGIN([gmp], [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
+ADD_PLUGIN([gmpdh], [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
+ ADD_PLUGIN([curve25519], [s charon scripts nm cmd])
ADD_PLUGIN([agent], [s charon nm cmd])
ADD_PLUGIN([keychain], [s charon cmd])
- ADD_PLUGIN([chapoly], [s charon scripts nm cmd])
-@@ -1480,6 +1482,7 @@ AM_CONDITIONAL(USE_SHA2, test x$sha2 = x
- AM_CONDITIONAL(USE_SHA3, test x$sha3 = xtrue)
+@@ -1498,6 +1500,7 @@ AM_CONDITIONAL(USE_SHA3, test x$sha3 = x
+ AM_CONDITIONAL(USE_MGF1, test x$mgf1 = xtrue)
AM_CONDITIONAL(USE_FIPS_PRF, test x$fips_prf = xtrue)
AM_CONDITIONAL(USE_GMP, test x$gmp = xtrue)
+AM_CONDITIONAL(USE_GMPDH, test x$gmpdh = xtrue)
+ AM_CONDITIONAL(USE_CURVE25519, test x$curve25519 = xtrue)
AM_CONDITIONAL(USE_RDRAND, test x$rdrand = xtrue)
AM_CONDITIONAL(USE_AESNI, test x$aesni = xtrue)
- AM_CONDITIONAL(USE_RANDOM, test x$random = xtrue)
-@@ -1733,6 +1736,7 @@ AC_CONFIG_FILES([
- src/libstrongswan/plugins/sha3/Makefile
+@@ -1756,6 +1759,7 @@ AC_CONFIG_FILES([
+ src/libstrongswan/plugins/mgf1/Makefile
src/libstrongswan/plugins/fips_prf/Makefile
src/libstrongswan/plugins/gmp/Makefile
+ src/libstrongswan/plugins/gmpdh/Makefile
+ src/libstrongswan/plugins/curve25519/Makefile
src/libstrongswan/plugins/rdrand/Makefile
src/libstrongswan/plugins/aesni/Makefile
- src/libstrongswan/plugins/random/Makefile
--- a/src/libstrongswan/Makefile.am
+++ b/src/libstrongswan/Makefile.am
-@@ -307,6 +307,13 @@ if MONOLITHIC
+@@ -313,6 +313,13 @@ if MONOLITHIC
endif
endif
+endif
+endif
+
- if USE_RDRAND
- SUBDIRS += plugins/rdrand
+ if USE_CURVE25519
+ SUBDIRS += plugins/curve25519
if MONOLITHIC
--- /dev/null
+++ b/src/libstrongswan/plugins/gmpdh/Makefile.am
include $(TOPDIR)/rules.mk
PKG_NAME:=tcpreplay
-PKG_VERSION:=4.2.1
+PKG_VERSION:=4.2.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/appneta/tcpreplay/releases/download/v$(PKG_VERSION)
-PKG_MD5SUM:=a2864f466fe17715baa49d44d5a91eb4
-PKG_HASH:=224b519e561d969b4bdb0e700c2283e036620e3cb5895d5aab2a7e4f27d21a79
+PKG_MD5SUM:=0571a6e20081429931d408b612ecc8a8
+PKG_HASH:=68d8d49dab5bf58b2e8d244eee1ee7f2379d967da19fe97dd9d59bcf40a22abc
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=docs/LICENSE
include $(TOPDIR)/rules.mk
PKG_NAME:=travelmate
-PKG_VERSION:=0.6.0
+PKG_VERSION:=0.7.1
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
* manual / automatic mode support, the latter one checks the existing uplink connection regardless of ifdown event trigger every n seconds
* support of devices with multiple radios
* procd init and hotplug support
-* runtime information accessible via ubus service call
+* runtime information available via LuCI & via 'status' init command
* status & debug logging to syslog
## Prerequisites
-* [OpenWrt](https://openwrt.org) or [LEDE](https://www.lede-project.org) trunk
+* [LEDE](https://www.lede-project.org) 17.01 or latest snapshot
* iw (default) or iwinfo for wlan scanning
-## OpenWrt / LEDE trunk Installation & Usage
+## LEDE trunk Installation & Usage
* download the package [here](https://downloads.lede-project.org/snapshots/packages/x86_64/packages)
* install 'travelmate' (_opkg install travelmate_)
* configure your network to support (multiple) wlan uplinks and set travelmate config options (see below)
* download the package [here](https://downloads.lede-project.org/snapshots/packages/x86_64/luci)
* install 'luci-app-travelmate' (_opkg install luci-app-travelmate_)
* the application is located in LuCI under 'Services' menu
-* _Thanks to Hannu Nyman for this great LuCI frontend!_
## Travelmate config options
* travelmate config options:
* trm\_timeout => timeout in seconds for "automatic mode" (default: '60')
* trm\_iw => set this option to '0' to use iwinfo for wlan scanning (default: '1', use iw)
* trm\_radio => limit travelmate to a dedicated radio, e.g. 'radio0' (default: not set, use all radios)
- * trm\_iface => restrict the procd interface trigger to a (list of) certain wan interface(s) or disable it at all (default: wan wwan)
-
+ * trm\_iface => restrict the procd interface trigger to a (list of) certain wan interface(s) or disable it at all (default: wwan)
+ * trm\_triggerdelay => additional trigger delay in seconds before travelmate processing starts (default: '2')
## Runtime information
-**receive travelmate information via ubus:**
+**receive travelmate runtime information:**
<pre><code>
-ubus call service get_data '{"name":"travelmate"}'
-This will output the current connection status, e.g.:
-{
- "travelmate": {
- "travelmate": {
- "last_rundate": "02.04.2017 07:22:03",
- "online_status": "true",
- "station_interface": "wwan",
- "station_radio": "radio1",
- "station_ssid": "blackhole",
- "system": "LEDE Reboot SNAPSHOT r3888-8fb39f1682",
- "travelmate_version": "0.6.0"
- }
- }
-}
+root@adb2go:/tmp# /etc/init.d/travelmate status
+::: travelmate runtime information
+ travelmate_version : 0.7.0
+ station_connection : true
+ station_ssid : blackhole
+ station_interface : wwan
+ station_radio : radio1
+ last_rundate : 20.04.2017 08:54:48
+ system : LEDE Reboot SNAPSHOT r3974-56457dbcb7
</code></pre>
## Setup
option trm_enabled '0'
option trm_debug '0'
option trm_iface 'wwan'
+ option trm_triggerdelay '2'
option trm_automatic '1'
option trm_maxwait '30'
option trm_maxretry '3'
option trm_timeout '60'
option trm_iw '1'
+ option trm_rtfile '/tmp/trm_runtime.json'
#!/bin/sh /etc/rc.common
-START=85
+START=35
USE_PROCD=1
+EXTRA_COMMANDS="status"
+EXTRA_HELP=" status Print runtime information"
+
trm_init="/etc/init.d/travelmate"
trm_script="/usr/bin/travelmate.sh"
boot()
{
- ubus -t 30 wait_for network.interface
+ ubus -t 30 wait_for network.interface 2>/dev/null
rc_procd start_service
}
start_service()
{
- if [ $(/etc/init.d/travelmate enabled; printf ${?}) -eq 0 ]
+ if [ $("${trm_init}" enabled; printf ${?}) -eq 0 ]
then
procd_open_instance "travelmate"
procd_set_param command "${trm_script}" "${@}"
fi
}
+status()
+{
+ rc_procd "${trm_script}" status
+}
+
service_triggers()
{
local iface="$(uci -q get travelmate.global.trm_iface)"
+ local delay="$(uci -q get travelmate.global.trm_triggerdelay)"
+ PROCD_RELOAD_DELAY=$((${delay:=2} * 1000))
for name in ${iface}
do
procd_add_interface_trigger "interface.*.down" "${name}" "${trm_init}" start
done
+ PROCD_RELOAD_DELAY=1000
procd_add_config_trigger "config.change" "travelmate" "${trm_init}" start
}
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-trm_ver="0.6.0"
+trm_ver="0.7.1"
trm_sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
trm_enabled=0
trm_debug=0
-trm_automatic=0
-trm_maxwait=30
+trm_automatic=1
trm_maxretry=3
+trm_maxwait=30
trm_timeout=60
trm_iw=1
+trm_rtfile="/tmp/trm_runtime.json"
# source required system library
#
-if [ -r "/lib/functions.sh" ]
+if [ -r "/lib/functions.sh" ] && [ -r "/usr/share/libubox/jshn.sh" ]
then
. "/lib/functions.sh"
+ . "/usr/share/libubox/jshn.sh"
else
- f_log "error" "required system library not found"
+ f_log "error" "system libraries not found"
fi
# f_envload: load travelmate environment
f_log "debug" "mode: ${mode}, name: ${ifname}, status: ${trm_ifstatus}, count: ${cnt}, max-wait: ${trm_maxwait}, automatic: ${trm_automatic}"
}
-# f_ubus: update ubus service
+# f_jsnupdate: update runtime information
#
-f_ubus()
+f_jsnupdate()
{
- local active_triggers iface="${1}" radio="${2}" ssid="${3}"
+ local iface="${1}" radio="${2}" ssid="${3}"
- for name in ${trm_iface}
- do
- active_triggers="${active_triggers}[\"interface.*.down\",[\"if\",[\"eq\",\"interface\",\"${name}\"],[\"run_script\",\"/etc/init.d/travelmate\",\"start\"],1000]],"
- done
- active_triggers="${active_triggers}[\"config.change\",[\"if\",[\"eq\",\"package\",\"travelmate\"],[\"run_script\",\"/etc/init.d/travelmate\",\"start\"],1000]]"
+ json_init
+ json_add_object "data"
+ json_add_string "travelmate_version" "${trm_ver}"
+ json_add_string "station_connection" "${trm_ifstatus}"
+ json_add_string "station_ssid" "${ssid}"
+ json_add_string "station_interface" "${iface}"
+ json_add_string "station_radio" "${radio}"
+ json_add_string "last_rundate" "$(/bin/date "+%d.%m.%Y %H:%M:%S")"
+ json_add_string "system" "${trm_sysver}"
+ json_close_object
+ json_dump > "${trm_rtfile}"
+}
- ubus call service add "{\"name\":\"travelmate\",
- \"instances\":{\"travelmate\":{\"command\":[\"/usr/bin/travelmate.sh\"],
- \"data\":{\"travelmate_version\":\"${trm_ver}\",
- \"station_interface\":\"${iface}\",
- \"station_radio\":\"${radio}\",
- \"station_ssid\":\"${ssid}\",
- \"last_rundate\":\"$(/bin/date "+%d.%m.%Y %H:%M:%S")\",
- \"online_status\":\"${trm_ifstatus}\",
- \"system\":\"${trm_sysver}\"}}},
- \"triggers\":[${active_triggers}]}"
+# f_status: output runtime information
+#
+f_status()
+{
+ local key keylist value
+
+ if [ -s "${trm_rtfile}" ]
+ then
+ printf "%s\n" "::: travelmate runtime information"
+ json_load "$(cat "${trm_rtfile}" 2>/dev/null)"
+ json_select data
+ json_get_keys keylist
+ for key in ${keylist}
+ do
+ json_get_var value ${key}
+ printf " %-18s : %s\n" "${key}" "${value}"
+ done
+ fi
}
# f_log: write to syslog, exit on error
then
uci -q commit wireless
ubus call network reload
- sleep 5
fi
f_check "ap"
f_log "debug" "ap-list: ${trm_aplist}, sta-list: ${trm_stalist}"
then
uci -q commit wireless
f_log "info " "interface '${sta_iface}' on '${sta_radio}' connected to uplink '${sta_ssid}' (${trm_sysver})"
- sleep 5
- f_ubus "${sta_iface}" "${sta_radio}" "${sta_ssid}"
+ f_jsnupdate "${sta_iface}" "${sta_radio}" "${sta_ssid}"
return 0
else
uci -q revert wireless
ubus call network reload
f_log "info " "interface '${sta_iface}' on '${sta_radio}' can't connect to uplink '${sta_ssid}' (${trm_sysver})"
- f_ubus "${sta_iface}" "${sta_radio}" "${sta_ssid}"
+ f_jsnupdate "${sta_iface}" "${sta_radio}" "${sta_ssid}"
fi
fi
done
sleep 5
done
done
+ else
+ if [ ! -s "${trm_rtfile}" ]
+ then
+ config="$(ubus -S call network.wireless status | jsonfilter -l1 -e '@.*.interfaces[@.config.mode="sta"].section')"
+ sta_radio="$(uci -q get wireless."${config}".device)"
+ sta_ssid="$(uci -q get wireless."${config}".ssid)"
+ sta_iface="$(uci -q get wireless."${config}".network)"
+ f_jsnupdate "${sta_iface}" "${sta_radio}" "${sta_ssid}"
+ fi
fi
}
+# handle different travelmate actions
+#
f_envload
-f_main
-while [ ${trm_automatic} -eq 1 ]
-do
- sleep ${trm_timeout}
- f_envload
- f_main
-done
+case "${1}" in
+ status)
+ f_status
+ ;;
+ *)
+ f_main
+ while [ ${trm_automatic} -eq 1 ]
+ do
+ sleep ${trm_timeout}
+ f_envload
+ f_main
+ done
+ ;;
+esac
exit 0
include $(TOPDIR)/rules.mk
PKG_NAME:=unbound
-PKG_VERSION:=1.6.1
-PKG_RELEASE:=6
+PKG_VERSION:=1.6.2
+PKG_RELEASE:=1
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.unbound.net/downloads
-PKG_HASH:=42df63f743c0fe8424aeafcf003ad4b880b46c14149d696057313f5c1ef51400
+PKG_HASH:=1a323d72c32180b7141c9e6ebf199fc68a0208dfebad4640cd2c4c27235e3b9c
PKG_BUILD_DEPENDS:=libexpat
PKG_BUILD_PARALLEL:=1
-#
-# Example configuration file.
-#
--# See unbound.conf(5) man page, version 1.6.1.
+-# See unbound.conf(5) man page, version 1.6.2.
-#
-# this is a comment.
+##############################################################################
PKG_NAME:=wifischedule
PKG_VERSION:=1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_LICENSE:=PRPL
PKG_MAINTAINER:=Nils Koenig <openwrt@newk.it>
TITLE:=Turns WiFi on and off according to a schedule
SECTION:=net
CATEGORY:=Network
+ PKGARCH:=all
endef
define Package/wifischedule/description
/etc/config/wifi_schedule
endef
+define Build/Prepare
+endef
+
+define Build/Configure
+endef
+
define Build/Compile
endef
PKG_NAME:=wireguard
-PKG_VERSION:=0.0.20170409
+PKG_VERSION:=0.0.20170421
PKG_RELEASE:=1
PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/
-PKG_HASH:=31473b4d14178f82d6ff46df019d57982c210c03d1a985d54db35bdd76efbb18
+PKG_HASH:=03c82af774224cd171d000ee4a519b5e474cc6842ac04967773cf77b26750000
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/ccrypt
-PKG_MD5SUM:=87d66da2170facabf6f2fc073586ae2c7320d4689980cfca415c74688e499ba0
+PKG_HASH:=87d66da2170facabf6f2fc073586ae2c7320d4689980cfca415c74688e499ba0
PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
PKG_LICENSE:=GPLv2+
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=Encryption
- TITLE:=ccrypt is a utility for encrypting and decrypting files and streams
+ TITLE:=utility for encrypting/decrypting files and streams
URL:=http://ccrypt.sourceforge.net/
endef
define Package/cmdpad
SECTION:=utils
CATEGORY:=Utilities
- TITLE:=execute commands when a key is pressed, released or hold down
+ TITLE:=execute commands when key is pressed/released/held down
URL:=http://cmdpad.sourceforge.net/index.php
endef
PKG_NAME:=collectd
PKG_VERSION:=5.7.1
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://collectd.org/files/ \
--- /dev/null
+From f6be4f9b49b949b379326c3d7002476e6ce4f211 Mon Sep 17 00:00:00 2001
+From: Pavel Rochnyack <pavel2000@ngs.ru>
+Date: Mon, 3 Apr 2017 11:57:09 +0600
+Subject: [PATCH] network plugin: Fix endless loop DOS in parse_packet()
+
+When correct 'Signature part' is received by Collectd, configured without
+AuthFile option, condition for endless loop occurs due to missing increase
+of pointer to next unprocessed part.
+
+Fixes: CVE-2017-7401
+
+Signed-off-by: Florian Forster <octo@collectd.org>
+
+
+--- a/src/network.c
++++ b/src/network.c
+@@ -1003,14 +1003,6 @@ static int parse_part_sign_sha256(socken
+ buffer_len = *ret_buffer_len;
+ buffer_offset = 0;
+
+- if (se->data.server.userdb == NULL) {
+- c_complain(
+- LOG_NOTICE, &complain_no_users,
+- "network plugin: Received signed network packet but can't verify it "
+- "because no user DB has been configured. Will accept it.");
+- return (0);
+- }
+-
+ /* Check if the buffer has enough data for this structure. */
+ if (buffer_len <= PART_SIGNATURE_SHA256_SIZE)
+ return (-ENOMEM);
+@@ -1027,6 +1019,18 @@ static int parse_part_sign_sha256(socken
+ return (-1);
+ }
+
++ if (se->data.server.userdb == NULL) {
++ c_complain(
++ LOG_NOTICE, &complain_no_users,
++ "network plugin: Received signed network packet but can't verify it "
++ "because no user DB has been configured. Will accept it.");
++
++ *ret_buffer = buffer + pss_head_length;
++ *ret_buffer_len -= pss_head_length;
++
++ return (0);
++ }
++
+ /* Copy the hash. */
+ BUFFER_READ(pss.hash, sizeof(pss.hash));
+
--- a/configure.ac
+++ b/configure.ac
-@@ -833,10 +833,7 @@
+@@ -830,10 +830,7 @@ fi
have_cpuid_h="no"
AC_CHECK_HEADERS(cpuid.h, [have_cpuid_h="yes"])
# For the turbostat plugin
have_asm_msrindex_h="no"
AC_CHECK_HEADERS(asm/msr-index.h, [have_asm_msrindex_h="yes"])
-@@ -5946,6 +5949,7 @@ plugin_interface="no"
+@@ -5943,6 +5946,7 @@ plugin_interface="no"
plugin_ipmi="no"
plugin_ipvs="no"
plugin_irq="no"
plugin_load="no"
plugin_log_logstash="no"
plugin_memory="no"
-@@ -6416,6 +6420,7 @@ AC_PLUGIN([ipmi], [$plugi
+@@ -6413,6 +6417,7 @@ AC_PLUGIN([ipmi], [$plugi
AC_PLUGIN([iptables], [$with_libiptc], [IPTables rule counters])
AC_PLUGIN([ipvs], [$plugin_ipvs], [IPVS connection statistics])
AC_PLUGIN([irq], [$plugin_irq], [IRQ statistics])
AC_PLUGIN([java], [$with_java], [Embed the Java Virtual Machine])
AC_PLUGIN([load], [$plugin_load], [System load])
AC_PLUGIN([log_logstash], [$plugin_log_logstash], [Logstash json_event compatible logging])
-@@ -6797,6 +6802,7 @@ AC_MSG_RESULT([ libyajl . . . . . . .
+@@ -6794,6 +6799,7 @@ AC_MSG_RESULT([ libyajl . . . . . . .
AC_MSG_RESULT([ oracle . . . . . . . $with_oracle])
AC_MSG_RESULT([ protobuf-c . . . . . $have_protoc_c])
AC_MSG_RESULT([ protoc 3 . . . . . . $have_protoc3])
AC_MSG_RESULT()
AC_MSG_RESULT([ Features:])
AC_MSG_RESULT([ daemon mode . . . . . $enable_daemon])
-@@ -6853,6 +6859,7 @@ AC_MSG_RESULT([ ipmi . . . . . . . .
+@@ -6850,6 +6856,7 @@ AC_MSG_RESULT([ ipmi . . . . . . . .
AC_MSG_RESULT([ iptables . . . . . . $enable_iptables])
AC_MSG_RESULT([ ipvs . . . . . . . . $enable_ipvs])
AC_MSG_RESULT([ irq . . . . . . . . . $enable_irq])
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=cryptodev-linux
-PKG_VERSION:=1.8.git-2017-02-09
-PKG_RELEASE:=2
+PKG_VERSION:=1.9
+PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_HASH:=627ce96e3ba66ca9c8e14f5d80193061fbe9d45cd8d4b69a1bf4dd5a2d50eed8
+PKG_MIRROR_HASH:=d2b49408682795a0e200c0e54a8605f72be4b11088e07b1cd4d48f6c1427b0f4
PKG_SOURCE_URL:=https://github.com/cryptodev-linux/cryptodev-linux.git
-PKG_SOURCE_VERSION:=6818263667ca488f9b1c86e36ea624c4ea1c309f
+PKG_SOURCE_VERSION:=87d959d9a279c055b361de8e730fab6a7144edd7
PKG_MAINTAINER:=Ansuel Smith ansuelsmth@gmail.com
-f Makefile.lnx \
$(TARGET_CONFIGURE_OPTS) \
CFLAGS+="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) -I$(PKG_BUILD_DIR)/include -DDEBUG_BUILD=0 -D_FILE_OFFSET_BITS=64 -D LINUX=1 -D BSD=1" \
- LDFLAGS+="$(TARGET_LDFLAGS) -lbsd" \
+ LDFLAGS+="$(TARGET_LDFLAGS) $(if $(CONFIG_USE_GLIBC),-lbsd)" \
all
endef
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/Irqbalance/irqbalance.git
PKG_SOURCE_VERSION:=0e0dd4cfe5464de2f81eaef504eab7183f1fb030
+PKG_MIRROR_HASH:=c826e78babfc26f777a5791b2a6ea95b61453ba3e3c5803d4428cc803216bc5c
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_LICENSE:=GPLv2
--- /dev/null
+#
+# Copyright (C) 2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=lcdproc
+# PKG_VERSION:=0.5.8
+PKG_BASE_VERSION:=0.5.8
+PKG_VERSION:=$(PKG_BASE_VERSION)+git2070222
+PKG_RELEASE:=2
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/lcdproc/lcdproc.git
+PKG_SOURCE_VERSION:=156983afab6d8f49d9a84e2a0929874eac569cc3
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_BASE_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_BASE_VERSION)
+
+#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+#PKG_SOURCE_URL:=https://github.com/lcdproc/lcdproc/releases/download/v$(PKG_VERSION)/
+#PKG_MD5SUM:=1dd25676946c61184c6f51cc0a75379e
+PKG_MAINTAINER:=Harald Geyer <harald@ccbib.org>, \
+ Philip Prindeville <philipp@redfish-solutions.com>
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/lcdproc/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ URL:=http://lcdproc.org/
+endef
+
+define Package/lcdproc/Default-description
+LCDProc is a daemon and clients for displaying system information
+on various LCD displays
+endef
+
+
+define Package/lcdproc-clients
+ $(call Package/lcdproc/Default)
+ TITLE:=LCD Display clients
+endef
+
+define Package/lcdproc-clients/description
+$(call Package/lcdproc/Default-description)
+
+This package contains the clients distributed by the official lcdproc
+project:
+* lcdproc -- displays system information
+* lcdexec -- displays a menu structure to execute commands
+* lcdvc -- shows the content of the system console
+endef
+
+define Package/lcdproc-clients/conffiles
+/etc/lcdproc.conf
+/etc/lcdexec.conf
+/etc/lcdvc.conf
+endef
+
+
+define Package/lcdproc-server
+ $(call Package/lcdproc/Default)
+ TITLE:=LCD Display server
+ DEPENDS:=+libpthread
+endef
+
+define LCDPROC_CORE_DRIVERS_TEXT
+bayrad CFontzPacket CFontz CwLnx ea65 EyeboxOne glk icp_a106 imonlcd
+imon irtrans joy lb216 lcdm001 lcterm linux_input MD8800 ms6931
+mtc_s16209x MtxOrb NoritakeVFD Olimex_MOD_LCD1x9 pyramid rawserial
+serialPOS serialVFD sli SureElec text tyan vlsys_m428 yard2LCD
+endef
+
+LCDPROC_CORE_DRIVERS:=$(strip $(LCDPROC_CORE_DRIVERS_TEXT))
+
+define Package/lcdproc-server/description
+$(call Package/lcdproc/Default-description)
+
+This package contains the server and a core set of display drivers
+without external dependencies:
+$(LCDPROC_CORE_DRIVERS_TEXT)
+endef
+
+define Package/lcdproc-server/conffiles
+/etc/LCDd.conf
+endef
+
+
+define Package/lcdproc-drivers
+ $(call Package/lcdproc/Default)
+ TITLE:=LCD Display extra drivers
+ DEPENDS:=+lcdproc-server +libncurses +libusb-1.0 +libusb-compat +libftdi1 \
+ +GPIO_SUPPORT:libugpio
+endef
+
+define LCDPROC_OTHER_DRIVERS_TEXT
+curses futaba glcd hd44780 IOWarrior i2500vfd lis picolcd shuttleVFD ula200
+endef
+
+ifeq ($(CONFIG_PACKAGE_kmod-lp),y)
+LCDPROC_OTHER_DRIVERS_TEXT+=sdeclcd sed1330 sed1520 stv5730 t6963
+endif
+
+LCDPROC_OTHER_DRIVERS:=$(strip $(LCDPROC_OTHER_DRIVERS_TEXT))
+
+define Package/lcdproc-drivers/description
+$(call Package/lcdproc/Default-description)
+
+This package contains display drivers with external dependencies:
+$(LCDPROC_OTHER_DRIVERS_TEXT)
+endef
+
+
+# not everything groks --disable-nls
+DISABLE_NLS:=
+
+CONFIGURE_ARGS += \
+ --disable-libX11 \
+ --disable-libhid \
+ --disable-libpng \
+ --disable-freetype \
+ --enable-drivers='all,!g15,!g15driver,!glcdlib,!irman,!lirc,!mdm166a,!mx5000,!svga,!xosd'
+
+# can't use -Wformat=2 because MUSL is somewhat broken
+TARGET_CFLAGS+=-Wall
+
+MAKE_FLAGS += \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDLAGS)"
+
+
+define Package/lcdproc-clients/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/clients/lcdproc/lcdproc $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/clients/lcdexec/lcdexec $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/clients/lcdvc/lcdvc $(1)/usr/bin/
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/clients/lcdproc/lcdproc.conf $(1)/etc/
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/clients/lcdexec/lcdexec.conf $(1)/etc/
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/clients/lcdvc/lcdvc.conf $(1)/etc/
+ $(INSTALL_BIN) ./files/lcd* $(1)/etc/init.d/
+endef
+
+define Package/lcdproc-server/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_DIR) $(1)/usr/lib/lcdproc
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/server/LCDd $(1)/usr/sbin/
+ $(CP) $(foreach driver,$(LCDPROC_CORE_DRIVERS),$(PKG_BUILD_DIR)/server/drivers/$(driver).so) $(1)/usr/lib/lcdproc/
+ $(CP) -p $(PKG_BUILD_DIR)/LCDd.conf $(PKG_BUILD_DIR)/LCDd.conf.orig
+ sed -i -r \
+ -e 's!^(DriverPath=).*$$$$!\1/usr/lib/lcdproc/!' \
+ -e 's!^(Driver=)curses$$$$!\1sdeclcd!' \
+ $(PKG_BUILD_DIR)/LCDd.conf
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/LCDd.conf $(1)/etc/
+ $(INSTALL_BIN) ./files/LCDd $(1)/etc/init.d/
+endef
+
+define Package/lcdproc-drivers/install
+ $(INSTALL_DIR) $(1)/usr/lib/lcdproc
+ $(CP) $(foreach driver,$(LCDPROC_OTHER_DRIVERS),$(PKG_BUILD_DIR)/server/drivers/$(driver).so) $(1)/usr/lib/lcdproc/
+endef
+
+
+$(eval $(call BuildPackage,lcdproc-clients))
+$(eval $(call BuildPackage,lcdproc-server))
+$(eval $(call BuildPackage,lcdproc-drivers))
+
--- /dev/null
+#!/bin/sh /etc/rc.common
+
+START=22
+USE_PROCD=1
+PROG=/usr/sbin/LCDd
+
+config_file=/etc/LCDd.conf
+
+start_service() {
+ procd_open_instance
+ procd_set_param command $PROG -f -c $config_file
+ procd_close_instance
+}
+
--- /dev/null
+#!/bin/sh /etc/rc.common
+
+START=50
+USE_PROCD=1
+PROG=/usr/bin/lcdexec
+
+config_file=/etc/lcdexec.conf
+
+start_service() {
+ procd_open_instance
+ procd_set_param command $PROG -f -c $config_file
+ procd_close_instance
+}
+
--- /dev/null
+#!/bin/sh /etc/rc.common
+
+START=50
+USE_PROCD=1
+PROG=/usr/bin/lcdproc
+
+config_file=/etc/lcdproc.conf
+
+start_service() {
+ procd_open_instance
+ procd_set_param command $PROG -f -c $config_file
+ procd_close_instance
+}
+
--- /dev/null
+#!/bin/sh /etc/rc.common
+
+START=50
+USE_PROCD=1
+PROG=/usr/bin/lcdvc
+
+config_file=/etc/lcdvc.conf
+
+start_service() {
+ procd_open_instance
+ procd_set_param command $PROG -f -c $config_file
+ procd_close_instance
+}
+
include $(INCLUDE_DIR)/package.mk
define Package/pcsc-lite/Default
- TITLE:=Middleware to access a smart card using SCard API (PC/SC).
+ TITLE:=Access a smart card using SCard API (PC/SC)
URL:=http://pcsclite.alioth.debian.org/
endef
PKG_NAME:=shadow
PKG_VERSION:=4.2.1
-PKG_RELEASE:=5
+PKG_RELEASE:=6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://pkg-shadow.alioth.debian.org/releases
include $(INCLUDE_DIR)/nls.mk
SHADOW_APPLETS := \
- chage groupadd groupdel groupmod groups passwd su \
- useradd userdel usermod
+ chage chpasswd chfn chsh expiry faillog gpasswd \
+ groupadd groupdel groupmems groupmod groups \
+ lastlog login newgrp nologin passwd su \
+ useradd userdel usermod vipw
CONFIGURE_ARGS += \
--without-audit \
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=+jshn +jsonfilter
- TITLE:=Translate switch position changes into normal button presses
+ TITLE:=Translate switch position change to button press
URL:=https://github.com/jefferyto/openwrt-slide-switch
endef
include $(INCLUDE_DIR)/package.mk
define Package/stoken/Default
- TITLE:=stoken is a tokencode generator compatible with RSA SecurID 128-bit (AES)
+ TITLE:=tokencode generator compatible with RSA SecurID 128-bit (AES)
URL:=http://sourceforge.net/p/stoken/
DEPENDS:= +libxml2 +libnettle
endef
include $(TOPDIR)/rules.mk
PKG_NAME:=ttyd
-PKG_VERSION:=1.3.1
+PKG_VERSION:=1.3.2+git-f60398
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_PROTO:=git
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/tsl0922/ttyd.git
-PKG_SOURCE_VERSION:=$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=f60398fb0976d5a682f2a28c2e8f8b90ec1c4c2c
+PKG_MIRROR_HASH=687499f46471f018aadce1d71c72de8a7fdd2ea04b926d8eb9eaeb747e1f4388
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE