samba4: update to 4.11.4 (python3 version), add rpcsvc-proto, add libasn1 host build 10940/head
authorAndy Walsh <andy.walsh44+github@gmail.com>
Sat, 4 Jan 2020 00:08:11 +0000 (01:08 +0100)
committerAndy Walsh <andy.walsh44+github@gmail.com>
Sat, 4 Jan 2020 00:08:11 +0000 (01:08 +0100)
* update to 4.11.4 (python3 version)
* re-enable AD-DC option
* add 'samba_nice' UCI option via "config procd 'extra'"
* restructure buildsteps (don't rely on waf --targets logic)
* move quota option into VFS
* move ACL option into AC-DC
* add more admin-tools
* use rpath_install for libs
* fix rpath + rstrip

extra:
* add rpcsvc-proto package _(don't rely on nfs-utils/host for headers, rpcgen anymore)_
* add libasn1 host build _(samba4 is looking for the bins)_

Signed-off-by: Andy Walsh <andy.walsh44+github@gmail.com>
30 files changed:
libs/libtasn1/Makefile
libs/rpcsvc-proto/Makefile [new file with mode: 0644]
net/samba4/Config.in
net/samba4/Makefile
net/samba4/files/samba.init
net/samba4/patches/003-getpwent_r.patch [new file with mode: 0644]
net/samba4/patches/004-missing-headers.patch [new file with mode: 0644]
net/samba4/patches/005-musl_uintptr.patch [new file with mode: 0644]
net/samba4/patches/006-netdb-defines.patch [new file with mode: 0644]
net/samba4/patches/007-libldb-fix-musl-libc-unkown-type-error.patch [new file with mode: 0644]
net/samba4/patches/008-samba-4.11-add_missing___compar_fn_t.patch [new file with mode: 0644]
net/samba4/patches/009-samba-4.11-qsort-compar.patch [new file with mode: 0644]
net/samba4/patches/010-samba-4-11-fix-host-tools-checks.patch.patch [new file with mode: 0644]
net/samba4/patches/010-source3-msgsock-nvram-fix.patch [deleted file]
net/samba4/patches/011-source4-msgsock-nvram-fix.patch [deleted file]
net/samba4/patches/020-source3-msgsock-nvram-fix.patch [new file with mode: 0644]
net/samba4/patches/021-source4-msgsock-nvram-fix.patch [new file with mode: 0644]
net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch [new file with mode: 0644]
net/samba4/patches/102-samba-4.8.5-unbundle-libbsd.patch [deleted file]
net/samba4/waf-cross-answers/aarch64.txt
net/samba4/waf-cross-answers/arc.txt
net/samba4/waf-cross-answers/arm.txt
net/samba4/waf-cross-answers/armeb.txt
net/samba4/waf-cross-answers/i386.txt
net/samba4/waf-cross-answers/mips.txt
net/samba4/waf-cross-answers/mips64.txt
net/samba4/waf-cross-answers/mips64el.txt
net/samba4/waf-cross-answers/mipsel.txt
net/samba4/waf-cross-answers/powerpc.txt
net/samba4/waf-cross-answers/x86_64.txt

index 01347bfb067eb9567dcb9172b1d7a0cc7f5f523e..7a7d3d74398ea763af93814c625824727477c0eb 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtasn1
-PKG_VERSION:=4.14
-PKG_RELEASE:=2
+PKG_VERSION:=4.15.0
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
-PKG_HASH:=9e604ba5c5c8ea403487695c2e407405820d98540d9de884d6e844f9a9c5ba08
+PKG_HASH:=dd77509fe8f5304deafbca654dc7f0ea57f5841f41ba530cff9a5bf71382739e
 
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
 PKG_LICENSE:=LGPL-2.1-or-later
@@ -25,6 +25,7 @@ PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
 
 define Package/libtasn1
   SECTION:=libs
@@ -48,7 +49,6 @@ CONFIGURE_ARGS += \
        --disable-valgrind-tests
 
 define Build/InstallDev
-       $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) $(PKG_INSTALL_DIR)/usr/include/libtasn1.h $(1)/usr/include/
        $(INSTALL_DIR) $(1)/usr/lib
@@ -62,4 +62,5 @@ define Package/libtasn1/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtasn1.so.* $(1)/usr/lib/
 endef
 
+$(eval $(call HostBuild))
 $(eval $(call BuildPackage,libtasn1))
diff --git a/libs/rpcsvc-proto/Makefile b/libs/rpcsvc-proto/Makefile
new file mode 100644 (file)
index 0000000..5449b3c
--- /dev/null
@@ -0,0 +1,51 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=rpcsvc-proto
+PKG_VERSION:=1.4
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=https://github.com/thkukuk/rpcsvc-proto/releases/download/v$(PKG_VERSION)/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_HASH:=867e46767812784d8dda6d8d931d6fabb30168abb02d87a2a205be6d5a2934a7
+
+PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
+PKG_LICENSE:=BSD-3-clause
+PKG_LICENSE_FILES:=COPYING
+
+PKG_FIXUP:=autoreconf
+PKG_REMOVE_FILES:=autogen.sh
+PKG_INSTALL:=1
+
+PKG_BUILD_DEPENDS:=rpcsvc-proto/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+include $(INCLUDE_DIR)/host-build.mk
+
+define Package/rpcsvc-proto
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=rpcgen and rpcsvc proto.x files from glibc
+  URL:=https://github.com/thkukuk/rpcsvc-proto
+  DEPENDS:=$(INTL_DEPENDS)
+  BUILDONLY:=1
+endef
+
+define Package/rpcsvc-proto/description
+  This package contains rpcsvc proto.x files from glibc, which are missing in libtirpc.
+  Additional it contains rpcgen, which is needed to create header files and sources from protocol files.
+endef
+
+# need to use host tool
+define Build/Prepare
+       $(Build/Prepare/Default)
+       $(SED) 's,.*/rpcgen/rpcgen,\t$(STAGING_DIR_HOSTPKG)/bin/rpcgen,' $(PKG_BUILD_DIR)/rpcsvc/Makefile.am
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/rpcsvc $(1)/usr/include/
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,rpcsvc-proto))
index 99157702a468b6560397ade1993d788453f99653..988c05f208298be3e1aa40cda99f86f1334e2c8e 100644 (file)
@@ -1,26 +1,14 @@
-config SAMBA4_SERVER_ACL
-       bool "ACL support (xattr)"
-       depends on PACKAGE_samba4-server
-       help
-               installs: sharesec
-                       modules: vfs_acl_xattr vfs_acl_tdb vfs_posixacl
-
-               Extended access control list support
-       default n
-
-config SAMBA4_SERVER_AD_DC
-       bool "Active Directory Domain Controller support (requires krb5-server) (EXPERIMENTAL)"
+config SAMBA4_SERVER_NETBIOS
+       bool "NetBIOS support"
        depends on PACKAGE_samba4-server
-       select PACKAGE_python-crypto
        help
-               installs: samba (meta-daemon) python-crypto ntlm_auth
-                       scripts: samba-tool
+               installs: nmbd (daemon)
 
-               Run as a Active Directory Domain Controller
-               see: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
-               HINT: see section (# Using the Domain Controller as a File Server)
-               NOTE: Extroot is recommend for this setup, as it is not optimized to run completely from RAM/tempfs!
-       default n
+               Announce Samba resources via NetBIOS using the nmbd daemon
+               WSD (Web Services for Devices) replaces the functionality of NetBIOS and is provided by the wsdd2 package (selected by default).
+               Note: As of Windows 10 Fall Creators Update (1709) NetBIOS isn't supported unless the old SMB1 feature is reinstalled (not recommended).
+               Network shares can be directly accessed via network paths '\\hostname\sharename' and mounted via 'map network drive' without NetBIOS or WSD.
+       default y
 
 config SAMBA4_SERVER_AVAHI
        bool "Avahi support"
@@ -35,20 +23,10 @@ config SAMBA4_SERVER_VFS
        depends on PACKAGE_samba4-server
        help
                installs:
-                       modules: (vfs_btrfs) vfs_fruit vfs_shadow_copy2 vfs_recycle vfs_fake_perms vfs_readonly vfs_cap vfs_offline vfs_crossrename vfs_catia vfs_streams_xattr
+                       modules: (vfs_btrfs) vfs_fruit vfs_shadow_copy2 vfs_recycle vfs_fake_perms vfs_readonly vfs_cap vfs_offline vfs_crossrename vfs_catia vfs_streams_xattr vfs_default_quota
 
                Commonly used VFS modules, vfs_btrfs requires kmod-fs-btrfs to be selected separately
-        default y
-
-config SAMBA4_SERVER_QUOTAS
-       bool "Disk quota support"
-       depends on PACKAGE_samba4-server
-       help
-               installs:
-                       modules: vfs_default_quota
-
-               Support for disk quotas using the quotas VFS module (vfs_default_quota)
-       default n
+       default y
 
 config SAMBA4_SERVER_VFSX
        bool "Extended VFS modules"
@@ -60,25 +38,16 @@ config SAMBA4_SERVER_VFSX
                Additional VFS modules that aren't commonly used, vfs_linux_xfs_sgid requires kmod-fs-xfs to be selected separately
        default n
 
-config SAMBA4_SERVER_NETBIOS
-       bool "NetBIOS support"
-       depends on PACKAGE_samba4-server
-       help
-               installs: nmbd (daemon)
-
-               Announce Samba resources via NetBIOS using the nmbd daemon
-               WSD (Web Services for Devices) replaces the functionality of NetBIOS and is provided by the wsdd2 package (selected by default).
-               Note: As of Windows 10 Fall Creators Update (1709) NetBIOS isn't supported unless the old SMB1 feature is reinstalled (not recommended).
-               Network shares can be directly accessed via network paths '\\hostname\sharename' and mounted via 'map network drive' without NetBIOS or WSD.
-       default y
-
-config SAMBA4_SERVER_WINBIND
-       bool "Winbind support"
+config SAMBA4_SERVER_AD_DC
+       bool "Active Directory Domain Controller support (EXPERIMENTAL)"
        depends on PACKAGE_samba4-server
+       select SAMBA4_SERVER_VFS
        help
-               installs: winbindd (daemon) wbinfo
+               installs: samba (meta-daemon) PyCryptodome ntlm_auth
+                       scripts: samba-tool
 
-               Support using domain users and groups in local commands, such as chown and chgrp.
-               Display domain users and groups in local command's output, such as ls.
-               see: https://wiki.samba.org/index.php/Configuring_Winbindd_on_a_Samba_AD_DC
+               Run as a Active Directory Domain Controller
+               see: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
+               HINT: see section (# Using the Domain Controller as a File Server)
+               NOTE: Extroot is recommend for this setup, as it is not optimized to run completely from RAM/tempfs!
        default n
index 7c98181463eeaed54734190e8aef21ba2dffde81..404b6c6ee16e2c4d06b4ab4a9073576071f3f1d7 100644 (file)
@@ -2,8 +2,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
-PKG_VERSION:=4.9.15
-PKG_RELEASE:=2
+PKG_VERSION:=4.11.4
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://ftp.heanet.ie/mirrors/ftp.samba.org/stable/ \
@@ -12,26 +12,23 @@ PKG_SOURCE_URL:=https://ftp.heanet.ie/mirrors/ftp.samba.org/stable/ \
                http://www.nic.funet.fi/index/samba/pub/samba/stable/ \
                http://samba.mirror.bit.nl/samba/ftp/stable/ \
                https://download.samba.org/pub/samba/stable/
-PKG_HASH:=377102b80b97941bf0d131b828cae8415190e5bdd2928c2e2c954e29f1904496
+PKG_HASH:=b95471ba450757109dce65acfe75dafc719c5cc5d464fc65ee442433a461db24
 
 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
 PKG_LICENSE:=GPL-3.0-only
 PKG_LICENSE_FILES:=COPYING
 PKG_CPE_ID:=cpe:/a:samba:samba
 
-# samba4=(asn1_compile) e2fsprogs=(compile_et) nfs-kernel-server=(rpcgen)
-HOST_BUILD_DEPENDS:=python/host nfs-kernel-server/host e2fsprogs/host
-PKG_BUILD_DEPENDS:=samba4/host
+# samba4=(asn1_compile,compile_et) rpcsvc-proto=(rpcgen)
+HOST_BUILD_DEPENDS:=python3/host perl/host
+PKG_BUILD_DEPENDS:=samba4/host libtasn1/host rpcsvc-proto/host
 
 PKG_CONFIG_DEPENDS:= \
        CONFIG_SAMBA4_SERVER_NETBIOS \
        CONFIG_SAMBA4_SERVER_AVAHI \
        CONFIG_SAMBA4_SERVER_VFS \
        CONFIG_SAMBA4_SERVER_VFSX \
-       CONFIG_SAMBA4_SERVER_QUOTAS \
-       CONFIG_SAMBA4_SERVER_ACL \
        CONFIG_SAMBA4_SERVER_AD_DC \
-       CONFIG_SAMBA4_SERVER_WINBIND \
        CONFIG_PACKAGE_kmod-fs-btrfs \
        CONFIG_PACKAGE_kmod-fs-xfs
 
@@ -39,6 +36,9 @@ include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/kernel.mk
 include $(INCLUDE_DIR)/version.mk
+include $(TOPDIR)/feeds/packages/lang/python/python3-host.mk
+#include $(TOPDIR)/feeds/packages/lang/python/python-package.mk
+include $(TOPDIR)/feeds/packages/lang/python/python3-package.mk
 
 define Package/samba4/Default
   SECTION:=net
@@ -58,29 +58,29 @@ endef
 define Package/samba4-libs
   $(call Package/samba4/Default)
   TITLE+= libs
-  DEPENDS:= +zlib +libtirpc +libpopt +libcomerr +libreadline \
-       +PACKAGE_libcap:libcap +PACKAGE_libpthread:libpthread +PACKAGE_libnettle:libnettle \
-       +PACKAGE_libgcrypt:libgcrypt +PACKAGE_libpam:libpam +PACKAGE_dbus:dbus +PACKAGE_libavahi-client:libavahi-client \
+  DEPENDS:= +libtirpc +libreadline +libpopt +libcap +zlib +libgnutls +libtasn1 +libuuid +libopenssl +USE_GLIBC:libpthread \
+       +PACKAGE_libpam:libpam \
        +SAMBA4_SERVER_VFS:attr \
-       +SAMBA4_SERVER_ACL:acl +SAMBA4_SERVER_ACL:attr \
+       +SAMBA4_SERVER_VFSX:libaio \
        +SAMBA4_SERVER_AVAHI:libavahi-client \
-       +SAMBA4_SERVER_AD_DC:python-base +SAMBA4_SERVER_AD_DC:python-crypto +SAMBA4_SERVER_AD_DC:libopenssl +SAMBA4_SERVER_AD_DC:libgnutls +SAMBA4_SERVER_AD_DC:libopenldap +SAMBA4_SERVER_AD_DC:jansson +SAMBA4_SERVER_AD_DC:libarchive
+       +SAMBA4_SERVER_AD_DC:python3-cryptodome +SAMBA4_SERVER_AD_DC:libopenldap +SAMBA4_SERVER_AD_DC:jansson +SAMBA4_SERVER_AD_DC:libarchive +SAMBA4_SERVER_AD_DC:acl +SAMBA4_SERVER_AD_DC:attr
 endef
 
 define Package/samba4-server
   $(call Package/samba4/Default)
   TITLE+= server
   DEPENDS:= +samba4-libs
+  CONFLICTS:=samba36-server
 endef
 
 define Package/samba4-server/description
-  installs: smbd, nmbd (daemon) smbpasswd pdbedit testparm
+  installs: smbd (nmbd) smbpasswd pdbedit testparm (nmblookup) (smbcacls sharesec)
+            (samba samba-tool ntlm_auth samba-gpupdate samba_dnsupdate samba_kcc samba_spnupdate samba_upgradedns samba_downgrade_db)
 
   This provides the basic fileserver service and is the minimum needed to serve file shares.
   HINT: https://fitzcarraldoblog.wordpress.com/2016/10/17/a-correct-method-of-configuring-samba-for-browsing-smb-shares-in-a-home-network/
 endef
 
-# BUG: We cant add DEPENDS:= +SAMBA4_SERVER_AD_DC:python-crypto, so this only happens here via select!
 define Package/samba4-server/config
   select PACKAGE_wsdd2
   source "$(SOURCE)/Config.in"
@@ -93,7 +93,7 @@ define Package/samba4-client
 endef
 
 define Package/samba4-client/description
-  installs: smbclient cifsdd
+  installs: cifsdd smbclient smbget
 
   The smbclient program implements a simple ftp-like client for accessing SMB shares
 endef
@@ -105,7 +105,9 @@ define Package/samba4-admin
 endef
 
 define Package/samba4-admin/description
-  installs: net smbcontrol profiles rpcclient smbcacls smbcquotas
+  installs: net smbcontrol profiles rpcclient dbwrap_tool eventlogadm
+            ldbadd ldbdel ldbedit ldbmodify ldbrename ldbsearch
+            tdbbackup tdbdump tdbrestore tdbtool
 
   Administration tools collection
 endef
@@ -117,13 +119,15 @@ define Package/samba4-utils
 endef
 
 define Package/samba4-utils/description
-  installs: smbstatus smbtree smbget nmblookup mvxattr
+  installs: smbstatus smbtree mvxattr smbtar smbcquotas
 
   Utilities collection
 endef
 
-TARGET_CFLAGS += -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -Wl,--gc-sections
+TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -I$(STAGING_DIR)/usr/include/tirpc
+TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
+# dont mess with sambas private rpath!
+RSTRIP:=:
 
 CONFIGURE_VARS += \
        CPP="$(TARGET_CROSS)cpp"
@@ -165,9 +169,6 @@ CONFIGURE_ARGS += \
                --disable-cephfs \
                --disable-fault-handling \
                --disable-glusterfs \
-               --disable-rpath \
-               --disable-rpath-install \
-               --disable-rpath-private-install \
                --enable-fhs \
                --without-automount \
                --without-iconv \
@@ -207,8 +208,8 @@ HOST_CONFIGURE_ARGS += \
                --without-gpgme
 
 HOST_CONFIGURE_ARGS += --disable-avahi --without-quotas --without-acl-support --without-winbind \
-       --without-ad-dc --without-json-audit --without-libarchive --disable-python --nopyc --nopyo \
-       --disable-gnutls --without-dnsupdate --without-ads --without-ldap
+       --without-ad-dc --without-json --without-libarchive --disable-python --nopyc --nopyo \
+       --without-dnsupdate --without-ads --without-ldap --without-ldb-lmdb
 HOST_CONFIGURE_VARS += python_LDFLAGS="" python_LIBDIR=""
 
 # Optional AES-NI support - https://lists.samba.org/archive/samba-technical/2017-September/122738.html
@@ -225,45 +226,36 @@ CONFIGURE_ARGS += \
                --with-piddir=/var/run \
                --with-privatedir=/etc/samba
 
-ifeq ($(CONFIG_SAMBA4_SERVER_AVAHI),y)
-       CONFIGURE_ARGS += --enable-avahi
-else
-       CONFIGURE_ARGS += --disable-avahi
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_QUOTAS),y)
+# features
+ifeq ($(CONFIG_SAMBA4_SERVER_VFS),y)
        CONFIGURE_ARGS += --with-quotas
 else
        CONFIGURE_ARGS += --without-quotas
 endif
-ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
-       CONFIGURE_ARGS += --with-acl-support
+ifeq ($(CONFIG_SAMBA4_SERVER_AVAHI),y)
+       CONFIGURE_ARGS += --enable-avahi
 else
-       CONFIGURE_ARGS += --without-acl-support
+       CONFIGURE_ARGS += --disable-avahi
 endif
+
+# NOTE: We need host python-bin, but target python-config here!
+CONFIGURE_VARS += python_LDFLAGS="" python_LIBDIR=""
 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
-       CONFIGURE_ARGS += --enable-gnutls --with-dnsupdate --with-ads --with-ldap
-       TARGET_CFLAGS := -I$(STAGING_DIR)/usr/include/python2.7 $(TARGET_CFLAGS)
-else
-       CONFIGURE_ARGS += --without-ad-dc --without-json-audit --without-libarchive --disable-python --nopyc --nopyo \
-               --disable-gnutls --without-dnsupdate --without-ads --without-ldap
+       CONFIGURE_ARGS += --without-winbind --without-ldb-lmdb --with-acl-support
        CONFIGURE_VARS += \
-               python_LDFLAGS="" \
-               python_LIBDIR=""
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
-       CONFIGURE_ARGS += --with-winbind
+               PYTHON="$(HOST_PYTHON3_BIN)" \
+               PYTHON_CONFIG="$(STAGING_DIR)/host/bin/$(PYTHON3)-config"
 else
-       CONFIGURE_ARGS += --without-winbind
+       CONFIGURE_ARGS += --without-winbind --without-ads --without-ldap --without-ldb-lmdb --without-ad-dc \
+               --without-json --without-libarchive --disable-python --nopyc --nopyo --without-dnsupdate --without-acl-support
 endif
 
-SAMBA4_IDMAP_MODULES :=
-SAMBA4_IDMAP_MODULES_SHARED :=
 SAMBA4_PDB_MODULES :=pdb_smbpasswd,pdb_tdbsam,
 SAMBA4_AUTH_MODULES :=auth_builtin,auth_sam,auth_unix,auth_script,
 SAMBA4_VFS_MODULES :=vfs_default,
 SAMBA4_VFS_MODULES_SHARED :=
 ifeq ($(CONFIG_SAMBA4_SERVER_VFS),y)
-       SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_fruit,vfs_shadow_copy2,vfs_recycle,vfs_fake_perms,vfs_readonly,vfs_cap,vfs_offline,vfs_crossrename,vfs_catia,vfs_streams_xattr,vfs_xattr_tdb,
+       SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_fruit,vfs_shadow_copy2,vfs_recycle,vfs_fake_perms,vfs_readonly,vfs_cap,vfs_offline,vfs_crossrename,vfs_catia,vfs_streams_xattr,vfs_xattr_tdb,vfs_default_quota,
 ifeq ($(CONFIG_PACKAGE_kmod-fs-btrfs),y)
        SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_btrfs,
 endif
@@ -274,33 +266,17 @@ ifeq ($(CONFIG_PACKAGE_kmod-fs-xfs),y)
        SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_linux_xfs_sgid,
 endif
 endif
-ifeq ($(CONFIG_SAMBA4_SERVER_QUOTAS),y)
-       SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_default_quota,
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
-       SAMBA4_VFS_MODULES :=$(SAMBA4_VFS_MODULES)vfs_posixacl,
-       SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_acl_xattr,vfs_acl_tdb,
-       # vfs_zfsacl needs https://github.com/zfsonlinux/zfs/tree/master/include/sys/zfs_acl.h
-       # vfs_nfs4acl_xattr needs https://github.com/notriddle/libdrpc/blob/master/rpc/xdr.h
-endif
 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
        SAMBA4_PDB_MODULES :=$(SAMBA4_PDB_MODULES)pdb_samba_dsdb,pdb_ldapsam,
        SAMBA4_AUTH_MODULES :=$(SAMBA4_AUTH_MODULES)auth_samba4,
-       SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_audit,vfs_extd_audit,vfs_full_audit,
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
-       SAMBA4_IDMAP_MODULES :=$(SAMBA4_IDMAP_MODULES)idmap_tdb,idmap_passdb,idmap_nss,nss_info_template,
-       SAMBA4_IDMAP_MODULES_SHARED :=$(SAMBA4_IDMAP_MODULES_SHARED)idmap_autorid,idmap_rid,idmap_hash,idmap_tdb2,idmap_script,
-ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
-       SAMBA4_IDMAP_MODULES_SHARED :=$(SAMBA4_IDMAP_MODULES_SHARED)idmap_ad,idmap_ldap,idmap_rfc2307,
-       # idmap_ad needs --with-ads
-       # idmap_rfc2307 needs ldap headers
-endif
-       SAMBA4_AUTH_MODULES :=$(SAMBA4_AUTH_MODULES)auth_winbind,
+       SAMBA4_VFS_MODULES :=$(SAMBA4_VFS_MODULES)vfs_posixacl,
+       SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_audit,vfs_extd_audit,vfs_full_audit,vfs_acl_xattr,vfs_acl_tdb,
+       # vfs_zfsacl needs https://github.com/zfsonlinux/zfs/tree/master/include/sys/zfs_acl.h
+       # vfs_nfs4acl_xattr needs https://github.com/notriddle/libdrpc/blob/master/rpc/xdr.h
 endif
 
-SAMBA4_MODULES :=${SAMBA4_VFS_MODULES}${SAMBA4_AUTH_MODULES}${SAMBA4_PDB_MODULES}${SAMBA4_IDMAP_MODULES}
-SAMBA4_MODULES_SHARDED :=${SAMBA4_VFS_MODULES_SHARED}${SAMBA4_IDMAP_MODULES_SHARED}
+SAMBA4_MODULES :=${SAMBA4_VFS_MODULES}${SAMBA4_AUTH_MODULES}${SAMBA4_PDB_MODULES}
+SAMBA4_MODULES_SHARDED :=${SAMBA4_VFS_MODULES_SHARED}
 
 CONFIGURE_ARGS += \
                --with-static-modules=$(SAMBA4_MODULES)!DEFAULT,!FORCED \
@@ -310,53 +286,40 @@ HOST_CONFIGURE_ARGS += \
                --with-static-modules=!DEFAULT,!FORCED \
                --with-shared-modules=!DEFAULT,!FORCED
 
-# Setup build/install targets
-# CONFIG_PACKAGE_samba4-server
-BUILD_TARGETS_SERVER :=smbd/smbd,smbpasswd,pdbedit,testparm
-# Optional server targets
-ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
-       BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),sharesec
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_NETBIOS),y)
-       BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),nmbd
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
-       BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),samba,nsstest,ntlm_auth,samba4kinit,samba4kgetcred,samba4kpasswd,samba4ktutil
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
-       BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),winbindd,wbinfo,winbind_krb5_locator
-endif
-# CONFIG_PACKAGE_samba4-client
-BUILD_TARGETS_CLIENT :=client/smbclient,client/cifsdd
-# CONFIG_PACKAGE_samba4-admin
-BUILD_TARGETS_ADMIN :=net,smbcontrol,profiles,rpcclient,smbcacls,smbcquotas,eventlogadm
-# CONFIG_PACKAGE_samba4-utils
-BUILD_TARGETS_UTILS :=smbstatus,smbtree,smbget,mvxattr,nmblookup
-
 # lib bundling
+PY_VER:=$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR)
 # NOTE: bundle + make private, we want to avoid version configuration (build, link) conflicts
-CONFIGURE_ARGS += --builtin-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka
-HOST_CONFIGURE_ARGS += --builtin-libraries=replace --nonshared-binary=asn1_compile
-
+HOST_CONFIGURE_ARGS += --builtin-libraries=replace --nonshared-binary=asn1_compile,compile_et
+SYSTEM_BUNDLED_LIBS:=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace,com_err
+PYTHON_BUNDLED_LIBS:=pytalloc-util.cpython-$(PY_VER),pyldb-util.cpython-$(PY_VER)
+# CONFIGURE_ARGS += --builtin-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,com_err
 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
-CONFIGURE_ARGS += --bundled-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace,pytalloc-util,pyldb-util,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,NONE
+       CONFIGURE_ARGS += --bundled-libraries=NONE,$(SYSTEM_BUNDLED_LIBS),$(PYTHON_BUNDLED_LIBS)
 else
-CONFIGURE_ARGS += --bundled-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,NONE
+       CONFIGURE_ARGS += --bundled-libraries=NONE,$(SYSTEM_BUNDLED_LIBS)
 endif
-# BUG: --private-libraries, Does not work for System possible libs, will not get "samba4" suffix!
-CONFIGURE_ARGS += --private-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace
-# CONFIGURE_ARGS += --disable-symbol-versions
+CONFIGURE_ARGS += --private-libraries=$(SYSTEM_BUNDLED_LIBS)
 
+export COMPILE_ET=$(STAGING_DIR_HOSTPKG)/bin/compile_et_samba
+export ASN1_COMPILE=$(STAGING_DIR_HOSTPKG)/bin/asn1_compile_samba
+
+# we dont need GnuTLS for the host helpers
+define Host/Prepare
+       $(call Host/Prepare/Default)
+       $(SED) 's,mandatory=True,mandatory=False,g' $(HOST_BUILD_DIR)/wscript_configure_system_gnutls
+endef
 define Host/Compile
        (cd $(HOST_BUILD_DIR); \
                ./buildtools/bin/waf build \
-               --targets=asn1_compile \
+               --targets=asn1_compile,compile_et \
        )
 endef
 
 define Host/Install
        $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
-       $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/asn1_compile $(STAGING_DIR_HOSTPKG)/bin/
+       # add host tools suffix, prevent conflicts with krb5
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/asn1_compile $(STAGING_DIR_HOSTPKG)/bin/asn1_compile_samba
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/compile_et $(STAGING_DIR_HOSTPKG)/bin/compile_et_samba
 endef
 
 define Build/Prepare
@@ -371,21 +334,22 @@ endef
 
 define Build/Configure
        $(CP) ./waf-cross-answers/$(ARCH).txt $(PKG_BUILD_DIR)/cross-answers.txt
+       echo 'Checking uname sysname type: "$(VERSION_DIST)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
        echo 'Checking uname machine type: "$(ARCH)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
        echo 'Checking uname release type: "$(LINUX_VERSION)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
        echo 'Checking uname version type: "$(VERSION_DIST) Linux-$(LINUX_VERSION) $(shell date +%Y-%m-%d)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
-       # NOTE: For some unknown reason this answer is not needed on some hosts/distros, yet needed on others?
+       # NOTE: special answers for freeBSD/CircleCI
        echo 'Checking whether POSIX capabilities are available: OK' >> $(PKG_BUILD_DIR)/cross-answers.txt
+       echo 'checking for clnt_create(): OK' >> $(PKG_BUILD_DIR)/cross-answers.txt
        $(call Build/Configure/Default)
 endef
 
-# BUG: We need to use "waf install --targets=" otherwise a "make install" or "waf install" will retrigger a full recompile of all possible targets!
+# Build via "waf install", avoid the make wrapper. (Samba logic is 'waf install' = build + install)
 define Build/Compile
        (cd $(PKG_BUILD_DIR); \
                ./buildtools/bin/waf install \
                --jobs=$(shell nproc) \
                --destdir="$(PKG_INSTALL_DIR)" \
-               --targets=$(SAMBA4_MODULES)$(SAMBA4_MODULES_SHARDED)$(BUILD_TARGETS_SERVER),$(BUILD_TARGETS_UTILS),$(BUILD_TARGETS_ADMIN),$(BUILD_TARGETS_CLIENT) \
        )
 endef
 
@@ -396,39 +360,30 @@ endef
 define Package/samba4-libs/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/*.so* $(1)/usr/lib/
-       
-       $(INSTALL_DIR) $(1)/usr/lib/samba/vfs $(1)/usr/lib/samba/idmap $(1)/usr/lib/samba/ldb $(1)/usr/lib/samba/krb5
-       if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/idmap ]; then \
-               $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/idmap $(1)/usr/lib/samba/; \
-       fi
-       if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/vfs ]; then \
-               $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/vfs $(1)/usr/lib/samba/; \
-       fi
-       if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/krb5 ]; then \
-               $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/krb5 $(1)/usr/lib/samba/; \
-       fi
-ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
-       $(INSTALL_DIR) $(1)/usr/lib/python2.7
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/python2.7 $(1)/usr/lib/
-endif
+       # rpath-install
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba $(1)/usr/lib/
 endef
 
 define Package/samba4-client/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbclient,cifsdd} $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{cifsdd,smbclient,smbget} $(1)/usr/bin/
 endef
 
 define Package/samba4-admin/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{net,smbcontrol,profiles,rpcclient,smbcacls,smbcquotas} $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{net,smbcontrol,profiles,rpcclient,dbwrap_tool} $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{ldbadd,ldbdel,ldbedit,ldbmodify,ldbrename,ldbsearch} $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{tdbbackup,tdbdump,tdbrestore,tdbtool} $(1)/usr/bin/
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/eventlogadm $(1)/usr/sbin/
 endef
 
 define Package/samba4-utils/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbstatus,smbtree,smbget,mvxattr,nmblookup} $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbstatus,smbtree,mvxattr,smbtar} $(1)/usr/bin/
+ifeq ($(CONFIG_SAMBA4_SERVER_VFS),y)
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/smbcquotas $(1)/usr/bin/
+endif
 endef
 
 define Package/samba4-server/install
@@ -436,21 +391,21 @@ define Package/samba4-server/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbpasswd,pdbedit,testparm} $(1)/usr/bin/
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbd $(1)/usr/sbin/
-ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{samba-tool,ntlm_auth,smbtar} $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{samba,samba-gpupdate,samba_dnsupdate,samba_kcc,samba_spnupdate,samba_upgradedns} $(1)/usr/sbin/
-       # waf does not install those?
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/{samba4kinit,samba4kgetcred,samba4kpasswd,samba4ktutil} $(1)/usr/bin/
-endif
 ifeq ($(CONFIG_SAMBA4_SERVER_NETBIOS),y)
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/nmbd $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nmblookup $(1)/usr/bin/
 endif
-ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/wbinfo $(1)/usr/bin/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/winbindd $(1)/usr/sbin/
-endif
-ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sharesec $(1)/usr/bin/
+ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/$(PYTHON3) $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/share/
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/samba $(1)/usr/share/
+       # fix wrong hardcoded python3 location
+       $(SED) '1s,^#!/.*python3.*,#!/usr/bin/python3,' $(PKG_INSTALL_DIR)/usr/bin/samba-tool
+       $(SED) '1s,^#!/.*python3.*,#!/usr/bin/python3,' $(PKG_INSTALL_DIR)/usr/sbin/{samba-gpupdate,samba_dnsupdate,samba_kcc,samba_spnupdate,samba_upgradedns,samba_downgrade_db}
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{samba-tool,ntlm_auth,oLschema2ldif} $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{sharesec,smbcacls} $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{samba,samba-gpupdate,samba_dnsupdate,samba_kcc,samba_spnupdate,samba_upgradedns,samba_downgrade_db} $(1)/usr/sbin/
 endif
        $(INSTALL_DIR) $(1)/etc/config $(1)/etc/samba $(1)/etc/init.d
        $(INSTALL_CONF) ./files/samba.config $(1)/etc/config/samba4
@@ -465,7 +420,6 @@ define Package/samba4-server/conffiles
 /etc/samba/smbpasswd
 /etc/samba/secrets.tdb
 /etc/samba/passdb.tdb
-/etc/samba/idmap.ldb
 /etc/samba/lmhosts
 /etc/nsswitch.conf
 /etc/krb5.conf
index 5b81db2c4be72fda2f5cc08caedfc1f33384af4b..589b450ae4cb792c160f7f0137c680f70b86e691 100644 (file)
@@ -3,8 +3,10 @@
 START=98
 USE_PROCD=1
 
+SAMBA_IFACE=""
+
 smb_header() {
-       config_get samba_iface $1 interface "loopback lan"
+       config_get SAMBA_IFACE $1 interface "lan"
 
        # resolve interfaces
        local interfaces
@@ -12,7 +14,7 @@ smb_header() {
                . /lib/functions/network.sh
 
                local net
-               for net in $samba_iface; do
+               for net in $SAMBA_IFACE; do
                        local device
                        network_is_up $net || continue
                        network_get_device device "$net"
@@ -59,8 +61,8 @@ smb_header() {
 
        [ -e /etc/samba/smb.conf ] || ln -nsf /var/etc/smb.conf /etc/samba/smb.conf
 
-       if ! [ -L /etc/samba/smb.conf ]; then
-               logger -t 'samba4-server' "Local custom /etc/samba/smb.conf file detected, all luci/config settings are ignored!"
+       if [ ! -L /etc/samba/smb.conf ]; then
+               logger -p daemon.warn -t 'samba4-server' "Local custom /etc/samba/smb.conf file detected, all luci/config settings are ignored!"
        fi
 
 }
@@ -158,56 +160,63 @@ init_config() {
 }
 
 service_triggers() {
-       PROCD_RELOAD_DELAY=2000
+       # PROCD_RELOAD_DELAY=1000
 
        procd_add_reload_trigger "dhcp" "system" "samba4"
 
        local i
-       for i in $samba_iface; do
+       for i in $SAMBA_IFACE; do
                procd_add_reload_interface_trigger $i
        done
 }
 
 start_service() {
        init_config
+       
+       if [ ! -e /etc/samba/smb.conf ]; then
+               logger -p daemon.error -t 'samba4-server' "missing config /etc/samba/smb.conf!"
+               exit 1
+       fi
+
+       local nice_value
+       config_get nice_value extra samba_nice 0
 
        # start main AD-DC daemon, will spawn (smbd,nmbd,winbindd) as needed/configured.
        if [ "$DISABLE_AD_DC" -ne 1 ] && [ -x /usr/sbin/samba ]; then
                procd_open_instance
                procd_set_param command /usr/sbin/samba -F
+               procd_set_param nice $nice_value
                procd_set_param respawn
-               procd_set_param file /var/etc/smb.conf
+               procd_set_param file /etc/samba/smb.conf
+               procd_set_param limits nofile=16384
                procd_close_instance
        else
                # start fileserver daemon
                procd_open_instance
                procd_set_param command /usr/sbin/smbd -F
+               procd_set_param nice $nice_value
                procd_set_param respawn
-               procd_set_param file /var/etc/smb.conf
+               procd_set_param file /etc/samba/smb.conf
+               procd_set_param limits nofile=16384
                procd_close_instance
 
                # start netbios daemon
                if [ "$DISABLE_NETBIOS" -ne 1 ] && [ -x /usr/sbin/nmbd ]; then
                        procd_open_instance
                        procd_set_param command /usr/sbin/nmbd -F
+                       procd_set_param nice $nice_value
                        procd_set_param respawn
-                       procd_set_param file /var/etc/smb.conf
+                       procd_set_param file /etc/samba/smb.conf
                        procd_close_instance
                fi
                # start winbind daemon
                if [ "$DISABLE_WINBIND" -ne 1 ] && [ -x /usr/sbin/winbindd ]; then
                        procd_open_instance
                        procd_set_param command /usr/sbin/winbindd -F
+                       procd_set_param nice $nice_value
                        procd_set_param respawn
-                       procd_set_param file /var/etc/smb.conf
+                       procd_set_param file /etc/samba/smb.conf
                        procd_close_instance
                fi
        fi
-       # lower priority using renice (if found)
-       if [ -x /usr/bin/renice ]; then
-               [ -x /usr/sbin/samba ] && renice -n 2 $(pidof samba)
-               [ -x /usr/sbin/smbd ] && renice -n 2 $(pidof smbd)
-               [ -x /usr/sbin/nmbd ] && renice -n 2 $(pidof nmbd)
-               [ -x /usr/sbin/winbindd ] && renice -n 2 $(pidof winbindd)
-       fi
 }
diff --git a/net/samba4/patches/003-getpwent_r.patch b/net/samba4/patches/003-getpwent_r.patch
new file mode 100644 (file)
index 0000000..99ebeda
--- /dev/null
@@ -0,0 +1,80 @@
+diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c
+index 2cd6122..04f13c6 100644
+--- a/source4/torture/local/nss_tests.c
++++ b/source4/torture/local/nss_tests.c
+@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct torture_context *tctx,
+       return true;
+ }
+-
+ static bool test_getgrgid(struct torture_context *tctx,
+                         gid_t gid,
+                         struct group *grp_p)
+@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct torture_context *tctx,
+       return true;
+ }
++#if HAVE_GETPWENT_R
+ static bool test_enum_r_passwd(struct torture_context *tctx,
+                              struct passwd **pwd_array_p,
+                              size_t *num_pwd_p)
+@@ -381,6 +381,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
+       return true;
+ }
++#endif
+ static bool torture_assert_passwd_equal(struct torture_context *tctx,
+                                       const struct passwd *p1,
+@@ -432,7 +433,7 @@ static bool test_passwd_r(struct torture_context *tctx)
+       struct passwd *pwd, pwd1, pwd2;
+       size_t num_pwd;
+-      torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd),
++      torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd),
+                                               "failed to enumerate passwd");
+       for (i=0; i < num_pwd; i++) {
+@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx)
+       struct passwd *pwd, pwd1, pwd2, pwd3, pwd4;
+       size_t num_pwd;
+-      torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd),
++      torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd),
+                                               "failed to enumerate passwd");
+       for (i=0; i < num_pwd; i++) {
+@@ -531,6 +532,7 @@ static bool test_enum_group(struct torture_context *tctx,
+       return true;
+ }
++#if HAVE_GETGRENT_R
+ static bool test_enum_r_group(struct torture_context *tctx,
+                             struct group **grp_array_p,
+                             size_t *num_grp_p)
+@@ -579,6 +581,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
+       return true;
+ }
++#endif
+ static bool torture_assert_group_equal(struct torture_context *tctx,
+                                      const struct group *g1,
+@@ -635,7 +638,7 @@ static bool test_group_r(struct torture_context *tctx)
+       struct group *grp, grp1, grp2;
+       size_t num_grp;
+-      torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp),
++      torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp),
+                                              "failed to enumerate group");
+       for (i=0; i < num_grp; i++) {
+@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct torture_context *tctx)
+       struct group *grp, grp1, grp2, grp3, grp4;
+       size_t num_grp;
+-      torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp),
++      torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp),
+                                              "failed to enumerate group");
+       for (i=0; i < num_grp; i++) {
diff --git a/net/samba4/patches/004-missing-headers.patch b/net/samba4/patches/004-missing-headers.patch
new file mode 100644 (file)
index 0000000..58c26ae
--- /dev/null
@@ -0,0 +1,38 @@
+diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
+index b5d79b9..3f4eae0 100644
+--- a/lib/param/loadparm.h
++++ b/lib/param/loadparm.h
+@@ -31,6 +31,7 @@
+ #define _LOADPARM_H
+ #include <talloc.h>
++#include <time.h>
+ struct parmlist_entry {
+       struct parmlist_entry *prev, *next;
+diff --git a/source3/lib/system_smbd.c b/source3/lib/system_smbd.c
+index 3b1ac9c..4044d75 100644
+--- a/source3/lib/system_smbd.c
++++ b/source3/lib/system_smbd.c
+@@ -27,6 +27,8 @@
+ #include "system/passwd.h"
+ #include "nsswitch/winbind_client.h"
+ #include "../lib/util/setid.h"
++#include <grp.h>
++#include <uuid/uuid.h>
+ #ifndef HAVE_GETGROUPLIST
+diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c
+index 2cd6122..0c84ec2 100644
+--- a/source4/torture/local/nss_tests.c
++++ b/source4/torture/local/nss_tests.c
+@@ -20,6 +20,8 @@
+ */
+ #include "includes.h"
++#include <grp.h>
++#include <uuid/uuid.h>
+ #include "torture/torture.h"
+ #include "torture/local/proto.h"
diff --git a/net/samba4/patches/005-musl_uintptr.patch b/net/samba4/patches/005-musl_uintptr.patch
new file mode 100644 (file)
index 0000000..c5f36be
--- /dev/null
@@ -0,0 +1,35 @@
+commit f81e5b71ce78f33250347914dacc75c8463bf102
+Author: Breno Leitao <breno.leitao@gmail.com>
+Date:   Wed Mar 29 15:22:38 2017 -0300
+
+    include: Check for previous declaration of uintptr_t
+    
+    Adding a extra check before declaring uintptr_t. Currently musl uses
+    macro __DEFINED_uintptr_t once it defines uintptr_t type. Checking
+    this macro before defining it, and, defining it when uintptr_t is
+    defined.
+    
+    Signed-off-by: Breno Leitao <breno.leitao@gmail.com>
+
+diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h
+index 303d0ae..a2bfc40 100644
+--- a/third_party/cmocka/cmocka.h
++++ b/third_party/cmocka/cmocka.h
+@@ -110,7 +110,7 @@
+     ((LargestIntegralType)(value))
+ /* Smallest integral type capable of holding a pointer. */
+-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
++#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(__DEFINED_uintptr_t)
+ # if defined(_WIN32)
+     /* WIN32 is an ILP32 platform */
+     typedef unsigned int uintptr_t;
+@@ -136,6 +136,8 @@
+ # define _UINTPTR_T
+ # define _UINTPTR_T_DEFINED
++# define __DEFINED_uintptr_t
++
+ #endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
+ /* Perform an unsigned cast to uintptr_t. */
diff --git a/net/samba4/patches/006-netdb-defines.patch b/net/samba4/patches/006-netdb-defines.patch
new file mode 100644 (file)
index 0000000..d7d6446
--- /dev/null
@@ -0,0 +1,19 @@
+diff --git a/nsswitch/wins.c b/nsswitch/wins.c
+index dccb6dd..bb24acb 100644
+--- a/nsswitch/wins.c
++++ b/nsswitch/wins.c
+@@ -39,6 +39,14 @@ static pthread_mutex_t wins_nss_mutex = PTHREAD_MUTEX_INITIALIZER;
+ #define INADDRSZ 4
+ #endif
++#ifndef NETDB_INTERNAL
++#define NETDB_INTERNAL -1
++#endif
++
++#ifndef NETDB_SUCCESS
++#define NETDB_SUCCESS 0
++#endif
++
+ NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname,
+                                    struct hostent *he,
+                                    char *buffer,
diff --git a/net/samba4/patches/007-libldb-fix-musl-libc-unkown-type-error.patch b/net/samba4/patches/007-libldb-fix-musl-libc-unkown-type-error.patch
new file mode 100644 (file)
index 0000000..c0e7e89
--- /dev/null
@@ -0,0 +1,31 @@
+From d90534469c5c43bf2a97e5698a5ddb4b7471f92a Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 10:53:16 +0800
+Subject: [PATCH] libldb: fix musl libc unkoown type error
+
+tevent.h:1440:8: error: unknown type name 'pid_t'; did you mean 'div_t'?
+        pid_t *pid,
+         ^~~~~
+         div_t
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ lib/tevent/tevent.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h
+index aa6fe0d..2572696 100644
+--- a/lib/tevent/tevent.h
++++ b/lib/tevent/tevent.h
+@@ -32,6 +32,8 @@
+ #include <talloc.h>
+ #include <sys/time.h>
+ #include <stdbool.h>
++#include <sys/stat.h>
++#include <sys/types.h>
+ struct tevent_context;
+ struct tevent_ops;
+-- 
+2.7.4
+
diff --git a/net/samba4/patches/008-samba-4.11-add_missing___compar_fn_t.patch b/net/samba4/patches/008-samba-4.11-add_missing___compar_fn_t.patch
new file mode 100644 (file)
index 0000000..96b65e6
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/source4/dsdb/samdb/ldb_modules/count_attrs.c
++++ b/source4/dsdb/samdb/ldb_modules/count_attrs.c
+@@ -38,6 +38,11 @@
+ #define NULL_REQ_PSEUDO_N -2LL;
+ #define STAR_REQ_PSEUDO_N -4LL;
++#ifndef __COMPAR_FN_T
++#define __COMPAR_FN_T
++typedef int (*__compar_fn_t)(const void *, const void *);
++#endif
++
+ struct count_attrs_private {
+       struct tdb_wrap *requested;
+       struct tdb_wrap *duplicates;
diff --git a/net/samba4/patches/009-samba-4.11-qsort-compar.patch b/net/samba4/patches/009-samba-4.11-qsort-compar.patch
new file mode 100644 (file)
index 0000000..3b2e11a
--- /dev/null
@@ -0,0 +1,22 @@
+diff --git a/source4/dsdb/samdb/ldb_modules/count_attrs.c b/source4/dsdb/samdb/ldb_modules/count_attrs.c
+index b0d1b22..29f1b94 100644
+--- a/source4/dsdb/samdb/ldb_modules/count_attrs.c
++++ b/source4/dsdb/samdb/ldb_modules/count_attrs.c
+@@ -222,7 +222,7 @@ static const char **get_sorted_attrs(TALLOC_CTX *mem_ctx,
+               attrs[i] = a;
+       }
+-      qsort(attrs, n_attrs, sizeof(char *), (__compar_fn_t)strcasecmp_ptr);
++      qsort(attrs, n_attrs, sizeof(char *), (int (*)(const void *, const void *))strcasecmp_ptr);
+       return attrs;
+ }
+@@ -313,7 +313,7 @@ static int count_attrs_search_callback(struct ldb_request *req,
+                       }
+                       qsort(found_attrs, msg->num_elements, sizeof(char *),
+-                            (__compar_fn_t)strcasecmp_ptr);
++                            (int (*)(const void *, const void *))strcasecmp_ptr);
+                       /* find and report duplicates */
diff --git a/net/samba4/patches/010-samba-4-11-fix-host-tools-checks.patch.patch b/net/samba4/patches/010-samba-4-11-fix-host-tools-checks.patch.patch
new file mode 100644 (file)
index 0000000..88c560d
--- /dev/null
@@ -0,0 +1,40 @@
+--- a/wscript_configure_embedded_heimdal       2019-12-17
++++ b/wscript_configure_embedded_heimdal       2019-12-17
+@@ -1 +1,12 @@
+ conf.RECURSE('source4/heimdal_build')
++
++def check_system_heimdal_binary(name):
++    if conf.LIB_MAY_BE_BUNDLED(name):
++        return False
++    if not conf.find_program(name, var=name.upper()):
++        return False
++    conf.define('USING_SYSTEM_%s' % name.upper(), 1)
++    return True
++
++check_system_heimdal_binary("compile_et")
++check_system_heimdal_binary("asn1_compile")
+--- a/wscript_configure_system_heimdal 2019-12-17
++++ b/wscript_configure_system_heimdal 2019-12-17
+@@ -37,14 +37,6 @@ def check_system_heimdal_lib(name, funct
+     conf.define('USING_SYSTEM_%s' % name.upper(), 1)
+     return True
+-def check_system_heimdal_binary(name):
+-    if conf.LIB_MAY_BE_BUNDLED(name):
+-        return False
+-    if not conf.find_program(name, var=name.upper()):
+-        return False
+-    conf.define('USING_SYSTEM_%s' % name.upper(), 1)
+-    return True
+-
+ check_system_heimdal_lib("com_err", "com_right_r com_err", "com_err.h")
+ if check_system_heimdal_lib("roken", "rk_socket_set_reuseaddr", "roken.h"):
+@@ -96,7 +88,4 @@ finally:
+ #if conf.CHECK_BUNDLED_SYSTEM('tommath', checkfunctions='mp_init', headers='tommath.h'):
+ #    conf.define('USING_SYSTEM_TOMMATH', 1)
+-check_system_heimdal_binary("compile_et")
+-check_system_heimdal_binary("asn1_compile")
+-
+ conf.define('USING_SYSTEM_KRB5', 1)
diff --git a/net/samba4/patches/010-source3-msgsock-nvram-fix.patch b/net/samba4/patches/010-source3-msgsock-nvram-fix.patch
deleted file mode 100644 (file)
index 4c93a5a..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/source3/lib/messages.c
-+++ b/source3/lib/messages.c
-@@ -518,7 +518,7 @@ static NTSTATUS messaging_init_internal(
-               return NT_STATUS_ACCESS_DENIED;
-       }
--      priv_path = private_path("msg.sock");
-+      priv_path = lock_path("msg.sock");
-       if (priv_path == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-@@ -662,7 +662,7 @@ NTSTATUS messaging_reinit(struct messagi
-       msg_ctx->msg_dgm_ref = messaging_dgm_ref(
-               msg_ctx, msg_ctx->event_ctx, &msg_ctx->id.unique_id,
--              private_path("msg.sock"), lck_path,
-+              lock_path("msg.sock"), lck_path,
-               messaging_recv_cb, msg_ctx, &ret);
-       if (msg_ctx->msg_dgm_ref == NULL) {
diff --git a/net/samba4/patches/011-source4-msgsock-nvram-fix.patch b/net/samba4/patches/011-source4-msgsock-nvram-fix.patch
deleted file mode 100644 (file)
index 5271740..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/source4/lib/messaging/messaging.c
-+++ b/source4/lib/messaging/messaging.c
-@@ -350,7 +350,7 @@ static struct imessaging_context *imessa
-               goto fail;
-       }
--      msg->sock_dir = lpcfg_private_path(msg, lp_ctx, "msg.sock");
-+      msg->sock_dir = lpcfg_lock_path(msg, lp_ctx, "msg.sock");
-       if (msg->sock_dir == NULL) {
-               goto fail;
-       }
diff --git a/net/samba4/patches/020-source3-msgsock-nvram-fix.patch b/net/samba4/patches/020-source3-msgsock-nvram-fix.patch
new file mode 100644 (file)
index 0000000..682adec
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/source3/lib/messages.c
++++ b/source3/lib/messages.c
+@@ -518,7 +518,7 @@ static NTSTATUS messaging_init_internal(
+               return NT_STATUS_ACCESS_DENIED;
+       }
+-      priv_path = private_path("msg.sock");
++      priv_path = lock_path(talloc_tos(), "msg.sock");
+       if (priv_path == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+@@ -662,7 +662,7 @@ NTSTATUS messaging_reinit(struct messagi
+       msg_ctx->msg_dgm_ref = messaging_dgm_ref(
+               msg_ctx, msg_ctx->event_ctx, &msg_ctx->id.unique_id,
+-              private_path("msg.sock"), lck_path,
++              lock_path(talloc_tos(), "msg.sock"), lck_path,
+               messaging_recv_cb, msg_ctx, &ret);
+       if (msg_ctx->msg_dgm_ref == NULL) {
diff --git a/net/samba4/patches/021-source4-msgsock-nvram-fix.patch b/net/samba4/patches/021-source4-msgsock-nvram-fix.patch
new file mode 100644 (file)
index 0000000..5271740
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/source4/lib/messaging/messaging.c
++++ b/source4/lib/messaging/messaging.c
+@@ -350,7 +350,7 @@ static struct imessaging_context *imessa
+               goto fail;
+       }
+-      msg->sock_dir = lpcfg_private_path(msg, lp_ctx, "msg.sock");
++      msg->sock_dir = lpcfg_lock_path(msg, lp_ctx, "msg.sock");
+       if (msg->sock_dir == NULL) {
+               goto fail;
+       }
diff --git a/net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch b/net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch
new file mode 100644 (file)
index 0000000..1e2e11f
--- /dev/null
@@ -0,0 +1,59 @@
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -340,22 +340,13 @@ def configure(conf):
+     conf.CHECK_FUNCS('prctl dirname basename')
+-    strlcpy_in_bsd = False
++    # Not checking for libbsd
++    conf.CHECK_FUNCS('strlcpy strlcat')
++    conf.CHECK_FUNCS('getpeereid')
++    conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h')
++    conf.CHECK_FUNCS('setproctitle_init')
+-    # libbsd on some platforms provides strlcpy and strlcat
+-    if not conf.CHECK_FUNCS('strlcpy strlcat'):
+-        if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
+-                               checklibc=True):
+-            strlcpy_in_bsd = True
+-    if not conf.CHECK_FUNCS('getpeereid'):
+-        conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
+-    if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
+-        conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
+-    if not conf.CHECK_FUNCS('setproctitle_init'):
+-        conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
+-
+-    if not conf.CHECK_FUNCS('closefrom'):
+-        conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
++    conf.CHECK_FUNCS('closefrom')
+     conf.CHECK_CODE('''
+                 struct ucred cred;
+@@ -698,9 +689,6 @@ def configure(conf):
+     # look for a method of finding the list of network interfaces
+     for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
+-        bsd_for_strlcpy = ''
+-        if strlcpy_in_bsd:
+-            bsd_for_strlcpy = ' bsd'
+         if conf.CHECK_CODE('''
+                            #define %s 1
+                            #define NO_CONFIG_H 1
+@@ -713,7 +701,7 @@ def configure(conf):
+                            #include "test/getifaddrs.c"
+                            ''' % method,
+                            method,
+-                           lib='nsl socket' + bsd_for_strlcpy,
++                           lib='nsl socket',
+                            addmain=False,
+                            execute=True):
+             break
+@@ -761,7 +749,6 @@ def build(bld):
+                 break
+     extra_libs = ''
+-    if bld.CONFIG_SET('HAVE_LIBBSD'): extra_libs += ' bsd'
+     if bld.CONFIG_SET('HAVE_LIBRT'): extra_libs += ' rt'
+
+     bld.SAMBA_SUBSYSTEM('LIBREPLACE_HOSTCC',
+         REPLACE_HOSTCC_SOURCE,
diff --git a/net/samba4/patches/102-samba-4.8.5-unbundle-libbsd.patch b/net/samba4/patches/102-samba-4.8.5-unbundle-libbsd.patch
deleted file mode 100644 (file)
index c8eae59..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
---- a/lib/crypto/wscript_configure
-+++ b/lib/crypto/wscript_configure
-@@ -2,11 +2,11 @@
- import Options
- import Utils
--if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h',
--    checklibc=True):
--    conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h',
--                        checklibc=True)
--    conf.CHECK_FUNCS_IN('MD5Init', 'md', headers='sys/md5.h',
-+# if not conf.CHECK_FUNCS_IN('MD5Init', 'bsd', headers='bsd/md5.h',
-+    # checklibc=True):
-+conf.CHECK_FUNCS_IN('MD5Init', 'md5', headers='sys/md5.h',
-+                                      checklibc=True)
-+conf.CHECK_FUNCS_IN('MD5Init', 'md', headers='sys/md5.h',
-                         checklibc=True)
- conf.CHECK_FUNCS_IN('CC_MD5_Init', '', headers='CommonCrypto/CommonDigest.h',
-     checklibc=True)
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -340,22 +340,13 @@ def configure(conf):
-     conf.CHECK_FUNCS('prctl dirname basename')
--    strlcpy_in_bsd = False
-+    # Not checking for libbsd
-+    conf.CHECK_FUNCS('strlcpy strlcat')
-+    conf.CHECK_FUNCS('getpeereid')
-+    conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h')
-+    conf.CHECK_FUNCS('setproctitle_init')
--    # libbsd on some platforms provides strlcpy and strlcat
--    if not conf.CHECK_FUNCS('strlcpy strlcat'):
--        if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
--                               checklibc=True):
--            strlcpy_in_bsd = True
--    if not conf.CHECK_FUNCS('getpeereid'):
--        conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h bsd/unistd.h')
--    if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', headers='setproctitle.h'):
--        conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h bsd/unistd.h')
--    if not conf.CHECK_FUNCS('setproctitle_init'):
--        conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h bsd/unistd.h')
--
--    if not conf.CHECK_FUNCS('closefrom'):
--        conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-+    conf.CHECK_FUNCS('closefrom')
-     conf.CHECK_CODE('''
-                 struct ucred cred;
-@@ -698,9 +689,6 @@ def configure(conf):
-     # look for a method of finding the list of network interfaces
-     for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
--        bsd_for_strlcpy = ''
--        if strlcpy_in_bsd:
--            bsd_for_strlcpy = ' bsd'
-         if conf.CHECK_CODE('''
-                            #define %s 1
-                            #define NO_CONFIG_H 1
-@@ -713,7 +701,7 @@ def configure(conf):
-                            #include "test/getifaddrs.c"
-                            ''' % method,
-                            method,
--                           lib='nsl socket' + bsd_for_strlcpy,
-+                           lib='nsl socket',
-                            addmain=False,
-                            execute=True):
-             break
-@@ -761,7 +749,6 @@ def build(bld):
-                 break
-     extra_libs = ''
--    if bld.CONFIG_SET('HAVE_LIBBSD'): extra_libs += ' bsd'
-     bld.SAMBA_SUBSYSTEM('LIBREPLACE_HOSTCC',
-         REPLACE_HOSTCC_SOURCE,
index 9aae22c36a96309415fff371504853120d6058c1..e57659bf06365ebd89a6ee3ec717f53dab2c4449 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: OK
index 57f38119ff865fc858d5e1dace394b84e06ee0fe..37abf15edf081ba3c75ae2e2d83b9170a4cb5ce6 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: NO
index 79ba994be2b01d4745466d69fe692a4b02c3a6c6..5a7c2ea941ec1ef207c11678f262c0fc7632930c 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials with 32-bit system calls: "OK"
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: NO
index 79ba994be2b01d4745466d69fe692a4b02c3a6c6..5a7c2ea941ec1ef207c11678f262c0fc7632930c 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials with 32-bit system calls: "OK"
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: NO
index 79ba994be2b01d4745466d69fe692a4b02c3a6c6..5a7c2ea941ec1ef207c11678f262c0fc7632930c 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials with 32-bit system calls: "OK"
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: NO
index 9c1a2c67ef489c92d82613a0a873ee0ab46ec054..2919ea2c2c984ab36e3bc3698aef5ed5173be3f7 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: NO
index a270f0860c06999f54abd481fc8fe25d0235ac07..9bb9b5fd502d85acaa6c65a22867f8a750c1e6bb 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: OK
index a270f0860c06999f54abd481fc8fe25d0235ac07..9bb9b5fd502d85acaa6c65a22867f8a750c1e6bb 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: OK
index 9c1a2c67ef489c92d82613a0a873ee0ab46ec054..2919ea2c2c984ab36e3bc3698aef5ed5173be3f7 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: NO
index 4912acbde984869ae01095b9292e62a0329fff86..c98557b2ba97da247b31e69e1e0cce37bd9e7d6c 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: NO
index 9aae22c36a96309415fff371504853120d6058c1..e57659bf06365ebd89a6ee3ec717f53dab2c4449 100644 (file)
@@ -25,7 +25,7 @@ Checking for kernel share modes: OK
 Checking if can we convert from CP850 to UCS-2LE: OK
 Checking if can we convert from UTF-8 to UCS-2LE: OK
 vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
-Checking whether we can use Linux thread-specific credentials: "OK"
+Checking whether we can use Linux thread-specific credentials: OK
 Checking whether fcntl locking is available: OK
 Checking whether fcntl lock supports open file description locks: NO
 Checking for the maximum value of the 'time_t' type: OK