bb5841e304c8217b99e64d18f180c4a976ebcaac
[feed/packages.git] / net / samba4 / Makefile
1 # Based partially on (wongsyrone/hbl0307106015) versions
2 include $(TOPDIR)/rules.mk
3
4 PKG_NAME:=samba
5 PKG_VERSION:=4.9.13
6 PKG_RELEASE:=1
7
8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
9 PKG_SOURCE_URL:=https://ftp.heanet.ie/mirrors/ftp.samba.org/stable/ \
10 https://ftp.gwdg.de/pub/samba/stable/ \
11 https://ftp.riken.jp/net/samba/samba/stable/ \
12 http://www.nic.funet.fi/index/samba/pub/samba/stable/ \
13 http://samba.mirror.bit.nl/samba/ftp/stable/ \
14 https://download.samba.org/pub/samba/stable/
15 PKG_HASH:=ab18331e37766b13dbb07d1f115bda3d794917baf502d0ca2b2b8fff014b88f2
16
17 PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
18 PKG_LICENSE:=GPL-3.0-only
19 PKG_LICENSE_FILES:=COPYING
20
21 # samba4=(asn1_compile) e2fsprogs=(compile_et) nfs-kernel-server=(rpcgen)
22 HOST_BUILD_DEPENDS:=python/host nfs-kernel-server/host e2fsprogs/host
23 PKG_BUILD_DEPENDS:=samba4/host
24
25 PKG_CONFIG_DEPENDS:= \
26 CONFIG_SAMBA4_SERVER_NETBIOS \
27 CONFIG_SAMBA4_SERVER_AVAHI \
28 CONFIG_SAMBA4_SERVER_VFS \
29 CONFIG_SAMBA4_SERVER_VFSX \
30 CONFIG_SAMBA4_SERVER_QUOTAS \
31 CONFIG_SAMBA4_SERVER_ACL \
32 CONFIG_SAMBA4_SERVER_AD_DC \
33 CONFIG_SAMBA4_SERVER_WINBIND \
34 CONFIG_PACKAGE_kmod-fs-btrfs \
35 CONFIG_PACKAGE_kmod-fs-xfs
36
37 include $(INCLUDE_DIR)/package.mk
38 include $(INCLUDE_DIR)/host-build.mk
39 include $(INCLUDE_DIR)/kernel.mk
40 include $(INCLUDE_DIR)/version.mk
41
42 define Package/samba4/Default
43 SECTION:=net
44 CATEGORY:=Network
45 TITLE:=Samba $(PKG_VERSION)
46 URL:=https://www.samba.org/
47 endef
48
49 define Package/samba4/Default/description
50 The Samba software suite is a collection of programs that implements the
51 SMB/CIFS protocol for UNIX systems, allowing you to serve files and printers.
52
53 Samba 4 implements up-to protocol version SMB v3.1.1 (Win10), supports mDNS via AVAHI and a AD-DC setup via krb5.
54 NOTE: No cluster and printer support.
55 endef
56
57 define Package/samba4-libs
58 $(call Package/samba4/Default)
59 TITLE+= libs
60 DEPENDS:= +zlib +libtirpc +libpopt +libcomerr +libreadline \
61 +PACKAGE_libcap:libcap +PACKAGE_libpthread:libpthread +PACKAGE_libnettle:libnettle \
62 +PACKAGE_libgcrypt:libgcrypt +PACKAGE_libpam:libpam +PACKAGE_dbus:dbus +PACKAGE_libavahi-client:libavahi-client \
63 +SAMBA4_SERVER_VFS:attr \
64 +SAMBA4_SERVER_ACL:acl +SAMBA4_SERVER_ACL:attr \
65 +SAMBA4_SERVER_AVAHI:libavahi-client \
66 +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
67 endef
68
69 define Package/samba4-server
70 $(call Package/samba4/Default)
71 TITLE+= server
72 DEPENDS:= +samba4-libs
73 endef
74
75 define Package/samba4-server/description
76 installs: smbd, nmbd (daemon) smbpasswd pdbedit testparm
77
78 This provides the basic fileserver service and is the minimum needed to serve file shares.
79 HINT: https://fitzcarraldoblog.wordpress.com/2016/10/17/a-correct-method-of-configuring-samba-for-browsing-smb-shares-in-a-home-network/
80 endef
81
82 # BUG: We cant add DEPENDS:= +SAMBA4_SERVER_AD_DC:python-crypto, so this only happens here via select!
83 define Package/samba4-server/config
84 select PACKAGE_wsdd2
85 source "$(SOURCE)/Config.in"
86 endef
87
88 define Package/samba4-client
89 $(call Package/samba4/Default)
90 TITLE+= client
91 DEPENDS:= +samba4-libs
92 endef
93
94 define Package/samba4-client/description
95 installs: smbclient cifsdd
96
97 The smbclient program implements a simple ftp-like client for accessing SMB shares
98 endef
99
100 define Package/samba4-admin
101 $(call Package/samba4/Default)
102 TITLE+= admin tools
103 DEPENDS:= +samba4-libs
104 endef
105
106 define Package/samba4-admin/description
107 installs: net smbcontrol profiles rpcclient smbcacls smbcquotas
108
109 Administration tools collection
110 endef
111
112 define Package/samba4-utils
113 $(call Package/samba4/Default)
114 TITLE+= utils
115 DEPENDS:= +samba4-libs
116 endef
117
118 define Package/samba4-utils/description
119 installs: smbstatus smbtree smbget nmblookup mvxattr
120
121 Utilities collection
122 endef
123
124 TARGET_CFLAGS += -ffunction-sections -fdata-sections
125 TARGET_LDFLAGS += -Wl,--gc-sections
126
127 CONFIGURE_VARS += \
128 CPP="$(TARGET_CROSS)cpp"
129
130 CONFIGURE_CMD = ./buildtools/bin/waf
131 HOST_CONFIGURE_CMD = ./buildtools/bin/waf
132
133 # Strip options that WAF configure script does not recognize
134 CONFIGURE_ARGS:=$(filter-out \
135 --target=% \
136 --host=% \
137 --build=% \
138 --program-prefix=% \
139 --program-suffix=% \
140 --disable-nls \
141 --disable-ipv6 \
142 , $(CONFIGURE_ARGS))
143
144 HOST_CONFIGURE_ARGS:=$(filter-out \
145 --target=% \
146 --host=% \
147 --build=% \
148 --program-prefix=% \
149 --program-suffix=% \
150 --disable-nls \
151 --disable-ipv6 \
152 , $(HOST_CONFIGURE_ARGS))
153
154 # Waf needs the "configure" argument
155 CONFIGURE_ARGS:=configure $(CONFIGURE_ARGS)
156 HOST_CONFIGURE_ARGS:=configure $(HOST_CONFIGURE_ARGS)
157
158 CONFIGURE_ARGS += \
159 --hostcc="$(HOSTCC)" \
160 --cross-compile \
161 --cross-answers=cross-answers.txt \
162 --disable-cups \
163 --disable-iprint \
164 --disable-cephfs \
165 --disable-fault-handling \
166 --disable-glusterfs \
167 --disable-rpath \
168 --disable-rpath-install \
169 --disable-rpath-private-install \
170 --enable-fhs \
171 --without-automount \
172 --without-iconv \
173 --without-lttng \
174 --without-ntvfs-fileserver \
175 --without-pam \
176 --without-systemd \
177 --without-utmp \
178 --without-dmapi \
179 --without-fam \
180 --without-gettext \
181 --without-regedit \
182 --without-gpgme
183
184 HOST_CONFIGURE_ARGS += \
185 --hostcc="$(HOSTCC)" \
186 --disable-cups \
187 --disable-iprint \
188 --disable-cephfs \
189 --disable-fault-handling \
190 --disable-glusterfs \
191 --disable-rpath \
192 --disable-rpath-install \
193 --disable-rpath-private-install \
194 --enable-fhs \
195 --without-automount \
196 --without-iconv \
197 --without-lttng \
198 --without-ntvfs-fileserver \
199 --without-pam \
200 --without-systemd \
201 --without-utmp \
202 --without-dmapi \
203 --without-fam \
204 --without-gettext \
205 --without-regedit \
206 --without-gpgme
207
208 HOST_CONFIGURE_ARGS += --disable-avahi --without-quotas --without-acl-support --without-winbind \
209 --without-ad-dc --without-json-audit --without-libarchive --disable-python --nopyc --nopyo \
210 --disable-gnutls --without-dnsupdate --without-ads --without-ldap
211 HOST_CONFIGURE_VARS += python_LDFLAGS="" python_LIBDIR=""
212
213 # Optional AES-NI support - https://lists.samba.org/archive/samba-technical/2017-September/122738.html
214 # Support for Nettle wasn't comitted
215 ifdef CONFIG_TARGET_x86_64
216 CONFIGURE_ARGS += --accel-aes=intelaesni
217 else
218 CONFIGURE_ARGS += --accel-aes=none
219 endif
220
221 CONFIGURE_ARGS += \
222 --with-lockdir=/var/lock \
223 --with-logfilebase=/var/log \
224 --with-piddir=/var/run \
225 --with-privatedir=/etc/samba
226
227 ifeq ($(CONFIG_SAMBA4_SERVER_AVAHI),y)
228 CONFIGURE_ARGS += --enable-avahi
229 else
230 CONFIGURE_ARGS += --disable-avahi
231 endif
232 ifeq ($(CONFIG_SAMBA4_SERVER_QUOTAS),y)
233 CONFIGURE_ARGS += --with-quotas
234 else
235 CONFIGURE_ARGS += --without-quotas
236 endif
237 ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
238 CONFIGURE_ARGS += --with-acl-support
239 else
240 CONFIGURE_ARGS += --without-acl-support
241 endif
242 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
243 CONFIGURE_ARGS += --enable-gnutls --with-dnsupdate --with-ads --with-ldap
244 TARGET_CFLAGS := -I$(STAGING_DIR)/usr/include/python2.7 $(TARGET_CFLAGS)
245 else
246 CONFIGURE_ARGS += --without-ad-dc --without-json-audit --without-libarchive --disable-python --nopyc --nopyo \
247 --disable-gnutls --without-dnsupdate --without-ads --without-ldap
248 CONFIGURE_VARS += \
249 python_LDFLAGS="" \
250 python_LIBDIR=""
251 endif
252 ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
253 CONFIGURE_ARGS += --with-winbind
254 else
255 CONFIGURE_ARGS += --without-winbind
256 endif
257
258 SAMBA4_IDMAP_MODULES :=
259 SAMBA4_IDMAP_MODULES_SHARED :=
260 SAMBA4_PDB_MODULES :=pdb_smbpasswd,pdb_tdbsam,
261 SAMBA4_AUTH_MODULES :=auth_builtin,auth_sam,auth_unix,auth_script,
262 SAMBA4_VFS_MODULES :=vfs_default,
263 SAMBA4_VFS_MODULES_SHARED :=
264 ifeq ($(CONFIG_SAMBA4_SERVER_VFS),y)
265 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,
266 ifeq ($(CONFIG_PACKAGE_kmod-fs-btrfs),y)
267 SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_btrfs,
268 endif
269 endif
270 ifeq ($(CONFIG_SAMBA4_SERVER_VFSX),y)
271 SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_virusfilter,vfs_shell_snap,vfs_commit,vfs_worm,vfs_aio_fork,vfs_aio_pthread,vfs_netatalk,vfs_dirsort,vfs_fileid,
272 ifeq ($(CONFIG_PACKAGE_kmod-fs-xfs),y)
273 SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_linux_xfs_sgid,
274 endif
275 endif
276 ifeq ($(CONFIG_SAMBA4_SERVER_QUOTAS),y)
277 SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_default_quota,
278 endif
279 ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
280 SAMBA4_VFS_MODULES :=$(SAMBA4_VFS_MODULES)vfs_posixacl,
281 SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_acl_xattr,vfs_acl_tdb,
282 # vfs_zfsacl needs https://github.com/zfsonlinux/zfs/tree/master/include/sys/zfs_acl.h
283 # vfs_nfs4acl_xattr needs https://github.com/notriddle/libdrpc/blob/master/rpc/xdr.h
284 endif
285 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
286 SAMBA4_PDB_MODULES :=$(SAMBA4_PDB_MODULES)pdb_samba_dsdb,pdb_ldapsam,
287 SAMBA4_AUTH_MODULES :=$(SAMBA4_AUTH_MODULES)auth_samba4,
288 SAMBA4_VFS_MODULES_SHARED :=$(SAMBA4_VFS_MODULES_SHARED)vfs_audit,vfs_extd_audit,vfs_full_audit,
289 endif
290 ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
291 SAMBA4_IDMAP_MODULES :=$(SAMBA4_IDMAP_MODULES)idmap_tdb,idmap_passdb,idmap_nss,nss_info_template,
292 SAMBA4_IDMAP_MODULES_SHARED :=$(SAMBA4_IDMAP_MODULES_SHARED)idmap_autorid,idmap_rid,idmap_hash,idmap_tdb2,idmap_script,
293 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
294 SAMBA4_IDMAP_MODULES_SHARED :=$(SAMBA4_IDMAP_MODULES_SHARED)idmap_ad,idmap_ldap,idmap_rfc2307,
295 # idmap_ad needs --with-ads
296 # idmap_rfc2307 needs ldap headers
297 endif
298 SAMBA4_AUTH_MODULES :=$(SAMBA4_AUTH_MODULES)auth_winbind,
299 endif
300
301 SAMBA4_MODULES :=${SAMBA4_VFS_MODULES}${SAMBA4_AUTH_MODULES}${SAMBA4_PDB_MODULES}${SAMBA4_IDMAP_MODULES}
302 SAMBA4_MODULES_SHARDED :=${SAMBA4_VFS_MODULES_SHARED}${SAMBA4_IDMAP_MODULES_SHARED}
303
304 CONFIGURE_ARGS += \
305 --with-static-modules=$(SAMBA4_MODULES)!DEFAULT,!FORCED \
306 --with-shared-modules=$(SAMBA4_MODULES_SHARDED)!DEFAULT,!FORCED
307
308 HOST_CONFIGURE_ARGS += \
309 --with-static-modules=!DEFAULT,!FORCED \
310 --with-shared-modules=!DEFAULT,!FORCED
311
312 # Setup build/install targets
313 # CONFIG_PACKAGE_samba4-server
314 BUILD_TARGETS_SERVER :=smbd/smbd,smbpasswd,pdbedit,testparm
315 # Optional server targets
316 ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
317 BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),sharesec
318 endif
319 ifeq ($(CONFIG_SAMBA4_SERVER_NETBIOS),y)
320 BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),nmbd
321 endif
322 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
323 BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),samba,nsstest,ntlm_auth,samba4kinit,samba4kgetcred,samba4kpasswd,samba4ktutil
324 endif
325 ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
326 BUILD_TARGETS_SERVER :=$(BUILD_TARGETS_SERVER),winbindd,wbinfo,winbind_krb5_locator
327 endif
328 # CONFIG_PACKAGE_samba4-client
329 BUILD_TARGETS_CLIENT :=client/smbclient,client/cifsdd
330 # CONFIG_PACKAGE_samba4-admin
331 BUILD_TARGETS_ADMIN :=net,smbcontrol,profiles,rpcclient,smbcacls,smbcquotas,eventlogadm
332 # CONFIG_PACKAGE_samba4-utils
333 BUILD_TARGETS_UTILS :=smbstatus,smbtree,smbget,mvxattr,nmblookup
334
335 # lib bundling
336 # NOTE: bundle + make private, we want to avoid version configuration (build, link) conflicts
337 CONFIGURE_ARGS += --builtin-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka
338 HOST_CONFIGURE_ARGS += --builtin-libraries=replace --nonshared-binary=asn1_compile
339
340 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
341 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
342 else
343 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
344 endif
345 # BUG: --private-libraries, Does not work for System possible libs, will not get "samba4" suffix!
346 CONFIGURE_ARGS += --private-libraries=talloc,tevent,tevent-util,texpect,tdb,ldb,tdr,cmocka,replace
347 # CONFIGURE_ARGS += --disable-symbol-versions
348
349 define Host/Compile
350 (cd $(HOST_BUILD_DIR); \
351 ./buildtools/bin/waf build \
352 --targets=asn1_compile \
353 )
354 endef
355
356 define Host/Install
357 $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
358 $(INSTALL_BIN) $(HOST_BUILD_DIR)/bin/asn1_compile $(STAGING_DIR_HOSTPKG)/bin/
359 endef
360
361 define Build/Prepare
362 $(Build/Prepare/Default)
363 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),)
364 # un-bundle dnspython
365 $(SED) '/"dns.resolver":/d' $(PKG_BUILD_DIR)/third_party/wscript
366 # unbundle iso8601
367 $(SED) '/"iso8601":/d' $(PKG_BUILD_DIR)/third_party/wscript
368 endif
369 endef
370
371 define Build/Configure
372 $(CP) ./waf-cross-answers/$(ARCH).txt $(PKG_BUILD_DIR)/cross-answers.txt
373 echo 'Checking uname machine type: "$(ARCH)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
374 echo 'Checking uname release type: "$(LINUX_VERSION)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
375 echo 'Checking uname version type: "$(VERSION_DIST) Linux-$(LINUX_VERSION) $(shell date +%Y-%m-%d)"' >> $(PKG_BUILD_DIR)/cross-answers.txt
376 # NOTE: For some unknown reason this answer is not needed on some hosts/distros, yet needed on others?
377 echo 'Checking whether POSIX capabilities are available: OK' >> $(PKG_BUILD_DIR)/cross-answers.txt
378 $(call Build/Configure/Default)
379 endef
380
381 # BUG: We need to use "waf install --targets=" otherwise a "make install" or "waf install" will retrigger a full recompile of all possible targets!
382 define Build/Compile
383 (cd $(PKG_BUILD_DIR); \
384 ./buildtools/bin/waf install \
385 --jobs=$(shell nproc) \
386 --destdir="$(PKG_INSTALL_DIR)" \
387 --targets=$(SAMBA4_MODULES)$(SAMBA4_MODULES_SHARDED)$(BUILD_TARGETS_SERVER),$(BUILD_TARGETS_UTILS),$(BUILD_TARGETS_ADMIN),$(BUILD_TARGETS_CLIENT) \
388 )
389 endef
390
391 # No default install see above
392 define Build/Install
393 endef
394
395 define Package/samba4-libs/install
396 $(INSTALL_DIR) $(1)/usr/lib
397 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
398 $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/*.so* $(1)/usr/lib/
399
400 $(INSTALL_DIR) $(1)/usr/lib/samba/vfs $(1)/usr/lib/samba/idmap $(1)/usr/lib/samba/ldb $(1)/usr/lib/samba/krb5
401 if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/idmap ]; then \
402 $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/idmap $(1)/usr/lib/samba/; \
403 fi
404 if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/vfs ]; then \
405 $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/vfs $(1)/usr/lib/samba/; \
406 fi
407 if [ -d $(PKG_INSTALL_DIR)/usr/lib/samba/krb5 ]; then \
408 $(CP) $(PKG_INSTALL_DIR)/usr/lib/samba/krb5 $(1)/usr/lib/samba/; \
409 fi
410 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
411 $(INSTALL_DIR) $(1)/usr/lib/python2.7
412 $(CP) $(PKG_INSTALL_DIR)/usr/lib/python2.7 $(1)/usr/lib/
413 endif
414 endef
415
416 define Package/samba4-client/install
417 $(INSTALL_DIR) $(1)/usr/bin
418 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbclient,cifsdd} $(1)/usr/bin/
419 endef
420
421 define Package/samba4-admin/install
422 $(INSTALL_DIR) $(1)/usr/bin
423 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{net,smbcontrol,profiles,rpcclient,smbcacls,smbcquotas} $(1)/usr/bin/
424 $(INSTALL_DIR) $(1)/usr/sbin
425 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/eventlogadm $(1)/usr/sbin/
426 endef
427
428 define Package/samba4-utils/install
429 $(INSTALL_DIR) $(1)/usr/bin
430 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbstatus,smbtree,smbget,mvxattr,nmblookup} $(1)/usr/bin/
431 endef
432
433 define Package/samba4-server/install
434 $(INSTALL_DIR) $(1)/usr/bin
435 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{smbpasswd,pdbedit,testparm} $(1)/usr/bin/
436 $(INSTALL_DIR) $(1)/usr/sbin
437 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbd $(1)/usr/sbin/
438 ifeq ($(CONFIG_SAMBA4_SERVER_AD_DC),y)
439 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{samba-tool,ntlm_auth,smbtar} $(1)/usr/bin/
440 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{samba,samba-gpupdate,samba_dnsupdate,samba_kcc,samba_spnupdate,samba_upgradedns} $(1)/usr/sbin/
441 # waf does not install those?
442 $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/{samba4kinit,samba4kgetcred,samba4kpasswd,samba4ktutil} $(1)/usr/bin/
443 endif
444 ifeq ($(CONFIG_SAMBA4_SERVER_NETBIOS),y)
445 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/nmbd $(1)/usr/sbin/
446 endif
447 ifeq ($(CONFIG_SAMBA4_SERVER_WINBIND),y)
448 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/wbinfo $(1)/usr/bin/
449 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/winbindd $(1)/usr/sbin/
450 endif
451 ifeq ($(CONFIG_SAMBA4_SERVER_ACL),y)
452 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sharesec $(1)/usr/bin/
453 endif
454 $(INSTALL_DIR) $(1)/etc/config $(1)/etc/samba $(1)/etc/init.d
455 $(INSTALL_CONF) ./files/samba.config $(1)/etc/config/samba4
456 $(INSTALL_DATA) ./files/smb.conf.template $(1)/etc/samba
457 $(INSTALL_BIN) ./files/samba.init $(1)/etc/init.d/samba4
458 endef
459
460 define Package/samba4-server/conffiles
461 /etc/config/samba4
462 /etc/samba/smb.conf.template
463 /etc/samba/smb.conf
464 /etc/samba/smbpasswd
465 /etc/samba/secrets.tdb
466 /etc/samba/passdb.tdb
467 /etc/samba/idmap.ldb
468 /etc/samba/lmhosts
469 /etc/nsswitch.conf
470 /etc/krb5.conf
471 endef
472
473 $(eval $(call HostBuild))
474 $(eval $(call BuildPackage,samba4-libs))
475 $(eval $(call BuildPackage,samba4-server))
476 $(eval $(call BuildPackage,samba4-client))
477 $(eval $(call BuildPackage,samba4-admin))
478 $(eval $(call BuildPackage,samba4-utils))