Ted Hess [Wed, 30 May 2018 17:04:42 +0000 (17:04 +0000)]
Merge pull request #6146 from neheb/libshout
libshout: Fix OpenSSL 1.1.0 without deprecated APIs
Hannu Nyman [Wed, 30 May 2018 14:42:46 +0000 (17:42 +0300)]
Merge pull request #6131 from cotequeiroz/conserver_openssl-1.1
conserver: bump to v8.2.2 - adds openssl 1.1 compatibility
Hannu Nyman [Wed, 30 May 2018 13:40:51 +0000 (16:40 +0300)]
Merge pull request #6153 from TDT-AG/pr/
20180530-net-mwan3-fix-connected-networks
net/mwan3: fix connected networks
Hannu Nyman [Wed, 30 May 2018 13:40:05 +0000 (16:40 +0300)]
Merge pull request #6151 from philenotfound/mutt-bump
mutt: bump to version 1.10.0
Florian Eckert [Wed, 30 May 2018 10:57:49 +0000 (12:57 +0200)]
net/mwan3: update version to 2.6.17
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Florian Eckert [Wed, 30 May 2018 10:40:23 +0000 (12:40 +0200)]
net/mwan3: fix update on connected ip networks
If an interface is not tracked by mwan3 or enabled and this interface is
setup by netifd, then the connected ipset is not update by mwan3.
To fix this also call connected ipset update code even if the interface
is not tracked or enabled by mwan3.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Phil Eichinger [Wed, 30 May 2018 04:32:28 +0000 (06:32 +0200)]
mutt: bump to version 1.10.0
Signed-off-by: Phil Eichinger <phil@zankapfel.net>
Rosen Penev [Tue, 29 May 2018 04:14:34 +0000 (21:14 -0700)]
libshout: Fix OpenSSL 1.1.0 without deprecated APIs
Previous patch was incomplete and broke with deprecated APIs
disabled.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Peter Wagner [Tue, 29 May 2018 23:07:15 +0000 (01:07 +0200)]
git: update to 2.17.1
Fixes CVE-2018-11233 and CVE-2018-11235
Signed-off-by: Peter Wagner <tripolar@gmx.at>
Hannu Nyman [Tue, 29 May 2018 18:14:29 +0000 (21:14 +0300)]
Merge pull request #6114 from kenkeys/protobuf-lite
Protobuf lite
Hannu Nyman [Tue, 29 May 2018 05:05:38 +0000 (08:05 +0300)]
Merge pull request #6145 from EricLuehrsen/unbound_defdoc
unbound: add root zone file cache option
Eric Luehrsen [Tue, 29 May 2018 02:46:07 +0000 (22:46 -0400)]
unbound: add root zone file cache option
Add the possibility to use Unbound auto-zone: clause to
fetch complete root, arpa, in-addr.arpa, and ip6.arpa
zone files. This can speed up recursion when users
access many ccTLD or connection logging hits many PTR.
Signed-off-by: Eric Luehrsen <ericluehrsen@hotmail.com>
Eric Luehrsen [Mon, 28 May 2018 16:50:14 +0000 (12:50 -0400)]
unbound: provide transparent defaults with documentation
Some resource options bundled many Unbound.conf options and
made customizing on top of UCI difficult. Make it easier to
use Unbound built defaults (blank conf sections).
Signed-off-by: Eric Luehrsen <ericluehrsen@hotmail.com>
Eneas U de Queiroz [Tue, 29 May 2018 02:31:54 +0000 (23:31 -0300)]
conserver: update to v8.2.2
Adds openssl compatibility.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
Stijn Tintel [Mon, 28 May 2018 20:38:53 +0000 (23:38 +0300)]
strongswan: bump to 5.6.3
Fixes the following CVEs:
- CVE-2018-5388
- CVE-2018-10811
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Hannu Nyman [Wed, 30 May 2018 10:59:07 +0000 (13:59 +0300)]
Merge pull request #6140 from neheb/tr
transmission: Update to 2.94
Hannu Nyman [Mon, 28 May 2018 19:34:33 +0000 (22:34 +0300)]
Merge pull request #6144 from Shulyaka/master
postfix: version update to 3.3.1
Hannu Nyman [Mon, 28 May 2018 19:34:09 +0000 (22:34 +0300)]
Merge pull request #6143 from DocLM/libgphoto2
libgphoto2: update package 2.5.18
Peter Wagner [Mon, 28 May 2018 18:53:18 +0000 (20:53 +0200)]
nfs-kernel-server: update to 2.3.2
Signed-off-by: Peter Wagner <tripolar@gmx.at>
Denis Shulyaka [Mon, 28 May 2018 18:47:30 +0000 (21:47 +0300)]
postfix: version update to 3.3.1
Signed-off-by: Denis Shulyaka <Shulyaka@gmail.com>
Leonardo Medici [Mon, 28 May 2018 18:44:29 +0000 (20:44 +0200)]
libgphoto2: update package 2.5.18
Signed-off-by: Leonardo Medici <leonardo_medici@me.com>
Yousong Zhou [Mon, 28 May 2018 10:03:28 +0000 (18:03 +0800)]
openvswitch: remove ovs-parse-backtrace
It's a python script and requires backtrace support when building
openvswitch which requires glibc.
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Yousong Zhou [Mon, 28 May 2018 09:41:22 +0000 (17:41 +0800)]
openvswitch: remove docker related utilities
The overlay and underlay driver, and ovs-docker utilities requires setup
and dependencies that are just not available in known maintained state.
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Rosen Penev [Sun, 20 May 2018 16:20:15 +0000 (09:20 -0700)]
transmission: Update to 2.94
Mainly a bugfix for XSS. Patches have been refreshed.
Added an upstream fix for TLS verification. Now enabled by default.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Hannu Nyman [Sun, 27 May 2018 21:37:45 +0000 (00:37 +0300)]
Merge pull request #6138 from ejurgensen/libunistring_update_0910
libunistring: update to 0.9.10
Hannu Nyman [Sun, 27 May 2018 21:37:11 +0000 (00:37 +0300)]
Merge pull request #5897 from oldium/fwknopd-device-fix
fwknopd: More reliable network dependency
Espen Jürgensen [Sun, 27 May 2018 18:21:31 +0000 (20:21 +0200)]
libunistring: update to 0.9.10
Signed-off-by: Espen Jürgensen <espenjurgensen+openwrt@gmail.com>
Michael Heimpold [Sun, 27 May 2018 15:04:08 +0000 (17:04 +0200)]
php7: update to 7.2.6
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Michael Heimpold [Sun, 27 May 2018 12:07:49 +0000 (14:07 +0200)]
Merge pull request #6134 from MikePetullo/php7-pecl-krb5
php7-pecl-krb5: add new package
Michael Heimpold [Sun, 27 May 2018 12:06:49 +0000 (14:06 +0200)]
Merge pull request #6135 from MikePetullo/php7-pecl-mcrypt
php7-pecl-mcrypt: add new package
Hannu Nyman [Sun, 27 May 2018 06:44:19 +0000 (09:44 +0300)]
Merge pull request #6097 from cotequeiroz/libevhtp_openssl-1.1
libevhtp: add openssl 1.1 compatibility
W. Michael Petullo [Sat, 26 May 2018 23:51:21 +0000 (19:51 -0400)]
php7-pecl-mcrypt: add new package
PHP 7.2 dropped support for the libmcrypt binding. The binding is now
provided by PECL, and a number of applications still rely on this package.
Signed-off-by: W. Michael Petullo <mike@flyn.org>
W. Michael Petullo [Sat, 26 May 2018 23:49:53 +0000 (19:49 -0400)]
php7-pecl-krb5: add new package
Signed-off-by: W. Michael Petullo <mike@flyn.org>
Hannu Nyman [Sat, 26 May 2018 17:50:18 +0000 (20:50 +0300)]
Merge pull request #6106 from cotequeiroz/uw-imap_openssl-1.1
uw-imap: add openssl 1.1 compatibility
Hannu Nyman [Fri, 25 May 2018 16:23:45 +0000 (19:23 +0300)]
Merge pull request #6130 from MikePetullo/dovecot
dovecot: add GSSAPI module
W. Michael Petullo [Fri, 25 May 2018 16:00:11 +0000 (12:00 -0400)]
dovecot: add GSSAPI module
Signed-off-by: W. Michael Petullo <mike@flyn.org>
Hannu Nyman [Fri, 25 May 2018 12:19:59 +0000 (15:19 +0300)]
Merge pull request #6127 from mwarning/zerotier
zerotier: update to version 1.2.10
Thomas Heil [Fri, 25 May 2018 11:40:36 +0000 (13:40 +0200)]
Merge pull request #6115 from cotequeiroz/crtmpserver_openssl-1.1
crtmpserver: add compatibility with openssl 1.1
Moritz Warning [Fri, 25 May 2018 00:04:01 +0000 (02:04 +0200)]
zerotier: update to version 1.2.10
Signed-off-by: Moritz Warning <moritzwarning@web.de>
Eneas U de Queiroz [Thu, 24 May 2018 23:15:52 +0000 (20:15 -0300)]
crtmpserver: add compatibility with openssl 1.1
Patched to compile with openssl 1.1, and also added -std=gnu++03 to
allow compilation with gcc 7.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
Hannu Nyman [Thu, 24 May 2018 19:52:28 +0000 (22:52 +0300)]
Merge pull request #6105 from cotequeiroz/libzdb_openssl-1.1
libzdb: add compatibility with openssl 1.1
Ted Hess [Thu, 24 May 2018 19:44:55 +0000 (19:44 +0000)]
Merge pull request #6092 from thess/mjpg-update
mjpg-streamer: Update to latest version from github/jacksonliam repository.
Jo-Philipp Wich [Thu, 24 May 2018 13:05:01 +0000 (15:05 +0200)]
Merge pull request #5780 from jefferyto/golang
golang: new packages
Ted Hess [Thu, 24 May 2018 10:56:12 +0000 (10:56 +0000)]
Merge pull request #6101 from cotequeiroz/libshout_openssl-1.1
libshout: add openssl 1.1.0 compatibility
Eneas U de Queiroz [Thu, 24 May 2018 02:39:04 +0000 (23:39 -0300)]
uw-imap: add openssl 1.1 compatibility
Patch to compile with openssl 1.1
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
Eneas U de Queiroz [Thu, 24 May 2018 02:26:21 +0000 (23:26 -0300)]
libzdb: add compatibility with openssl 1.1
This patch merely updates the detection of the ssl library.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
Ken Keys [Wed, 23 May 2018 23:39:29 +0000 (16:39 -0700)]
protobuf: upgrade to version 3.5.1
Signed-off-by: Ken Keys <kkeys@caida.org>
Ken Keys [Wed, 23 May 2018 23:37:35 +0000 (16:37 -0700)]
protobuf: add smaller protobuf-lite package variant
Signed-off-by: Ken Keys <kkeys@caida.org>
Hannu Nyman [Wed, 23 May 2018 19:39:04 +0000 (22:39 +0300)]
Merge pull request #6095 from zhaojh329/rtty
rtty: Update to 4.1.2
Eneas U de Queiroz [Wed, 23 May 2018 18:37:53 +0000 (15:37 -0300)]
libshout: add openssl 1.1.0 compatibility
Avoid calling deprecated and unnecessary library initialization
functions with openssl >= 1.1.0.
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
Eneas U de Queiroz [Wed, 23 May 2018 17:06:22 +0000 (14:06 -0300)]
libevhtp: add openssl 1.1 compatibility
This patch is a backport of upstream changes.
I read the Makefile warning and made sure it only updates the openssl
calls and data types to the new API. It does not touch anything else!
Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
Jianhui Zhao [Wed, 23 May 2018 12:42:02 +0000 (20:42 +0800)]
rtty: Update to 4.1.2
Signed-off-by: Jianhui Zhao <jianhuizhao329@gmail.com>
Hannu Nyman [Wed, 23 May 2018 10:49:57 +0000 (13:49 +0300)]
Merge pull request #6094 from wvdakker/master
Shorewall: Bump to version 5.2.0.4
W. van den Akker [Wed, 23 May 2018 06:18:35 +0000 (08:18 +0200)]
Shorewall6: Bump to version 5.2.0.4
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Wed, 23 May 2018 06:17:32 +0000 (08:17 +0200)]
Shorewall: Bump to version 5.2.0.4
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Wed, 23 May 2018 06:16:24 +0000 (08:16 +0200)]
Shorewall6-lite: Bump to version 5.2.0.4
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Wed, 23 May 2018 06:15:18 +0000 (08:15 +0200)]
Shorewall-lite: Bump to version 5.2.0.4
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Wed, 23 May 2018 06:13:49 +0000 (08:13 +0200)]
Shorewall-core: Bump to version 5.2.0.4
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
Ted Hess [Mon, 21 May 2018 22:01:20 +0000 (18:01 -0400)]
mjpg-streamer: Update to latest from github/jacksonliam repository. Add additional plugins for RTSP, UDP, etc.
Signed-off-by: Ted Hess <thess@kitschensync.net>
Michael Heimpold [Mon, 21 May 2018 12:52:46 +0000 (14:52 +0200)]
libiio: update to 0.15
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Michael Heimpold [Mon, 21 May 2018 12:45:35 +0000 (14:45 +0200)]
libgpiod: update to 1.1
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
Yousong Zhou [Mon, 21 May 2018 02:40:17 +0000 (10:40 +0800)]
xl2tpd: bump to version 1.3.12
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Hannu Nyman [Mon, 21 May 2018 05:41:43 +0000 (08:41 +0300)]
Merge pull request #6080 from kuoruan/aria2
aria2: Bump 1.34.0
Hannu Nyman [Mon, 21 May 2018 05:19:31 +0000 (08:19 +0300)]
Merge pull request #6076 from neheb/btrfs
btrfs-progs: Update to 4.16.1
Hannu Nyman [Mon, 21 May 2018 05:18:34 +0000 (08:18 +0300)]
Merge pull request #6078 from mwarning/kadnode
kadnode: update to version 2.2.3
Hsing-Wang Liao [Mon, 21 May 2018 02:38:24 +0000 (10:38 +0800)]
aria2: Bump 1.34.0
Signed-off-by: Hsing-Wang Liao <kuoruan@gmail.com>
Moritz Warning [Mon, 21 May 2018 00:05:01 +0000 (02:05 +0200)]
kadnode: update to version 2.2.3
Signed-off-by: Moritz Warning <moritzwarning@web.de>
Ted Hess [Sun, 20 May 2018 20:53:59 +0000 (20:53 +0000)]
Merge pull request #5680 from neheb/shairplay
shairplay: Change URL to HTTPS and switch file to .xz
Rosen Penev [Sun, 20 May 2018 18:05:30 +0000 (11:05 -0700)]
btrfs-progs: Update to 4.16.1
Some programs were removed upstream.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Hannu Nyman [Sun, 20 May 2018 16:28:58 +0000 (19:28 +0300)]
Merge pull request #6075 from mwarning/kadnode
kadnode: update to version 2.2.2
Hannu Nyman [Sun, 20 May 2018 16:28:19 +0000 (19:28 +0300)]
Merge pull request #6072 from wvdakker/master
Shorewall: Bump to 5.2.0.3
Hannu Nyman [Sun, 20 May 2018 16:27:42 +0000 (19:27 +0300)]
Merge pull request #5562 from Andy2244/krb5-fix
krb5: update depends, fix FS#1310
Moritz Warning [Sun, 20 May 2018 00:27:24 +0000 (02:27 +0200)]
kadnode: update to version 2.2.2
Signed-off-by: Moritz Warning <moritzwarning@web.de>
W. van den Akker [Sat, 19 May 2018 09:10:04 +0000 (11:10 +0200)]
Shorewall6: Bump to 5.2.0.3
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Sat, 19 May 2018 08:56:52 +0000 (10:56 +0200)]
Shorewall: Bump to 5.2.0.3
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Sat, 19 May 2018 08:55:48 +0000 (10:55 +0200)]
Shorewall6-lite: Bump to 5.2.0.3
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Sat, 19 May 2018 08:54:49 +0000 (10:54 +0200)]
Shorewall-lite: Bump to 5.2.0.3
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
W. van den Akker [Sat, 19 May 2018 08:53:23 +0000 (10:53 +0200)]
Shorewall-core: Bump to 5.2.0.3
Signed-off-by: W. van den Akker <wvdakker@wilsoft.nl>
Hannu Nyman [Thu, 17 May 2018 11:56:29 +0000 (14:56 +0300)]
Merge pull request #6066 from salzmdan/master
knot: update to 2.6.7
Daniel Salzman [Thu, 17 May 2018 11:11:10 +0000 (13:11 +0200)]
knot: update to 2.6.7
Signed-off-by: Daniel Salzman <daniel.salzman@nic.cz>
Hannu Nyman [Wed, 16 May 2018 21:22:45 +0000 (00:22 +0300)]
Merge pull request #5682 from neheb/xz
xz: Update to 5.2.4 + misc
Hannu Nyman [Wed, 16 May 2018 15:44:25 +0000 (18:44 +0300)]
nano: update to 2.9.7
nano 2.9.7 was released on 2018 May 15.
Release notes:
GNU nano 2.9.7 "Hvide Sande" adds the option '--afterends'
for making Ctrl+Right (the nextword function) stop at word
ends instead of beginnings, accepts multibyte letters for
the Yes/No/All answers, does emergency saves of changed
buffers in the unlikely event that nano crashes, adds the
until-now missing bindable function 'linenumbers', and
renames the toggles 'constupdate' to 'constantshow' and
'cuttoend' to 'cutfromcursor', for consistency with the
corresponding options -- adjust your nanorc files soon.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Hannu Nyman [Wed, 16 May 2018 13:48:32 +0000 (16:48 +0300)]
Merge pull request #6060 from TDT-AG/pr/
20180516-net-mwan3-fixes
Pr/
20180516 net mwan3 fixes
Florian Eckert [Wed, 16 May 2018 09:24:37 +0000 (11:24 +0200)]
net/mwan3: update version to 2.6.16
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Florian Eckert [Tue, 8 May 2018 13:43:34 +0000 (15:43 +0200)]
net/mwan3: execute only ifup event if l3_device is found
Only execute an ifup event with the command "mwan3 ifup <iface>" if the
l3_device is found in the ubus "network.interface.<iface>".
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Florian Eckert [Tue, 8 May 2018 13:42:40 +0000 (15:42 +0200)]
net/mwan3: remove logging mwan3track pid is not found
Remove unnecessary logging if mwan3track pid is not found
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Florian Eckert [Fri, 4 May 2018 13:28:54 +0000 (15:28 +0200)]
net/mwan3: add/remove src_ip from routing table
Add or remove local_source ip also if mwan3 is stopped or started
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Hirokazu MORIKAWA [Mon, 7 May 2018 06:48:15 +0000 (15:48 +0900)]
node: fix host build fail
modify patch.
https://github.com/nodejs/node/pull/19196
made not to use libressl headers
fix to include path not to use "host/include"
Signed-off-by: Hirokazu MORIKAWA <morikw2@gmail.com>
Michael Heimpold [Tue, 15 May 2018 20:09:17 +0000 (22:09 +0200)]
php7: replace libmysqlclient dependencies with libmariadbclient
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
John Crispin [Tue, 15 May 2018 13:11:54 +0000 (15:11 +0200)]
Merge pull request #6049 from jow-/flashrom-update
flashrom: update to v1.0
Hannu Nyman [Tue, 15 May 2018 06:08:42 +0000 (09:08 +0300)]
Merge pull request #5915 from neheb/cifs
cifs-utils: Update to 6.8
Dirk Brenken [Tue, 15 May 2018 06:07:41 +0000 (08:07 +0200)]
Merge pull request #6057 from dibdot/adblock
adblock: update 3.5.2
Jo-Philipp Wich [Sun, 13 May 2018 17:14:20 +0000 (19:14 +0200)]
flashrom: update to v1.0
Update to flashrom version 1.0 and cherry-pick an upstream fix for deprecated
libusb api usage.
Fixes the following error spotted by the buildbots:
ch341a_spi.c: In function 'ch341a_spi_init':
ch341a_spi.c:447:2: error: 'libusb_set_debug' is deprecated: [...]
libusb_set_debug(NULL, 3); // Enable information, warning and [...]
^~~~~~~~~~~~~~~~
In file included from ch341a_spi.c:25:0:
.../libusb-1.0/libusb.h:1300:18: note: declared here
void LIBUSB_CALL libusb_set_debug(libusb_context *ctx, int level);
^~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Makefile:1030: recipe for target 'ch341a_spi.o' failed
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Ted Hess [Mon, 14 May 2018 21:20:48 +0000 (21:20 +0000)]
Merge pull request #5917 from diizzyy/patch-2
libs/libx264: Update to snapshot
20180401
Dirk Brenken [Mon, 14 May 2018 20:23:18 +0000 (22:23 +0200)]
adblock: update 3.5.2
backend:
* add generic blocklist archive support
* add support for blacklist archive from Toulouse 1 University Capitole
* add support for urlhaus RPZ domains by abuse.ch
* small bugfixes & enhancements
luci:
* archive sub-categories (shalla & ut_capitole) are now configurable
via LuCI CBI template
* small bugfixes & enhancements
Signed-off-by: Dirk Brenken <dev@brenken.org>
Hannu Nyman [Mon, 14 May 2018 19:49:14 +0000 (22:49 +0300)]
Merge pull request #6023 from ClaymorePT/boost_1.67.0_r2
boost: Package Release 2 (minor fixes)
Hannu Nyman [Mon, 14 May 2018 19:44:03 +0000 (22:44 +0300)]
Merge pull request #6054 from zhaojh329/libuwsc
libuwsc: Update to 2.0.2
Hannu Nyman [Mon, 14 May 2018 19:42:19 +0000 (22:42 +0300)]
Merge pull request #6053 from commodo/python-remove-ignore-installed-host
python,python3: remove `--ignore-installed` flag for host packages
Hannu Nyman [Mon, 14 May 2018 19:41:29 +0000 (22:41 +0300)]
Merge pull request #6051 from ldir-EDB0/bumplibidn
libidn: bump to v1.35 (2018-05-11)
Jianhui Zhao [Mon, 14 May 2018 16:04:37 +0000 (00:04 +0800)]
libuwsc: Update to 2.0.2
Signed-off-by: Jianhui Zhao <jianhuizhao329@gmail.com>