From 21fd343a1096a74dde30d3eeca96b98a0308ab51 Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Fri, 11 May 2012 09:37:36 +0000 Subject: [PATCH] samba: bump to version 3.6.5 and enhancements Bump samba to version 3.6.5 with SMB2 protocol support. Use shared popt rather than the builtin - it saves some space if you've already got it on your target. mount.cifs & umount.cifs have been unbundled so remove the option - users must use cifs-tools for that. Add recommended enhancement from bug #807 (make iconv support optional). Optional smbd was already commited some time ago. Signed-off-by: Gustavo Zacarias Signed-off-by: Peter Korsgaard --- package/samba/Config.in | 50 +++++-------------- package/samba/samba-fix-mount.cifs.patch | 21 -------- package/samba/samba-getaddrinfo.patch | 19 +++++++ package/samba/samba-remove-legacy-index.patch | 20 -------- package/samba/samba.mk | 34 +++++-------- 5 files changed, 45 insertions(+), 99 deletions(-) delete mode 100644 package/samba/samba-fix-mount.cifs.patch create mode 100644 package/samba/samba-getaddrinfo.patch delete mode 100644 package/samba/samba-remove-legacy-index.patch diff --git a/package/samba/Config.in b/package/samba/Config.in index a5a5c295f7..cebf7d939d 100644 --- a/package/samba/Config.in +++ b/package/samba/Config.in @@ -1,6 +1,6 @@ config BR2_PACKAGE_SAMBA bool "samba" - select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE + select BR2_PACKAGE_POPT help Provides print services to all manner of SMB/CIFS clients, including the numerous versions of Microsoft Windows @@ -11,20 +11,23 @@ config BR2_PACKAGE_SAMBA NOTE: A complete Samba install takes over 50MB of space, so choose only the components you need. -menu "Samba tools selection" - depends on BR2_PACKAGE_SAMBA +if BR2_PACKAGE_SAMBA -config BR2_PACKAGE_SAMBA_CIFS - bool "cifs" - default y - depends on BR2_PACKAGE_SAMBA +config BR2_PACKAGE_SAMBA_LIBICONV + bool "extended encodings (libiconv)" + depends on !BR2_ENABLE_LOCALE + select BR2_PACKAGE_LIBICONV help - Support CIFS + Include libiconv support for extended conversion of filename + enconding. Samba has built-in support for UTF-8, ISO-8859-1 + and ASCII, so this is only required if you want to support + other encodings. + +menu "Samba tools selection" config BR2_PACKAGE_SAMBA_EVENTLOGADM bool "eventlogadm" default y - depends on BR2_PACKAGE_SAMBA help Write Eventlog records to a tdb or perform other eventlog functions @@ -43,14 +46,12 @@ comment "findsmb - disabled (requires nmblookup, smbclient and perl)" config BR2_PACKAGE_SAMBA_NET bool "net" default y - depends on BR2_PACKAGE_SAMBA help Distributed SMB/CIFS Server Management Utility config BR2_PACKAGE_SAMBA_NMBD bool "nmbd" default y - depends on BR2_PACKAGE_SAMBA help NetBIOS name server to provide NetBIOS over IP naming services to clients @@ -58,7 +59,6 @@ config BR2_PACKAGE_SAMBA_NMBD config BR2_PACKAGE_SAMBA_NMBLOOKUP bool "nmblookup" default y - depends on BR2_PACKAGE_SAMBA help Query NetBIOS names and map them to IP addresses in a network using NetBIOS over TCP/IP queries @@ -66,21 +66,18 @@ config BR2_PACKAGE_SAMBA_NMBLOOKUP config BR2_PACKAGE_SAMBA_NTLM_AUTH bool "ntlm_auth" default y - depends on BR2_PACKAGE_SAMBA help Helper utility that authenticates users using NT/LM authentication config BR2_PACKAGE_SAMBA_PDBEDIT bool "pdbedit" default y - depends on BR2_PACKAGE_SAMBA help Manage the SAM database (Database of Samba Users) config BR2_PACKAGE_SAMBA_PROFILES bool "profiles" default y - depends on BR2_PACKAGE_SAMBA help Utility that reports and changes SIDs in Windows NT registry files @@ -88,7 +85,6 @@ config BR2_PACKAGE_SAMBA_RPCCLIENT bool "rpcclient" select BR2_PACKAGE_READLINE default y - depends on BR2_PACKAGE_SAMBA help Tool for executing client side MS-RPC functions using RPC calls from a UNIX workstation. @@ -96,7 +92,6 @@ config BR2_PACKAGE_SAMBA_RPCCLIENT config BR2_PACKAGE_SAMBA_SMBCACLS bool "smbcacls" default y - depends on BR2_PACKAGE_SAMBA help Set or get ACLs on an NT file or directory names @@ -104,84 +99,72 @@ config BR2_PACKAGE_SAMBA_SMBCLIENT bool "smbclient" select BR2_PACKAGE_READLINE default y - depends on BR2_PACKAGE_SAMBA help ftp-like client to access SMB/CIFS resources on servers config BR2_PACKAGE_SAMBA_SMBCONTROL bool "smbcontrol" default y - depends on BR2_PACKAGE_SAMBA help Send messages to smbd, nmbd or winbindd processes config BR2_PACKAGE_SAMBA_SMBCQUOTAS bool "smbcquotas" default y - depends on BR2_PACKAGE_SAMBA help Set or get QUOTAs of NTFS 5 shares config BR2_PACKAGE_SAMBA_SMBD bool "smbd" default y - depends on BR2_PACKAGE_SAMBA help The server daemon that provides filesharing and printing services config BR2_PACKAGE_SAMBA_SMBGET bool "smbget" default y - depends on BR2_PACKAGE_SAMBA help wget-like utility for download files over SMB config BR2_PACKAGE_SAMBA_SMBLDBTOOLS bool "smbldbtools" default y - depends on BR2_PACKAGE_SAMBA help ldbadd ldbdel ldbedit ldbmodify ldbrename ldbsearch tools config BR2_PACKAGE_SAMBA_SMBPASSWD bool "smbpasswd" default y - depends on BR2_PACKAGE_SAMBA help Change a user's SMB passwd config BR2_PACKAGE_SAMBA_SMBSHARESEC bool "smbsharesec" default y - depends on BR2_PACKAGE_SAMBA help Manipulate share permissions on SMB file shares config BR2_PACKAGE_SAMBA_SMBSPOOL bool "smbspool" default y - depends on BR2_PACKAGE_SAMBA help Send a print file to an SMB printer config BR2_PACKAGE_SAMBA_SMBSTATUS bool "smbstatus" default y - depends on BR2_PACKAGE_SAMBA help Report on current Samba connections config BR2_PACKAGE_SAMBA_SMBTREE bool "smbtree" default y - depends on BR2_PACKAGE_SAMBA help A text based smb network browser config BR2_PACKAGE_SAMBA_SWAT bool "swat" default y - depends on BR2_PACKAGE_SAMBA help Samba Web Administration Tool @@ -198,21 +181,18 @@ comment "smbtar - disabled (requires smbclient)" config BR2_PACKAGE_SAMBA_TDB bool "tdb" default y - depends on BR2_PACKAGE_SAMBA help Tools to operate on the .tdb database files config BR2_PACKAGE_SAMBA_TESTPARM bool "testparm" default y - depends on BR2_PACKAGE_SAMBA help Check an smb.conf configuration file for internal correctness config BR2_PACKAGE_SAMBA_WINBINDD bool "winbindd" default y - depends on BR2_PACKAGE_SAMBA help Name Service Switch daemon for resolving names from NT servers @@ -227,11 +207,9 @@ endmenu menu "Samba libraries selection" - depends on BR2_PACKAGE_SAMBA config BR2_PACKAGE_SAMBA_LIBSMBCLIENT bool "libsmbclient" - depends on BR2_PACKAGE_SAMBA help libsmbclient is a library toolset that permits applications to manipulate CIFS/SMB network resources using many of the @@ -242,12 +220,10 @@ endmenu menu "Samba support selection" - depends on BR2_PACKAGE_SAMBA config BR2_PACKAGE_SAMBA_AVAHI bool "support avahi" default y - depends on BR2_PACKAGE_SAMBA depends on BR2_PACKAGE_AVAHI_DAEMON select BR2_PACKAGE_DBUS help @@ -259,7 +235,6 @@ comment "support avahi - disabled (requires avahi-daemon)" config BR2_PACKAGE_SAMBA_GAMIN bool "support gamin" default y - depends on BR2_PACKAGE_SAMBA depends on BR2_PACKAGE_GAMIN help Include support for gamin @@ -269,3 +244,4 @@ comment "support gamin - disabled (requires gamin)" endmenu +endif diff --git a/package/samba/samba-fix-mount.cifs.patch b/package/samba/samba-fix-mount.cifs.patch deleted file mode 100644 index 9c235ea7be..0000000000 --- a/package/samba/samba-fix-mount.cifs.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/client/mount.cifs.c 2011-09-13 10:26:21.000000000 +0200 -+++ b/client/mount.cifs.c 2011-09-13 10:27:16.000000000 +0200 -@@ -39,7 +39,6 @@ - #include - #include - #include --#include - #include "mount.h" - - #define MOUNT_CIFS_VERSION_MAJOR "1" -@@ -255,6 +254,10 @@ - return 0; - } - #else /* CIFS_LEGACY_SETUID_CHECK */ -+ -+#ifndef _PATH_FSTAB -+#define _PATH_FSTAB "/etc/fstab" -+#endif - static int - check_fstab(const char *progname, char *mountpoint, char *devname, - char **options) diff --git a/package/samba/samba-getaddrinfo.patch b/package/samba/samba-getaddrinfo.patch new file mode 100644 index 0000000000..af01299003 --- /dev/null +++ b/package/samba/samba-getaddrinfo.patch @@ -0,0 +1,19 @@ +Patch from OpenWRT. +Don't check for buggy getaddrinfo() assume it's safe if it's present. + +Signed-off-by: Gustavo Zacarias + +--- a/source3/configure ++++ b/source3/configure +@@ -13285,10 +13285,7 @@ if test x"$libreplace_cv_HAVE_GETADDRINF + # see bug 5910, use our replacements if we detect + # a broken system. + if test "$cross_compiling" = yes; then : +- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error "cannot run test program while cross compiling +-See \`config.log' for more details." "$LINENO" 5; } ++ $as_echo "assuming valid getaddrinfo without bug 5910" >&2 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ diff --git a/package/samba/samba-remove-legacy-index.patch b/package/samba/samba-remove-legacy-index.patch deleted file mode 100644 index 855bca77c6..0000000000 --- a/package/samba/samba-remove-legacy-index.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/source3/registry/reg_perfcount.c -+++ b/source3/registry/reg_perfcount.c -@@ -616,14 +616,14 @@ static bool _reg_perfcount_add_counter(P - obj = NULL; - memset(buf, 0, PERFCOUNT_MAX_LEN); - memcpy(buf, data.dptr, data.dsize); -- begin = index(buf, '['); -- end = index(buf, ']'); -+ begin = strchr(buf, '['); -+ end = strchr(buf, ']'); - if(begin == NULL || end == NULL) - return False; - start = begin+1; - - while(start < end) { -- stop = index(start, ','); -+ stop = strchr(start, ','); - if(stop == NULL) - stop = end; - *stop = '\0'; diff --git a/package/samba/samba.mk b/package/samba/samba.mk index 1203693763..d7a15b3f2b 100644 --- a/package/samba/samba.mk +++ b/package/samba/samba.mk @@ -4,21 +4,19 @@ # ############################################################# -SAMBA_VERSION = 3.5.15 +SAMBA_VERSION = 3.6.5 SAMBA_SITE = http://ftp.samba.org/pub/samba/stable SAMBA_SUBDIR = source3 SAMBA_INSTALL_STAGING = YES - -SAMBA_DEPENDENCIES = \ - $(if $(BR2_ENABLE_LOCALE),,libiconv) \ +SAMBA_DEPENDENCIES = popt \ $(if $(BR2_PACKAGE_SAMBA_RPCCLIENT),readline) \ $(if $(BR2_PACKAGE_SAMBA_SMBCLIENT),readline) \ $(if $(BR2_PACKAGE_SAMBA_AVAHI),avahi) \ $(if $(BR2_PACKAGE_SAMBA_GAMIN),gamin) - SAMBA_CONF_ENV = \ + ac_cv_file__proc_sys_kernel_core_pattern=yes \ samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \ samba_cv_USE_SETREUID=yes \ samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes \ @@ -31,7 +29,6 @@ SAMBA_CONF_ENV = \ libreplace_cv_HAVE_IPV6=$(if $(BR2_INET_IPV6),yes,no) \ $(if $(BR2_PACKAGE_SAMBA_AVAHI),AVAHI_LIBS=-pthread) - SAMBA_CONF_OPT = \ --localstatedir=/var \ --with-piddir=/var/run \ @@ -51,49 +48,38 @@ SAMBA_CONF_OPT = \ $(if $(BR2_PACKAGE_SAMBA_SWAT),--enable-swat,--disable-swat) \ \ --without-cluster-support \ - --without-cifsupcall \ + --without-dnsupdate \ + $(if $(BR2_INET_RPC),--with-sys-quotas,--without-sys-quotas) \ --without-ads \ --without-ldap \ - --with-included-popt \ --with-included-iniparser \ - --with-libiconv=$(STAGING_DIR) \ \ - $(if $(BR2_PACKAGE_SAMBA_CIFS),--with-cifsmount,--without-cifsmount) \ $(if $(BR2_PACKAGE_SAMBA_RPCCLIENT),--with-readline=$(STAGING_DIR)) \ $(if $(BR2_PACKAGE_SAMBA_SMBCLIENT),--with-readline=$(STAGING_DIR)) \ $(if $(BR2_PACKAGE_SAMBA_WINBINDD),--with-winbind,--without-winbind) - SAMBA_INSTALL_TARGET_OPT = \ DESTDIR=$(TARGET_DIR) -C $(SAMBA_DIR)/$(SAMBA_SUBDIR) \ installlibs installservers installbin installscripts \ - $(if $(BR2_PACKAGE_SAMBA_CIFS),installcifsmount) \ $(if $(BR2_PACKAGE_SAMBA_SWAT),installswat) - SAMBA_UNINSTALL_TARGET_OPT = \ DESTDIR=$(TARGET_DIR) -C $(SAMBA_DIR)/$(SAMBA_SUBDIR) \ uninstalllibs uninstallservers uninstallbin uninstallscripts \ - $(if $(BR2_PACKAGE_SAMBA_CIFS),uninstallcifsmount) \ $(if $(BR2_PACKAGE_SAMBA_SWAT),uninstallswat) - # binaries to keep SAMBA_BINTARGETS_y = \ usr/sbin/smbd \ usr/lib/libtalloc.so \ usr/lib/libtdb.so - # binaries to remove SAMBA_BINTARGETS_ = \ usr/lib/libnetapi.so* \ usr/lib/libsmbsharemodes.so* - # binaries to keep or remove -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_CIFS) += usr/sbin/mount.cifs -SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_CIFS) += usr/sbin/umount.cifs SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_EVENTLOGADM) += usr/bin/eventlogadm SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NET) += usr/bin/net SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NMBD) += usr/sbin/nmbd @@ -131,7 +117,6 @@ SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_WBINFO) += usr/bin/wbinfo SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_WINBINDD) += usr/lib/libwbclient.so* SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_LIBSMBCLIENT) += usr/lib/libsmbclient.so* - # non-binaries to remove SAMBA_TXTTARGETS_ = \ usr/include/libsmbclient.h \ @@ -141,7 +126,6 @@ SAMBA_TXTTARGETS_ = \ usr/include/tdb.h \ usr/include/wbclient.h - # non-binaries to keep or remove SAMBA_TXTTARGETS_$(BR2_PACKAGE_SAMBA_FINDSMB) += usr/bin/findsmb SAMBA_TXTTARGETS_$(BR2_PACKAGE_SAMBA_SMBTAR) += usr/bin/smbtar @@ -163,6 +147,14 @@ define SAMBA_REMOVE_SWAT_DOCUMENTATION rm -rf $(TARGET_DIR)/usr/swat/help/welcome.html endef +# --with-libiconv="" is to avoid detecting host libiconv and build failure +ifeq ($(BR2_PACKAGE_SAMBA_LIBICONV),y) +SAMBA_DEPENDENCIES += libiconv +SAMBA_CONF_OPT += --with-libiconv=$(STAGING_DIR) +else +SAMBA_CONF_OPT += --with-libiconv="" +endif + ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y) ifneq ($(BR2_HAVE_DOCUMENTATION),y) SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_REMOVE_SWAT_DOCUMENTATION