diff --git a/packages/mediacenter/kodi/config/appliance.xml b/packages/mediacenter/kodi/config/appliance.xml index 3bc554af94..9741cc0458 100644 --- a/packages/mediacenter/kodi/config/appliance.xml +++ b/packages/mediacenter/kodi/config/appliance.xml @@ -42,6 +42,14 @@ + + + + + 0 + + +
diff --git a/packages/mediacenter/kodi/patches/kodi-999.18-PR12111-smbclient-changes-for-samba4.patch b/packages/mediacenter/kodi/patches/kodi-999.18-PR12111-smbclient-changes-for-samba4.patch index 2126d32073..ddb5ab4e3f 100644 --- a/packages/mediacenter/kodi/patches/kodi-999.18-PR12111-smbclient-changes-for-samba4.patch +++ b/packages/mediacenter/kodi/patches/kodi-999.18-PR12111-smbclient-changes-for-samba4.patch @@ -1,22 +1,22 @@ -From 84eccc9a16867d1e06ca2b65da1cc41f050ca06b Mon Sep 17 00:00:00 2001 +From 5c7b7960036917338e0830ba2986b62c36bb5589 Mon Sep 17 00:00:00 2001 From: chewitt Date: Tue, 16 May 2017 12:51:32 +0100 Subject: [PATCH] smbclient: cleanup smbclient configuration --- - .../resource.language.en_gb/resources/strings.po | 38 +++++++++++++++++++- - system/settings/settings.xml | 20 +++++++++-- - xbmc/filesystem/SMBFile.cpp | 40 ++++++++++++++-------- + .../resource.language.en_gb/resources/strings.po | 44 ++++++++++++++++++++- + system/settings/settings.xml | 21 ++++++++-- + xbmc/filesystem/SMBFile.cpp | 45 ++++++++++++++-------- xbmc/network/NetworkServices.cpp | 3 +- - xbmc/settings/Settings.cpp | 2 ++ + xbmc/settings/Settings.cpp | 2 + xbmc/settings/Settings.h | 1 + - 6 files changed, 84 insertions(+), 20 deletions(-) + 6 files changed, 95 insertions(+), 21 deletions(-) diff --git a/addons/resource.language.en_gb/resources/strings.po b/addons/resource.language.en_gb/resources/strings.po -index e0060d1fae55..eb47be8cc723 100644 +index e0060d1fae55..e8e3f2c169ec 100644 --- a/addons/resource.language.en_gb/resources/strings.po +++ b/addons/resource.language.en_gb/resources/strings.po -@@ -19063,7 +19063,43 @@ msgctxt "#36620" +@@ -19063,7 +19063,49 @@ msgctxt "#36620" msgid "Enable high quality downscaling of pictures (uses more memory and has moderate performance impact)." msgstr "" @@ -30,42 +30,48 @@ index e0060d1fae55..eb47be8cc723 100644 +#. Description of setting with label #36621 "Maximum protocol version" +#: system/settings/settings.xml +msgctxt "#36622" -+msgid "Set the maximum SMB protocol version that can be negotiated (default SMBv3). Reduce to SMBv2 or SMBv1 for compatibility with older NAS and Windows shares if required." ++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" ++#. Values for setting with label #36621 "Maximum protocol version" - none means "no protocol version is forced" +#: system/settings/settings.xml +msgctxt "#36623" -+msgid "SMBv1" ++msgid "None" +msgstr "" + +#. Values for setting with label #36621 "Maximum protocol version" +#: system/settings/settings.xml +msgctxt "#36624" -+msgid "SMBv2" ++msgid "SMBv1" +msgstr "" + +#. Values for setting with label #36621 "Maximum protocol version" +#: system/settings/settings.xml +msgctxt "#36625" ++msgid "SMBv2" ++msgstr "" ++ ++#. Values for setting with label #36621 "Maximum protocol version" ++#: system/settings/settings.xml ++msgctxt "#36626" +msgid "SMBv3" +msgstr "" + +#. Label of a group, that allows configuration of the system SMB client +#: system/settings/settings.xml -+msgctxt "#36626" ++msgctxt "#36627" +msgid "Client" +msgstr "" + -+#empty strings from id 36627 to 36899 ++#empty strings from id 36628 to 36899 #: xbmc/media/MediaType.cpp msgctxt "#36900" diff --git a/system/settings/settings.xml b/system/settings/settings.xml -index 301e7276e5b7..de6f6055afb8 100644 +index 301e7276e5b7..f453ed0ad296 100644 --- a/system/settings/settings.xml +++ b/system/settings/settings.xml -@@ -1944,15 +1944,29 @@ +@@ -1944,15 +1944,30 @@ HAS_FILESYSTEM_SMB @@ -75,7 +81,7 @@ index 301e7276e5b7..de6f6055afb8 100644 + + + -+ ++ 2 0.0.0.0 @@ -89,9 +95,10 @@ index 301e7276e5b7..de6f6055afb8 100644 + 3 + + -+ -+ -+ ++ ++ ++ ++ + + + @@ -99,7 +106,7 @@ index 301e7276e5b7..de6f6055afb8 100644 diff --git a/xbmc/filesystem/SMBFile.cpp b/xbmc/filesystem/SMBFile.cpp -index e53d5552cf10..a51d1d383cb0 100644 +index e53d5552cf10..e5301b0452f9 100644 --- a/xbmc/filesystem/SMBFile.cpp +++ b/xbmc/filesystem/SMBFile.cpp @@ -27,6 +27,7 @@ @@ -110,18 +117,19 @@ index e53d5552cf10..a51d1d383cb0 100644 #include "settings/AdvancedSettings.h" #include "settings/Settings.h" #include "threads/SingleLock.h" -@@ -91,34 +92,36 @@ void CSMB::Deinit() +@@ -91,34 +92,39 @@ void CSMB::Deinit() void CSMB::Init() { CSingleLock lock(*this); + if (!m_context) { +- // Create ~/.smb/smb.conf. This file is used by libsmbclient. + // force libsmbclient to use our own smb.conf by overriding HOME + std::string truehome(getenv("HOME")); + setenv("HOME", CSpecialProtocol::TranslatePath("special://home").c_str(), 1); + - // Create ~/.smb/smb.conf. This file is used by libsmbclient. ++ // Create ~/.kodi/.smb/smb.conf. This file is used by libsmbclient. // http://us1.samba.org/samba/docs/man/manpages-3/libsmbclient.7.html // http://us1.samba.org/samba/docs/man/manpages-3/smb.conf.5.html - char smb_conf[MAX_PATH]; @@ -155,14 +163,17 @@ index e53d5552cf10..a51d1d383cb0 100644 - fprintf(f, "\tsocket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536\n"); - fprintf(f, "\tlock directory = %s/.smb/\n", getenv("HOME")); + // set maximum smbclient protocol version -+ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) == 1) -+ fprintf(f, "\tclient max protocol = NT1\n"); -+ else -+ fprintf(f, "\tclient max protocol = SMB%d\n", CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL)); ++ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) > 0) ++ { ++ if (CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL) == 1) ++ fprintf(f, "\tclient max protocol = NT1\n"); ++ else ++ fprintf(f, "\tclient max protocol = SMB%d\n", CSettings::GetInstance().GetInt(CSettings::SETTING_SMB_MAXPROTOCOL)); ++ } // 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. -@@ -135,6 +138,9 @@ void CSMB::Init() +@@ -135,6 +141,9 @@ void CSMB::Init() if (g_advancedSettings.m_sambadoscodepage.length() > 0) fprintf(f, "\tdos charset = %s\n", g_advancedSettings.m_sambadoscodepage.c_str()); @@ -172,7 +183,7 @@ index e53d5552cf10..a51d1d383cb0 100644 fclose(f); } } -@@ -151,6 +157,10 @@ void CSMB::Init() +@@ -151,6 +160,10 @@ void CSMB::Init() // setup our context m_context = smbc_new_context(); diff --git a/packages/network/samba/patches/samba-951-backport-SMB3_11-default.patch b/packages/network/samba/patches/samba-951-backport-SMB3_11-default.patch new file mode 100644 index 0000000000..cdbfcab494 --- /dev/null +++ b/packages/network/samba/patches/samba-951-backport-SMB3_11-default.patch @@ -0,0 +1,55 @@ +From 1199907cbe2f003a7df6f56e6cf3878d0732344d Mon Sep 17 00:00:00 2001 +From: Stefan Metzmacher +Date: Mon, 26 Jun 2017 10:00:53 +0200 +Subject: [PATCH] param: change the effective default for "client max protocol" + to the latest supported protocol + +Currently it's SMB3_11. + +Signed-off-by: Stefan Metzmacher +Reviewed-by: Andrew Bartlett +--- + docs-xml/smbdotconf/protocol/clientmaxprotocol.xml | 2 +- + lib/param/loadparm.c | 2 +- + source3/param/loadparm.c | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/docs-xml/smbdotconf/protocol/clientmaxprotocol.xml b/docs-xml/smbdotconf/protocol/clientmaxprotocol.xml +index 0131331b876..eba18bfb80a 100644 +--- a/docs-xml/smbdotconf/protocol/clientmaxprotocol.xml ++++ b/docs-xml/smbdotconf/protocol/clientmaxprotocol.xml +@@ -79,7 +79,7 @@ + negotiation phase in the SMB protocol takes care of choosing + the appropriate protocol. + +- The value default refers to NT1. ++ The value default refers to SMB3_11. + + IPC$ connections for DCERPC e.g. in winbindd, are handled by the + option. +diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c +index 9f32d7b27b0..3ceea50b279 100644 +--- a/lib/param/loadparm.c ++++ b/lib/param/loadparm.c +@@ -3401,7 +3401,7 @@ int lpcfg_client_max_protocol(struct loadparm_context *lp_ctx) + { + int client_max_protocol = lpcfg__client_max_protocol(lp_ctx); + if (client_max_protocol == PROTOCOL_DEFAULT) { +- return PROTOCOL_NT1; ++ return PROTOCOL_LATEST; + } + return client_max_protocol; + } +diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c +index 91fa85ea7b0..8f0cf5e6e03 100644 +--- a/source3/param/loadparm.c ++++ b/source3/param/loadparm.c +@@ -4543,7 +4543,7 @@ int lp_client_max_protocol(void) + { + int client_max_protocol = lp__client_max_protocol(); + if (client_max_protocol == PROTOCOL_DEFAULT) { +- return PROTOCOL_NT1; ++ return PROTOCOL_LATEST; + } + return client_max_protocol; + }