1*4882a593Smuzhiyun################################################################################ 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# samba4 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun################################################################################ 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunSAMBA4_VERSION = 4.14.10 8*4882a593SmuzhiyunSAMBA4_SITE = https://download.samba.org/pub/samba/stable 9*4882a593SmuzhiyunSAMBA4_SOURCE = samba-$(SAMBA4_VERSION).tar.gz 10*4882a593SmuzhiyunSAMBA4_INSTALL_STAGING = YES 11*4882a593SmuzhiyunSAMBA4_LICENSE = GPL-3.0+ 12*4882a593SmuzhiyunSAMBA4_LICENSE_FILES = COPYING 13*4882a593SmuzhiyunSAMBA4_CPE_ID_VENDOR = samba 14*4882a593SmuzhiyunSAMBA4_CPE_ID_PRODUCT = samba 15*4882a593SmuzhiyunSAMBA4_SELINUX_MODULES = samba 16*4882a593SmuzhiyunSAMBA4_DEPENDENCIES = \ 17*4882a593Smuzhiyun host-e2fsprogs host-flex host-heimdal host-nfs-utils \ 18*4882a593Smuzhiyun host-perl host-perl-parse-yapp host-python3 \ 19*4882a593Smuzhiyun cmocka e2fsprogs gnutls popt zlib \ 20*4882a593Smuzhiyun $(if $(BR2_PACKAGE_LIBAIO),libaio) \ 21*4882a593Smuzhiyun $(if $(BR2_PACKAGE_LIBCAP),libcap) \ 22*4882a593Smuzhiyun $(if $(BR2_PACKAGE_READLINE),readline) \ 23*4882a593Smuzhiyun $(TARGET_NLS_DEPENDENCIES) 24*4882a593SmuzhiyunSAMBA4_CFLAGS = $(TARGET_CFLAGS) 25*4882a593SmuzhiyunSAMBA4_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) 26*4882a593SmuzhiyunSAMBA4_CONF_ENV = \ 27*4882a593Smuzhiyun CFLAGS="$(SAMBA4_CFLAGS)" \ 28*4882a593Smuzhiyun LDFLAGS="$(SAMBA4_LDFLAGS)" \ 29*4882a593Smuzhiyun XSLTPROC=false \ 30*4882a593Smuzhiyun WAF_NO_PREFORK=1 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunSAMBA4_PYTHON = PYTHON="$(HOST_DIR)/bin/python3" 33*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_PYTHON3),y) 34*4882a593SmuzhiyunSAMBA4_PYTHON += PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config" 35*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += python3 36*4882a593Smuzhiyunelse 37*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --disable-python 38*4882a593Smuzhiyunendif 39*4882a593Smuzhiyun 40*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBTIRPC),y) 41*4882a593SmuzhiyunSAMBA4_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` 42*4882a593SmuzhiyunSAMBA4_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` 43*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += libtirpc host-pkgconf 44*4882a593Smuzhiyunendif 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_ACL),y) 47*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --with-acl-support 48*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += acl 49*4882a593Smuzhiyunelse 50*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --without-acl-support 51*4882a593Smuzhiyunendif 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_CUPS),y) 54*4882a593SmuzhiyunSAMBA4_CONF_ENV += CUPS_CONFIG="$(STAGING_DIR)/usr/bin/cups-config" 55*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --enable-cups 56*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += cups 57*4882a593Smuzhiyunelse 58*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --disable-cups 59*4882a593Smuzhiyunendif 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_DBUS),y) 62*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += dbus 63*4882a593SmuzhiyunSAMBA4_SHARED_MODULES += vfs_snapper 64*4882a593Smuzhiyunelse 65*4882a593SmuzhiyunSAMBA4_SHARED_MODULES += !vfs_snapper 66*4882a593Smuzhiyunendif 67*4882a593Smuzhiyun 68*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_AVAHI_DAEMON),yy) 69*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --enable-avahi 70*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += avahi 71*4882a593Smuzhiyunelse 72*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --disable-avahi 73*4882a593Smuzhiyunendif 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_GAMIN),y) 76*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --with-fam 77*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += gamin 78*4882a593Smuzhiyunelse 79*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --without-fam 80*4882a593Smuzhiyunendif 81*4882a593Smuzhiyun 82*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LIBARCHIVE),y) 83*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --with-libarchive 84*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += libarchive 85*4882a593Smuzhiyunelse 86*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --without-libarchive 87*4882a593Smuzhiyunendif 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_NCURSES),y) 90*4882a593SmuzhiyunSAMBA4_CONF_ENV += NCURSES_CONFIG="$(STAGING_DIR)/usr/bin/$(NCURSES_CONFIG_SCRIPTS)" 91*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += ncurses 92*4882a593Smuzhiyunelse 93*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --without-regedit 94*4882a593Smuzhiyunendif 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun# The ctdb tests (cluster) need bash and take up some space 97*4882a593Smuzhiyun# They're normally intended for debugging so remove them 98*4882a593Smuzhiyundefine SAMBA4_REMOVE_CTDB_TESTS 99*4882a593Smuzhiyun rm -rf $(TARGET_DIR)/usr/lib/ctdb-tests 100*4882a593Smuzhiyun rm -rf $(TARGET_DIR)/usr/share/ctdb-tests 101*4882a593Smuzhiyun rm -f $(TARGET_DIR)/usr/bin/ctdb_run_*tests 102*4882a593Smuzhiyunendef 103*4882a593SmuzhiyunSAMBA4_POST_INSTALL_TARGET_HOOKS += SAMBA4_REMOVE_CTDB_TESTS 104*4882a593Smuzhiyun 105*4882a593Smuzhiyundefine SAMBA4_CONFIGURE_CMDS 106*4882a593Smuzhiyun $(INSTALL) -m 0644 package/samba4/samba4-cache.txt $(@D)/cache.txt; 107*4882a593Smuzhiyun echo 'Checking whether fcntl supports setting/geting hints: $(if $(BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_13),OK,NO)' >>$(@D)/cache.txt; 108*4882a593Smuzhiyun echo 'Checking uname machine type: $(BR2_ARCH)' >>$(@D)/cache.txt; 109*4882a593Smuzhiyun (cd $(@D); \ 110*4882a593Smuzhiyun $(SAMBA4_PYTHON) \ 111*4882a593Smuzhiyun python_LDFLAGS="" \ 112*4882a593Smuzhiyun python_LIBDIR="" \ 113*4882a593Smuzhiyun PERL="$(HOST_DIR)/bin/perl" \ 114*4882a593Smuzhiyun $(TARGET_CONFIGURE_OPTS) \ 115*4882a593Smuzhiyun $(SAMBA4_CONF_ENV) \ 116*4882a593Smuzhiyun ./buildtools/bin/waf configure \ 117*4882a593Smuzhiyun --prefix=/usr \ 118*4882a593Smuzhiyun --sysconfdir=/etc \ 119*4882a593Smuzhiyun --localstatedir=/var \ 120*4882a593Smuzhiyun --with-libiconv=$(STAGING_DIR)/usr \ 121*4882a593Smuzhiyun --enable-fhs \ 122*4882a593Smuzhiyun --cross-compile \ 123*4882a593Smuzhiyun --cross-answers=$(@D)/cache.txt \ 124*4882a593Smuzhiyun --hostcc=gcc \ 125*4882a593Smuzhiyun --disable-rpath \ 126*4882a593Smuzhiyun --disable-rpath-install \ 127*4882a593Smuzhiyun --disable-iprint \ 128*4882a593Smuzhiyun --without-pam \ 129*4882a593Smuzhiyun --without-dmapi \ 130*4882a593Smuzhiyun --without-gpgme \ 131*4882a593Smuzhiyun --without-ldb-lmdb \ 132*4882a593Smuzhiyun --disable-glusterfs \ 133*4882a593Smuzhiyun --with-cluster-support \ 134*4882a593Smuzhiyun --bundled-libraries='!asn1_compile,!compile_et' \ 135*4882a593Smuzhiyun --with-shared-modules=$(subst $(space),$(comma),$(strip $(SAMBA4_SHARED_MODULES))) \ 136*4882a593Smuzhiyun $(SAMBA4_CONF_OPTS) \ 137*4882a593Smuzhiyun ) 138*4882a593Smuzhiyunendef 139*4882a593Smuzhiyun 140*4882a593Smuzhiyundefine SAMBA4_BUILD_CMDS 141*4882a593Smuzhiyun $(TARGET_MAKE_ENV) $(SAMBA4_PYTHON) $(MAKE) -C $(@D) 142*4882a593Smuzhiyunendef 143*4882a593Smuzhiyun 144*4882a593Smuzhiyundefine SAMBA4_INSTALL_STAGING_CMDS 145*4882a593Smuzhiyun $(TARGET_MAKE_ENV) $(SAMBA4_PYTHON) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install 146*4882a593Smuzhiyunendef 147*4882a593Smuzhiyun 148*4882a593Smuzhiyundefine SAMBA4_INSTALL_TARGET_CMDS 149*4882a593Smuzhiyun $(TARGET_MAKE_ENV) $(SAMBA4_PYTHON) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install 150*4882a593Smuzhiyunendef 151*4882a593Smuzhiyun 152*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SAMBA4_AD_DC),y) 153*4882a593Smuzhiyun# host-python-dnspython and host-python-markdown are not strictly 154*4882a593Smuzhiyun# needed on the host, but on the target. however, samba's configure 155*4882a593Smuzhiyun# tests for their availability on the host. 156*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += \ 157*4882a593Smuzhiyun jansson \ 158*4882a593Smuzhiyun host-python-dnspython \ 159*4882a593Smuzhiyun host-python-markdown \ 160*4882a593Smuzhiyun python-dnspython \ 161*4882a593Smuzhiyun python-markdown 162*4882a593Smuzhiyunelse 163*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --without-ad-dc --without-json 164*4882a593Smuzhiyunendif 165*4882a593Smuzhiyun 166*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SAMBA4_ADS),y) 167*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --with-ads --with-ldap 168*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += openldap 169*4882a593SmuzhiyunSAMBA4_SHARED_MODULES += idmap_ad 170*4882a593Smuzhiyunelse 171*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --without-ads --without-ldap 172*4882a593SmuzhiyunSAMBA4_SHARED_MODULES += !idmap_ad 173*4882a593Smuzhiyunendif 174*4882a593Smuzhiyun 175*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_SAMBA4_SMBTORTURE),) 176*4882a593Smuzhiyundefine SAMBA4_REMOVE_SMBTORTURE 177*4882a593Smuzhiyun rm -f $(TARGET_DIR)/usr/bin/smbtorture 178*4882a593Smuzhiyunendef 179*4882a593SmuzhiyunSAMBA4_POST_INSTALL_TARGET_HOOKS += SAMBA4_REMOVE_SMBTORTURE 180*4882a593Smuzhiyunendif 181*4882a593Smuzhiyun 182*4882a593Smuzhiyundefine SAMBA4_INSTALL_INIT_SYSV 183*4882a593Smuzhiyun $(INSTALL) -m 0755 -D package/samba4/S91smb \ 184*4882a593Smuzhiyun $(TARGET_DIR)/etc/init.d/S91smb 185*4882a593Smuzhiyunendef 186*4882a593Smuzhiyun 187*4882a593Smuzhiyunifeq ($(BR2_INIT_SYSTEMD),y) 188*4882a593SmuzhiyunSAMBA4_CONF_OPTS += --systemd-install-services 189*4882a593SmuzhiyunSAMBA4_DEPENDENCIES += systemd 190*4882a593Smuzhiyunendif 191*4882a593Smuzhiyun 192*4882a593Smuzhiyundefine SAMBA4_INSTALL_INIT_SYSTEMD 193*4882a593Smuzhiyun $(INSTALL) -D -m 644 $(@D)/packaging/systemd/samba.conf.tmp \ 194*4882a593Smuzhiyun $(TARGET_DIR)/usr/lib/tmpfiles.d/samba.conf 195*4882a593Smuzhiyun printf "d /var/log/samba 755 root root\n" >>$(TARGET_DIR)/usr/lib/tmpfiles.d/samba.conf 196*4882a593Smuzhiyunendef 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun$(eval $(generic-package)) 199