diff --git a/packages/addons/addon-depends/whois/package.mk b/packages/addons/addon-depends/whois/package.mk
new file mode 100644
index 0000000000..140d203e34
--- /dev/null
+++ b/packages/addons/addon-depends/whois/package.mk
@@ -0,0 +1,42 @@
+################################################################################
+# This file is part of OpenELEC - http://www.openelec.tv
+# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
+#
+# This Program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This Program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with OpenELEC.tv; see the file COPYING. If not, write to
+# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+# http://www.gnu.org/copyleft/gpl.html
+################################################################################
+
+PKG_NAME="whois"
+PKG_VERSION="5.2.13"
+PKG_REV="1"
+PKG_ARCH="any"
+PKG_LICENSE="GPL"
+PKG_SITE="http://www.linux.it/~md/software/"
+PKG_URL="https://github.com/rfc1036/whois/archive/v${PKG_VERSION}.tar.gz"
+PKG_DEPENDS_TARGET="toolchain"
+PKG_SECTION="system"
+PKG_SHORTDESC="whois is a client-side application which queries the whois directory service for information pertaining to a particular domain name."
+PKG_LONGDESC="whois is a client-side application which queries the whois directory service for information pertaining to a particular domain name."
+
+PKG_IS_ADDON="no"
+PKG_AUTORECONF="no"
+
+make_target() {
+ make mkpasswd
+}
+
+makeinstall_target() {
+ : # nop
+}
diff --git a/packages/addons/service/proftpd/changelog.txt b/packages/addons/service/proftpd/changelog.txt
new file mode 100644
index 0000000000..7b56342737
--- /dev/null
+++ b/packages/addons/service/proftpd/changelog.txt
@@ -0,0 +1,2 @@
+100
+- initial LibreELEC release
\ No newline at end of file
diff --git a/packages/addons/service/proftpd/icon/icon.png b/packages/addons/service/proftpd/icon/icon.png
new file mode 100644
index 0000000000..ff0e0a5037
Binary files /dev/null and b/packages/addons/service/proftpd/icon/icon.png differ
diff --git a/packages/addons/service/proftpd/package.mk b/packages/addons/service/proftpd/package.mk
new file mode 100644
index 0000000000..9bec2884d0
--- /dev/null
+++ b/packages/addons/service/proftpd/package.mk
@@ -0,0 +1,78 @@
+################################################################################
+# This file is part of OpenELEC - http://www.openelec.tv
+# Copyright (C) 2009-2015 Stephan Raue (stephan@openelec.tv)
+#
+# This Program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This Program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with OpenELEC.tv; see the file COPYING. If not, write to
+# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
+# http://www.gnu.org/copyleft/gpl.html
+################################################################################
+
+PKG_NAME="proftpd"
+PKG_VERSION="1.3.5b"
+PKG_REV="100"
+PKG_ARCH="any"
+PKG_LICENSE="GPL"
+PKG_SITE="http://www.proftpd.org/"
+PKG_URL="https://github.com/proftpd/proftpd/archive/v$PKG_VERSION.tar.gz"
+PKG_DEPENDS_TARGET="toolchain libcap libressl netbsd-curses pcre whois"
+PKG_SECTION="service"
+PKG_SHORTDESC="ProFTPD: a FTP server for linux"
+PKG_LONGDESC="ProFTPD ($PKG_VERSION): is a secure and configurable FTP server with SSL/TLS support"
+PKG_AUTORECONF="no"
+
+PKG_IS_ADDON="yes"
+PKG_ADDON_NAME="ProFTPD Server"
+PKG_ADDON_TYPE="xbmc.service"
+
+ADDON_DIR="/storage/.kodi/addons/service.proftpd"
+
+PKG_CONFIGURE_OPTS_TARGET="--enable-static \
+ --enable-openssl \
+ --with-modules=mod_tls \
+ --enable-nls \
+ --localedir=$ADDON_DIR/locale \
+ --enable-sendfile \
+ --enable-facl \
+ --enable-autoshadow \
+ --enable-ctrls \
+ --enable-ipv6 \
+ --enable-nls \
+ --enable-pcre \
+ --enable-largefile"
+
+pre_build_target() {
+ mkdir -p $PKG_BUILD/.$TARGET_NAME
+ cp -RP $PKG_BUILD/* $PKG_BUILD/.$TARGET_NAME
+}
+
+pre_configure_target() {
+ export CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I$SYSROOT_PREFIX/usr/include/ncurses -I$ROOT/$PKG_BUILD/.$TARGET_NAME/include/"
+ export LDFLAGS="$LDFLAGS -L$ROOT/$PKG_BUILD/.$TARGET_NAME/lib"
+}
+
+makeinstall_target() {
+ : # nop
+}
+
+addon() {
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin
+ cp $PKG_BUILD/.$TARGET_NAME/proftpd $ADDON_BUILD/$PKG_ADDON_ID/bin
+ cp $PKG_BUILD/.$TARGET_NAME/ftpwho $ADDON_BUILD/$PKG_ADDON_ID/bin
+ cp $PKG_BUILD/.$TARGET_NAME/ftptop $ADDON_BUILD/$PKG_ADDON_ID/bin
+
+ cp $BUILD/whois*/mkpasswd $ADDON_BUILD/$PKG_ADDON_ID/bin
+
+ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/locale
+ cp $PKG_BUILD/.$TARGET_NAME/locale/* $ADDON_BUILD/$PKG_ADDON_ID/locale
+}
diff --git a/packages/addons/service/proftpd/patches/proftpd-100-llu.patch b/packages/addons/service/proftpd/patches/proftpd-100-llu.patch
new file mode 100644
index 0000000000..d491f49ad5
--- /dev/null
+++ b/packages/addons/service/proftpd/patches/proftpd-100-llu.patch
@@ -0,0 +1,18 @@
+diff -urN proftpd-1.3.4d-org/include/conf.h proftpd-1.3.4d-new/include/conf.h
+--- proftpd-1.3.4d-org/include/conf.h 2011-05-23 22:35:35.000000000 +0200
++++ proftpd-1.3.4d-new/include/conf.h 2013-07-20 12:25:28.000000000 +0200
+@@ -360,13 +360,9 @@
+
+ #endif
+
+-#if defined(HAVE_LLU) && SIZEOF_OFF_T == 8
++/* correctly show file size larger than 2GB */
+ # define PR_LU "llu"
+ # define pr_off_t unsigned long long
+-#else
+-# define PR_LU "lu"
+-# define pr_off_t unsigned long
+-#endif
+
+ /********************************************************************
+ * This is NOT the user configurable section. Look in options.h
diff --git a/packages/addons/service/proftpd/source/bin/proftpd.start b/packages/addons/service/proftpd/source/bin/proftpd.start
new file mode 100755
index 0000000000..58a324bc79
--- /dev/null
+++ b/packages/addons/service/proftpd/source/bin/proftpd.start
@@ -0,0 +1,135 @@
+#!/bin/sh
+
+################################################################################
+# This file is part of OpenELEC - http://www.openelec.tv
+# Copyright (C) 2009-2013 Stephan Raue (stephan@openelec.tv)
+# Copyright (C) 2012 x23
+# Copyright (C) 2012-2015 ultraman
+#
+# This Program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This Program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with OpenELEC.tv; see the file COPYING. If not, write to
+# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
+# http://www.gnu.org/copyleft/gpl.html
+################################################################################
+
+. /etc/profile
+
+mkdir -p "/storage/.kodi/userdata/addon_data/service.proftpd"
+oe_setup_addon service.proftpd
+
+chmod a+x $ADDON_DIR/bin/*
+
+if [ ! -f "$ADDON_HOME/proftpd.conf" ]; then
+ cp $ADDON_DIR/etc/proftpd.conf $ADDON_HOME
+fi
+
+if [ ! -f "$ADDON_HOME/openssl.cnf" ]; then
+ cp $ADDON_DIR/etc/openssl.cnf $ADDON_HOME
+fi
+
+[ -z "$Debuglevel" ] && Debuglevel=0
+
+if [ ! -f "$ADDON_HOME/proftpd.cert.pem" -o ! -f "$ADDON_HOME/proftpd.key.pem" ]; then
+ openssl req -newkey rsa:1024 -config $ADDON_HOME/openssl.cnf -new -x509 -days "$CertTTL" -nodes -out "$ADDON_HOME/proftpd.cert.pem" -keyout "$ADDON_HOME/proftpd.key.pem"
+fi
+
+# Edit proftpd.conf with user settings
+if [ "$TLSEngine" = "false" ]; then
+ sed -i 's/TLSEngine.*/TLSEngine off/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/TLSEngine.*/TLSEngine on/g' $ADDON_HOME/proftpd.conf
+fi
+
+if [ "$AllowOverwrite" = "false" ]; then
+ sed -i 's/AllowOverwrite.*/AllowOverwrite off/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/AllowOverwrite.*/AllowOverwrite on/g' $ADDON_HOME/proftpd.conf
+fi
+
+sed -i 's/^Port.*/Port '$Port'/g' $ADDON_HOME/proftpd.conf
+sed -i 's/MaxClients .*/MaxClients '$MaxClients'/g' $ADDON_HOME/proftpd.conf
+sed -i 's/MaxClientsPerHost.*/MaxClientsPerHost '$MaxClientsPerHost'/g' $ADDON_HOME/proftpd.conf
+sed -i 's/MaxHostsPerUser.*/MaxHostsPerUser '$MaxHostsPerUser'/g' $ADDON_HOME/proftpd.conf
+sed -i 's/MaxInstances.*/MaxInstances '$MaxInstances'/g' $ADDON_HOME/proftpd.conf
+sed -i 's/Umask.*/Umask '$Umask'/g' $ADDON_HOME/proftpd.conf
+sed -i 's/ServerName.*/ServerName "'"$ServerName"'"/g' $ADDON_HOME/proftpd.conf
+sed -i 's/PassivePorts.*/PassivePorts '$PassivePorts' '$PassivePorts2'/g' $ADDON_HOME/proftpd.conf
+
+sed -i '/MasqueradeAddress.*/d' $ADDON_HOME/proftpd.conf
+if [ "$MasqueradeAddress" = "true" ]; then
+ sed -i '1i\MasqueradeAddress '$MasqueradeAddress2'' $ADDON_HOME/proftpd.conf
+fi
+
+if [ "$ServerIdent" = "false" ]; then
+ sed -i 's/ServerIdent.*/ServerIdent off "'"$ServerIdentText"'"/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/ServerIdent.*/ServerIdent on "'"$ServerIdentText"'"/g' $ADDON_HOME/proftpd.conf
+fi
+
+if [ "$AllowForeignAddress" = "false" ]; then
+ sed -i 's/AllowForeignAddress.*/AllowForeignAddress off/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/AllowForeignAddress.*/AllowForeignAddress on/g' $ADDON_HOME/proftpd.conf
+fi
+
+if [ "$AllowStoreRestart" = "false" ]; then
+ sed -i 's/AllowStoreRestart.*/AllowStoreRestart off/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/AllowStoreRestart.*/AllowStoreRestart on/g' $ADDON_HOME/proftpd.conf
+fi
+
+if [ "$AllowRetrieveRestart" = "false" ]; then
+ sed -i 's/AllowRetrieveRestart.*/AllowRetrieveRestart off/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/AllowRetrieveRestart.*/AllowRetrieveRestart on/g' $ADDON_HOME/proftpd.conf
+fi
+
+if [ "$RootLogin" = "false" ]; then
+ sed -i 's/RootLogin.*/RootLogin off/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/RootLogin.*/RootLogin on/g' $ADDON_HOME/proftpd.conf
+fi
+
+if [ "$TLSRequired" = "false" ]; then
+ sed -i 's/TLSRequired.*/TLSRequired off/g' $ADDON_HOME/proftpd.conf
+else
+ sed -i 's/TLSRequired.*/TLSRequired on/g' $ADDON_HOME/proftpd.conf
+fi
+
+cd "$ADDON_DIR/bin"
+
+case "$CryptoHash" in
+ "0") CryptoHash="sha-512"; SALTLength="16";;
+ "1") CryptoHash="sha-256"; SALTLength="16";;
+ "2") CryptoHash="md5"; SALTLength="8";;
+esac
+
+mkdir -p /var/config/
+rm -f /var/config/proftpd.passwd
+touch /var/config/proftpd.passwd
+chmod 700 /var/config/proftpd.passwd
+
+for NUM in $(seq 1 100); do
+ USERNAME=$(eval echo \$Username${NUM})
+ USERPASS=$(eval echo \$Userpass${NUM})
+ USERPATH=$(eval echo \$Userpath${NUM})
+
+ if [ -n "$USERNAME" ]; then
+ echo $USERNAME:$(./mkpasswd --hash=$CryptoHash --salt=$(cat /dev/urandom | tr -cd "[:alnum:]" | head -c $SALTLength) $USERPASS):10:10::$USERPATH:/bin/false >> /var/config/proftpd.passwd
+ # user writes with different user/group
+ mkdir -p "$USERPATH"
+ chmod 777 "$USERPATH"
+ fi
+done
+
+exec proftpd -n -d $Debuglevel -c $ADDON_HOME/proftpd.conf
diff --git a/packages/addons/service/proftpd/source/default.py b/packages/addons/service/proftpd/source/default.py
new file mode 100644
index 0000000000..3999a0eb31
--- /dev/null
+++ b/packages/addons/service/proftpd/source/default.py
@@ -0,0 +1,35 @@
+################################################################################
+# This file is part of LibreELEC - https://libreelec.tv
+# Copyright (C) 2016 Team LibreELEC
+#
+# LibreELEC is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# LibreELEC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LibreELEC. If not, see .
+################################################################################
+
+import subprocess
+import xbmc
+import xbmcaddon
+
+
+class Monitor(xbmc.Monitor):
+
+ def __init__(self, *args, **kwargs):
+ xbmc.Monitor.__init__(self)
+ self.id = xbmcaddon.Addon().getAddonInfo('id')
+
+ def onSettingsChanged(self):
+ subprocess.call(['systemctl', 'restart', self.id])
+
+
+if __name__ == "__main__":
+ Monitor().waitForAbort()
diff --git a/packages/addons/service/proftpd/source/etc/openssl.cnf b/packages/addons/service/proftpd/source/etc/openssl.cnf
new file mode 100644
index 0000000000..428674225e
--- /dev/null
+++ b/packages/addons/service/proftpd/source/etc/openssl.cnf
@@ -0,0 +1,12 @@
+[ req ]
+prompt = no
+distinguished_name = req_distinguished_name
+
+[ req_distinguished_name ]
+C = GB
+ST = Test State
+L = Test Locality
+O = Org Name
+OU = Org Unit Name
+CN = Common Name
+emailAddress = test@email.com
\ No newline at end of file
diff --git a/packages/addons/service/proftpd/source/etc/proftpd.conf b/packages/addons/service/proftpd/source/etc/proftpd.conf
new file mode 100644
index 0000000000..de6e366765
--- /dev/null
+++ b/packages/addons/service/proftpd/source/etc/proftpd.conf
@@ -0,0 +1,60 @@
+ServerName "ProFTPD"
+ServerType standalone
+DefaultServer on
+UseReverseDNS off
+ServerIdent on "FTP Server"
+Port 21
+RootLogin on
+ListOptions "-il"
+MaxClients 10
+MaxHostsPerUser 5
+MaxClientsPerHost 5
+Umask 022
+MaxInstances 30
+User root
+Group root
+DefaultRoot ~
+AllowForeignAddress on
+
+TransferLog /storage/.kodi/userdata/addon_data/service.proftpd/transfer.log
+ExtendedLog /storage/.kodi/userdata/addon_data/service.proftpd/extended.log
+SystemLog /storage/.kodi/userdata/addon_data/service.proftpd/service.log
+
+# Trace DEFAULT:10
+# TraceLog /storage/.kodi/userdata/addon_data/service.proftpd/trace.log
+
+AuthGroupFile /etc/group
+AuthUserFile /var/config/proftpd.passwd
+RequireValidShell off
+AuthOrder mod_auth_unix.c mod_auth_file.c*
+UseFtpUsers off
+PersistentPasswd off
+
+
+ Umask 022
+ TimesGMT off
+ DenyFilter \*.*/
+ PassivePorts 45000 45100
+
+
+
+ AllowOverwrite on
+ AllowStoreRestart on
+ AllowRetrieveRestart on
+ GroupOwner root
+
+
+
+ TLSEngine on
+ # Support both SSLv3 and TLSv1
+ TLSProtocol SSLv3 TLSv1
+ TLSRequired off
+ TLSVerifyClient off
+ TLSOptions NoSessionReuseRequired
+ TLSRSACertificateFile /storage/.kodi/userdata/addon_data/service.proftpd/proftpd.cert.pem
+ TLSRSACertificateKeyFile /storage/.kodi/userdata/addon_data/service.proftpd/proftpd.key.pem
+
+
+#
+# UseEncoding utf8 cp1251
+#
diff --git a/packages/addons/service/proftpd/source/resources/language/English/strings.xml b/packages/addons/service/proftpd/source/resources/language/English/strings.xml
new file mode 100644
index 0000000000..164a84b0c5
--- /dev/null
+++ b/packages/addons/service/proftpd/source/resources/language/English/strings.xml
@@ -0,0 +1,50 @@
+
+
+
+ General
+ Settings
+ Allow Overwrite
+ Port
+ Max Clients
+ Max Clients per Host
+ Max Hosts per User
+ Max Instances
+ Umask
+ Server Name
+ Server Ident
+ Server Ident Text
+ Allow Store Restart
+ Allow Retrieve Restart
+ Allow Root Login
+ Debug level
+ User
+ Hash Algorithm
+ Username 1
+ User Password 1
+ User Path 1
+ Username 2
+ User Password 2
+ User Path 2
+ Username 3
+ User Password 3
+ User Path 3
+ Username 4
+ User Password 4
+ User Path 4
+ Username 5
+ User Password 5
+ User Path 5
+ TLS
+ Allow TLS Engine
+ TLS Required
+ Certificat Lifetime (Days)
+ Certificat Hash Algorithm
+ Certificat Cryptosystem
+ Certificat Bit-Strength
+ FXP
+ Allow Foreign Address
+ Passive Portrange Start
+ Passive Portrange End
+ Enable Masquerade Address
+ Masquerade Address
+
diff --git a/packages/addons/service/proftpd/source/resources/settings.xml b/packages/addons/service/proftpd/source/resources/settings.xml
new file mode 100644
index 0000000000..9562441197
--- /dev/null
+++ b/packages/addons/service/proftpd/source/resources/settings.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/addons/service/proftpd/source/settings-default.xml b/packages/addons/service/proftpd/source/settings-default.xml
new file mode 100644
index 0000000000..c7d7e18b9d
--- /dev/null
+++ b/packages/addons/service/proftpd/source/settings-default.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/addons/service/proftpd/source/system.d/service.proftpd.service b/packages/addons/service/proftpd/source/system.d/service.proftpd.service
new file mode 100644
index 0000000000..4577b2068d
--- /dev/null
+++ b/packages/addons/service/proftpd/source/system.d/service.proftpd.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=ProFTPD
+After=network-online.service
+Requires=network-online.service
+
+[Service]
+ExecStart=/bin/sh -c "exec sh /storage/.kodi/addons/service.proftpd/bin/proftpd.start"
+TimeoutStopSec=2
+Restart=always
+RestartSec=2
+StartLimitInterval=0
+
+[Install]
+WantedBy=kodi.target