kumquat-buildroot/package/samba/samba.mk
Benoît Thébaudeau 1144059ede samba: Add support for libnss_win*.so* installation
The libnss_wins and libnss_winbind libraries are required in order to
add support for the wins and winbind sources to the Name Service Switch
(NSS), so make it possible to install them. This is useful in order to
resolve NetBIOS names or user and group information from a Windows NT
server.

These libraries are installed to /lib/ like the standard libnss_*
libraries from (E)GLIBC.

[Thomas: remove useless comments.]

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-11-26 22:24:52 +01:00

193 lines
7.1 KiB
Makefile

################################################################################
#
# samba
#
################################################################################
SAMBA_VERSION = 3.6.24
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 \
libreplace_cv_HAVE_GETTIMEOFDAY_TZ=yes \
samba_cv_USE_SETREUID=yes \
samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes \
libreplace_cv_HAVE_IFACE_GETIFADDRS=yes \
libreplace_cv_HAVE_IFACE_IFCONF=yes \
libreplace_cv_HAVE_MMAP=yes \
samba_cv_HAVE_FCNTL_LOCK=yes \
libreplace_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_OPTS = \
--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_OPTS = \
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
ifeq ($(BR2_PACKAGE_SAMBA_LIBNSS_WINS),y)
define SAMBA_INSTALL_LIBNSS_WINS
$(INSTALL) -m 0755 -D $(@D)/nsswitch/libnss_wins.so $(TARGET_DIR)/lib/libnss_wins.so
ln -snf libnss_wins.so $(TARGET_DIR)/lib/libnss_wins.so.2
endef
SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_LIBNSS_WINS
endif
ifeq ($(BR2_PACKAGE_SAMBA_LIBNSS_WINBIND),y)
define SAMBA_INSTALL_LIBNSS_WINBIND
$(INSTALL) -m 0755 -D $(@D)/nsswitch/libnss_winbind.so $(TARGET_DIR)/lib/libnss_winbind.so
ln -snf libnss_winbind.so $(TARGET_DIR)/lib/libnss_winbind.so.2
endef
SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_LIBNSS_WINBIND
endif
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_OPTS += --with-libiconv=$(STAGING_DIR)
else
SAMBA_CONF_OPTS += --with-libiconv=""
endif
# Compiled debug messages by level
SAMBA_CONF_OPTS += CFLAGS="$(TARGET_CFLAGS) -DMAX_DEBUG_LEVEL=$(BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL)"
ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y)
SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_REMOVE_SWAT_DOCUMENTATION
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 0644 -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))