kumquat-buildroot/package/samba/samba.mk
Benoît Thébaudeau 775129abe7 samba: Swap libnss_win*.so* files and symlinks
The libnss_wins and libnss_winbind libraries were installed in this way:
/lib/libnss_<service>.so
/lib/libnss_<service>.so.<major> -> /lib/libnss_<service>.so

This had been done like this in order to get something similar to the
other NSS libraries, which are usually installed in this way:
/lib/libnss_<service>-<version>.so
/lib/libnss_<service>.so.<major> -> /lib/libnss_<service>-<version>.so

However, besides these files, these other NSS libraries usually come
installed with:
/usr/lib/libnss_<service>.so -> /lib/libnss_<service>.so.<major>

This means that the NSS libraries follow the usual library installation
practice, i.e. that the non-versioned .so is a symlink to the versioned
.so, so that switching versions is easy. In the case of the NSS
libraries, the versioned .so is just also a symlink to a .so with a more
accurate version.

Hence, follow the same rules for libnss_win*.so*, and install these
libraries the other way around:
/lib/libnss_<service>.so -> /lib/libnss_<service>.so.<major>
/lib/libnss_<service>.so.<major>

This is also how these libraries are installed by a major OS like Ubuntu
14.10:
/lib/x86_64-linux-gnu/libnss_winbind.so -> libnss_winbind.so.2
/lib/x86_64-linux-gnu/libnss_winbind.so.2
/lib/x86_64-linux-gnu/libnss_wins.so -> libnss_wins.so.2
/lib/x86_64-linux-gnu/libnss_wins.so.2

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-12-21 23:03:07 +01:00

190 lines
6.9 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.2
ln -snf libnss_wins.so.2 $(TARGET_DIR)/lib/libnss_wins.so
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.2
ln -snf libnss_winbind.so.2 $(TARGET_DIR)/lib/libnss_winbind.so
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_CONFIG
$(INSTALL) -m 0644 -D package/samba/simple.conf $(TARGET_DIR)/etc/samba/smb.conf
endef
SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_INSTALL_CONFIG
define SAMBA_INSTALL_INIT_SYSV
$(INSTALL) -m 0755 -D package/samba/S91smb $(TARGET_DIR)/etc/init.d/S91smb
endef
$(eval $(autotools-package))