ports/183885: net/samba4: use net/mDNSResponder to provide Zeroconf support
Bradley T. Hughes
bradleythughes at fastmail.fm
Tue Nov 12 09:50:01 UTC 2013
>Number: 183885
>Category: ports
>Synopsis: net/samba4: use net/mDNSResponder to provide Zeroconf support
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Tue Nov 12 09:50:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Bradley T. Hughes
>Release: 10.0-BETA3
>Organization:
>Environment:
FreeBSD freebsd10.local 10.0-BETA3 FreeBSD 10.0-BETA3 #0 r257580: Sun Nov 3 19:43:01 UTC 2013 root at snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
Samba supports using libdns_sd from net/mDNSResponder. The configure wscript and build is slightly broken, though. The attached patch adds support to source3/wscript and source3/wscript_build to detect dns_sd.h and libdns_sd, with a small compile fix for source3/client/dnsbrowse.c, and uses OPTIONS_RADIO to let port users choose between Avahi, mDNSResponder, or no Zeroconf support.
I haven't submitted this upstream (yet).
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
diff -urN /usr/ports/net/samba4/Makefile samba4-with-mDNSResponder/Makefile
--- /usr/ports/net/samba4/Makefile 2013-09-21 00:10:23.000000000 +0200
+++ samba4-with-mDNSResponder/Makefile 2013-11-12 10:36:01.006596453 +0100
@@ -3,7 +3,7 @@
PORTNAME?= ${SAMBA4_PORTNAME}
PORTVERSION?= ${SAMBA4_VERSION}
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES?= net
MASTER_SITES= ${MASTER_SITE_SAMBA}
MASTER_SITE_SUBDIR= samba/stable samba/rc
@@ -111,7 +111,7 @@
SAMBA4_BUNDLED_LIBS+= !ldb
##############################################################################
# Options
-OPTIONS_DEFINE= ACL_SUPPORT ADS AIO_SUPPORT AVAHI CUPS DEBUG \
+OPTIONS_DEFINE= ACL_SUPPORT ADS AIO_SUPPORT CUPS DEBUG \
DNSUPDATE FAM_SUPPORT LDAP PAM_SMBPASS \
PTHREADPOOL QUOTAS SWAT SYSLOG UTMP WINBIND
@@ -135,6 +135,10 @@
DEVELOPER_DESC= With development support
+OPTIONS_RADIO= ZEROCONF
+OPTIONS_RADIO_ZEROCONF= AVAHI MDNSRESPONDER
+OPTIONS_DEFAULT+= AVAHI
+
OPTIONS_SINGLE= DNS
OPTIONS_SINGLE_DNS= NSUPDATE BIND98 BIND99
@@ -256,6 +260,13 @@
CONFIGURE_ARGS+= --disable-avahi
.endif
+.if ${PORT_OPTIONS:MMDNSRESPONDER}
+LIB_DEPENDS+= dns_sd:${PORTSDIR}/net/mDNSResponder
+CONFIGURE_ARGS+= --enable-dnssd
+.else
+CONFIGURE_ARGS+= --disable-dnssd
+.endif
+
.if ${PORT_OPTIONS:MCUPS}
LIB_DEPENDS+= cups:${PORTSDIR}/print/cups-client
CONFIGURE_ARGS+= --enable-cups --enable-iprint
diff -urN /usr/ports/net/samba4/files/patch-source3__client__dnsbrowse.c samba4-with-mDNSResponder/files/patch-source3__client__dnsbrowse.c
--- /usr/ports/net/samba4/files/patch-source3__client__dnsbrowse.c 1970-01-01 01:00:00.000000000 +0100
+++ samba4-with-mDNSResponder/files/patch-source3__client__dnsbrowse.c 2013-11-12 10:20:40.903191132 +0100
@@ -0,0 +1,11 @@
+--- source3/client/dnsbrowse.c.orig 2013-11-12 10:20:03.145351798 +0100
++++ source3/client/dnsbrowse.c 2013-11-12 10:20:11.762761273 +0100
+@@ -91,7 +91,7 @@
+ }
+ }
+
+- TALLOC_FREE(fdset);
++ TALLOC_FREE(ctx);
+ DNSServiceRefDeallocate(mdns_conn_sdref);
+ }
+
diff -urN /usr/ports/net/samba4/files/patch-source3__wscript samba4-with-mDNSResponder/files/patch-source3__wscript
--- /usr/ports/net/samba4/files/patch-source3__wscript 2013-02-18 15:24:56.000000000 +0100
+++ samba4-with-mDNSResponder/files/patch-source3__wscript 2013-11-12 10:07:57.220326410 +0100
@@ -1,6 +1,14 @@
---- ./source3/wscript.orig 2013-02-05 12:25:26.000000000 +0000
-+++ ./source3/wscript 2013-02-15 17:54:40.099886239 +0000
-@@ -475,7 +475,7 @@
+--- source3/wscript.orig 2013-05-21 08:48:46.000000000 +0200
++++ source3/wscript 2013-11-12 10:07:31.657183050 +0100
+@@ -35,6 +35,7 @@
+ opt.SAMBA3_ADD_OPTION('utmp')
+ opt.SAMBA3_ADD_OPTION('pthreadpool', with_name="enable", without_name="disable", default=True)
+ opt.SAMBA3_ADD_OPTION('avahi', with_name="enable", without_name="disable")
++ opt.SAMBA3_ADD_OPTION('dnssd', with_name="enable", without_name="disable")
+ opt.SAMBA3_ADD_OPTION('iconv')
+ opt.SAMBA3_ADD_OPTION('acl-support')
+ opt.SAMBA3_ADD_OPTION('dnsupdate')
+@@ -502,7 +503,7 @@
conf.CHECK_CODE('struct aiocb a; return aio_return(&a);', 'HAVE_AIO_RETURN', msg='Checking for aio_return', headers='aio.h', lib='aio rt')
conf.CHECK_CODE('struct aiocb a; return aio_error(&a);', 'HAVE_AIO_ERROR', msg='Checking for aio_error', headers='aio.h', lib='aio rt')
conf.CHECK_CODE('struct aiocb a; return aio_cancel(1, &a);', 'HAVE_AIO_CANCEL', msg='Checking for aio_cancel', headers='aio.h', lib='aio rt')
@@ -9,7 +17,25 @@
if not conf.CONFIG_SET('HAVE_AIO'):
conf.DEFINE('HAVE_NO_AIO', '1')
else:
-@@ -1644,26 +1644,8 @@
+@@ -812,6 +813,17 @@
+ conf.SET_TARGET_TYPE('avahi-common', 'EMPTY')
+ conf.SET_TARGET_TYPE('avahi-client', 'EMPTY')
+
++ if Options.options.with_dnssd:
++ conf.env.with_dnssd = True
++ if not conf.CHECK_HEADERS('dns_sd.h'):
++ conf.env.with_dnssd = False
++ if not conf.CHECK_FUNCS_IN('DNSServiceRegister', 'dns_sd'):
++ conf.env.with_dnssd = False
++ if conf.env.with_dnssd:
++ conf.DEFINE('WITH_DNSSD_SUPPORT', 1)
++ else:
++ conf.SET_TARGET_TYPE('dns_sd', 'EMPTY')
++
+ if Options.options.with_iconv:
+ conf.env.with_iconv = True
+ if not conf.CHECK_FUNCS_IN('iconv_open', 'iconv', headers='iconv.h'):
+@@ -1671,26 +1683,8 @@
if PTHREAD_LDFLAGS == 'error':
if conf.CHECK_FUNCS_IN('pthread_attr_init', 'pthread'):
@@ -37,7 +63,7 @@
if PTHREAD_CFLAGS != 'error' and PTHREAD_LDFLAGS != 'error':
conf.ADD_CFLAGS(PTHREAD_CFLAGS)
-@@ -1693,8 +1675,8 @@
+@@ -1720,8 +1714,8 @@
auth_script vfs_readahead vfs_xattr_tdb vfs_posix_eadb
vfs_streams_xattr vfs_streams_depot vfs_acl_xattr vfs_acl_tdb
vfs_smb_traffic_analyzer vfs_preopen vfs_catia vfs_scannedonly
@@ -48,7 +74,7 @@
vfs_crossrename vfs_linux_xfs_sgid
vfs_time_audit idmap_autorid idmap_tdb2
idmap_rid idmap_hash'''))
-@@ -1707,7 +1689,7 @@
+@@ -1734,7 +1728,7 @@
if Options.options.enable_selftest or Options.options.developer:
default_shared_modules.extend(TO_LIST('vfs_fake_acls'))
@@ -57,12 +83,12 @@
if conf.CONFIG_SET('AD_DC_BUILD_IS_ENABLED'):
default_static_modules.extend(TO_LIST('pdb_samba_dsdb auth_samba4 vfs_dfs_samba4'))
-@@ -1740,7 +1722,7 @@
+@@ -1767,7 +1761,7 @@
default_static_modules.extend(TO_LIST('charset_macosxfs'))
if conf.CONFIG_SET('HAVE_GPFS'):
- default_shared_modules.extend(TO_LIST('vfs_gpfs'))
+ default_shared_modules.extend(TO_LIST('vfs_gpfs'))
- explicit_shared_modules = TO_LIST(Options.options.shared_modules, delimiter=',')
- explicit_static_modules = TO_LIST(Options.options.static_modules, delimiter=',')
+ if conf.CONFIG_SET('SAMBA_FAM_LIBS'):
+ default_shared_modules.extend(TO_LIST('vfs_notify_fam'))
diff -urN /usr/ports/net/samba4/files/patch-source3__wscript_build samba4-with-mDNSResponder/files/patch-source3__wscript_build
--- /usr/ports/net/samba4/files/patch-source3__wscript_build 2013-02-18 15:24:56.000000000 +0100
+++ samba4-with-mDNSResponder/files/patch-source3__wscript_build 2013-11-12 10:13:59.990828807 +0100
@@ -1,5 +1,5 @@
---- ./source3/wscript_build.orig 2012-12-11 17:10:13.000000000 +0000
-+++ ./source3/wscript_build 2013-02-05 04:25:57.199878484 +0000
+--- source3/wscript_build.orig 2013-07-01 09:15:40.000000000 +0200
++++ source3/wscript_build 2013-11-12 10:13:36.004046408 +0100
@@ -1,7 +1,8 @@
#!/usr/bin/env python
@@ -28,7 +28,7 @@
source=WINBIND_WINS_NSS_SRC,
deps='''param libsmb LIBTSOCKET''',
realname='libnss_wins.so.2',
-@@ -972,10 +982,11 @@
+@@ -972,10 +982,12 @@
LIBAFS_SETTOKEN
RPC_SERVER
NDR_SMBXSRV
@@ -38,10 +38,19 @@
NDR_SMB_ACL
netapi
+ inotify
++ dns_sd
''' + bld.env['dmapi_lib'],
private_library=True,
vars=locals())
-@@ -1629,7 +1640,7 @@
+@@ -1277,6 +1289,7 @@
+ libsmb
+ msrpc3
+ RPC_NDR_SRVSVC
++ dns_sd
+ cli_smb_common''')
+
+ bld.SAMBA3_BINARY('net',
+@@ -1629,7 +1642,7 @@
bld.SAMBA3_PYTHON('pylibsmb',
source='libsmb/pylibsmb.c',
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list