diff --git a/config/version b/config/version
index 94de3a24c9..4940f5b636 100644
--- a/config/version
+++ b/config/version
@@ -1,5 +1,5 @@
# VERSION: set full version, use "devel" for development version
- LIBREELEC_VERSION="devel"
+ LIBREELEC_VERSION="8.2.1"
# OS_VERSION: OS Version
OS_VERSION="8.2"
diff --git a/packages/devel/glibc/package.mk b/packages/devel/glibc/package.mk
index a9d589f94e..d0ccca1b75 100644
--- a/packages/devel/glibc/package.mk
+++ b/packages/devel/glibc/package.mk
@@ -32,7 +32,7 @@ PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
PKG_CONFIGURE_OPTS_TARGET="BASH_SHELL=/bin/sh \
- ac_cv_path_PERL= \
+ ac_cv_path_PERL=no \
ac_cv_prog_MAKEINFO= \
--libexecdir=/usr/lib/glibc \
--cache-file=config.cache \
diff --git a/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk b/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk
index e0eb652258..79e4f15c70 100644
--- a/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk
+++ b/packages/mediacenter/kodi-binary-addons/peripheral.joystick/package.mk
@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="peripheral.joystick"
-PKG_VERSION="b464260"
+PKG_VERSION="0acb777"
PKG_REV="0"
PKG_ARCH="any"
PKG_LICENSE="GPL"
diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk
index 51c7c2a07f..d863aeea58 100644
--- a/packages/mediacenter/kodi/package.mk
+++ b/packages/mediacenter/kodi/package.mk
@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="kodi"
-PKG_VERSION="5bd45ab"
+PKG_VERSION="a9a7a20"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
diff --git a/packages/mediacenter/kodi/patches/kodi-100.16-smb-maxprotocol-visible.patch b/packages/mediacenter/kodi/patches/kodi-100.16-smb-maxprotocol-visible.patch
deleted file mode 100644
index 42afc99dc2..0000000000
--- a/packages/mediacenter/kodi/patches/kodi-100.16-smb-maxprotocol-visible.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/system/settings/settings.xml 2017-08-05 04:22:39.894495691 +0100
-+++ b/system/settings/settings.xml 2017-08-05 07:41:42.493159153 +0100
-@@ -1964,7 +1964,7 @@
-
-
- 2
-- false
-+ true
- 0
-
-
diff --git a/packages/mediacenter/kodi/patches/kodi-100.16-smb-minprotocol-legacy.patch b/packages/mediacenter/kodi/patches/kodi-100.16-smb-minprotocol-legacy.patch
new file mode 100644
index 0000000000..9aa52c513d
--- /dev/null
+++ b/packages/mediacenter/kodi/patches/kodi-100.16-smb-minprotocol-legacy.patch
@@ -0,0 +1,232 @@
+From 76f6d6fef6494d2dfd8cbc0ea8d88a8d82029c09 Mon Sep 17 00:00:00 2001
+From: chewitt
+Date: Sat, 11 Nov 2017 05:44:48 +0000
+Subject: [PATCH] smbclient: allow config of min client and legacy security
+
+---
+ .../resource.language.en_gb/resources/strings.po | 34 ++++++++++++++++++----
+ system/settings/linux.xml | 6 ++++
+ system/settings/settings.xml | 25 ++++++++++++++++
+ xbmc/filesystem/SMBFile.cpp | 16 ++++++++++
+ xbmc/network/NetworkServices.cpp | 4 ++-
+ xbmc/settings/Settings.cpp | 4 +++
+ xbmc/settings/Settings.h | 2 ++
+ 7 files changed, 85 insertions(+), 6 deletions(-)
+
+diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po
+index 9009023f4d39..f7755776eea6 100644
+--- a/addons/resource.language.en_gb/resources/strings.po
++++ b/addons/resource.language.en_gb/resources/strings.po
+@@ -19075,25 +19075,25 @@ msgctxt "#36622"
+ msgid "Set the maximum SMB protocol version to negotiate when making connections. Forcing SMBv2 or SMBv1 compatibility may be required with older NAS and Windows shares."
+ msgstr ""
+
+-#. Values for setting with label #36621 "Maximum protocol version" - none means "no protocol version is forced"
++#. Values for settings with label #36621 and #36628 "Minimum/Maximum protocol version" - none means "no protocol version is forced"
+ #: system/settings/settings.xml
+ msgctxt "#36623"
+ msgid "None"
+ msgstr ""
+
+-#. Values for setting with label #36621 "Maximum protocol version"
++#. Values for setting with label #36621 and #36628 "Minimum/Maximum protocol version"
+ #: system/settings/settings.xml
+ msgctxt "#36624"
+ msgid "SMBv1"
+ msgstr ""
+
+-#. Values for setting with label #36621 "Maximum protocol version"
++#. Values for setting with label #36621 and #36628 "Minimum/Maximum protocol version"
+ #: system/settings/settings.xml
+ msgctxt "#36625"
+ msgid "SMBv2"
+ msgstr ""
+
+-#. Values for setting with label #36621 "Maximum protocol version"
++#. Values for setting with label #36621 and #36628 "Minimum/Maximum protocol version"
+ #: system/settings/settings.xml
+ msgctxt "#36626"
+ msgid "SMBv3"
+@@ -19105,7 +19105,31 @@ msgctxt "#36627"
+ msgid "Client"
+ msgstr ""
+
+-#empty strings from id 36628 to 36899
++#. Label of a setting, allow the minimum smbclient protocol to be configured
++#: system/settings/settings.xml
++msgctxt "#36628"
++msgid "Minimum protocol version"
++msgstr ""
++
++#. Description of setting with label #36628 "Minimum protocol version"
++#: system/settings/settings.xml
++msgctxt "#36629"
++msgid "Set the minimum SMB protocol version to negotiate when making connections. Forcing SMBv2 may be required to prevent SMBv1 use on some OS."
++msgstr ""
++
++#. Label of a setting, sets additional config required for some proprietary SMBv1 implementations (mostly routers)
++#: system/settings/settings.xml
++msgctxt "#36630"
++msgid "Use legacy security"
++msgstr ""
++
++#. Description of setting with label #36630 "Use legacy security"
++#: system/settings/settings.xml
++msgctxt "#36631"
++msgid "Force weak SMBv1 security for compatibility with the USB sharing features on some WiFi routers and NAS devices."
++msgstr ""
++
++#empty strings from id 36632 to 36899
+
+ #: xbmc/media/MediaType.cpp
+ msgctxt "#36900"
+diff --git a/system/settings/linux.xml b/system/settings/linux.xml
+index 7cb276acddba..5c27e489a0ad 100644
+--- a/system/settings/linux.xml
++++ b/system/settings/linux.xml
+@@ -12,9 +12,15 @@
+
+
+
++
++ true
++
+
+ true
+
++
++ true
++
+
+
+
+diff --git a/system/settings/settings.xml b/system/settings/settings.xml
+index 5ff71b9741c5..79b4321ab9c7 100644
+--- a/system/settings/settings.xml
++++ b/system/settings/settings.xml
+@@ -1956,6 +1956,20 @@
+ 0.0.0.0
+
+
++
++ 2
++ false
++ 0
++
++
++
++
++
++
++
++
++
++
+
+ 2
+ false
+@@ -1970,6 +1984,17 @@
+
+
+
++
++ 2
++ false
++ false
++
++
++
++ 1
++
++
++
+
+
+
+diff --git a/xbmc/filesystem/SMBFile.cpp b/xbmc/filesystem/SMBFile.cpp
+index e5301b0452f9..7fc139635f0b 100644
+--- a/xbmc/filesystem/SMBFile.cpp
++++ b/xbmc/filesystem/SMBFile.cpp
+@@ -117,6 +117,15 @@ void CSMB::Init()
+
+ fprintf(f, "\tlock directory = %s/.smb/\n", home.c_str());
+
++ // set minimum smbclient protocol version
++ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MINPROTOCOL) > 0)
++ {
++ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MINPROTOCOL) == 1)
++ fprintf(f, "\tclient min protocol = NT1\n");
++ else
++ fprintf(f, "\tclient min protocol = SMB%d\n", CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MINPROTOCOL));
++ }
++
+ // set maximum smbclient protocol version
+ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) > 0)
+ {
+@@ -126,6 +135,13 @@ void CSMB::Init()
+ fprintf(f, "\tclient max protocol = SMB%d\n", CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL));
+ }
+
++ // set legacy security options
++ if (CSettings::GetInstance().GetBool(CSettings::SETTING_SMB_LEGACYSECURITY) && (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) == 1))
++ {
++ fprintf(f, "\tclient NTLMv2 auth = no\n");
++ fprintf(f, "\tclient use spnego = no\n");
++ }
++
+ // set wins server if there's one. name resolve order defaults to 'lmhosts host wins bcast'.
+ // if no WINS server has been specified the wins method will be ignored.
+ if (CSettings::GetInstance().GetString(CSettings::SETTING_SMB_WINSSERVER).length() > 0 && !StringUtils::EqualsNoCase(CSettings::GetInstance().GetString(CSettings::SETTING_SMB_WINSSERVER), "0.0.0.0") )
+diff --git a/xbmc/network/NetworkServices.cpp b/xbmc/network/NetworkServices.cpp
+index 393dabc3067d..5dad5c22c0af 100644
+--- a/xbmc/network/NetworkServices.cpp
++++ b/xbmc/network/NetworkServices.cpp
+@@ -439,7 +439,9 @@ void CNetworkServices::OnSettingChanged(const CSetting *setting)
+ #endif // HAS_WEB_SERVER
+ if (settingId == CSettings::SETTING_SMB_WINSSERVER ||
+ settingId == CSettings::SETTING_SMB_WORKGROUP ||
+- settingId == CSettings::SETTING_SMB_MAXPROTOCOL)
++ settingId == CSettings::SETTING_SMB_MINPROTOCOL ||
++ settingId == CSettings::SETTING_SMB_MAXPROTOCOL ||
++ settingId == CSettings::SETTING_SMB_LEGACYSECURITY)
+ {
+ // okey we really don't need to restart, only deinit samba, but that could be damn hard if something is playing
+ //! @todo - General way of handling setting changes that require restart
+diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp
+index f76c152b4d37..5400ba229164 100644
+--- a/xbmc/settings/Settings.cpp
++++ b/xbmc/settings/Settings.cpp
+@@ -333,7 +333,9 @@ const std::string CSettings::SETTING_SERVICES_AIRPLAYPASSWORD = "services.airpla
+ const std::string CSettings::SETTING_SERVICES_AIRPLAYVIDEOSUPPORT = "services.airplayvideosupport";
+ const std::string CSettings::SETTING_SMB_WINSSERVER = "smb.winsserver";
+ const std::string CSettings::SETTING_SMB_WORKGROUP = "smb.workgroup";
++const std::string CSettings::SETTING_SMB_MINPROTOCOL = "smb.minprotocol";
+ const std::string CSettings::SETTING_SMB_MAXPROTOCOL = "smb.maxprotocol";
++const std::string CSettings::SETTING_SMB_LEGACYSECURITY = "smb.legacysecurity";
+ const std::string CSettings::SETTING_VIDEOSCREEN_MONITOR = "videoscreen.monitor";
+ const std::string CSettings::SETTING_VIDEOSCREEN_SCREEN = "videoscreen.screen";
+ const std::string CSettings::SETTING_VIDEOSCREEN_RESOLUTION = "videoscreen.resolution";
+@@ -1160,7 +1162,9 @@ void CSettings::InitializeISettingCallbacks()
+ settingSet.insert(CSettings::SETTING_SERVICES_ESCONTINUOUSDELAY);
+ settingSet.insert(CSettings::SETTING_SMB_WINSSERVER);
+ settingSet.insert(CSettings::SETTING_SMB_WORKGROUP);
++ settingSet.insert(CSettings::SETTING_SMB_MINPROTOCOL);
+ settingSet.insert(CSettings::SETTING_SMB_MAXPROTOCOL);
++ settingSet.insert(CSettings::SETTING_SMB_LEGACYSECURITY);
+ m_settingsManager->RegisterCallback(&CNetworkServices::GetInstance(), settingSet);
+
+ settingSet.clear();
+diff --git a/xbmc/settings/Settings.h b/xbmc/settings/Settings.h
+index ab6770997ce5..c40ab2d31957 100644
+--- a/xbmc/settings/Settings.h
++++ b/xbmc/settings/Settings.h
+@@ -290,7 +290,9 @@ class CSettings : public CSettingCreator, public CSettingControlCreator
+ static const std::string SETTING_SERVICES_AIRPLAYVIDEOSUPPORT;
+ static const std::string SETTING_SMB_WINSSERVER;
+ static const std::string SETTING_SMB_WORKGROUP;
++ static const std::string SETTING_SMB_MINPROTOCOL;
+ static const std::string SETTING_SMB_MAXPROTOCOL;
++ static const std::string SETTING_SMB_LEGACYSECURITY;
+ static const std::string SETTING_VIDEOSCREEN_MONITOR;
+ static const std::string SETTING_VIDEOSCREEN_SCREEN;
+ static const std::string SETTING_VIDEOSCREEN_RESOLUTION;
diff --git a/packages/mediacenter/kodi/patches/kodi-100.16-smb-settings-visible.patch b/packages/mediacenter/kodi/patches/kodi-100.16-smb-settings-visible.patch
new file mode 100644
index 0000000000..840982d5be
--- /dev/null
+++ b/packages/mediacenter/kodi/patches/kodi-100.16-smb-settings-visible.patch
@@ -0,0 +1,29 @@
+--- a/system/settings/settings.xml 2017-11-13 14:24:41.584692775 +0000
++++ b/system/settings/settings.xml 2017-11-13 14:22:03.245527087 +0000
+@@ -1964,7 +1964,7 @@
+
+
+ 2
+- false
++ true
+ 0
+
+
+@@ -1978,7 +1978,7 @@
+
+
+ 2
+- false
++ true
+ 0
+
+
+@@ -1992,7 +1992,7 @@
+
+
+ 2
+- false
++ true
+ false
+
+
diff --git a/packages/network/samba/package.mk b/packages/network/samba/package.mk
index 3ff65617af..08369a05ed 100644
--- a/packages/network/samba/package.mk
+++ b/packages/network/samba/package.mk
@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="samba"
-PKG_VERSION="4.6.8"
+PKG_VERSION="4.6.10"
PKG_ARCH="any"
PKG_LICENSE="GPLv3+"
PKG_SITE="https://www.samba.org"
diff --git a/packages/sysutils/util-linux/patches/util-linux-blkid_swapon_mkfs_uuidgen.patch b/packages/sysutils/util-linux/patches/util-linux-blkid_swapon_mkfs_uuidgen.patch
index 7504670e15..f6bac636ca 100644
--- a/packages/sysutils/util-linux/patches/util-linux-blkid_swapon_mkfs_uuidgen.patch
+++ b/packages/sysutils/util-linux/patches/util-linux-blkid_swapon_mkfs_uuidgen.patch
@@ -10,7 +10,7 @@ diff -Naur util-linux-2.27/configure.ac util-linux-2.27.patch/configure.ac
+ AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
+ [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
+)
-+UL_BUILD_INIT([uuidgen]])
++UL_BUILD_INIT([uuidgen])
UL_REQUIRES_BUILD([uuidgen], [libuuid])
AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])