Hi,

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;


Reply via email to