I had some (expected) problems compiling samba 2.2.7 on LynxOS 3.0.1
Almost all is due to the Header vfs.h
* Lynos has a weird <sys/vfs.h>: It includes itself <vfs.h>. But unfortunatly it gets the samba/include/vfs.h instead of the <vfs.h> header file. I worked around this issue with CC="gcc -I/usr/include" to get the /usr/include files first.
* Somehow it generates warnings when #including files like <vfs.h>. I worked around this with defining -D__NO_INCLUDE_WARN__ So the configure statement read:
export CC="gcc -D__NO_INCLUDE_WARN__ -I/usr/include"; configure
* The networking functions are located in -lnetinet aka -lbsd. This library is not detected at all.
IMHO there should be a AC_CHECK_LIB(netinet, gethostbyaddr) in configure.in. I can not confirm this because configure.in seems to rely on autoconf 2.13 (?)
* Both vfs.h (The system and samba) define a function vfs_mkdir with a different prototype. I changed vfs_mkdir in samba to samba_vfs_mkdir.
*** I would recommend to rename vfs.h ***
* There is a spurious uint in the source....
A trivial patch for vfs_mkdir and the uint issue is attached.
Unfortunatly there is no crypt() available on Lynxos. So you have to work around this issue somehow.
Cheers,
Olaf
--
Dr. Olaf Flebbe Phone +49 (0)7071-9457-254
Software Solutions FAX +49 (0)7071-9457-211
science + computing ag
Hagellocher Weg 73-75
D-72070 Tuebingen Email: [EMAIL PROTECTED]
The amount of work to be done increases in proportion to the
amount of work already completed.
diff -ur samba-2.2.7/source/include/proto.h samba-2.2.7.lynx/source/include/proto.h --- samba-2.2.7/source/include/proto.h Wed Nov 20 02:31:32 2002 +++ samba-2.2.7.lynx/source/include/proto.h Tue Nov 26 10:33:59 2002 @@ -4866,7 +4866,7 @@ BOOL smbd_vfs_init(connection_struct *conn); BOOL vfs_directory_exist(connection_struct *conn, const char *dname, SMB_STRUCT_STAT *st); -int vfs_mkdir(connection_struct *conn, char *const fname, mode_t mode); +int samba_vfs_mkdir(connection_struct *conn, char *const fname, mode_t mode); char *vfs_getwd(connection_struct *conn, char *unix_path); BOOL vfs_object_exist(connection_struct *conn, const char *fname,SMB_STRUCT_STAT *sbuf); BOOL vfs_file_exist(connection_struct *conn, const char *fname,SMB_STRUCT_STAT *sbuf); diff -ur samba-2.2.7/source/libsmb/cli_samr.c samba-2.2.7.lynx/source/libsmb/cli_samr.c --- samba-2.2.7/source/libsmb/cli_samr.c Thu Jun 6 21:16:18 2002 +++ samba-2.2.7.lynx/source/libsmb/cli_samr.c Tue Nov 26 13:00:13 2002 @@ -416,7 +416,7 @@ SAMR_Q_QUERY_USERALIASES q; SAMR_R_QUERY_USERALIASES r; NTSTATUS result = NT_STATUS_UNSUCCESSFUL; - uint ptr=1; + unsigned int ptr=1; ZERO_STRUCT(q); ZERO_STRUCT(r); diff -ur samba-2.2.7/source/smbd/open.c samba-2.2.7.lynx/source/smbd/open.c --- samba-2.2.7/source/smbd/open.c Tue Nov 19 04:49:18 2002 +++ samba-2.2.7.lynx/source/smbd/open.c Tue Nov 26 10:33:30 2002 @@ -1199,7 +1199,7 @@ return NULL; } - if(vfs_mkdir(conn,fname, unix_mode(conn,aDIR, fname)) < 0) { + if(samba_vfs_mkdir(conn,fname, unix_mode(conn,aDIR, fname)) < +0) { DEBUG(2,("open_directory: unable to create %s. Error was %s\n", fname, strerror(errno) )); file_free(fsp); diff -ur samba-2.2.7/source/smbd/reply.c samba-2.2.7.lynx/source/smbd/reply.c --- samba-2.2.7/source/smbd/reply.c Wed Nov 20 02:31:33 2002 +++ samba-2.2.7.lynx/source/smbd/reply.c Tue Nov 26 10:33:21 2002 @@ -3575,7 +3575,7 @@ unix_convert(directory,conn,0,&bad_path,&sbuf); if (check_name(directory, conn)) - ret = vfs_mkdir(conn,directory,unix_mode(conn,aDIR,directory)); + ret = samba_vfs_mkdir(conn,directory,unix_mode(conn,aDIR,directory)); if (ret == -1) { NTSTATUS nterr = set_bad_path_error(errno, bad_path); diff -ur samba-2.2.7/source/smbd/trans2.c samba-2.2.7.lynx/source/smbd/trans2.c --- samba-2.2.7/source/smbd/trans2.c Tue Nov 19 19:44:21 2002 +++ samba-2.2.7.lynx/source/smbd/trans2.c Tue Nov 26 10:33:06 2002 @@ -2959,7 +2959,7 @@ unix_convert(directory,conn,0,&bad_path,&sbuf); if (check_name(directory,conn)) - ret = vfs_mkdir(conn,directory,unix_mode(conn,aDIR,directory)); + ret = samba_vfs_mkdir(conn,directory,unix_mode(conn,aDIR,directory)); if(ret < 0) { DEBUG(5,("call_trans2mkdir error (%s)\n", strerror(errno))); diff -ur samba-2.2.7/source/smbd/vfs.c samba-2.2.7.lynx/source/smbd/vfs.c --- samba-2.2.7/source/smbd/vfs.c Tue Nov 19 19:44:21 2002 +++ samba-2.2.7.lynx/source/smbd/vfs.c Tue Nov 26 10:32:49 2002 @@ -223,7 +223,7 @@ vfs mkdir wrapper that calls dos_to_unix. ********************************************************************/ -int vfs_mkdir(connection_struct *conn, char *const fname, mode_t mode) +int samba_vfs_mkdir(connection_struct *conn, char *const fname, mode_t mode) { int ret; pstring name;