[Samba] Patches for Samba 4.12.0rc3 for OmniOS

Peter Eriksson pen at lysator.liu.se
Fri Feb 21 21:51:15 UTC 2020


A little summary of building Samba 4.12.0rc3 on OmniOS:

The following 4 (5) small patches are needed in order to compile and run Samba 4.12.0rc3 on the latest OmniOS r151032p (OpenSolaris/Illumos variant):

1. ARRAY_SIZE is already defined in <sys/sysmacros.h> on OmniOS, put an #ifndef around it in lib/replace/replace.h (can be ignored but causes a gazillion compiler warnings :-):

   https://www.grebo.net/~peter/omnios/samba/4.12/array_size.patch <https://www.grebo.net/~peter/omnios/samba/4.12/array_size.patch>

2. s_addr is a define and causes compilation problems (errors), change the argument to “xs_addr” instead in lib/tsocket/tsocket.h and tsocket_bsd.c:

   https://www.grebo.net/~peter/omnios/samba/4.12/s_addr.patch <https://www.grebo.net/~peter/omnios/samba/4.12/s_addr.patch>

3. The “wscript” build tool generates invalid compiler/linker options (when compiling with Gcc8) - build/link failures:

   https://www.grebo.net/~peter/omnios/samba/4.12/wscript.patch <https://www.grebo.net/~peter/omnios/samba/4.12/wscript.patch>

4. Errors about tdb_mutex_init failing with Device Busy (when using robust mutex:es) at runtime (“net ads info”):

tdb(/var/samba/lock/gencache.tdb): tdb_open_ex: tdb_mutex_init failed for /var/samba/lock/gencache.tdb: Device busy
tdb(/var/samba/lock/gencache.tdb): tdb_open_ex: tdb_mutex_init failed for /var/samba/lock/gencache.tdb: Device busy
tdb(/var/samba/lock/gencache.tdb): tdb_open_ex: tdb_mutex_init failed for /var/samba/lock/gencache.tdb: Device busy

This patch fixes this:

   https://www.grebo.net/~peter/omnios/samba/4.12/mutexattr.patch <https://www.grebo.net/~peter/omnios/samba/4.12/mutexattr.patch>

(Probably an OmniOS bug, but it’s an easy patch in Samba so…)

5. fmemopen() doesn’t exist on OmniOS. This is just a test program and it’s not built by default in rc3 but anyway:

   https://www.grebo.net/~peter/omnios/samba/4.12/fmemopen.patch <https://www.grebo.net/~peter/omnios/samba/4.12/fmemopen.patch>


In order to build it I also compiled and built local versions of:

gmp-6.2.0
gnutls-3.6.12
jansson-2.12
libarchive-3.4.2
libidn2-2.3.0
libtasn1-4.16.0
libunistring-0.9.10
nettle-3.5.1
openldap-2.4.49
p11-kit-0.23.20

I built Samba as a 64 bit binary (gcc -m64). 

With -m32 anything that uses Python fails since the OmniOS Python installation seems to be 64 bit.

- Peter



More information about the samba mailing list