[Buildroot] [PATCH 3/4] samba: convert to choice package

Gustavo Zacarias gustavo at zacarias.com.ar
Fri Feb 7 20:52:33 UTC 2014


Convert the classic samba package to a choice and move it to samba3 in
preparation for the samba4 package.

Signed-off-by: Gustavo Zacarias <gustavo at zacarias.com.ar>
---
 package/samba/Config.in                            | 274 ++-------------------
 package/samba/samba.mk                             | 179 +-------------
 package/samba/{ => samba3}/Config.in               |  99 +++-----
 package/samba/{ => samba3}/S91smb                  |   0
 .../samba3-0001-fix-smbd-libs-avahi.patch}         |   0
 .../samba3-0002-getaddrinfo.patch}                 |   0
 package/samba/samba3/samba3.mk                     | 181 ++++++++++++++
 package/samba/{ => samba3}/simple.conf             |   0
 8 files changed, 240 insertions(+), 493 deletions(-)
 copy package/samba/{ => samba3}/Config.in (67%)
 rename package/samba/{ => samba3}/S91smb (100%)
 rename package/samba/{samba-fix-smbd-libs-avahi.patch => samba3/samba3-0001-fix-smbd-libs-avahi.patch} (100%)
 rename package/samba/{samba-getaddrinfo.patch => samba3/samba3-0002-getaddrinfo.patch} (100%)
 create mode 100644 package/samba/samba3/samba3.mk
 rename package/samba/{ => samba3}/simple.conf (100%)

diff --git a/package/samba/Config.in b/package/samba/Config.in
index 1469075..d11401f 100644
--- a/package/samba/Config.in
+++ b/package/samba/Config.in
@@ -1,270 +1,32 @@
+comment "samba needs a toolchain w/ threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
 config BR2_PACKAGE_SAMBA
 	bool "samba"
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_POPT
 	help
-	  Provides print services to all manner of SMB/CIFS clients,
-	  including the numerous versions of Microsoft Windows
-	  operating systems.
-
-	  http://www.samba.org/
-
-	  NOTE: A complete Samba install takes over 50MB of space,
-		so choose only the components you need.
-
-comment "samba needs a toolchain w/ threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
+	  Provides secure, stable and fast file and print services
+	  for all clients using the SMB/CIFS protocol, such as all versions
+	  of DOS and Windows, OS/2, Linux and many others.
 
 if BR2_PACKAGE_SAMBA
 
-config BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL
-	int "Maximum level of compiled-in debug messages"
-	range -1 10000
-	default -1
-	help
-	  Define the level of compiled-in debug messages.
-	  This allows for big space savings, -1 being the lowest (none).
-
-config BR2_PACKAGE_SAMBA_LIBICONV
-	bool "extended encodings (libiconv)"
-	depends on !BR2_ENABLE_LOCALE
-	select BR2_PACKAGE_LIBICONV
-	help
-	  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
-	help
-	  Write Eventlog records to a tdb or perform other eventlog functions
-
-config BR2_PACKAGE_SAMBA_FINDSMB
-	bool "findsmb"
-	default y
-	depends on BR2_PACKAGE_SAMBA_SMBCLIENT
-	depends on BR2_PACKAGE_SAMBA_NMBLOOKUP
-	depends on BR2_PACKAGE_PERL
-	help
-	  Script to browse network
-
-comment "findsmb       - disabled (requires nmblookup, smbclient and perl)"
-	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !BR2_PACKAGE_PERL
-
-config BR2_PACKAGE_SAMBA_NET
-	bool "net"
-	default y
-	help
-	  Distributed SMB/CIFS Server Management Utility
-
-config BR2_PACKAGE_SAMBA_NMBD
-	bool "nmbd"
-	default y
-	help
-	  NetBIOS name server to provide NetBIOS over IP naming services
-	  to clients
-
-config BR2_PACKAGE_SAMBA_NMBLOOKUP
-	bool "nmblookup"
-	default y
-	help
-	  Query NetBIOS names and map them to IP addresses in a network
-	  using NetBIOS over TCP/IP queries
-
-config BR2_PACKAGE_SAMBA_NTLM_AUTH
-	bool "ntlm_auth"
-	default y
-	help
-	  Helper utility that authenticates users using NT/LM authentication
-
-config BR2_PACKAGE_SAMBA_PDBEDIT
-	bool "pdbedit"
-	default y
-	help
-	  Manage the SAM database (Database of Samba Users)
-
-config BR2_PACKAGE_SAMBA_PROFILES
-	bool "profiles"
-	default y
-	help
-	  Utility that reports and changes SIDs in Windows NT registry files
-
-config BR2_PACKAGE_SAMBA_RPCCLIENT
-	bool "rpcclient"
-	select BR2_PACKAGE_READLINE
-	default y
+choice
+	prompt "Samba version"
+	default BR2_PACKAGE_SAMBA3
 	help
-	  Tool for executing client side MS-RPC functions using RPC
-	  calls from a UNIX workstation.
+	  Select the desired samba version.
 
-config BR2_PACKAGE_SAMBA_SMBCACLS
-	bool "smbcacls"
-	default y
-	help
-	  Set or get ACLs on an NT file or directory names
-
-config BR2_PACKAGE_SAMBA_SMBCLIENT
-	bool "smbclient"
-	select BR2_PACKAGE_READLINE
-	default y
-	help
-	  ftp-like client to access SMB/CIFS resources on servers
-
-config BR2_PACKAGE_SAMBA_SMBCONTROL
-	bool "smbcontrol"
-	default y
-	help
-	  Send messages to smbd, nmbd or winbindd processes
-
-config BR2_PACKAGE_SAMBA_SMBCQUOTAS
-	bool "smbcquotas"
-	default y
-	help
-	  Set or get QUOTAs of NTFS 5 shares
-
-config BR2_PACKAGE_SAMBA_SMBD
-	bool "smbd"
-	default y
-	help
-	  The server daemon that provides filesharing and printing services
-
-config BR2_PACKAGE_SAMBA_SMBGET
-	bool "smbget"
-	default y
-	help
-	  wget-like utility for download files over SMB
-
-config BR2_PACKAGE_SAMBA_SMBLDBTOOLS
-	bool "smbldbtools"
-	default y
-	help
-	  ldbadd ldbdel ldbedit ldbmodify ldbrename ldbsearch tools
-
-config BR2_PACKAGE_SAMBA_SMBPASSWD
-	bool "smbpasswd"
-	default y
-	help
-	  Change a user's SMB passwd
-
-config BR2_PACKAGE_SAMBA_SMBSHARESEC
-	bool "smbsharesec"
-	default y
-	help
-	  Manipulate share permissions on SMB file shares
-
-config BR2_PACKAGE_SAMBA_SMBSPOOL
-	bool "smbspool"
-	default y
-	help
-	  Send a print file to an SMB printer
-
-config BR2_PACKAGE_SAMBA_SMBSTATUS
-	bool "smbstatus"
-	default y
-	help
-	  Report on current Samba connections
-
-config BR2_PACKAGE_SAMBA_SMBTREE
-	bool "smbtree"
-	default y
-	help
-	  A text based smb network browser
-
-config BR2_PACKAGE_SAMBA_SWAT
-	bool "swat"
-	default y
-	help
-	  Samba Web Administration Tool
-
-config BR2_PACKAGE_SAMBA_SMBTA_UTIL
-	bool "smbta-util"
-	default y
-	help
-	  Tool to ease the configuration of the vfs_smb_traffic_analyzer
-	  module regarding data encryption.
-
-config BR2_PACKAGE_SAMBA_SMBTAR
-	bool "smbtar"
-	default y
-	depends on BR2_PACKAGE_SAMBA_SMBCLIENT
-	help
-	  tar-like script that wraps smbclient
-
-comment "smbtar        - disabled (requires smbclient)"
-	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT
-
-config BR2_PACKAGE_SAMBA_TDB
-	bool "tdb"
-	default y
-	help
-	  Tools to operate on the .tdb database files
-
-config BR2_PACKAGE_SAMBA_TESTPARM
-	bool "testparm"
-	default y
-	help
-	  Check an smb.conf configuration file for internal correctness
-
-config BR2_PACKAGE_SAMBA_WINBINDD
-	bool "winbindd"
-	default y
-	help
-	  Name Service Switch daemon for resolving names from NT servers
-
-config BR2_PACKAGE_SAMBA_WBINFO
-	bool "wbinfo"
-	default y
-	depends on BR2_PACKAGE_SAMBA_WINBINDD
-	help
-	  Query information from winbind daemon
-
-endmenu
-
-
-menu "Samba libraries selection"
-
-config BR2_PACKAGE_SAMBA_LIBSMBCLIENT
-	bool "libsmbclient"
-	help
-	  libsmbclient is a library toolset that permits applications
-	  to manipulate CIFS/SMB network resources using many of the
-	  standards POSIX functions available for manipulating local
-	  files.
-
-endmenu
-
-
-menu "Samba support selection"
-
-config BR2_PACKAGE_SAMBA_AVAHI
-	bool "support avahi"
-	default y
-	depends on BR2_PACKAGE_AVAHI_DAEMON
-	depends on BR2_USE_MMU # dbus
-	select BR2_PACKAGE_DBUS
-	help
-	  Include support for avahi
-
-comment "support avahi - disabled (requires avahi-daemon)"
-	depends on BR2_USE_MMU
-	depends on !BR2_PACKAGE_AVAHI_DAEMON
-
-config BR2_PACKAGE_SAMBA_GAMIN
-	bool "support gamin"
-	default y
-	depends on BR2_PACKAGE_GAMIN
+	config BR2_PACKAGE_SAMBA3
+	bool "3.6.x"
+	select BR2_PACKAGE_POPT
 	help
-	  Include support for gamin
+	  The well-tested legacy branch.
 
-comment "support gamin - disabled (requires gamin)"
-	depends on !BR2_PACKAGE_GAMIN
-
-endmenu
+endchoice
 
 endif
+
+source "package/samba/samba3/Config.in"
diff --git a/package/samba/samba.mk b/package/samba/samba.mk
index a7b452c..33a0660 100644
--- a/package/samba/samba.mk
+++ b/package/samba/samba.mk
@@ -1,178 +1 @@
-################################################################################
-#
-# samba
-#
-################################################################################
-
-SAMBA_VERSION = 3.6.22
-SAMBA_SITE = http://ftp.samba.org/pub/samba/stable
-SAMBA_SUBDIR = source3
-SAMBA_INSTALL_STAGING = YES
-SAMBA_LICENSE = GPLv3+
-SAMBA_LICENSE_FILES = COPYING
-
-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 \
-	samba_cv_HAVE_IFACE_IFCONF=yes \
-	samba_cv_HAVE_MMAP=yes \
-	samba_cv_HAVE_FCNTL_LOCK=yes \
-	samba_cv_HAVE_SECURE_MKSTEMP=yes \
-	samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \
-	samba_cv_fpie=no \
-	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 \
-	--with-lockdir=/var/lock \
-	--with-logfilebase=/var/log \
-	--with-configdir=/etc/samba \
-	--with-privatedir=/etc/samba \
-	\
-	--disable-cups \
-	--enable-shared-libs \
-	--disable-pie \
-	--disable-relro \
-	--disable-dnssd \
-	\
-	$(if $(BR2_PACKAGE_SAMBA_AVAHI),--enable-avahi,--disable-avahi) \
-	$(if $(BR2_PACKAGE_SAMBA_GAMIN),--enable-fam,--disable-fam) \
-	$(if $(BR2_PACKAGE_SAMBA_SWAT),--enable-swat,--disable-swat) \
-	\
-	--without-cluster-support \
-	--without-dnsupdate \
-	--with-sys-quotas \
-	--without-ads \
-	--without-ldap \
-	--with-included-iniparser \
-	\
-	$(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_SWAT),installswat)
-
-# 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_EVENTLOGADM) += usr/bin/eventlogadm
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NET) += usr/bin/net
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NMBD) += usr/sbin/nmbd
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NMBLOOKUP) += usr/bin/nmblookup
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_NTLM_AUTH) += usr/bin/ntlm_auth
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_PDBEDIT) += usr/bin/pdbedit
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_PROFILES) += usr/bin/profiles
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_RPCCLIENT) += usr/bin/rpcclient
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCACLS) += usr/bin/smbcacls
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCLIENT) += usr/bin/smbclient
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCONTROL) += usr/bin/smbcontrol
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBCQUOTAS) += usr/bin/smbcquotas
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBD) += usr/sbin/smbd
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBGET) += usr/bin/smbget
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbadd
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbdel
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbedit
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbmodify
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbrename
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBLDBTOOLS) += usr/bin/ldbsearch
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBPASSWD) += usr/bin/smbpasswd
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBSHARESEC) += usr/bin/sharesec
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBSPOOL) += usr/bin/smbspool
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBSTATUS) += usr/bin/smbstatus
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBTA_UTIL) += usr/bin/smbta-util
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SMBTREE) += usr/bin/smbtree
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_SWAT) += usr/sbin/swat
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TDB) += usr/bin/tdbbackup
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TDB) += usr/bin/tdbdump
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TDB) += usr/bin/tdbtool
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_TESTPARM) += usr/bin/testparm
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_WINBINDD) += usr/sbin/winbindd
-SAMBA_BINTARGETS_$(BR2_PACKAGE_SAMBA_WBINFO) += usr/bin/wbinfo
-
-# libraries to keep or remove
-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 \
-	usr/include/netapi.h \
-	usr/include/smb_share_modes.h \
-	usr/include/talloc.h \
-	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
-
-define SAMBA_REMOVE_UNNEEDED_BINARIES
-	rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_BINTARGETS_))
-	rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA_TXTTARGETS_))
-endef
-
-SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_REMOVE_UNNEEDED_BINARIES
-
-define SAMBA_REMOVE_SWAT_DOCUMENTATION
-	# Remove the documentation
-	rm -rf $(TARGET_DIR)/usr/swat/help/manpages
-	rm -rf $(TARGET_DIR)/usr/swat/help/Samba3*
-	rm -rf $(TARGET_DIR)/usr/swat/using_samba/
-	# Removing the welcome.html file will make swat default to
-	# welcome-no-samba-doc.html
-	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
-
-# Compiled debug messages by level
-SAMBA_CONF_OPT += CFLAGS="$(TARGET_CFLAGS) -DMAX_DEBUG_LEVEL=$(BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL)"
-
-ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y)
-ifneq ($(BR2_HAVE_DOCUMENTATION),y)
-SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_REMOVE_SWAT_DOCUMENTATION
-endif
-endif
-
-define SAMBA_INSTALL_INITSCRIPTS_CONFIG
-	# install start/stop script
-	@if [ ! -f $(TARGET_DIR)/etc/init.d/S91smb ]; then \
-		$(INSTALL) -m 0755 -D package/samba/S91smb $(TARGET_DIR)/etc/init.d/S91smb; \
-	fi
-	# install config
-	@if [ ! -f $(TARGET_DIR)/etc/samba/smb.conf ]; then \
-		$(INSTALL) -m 0755 -D package/samba/simple.conf $(TARGET_DIR)/etc/samba/smb.conf; \
-	fi
-endef
-
-SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_INITSCRIPTS_CONFIG
-
-$(eval $(autotools-package))
+include $(sort $(wildcard package/samba/*/*.mk))
diff --git a/package/samba/Config.in b/package/samba/samba3/Config.in
similarity index 67%
copy from package/samba/Config.in
copy to package/samba/samba3/Config.in
index 1469075..74a60a3 100644
--- a/package/samba/Config.in
+++ b/package/samba/samba3/Config.in
@@ -1,25 +1,6 @@
-config BR2_PACKAGE_SAMBA
-	bool "samba"
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_USE_MMU # fork()
-	select BR2_PACKAGE_POPT
-	help
-	  Provides print services to all manner of SMB/CIFS clients,
-	  including the numerous versions of Microsoft Windows
-	  operating systems.
-
-	  http://www.samba.org/
-
-	  NOTE: A complete Samba install takes over 50MB of space,
-		so choose only the components you need.
-
-comment "samba needs a toolchain w/ threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
-
-if BR2_PACKAGE_SAMBA
+if BR2_PACKAGE_SAMBA3
 
-config BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL
+config BR2_PACKAGE_SAMBA3_MAX_DEBUGLEVEL
 	int "Maximum level of compiled-in debug messages"
 	range -1 10000
 	default -1
@@ -27,7 +8,7 @@ config BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL
 	  Define the level of compiled-in debug messages.
 	  This allows for big space savings, -1 being the lowest (none).
 
-config BR2_PACKAGE_SAMBA_LIBICONV
+config BR2_PACKAGE_SAMBA3_LIBICONV
 	bool "extended encodings (libiconv)"
 	depends on !BR2_ENABLE_LOCALE
 	select BR2_PACKAGE_LIBICONV
@@ -39,63 +20,63 @@ config BR2_PACKAGE_SAMBA_LIBICONV
 
 menu "Samba tools selection"
 
-config BR2_PACKAGE_SAMBA_EVENTLOGADM
+config BR2_PACKAGE_SAMBA3_EVENTLOGADM
 	bool "eventlogadm"
 	default y
 	help
 	  Write Eventlog records to a tdb or perform other eventlog functions
 
-config BR2_PACKAGE_SAMBA_FINDSMB
+config BR2_PACKAGE_SAMBA3_FINDSMB
 	bool "findsmb"
 	default y
-	depends on BR2_PACKAGE_SAMBA_SMBCLIENT
-	depends on BR2_PACKAGE_SAMBA_NMBLOOKUP
+	depends on BR2_PACKAGE_SAMBA3_SMBCLIENT
+	depends on BR2_PACKAGE_SAMBA3_NMBLOOKUP
 	depends on BR2_PACKAGE_PERL
 	help
 	  Script to browse network
 
 comment "findsmb       - disabled (requires nmblookup, smbclient and perl)"
-	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT || !BR2_PACKAGE_SAMBA_NMBLOOKUP || !BR2_PACKAGE_PERL
+	depends on !BR2_PACKAGE_SAMBA3_SMBCLIENT || !BR2_PACKAGE_SAMBA3_NMBLOOKUP || !BR2_PACKAGE_PERL
 
-config BR2_PACKAGE_SAMBA_NET
+config BR2_PACKAGE_SAMBA3_NET
 	bool "net"
 	default y
 	help
 	  Distributed SMB/CIFS Server Management Utility
 
-config BR2_PACKAGE_SAMBA_NMBD
+config BR2_PACKAGE_SAMBA3_NMBD
 	bool "nmbd"
 	default y
 	help
 	  NetBIOS name server to provide NetBIOS over IP naming services
 	  to clients
 
-config BR2_PACKAGE_SAMBA_NMBLOOKUP
+config BR2_PACKAGE_SAMBA3_NMBLOOKUP
 	bool "nmblookup"
 	default y
 	help
 	  Query NetBIOS names and map them to IP addresses in a network
 	  using NetBIOS over TCP/IP queries
 
-config BR2_PACKAGE_SAMBA_NTLM_AUTH
+config BR2_PACKAGE_SAMBA3_NTLM_AUTH
 	bool "ntlm_auth"
 	default y
 	help
 	  Helper utility that authenticates users using NT/LM authentication
 
-config BR2_PACKAGE_SAMBA_PDBEDIT
+config BR2_PACKAGE_SAMBA3_PDBEDIT
 	bool "pdbedit"
 	default y
 	help
 	  Manage the SAM database (Database of Samba Users)
 
-config BR2_PACKAGE_SAMBA_PROFILES
+config BR2_PACKAGE_SAMBA3_PROFILES
 	bool "profiles"
 	default y
 	help
 	  Utility that reports and changes SIDs in Windows NT registry files
 
-config BR2_PACKAGE_SAMBA_RPCCLIENT
+config BR2_PACKAGE_SAMBA3_RPCCLIENT
 	bool "rpcclient"
 	select BR2_PACKAGE_READLINE
 	default y
@@ -103,124 +84,124 @@ config BR2_PACKAGE_SAMBA_RPCCLIENT
 	  Tool for executing client side MS-RPC functions using RPC
 	  calls from a UNIX workstation.
 
-config BR2_PACKAGE_SAMBA_SMBCACLS
+config BR2_PACKAGE_SAMBA3_SMBCACLS
 	bool "smbcacls"
 	default y
 	help
 	  Set or get ACLs on an NT file or directory names
 
-config BR2_PACKAGE_SAMBA_SMBCLIENT
+config BR2_PACKAGE_SAMBA3_SMBCLIENT
 	bool "smbclient"
 	select BR2_PACKAGE_READLINE
 	default y
 	help
 	  ftp-like client to access SMB/CIFS resources on servers
 
-config BR2_PACKAGE_SAMBA_SMBCONTROL
+config BR2_PACKAGE_SAMBA3_SMBCONTROL
 	bool "smbcontrol"
 	default y
 	help
 	  Send messages to smbd, nmbd or winbindd processes
 
-config BR2_PACKAGE_SAMBA_SMBCQUOTAS
+config BR2_PACKAGE_SAMBA3_SMBCQUOTAS
 	bool "smbcquotas"
 	default y
 	help
 	  Set or get QUOTAs of NTFS 5 shares
 
-config BR2_PACKAGE_SAMBA_SMBD
+config BR2_PACKAGE_SAMBA3_SMBD
 	bool "smbd"
 	default y
 	help
 	  The server daemon that provides filesharing and printing services
 
-config BR2_PACKAGE_SAMBA_SMBGET
+config BR2_PACKAGE_SAMBA3_SMBGET
 	bool "smbget"
 	default y
 	help
 	  wget-like utility for download files over SMB
 
-config BR2_PACKAGE_SAMBA_SMBLDBTOOLS
+config BR2_PACKAGE_SAMBA3_SMBLDBTOOLS
 	bool "smbldbtools"
 	default y
 	help
 	  ldbadd ldbdel ldbedit ldbmodify ldbrename ldbsearch tools
 
-config BR2_PACKAGE_SAMBA_SMBPASSWD
+config BR2_PACKAGE_SAMBA3_SMBPASSWD
 	bool "smbpasswd"
 	default y
 	help
 	  Change a user's SMB passwd
 
-config BR2_PACKAGE_SAMBA_SMBSHARESEC
+config BR2_PACKAGE_SAMBA3_SMBSHARESEC
 	bool "smbsharesec"
 	default y
 	help
 	  Manipulate share permissions on SMB file shares
 
-config BR2_PACKAGE_SAMBA_SMBSPOOL
+config BR2_PACKAGE_SAMBA3_SMBSPOOL
 	bool "smbspool"
 	default y
 	help
 	  Send a print file to an SMB printer
 
-config BR2_PACKAGE_SAMBA_SMBSTATUS
+config BR2_PACKAGE_SAMBA3_SMBSTATUS
 	bool "smbstatus"
 	default y
 	help
 	  Report on current Samba connections
 
-config BR2_PACKAGE_SAMBA_SMBTREE
+config BR2_PACKAGE_SAMBA3_SMBTREE
 	bool "smbtree"
 	default y
 	help
 	  A text based smb network browser
 
-config BR2_PACKAGE_SAMBA_SWAT
+config BR2_PACKAGE_SAMBA3_SWAT
 	bool "swat"
 	default y
 	help
 	  Samba Web Administration Tool
 
-config BR2_PACKAGE_SAMBA_SMBTA_UTIL
+config BR2_PACKAGE_SAMBA3_SMBTA_UTIL
 	bool "smbta-util"
 	default y
 	help
 	  Tool to ease the configuration of the vfs_smb_traffic_analyzer
 	  module regarding data encryption.
 
-config BR2_PACKAGE_SAMBA_SMBTAR
+config BR2_PACKAGE_SAMBA3_SMBTAR
 	bool "smbtar"
 	default y
-	depends on BR2_PACKAGE_SAMBA_SMBCLIENT
+	depends on BR2_PACKAGE_SAMBA3_SMBCLIENT
 	help
 	  tar-like script that wraps smbclient
 
 comment "smbtar        - disabled (requires smbclient)"
-	depends on !BR2_PACKAGE_SAMBA_SMBCLIENT
+	depends on !BR2_PACKAGE_SAMBA3_SMBCLIENT
 
-config BR2_PACKAGE_SAMBA_TDB
+config BR2_PACKAGE_SAMBA3_TDB
 	bool "tdb"
 	default y
 	help
 	  Tools to operate on the .tdb database files
 
-config BR2_PACKAGE_SAMBA_TESTPARM
+config BR2_PACKAGE_SAMBA3_TESTPARM
 	bool "testparm"
 	default y
 	help
 	  Check an smb.conf configuration file for internal correctness
 
-config BR2_PACKAGE_SAMBA_WINBINDD
+config BR2_PACKAGE_SAMBA3_WINBINDD
 	bool "winbindd"
 	default y
 	help
 	  Name Service Switch daemon for resolving names from NT servers
 
-config BR2_PACKAGE_SAMBA_WBINFO
+config BR2_PACKAGE_SAMBA3_WBINFO
 	bool "wbinfo"
 	default y
-	depends on BR2_PACKAGE_SAMBA_WINBINDD
+	depends on BR2_PACKAGE_SAMBA3_WINBINDD
 	help
 	  Query information from winbind daemon
 
@@ -229,7 +210,7 @@ endmenu
 
 menu "Samba libraries selection"
 
-config BR2_PACKAGE_SAMBA_LIBSMBCLIENT
+config BR2_PACKAGE_SAMBA3_LIBSMBCLIENT
 	bool "libsmbclient"
 	help
 	  libsmbclient is a library toolset that permits applications
@@ -242,7 +223,7 @@ endmenu
 
 menu "Samba support selection"
 
-config BR2_PACKAGE_SAMBA_AVAHI
+config BR2_PACKAGE_SAMBA3_AVAHI
 	bool "support avahi"
 	default y
 	depends on BR2_PACKAGE_AVAHI_DAEMON
@@ -255,7 +236,7 @@ comment "support avahi - disabled (requires avahi-daemon)"
 	depends on BR2_USE_MMU
 	depends on !BR2_PACKAGE_AVAHI_DAEMON
 
-config BR2_PACKAGE_SAMBA_GAMIN
+config BR2_PACKAGE_SAMBA3_GAMIN
 	bool "support gamin"
 	default y
 	depends on BR2_PACKAGE_GAMIN
diff --git a/package/samba/S91smb b/package/samba/samba3/S91smb
similarity index 100%
rename from package/samba/S91smb
rename to package/samba/samba3/S91smb
diff --git a/package/samba/samba-fix-smbd-libs-avahi.patch b/package/samba/samba3/samba3-0001-fix-smbd-libs-avahi.patch
similarity index 100%
rename from package/samba/samba-fix-smbd-libs-avahi.patch
rename to package/samba/samba3/samba3-0001-fix-smbd-libs-avahi.patch
diff --git a/package/samba/samba-getaddrinfo.patch b/package/samba/samba3/samba3-0002-getaddrinfo.patch
similarity index 100%
rename from package/samba/samba-getaddrinfo.patch
rename to package/samba/samba3/samba3-0002-getaddrinfo.patch
diff --git a/package/samba/samba3/samba3.mk b/package/samba/samba3/samba3.mk
new file mode 100644
index 0000000..673d737
--- /dev/null
+++ b/package/samba/samba3/samba3.mk
@@ -0,0 +1,181 @@
+################################################################################
+#
+# samba3
+#
+################################################################################
+
+SAMBA3_VERSION = 3.6.22
+SAMBA3_SITE = http://ftp.samba.org/pub/samba/stable
+SAMBA3_SOURCE = samba-$(SAMBA3_VERSION).tar.gz
+SAMBA3_SUBDIR = source3
+SAMBA3_INSTALL_STAGING = YES
+SAMBA3_LICENSE = GPLv3+
+SAMBA3_LICENSE_FILES = COPYING
+
+SAMBA3_DEPENDENCIES = popt \
+	$(if $(BR2_PACKAGE_SAMBA3_RPCCLIENT),readline) \
+	$(if $(BR2_PACKAGE_SAMBA3_SMBCLIENT),readline) \
+	$(if $(BR2_PACKAGE_SAMBA3_AVAHI),avahi) \
+	$(if $(BR2_PACKAGE_SAMBA3_GAMIN),gamin)
+
+SAMBA3_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 \
+	samba_cv_HAVE_IFACE_IFCONF=yes \
+	samba_cv_HAVE_MMAP=yes \
+	samba_cv_HAVE_FCNTL_LOCK=yes \
+	samba_cv_HAVE_SECURE_MKSTEMP=yes \
+	samba_cv_CC_NEGATIVE_ENUM_VALUES=yes \
+	samba_cv_fpie=no \
+	libreplace_cv_HAVE_IPV6=$(if $(BR2_INET_IPV6),yes,no) \
+	$(if $(BR2_PACKAGE_SAMBA3_AVAHI),AVAHI_LIBS=-pthread)
+
+SAMBA3_CONF_OPT = \
+	--localstatedir=/var \
+	--with-piddir=/var/run \
+	--with-lockdir=/var/lock \
+	--with-logfilebase=/var/log \
+	--with-configdir=/etc/samba \
+	--with-privatedir=/etc/samba \
+	\
+	--disable-cups \
+	--enable-shared-libs \
+	--disable-pie \
+	--disable-relro \
+	--disable-dnssd \
+	\
+	$(if $(BR2_PACKAGE_SAMBA3_AVAHI),--enable-avahi,--disable-avahi) \
+	$(if $(BR2_PACKAGE_SAMBA3_GAMIN),--enable-fam,--disable-fam) \
+	$(if $(BR2_PACKAGE_SAMBA3_SWAT),--enable-swat,--disable-swat) \
+	\
+	--without-cluster-support \
+	--without-dnsupdate \
+	--with-sys-quotas \
+	--without-ads \
+	--without-ldap \
+	--with-included-iniparser \
+	\
+	$(if $(BR2_PACKAGE_SAMBA3_RPCCLIENT),--with-readline=$(STAGING_DIR)) \
+	$(if $(BR2_PACKAGE_SAMBA3_SMBCLIENT),--with-readline=$(STAGING_DIR)) \
+	$(if $(BR2_PACKAGE_SAMBA3_WINBINDD),--with-winbind,--without-winbind)
+
+SAMBA3_INSTALL_TARGET_OPT = \
+	DESTDIR=$(TARGET_DIR) -C $(SAMBA3_DIR)/$(SAMBA3_SUBDIR) \
+	installlibs installservers installbin installscripts \
+	$(if $(BR2_PACKAGE_SAMBA3_SWAT),installswat)
+
+# binaries to keep
+SAMBA3_BINTARGETS_y = \
+	usr/sbin/smbd \
+	usr/lib/libtalloc.so \
+	usr/lib/libtdb.so
+
+# binaries to remove
+SAMBA3_BINTARGETS_ = \
+	usr/lib/libnetapi.so* \
+	usr/lib/libsmbsharemodes.so*
+
+# binaries to keep or remove
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_EVENTLOGADM) += usr/bin/eventlogadm
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_NET) += usr/bin/net
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_NMBD) += usr/sbin/nmbd
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_NMBLOOKUP) += usr/bin/nmblookup
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_NTLM_AUTH) += usr/bin/ntlm_auth
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_PDBEDIT) += usr/bin/pdbedit
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_PROFILES) += usr/bin/profiles
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_RPCCLIENT) += usr/bin/rpcclient
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBCACLS) += usr/bin/smbcacls
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBCLIENT) += usr/bin/smbclient
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBCONTROL) += usr/bin/smbcontrol
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBCQUOTAS) += usr/bin/smbcquotas
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBD) += usr/sbin/smbd
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBGET) += usr/bin/smbget
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBLDBTOOLS) += usr/bin/ldbadd
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBLDBTOOLS) += usr/bin/ldbdel
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBLDBTOOLS) += usr/bin/ldbedit
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBLDBTOOLS) += usr/bin/ldbmodify
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBLDBTOOLS) += usr/bin/ldbrename
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBLDBTOOLS) += usr/bin/ldbsearch
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBPASSWD) += usr/bin/smbpasswd
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBSHARESEC) += usr/bin/sharesec
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBSPOOL) += usr/bin/smbspool
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBSTATUS) += usr/bin/smbstatus
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBTA_UTIL) += usr/bin/smbta-util
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SMBTREE) += usr/bin/smbtree
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_SWAT) += usr/sbin/swat
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_TDB) += usr/bin/tdbbackup
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_TDB) += usr/bin/tdbdump
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_TDB) += usr/bin/tdbtool
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_TESTPARM) += usr/bin/testparm
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_WINBINDD) += usr/sbin/winbindd
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_WBINFO) += usr/bin/wbinfo
+
+# libraries to keep or remove
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_WINBINDD) += usr/lib/libwbclient.so*
+SAMBA3_BINTARGETS_$(BR2_PACKAGE_SAMBA3_LIBSMBCLIENT) += usr/lib/libsmbclient.so*
+
+# non-binaries to remove
+SAMBA3_TXTTARGETS_ = \
+	usr/include/libsmbclient.h \
+	usr/include/netapi.h \
+	usr/include/smb_share_modes.h \
+	usr/include/talloc.h \
+	usr/include/tdb.h \
+	usr/include/wbclient.h
+
+# non-binaries to keep or remove
+SAMBA3_TXTTARGETS_$(BR2_PACKAGE_SAMBA3_FINDSMB) += usr/bin/findsmb
+SAMBA3_TXTTARGETS_$(BR2_PACKAGE_SAMBA3_SMBTAR) += usr/bin/smbtar
+
+define SAMBA3_REMOVE_UNNEEDED_BINARIES
+	rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA3_BINTARGETS_))
+	rm -f $(addprefix $(TARGET_DIR)/, $(SAMBA3_TXTTARGETS_))
+endef
+
+SAMBA3_POST_INSTALL_TARGET_HOOKS += SAMBA3_REMOVE_UNNEEDED_BINARIES
+
+define SAMBA3_REMOVE_SWAT_DOCUMENTATION
+	# Remove the documentation
+	rm -rf $(TARGET_DIR)/usr/swat/help/manpages
+	rm -rf $(TARGET_DIR)/usr/swat/help/Samba3*
+	rm -rf $(TARGET_DIR)/usr/swat/using_samba/
+	# Removing the welcome.html file will make swat default to
+	# welcome-no-samba-doc.html
+	rm -rf $(TARGET_DIR)/usr/swat/help/welcome.html
+endef
+
+# --with-libiconv="" is to avoid detecting host libiconv and build failure
+ifeq ($(BR2_PACKAGE_SAMBA3_LIBICONV),y)
+SAMBA3_DEPENDENCIES += libiconv
+SAMBA3_CONF_OPT += --with-libiconv=$(STAGING_DIR)
+else
+SAMBA3_CONF_OPT += --with-libiconv=""
+endif
+
+# Compiled debug messages by level
+SAMBA3_CONF_OPT += CFLAGS="$(TARGET_CFLAGS) -DMAX_DEBUG_LEVEL=$(BR2_PACKAGE_SAMBA3_MAX_DEBUGLEVEL)"
+
+ifeq ($(BR2_PACKAGE_SAMBA3_SWAT),y)
+ifneq ($(BR2_HAVE_DOCUMENTATION),y)
+SAMBA3_POST_INSTALL_TARGET_HOOKS += SAMBA3_REMOVE_SWAT_DOCUMENTATION
+endif
+endif
+
+define SAMBA3_INSTALL_INITSCRIPTS_CONFIG
+	# install start/stop script
+	@if [ ! -f $(TARGET_DIR)/etc/init.d/S91smb ]; then \
+		$(INSTALL) -m 0755 -D package/samba/samba3/S91smb \
+			$(TARGET_DIR)/etc/init.d/S91smb; \
+	fi
+	# install config
+	@if [ ! -f $(TARGET_DIR)/etc/samba/smb.conf ]; then \
+		$(INSTALL) -m 0755 -D package/samba/samba3/simple.conf \
+			$(TARGET_DIR)/etc/samba/smb.conf; \
+	fi
+endef
+
+SAMBA3_POST_INSTALL_TARGET_HOOKS += SAMBA3_INSTALL_INITSCRIPTS_CONFIG
+
+$(eval $(autotools-package))
diff --git a/package/samba/simple.conf b/package/samba/samba3/simple.conf
similarity index 100%
rename from package/samba/simple.conf
rename to package/samba/samba3/simple.conf
-- 
1.8.3.2




More information about the buildroot mailing list