# enable BUILD_LOG
sed -i '1s/^/config BUILD_LOG\n\tbool\n\tdefault y\n\n/' Config-build.in
- ./scripts/feeds update -a
- ./scripts/feeds install -a
- make defconfig
+ ./scripts/feeds update -a > /dev/null
+ ./scripts/feeds install -a > /dev/null
+ make defconfig > /dev/null
echo_blue "=== Setting up SDK done"
RET=0
echo_blue "=== $pkg_name: begin compile logs"
for f in $(find logs/package/feeds/packages/$pkg_name/ -type f); do
- echo_blue "Printing $f"
- cat "$f"
+ echo_blue "Printing last 200 lines of $f"
+ tail -n200 "$f"
done
echo_blue "=== $pkg_name: end compile logs"
PKG_NPM_NAME:=arduino-firmata
PKG_NAME:=node-$(PKG_NPM_NAME)
PKG_VERSION:=0.3.3
-PKG_RELEASE:=6
+PKG_RELEASE:=7
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/shokai/node-arduino-firmata.git
PKG_MIRROR_HASH:=b7a498ccf70e466503e72d38ae5b474e91416b6c9842fd167dff249357b0dc37
PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
PKG_LICENSE:=MIT
include $(INCLUDE_DIR)/package.mk
define Package/node-arduino-firmata
- DEPENDS:=+node +node-npm
SUBMENU:=Node.js
SECTION:=lang
CATEGORY:=Languages
- DEPENDS:=+node +node-serialport
TITLE:=Node.js package to access serial ports for reading and writing
URL:=https://www.npmjs.org/package/serialport
+ DEPENDS:=+node +node-npm +node-serialport
endef
define Package/node-arduino-firmata/description
PKG_NPM_NAME:=cylon
PKG_NAME:=node-$(PKG_NPM_NAME)
PKG_VERSION:=0.22.0
-PKG_RELEASE:=6
+PKG_RELEASE:=7
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/hybridgroup/cylon-firmata.git
PKG_MIRROR_HASH:=e531d3c92965518c60d52bc497bfa9be563ee68c3cf65c77fa55d5e9c2627367
PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
PKG_LICENSE:=Apache-2.0
include $(INCLUDE_DIR)/package.mk
define Package/node-cylon/default
- DEPENDS:=+node +node-npm $(2)
SUBMENU:=Node.js
SECTION:=lang
CATEGORY:=Languages
TITLE:=CylonJS - $(1)
URL:=https://www.npmjs.org/package/cylon
+ DEPENDS:=+node +node-npm $(2)
endef
define Package/node-cylon
PKG_NPM_NAME:=hid
PKG_NAME:=node-$(PKG_NPM_NAME)
PKG_VERSION:=0.5.1
-PKG_RELEASE:=6
+PKG_RELEASE:=7
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/node-hid/node-hid.git
PKG_MIRROR_HASH:=125f752d491ac10d32bab0f0d660f6f150c6a9a168b2b56bfddc2cb1d65166fc
PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
PKG_LICENSE:=Custom
include $(INCLUDE_DIR)/package.mk
define Package/node-hid
- DEPENDS:=+node +node-npm
SUBMENU:=Node.js
SECTION:=lang
CATEGORY:=Languages
- DEPENDS:=+libusb-1.0 +hidapi +libstdcpp
TITLE:=Node.js package to access HID devices
URL:=https://github.com/node-hid/node-hid
+ DEPENDS:=+node +node-npm +libusb-1.0 +hidapi +libstdcpp
endef
define Package/node-hid/description
PKG_NPM_NAME:=serialport
PKG_NAME:=node-$(PKG_NPM_NAME)
PKG_VERSION:=3.0.0
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=http://registry.npmjs.org/$(PKG_NPM_NAME)/-/
PKG_HASH:=3bc75b4c2742f0efe8495feb28c5da1a4774df75d94836e43409ed352addfec7
PKG_BUILD_DEPENDS:=node/host
-PKG_NODE_VERSION:=4.4.5
+PKG_NODE_VERSION:=6.11.2
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
PKG_LICENSE:=Custom
include $(INCLUDE_DIR)/package.mk
define Package/node-serialport
- DEPENDS:=+node +node-npm
SUBMENU:=Node.js
SECTION:=lang
CATEGORY:=Languages
TITLE:=Node.js package to access serial ports for reading and writing
URL:=https://www.npmjs.org/package/serialport
+ DEPENDS:=+node +node-npm
endef
define Package/node-serialport/description
include $(INCLUDE_DIR)/target.mk
PKG_NAME:=boost
-PKG_VERSION:=1.65.0
-PKG_SOURCE_VERSION:=1_65_0
+PKG_VERSION:=1.65.1
+PKG_SOURCE_VERSION:=1_65_1
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_HASH:=ea26712742e2fb079c2a566a31f3266973b76e38222b9f88b387e3c8b2f9902c
+PKG_HASH:=9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81
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.65 libraries.
+This package provides the Boost v1.65.1 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_65_0/
+See more at http://www.boost.org/doc/libs/1_65_1/
endef
PKG_BUILD_DEPENDS:=boost/host PACKAGE_python:python PACKAGE_python3:python3
+++ /dev/null
-Index: boost_1_65_0/boost/context/continuation_fcontext.hpp
-===================================================================
---- boost_1_65_0.orig/boost/context/continuation_fcontext.hpp
-+++ boost_1_65_0/boost/context/continuation_fcontext.hpp
-@@ -95,7 +95,7 @@ transfer_t context_ontop( transfer_t t)
- t.data = nullptr;
- Ctx c{ t.fctx };
- // execute function, pass continuation via reference
-- fn( std::move( c) );
-+ c = fn( std::move( c) );
- #if defined(BOOST_NO_CXX14_STD_EXCHANGE)
- return { exchange( c.fctx_, nullptr), nullptr };
- #else
-Index: boost_1_65_0/boost/context/continuation_ucontext.hpp
-===================================================================
---- boost_1_65_0.orig/boost/context/continuation_ucontext.hpp
-+++ boost_1_65_0/boost/context/continuation_ucontext.hpp
-@@ -84,18 +84,18 @@ static void entry_func( void * data) noe
- struct BOOST_CONTEXT_DECL activation_record {
- thread_local static activation_record * current_rec;
-
-- ucontext_t uctx{};
-- stack_context sctx{};
-- bool main_ctx{ true };
-- activation_record * from{ nullptr };
-- std::function< void(activation_record*&) > ontop{};
-- bool terminated{ false };
-- bool force_unwind{ false };
-+ ucontext_t uctx{};
-+ stack_context sctx{};
-+ bool main_ctx{ true };
-+ activation_record * from{ nullptr };
-+ std::function< activation_record*(activation_record*&) > ontop{};
-+ bool terminated{ false };
-+ bool force_unwind{ false };
- #if defined(BOOST_USE_ASAN)
-- void * fake_stack{ nullptr };
-- void * stack_bottom{ nullptr };
-- std::size_t stack_size{ 0 };
-- bool started{ false };
-+ void * fake_stack{ nullptr };
-+ void * stack_bottom{ nullptr };
-+ std::size_t stack_size{ 0 };
-+ bool started{ false };
- #endif
-
- static activation_record *& current() noexcept;
-@@ -168,20 +168,30 @@ struct BOOST_CONTEXT_DECL activation_rec
- current()->ontop = std::bind(
- [](typename std::decay< Fn >::type & fn, activation_record *& ptr){
- Ctx c{ ptr };
-- fn( std::move( c) );
-+ c = fn( std::move( c) );
- if ( ! c) {
- ptr = nullptr;
- }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+ return exchange( c.ptr_, nullptr);
-+#else
-+ return std::exchange( c.ptr_, nullptr);
-+#endif
- },
- std::forward< Fn >( fn),
- std::placeholders::_1);
- #else
- current()->ontop = [fn=std::forward<Fn>(fn)](activation_record *& ptr){
- Ctx c{ ptr };
-- fn( std::move( c) );
-+ c = fn( std::move( c) );
- if ( ! c) {
- ptr = nullptr;
- }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+ return exchange( c.ptr_, nullptr);
-+#else
-+ return std::exchange( c.ptr_, nullptr);
-+#endif
- };
- #endif
- #if defined(BOOST_USE_SEGMENTED_STACKS)
-@@ -408,7 +418,7 @@ public:
- if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
- throw detail::forced_unwind{ ptr};
- } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
-- detail::activation_record::current()->ontop( ptr);
-+ ptr = detail::activation_record::current()->ontop( ptr);
- detail::activation_record::current()->ontop = nullptr;
- }
- return continuation{ ptr };
-@@ -426,7 +436,7 @@ public:
- if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
- throw detail::forced_unwind{ ptr};
- } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
-- detail::activation_record::current()->ontop( ptr);
-+ ptr = detail::activation_record::current()->ontop( ptr);
- detail::activation_record::current()->ontop = nullptr;
- }
- return continuation{ ptr };
-Index: boost_1_65_0/boost/context/continuation_winfib.hpp
-===================================================================
---- boost_1_65_0.orig/boost/context/continuation_winfib.hpp
-+++ boost_1_65_0/boost/context/continuation_winfib.hpp
-@@ -65,13 +65,13 @@ static VOID WINAPI entry_func( LPVOID da
- struct BOOST_CONTEXT_DECL activation_record {
- thread_local static activation_record * current_rec;
-
-- LPVOID fiber{ nullptr };
-- stack_context sctx{};
-- bool main_ctx{ true };
-- activation_record * from{ nullptr };
-- std::function< void(activation_record*&) > ontop{};
-- bool terminated{ false };
-- bool force_unwind{ false };
-+ LPVOID fiber{ nullptr };
-+ stack_context sctx{};
-+ bool main_ctx{ true };
-+ activation_record * from{ nullptr };
-+ std::function< activation_record*(activation_record*&) > ontop{};
-+ bool terminated{ false };
-+ bool force_unwind{ false };
-
- static activation_record *& current() noexcept;
-
-@@ -142,20 +142,30 @@ struct BOOST_CONTEXT_DECL activation_rec
- current()->ontop = std::bind(
- [](typename std::decay< Fn >::type & fn, activation_record *& ptr){
- Ctx c{ ptr };
-- fn( std::move( c) );
-+ c = fn( std::move( c) );
- if ( ! c) {
- ptr = nullptr;
- }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+ return exchange( c.ptr_, nullptr);
-+#else
-+ return std::exchange( c.ptr_, nullptr);
-+#endif
- },
- std::forward< Fn >( fn),
- std::placeholders::_1);
- #else
- current()->ontop = [fn=std::forward<Fn>(fn)](activation_record *& ptr){
- Ctx c{ ptr };
-- fn( std::move( c) );
-+ c = fn( std::move( c) );
- if ( ! c) {
- ptr = nullptr;
- }
-+#if defined(BOOST_NO_CXX14_STD_EXCHANGE)
-+ return exchange( c.ptr_, nullptr);
-+#else
-+ return std::exchange( c.ptr_, nullptr);
-+#endif
- };
- #endif
- // context switch
-@@ -336,7 +346,7 @@ public:
- if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
- throw detail::forced_unwind{ ptr};
- } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
-- detail::activation_record::current()->ontop( ptr);
-+ ptr = detail::activation_record::current()->ontop( ptr);
- detail::activation_record::current()->ontop = nullptr;
- }
- return continuation{ ptr };
-@@ -354,7 +364,7 @@ public:
- if ( BOOST_UNLIKELY( detail::activation_record::current()->force_unwind) ) {
- throw detail::forced_unwind{ ptr};
- } else if ( BOOST_UNLIKELY( nullptr != detail::activation_record::current()->ontop) ) {
-- detail::activation_record::current()->ontop( ptr);
-+ ptr = detail::activation_record::current()->ontop( ptr);
- detail::activation_record::current()->ontop = nullptr;
- }
- return continuation{ ptr };
-Index: boost_1_65_0/boost/thread/win32/condition_variable.hpp
-===================================================================
---- boost_1_65_0.orig/boost/thread/win32/condition_variable.hpp
-+++ boost_1_65_0/boost/thread/win32/condition_variable.hpp
-@@ -211,7 +211,7 @@ namespace boost
- {}
- #endif
-
-- void remove_waiter()
-+ void remove_waiter_and_reset()
- {
- if (entry) {
- boost::lock_guard<boost::mutex> internal_lock(internal_mutex);
-@@ -221,7 +221,7 @@ namespace boost
- }
- ~entry_manager() BOOST_NOEXCEPT_IF(false)
- {
-- remove_waiter();
-+ remove_waiter_and_reset();
- }
-
- list_entry* operator->()
-@@ -250,7 +250,7 @@ namespace boost
- woken=entry->woken();
- }
- // do it here to avoid throwing on the destructor
-- entry->remove_waiter();
-+ entry.remove_waiter_and_reset();
- locker.lock();
- return woken;
- }
-Index: boost_1_65_0/libs/context/doc/callcc.qbk
-===================================================================
---- boost_1_65_0.orig/libs/context/doc/callcc.qbk
-+++ boost_1_65_0/libs/context/doc/callcc.qbk
-@@ -176,6 +176,7 @@ return `void`.
- c=c.resume_with([&data](ctx::continuation && c){
- std::cout << "f2: entered: " << data << std::endl;
- data=-1;
-+ return std::move( c);
- });
- std::cout << "f1: returned third time" << std::endl;
-
-@@ -221,6 +222,7 @@ an exception.
- c = c.resume_with(
- [](ctx::continuation && c){
- throw my_exception(std::move(c),"abc");
-+ return std::move( c);
- });
-
- output:
-@@ -527,11 +529,11 @@ e.g. ['continuation::operator bool()] re
-
- [variablelist
- [[Effects:] [Captures current continuation and resumes `*this`.
--The function `resume_with`, is used to execute function `fn` in continuation
-+The function `resume_with`, is used to execute function `fn` in the execution context of
- `*this` (e.g. the stack frame of `fn` is allocated on stack of `*this`).]]
- [[Returns:] [The continuation representing the continuation that has been
- suspended.]]
--[[Note:] [Function `fn` needs to return void.]]
-+[[Note:] [Function `fn` needs to return `continuation`.]]
- [[Note:] [The returned continuation indicates if the suspended continuation has
- terminated (return from context-function) via `bool operator()`.]]
- ]
-Index: boost_1_65_0/libs/context/example/ontop.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/example/ontop.cpp
-+++ boost_1_65_0/libs/context/example/ontop.cpp
-@@ -32,6 +32,7 @@ int main() {
- c = c.resume_with( [&data](ctx::continuation && c){
- std::cout << "f2: entered: " << data << std::endl;
- data = -1;
-+ return std::move( c);
- });
- std::cout << "f1: returned third time" << std::endl;
- std::cout << "main: done" << std::endl;
-Index: boost_1_65_0/libs/context/example/ontop_void.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/example/ontop_void.cpp
-+++ boost_1_65_0/libs/context/example/ontop_void.cpp
-@@ -21,8 +21,9 @@ ctx::continuation f1( ctx::continuation
- return std::move( c);
- }
-
--void f2( ctx::continuation && c) {
-+ctx::continuation f2( ctx::continuation && c) {
- std::cout << "f2: entered" << std::endl;
-+ return std::move( c);
- }
-
- int main() {
-Index: boost_1_65_0/libs/context/example/throw.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/example/throw.cpp
-+++ boost_1_65_0/libs/context/example/throw.cpp
-@@ -38,6 +38,7 @@ int main() {
- c = c.resume_with(
- [](ctx::continuation && c){
- throw my_exception(std::move( c), "abc");
-+ return std::move( c);
- });
-
- std::cout << "main: done" << std::endl;
-Index: boost_1_65_0/libs/context/test/test_callcc.cpp
-===================================================================
---- boost_1_65_0.orig/libs/context/test/test_callcc.cpp
-+++ boost_1_65_0/libs/context/test/test_callcc.cpp
-@@ -252,6 +252,7 @@ void test_ontop() {
- c = c.resume_with(
- [&i](ctx::continuation && c){
- i -= 10;
-+ return std::move( c);
- });
- BOOST_CHECK( c);
- BOOST_CHECK_EQUAL( i, 200);
-@@ -266,6 +267,7 @@ void test_ontop() {
- c = c.resume_with(
- [&c1](ctx::continuation && c){
- c1 = std::move( c);
-+ return std::move( c);
- });
- }
- }
-@@ -290,7 +292,8 @@ void test_ontop_exception() {
- const char * what = "hello world";
- c.resume_with(
- [what](ctx::continuation && c){
-- throw my_exception( std::move( c), what);
-+ throw my_exception( std::move( c), what);
-+ return std::move( c);
- });
- BOOST_CHECK_EQUAL( 3, value1);
- BOOST_CHECK_EQUAL( std::string( what), value2);
-Index: boost_1_65_0/libs/fiber/src/context.cpp
-===================================================================
---- boost_1_65_0.orig/libs/fiber/src/context.cpp
-+++ boost_1_65_0/libs/fiber/src/context.cpp
-@@ -145,6 +145,7 @@ context::resume() noexcept {
- // pass pointer to the context that resumes `this`
- c_.resume_with([prev](boost::context::continuation && c){
- prev->c_ = std::move( c);
-+ return boost::context::continuation{};
- });
- }
-
-@@ -158,6 +159,7 @@ context::resume( detail::spinlock_lock &
- c_.resume_with([prev,&lk](boost::context::continuation && c){
- prev->c_ = std::move( c);
- lk.unlock();
-+ return boost::context::continuation{};
- });
- }
-
-@@ -171,6 +173,7 @@ context::resume( context * ready_ctx) no
- c_.resume_with([prev,ready_ctx](boost::context::continuation && c){
- prev->c_ = std::move( c);
- context::active()->schedule( ready_ctx);
-+ return boost::context::continuation{};
- });
- }
-
-@@ -218,6 +221,7 @@ context::suspend_with_cc() noexcept {
- // pass pointer to the context that resumes `this`
- return c_.resume_with([prev](boost::context::continuation && c){
- prev->c_ = std::move( c);
-+ return boost::context::continuation{};
- });
- }
-
--- /dev/null
+Index: boost_1_65_1/libs/fiber/src/numa/linux/pin_thread.cpp
+===================================================================
+--- boost_1_65_1.orig/libs/fiber/src/numa/linux/pin_thread.cpp
++++ boost_1_65_1/libs/fiber/src/numa/linux/pin_thread.cpp
+@@ -9,6 +9,7 @@
+ extern "C" {
+ #include <pthread.h>
+ #include <sched.h>
++#include <string.h>
+ }
+
+ #include <system_error>
+++ /dev/null
-Index: boost_1_65_0/libs/fiber/src/numa/linux/pin_thread.cpp
-===================================================================
---- boost_1_65_0.orig/libs/fiber/src/numa/linux/pin_thread.cpp
-+++ boost_1_65_0/libs/fiber/src/numa/linux/pin_thread.cpp
-@@ -9,6 +9,7 @@
- extern "C" {
- #include <pthread.h>
- #include <sched.h>
-+#include <string.h>
- }
-
- #include <system_error>
include $(TOPDIR)/rules.mk
PKG_NAME:=libndpi
-PKG_VERSION:=1.8
+PKG_VERSION:=2.0
PKG_RELEASE:=1
PKG_MAINTAINER:=Banglang Huang <banglang.huang@foxmail.com>
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ntop/nDPI.git
-PKG_SOURCE_VERSION:=6450ae256cfd7a6006d39df4a29de32f2f6fb7eb
+PKG_SOURCE_VERSION:=6607c33cb8d0d942e97fe28b1a3a51da06b7426a
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MIRROR_HASH:=4e8fe352bd739c76c980f52904a4a2eefbc17ad68e55603c6c19598d7ccfba3c
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_MIRROR_HASH:=800554afbb7c742786c554ca553c4d866bc4dcf61154858ce6b40511e7d7be39
PKG_LICENSE:=LGPLv3
PKG_INSTALL:=1
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/
$(CP) \
- $(PKG_INSTALL_DIR)/usr/include/libndpi-1.8.0/libndpi \
+ $(PKG_INSTALL_DIR)/usr/include/libndpi-$(PKG_VERSION).0/libndpi \
$(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
PKG_SOURCE:=$(PKG_NAME)-cpp-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/google/protobuf/releases/download/v$(PKG_VERSION)
-PKG_HASH:=5e2587dea2f9287885e3b04d3a94ed4e8b9b2d2c5dd1f0032ceef3ea1d153bd7
+PKG_HASH:=578a2589bf9258adb03245dec5d624b61536867ebb732dbb8aeb30d96b0ada1f
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_NAME:=dovecot
PKG_VERSION:=2.2.32
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.dovecot.org/releases/2.2
define Package/dovecot
SECTION:=mail
CATEGORY:=Mail
- DEPENDS:=+DOVECOT_LDAP:libopenldap +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap
+ DEPENDS:=+DOVECOT_LDAP:libopenldap +DOVECOT_MYSQL:libmysqlclient +DOVECOT_PGSQL:libpq +DOVECOT_SQLITE:libsqlite3 +libopenssl +librt +zlib +libbz2 +libcap
TITLE:=An IMAP and POP3 daemon
MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
URL:=http://www.dovecot.org/
default n
help
Implements LDAP support in dovecot.
+ config DOVECOT_MYSQL
+ bool "MYSQL support"
+ default n
+ help
+ Implements MYSQL support in dovecot.
+ config DOVECOT_PGSQL
+ bool "PostgreSQL support"
+ default n
+ help
+ Implements PostgreSQL support in dovecot.
config DOVECOT_SQLITE
bool "SQLite support"
default n
--without-lz4 \
--with-icu=no \
$(if $(CONFIG_DOVECOT_LDAP),--with-ldap=yes,--with-ldap=no) \
+ $(if $(CONFIG_DOVECOT_MYSQL),--with-mysql=yes,--with-mysql=no) \
+ $(if $(CONFIG_DOVECOT_PGSQL),--with-pgsql=yes,--with-pgsql=no) \
$(if $(CONFIG_DOVECOT_SQLITE),--with-sqlite=yes,--with-sqlite=no)
CONFIGURE_VARS += \
PKG_TINYCBOR_PROTO:=git
PKG_TINYCBOR_VERSION:=0.4
PKG_TINYCBOR_SOURCE_VERSION:=a088996aa5f59b4f27f20fadad053d88bee357d4
+PKG_TINYCBOR_MIRROR_HASH:=77c600bd7362df8291148fa3d94ca780815ea2b74b817dca7565310ea0abff96
PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2
PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git
PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
define Download/iotivity-tinycbor
FILE:=$(PKG_TINYCBOR_SOURCE)
URL:=$(PKG_TINYCBOR_SOURCE_URL)
+ MIRROR_HASH:=$(PKG_TINYCBOR_MIRROR_HASH)
PROTO:=$(PKG_TINYCBOR_PROTO)
VERSION:=$(PKG_TINYCBOR_SOURCE_VERSION)
SUBDIR:=$(PKG_TINYCBOR_SUBDIR)
# Name and release number of this package
PKG_NAME:=noddos
-PKG_RELEASE:=2
+PKG_RELEASE:=1
PKG_LICENSE:=GPLv3
-PKG_SOURCE_VERSION:=0.4.1
+PKG_SOURCE_VERSION:=0.5.0
PKG_SOURCE_URL:=https://github.com/noddos/noddos/releases/download/v$(PKG_SOURCE_VERSION)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.xz
-PKG_HASH:=f676b1c7d9aa6496184b73eacbbfe27b4f54e53c726769ef9ceeeda9c31a7fa3
+PKG_HASH:=61119d76bbc1e7de74c3f3cd58fe7048581a1653dbffa03ae4215163b5221b18
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
CATEGORY:=Network
TITLE:=noddos -- device-aware cloud-powered firewall
URL:=https://www.noddos.io/
- DEPENDS:=+libstdcpp +libnetfilter-conntrack +libcurl +libopenssl +openssl-util +ca-bundle +ca-certificates +wget +bzip2 +libtins +ipset
+ DEPENDS:=+libstdcpp +libnetfilter-conntrack +libcurl +libopenssl +openssl-util +ca-bundle +ca-certificates +wget +bzip2 +libtins +ipset +libpthread
endef
define Package/noddos/description
PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=118378698e0fa1216b52ace92fe9eae0f7d32c39becbc50837a895d7367674b2c973b1633c8919045d9d16dd2a5fdbedb9d62ff1513547ee4770a2e9116d8b1e
+PKG_HASH:=3d1446f7e437104c8f8c7257ccdbddfc0dc7df3ea68b80274c11dd94cc1c8629
PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
PKG_LICENSE:=GPL-2.0+
PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=c06e365d06c484e7ef673e5a8597d70996f1008a00163aae2d7a53d0d720739a8b0317a093b3e75487ef1c8a02ac4c4c542480757226a974671f82ab08353896
+PKG_HASH:=e90d419ed8a6da615c3a0d6fdcb9481f8e71f89c2bdcff09ab027198ca2ce293
PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
PKG_LICENSE:=GPL-2.0+
PKG_SOURCE_URL:=http://www.shorewall.net/pub/shorewall/$(PKG_DIRECTORY)/shorewall-$(PKG_MAINVERSION)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_HASH:=b616c5886b5bc274e88052359ca4c8aa6df60a9706958698eac7fc362f1c893de00ed2272535d61a88cb6a786bae9b7cba64a835833a9f81c991fb2ffed8244b
+PKG_HASH:=29a2f2be295b4f995b38e663b771660ccdc6321134bcfbd0f9378f9bb1237e3c
PKG_MAINTAINER:=Willem van den Akker <wvdakker@wilsoft.nl>
PKG_LICENSE:=GPL-2.0+
include $(TOPDIR)/rules.mk
PKG_NAME:=unbound
-PKG_VERSION:=1.6.5
-PKG_RELEASE:=1
+PKG_VERSION:=1.6.6
+PKG_RELEASE:=2
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:=e297aa1229015f25bf24e4923cb1dadf1f29b84f82a353205006421f82cc104e
+PKG_HASH:=972b14dc33093e672652a7b2b5f159bab2198b0fe9c9e1c5707e1895d4d4b390
PKG_BUILD_DEPENDS:=libexpat
PKG_BUILD_PARALLEL:=1
Bytes. Extended DNS is necessary for DNSSEC. However, it can run
into MTU issues. Use this size in bytes to manage drop outs.
+ option extended_luci '0'
+ Boolean. Extends a tab hierarchy in LuCI for advanced congfiguration.
+
+ option extended_stats '0'
+ Boolean. extended statistics are printed from unbound-control.
+ Keeping track of more statistics takes time.
+
option hide_binddata '1'
Boolean. If enabled version.server, version.bind, id.server, and
hostname.bind queries are refused.
Typical to configure maybe 0~300, but 1800 is the maximum accepted.
option unbound_control '0'
- Boolean. Enables unbound-control application access ports. Enabling
- this without the unbound-control package installed is robust.
+ Level. Enables unbound-control application access ports.
+ 0 - No unbound-control Access, or add your own in 'unbound_ext.conf'
+ 1 - Unencrypted Local Host Access
+ 2 - SSL Local Host Access; auto unbound-control-setup if available
+ 3 - SSL Network Access; auto unbound-control-setup if available
+ 4 - SSL Network Access; static key/pem files must already exist
option validator '0'
Boolean. Enable DNSSEC. Unbound names this the "validator" module.
if ( bconf == 1 ) {
x = ( "local-data: \"" fqdn ". 120 IN A " adr "\"" ) ;
y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
- print ( x "\n" y ) > hostfile ;
+ print ( x "\n" y "\n" ) > hostfile ;
}
else {
# GA or ULA routed addresses only (not LL or MC)
sub( /\/.*/, "", adr ) ;
adr = ( adr slaac ) ;
-
-
- if ( split( adr, tmp0, ":" ) >= 8 ) {
- sub( "::", ":", adr ) ;
+
+
+ if ( split( adr, tmp0, ":" ) >= 8 ) {
+ sub( "::", ":", adr ) ;
}
if ( bconf == 1 ) {
x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr "\"" ) ;
y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
- print ( x "\n" y ) > hostfile ;
+ print ( x "\n" y "\n" ) > hostfile ;
}
else {
if ( bconf == 1 ) {
x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr "\"" ) ;
y = ( "local-data-ptr: \"" adr " 120 " fqdn "\"" ) ;
- print ( x "\n" y ) > hostfile ;
+ print ( x "\n" y "\n" ) > hostfile ;
}
else {
print ( x "\n" y ) > hostfile ;
}
}
-
+
if (( cdr2 == 128 ) && ( hst != "-" )) {
if ( bconf == 1 ) {
x = ( "local-data: \"" fqdn ". 120 IN AAAA " adr2 "\"" ) ;
y = ( "local-data-ptr: \"" adr2 " 120 " fqdn "\"" ) ;
- print ( x "\n" y ) > hostfile ;
+ print ( x "\n" y "\n" ) > hostfile ;
}
else {
#
##############################################################################
-UNBOUND_B_CONTROL=0
UNBOUND_B_SLAAC6_MAC=0
UNBOUND_B_DNSSEC=0
UNBOUND_B_DNS64=0
+UNBOUND_B_EXT_STATS=0
UNBOUND_B_GATE_NAME=0
UNBOUND_B_HIDE_BIND=1
UNBOUND_B_LOCL_BLCK=0
UNBOUND_B_QUERY_MIN=0
UNBOUND_B_QRY_MINST=0
+UNBOUND_D_CONTROL=0
UNBOUND_D_DOMAIN_TYPE=static
UNBOUND_D_DHCP_LINK=none
UNBOUND_D_EXTRA_DNS=0
UNBOUND_HINTFILE=$UNBOUND_VARDIR/root.hints
UNBOUND_TIMEFILE=$UNBOUND_VARDIR/hotplug.time
+UNBOUND_CTLKEY_FILE=$UNBOUND_VARDIR/unbound_control.key
+UNBOUND_CTLPEM_FILE=$UNBOUND_VARDIR/unbound_control.pem
+UNBOUND_SRVKEY_FILE=$UNBOUND_VARDIR/unbound_server.key
+UNBOUND_SRVPEM_FILE=$UNBOUND_VARDIR/unbound_server.pem
+
##############################################################################
UNBOUND_ANCHOR=/usr/sbin/unbound-anchor
# Ensure access and prepare to jail
chown -R unbound:unbound $UNBOUND_VARDIR
- chmod 775 $UNBOUND_VARDIR
- chmod 664 $UNBOUND_VARDIR/*
+ chmod 755 $UNBOUND_VARDIR
+ chmod 644 $UNBOUND_VARDIR/*
+
+
+ if [ -f $UNBOUND_CTLKEY_FILE -o -f $UNBOUND_CTLPEM_FILE \
+ -o -f $UNBOUND_SRVKEY_FILE -o -f $UNBOUND_SRVPEM_FILE ] ; then
+ # Keys (some) exist already; do not create new ones
+ chmod 640 $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+ $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+ elif [ -x /usr/sbin/unbound-control-setup ] ; then
+ case "$UNBOUND_D_CONTROL" in
+ [2-3])
+ # unbound-control-setup for encrypt opt. 2 and 3, but not 4 "static"
+ /usr/sbin/unbound-control-setup -d $UNBOUND_VARDIR
+
+ chown -R unbound:unbound $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+ $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+ chmod 640 $UNBOUND_CTLKEY_FILE $UNBOUND_CTLPEM_FILE \
+ $UNBOUND_SRVKEY_FILE $UNBOUND_SRVPEM_FILE
+
+ cp -p $UNBOUND_CTLKEY_FILE /etc/unbound/unbound_control.key
+ cp -p $UNBOUND_CTLPEM_FILE /etc/unbound/unbound_control.pem
+ cp -p $UNBOUND_SRVKEY_FILE /etc/unbound/unbound_server.key
+ cp -p $UNBOUND_SRVPEM_FILE /etc/unbound/unbound_server.pem
+ ;;
+ esac
+ fi
}
##############################################################################
unbound_control() {
- if [ "$UNBOUND_B_CONTROL" -gt 0 ] ; then
+ if [ "$UNBOUND_D_CONTROL" -gt 1 ] ; then
+ if [ ! -f $UNBOUND_CTLKEY_FILE -o ! -f $UNBOUND_CTLPEM_FILE \
+ -o ! -f $UNBOUND_SRVKEY_FILE -o ! -f $UNBOUND_SRVPEM_FILE ] ; then
+ # Key files need to be present; if unbound-control-setup was found, then
+ # they might have been made during unbound_makedir() above.
+ UNBOUND_D_CONTROL=0
+ fi
+ fi
+
+
+ case "$UNBOUND_D_CONTROL" in
+ 1)
{
- # Enable remote control tool, but only at local host for security
- # You can hand write fancier encrypted access with /etc/..._ext.conf
+ # Local Host Only Unencrypted Remote Control
echo "remote-control:"
echo " control-enable: yes"
echo " control-use-cert: no"
echo " control-interface: ::1"
echo
} >> $UNBOUND_CONFFILE
- fi
+ ;;
+
+ 2)
+ {
+ # Local Host Only Encrypted Remote Control
+ echo "remote-control:"
+ echo " control-enable: yes"
+ echo " control-use-cert: yes"
+ echo " control-interface: 127.0.0.1"
+ echo " control-interface: ::1"
+ echo " server-key-file: \"$UNBOUND_SRVKEY_FILE\""
+ echo " server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
+ echo " control-key-file: \"$UNBOUND_CTLKEY_FILE\""
+ echo " control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+ echo
+ } >> $UNBOUND_CONFFILE
+ ;;
+
+ [3-4])
+ {
+ # Network Encrypted Remote Control
+ # (3) may auto setup and (4) must have static key/pem files
+ # TODO: add UCI list for interfaces to bind
+ echo "remote-control:"
+ echo " control-enable: yes"
+ echo " control-use-cert: yes"
+ echo " control-interface: 0.0.0.0"
+ echo " control-interface: ::0"
+ echo " server-key-file: \"$UNBOUND_SRVKEY_FILE\""
+ echo " server-cert-file: \"$UNBOUND_SRVPEM_FILE\""
+ echo " control-key-file: \"$UNBOUND_CTLKEY_FILE\""
+ echo " control-cert-file: \"$UNBOUND_CTLPEM_FILE\""
+ echo
+ } >> $UNBOUND_CONFFILE
+ ;;
+ esac
{
local cfg="$1"
local rt_mem rt_conn modulestring
+ # Make fresh conf file
+ echo > $UNBOUND_CONFFILE
+
{
# Make fresh conf file
echo "# $UNBOUND_CONFFILE generated by UCI $( date )"
echo
- } > $UNBOUND_CONFFILE
-
-
- {
# No threading
echo "server:"
echo " username: unbound"
echo " infra-cache-slabs: 1"
echo " key-cache-slabs: 1"
echo
- } >> $UNBOUND_CONFFILE
-
-
- {
+ # Interface Wildcard (access contol handled by "option local_service")
+ echo " interface: 0.0.0.0"
+ echo " interface: ::0"
+ echo " outgoing-interface: 0.0.0.0"
+ echo " outgoing-interface: ::0"
+ echo
# Logging
echo " verbosity: 1"
echo " statistics-interval: 0"
echo " statistics-cumulative: no"
- echo " extended-statistics: no"
- echo
} >> $UNBOUND_CONFFILE
- {
- # Interfaces (access contol "option local_service")
- echo " interface: 0.0.0.0"
- echo " interface: ::0"
- echo " outgoing-interface: 0.0.0.0"
- echo " outgoing-interface: ::0"
- echo
- } >> $UNBOUND_CONFFILE
+ if [ "$UNBOUND_B_EXT_STATS" -gt 0 ] ; then
+ {
+ # Log More
+ echo " extended-statistics: yes"
+ echo
+ } >> $UNBOUND_CONFFILE
+
+ else
+ {
+ # Log Less
+ echo " extended-statistics: no"
+ echo
+ } >> $UNBOUND_CONFFILE
+ fi
case "$UNBOUND_D_PROTOCOL" in
config_get_bool UNBOUND_B_SLAAC6_MAC "$cfg" dhcp4_slaac6 0
config_get_bool UNBOUND_B_DNS64 "$cfg" dns64 0
+ config_get_bool UNBOUND_B_EXT_STATS "$cfg" extended_stats 0
config_get_bool UNBOUND_B_HIDE_BIND "$cfg" hide_binddata 1
config_get_bool UNBOUND_B_LOCL_SERV "$cfg" localservice 1
config_get_bool UNBOUND_B_MAN_CONF "$cfg" manual_conf 0
config_get_bool UNBOUND_B_QRY_MINST "$cfg" query_min_strict 0
config_get_bool UNBOUND_B_PRIV_BLCK "$cfg" rebind_protection 1
config_get_bool UNBOUND_B_LOCL_BLCK "$cfg" rebind_localhost 0
- config_get_bool UNBOUND_B_CONTROL "$cfg" unbound_control 0
config_get_bool UNBOUND_B_DNSSEC "$cfg" validator 0
config_get_bool UNBOUND_B_NTP_BOOT "$cfg" validator_ntp 1
config_get UNBOUND_N_RX_PORT "$cfg" listen_port 53
config_get UNBOUND_N_ROOT_AGE "$cfg" root_age 9
+ config_get UNBOUND_D_CONTROL "$cfg" unbound_control 0
config_get UNBOUND_D_DOMAIN_TYPE "$cfg" domain_type static
config_get UNBOUND_D_DHCP_LINK "$cfg" dhcp_link none
config_get UNBOUND_D_EXTRA_DNS "$cfg" add_extra_dns 0
option domain 'lan'
option domain_type 'static'
option edns_size '1280'
+ option extended_luci '0'
+ option extended_stats '0'
option hide_binddata '1'
option listen_port '53'
option localservice '1'
##############################################################################
-# UNBOUND UCI USER ADDED CLAUSES
+# Extended user clauses added to the end of the UCI generated 'unbound.conf'
#
-# Put your own forward:, view:, stub:, and control: clauses here. This file is
-# appended to the end of UCI auto generated 'unbound.conf'. This is done with
-# include: statement. Notice, it is outside of the server: clause.
+# Put your own forward:, view:, stub:, or remote-control: clauses here. This
+# file is appended to the end of 'unbound.conf' with an include: statement.
+# Notice that it is not part of the server: clause. Use 'unbound_srv.conf' to
+# place custom option statements in the server: clause.
##############################################################################
##############################################################################
-# UNBOUND UCI USER ADDED SERVER OPTIONS
+# User custom options added in the server: clause part of UCI 'unbound.conf'
#
-# Put your own choice options here when not covered by UCI. These are all part
-# of the server: clause only. Most likely are hardening options or local-zone:
-# This is in an include: statement towards the end of the server: cluase.
+# Add your own option statements here when they are not covered by UCI. This
+# file is placed _inside_ the server: clause with an include: statement. Do
+# not start other clauses here, because that would brake the server: clause.
+# Use 'unbound_ext.conf' to start new clauses at the end of 'unbound.conf'.
##############################################################################
-#
-# Example configuration file.
-#
--# See unbound.conf(5) man page, version 1.6.5.
+-# See unbound.conf(5) man page, version 1.6.6.
-#
-# this is a comment.
+##############################################################################
PKG_SOURCE_URL:=https://github.com/linux-can/can-utils
PKG_SOURCE_DATE:=2017-02-16
PKG_SOURCE_VERSION:=cb33a55720716cbe01e6025a2bda74a1b7e492d3
-PKG_MIRROR_HASH:=cb6a615bc7d62923d5bc0130891e824e9964de8a31920004b74872a07d8743ef
+PKG_MIRROR_HASH:=d9c01eeff3d81a28161ca5c3937ec005a1f49ca3eb97bee0164d53cc66365786
PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
PKG_LICENSE:=GPL-2.0+
PKG_SOURCE_URL:=https://github.com/cryptodev-linux/cryptodev-linux
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=a705360197260d28535746ae98c461ba2cfb7a9e
-PKG_MIRROR_HASH:=553069ecf1f3d5d5652404aaf438610f555c94db4369c7c1db85210c4e3cdfee
+PKG_MIRROR_HASH:=334a8f4df18e36e97459b4c6669c9873c13c4f5dae25243cf41ff70c2ce661d8
PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
PKG_SOURCE_URL:=https://github.com/webstack/mbtools.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=149e9c69cec180f18cf8781cf5285b97352bf719
-PKG_MIRROR_HASH:=1e6e2f0e40b1c596bb55279bcedfac5a8deb86ef56978dce01a78877151c9352
+PKG_MIRROR_HASH:=3aed4146e06bd9f9bcc271824c6b1d75d1fc2a0bd980f2b729c3b4755c6f70a8
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_FIXUP:=autoreconf
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
PKG_SOURCE_DATE:=2017-03-20
PKG_SOURCE_VERSION:=37c86e60c0442fef570b75cd81aeb1db4d0cbafd
-PKG_MIRROR_HASH:=fc49fce4f592ffdc2a9c8f453ea96b28eb3ece0c6303ed73462cc61fb5b63318
+PKG_MIRROR_HASH:=652958e818d984804be6846ba504961f31c6e98414d0d34ec7a0d76d0844584a
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=
include $(TOPDIR)/rules.mk
PKG_NAME:=nano
-PKG_VERSION:=2.8.6
+PKG_VERSION:=2.8.7
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/nano
-PKG_HASH:=9a46962a3ae59db922467a095217ed23280b42d80640f932f3a59ba2a6a85776
+PKG_HASH:=fbe31746958698d73c6726ee48ad8b0612697157961a2e9aaa83b4aa53d1165a
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
--- /dev/null
+From 28cfab7580c42a6d6c9c5d787ce736094fd51a0c Mon Sep 17 00:00:00 2001
+From: Benno Schulenberg <bensberg@telfort.nl>
+Date: Tue, 29 Aug 2017 19:28:44 +0200
+Subject: tweaks: fix compilation when configured with --enable-tiny
+
+When moving the cursor to the top-left corner, it is not necessary
+to compute leftedge because firstcolumn IS the relevant leftedge.
+
+Reported-by: Jordi Mallach <jordi@debian.org>
+---
+ src/move.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/move.c b/src/move.c
+index d138356..ce276e4 100644
+--- a/src/move.c
++++ b/src/move.c
+@@ -121,7 +121,7 @@ void do_page_up(void)
+ openfile->current = openfile->edittop;
+ openfile->current_y = 0;
+
+- leftedge = leftedge_for(openfile->firstcolumn, openfile->edittop);
++ leftedge = openfile->firstcolumn;
+ target_column = 0;
+ } else
+ get_edge_and_target(&leftedge, &target_column);
+@@ -152,7 +152,7 @@ void do_page_down(void)
+ openfile->current = openfile->edittop;
+ openfile->current_y = 0;
+
+- leftedge = leftedge_for(openfile->firstcolumn, openfile->edittop);
++ leftedge = openfile->firstcolumn;
+ target_column = 0;
+ } else
+ get_edge_and_target(&leftedge, &target_column);
+--
+cgit v1.0-41-gc330
+
PKG_NAME:=pciutils
PKG_VERSION:=3.5.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/utils/pciutils
of PCI devices
endef
-define Package/pciutils/postinst
-#!/bin/sh
-[ -z "$${IPKG_INSTROOT}" ] || \
-(cd $${PKG_ROOT}/usr/share; $${PKG_ROOT}/usr/sbin/update-pciids; rm pci.ids.gz.old)
-exit 0
+PCI_IDS_REV:=91cfa8a0c994634ba9a4a8639aa2ac6dff8453b9
+PCI_IDS_FILE:=pci.ids.$(PCI_IDS_REV)
+define Download/pci_ids
+ FILE:=$(PCI_IDS_FILE)
+ URL_FILE:=pci.ids
+ URL:=@GITHUB/pciutils/pciids/$(PCI_IDS_REV)
+ HASH:=798528092d1c58eeac99c6505033ec4ce8fe3e19d7e0c41b06790d58753a89b6
+endef
+$(eval $(call Download,pci_ids))
+
+define Build/Prepare
+ $(call Build/Prepare/Default)
+ $(RM) $(PKG_BUILD_DIR)/pci.ids
+ $(CP) $(DL_DIR)/$(PCI_IDS_FILE) $(PKG_BUILD_DIR)/pci.ids
endef
MAKE_FLAGS += \
--- /dev/null
+if PACKAGE_yara
+ comment "Optional modules"
+
+ config YARA_module_magic
+ bool "Magic module"
+ default y
+ help
+ Identify the type of the file based on the output of file command
+
+ config YARA_module_cuckoo
+ bool "Cuckoo module"
+ default n
+ help
+ Create rules based on behavioral info generated by a Cuckoo sandbox
+endif
+
--- /dev/null
+#
+# Copyright (C) 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:=yara
+PKG_VERSION:=3.6.3
+PKG_RELEASE:=1
+PKG_LICENSE:=BSD-3-Clause
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/VirusTotal/yara/archive/v$(PKG_VERSION)/
+PKG_HASH:=ad2c0e788b4d8b2f3e9078f448754313249a302b749b9a24e932bfc5e141a5e8
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/yara
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=Pattern matching swiss knife for malware researchers
+ URL:=http://virustotal.github.io/yara/
+ MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
+ DEPENDS:= +libopenssl
+ DEPENDS+= +YARA_module_magic:libmagic
+ DEPENDS+= +YARA_module_cuckoo:jansson
+ MENU:=1
+endef
+
+define Package/yara/description
+ YARA is a tool aimed at (but not limited to) helping malware researchers
+ to identify and classify malware samples. With YARA you can create
+ descriptions of malware families based on textual or binary patterns.
+endef
+
+CONFIGURE_ARGS += \
+ --disable-dotnet \
+ $(if $(YARA_module_magic),--enable,--disable)-magic \
+ $(if $(YARA_module_cuckoo),--enable,--disable)-cuckoo
+
+define Package/yara/config
+ source "$(SOURCE)/Config.in"
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/yara.h $(1)/usr/include
+ $(INSTALL_DIR) $(1)/usr/include/yara
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/yara/* $(1)/usr/include/yara
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libyara.{a,la,so*} $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/yara.pc $(1)/usr/lib/pkgconfig
+endef
+
+define Package/yara/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/yara $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/yarac $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libyara.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,yara))