Samba4 on non-Linux OSes?

Jelmer Vernooij jelmer at samba.org
Thu Jun 10 17:45:42 MDT 2010


Hi John,

On Thu, 2010-06-10 at 16:16 -0700, John Danks wrote:
> Is Samba4 expected compile and run on non-Linux OSes? I remember
> reading something like that in the past but now I can't find any
> definitive statements either way.
Yeah, we do try to get it to build on other platforms and we have a
build farm to be able to see the failures on other platforms. As far as
I know we don't have an OpenBSD box at the moment.

> I'm attempting to build and test the latest s4 from git on OpenBSD 4.7
> (amd64). The build completes but the quicktest fails, complaining
> about a talloc double free. The steps I used are:
> 
> $ cd samba-master/source4
> $ ./autogen.sh
> $ ./configure.developer (output below)
> $ gmake
> $ gmake quicktest
This looks reasonable.

> WAF_MAKE=1 ../buildtools/bin/waf test --quick
> 'test' finished successfully (0.000s)
> Waf: Entering directory `/home/johnd/samba-master/source4/bin'
> Waf: Leaving directory `/home/johnd/samba-master/source4/bin'
> 'build' finished successfully (6.873s)
> test: running (/usr/bin/perl ../selftest/selftest.pl --prefix=./st
> --builddir=. --srcdir=. --exclude=./selftest/skip
> --testlist="./selftest/tests.sh|"  --exclude=./selftest/slow --quick
> --include=./selftest/quick --socket-wrapper  && touch ./st/st_done) |
> /usr/local/bin/python -u ../selftest/filter-subunit
> --expected-failures=./selftest/knownfail | /usr/local/bin/python -u
> ../selftest/format-subunit --prefix=./st --immediate
> tap2subunit: Command not found.
> Version 4.0.0alpha12-GIT-bcc4383
> OPTIONS  --configfile=$SMB_CONF_PATH --maximum-runtime=1200
> --target=samba4 --basedir=/home/johnd/samba-master/source4/st/s4client
> --option=torture:progress=no --format=subunit
> --option=torture:quick=yes
> pdc_fsmo_init: no domain object present: (skip loading of domain details)
> 
> naming_fsmo_init: no partitions dn present: (skip loading of naming
> contexts details)
> 
> naming_fsmo_init: no partitions dn present: (skip loading of naming
> contexts details)
> 
> naming_fsmo_init: no partitions dn present: (skip loading of naming
> contexts details)
> 
> PROVISIONING DC...dos charset 'CP850' unavailable - using ASCII
> schema_load_init: dsdb_set_schema() failed: 32:No such object:
> del_trans error on
> CN=Schema,CN=Configuration,DC=samba,DC=example,DC=com: prepare_commit
> error on CN=Schema,CN=Configuration,DC=samba,DC=example,DC=com: Failed
> to store index records in transaction commit: Other
> talloc: double free error - first free may be at
> ../dsdb/samdb/ldb_modules/schema_load.c:237
> Bad talloc magic value - double free
> Abort trap (core dumped)
The double free definitely is strange, it's probably a bug that is only
triggered on OpenBSD for some reason.

> Unable to provision:
> NSS_WRAPPER_PASSWD="/home/johnd/samba-master/source4/st/dc/etc/passwd"
> NSS_WRAPPER_GROUP="/home/johnd/samba-master/source4/st/dc/etc/group"
> ./setup/provision
> --configfile=/home/johnd/samba-master/source4/st/dc/etc/smb.conf
> --host-name=localdc1 --host-ip=127.0.0.1 --quiet --domain=SAMBADOMAIN
> --realm=SAMBA.EXAMPLE.COM --adminpass=locDCpass0
> --krbtgtpass=krbtgtlocDCpass0 --machinepass=machinelocDCpass0
> --root=johnd --server-role="domain controller"
> 
> A summary with detailed information can be found in:
>   ./st/summary
> 
> ALL OK (0 tests in 0 testsuites)
> ERROR: test command failed to complete
> gmake: *** [quicktest] Error 1
> 
> 
> -----
> 
> OpenBSD has ports for talloc and tdb but the versions are slightly
> older than what configure is checking for. I was going to update the
> ports but it seems that the official websites don't have the latest
> distfiles. For example, http://talloc.samba.org/ links to
> http://samba.org/ftp/talloc/ which only has talloc-2.0.1.tar.gz while
> configure is checking for >= 2.0.3. Is this intended to make sure
> people are building with the latest in-tree version of these
> libraries?
Yep.

> So then I tried to use 'waf dist' to make new distfiles as described
> on http://wiki.samba.org/index.php/Waf#creating_distribution_tarballs:_waf_dist
> but it only seems to create a dist file for all of s4 rather just
> talloc, tdb, etc:
That's correct, you need to configure and run 'make dist' in one of the
individual source directories (lib/talloc, lib/tdb, etc) to build the
respective dist tarballs.

Cheers,

jelmer


More information about the samba-technical mailing list