On Thu, Mar 23, 2017 at 11:30:09AM +0100, Mathieu Parent wrote: > > See attached the backported patches for 3.6 (those are from the samba > bugzilla which is still embargoed). > > Please take care of it. >
Hi Mathieu, I wanted to let you know that I had to make a minor tweak to patch 08/15 in order to get the build to succeed on wheezy. I wanted let everyone know in the event that I have missed something important and for general awareness. I had to change this hunk: - if (fsp->is_directory && fsp->fh->fd != -1) { - dirp->dir = SMB_VFS_FDOPENDIR(fsp, mask, attr); - if (dirp->dir != NULL) { - dirp->fsp = fsp; - } else { - DEBUG(10,("OpenDir_fsp: SMB_VFS_FDOPENDIR on %s returned " - "NULL (%s)\n", - dirp->dir_path, - strerror(errno))); - if (errno != ENOSYS) { - return NULL; - } + dirp->dir = SMB_VFS_FDOPENDIR(fsp, mask, attr); + if (dirp->dir != NULL) { + dirp->fsp = fsp; + } else { + DEBUG(10,("OpenDir_fsp: SMB_VFS_FDOPENDIR on %s returned " + "NULL (%s)\n", + dirp->dir_path, + strerror(errno))); + if (errno != ENOSYS) { + return NULL; At first the hunk failed to apply cleanly (because dirp->dir != NULL was present as dirp->dir == NULL) and the code from the else was in the if. I made the change manually and refreshed the patch but then the build failed. Apparently, the smb_Dir struct does not have a member called fsp (a back pointer to the file_structure, based on looking in the Samba 4 source code), so it would not compile. I ended up changing it to this: - if (fsp->is_directory && fsp->fh->fd != -1) { - dirp->dir = SMB_VFS_FDOPENDIR(fsp, mask, attr); - if (dirp->dir == NULL) { - DEBUG(10,("OpenDir_fsp: SMB_VFS_FDOPENDIR on %s returned " - "NULL (%s)\n", - dirp->dir_path, - strerror(errno))); - if (errno != ENOSYS) { - return NULL; - } + dirp->dir = SMB_VFS_FDOPENDIR(fsp, mask, attr); + if (dirp->dir == NULL) { + DEBUG(10,("OpenDir_fsp: SMB_VFS_FDOPENDIR on %s returned " + "NULL (%s)\n", + dirp->dir_path, + strerror(errno))); + if (errno != ENOSYS) { + return NULL; Also, patch 02/15 introduces a change which fails the build for a different reason: + if (ISDOT(data->smb_fname->base_name)) { + data->smb_fname->base_name = vfs_GetWd(data, handle->conn); + } + Compiling modules/vfs_dirsort.c modules/vfs_dirsort.c: In function 'dirsort_fdopendir': modules/vfs_dirsort.c:145:6: error: 'struct dirsort_privates' has no member named 'smb_fname' modules/vfs_dirsort.c:145:6: error: 'struct dirsort_privates' has no member named 'smb_fname' modules/vfs_dirsort.c:146:7: error: 'struct dirsort_privates' has no member named 'smb_fname' The following command failed: gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -I. -I/network/scratch/roberto/freexian/samba-3.6.6/source3 -I/network/scratch/roberto/freexian/samba-3.6.6/source3/../lib/iniparser/src -Iinclude -I./include -I. -I. -I./../lib/replace -I./../lib/tevent -I./librpc -I./.. -I/usr/include -DHAVE_CONFIG_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_FORTIFY_SOURCE=2 -Iinclude -I./include -I. -I. -I./../lib/replace -I./../lib/tevent -I./librpc -I./.. -I./../lib/popt -DLDAP_DEPRECATED -I/network/scratch/roberto/freexian/samba-3.6.6/source3/lib -I.. -D_SAMBA_BUILD_=3 -D_SAMBA_BUILD_=3 -fPIC -c modules/vfs_dirsort.c -o modules/vfs_dirsort.o make[2]: *** [modules/vfs_dirsort.o] Error 1 The resolution for this one is not obvious to me. I intend to dig into it, but if anyone has a suggestion, I welcome it. Regards, -Roberto -- Roberto C. Sánchez http://people.connexer.com/~roberto http://www.connexer.com
signature.asc
Description: Digital signature