Get the following error when trying to build Samba 4.16.0 on FreeBSD 12.3: PYTHONHASHSEED=1 WAF_MAKE=1 ./buildtools/bin/waf build Waf: Entering directory `/export/software/Build/samba/samba-4.16.0/bin/default' Selected embedded Heimdal build Checking project rules ... ERROR: target pamwinbind.objlist: dependency target samba_intl is missing samba_builtin_subsystem Build options: # project samba configured on Tue Mar 22 14:50:07 2022 by # waf 2.0.22 (abi 20, python 3080cf0 on freebsd12) # using ./buildtools/bin/waf configure --prefix=/liu/pkg/samba/4.16.0 --sysconfdir=/etc/samba --localstatedir=/var/samba --mandir=/liu/pkg/samba/4.16.0/share --without-ad-dc --disable-cups --with-shared-modules=nfs4_acls,vfs_zfsacl,vfs_dfs_samba4 --with-privatedir=/etc/samba/private --with-configdir=/etc/samba --with-logfilebase=/var/samba/logs --accel-aes=intelaesni # Building with gcc 10.3.0
Still the same build error with Samba 4.16.2 and FreeBSD 12.3. I've tried to understand the build magic to find where this problem occurs but alas so far no go. Any suggestions?
This issue is also blocking the update to samba-4.16 in the OpenBSD ports tree.
A short term solution is passing --without-gettext to configure
(In reply to Stefan Metzmacher from comment #3) Thank you Stefan, this seems to work around the problem indeed. We're now testing an update to 4.16.2. I'm not sure how to add OpenBSD to the affected systems list. I didn't look too deep into the waf guts, but I suspect that this problem may surface on any system that doesn't ship gettext in libc?
(In reply to Jérémie Courrèges-Anglas from comment #4) This first fix would be this: --- a/lib/replace/wscript +++ b/lib/replace/wscript @@ -961,7 +961,10 @@ def build(bld): target='stdbool.h', enabled = not bld.CONFIG_SET('HAVE_STDBOOL_H')) - bld.SAMBA_SUBSYSTEM('samba_intl', source='', use_global_deps=False,deps=bld.env.intl_libs) + bld.SAMBA_SUBSYSTEM('samba_intl', source='', + provide_builtin_linking=True, + use_global_deps=False, + deps=bld.env.intl_libs) def testonly(ctx): '''run talloc testsuite''' But with that it still builds completely and someone needs to look at the rest.