Browse Source

Merge pull request #10781 from Andy2244/samba-4.11-python3-new

samba4: update to 4.11.4 (python3 version), add rpcsvc-proto, add libasn1 host build
lilik-openwrt-22.03
Rosen Penev 5 years ago
committed by GitHub
parent
commit
e9a3a4c354
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 422 additions and 161 deletions
  1. +5
    -2
      libs/libtasn1/Makefile
  2. +56
    -0
      libs/rpcsvc-proto/Makefile
  3. +10
    -16
      net/samba4/Config.in
  4. +97
    -82
      net/samba4/Makefile
  5. +26
    -17
      net/samba4/files/samba.init
  6. +80
    -0
      net/samba4/patches/003-getpwent_r.patch
  7. +38
    -0
      net/samba4/patches/004-missing-headers.patch
  8. +0
    -0
      net/samba4/patches/005-musl_uintptr.patch
  9. +19
    -0
      net/samba4/patches/006-netdb-defines.patch
  10. +0
    -0
      net/samba4/patches/007-libldb-fix-musl-libc-unkown-type-error.patch
  11. +14
    -0
      net/samba4/patches/008-samba-4.11-add_missing___compar_fn_t.patch
  12. +22
    -0
      net/samba4/patches/009-samba-4.11-qsort-compar.patch
  13. +40
    -0
      net/samba4/patches/010-samba-4-11-fix-host-tools-checks.patch.patch
  14. +0
    -11
      net/samba4/patches/012-add_host_tools_suffix.patch
  15. +2
    -2
      net/samba4/patches/020-source3-msgsock-nvram-fix.patch
  16. +0
    -0
      net/samba4/patches/021-source4-msgsock-nvram-fix.patch
  17. +2
    -20
      net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch
  18. +1
    -1
      net/samba4/waf-cross-answers/aarch64.txt
  19. +1
    -1
      net/samba4/waf-cross-answers/arc.txt
  20. +1
    -1
      net/samba4/waf-cross-answers/arm.txt
  21. +1
    -1
      net/samba4/waf-cross-answers/armeb.txt
  22. +1
    -1
      net/samba4/waf-cross-answers/i386.txt
  23. +1
    -1
      net/samba4/waf-cross-answers/mips.txt
  24. +1
    -1
      net/samba4/waf-cross-answers/mips64.txt
  25. +1
    -1
      net/samba4/waf-cross-answers/mips64el.txt
  26. +1
    -1
      net/samba4/waf-cross-answers/mipsel.txt
  27. +1
    -1
      net/samba4/waf-cross-answers/powerpc.txt
  28. +1
    -1
      net/samba4/waf-cross-answers/x86_64.txt

+ 5
- 2
libs/libtasn1/Makefile View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libtasn1 PKG_NAME:=libtasn1
PKG_VERSION:=4.15.0 PKG_VERSION:=4.15.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/$(PKG_NAME) PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
@ -25,6 +25,7 @@ PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1 PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/libtasn1 define Package/libtasn1
SECTION:=libs SECTION:=libs
@ -48,7 +49,8 @@ CONFIGURE_ARGS += \
--disable-valgrind-tests --disable-valgrind-tests
define Build/InstallDev 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 $(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libtasn1.h $(1)/usr/include/ $(CP) $(PKG_INSTALL_DIR)/usr/include/libtasn1.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
@ -62,4 +64,5 @@ define Package/libtasn1/install
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtasn1.so.* $(1)/usr/lib/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtasn1.so.* $(1)/usr/lib/
endef endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,libtasn1)) $(eval $(call BuildPackage,libtasn1))

+ 56
- 0
libs/rpcsvc-proto/Makefile View File

@ -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 <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)/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))

+ 10
- 16
net/samba4/Config.in View File

@ -23,7 +23,7 @@ config SAMBA4_SERVER_VFS
depends on PACKAGE_samba4-server depends on PACKAGE_samba4-server
help help
installs: 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 Commonly used VFS modules, vfs_btrfs requires kmod-fs-btrfs to be selected separately
default y 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 Additional VFS modules that aren't commonly used, vfs_linux_xfs_sgid requires kmod-fs-xfs to be selected separately
default n 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 depends on PACKAGE_samba4-server
select SAMBA4_SERVER_VFS
help 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 default n

+ 97
- 82
net/samba4/Makefile View File

@ -2,7 +2,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=samba PKG_NAME:=samba
PKG_VERSION:=4.9.16
PKG_VERSION:=4.11.4
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz 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://www.nic.funet.fi/index/samba/pub/samba/stable/ \
http://samba.mirror.bit.nl/samba/ftp/stable/ \ http://samba.mirror.bit.nl/samba/ftp/stable/ \
https://download.samba.org/pub/samba/stable/ https://download.samba.org/pub/samba/stable/
PKG_HASH:=613987fac719ed90f3daad6ca12517329f0754dd51c573f6b3623e6b03cb3916
PKG_HASH:=b95471ba450757109dce65acfe75dafc719c5cc5d464fc65ee442433a461db24
PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com> PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
PKG_LICENSE:=GPL-3.0-only PKG_LICENSE:=GPL-3.0-only
PKG_LICENSE_FILES:=COPYING PKG_LICENSE_FILES:=COPYING
PKG_CPE_ID:=cpe:/a:samba:samba 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:= \ PKG_CONFIG_DEPENDS:= \
CONFIG_SAMBA4_SERVER_NETBIOS \ CONFIG_SAMBA4_SERVER_NETBIOS \
CONFIG_SAMBA4_SERVER_AVAHI \ CONFIG_SAMBA4_SERVER_AVAHI \
CONFIG_SAMBA4_SERVER_VFS \ CONFIG_SAMBA4_SERVER_VFS \
CONFIG_SAMBA4_SERVER_VFSX \ 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-btrfs \
CONFIG_PACKAGE_kmod-fs-xfs CONFIG_PACKAGE_kmod-fs-xfs
@ -37,6 +36,9 @@ include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/version.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 define Package/samba4/Default
SECTION:=net SECTION:=net
@ -56,21 +58,23 @@ endef
define Package/samba4-libs define Package/samba4-libs
$(call Package/samba4/Default) $(call Package/samba4/Default)
TITLE+= libs 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_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 endef
define Package/samba4-server define Package/samba4-server
$(call Package/samba4/Default) $(call Package/samba4/Default)
TITLE+= server TITLE+= server
DEPENDS:= +samba4-libs DEPENDS:= +samba4-libs
CONFLICTS:=samba36-server
endef endef
define Package/samba4-server/description 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. 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/ 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 endef
define Package/samba4-client/description 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 The smbclient program implements a simple ftp-like client for accessing SMB shares
endef endef
@ -100,7 +104,9 @@ define Package/samba4-admin
endef endef
define Package/samba4-admin/description 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 Administration tools collection
endef endef
@ -112,13 +118,15 @@ define Package/samba4-utils
endef endef
define Package/samba4-utils/description define Package/samba4-utils/description
installs: smbstatus smbtree smbget nmblookup mvxattr
installs: smbstatus smbtree mvxattr smbtar smbcquotas
Utilities collection Utilities collection
endef 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 += \ CONFIGURE_VARS += \
CPP="$(TARGET_CROSS)cpp" CPP="$(TARGET_CROSS)cpp"
@ -160,9 +168,6 @@ CONFIGURE_ARGS += \
--disable-cephfs \ --disable-cephfs \
--disable-fault-handling \ --disable-fault-handling \
--disable-glusterfs \ --disable-glusterfs \
--disable-rpath \
--disable-rpath-install \
--disable-rpath-private-install \
--enable-fhs \ --enable-fhs \
--without-automount \ --without-automount \
--without-iconv \ --without-iconv \
@ -202,8 +207,8 @@ HOST_CONFIGURE_ARGS += \
--without-gpgme --without-gpgme
HOST_CONFIGURE_ARGS += --disable-avahi --without-quotas --without-acl-support --without-winbind \ 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="" HOST_CONFIGURE_VARS += python_LDFLAGS="" python_LIBDIR=""
# Optional AES-NI support - https://lists.samba.org/archive/samba-technical/2017-September/122738.html # 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-piddir=/var/run \
--with-privatedir=/etc/samba --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) ifeq ($(CONFIG_SAMBA4_SERVER_AVAHI),y)
CONFIGURE_ARGS += --enable-avahi CONFIGURE_ARGS += --enable-avahi
else else
CONFIGURE_ARGS += --disable-avahi CONFIGURE_ARGS += --disable-avahi
endif 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 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 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_PDB_MODULES :=pdb_smbpasswd,pdb_tdbsam,
SAMBA4_AUTH_MODULES :=auth_builtin,auth_sam,auth_unix,auth_script, SAMBA4_AUTH_MODULES :=auth_builtin,auth_sam,auth_unix,auth_script,
SAMBA4_VFS_MODULES :=vfs_default, SAMBA4_VFS_MODULES :=vfs_default,
SAMBA4_VFS_MODULES_SHARED := SAMBA4_VFS_MODULES_SHARED :=
ifeq ($(CONFIG_SAMBA4_SERVER_VFS),y) 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) ifeq ($(CONFIG_PACKAGE_kmod-fs-btrfs),y)
SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_btrfs, SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_btrfs,
endif endif
@ -258,12 +265,11 @@ ifeq ($(CONFIG_PACKAGE_kmod-fs-xfs),y)
SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_linux_xfs_sgid, SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_linux_xfs_sgid,
endif endif
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 :=$(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_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 # vfs_nfs4acl_xattr needs https://github.com/notriddle/libdrpc/blob/master/rpc/xdr.h
endif endif
@ -279,33 +285,28 @@ HOST_CONFIGURE_ARGS += \
--with-static-modules=!DEFAULT,!FORCED \ --with-static-modules=!DEFAULT,!FORCED \
--with-shared-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 # lib bundling
PY_VER:=$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR)
# NOTE: bundle + make private, we want to avoid version configuration (build, link) conflicts # 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 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 define Host/Compile
(cd $(HOST_BUILD_DIR); \ (cd $(HOST_BUILD_DIR); \
./buildtools/bin/waf build \ ./buildtools/bin/waf build \
@ -322,29 +323,32 @@ endef
define Build/Prepare define Build/Prepare
$(Build/Prepare/Default) $(Build/Prepare/Default)
ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),)
# un-bundle dnspython # un-bundle dnspython
$(SED) '/"dns.resolver":/d' $(PKG_BUILD_DIR)/third_party/wscript $(SED) '/"dns.resolver":/d' $(PKG_BUILD_DIR)/third_party/wscript
# unbundle iso8601 # unbundle iso8601
$(SED) '/"iso8601":/d' $(PKG_BUILD_DIR)/third_party/wscript $(SED) '/"iso8601":/d' $(PKG_BUILD_DIR)/third_party/wscript
endif
endef endef
define Build/Configure define Build/Configure
$(CP) ./waf-cross-answers/$(ARCH).txt $(PKG_BUILD_DIR)/cross-answers.txt $(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 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 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 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 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) $(call Build/Configure/Default)
endef 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 define Build/Compile
(cd $(PKG_BUILD_DIR); \ (cd $(PKG_BUILD_DIR); \
./buildtools/bin/waf install \ ./buildtools/bin/waf install \
--jobs=$(shell nproc) \ --jobs=$(shell nproc) \
--destdir="$(PKG_INSTALL_DIR)" \ --destdir="$(PKG_INSTALL_DIR)" \
--targets=$(SAMBA4_MODULES)$(SAMBA4_MODULES_SHARDED)$(BUILD_TARGETS_SERVER),$(BUILD_TARGETS_UTILS),$(BUILD_TARGETS_ADMIN),$(BUILD_TARGETS_CLIENT) \
) )
endef endef
@ -355,32 +359,30 @@ endef
define Package/samba4-libs/install define Package/samba4-libs/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(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 endef
define Package/samba4-client/install define Package/samba4-client/install
$(INSTALL_DIR) $(1)/usr/bin $(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 endef
define Package/samba4-admin/install define Package/samba4-admin/install
$(INSTALL_DIR) $(1)/usr/bin $(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_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/eventlogadm $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/eventlogadm $(1)/usr/sbin/
endef endef
define Package/samba4-utils/install define Package/samba4-utils/install
$(INSTALL_DIR) $(1)/usr/bin $(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 endef
define Package/samba4-server/install 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/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbd $(1)/usr/sbin/
ifeq ($(CONFIG_SAMBA4_SERVER_NETBIOS),y) ifeq ($(CONFIG_SAMBA4_SERVER_NETBIOS),y)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/nmbd $(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/nmbd $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nmblookup $(1)/usr/bin/
endif 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 endif
$(INSTALL_DIR) $(1)/etc/config $(1)/etc/samba $(1)/etc/init.d $(INSTALL_DIR) $(1)/etc/config $(1)/etc/samba $(1)/etc/init.d
$(INSTALL_CONF) ./files/samba.config $(1)/etc/config/samba4 $(INSTALL_CONF) ./files/samba.config $(1)/etc/config/samba4
@ -407,6 +419,9 @@ define Package/samba4-server/conffiles
/etc/samba/smbpasswd /etc/samba/smbpasswd
/etc/samba/secrets.tdb /etc/samba/secrets.tdb
/etc/samba/passdb.tdb /etc/samba/passdb.tdb
/etc/samba/lmhosts
/etc/nsswitch.conf
/etc/krb5.conf
endef endef
$(eval $(call HostBuild)) $(eval $(call HostBuild))


+ 26
- 17
net/samba4/files/samba.init View File

@ -3,8 +3,10 @@
START=98 START=98
USE_PROCD=1 USE_PROCD=1
SAMBA_IFACE=""
smb_header() { smb_header() {
config_get samba_iface $1 interface "loopback lan"
config_get SAMBA_IFACE $1 interface "lan"
# resolve interfaces # resolve interfaces
local interfaces local interfaces
@ -12,7 +14,7 @@ smb_header() {
. /lib/functions/network.sh . /lib/functions/network.sh
local net local net
for net in $samba_iface; do
for net in $SAMBA_IFACE; do
local device local device
network_is_up $net || continue network_is_up $net || continue
network_get_device device "$net" 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 [ -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 fi
} }
@ -158,56 +160,63 @@ init_config() {
} }
service_triggers() { service_triggers() {
PROCD_RELOAD_DELAY=2000
# PROCD_RELOAD_DELAY=1000
procd_add_reload_trigger "dhcp" "system" "samba4" procd_add_reload_trigger "dhcp" "system" "samba4"
local i local i
for i in $samba_iface; do
for i in $SAMBA_IFACE; do
procd_add_reload_interface_trigger $i procd_add_reload_interface_trigger $i
done done
} }
start_service() { start_service() {
init_config 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. # start main AD-DC daemon, will spawn (smbd,nmbd,winbindd) as needed/configured.
if [ "$DISABLE_AD_DC" -ne 1 ] && [ -x /usr/sbin/samba ]; then if [ "$DISABLE_AD_DC" -ne 1 ] && [ -x /usr/sbin/samba ]; then
procd_open_instance procd_open_instance
procd_set_param command /usr/sbin/samba -F procd_set_param command /usr/sbin/samba -F
procd_set_param nice $nice_value
procd_set_param respawn 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 procd_close_instance
else else
# start fileserver daemon # start fileserver daemon
procd_open_instance procd_open_instance
procd_set_param command /usr/sbin/smbd -F procd_set_param command /usr/sbin/smbd -F
procd_set_param nice $nice_value
procd_set_param respawn 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 procd_close_instance
# start netbios daemon # start netbios daemon
if [ "$DISABLE_NETBIOS" -ne 1 ] && [ -x /usr/sbin/nmbd ]; then if [ "$DISABLE_NETBIOS" -ne 1 ] && [ -x /usr/sbin/nmbd ]; then
procd_open_instance procd_open_instance
procd_set_param command /usr/sbin/nmbd -F procd_set_param command /usr/sbin/nmbd -F
procd_set_param nice $nice_value
procd_set_param respawn procd_set_param respawn
procd_set_param file /var/etc/smb.conf
procd_set_param file /etc/samba/smb.conf
procd_close_instance procd_close_instance
fi fi
# start winbind daemon # start winbind daemon
if [ "$DISABLE_WINBIND" -ne 1 ] && [ -x /usr/sbin/winbindd ]; then if [ "$DISABLE_WINBIND" -ne 1 ] && [ -x /usr/sbin/winbindd ]; then
procd_open_instance procd_open_instance
procd_set_param command /usr/sbin/winbindd -F procd_set_param command /usr/sbin/winbindd -F
procd_set_param nice $nice_value
procd_set_param respawn procd_set_param respawn
procd_set_param file /var/etc/smb.conf
procd_set_param file /etc/samba/smb.conf
procd_close_instance procd_close_instance
fi fi
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
} }

+ 80
- 0
net/samba4/patches/003-getpwent_r.patch View File

@ -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++) {

+ 38
- 0
net/samba4/patches/004-missing-headers.patch View File

@ -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"

net/samba4/patches/003-musl_uintptr.patch → net/samba4/patches/005-musl_uintptr.patch View File


+ 19
- 0
net/samba4/patches/006-netdb-defines.patch View File

@ -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,

net/samba4/patches/004-libldb-fix-musl-libc-unkown-type-error.patch → net/samba4/patches/007-libldb-fix-musl-libc-unkown-type-error.patch View File


+ 14
- 0
net/samba4/patches/008-samba-4.11-add_missing___compar_fn_t.patch View File

@ -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;

+ 22
- 0
net/samba4/patches/009-samba-4.11-qsort-compar.patch View File

@ -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 */

+ 40
- 0
net/samba4/patches/010-samba-4-11-fix-host-tools-checks.patch.patch View File

@ -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)

+ 0
- 11
net/samba4/patches/012-add_host_tools_suffix.patch View File

@ -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

net/samba4/patches/010-source3-msgsock-nvram-fix.patch → net/samba4/patches/020-source3-msgsock-nvram-fix.patch View File


net/samba4/patches/011-source4-msgsock-nvram-fix.patch → net/samba4/patches/021-source4-msgsock-nvram-fix.patch View File


net/samba4/patches/102-samba-4.8.5-unbundle-libbsd.patch → net/samba4/patches/102-samba-4.11-unbundle-libbsd.patch View File


+ 1
- 1
net/samba4/waf-cross-answers/aarch64.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: OK Checking for the maximum value of the 'time_t' type: OK


+ 1
- 1
net/samba4/waf-cross-answers/arc.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: NO Checking for the maximum value of the 'time_t' type: NO


+ 1
- 1
net/samba4/waf-cross-answers/arm.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: NO Checking for the maximum value of the 'time_t' type: NO


+ 1
- 1
net/samba4/waf-cross-answers/armeb.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: NO Checking for the maximum value of the 'time_t' type: NO


+ 1
- 1
net/samba4/waf-cross-answers/i386.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: NO Checking for the maximum value of the 'time_t' type: NO


+ 1
- 1
net/samba4/waf-cross-answers/mips.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: NO Checking for the maximum value of the 'time_t' type: NO


+ 1
- 1
net/samba4/waf-cross-answers/mips64.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: OK Checking for the maximum value of the 'time_t' type: OK


+ 1
- 1
net/samba4/waf-cross-answers/mips64el.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: OK Checking for the maximum value of the 'time_t' type: OK


+ 1
- 1
net/samba4/waf-cross-answers/mipsel.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: NO Checking for the maximum value of the 'time_t' type: NO


+ 1
- 1
net/samba4/waf-cross-answers/powerpc.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: NO Checking for the maximum value of the 'time_t' type: NO


+ 1
- 1
net/samba4/waf-cross-answers/x86_64.txt View 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 CP850 to UCS-2LE: OK
Checking if can we convert from UTF-8 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 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 locking is available: OK
Checking whether fcntl lock supports open file description locks: NO Checking whether fcntl lock supports open file description locks: NO
Checking for the maximum value of the 'time_t' type: OK Checking for the maximum value of the 'time_t' type: OK


Loading…
Cancel
Save