diff --git a/libs/libtasn1/Makefile b/libs/libtasn1/Makefile index 73afadca9..225126056 100644 --- a/libs/libtasn1/Makefile +++ b/libs/libtasn1/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libtasn1 PKG_VERSION:=4.15.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/$(PKG_NAME) @@ -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,8 @@ CONFIGURE_ARGS += \ --disable-valgrind-tests define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/bin + # $(INSTALL_DIR) $(1)/usr/bin + # $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(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 +64,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 index 000000000..ce1cd39bb --- /dev/null +++ b/libs/rpcsvc-proto/Makefile @@ -0,0 +1,56 @@ +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 +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)/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 +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/ + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rpcgen $(1)/usr/bin/ +endef + +# do we need rpcgen on target? +define Package/rpcsvc-proto/install + # $(INSTALL_DIR) $(1)/usr/bin + # $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rpcgen $(1)/usr/bin/ +endef + +$(eval $(call HostBuild)) +$(eval $(call BuildPackage,rpcsvc-proto)) diff --git a/net/samba4/Config.in b/net/samba4/Config.in index 17a6cf2b7..988c05f20 100644 --- a/net/samba4/Config.in +++ b/net/samba4/Config.in @@ -23,7 +23,7 @@ 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 @@ -38,22 +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_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_QUOTAS - bool "Disk quota support" +config SAMBA4_SERVER_AD_DC + bool "Active Directory Domain Controller support (EXPERIMENTAL)" depends on PACKAGE_samba4-server + select SAMBA4_SERVER_VFS help - installs: - modules: vfs_default_quota + installs: samba (meta-daemon) PyCryptodome ntlm_auth + scripts: samba-tool - Support for disk quotas using the quotas VFS module (vfs_default_quota) + 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 diff --git a/net/samba4/Makefile b/net/samba4/Makefile index 738522398..f846be313 100644 --- a/net/samba4/Makefile +++ b/net/samba4/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=samba -PKG_VERSION:=4.9.16 +PKG_VERSION:=4.11.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz @@ -12,24 +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:=613987fac719ed90f3daad6ca12517329f0754dd51c573f6b3623e6b03cb3916 +PKG_HASH:=b95471ba450757109dce65acfe75dafc719c5cc5d464fc65ee442433a461db24 PKG_MAINTAINER:=Andy Walsh PKG_LICENSE:=GPL-3.0-only PKG_LICENSE_FILES:=COPYING PKG_CPE_ID:=cpe:/a:samba:samba -# samba4=(asn1_compile,compile_et) nfs-kernel-server=(rpcgen) -HOST_BUILD_DEPENDS:=python/host nfs-kernel-server/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_PACKAGE_kmod-fs-btrfs \ CONFIG_PACKAGE_kmod-fs-xfs @@ -37,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 @@ -56,21 +58,23 @@ endef define Package/samba4-libs $(call Package/samba4/Default) TITLE+= libs - DEPENDS:= +zlib +libtirpc +libpopt +libreadline +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 \ +SAMBA4_SERVER_VFS:attr \ - +SAMBA4_SERVER_ACL:acl +SAMBA4_SERVER_ACL:attr \ - +SAMBA4_SERVER_AVAHI:libavahi-client + +SAMBA4_SERVER_VFSX:libaio \ + +SAMBA4_SERVER_AVAHI:libavahi-client \ + +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/ @@ -88,7 +92,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 @@ -100,7 +104,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 @@ -112,13 +118,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" @@ -160,9 +168,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 \ @@ -202,8 +207,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 @@ -220,34 +225,36 @@ CONFIGURE_ARGS += \ --with-piddir=/var/run \ --with-privatedir=/etc/samba +# features +ifeq ($(CONFIG_SAMBA4_SERVER_VFS),y) + CONFIGURE_ARGS += --with-quotas +else + CONFIGURE_ARGS += --without-quotas +endif ifeq ($(CONFIG_SAMBA4_SERVER_AVAHI),y) CONFIGURE_ARGS += --enable-avahi else CONFIGURE_ARGS += --disable-avahi endif -ifeq ($(CONFIG_SAMBA4_SERVER_QUOTAS),y) - CONFIGURE_ARGS += --with-quotas -else - CONFIGURE_ARGS += --without-quotas -endif -ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y) - CONFIGURE_ARGS += --with-acl-support + +# 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 += --without-winbind --without-ldb-lmdb --with-acl-support + CONFIGURE_VARS += \ + PYTHON="$(HOST_PYTHON3_BIN)" \ + PYTHON_CONFIG="$(STAGING_DIR)/host/bin/$(PYTHON3)-config" else - CONFIGURE_ARGS += --without-acl-support + 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 -# features -CONFIGURE_ARGS += --without-ad-dc --without-json-audit --without-libarchive --disable-python --nopyc --nopyo \ - --disable-gnutls --without-dnsupdate --without-ads --without-ldap -CONFIGURE_VARS += \ - python_LDFLAGS="" \ - python_LIBDIR="" 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 @@ -258,12 +265,11 @@ 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) +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 :=$(SAMBA4_VFS_MODULES)vfs_posixacl, - SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_acl_xattr,vfs_acl_tdb, + 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 @@ -279,33 +285,28 @@ 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 -# 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,com_err HOST_CONFIGURE_ARGS += --builtin-libraries=replace --nonshared-binary=asn1_compile,compile_et -#CONFIGURE_ARGS += --bundled-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace,!asn1_compile,!compile_et,!popt -CONFIGURE_ARGS += --bundled-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace,com_err,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,NONE -# 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,com_err -# CONFIGURE_ARGS += --disable-symbol-versions +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=NONE,$(SYSTEM_BUNDLED_LIBS),$(PYTHON_BUNDLED_LIBS) +else + CONFIGURE_ARGS += --bundled-libraries=NONE,$(SYSTEM_BUNDLED_LIBS) +endif +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 \ @@ -322,29 +323,32 @@ endef define Build/Prepare $(Build/Prepare/Default) +ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),) # un-bundle dnspython $(SED) '/"dns.resolver":/d' $(PKG_BUILD_DIR)/third_party/wscript # unbundle iso8601 $(SED) '/"iso8601":/d' $(PKG_BUILD_DIR)/third_party/wscript +endif 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 -# Note: We need to build via "waf install --targets=". Why do we also need to add the modules as targets here? +# 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 @@ -355,32 +359,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/ldb $(1)/usr/lib/samba/krb5 - 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 + # 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 @@ -390,9 +392,19 @@ define Package/samba4-server/install $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbd $(1)/usr/sbin/ 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_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 @@ -407,6 +419,9 @@ define Package/samba4-server/conffiles /etc/samba/smbpasswd /etc/samba/secrets.tdb /etc/samba/passdb.tdb +/etc/samba/lmhosts +/etc/nsswitch.conf +/etc/krb5.conf endef $(eval $(call HostBuild)) diff --git a/net/samba4/files/samba.init b/net/samba4/files/samba.init index 5b81db2c4..589b450ae 100644 --- a/net/samba4/files/samba.init +++ b/net/samba4/files/samba.init @@ -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 index 000000000..99ebedacf --- /dev/null +++ b/net/samba4/patches/003-getpwent_r.patch @@ -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 index 000000000..58c26aece --- /dev/null +++ b/net/samba4/patches/004-missing-headers.patch @@ -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 ++#include + + 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 ++#include + + #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 ++#include + + #include "torture/torture.h" + #include "torture/local/proto.h" diff --git a/net/samba4/patches/003-musl_uintptr.patch b/net/samba4/patches/005-musl_uintptr.patch similarity index 100% rename from net/samba4/patches/003-musl_uintptr.patch rename to net/samba4/patches/005-musl_uintptr.patch diff --git a/net/samba4/patches/006-netdb-defines.patch b/net/samba4/patches/006-netdb-defines.patch new file mode 100644 index 000000000..d7d6446ab --- /dev/null +++ b/net/samba4/patches/006-netdb-defines.patch @@ -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/004-libldb-fix-musl-libc-unkown-type-error.patch b/net/samba4/patches/007-libldb-fix-musl-libc-unkown-type-error.patch similarity index 100% rename from net/samba4/patches/004-libldb-fix-musl-libc-unkown-type-error.patch rename to net/samba4/patches/007-libldb-fix-musl-libc-unkown-type-error.patch 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 index 000000000..96b65e6c5 --- /dev/null +++ b/net/samba4/patches/008-samba-4.11-add_missing___compar_fn_t.patch @@ -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 index 000000000..3b2e11a15 --- /dev/null +++ b/net/samba4/patches/009-samba-4.11-qsort-compar.patch @@ -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 index 000000000..88c560d1a --- /dev/null +++ b/net/samba4/patches/010-samba-4-11-fix-host-tools-checks.patch.patch @@ -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/012-add_host_tools_suffix.patch b/net/samba4/patches/012-add_host_tools_suffix.patch deleted file mode 100644 index 383002ff5..000000000 --- a/net/samba4/patches/012-add_host_tools_suffix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/source4/heimdal_build/wscript_configure 2019-12-03 -+++ b/source4/heimdal_build/wscript_configure 2019-12-03 -@@ -199,7 +199,7 @@ def check_system_heimdal_lib(name, funct - def check_system_heimdal_binary(name): - if conf.LIB_MAY_BE_BUNDLED(name): - return False -- if not conf.find_program(name, var=name.upper()): -+ if not conf.find_program(name + '_samba', var=name.upper()): - return False - conf.define('USING_SYSTEM_%s' % name.upper(), 1) - return True diff --git a/net/samba4/patches/010-source3-msgsock-nvram-fix.patch b/net/samba4/patches/020-source3-msgsock-nvram-fix.patch similarity index 84% rename from net/samba4/patches/010-source3-msgsock-nvram-fix.patch rename to net/samba4/patches/020-source3-msgsock-nvram-fix.patch index 4c93a5a3e..682adec4e 100644 --- a/net/samba4/patches/010-source3-msgsock-nvram-fix.patch +++ b/net/samba4/patches/020-source3-msgsock-nvram-fix.patch @@ -5,7 +5,7 @@ } - priv_path = private_path("msg.sock"); -+ priv_path = lock_path("msg.sock"); ++ priv_path = lock_path(talloc_tos(), "msg.sock"); if (priv_path == NULL) { return NT_STATUS_NO_MEMORY; } @@ -14,7 +14,7 @@ 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, ++ 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/011-source4-msgsock-nvram-fix.patch b/net/samba4/patches/021-source4-msgsock-nvram-fix.patch similarity index 100% rename from net/samba4/patches/011-source4-msgsock-nvram-fix.patch rename to net/samba4/patches/021-source4-msgsock-nvram-fix.patch diff --git a/net/samba4/patches/102-samba-4.8.5-unbundle-libbsd.patch b/net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch similarity index 76% rename from net/samba4/patches/102-samba-4.8.5-unbundle-libbsd.patch rename to net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch index c8eae598d..1e2e11fcf 100644 --- a/net/samba4/patches/102-samba-4.8.5-unbundle-libbsd.patch +++ b/net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch @@ -1,22 +1,3 @@ ---- 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): @@ -72,6 +53,7 @@ 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/waf-cross-answers/aarch64.txt b/net/samba4/waf-cross-answers/aarch64.txt index 9aae22c36..e57659bf0 100644 --- a/net/samba4/waf-cross-answers/aarch64.txt +++ b/net/samba4/waf-cross-answers/aarch64.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/arc.txt b/net/samba4/waf-cross-answers/arc.txt index 57f38119f..37abf15ed 100644 --- a/net/samba4/waf-cross-answers/arc.txt +++ b/net/samba4/waf-cross-answers/arc.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/arm.txt b/net/samba4/waf-cross-answers/arm.txt index 79ba994be..5a7c2ea94 100644 --- a/net/samba4/waf-cross-answers/arm.txt +++ b/net/samba4/waf-cross-answers/arm.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/armeb.txt b/net/samba4/waf-cross-answers/armeb.txt index 79ba994be..5a7c2ea94 100644 --- a/net/samba4/waf-cross-answers/armeb.txt +++ b/net/samba4/waf-cross-answers/armeb.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/i386.txt b/net/samba4/waf-cross-answers/i386.txt index 79ba994be..5a7c2ea94 100644 --- a/net/samba4/waf-cross-answers/i386.txt +++ b/net/samba4/waf-cross-answers/i386.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/mips.txt b/net/samba4/waf-cross-answers/mips.txt index 9c1a2c67e..2919ea2c2 100644 --- a/net/samba4/waf-cross-answers/mips.txt +++ b/net/samba4/waf-cross-answers/mips.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/mips64.txt b/net/samba4/waf-cross-answers/mips64.txt index a270f0860..9bb9b5fd5 100644 --- a/net/samba4/waf-cross-answers/mips64.txt +++ b/net/samba4/waf-cross-answers/mips64.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/mips64el.txt b/net/samba4/waf-cross-answers/mips64el.txt index a270f0860..9bb9b5fd5 100644 --- a/net/samba4/waf-cross-answers/mips64el.txt +++ b/net/samba4/waf-cross-answers/mips64el.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/mipsel.txt b/net/samba4/waf-cross-answers/mipsel.txt index 9c1a2c67e..2919ea2c2 100644 --- a/net/samba4/waf-cross-answers/mipsel.txt +++ b/net/samba4/waf-cross-answers/mipsel.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/powerpc.txt b/net/samba4/waf-cross-answers/powerpc.txt index 4912acbde..c98557b2b 100644 --- a/net/samba4/waf-cross-answers/powerpc.txt +++ b/net/samba4/waf-cross-answers/powerpc.txt @@ -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 diff --git a/net/samba4/waf-cross-answers/x86_64.txt b/net/samba4/waf-cross-answers/x86_64.txt index 9aae22c36..e57659bf0 100644 --- a/net/samba4/waf-cross-answers/x86_64.txt +++ b/net/samba4/waf-cross-answers/x86_64.txt @@ -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