config BR2_PACKAGE_SAMBA
	bool "samba"
	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
	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.

menu "Samba tools selection"
	depends on BR2_PACKAGE_SAMBA

config BR2_PACKAGE_SAMBA_CIFS
	bool "cifs"
	default y
	depends on BR2_PACKAGE_SAMBA
	help
	  Support CIFS

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

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_MICROPERL
	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_MICROPERL

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

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

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

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.

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

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_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

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
	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

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"
	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
	  standards POSIX functions available for manipulating local
	  files.

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
	help
	  Include support for avahi

comment "support avahi - disabled (requires avahi)"
	depends on !BR2_PACKAGE_AVAHI

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

comment "support gamin - disabled (requires gamin)"
	depends on !BR2_PACKAGE_GAMIN

endmenu

