Merge pull request #10940 from Andy2244/samba-4.11.4-(19.07)

[19.07] samba4: update to 4.11.4 (python3 version), add rpcsvc-proto, add libasn1 host build
This commit is contained in:
Rosen Penev 2020-01-03 16:32:02 -08:00 committed by GitHub
commit 9ec8652533
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
27 changed files with 489 additions and 244 deletions

View file

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libtasn1 PKG_NAME:=libtasn1
PKG_VERSION:=4.14 PKG_VERSION:=4.15.0
PKG_RELEASE:=2 PKG_RELEASE:=1
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)
PKG_HASH:=9e604ba5c5c8ea403487695c2e407405820d98540d9de884d6e844f9a9c5ba08 PKG_HASH:=dd77509fe8f5304deafbca654dc7f0ea57f5841f41ba530cff9a5bf71382739e
PKG_MAINTAINER:=Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com> PKG_MAINTAINER:=Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
PKG_LICENSE:=LGPL-2.1-or-later PKG_LICENSE:=LGPL-2.1-or-later
@ -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,6 @@ CONFIGURE_ARGS += \
--disable-valgrind-tests --disable-valgrind-tests
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(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 +62,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))

View file

@ -0,0 +1,51 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=rpcsvc-proto
PKG_VERSION:=1.4
PKG_RELEASE:=1
PKG_SOURCE_URL:=https://github.com/thkukuk/rpcsvc-proto/releases/download/v$(PKG_VERSION)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=867e46767812784d8dda6d8d931d6fabb30168abb02d87a2a205be6d5a2934a7
PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
PKG_LICENSE:=BSD-3-clause
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=autogen.sh
PKG_INSTALL:=1
PKG_BUILD_DEPENDS:=rpcsvc-proto/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/rpcsvc-proto
SECTION:=libs
CATEGORY:=Libraries
TITLE:=rpcgen and rpcsvc proto.x files from glibc
URL:=https://github.com/thkukuk/rpcsvc-proto
DEPENDS:=$(INTL_DEPENDS)
BUILDONLY:=1
endef
define Package/rpcsvc-proto/description
This package contains rpcsvc proto.x files from glibc, which are missing in libtirpc.
Additional it contains rpcgen, which is needed to create header files and sources from protocol files.
endef
# need to use host tool
define Build/Prepare
$(Build/Prepare/Default)
$(SED) 's,.*/rpcgen/rpcgen,\t$(STAGING_DIR_HOSTPKG)/bin/rpcgen,' $(PKG_BUILD_DIR)/rpcsvc/Makefile.am
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/rpcsvc $(1)/usr/include/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,rpcsvc-proto))

View file

@ -1,26 +1,14 @@
config SAMBA4_SERVER_ACL config SAMBA4_SERVER_NETBIOS
bool "ACL support (xattr)" bool "NetBIOS support"
depends on PACKAGE_samba4-server depends on PACKAGE_samba4-server
help help
installs: sharesec installs: nmbd (daemon)
modules: vfs_acl_xattr vfs_acl_tdb vfs_posixacl
Extended access control list support Announce Samba resources via NetBIOS using the nmbd daemon
default n WSD (Web Services for Devices) replaces the functionality of NetBIOS and is provided by the wsdd2 package (selected by default).
Note: As of Windows 10 Fall Creators Update (1709) NetBIOS isn't supported unless the old SMB1 feature is reinstalled (not recommended).
config SAMBA4_SERVER_AD_DC Network shares can be directly accessed via network paths '\\hostname\sharename' and mounted via 'map network drive' without NetBIOS or WSD.
bool "Active Directory Domain Controller support (requires krb5-server) (EXPERIMENTAL)" default y
depends on PACKAGE_samba4-server
select PACKAGE_python-crypto
help
installs: samba (meta-daemon) python-crypto ntlm_auth
scripts: samba-tool
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
config SAMBA4_SERVER_AVAHI config SAMBA4_SERVER_AVAHI
bool "Avahi support" bool "Avahi support"
@ -35,20 +23,10 @@ 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
config SAMBA4_SERVER_QUOTAS
bool "Disk quota support"
depends on PACKAGE_samba4-server
help
installs:
modules: vfs_default_quota
Support for disk quotas using the quotas VFS module (vfs_default_quota)
default n
config SAMBA4_SERVER_VFSX config SAMBA4_SERVER_VFSX
bool "Extended VFS modules" bool "Extended VFS modules"
@ -60,25 +38,16 @@ config SAMBA4_SERVER_VFSX
Additional VFS modules that aren't commonly used, vfs_linux_xfs_sgid requires kmod-fs-xfs to be selected separately 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_NETBIOS config SAMBA4_SERVER_AD_DC
bool "NetBIOS support" bool "Active Directory Domain Controller support (EXPERIMENTAL)"
depends on PACKAGE_samba4-server depends on PACKAGE_samba4-server
select SAMBA4_SERVER_VFS
help help
installs: nmbd (daemon) installs: samba (meta-daemon) PyCryptodome ntlm_auth
scripts: samba-tool
Announce Samba resources via NetBIOS using the nmbd daemon Run as a Active Directory Domain Controller
WSD (Web Services for Devices) replaces the functionality of NetBIOS and is provided by the wsdd2 package (selected by default). see: https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller
Note: As of Windows 10 Fall Creators Update (1709) NetBIOS isn't supported unless the old SMB1 feature is reinstalled (not recommended). HINT: see section (# Using the Domain Controller as a File Server)
Network shares can be directly accessed via network paths '\\hostname\sharename' and mounted via 'map network drive' without NetBIOS or WSD. NOTE: Extroot is recommend for this setup, as it is not optimized to run completely from RAM/tempfs!
default y
config SAMBA4_SERVER_WINBIND
bool "Winbind support"
depends on PACKAGE_samba4-server
help
installs: winbindd (daemon) wbinfo
Support using domain users and groups in local commands, such as chown and chgrp.
Display domain users and groups in local command's output, such as ls.
see: https://wiki.samba.org/index.php/Configuring_Winbindd_on_a_Samba_AD_DC
default n default n

View file

@ -2,8 +2,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=samba PKG_NAME:=samba
PKG_VERSION:=4.9.15 PKG_VERSION:=4.11.4
PKG_RELEASE:=2 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://ftp.heanet.ie/mirrors/ftp.samba.org/stable/ \ PKG_SOURCE_URL:=https://ftp.heanet.ie/mirrors/ftp.samba.org/stable/ \
@ -12,26 +12,23 @@ PKG_SOURCE_URL:=https://ftp.heanet.ie/mirrors/ftp.samba.org/stable/ \
http://www.nic.funet.fi/index/samba/pub/samba/stable/ \ http://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:=377102b80b97941bf0d131b828cae8415190e5bdd2928c2e2c954e29f1904496 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) e2fsprogs=(compile_et) nfs-kernel-server=(rpcgen) # samba4=(asn1_compile,compile_et) rpcsvc-proto=(rpcgen)
HOST_BUILD_DEPENDS:=python/host nfs-kernel-server/host e2fsprogs/host HOST_BUILD_DEPENDS:=python3/host perl/host
PKG_BUILD_DEPENDS:=samba4/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_SAMBA4_SERVER_AD_DC \
CONFIG_SAMBA4_SERVER_WINBIND \
CONFIG_PACKAGE_kmod-fs-btrfs \ CONFIG_PACKAGE_kmod-fs-btrfs \
CONFIG_PACKAGE_kmod-fs-xfs CONFIG_PACKAGE_kmod-fs-xfs
@ -39,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
@ -58,29 +58,29 @@ 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 +libcomerr +libreadline \ DEPENDS:= +libtirpc +libreadline +libpopt +libcap +zlib +libgnutls +libtasn1 +libuuid +libopenssl +USE_GLIBC:libpthread \
+PACKAGE_libcap:libcap +PACKAGE_libpthread:libpthread +PACKAGE_libnettle:libnettle \ +PACKAGE_libpam:libpam \
+PACKAGE_libgcrypt:libgcrypt +PACKAGE_libpam:libpam +PACKAGE_dbus:dbus +PACKAGE_libavahi-client:libavahi-client \
+SAMBA4_SERVER_VFS:attr \ +SAMBA4_SERVER_VFS:attr \
+SAMBA4_SERVER_ACL:acl +SAMBA4_SERVER_ACL:attr \ +SAMBA4_SERVER_VFSX:libaio \
+SAMBA4_SERVER_AVAHI:libavahi-client \ +SAMBA4_SERVER_AVAHI:libavahi-client \
+SAMBA4_SERVER_AD_DC:python-base +SAMBA4_SERVER_AD_DC:python-crypto +SAMBA4_SERVER_AD_DC:libopenssl +SAMBA4_SERVER_AD_DC:libgnutls +SAMBA4_SERVER_AD_DC:libopenldap +SAMBA4_SERVER_AD_DC:jansson +SAMBA4_SERVER_AD_DC:libarchive +SAMBA4_SERVER_AD_DC:python3-cryptodome +SAMBA4_SERVER_AD_DC:libopenldap +SAMBA4_SERVER_AD_DC:jansson +SAMBA4_SERVER_AD_DC:libarchive +SAMBA4_SERVER_AD_DC:acl +SAMBA4_SERVER_AD_DC:attr
endef 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/
endef endef
# BUG: We cant add DEPENDS:= +SAMBA4_SERVER_AD_DC:python-crypto, so this only happens here via select!
define Package/samba4-server/config define Package/samba4-server/config
select PACKAGE_wsdd2 select PACKAGE_wsdd2
source "$(SOURCE)/Config.in" source "$(SOURCE)/Config.in"
@ -93,7 +93,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
@ -105,7 +105,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
@ -117,13 +119,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_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -I$(STAGING_DIR)/usr/include/tirpc
TARGET_LDFLAGS += -Wl,--gc-sections 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"
@ -165,9 +169,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 \
@ -207,8 +208,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 \ --without-ad-dc --without-json --without-libarchive --disable-python --nopyc --nopyo \
--disable-gnutls --without-dnsupdate --without-ads --without-ldap --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
@ -225,45 +226,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 # NOTE: We need host python-bin, but target python-config here!
else CONFIGURE_VARS += python_LDFLAGS="" python_LIBDIR=""
CONFIGURE_ARGS += --without-quotas
endif
ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
CONFIGURE_ARGS += --with-acl-support
else
CONFIGURE_ARGS += --without-acl-support
endif
ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y) ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
CONFIGURE_ARGS += --enable-gnutls --with-dnsupdate --with-ads --with-ldap CONFIGURE_ARGS += --without-winbind --without-ldb-lmdb --with-acl-support
TARGET_CFLAGS := -I$(STAGING_DIR)/usr/include/python2.7 $(TARGET_CFLAGS)
else
CONFIGURE_ARGS += --without-ad-dc --without-json-audit --without-libarchive --disable-python --nopyc --nopyo \
--disable-gnutls --without-dnsupdate --without-ads --without-ldap
CONFIGURE_VARS += \ CONFIGURE_VARS += \
python_LDFLAGS="" \ PYTHON="$(HOST_PYTHON3_BIN)" \
python_LIBDIR="" PYTHON_CONFIG="$(STAGING_DIR)/host/bin/$(PYTHON3)-config"
endif
ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
CONFIGURE_ARGS += --with-winbind
else else
CONFIGURE_ARGS += --without-winbind CONFIGURE_ARGS += --without-winbind --without-ads --without-ldap --without-ldb-lmdb --without-ad-dc \
--without-json --without-libarchive --disable-python --nopyc --nopyo --without-dnsupdate --without-acl-support
endif endif
SAMBA4_IDMAP_MODULES :=
SAMBA4_IDMAP_MODULES_SHARED :=
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
@ -274,33 +266,17 @@ 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)
SAMBA4_VFS_MODULES :=$(SAMBA4_VFS_MODULES)vfs_posixacl,
SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_acl_xattr,vfs_acl_tdb,
# vfs_zfsacl needs https://github.com/zfsonlinux/zfs/tree/master/include/sys/zfs_acl.h
# vfs_nfs4acl_xattr needs https://github.com/notriddle/libdrpc/blob/master/rpc/xdr.h
endif
ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y) ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
SAMBA4_PDB_MODULES :=$(SAMBA4_PDB_MODULES)pdb_samba_dsdb,pdb_ldapsam, SAMBA4_PDB_MODULES :=$(SAMBA4_PDB_MODULES)pdb_samba_dsdb,pdb_ldapsam,
SAMBA4_AUTH_MODULES :=$(SAMBA4_AUTH_MODULES)auth_samba4, SAMBA4_AUTH_MODULES :=$(SAMBA4_AUTH_MODULES)auth_samba4,
SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_audit,vfs_extd_audit,vfs_full_audit, SAMBA4_VFS_MODULES :=$(SAMBA4_VFS_MODULES)vfs_posixacl,
endif SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_audit,vfs_extd_audit,vfs_full_audit,vfs_acl_xattr,vfs_acl_tdb,
ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y) # vfs_zfsacl needs https://github.com/zfsonlinux/zfs/tree/master/include/sys/zfs_acl.h
SAMBA4_IDMAP_MODULES :=$(SAMBA4_IDMAP_MODULES)idmap_tdb,idmap_passdb,idmap_nss,nss_info_template, # vfs_nfs4acl_xattr needs https://github.com/notriddle/libdrpc/blob/master/rpc/xdr.h
SAMBA4_IDMAP_MODULES_SHARED :=$(SAMBA4_IDMAP_MODULES_SHARED)idmap_autorid,idmap_rid,idmap_hash,idmap_tdb2,idmap_script,
ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
SAMBA4_IDMAP_MODULES_SHARED :=$(SAMBA4_IDMAP_MODULES_SHARED)idmap_ad,idmap_ldap,idmap_rfc2307,
# idmap_ad needs --with-ads
# idmap_rfc2307 needs ldap headers
endif
SAMBA4_AUTH_MODULES :=$(SAMBA4_AUTH_MODULES)auth_winbind,
endif endif
SAMBA4_MODULES :=${SAMBA4_VFS_MODULES}${SAMBA4_AUTH_MODULES}${SAMBA4_PDB_MODULES}${SAMBA4_IDMAP_MODULES} SAMBA4_MODULES :=${SAMBA4_VFS_MODULES}${SAMBA4_AUTH_MODULES}${SAMBA4_PDB_MODULES}
SAMBA4_MODULES_SHARDED :=${SAMBA4_VFS_MODULES_SHARED}${SAMBA4_IDMAP_MODULES_SHARED} SAMBA4_MODULES_SHARDED :=${SAMBA4_VFS_MODULES_SHARED}
CONFIGURE_ARGS += \ CONFIGURE_ARGS += \
--with-static-modules=$(SAMBA4_MODULES)!DEFAULT,!FORCED \ --with-static-modules=$(SAMBA4_MODULES)!DEFAULT,!FORCED \
@ -310,53 +286,40 @@ 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
ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),samba,nsstest,ntlm_auth,samba4kinit,samba4kgetcred,samba4kpasswd,samba4ktutil
endif
ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),winbindd,wbinfo,winbind_krb5_locator
endif
# CONFIG_PACKAGE_samba4-client
BUILD_TARGETS_CLIENT :=client/smbclient,client/cifsdd
# CONFIG_PACKAGE_samba4-admin
BUILD_TARGETS_ADMIN :=net,smbcontrol,profiles,rpcclient,smbcacls,smbcquotas,eventlogadm
# CONFIG_PACKAGE_samba4-utils
BUILD_TARGETS_UTILS :=smbstatus,smbtree,smbget,mvxattr,nmblookup
# lib bundling # 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 HOST_CONFIGURE_ARGS += --builtin-libraries=replace --nonshared-binary=asn1_compile,compile_et
HOST_CONFIGURE_ARGS += --builtin-libraries=replace --nonshared-binary=asn1_compile 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) ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
CONFIGURE_ARGS += --bundled-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace,pytalloc-util,pyldb-util,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,NONE CONFIGURE_ARGS += --bundled-libraries=NONE,$(SYSTEM_BUNDLED_LIBS),$(PYTHON_BUNDLED_LIBS)
else else
CONFIGURE_ARGS += --bundled-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,NONE CONFIGURE_ARGS += --bundled-libraries=NONE,$(SYSTEM_BUNDLED_LIBS)
endif endif
# BUG: --private-libraries, Does not work for System possible libs, will not get "samba4" suffix! CONFIGURE_ARGS += --private-libraries=$(SYSTEM_BUNDLED_LIBS)
CONFIGURE_ARGS += --private-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace
# CONFIGURE_ARGS += --disable-symbol-versions
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 \
--targets=asn1_compile \ --targets=asn1_compile,compile_et \
) )
endef endef
define Host/Install define Host/Install
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/ $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/asn1_compile $(STAGING_DIR_HOSTPKG)/bin/ # add host tools suffix, prevent conflicts with krb5
$(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/asn1_compile $(STAGING_DIR_HOSTPKG)/bin/asn1_compile_samba
$(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/compile_et $(STAGING_DIR_HOSTPKG)/bin/compile_et_samba
endef endef
define Build/Prepare define Build/Prepare
@ -371,21 +334,22 @@ 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
# BUG: We need to use "waf install --targets=" otherwise a "make install" or "waf install" will retrigger a full recompile of all possible targets! # Build via "waf install", avoid the make wrapper. (Samba logic is 'waf install' = build + install)
define Build/Compile 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
@ -396,39 +360,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/ # rpath-install
$(CP) $(PKG_INSTALL_DIR)/usr/lib/samba $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/samba/vfs $(1)/usr/lib/samba/idmap $(1)/usr/lib/samba/ldb $(1)/usr/lib/samba/krb5
if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/idmap ]; then \
$(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/idmap $(1)/usr/lib/samba/; \
fi
if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/vfs ]; then \
$(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/vfs $(1)/usr/lib/samba/; \
fi
if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/krb5 ]; then \
$(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/krb5 $(1)/usr/lib/samba/; \
fi
ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
$(INSTALL_DIR) $(1)/usr/lib/python2.7
$(CP) $(PKG_INSTALL_DIR)/usr/lib/python2.7 $(1)/usr/lib/
endif
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
@ -436,21 +391,21 @@ define Package/samba4-server/install
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbpasswd,pdbedit,testparm} $(1)/usr/bin/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbpasswd,pdbedit,testparm} $(1)/usr/bin/
$(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(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_AD_DC),y)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{samba-tool,ntlm_auth,smbtar} $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{samba,samba-gpupdate,samba_dnsupdate,samba_kcc,samba_spnupdate,samba_upgradedns} $(1)/usr/sbin/
# waf does not install those?
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/{samba4kinit,samba4kgetcred,samba4kpasswd,samba4ktutil} $(1)/usr/bin/
endif
ifeq ($(CONFIG_SAMBA4_SERVER_NETBIOS),y) 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_WINBIND),y) ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/wbinfo $(1)/usr/bin/ $(INSTALL_DIR) $(1)/usr/lib
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/winbindd $(1)/usr/sbin/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/$(PYTHON3) $(1)/usr/lib/
endif $(INSTALL_DIR) $(1)/usr/share/
ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y) $(CP) $(PKG_INSTALL_DIR)/usr/share/samba $(1)/usr/share/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sharesec $(1)/usr/bin/ # 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
@ -465,7 +420,6 @@ 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/idmap.ldb
/etc/samba/lmhosts /etc/samba/lmhosts
/etc/nsswitch.conf /etc/nsswitch.conf
/etc/krb5.conf /etc/krb5.conf

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 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!" 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
} }

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

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"

View file

@ -0,0 +1,35 @@
commit f81e5b71ce78f33250347914dacc75c8463bf102
Author: Breno Leitao <breno.leitao@gmail.com>
Date: Wed Mar 29 15:22:38 2017 -0300
include: Check for previous declaration of uintptr_t
Adding a extra check before declaring uintptr_t. Currently musl uses
macro __DEFINED_uintptr_t once it defines uintptr_t type. Checking
this macro before defining it, and, defining it when uintptr_t is
defined.
Signed-off-by: Breno Leitao <breno.leitao@gmail.com>
diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h
index 303d0ae..a2bfc40 100644
--- a/third_party/cmocka/cmocka.h
+++ b/third_party/cmocka/cmocka.h
@@ -110,7 +110,7 @@
((LargestIntegralType)(value))
/* Smallest integral type capable of holding a pointer. */
-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
+#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(__DEFINED_uintptr_t)
# if defined(_WIN32)
/* WIN32 is an ILP32 platform */
typedef unsigned int uintptr_t;
@@ -136,6 +136,8 @@
# define _UINTPTR_T
# define _UINTPTR_T_DEFINED
+# define __DEFINED_uintptr_t
+
#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
/* Perform an unsigned cast to uintptr_t. */

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,

View file

@ -0,0 +1,31 @@
From d90534469c5c43bf2a97e5698a5ddb4b7471f92a Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Tue, 24 Jul 2018 10:53:16 +0800
Subject: [PATCH] libldb: fix musl libc unkoown type error
tevent.h:1440:8: error: unknown type name 'pid_t'; did you mean 'div_t'?
pid_t *pid,
^~~~~
div_t
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
lib/tevent/tevent.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h
index aa6fe0d..2572696 100644
--- a/lib/tevent/tevent.h
+++ b/lib/tevent/tevent.h
@@ -32,6 +32,8 @@
#include <talloc.h>
#include <sys/time.h>
#include <stdbool.h>
+#include <sys/stat.h>
+#include <sys/types.h>
struct tevent_context;
struct tevent_ops;
--
2.7.4

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;

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

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)

View file

@ -5,7 +5,7 @@
} }
- priv_path = private_path("msg.sock"); - priv_path = private_path("msg.sock");
+ priv_path = lock_path("msg.sock"); + priv_path = lock_path(talloc_tos(), "msg.sock");
if (priv_path == NULL) { if (priv_path == NULL) {
return NT_STATUS_NO_MEMORY; return NT_STATUS_NO_MEMORY;
} }
@ -14,7 +14,7 @@
msg_ctx->msg_dgm_ref = messaging_dgm_ref( msg_ctx->msg_dgm_ref = messaging_dgm_ref(
msg_ctx, msg_ctx->event_ctx, &msg_ctx->id.unique_id, msg_ctx, msg_ctx->event_ctx, &msg_ctx->id.unique_id,
- private_path("msg.sock"), lck_path, - 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); messaging_recv_cb, msg_ctx, &ret);
if (msg_ctx->msg_dgm_ref == NULL) { if (msg_ctx->msg_dgm_ref == NULL) {

View file

@ -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 --- a/lib/replace/wscript
+++ b/lib/replace/wscript +++ b/lib/replace/wscript
@@ -340,22 +340,13 @@ def configure(conf): @@ -340,22 +340,13 @@ def configure(conf):
@ -72,6 +53,7 @@
extra_libs = '' extra_libs = ''
- if bld.CONFIG_SET('HAVE_LIBBSD'): extra_libs += ' bsd' - if bld.CONFIG_SET('HAVE_LIBBSD'): extra_libs += ' bsd'
if bld.CONFIG_SET('HAVE_LIBRT'): extra_libs += ' rt'
bld.SAMBA_SUBSYSTEM('LIBREPLACE_HOSTCC', bld.SAMBA_SUBSYSTEM('LIBREPLACE_HOSTCC',
REPLACE_HOSTCC_SOURCE, REPLACE_HOSTCC_SOURCE,

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

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

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

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

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

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

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

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

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

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

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