I've got a tough to track down problem that seems to be samba related.
I've got a directory structure like this:
topdir/
lib1/src
lib1/include
lib2/src
lib2/include
etc.
Each src directory has a makefile in it. VPATH is set to ../include.
I'm running cygwin bash and make. In some directories, make can't find
files in ../include. In other directories, make finds everything fine.
The same makefiles work fine (i.e. make finds include files in all
directories) when I run them on both a linux and solaris box.
They run fine when running on cygwin on a local hard drive.
They run fine when running against samba 2.2.2 on
$ uname -a
SunOS <my host> 5.8 Generic_108528-16 sun4u sparc SUNW,UltraAX-i2
But, running against samba 3.0.10 on
$ uname -a
SunOS <my busted host> 5.8 Generic_117350-26 sun4u sparc SUNW,Ultra-60
I have trouble.
I tried making a simple makefile to reproduce this and of course I
can't. But, with my normal makefile setup, it's 100% repeatable. The
permissions on the broken directories appear to be the same as the
permissions on the working directories.
I turned the debug level to 2 and collected a log file. The part of it
that looks interesting to me is:
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2380)
call_trans2qfilepathinfo dbyron/src/main/csfaccess/libnamestd/include
(fnum = -1) level=1004 call=5 total_data=0
[2006/04/28 13:49:47, 3] smbd/process.c:process_smb(1091)
Transaction 10556912 of length 180
[2006/04/28 13:49:47, 3] smbd/process.c:switch_message(886)
switch message SMBntcreateX (pid 11336) conn 0x3181a8
[2006/04/28 13:49:47, 3] smbd/dosmode.c:unix_mode(111)
unix_mode(dbyron/src/main/csfaccess/libnamestd/include) returning 0744
[2006/04/28 13:49:47, 3] smbd/process.c:process_smb(1091)
Transaction 10556913 of length 76
[2006/04/28 13:49:47, 3] smbd/process.c:switch_message(886)
switch message SMBtrans2 (pid 11336) conn 0x3181a8
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2291)
call_trans2qfilepathinfo: TRANSACT2_QFILEINFO: level = 1006
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2380)
call_trans2qfilepathinfo dbyron/src/main/csfaccess/libnamestd/include
(fnum = 11360) level=1006 call=7 total_data=0
[2006/04/28 13:49:47, 3] smbd/process.c:process_smb(1091)
Transaction 10556914 of length 76
[2006/04/28 13:49:47, 3] smbd/process.c:switch_message(886)
switch message SMBtrans2 (pid 11336) conn 0x3181a8
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2291)
call_trans2qfilepathinfo: TRANSACT2_QFILEINFO: level = 1004
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2380)
call_trans2qfilepathinfo dbyron/src/main/csfaccess/libnamestd/include
(fnum = 11360) level=1004 call=7 total_data=0
[2006/04/28 13:49:47, 3] smbd/process.c:process_smb(1091)
Transaction 10556915 of length 76
[2006/04/28 13:49:47, 3] smbd/process.c:switch_message(886)
switch message SMBtrans2 (pid 11336) conn 0x3181a8
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2291)
call_trans2qfilepathinfo: TRANSACT2_QFILEINFO: level = 1005
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2380)
call_trans2qfilepathinfo dbyron/src/main/csfaccess/libnamestd/include
(fnum = 11360) level=1005 call=7 total_data=0
[2006/04/28 13:49:47, 3] smbd/process.c:process_smb(1091)
Transaction 10556916 of length 76
[2006/04/28 13:49:47, 3] smbd/process.c:switch_message(886)
switch message SMBtrans2 (pid 11336) conn 0x3181a8
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2291)
call_trans2qfilepathinfo: TRANSACT2_QFILEINFO: level = 1007
[2006/04/28 13:49:47, 3] smbd/trans2.c:call_trans2qfilepathinfo(2380)
call_trans2qfilepathinfo dbyron/src/main/csfaccess/libnamestd/include
(fnum = 11360) level=1007 call=7 total_data=0
[2006/04/28 13:49:47, 3] smbd/process.c:process_smb(1091)
Transaction 10556917 of length 45
[2006/04/28 13:49:47, 3] smbd/process.c:switch_message(886)
switch message SMBclose (pid 11336) conn 0x3181a8
[2006/04/28 13:49:47, 3] smbd/reply.c:reply_close(2758)
close directory fnum=11360
>From here, make realizes it can't find the file and uses some built-in
rules to invoke RCS which I'm not using.
I'm working on upgrading to version 3.0.22 but it's going to take a few
days. There wasn't anything in the release notes that seemed related to
me, but maybe someone else knows more.
If it's helpful, I'm connecting from a Windows XP Pro machine with:
$ uname -a
CYGWIN_NT-5.1 DByron 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin
$ make --version
GNU Make 3.80
Thanks much for your help tracking this down.
-DB