Browse Source

samba: update to version 3.6.23

This updates samba to the most recent minor version.
This patch is based on a patch by Anton van Bohemen <[email protected]>

Signed-off-by: Hauke Mehrtens <[email protected]>

SVN-Revision: 40618
Hauke Mehrtens 11 years ago
parent
commit
14d0375301

+ 4 - 4
package/network/services/samba36/Makefile

@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba
-PKG_VERSION:=3.6.11
-PKG_RELEASE:=2
+PKG_VERSION:=3.6.23
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://ftp.samba.org/pub/samba \
-	http://ftp.samba.org/pub/samba/old-versions
+	http://ftp.samba.org/pub/samba/stable
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MD5SUM:=9039e0ab3e4fc632ff0a1a8f2433edb4
+PKG_MD5SUM:=2f7aee1dc5d31aefcb364600915b31dc
 
 PKG_LICENSE:=GPLv3
 PKG_LICENSE_FILES:=COPYING

+ 1 - 1
package/network/services/samba36/patches/100-configure_fixes.patch

@@ -1,6 +1,6 @@
 --- a/source3/configure
 +++ b/source3/configure
-@@ -13318,10 +13318,7 @@ if test x"$libreplace_cv_HAVE_GETADDRINF
+@@ -13294,10 +13294,7 @@ if test x"$libreplace_cv_HAVE_GETADDRINF
  	# see bug 5910, use our replacements if we detect
  	# a broken system.
  	if test "$cross_compiling" = yes; then :

+ 7 - 5
package/network/services/samba36/patches/110-multicall.patch

@@ -1,6 +1,6 @@
 --- a/source3/Makefile.in
 +++ b/source3/Makefile.in
-@@ -73,20 +73,20 @@ LDAP_LIBS=@LDAP_LIBS@
+@@ -73,22 +73,22 @@ LDAP_LIBS=@LDAP_LIBS@
  NSCD_LIBS=@NSCD_LIBS@
  UUID_LIBS=@UUID_LIBS@
  LIBWBCLIENT=@LIBWBCLIENT_STATIC@ @LIBWBCLIENT_SHARED@
@@ -14,6 +14,8 @@
  LIBTALLOC=@LIBTALLOC_STATIC@ @LIBTALLOC_SHARED@
 -LIBTALLOC_LIBS=@LIBTALLOC_LIBS@
 +LIBTALLOC_LIBS=@LIBTALLOC_STATIC@
+ LIBTEVENT=@LIBTEVENT_STATIC@ @LIBTEVENT_SHARED@
+ LIBTEVENT_LIBS=@LIBTEVENT_LIBS@
  LIBREPLACE_LIBS=@LIBREPLACE_LIBS@
  LIBTDB=@LIBTDB_STATIC@ @LIBTDB_SHARED@
 -LIBTDB_LIBS=@LIBTDB_LIBS@
@@ -25,7 +27,7 @@
  LIBSMBCLIENT_LIBS=@LIBSMBCLIENT_LIBS@
  LIBSMBSHAREMODES_LIBS=@LIBSMBSHAREMODES_LIBS@
  
-@@ -214,7 +214,7 @@ PATH_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_P
+@@ -216,7 +216,7 @@ PATH_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_P
  
  # Note that all executable programs now provide for an optional executable suffix.
  
@@ -34,7 +36,7 @@
  
  BIN_PROGS1 = bin/smbclient@EXEEXT@ bin/net@EXEEXT@ bin/smbspool@EXEEXT@ \
  	bin/testparm@EXEEXT@ bin/smbstatus@EXEEXT@ bin/smbget@EXEEXT@ \
-@@ -1775,6 +1775,42 @@ bin/.dummy:
+@@ -1777,6 +1777,42 @@ bin/.dummy:
  	  dir=bin $(MAKEDIR); fi
  	@: >> $@ || : > $@ # what a fancy emoticon!
  
@@ -71,10 +73,10 @@
 +	@$(CC) -o $@ $(MULTICALL_O) $(LDFLAGS) $(LDAP_LIBS) @SMBD_FAM_LIBS@ \
 +		$(KRB5LIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) \
 +		$(ACL_LIBS) $(PASSDB_LIBS) $(LIBS) $(DNSSD_LIBS) $(AVAHI_LIBS) \
-+		$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTDB_LIBS) \
++		$(POPT_LIBS) @SMBD_LIBS@ $(LIBTALLOC_LIBS) $(LIBTEVENT_LIBS) $(LIBTDB_LIBS) \
 +		$(LIBWBCLIENT_LIBS) $(ZLIB_LIBS)
 +
- bin/smbd@EXEEXT@: $(BINARY_PREREQS) $(SMBD_OBJ) $(LIBTALLOC) $(LIBTDB) $(LIBWBCLIENT) @BUILD_POPT@
+ bin/smbd@EXEEXT@: $(BINARY_PREREQS) $(SMBD_OBJ) $(LIBTALLOC) $(LIBTEVENT) $(LIBTDB) $(LIBWBCLIENT) @BUILD_POPT@
  	@echo Linking $@
  	@$(CC) -o $@ $(SMBD_OBJ) $(LDFLAGS) $(LDAP_LIBS) @SMBD_FAM_LIBS@ \
 --- /dev/null

+ 3 - 3
package/network/services/samba36/patches/111-owrt_smbpasswd.patch

@@ -1,6 +1,6 @@
 --- a/source3/Makefile.in
 +++ b/source3/Makefile.in
-@@ -1017,7 +1017,7 @@ TEST_LP_LOAD_OBJ = param/test_lp_load.o 
+@@ -1019,7 +1019,7 @@ TEST_LP_LOAD_OBJ = param/test_lp_load.o
  
  PASSWD_UTIL_OBJ = utils/passwd_util.o
  
@@ -9,7 +9,7 @@
  		$(PARAM_OBJ) $(LIBSMB_OBJ) $(PASSDB_OBJ) \
  		$(GROUPDB_OBJ) $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
  		$(POPT_LIB_OBJ) $(SMBLDAP_OBJ) \
-@@ -1789,7 +1789,7 @@ nmbd/nmbd_multicall.o: nmbd/nmbd.c nmbd/
+@@ -1791,7 +1791,7 @@ nmbd/nmbd_multicall.o: nmbd/nmbd.c nmbd/
  		echo "$(COMPILE_CC_PATH)" 1>&2;\
  		$(COMPILE_CC_PATH) >/dev/null 2>&1
  
@@ -18,7 +18,7 @@
  	@echo Compiling $<.c
  	@$(COMPILE_CC_PATH) -Dmain=smbpasswd_main && exit 0;\
  		echo "The following command failed:" 1>&2;\
-@@ -1798,7 +1798,7 @@ utils/smbpasswd_multicall.o: utils/smbpa
+@@ -1800,7 +1800,7 @@ utils/smbpasswd_multicall.o: utils/smbpa
  
  SMBD_MULTI_O = $(patsubst smbd/server.o,smbd/server_multicall.o,$(SMBD_OBJ))
  NMBD_MULTI_O = $(patsubst nmbd/nmbd.o,nmbd/nmbd_multicall.o,$(filter-out $(LIB_DUMMY_OBJ),$(NMBD_OBJ)))

+ 20 - 20
package/network/services/samba36/patches/200-remove_printer_support.patch

@@ -25,7 +25,7 @@
  	dfs_commands,
 --- a/source3/printing/spoolssd.c
 +++ b/source3/printing/spoolssd.c
-@@ -153,6 +153,10 @@ void start_spoolssd(struct tevent_contex
+@@ -165,6 +165,10 @@ void start_spoolssd(struct tevent_contex
  	NTSTATUS status;
  	int ret;
  
@@ -38,7 +38,7 @@
  	pid = sys_fork();
 --- a/source3/utils/net_rpc.c
 +++ b/source3/utils/net_rpc.c
-@@ -7798,6 +7798,10 @@ int net_rpc_printer(struct net_context *
+@@ -7841,6 +7841,10 @@ int net_rpc_printer(struct net_context *
  		{NULL, NULL, 0, NULL, NULL}
  	};
  
@@ -51,7 +51,7 @@
  			d_printf(_("Usage:\n"));
 --- a/source3/smbd/reply.c
 +++ b/source3/smbd/reply.c
-@@ -5196,7 +5196,11 @@ void reply_printopen(struct smb_request 
+@@ -5208,7 +5208,11 @@ void reply_printopen(struct smb_request
  		return;
  	}
  
@@ -64,7 +64,7 @@
  		reply_nterror(req, NT_STATUS_ACCESS_DENIED);
  		END_PROFILE(SMBsplopen);
  		return;
-@@ -5302,7 +5306,10 @@ void reply_printqueue(struct smb_request
+@@ -5314,7 +5318,10 @@ void reply_printqueue(struct smb_request
  	   is really quite gross and only worked when there was only
  	   one printer - I think we should now only accept it if they
  	   get it right (tridge) */
@@ -78,7 +78,7 @@
  		return;
 --- a/source3/smbd/lanman.c
 +++ b/source3/smbd/lanman.c
-@@ -784,6 +784,10 @@ static bool api_DosPrintQGetInfo(struct 
+@@ -784,6 +784,10 @@ static bool api_DosPrintQGetInfo(struct
  	union spoolss_JobInfo *job_info = NULL;
  	union spoolss_PrinterInfo printer_info;
  
@@ -100,7 +100,7 @@
  	if (!param_format || !output_format1 || !p) {
  		return False;
  	}
-@@ -3350,6 +3358,10 @@ static bool api_RDosPrintJobDel(struct s
+@@ -3105,6 +3113,10 @@ static bool api_RDosPrintJobDel(struct s
  	struct spoolss_DevmodeContainer devmode_ctr;
  	enum spoolss_JobControl command;
  
@@ -111,7 +111,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -3483,6 +3495,10 @@ static bool api_WPrintQueueCtrl(struct s
+@@ -3238,6 +3250,10 @@ static bool api_WPrintQueueCtrl(struct s
  	struct sec_desc_buf secdesc_ctr;
  	enum spoolss_PrinterControl command;
  
@@ -122,7 +122,7 @@
  	if (!str1 || !str2 || !QueueName) {
  		return False;
  	}
-@@ -3649,6 +3665,10 @@ static bool api_PrintJobInfo(struct smbd
+@@ -3404,6 +3420,10 @@ static bool api_PrintJobInfo(struct smbd
  	union spoolss_JobInfo info;
  	struct spoolss_SetJobInfo1 info1;
  
@@ -133,7 +133,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -4792,6 +4812,10 @@ static bool api_WPrintJobGetInfo(struct 
+@@ -4547,6 +4567,10 @@ static bool api_WPrintJobGetInfo(struct
  	struct spoolss_DevmodeContainer devmode_ctr;
  	union spoolss_JobInfo info;
  
@@ -144,7 +144,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -4930,6 +4954,10 @@ static bool api_WPrintJobEnumerate(struc
+@@ -4685,6 +4709,10 @@ static bool api_WPrintJobEnumerate(struc
  	uint32_t count = 0;
  	union spoolss_JobInfo *info;
  
@@ -155,7 +155,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -5135,6 +5163,10 @@ static bool api_WPrintDestGetInfo(struct
+@@ -4890,6 +4918,10 @@ static bool api_WPrintDestGetInfo(struct
  	struct spoolss_DevmodeContainer devmode_ctr;
  	union spoolss_PrinterInfo info;
  
@@ -166,7 +166,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -5271,6 +5303,10 @@ static bool api_WPrintDestEnum(struct sm
+@@ -5026,6 +5058,10 @@ static bool api_WPrintDestEnum(struct sm
  	union spoolss_PrinterInfo *info;
  	uint32_t count;
  
@@ -177,7 +177,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -5374,6 +5410,10 @@ static bool api_WPrintDriverEnum(struct 
+@@ -5129,6 +5165,10 @@ static bool api_WPrintDriverEnum(struct
  	int succnt;
  	struct pack_desc desc;
  
@@ -188,7 +188,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -5438,6 +5478,10 @@ static bool api_WPrintQProcEnum(struct s
+@@ -5193,6 +5233,10 @@ static bool api_WPrintQProcEnum(struct s
  	int succnt;
  	struct pack_desc desc;
  
@@ -199,7 +199,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -5502,6 +5546,10 @@ static bool api_WPrintPortEnum(struct sm
+@@ -5257,6 +5301,10 @@ static bool api_WPrintPortEnum(struct sm
  	int succnt;
  	struct pack_desc desc;
  
@@ -224,7 +224,7 @@
  		rpc_winreg_shutdown();
 --- a/source3/smbd/open.c
 +++ b/source3/smbd/open.c
-@@ -1566,6 +1566,9 @@ static NTSTATUS open_file_ntcreate(conne
+@@ -1608,6 +1608,9 @@ static NTSTATUS open_file_ntcreate(conne
  		 * Most of the passed parameters are ignored.
  		 */
  
@@ -303,7 +303,7 @@
  	}
 --- a/source3/smbd/process.c
 +++ b/source3/smbd/process.c
-@@ -2476,8 +2476,10 @@ static bool housekeeping_fn(const struct
+@@ -2423,8 +2423,10 @@ static bool housekeeping_fn(const struct
  
  	change_to_root_user();
  
@@ -316,7 +316,7 @@
  	check_reload(sconn, time_mono(NULL));
 --- a/source3/smbd/server.c
 +++ b/source3/smbd/server.c
-@@ -126,7 +126,9 @@ static void smb_pcap_updated(struct mess
+@@ -123,7 +123,9 @@ static void smb_pcap_updated(struct mess
  {
  	struct tevent_context *ev_ctx =
  		talloc_get_type_abort(private_data, struct tevent_context);
@@ -327,7 +327,7 @@
  	DEBUG(10,("Got message saying pcap was updated. Reloading.\n"));
  	change_to_root_user();
  	reload_printers(ev_ctx, msg);
-@@ -1231,6 +1233,7 @@ extern void build_options(bool screen);
+@@ -1277,6 +1279,7 @@ extern void build_options(bool screen);
  	 * The print backend init also migrates the printing tdb's,
  	 * this requires a winreg pipe.
  	 */
@@ -335,7 +335,7 @@
  	if (!print_backend_init(smbd_messaging_context()))
  		exit(1);
  
-@@ -1262,7 +1265,7 @@ extern void build_options(bool screen);
+@@ -1315,7 +1318,7 @@ extern void build_options(bool screen);
  				       smbd_messaging_context());
  		}
  	}

+ 1 - 1
package/network/services/samba36/patches/210-remove_ad_support.patch

@@ -71,7 +71,7 @@
  #endif
 --- a/source3/rpc_client/cli_pipe.c
 +++ b/source3/rpc_client/cli_pipe.c
-@@ -2874,12 +2874,14 @@ NTSTATUS cli_rpc_pipe_open_noauth_transp
+@@ -2904,12 +2904,14 @@ NTSTATUS cli_rpc_pipe_open_noauth_transp
  	status = rpc_pipe_bind(result, auth);
  	if (!NT_STATUS_IS_OK(status)) {
  		int lvl = 0;

+ 4 - 4
package/network/services/samba36/patches/250-remove_domain_logon.patch

@@ -99,7 +99,7 @@
  	dfs_commands,
 --- a/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
 +++ b/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
-@@ -820,6 +820,10 @@ WERROR _wkssvc_NetrJoinDomain2(struct pi
+@@ -824,6 +824,10 @@ WERROR _wkssvc_NetrJoinDomain2(struct pi
  	WERROR werr;
  	struct security_token *token = p->session_info->security_token;
  
@@ -110,7 +110,7 @@
  	if (!r->in.domain_name) {
  		return WERR_INVALID_PARAM;
  	}
-@@ -897,6 +901,10 @@ WERROR _wkssvc_NetrUnjoinDomain2(struct 
+@@ -901,6 +905,10 @@ WERROR _wkssvc_NetrUnjoinDomain2(struct
  	WERROR werr;
  	struct security_token *token = p->session_info->security_token;
  
@@ -147,7 +147,7 @@
  	/* lookup a DC first */
  
  	if ( !get_dc_name(domain, NULL, dc_name, &dc_ss) ) {
-@@ -243,6 +250,10 @@ NTSTATUS change_trust_account_password( 
+@@ -243,6 +250,10 @@ NTSTATUS change_trust_account_password(
  	struct cli_state *cli = NULL;
  	struct rpc_pipe_client *netlogon_pipe = NULL;
  
@@ -172,7 +172,7 @@
  }
 --- a/source3/smbd/process.c
 +++ b/source3/smbd/process.c
-@@ -2484,8 +2484,10 @@ static bool housekeeping_fn(const struct
+@@ -2431,8 +2431,10 @@ static bool housekeeping_fn(const struct
  	/* check if we need to reload services */
  	check_reload(sconn, time_mono(NULL));
  

+ 4 - 15
package/network/services/samba36/patches/260-remove_samr.patch

@@ -98,7 +98,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -2541,6 +2545,10 @@ static bool api_NetUserGetGroups(struct 
+@@ -2541,6 +2545,10 @@ static bool api_NetUserGetGroups(struct
  	NTSTATUS status, result;
  	struct dcerpc_binding_handle *b;
  
@@ -109,7 +109,7 @@
  	if (!str1 || !str2 || !UserName || !p) {
  		return False;
  	}
-@@ -2733,6 +2741,10 @@ static bool api_RNetUserEnum(struct smbd
+@@ -2741,6 +2749,10 @@ static bool api_RNetUserEnum(struct smbd
  
  	struct dcerpc_binding_handle *b;
  
@@ -120,18 +120,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -2979,6 +2991,10 @@ static bool api_SetUserPassword(struct s
- 	int min_pwd_length;
- 	struct dcerpc_binding_handle *b = NULL;
- 
-+#ifndef SAMR_SUPPORT
-+	return False;
-+#endif
-+
- 	/* Skip 2 strings. */
- 	p = skip_string(param,tpscnt,np);
- 	p = skip_string(param,tpscnt,p);
-@@ -3224,6 +3240,10 @@ static bool api_SamOEMChangePassword(str
+@@ -2979,6 +2991,10 @@ static bool api_SamOEMChangePassword(str
  	int bufsize;
  	struct dcerpc_binding_handle *b;
  
@@ -142,7 +131,7 @@
  	*rparam_len = 4;
  	*rparam = smb_realloc_limit(*rparam,*rparam_len);
  	if (!*rparam) {
-@@ -4265,6 +4285,10 @@ static bool api_RNetUserGetInfo(struct s
+@@ -4020,6 +4036,10 @@ static bool api_RNetUserGetInfo(struct s
  	union samr_UserInfo *info;
  	struct dcerpc_binding_handle *b = NULL;
  

+ 1 - 1
package/network/services/samba36/patches/270-remove_registry_backend.patch

@@ -30,7 +30,7 @@
  			"supported by backend");
 --- a/source3/smbd/server.c
 +++ b/source3/smbd/server.c
-@@ -1184,8 +1184,10 @@ extern void build_options(bool screen);
+@@ -1230,8 +1230,10 @@ extern void build_options(bool screen);
  		exit(1);
  	}
  

+ 3 - 3
package/network/services/samba36/patches/280-strip_srvsvc.patch

@@ -11,7 +11,7 @@
  	if (!str1 || !str2 || !p) {
  		return False;
  	}
-@@ -3838,10 +3842,7 @@ static bool api_RNetServerGetInfo(struct
+@@ -3589,10 +3593,7 @@ static bool api_RNetServerGetInfo(struct
  	NTSTATUS status;
  	WERROR werr;
  	TALLOC_CTX *mem_ctx = talloc_tos();
@@ -22,7 +22,7 @@
  
  	if (!str1 || !str2 || !p) {
  		return False;
-@@ -3904,66 +3905,16 @@ static bool api_RNetServerGetInfo(struct
+@@ -3655,66 +3656,16 @@ static bool api_RNetServerGetInfo(struct
  	p = *rdata;
  	p2 = p + struct_len;
  
@@ -95,7 +95,7 @@
  	}
  
  	if (uLevel > 1) {
-@@ -5654,6 +5605,10 @@ static bool api_RNetSessionEnum(struct s
+@@ -5405,6 +5356,10 @@ static bool api_RNetSessionEnum(struct s
  	uint32_t totalentries, resume_handle = 0;
  	uint32_t count = 0;
  

+ 1 - 1
package/network/services/samba36/patches/310-remove_error_strings.patch

@@ -200,7 +200,7 @@
  
  	result = talloc_asprintf(talloc_tos(), "NT_STATUS(0x%08x)",
  				 NT_STATUS_V(nt_code));
-@@ -767,12 +773,14 @@ NTSTATUS nt_status_string_to_code(const 
+@@ -767,12 +773,14 @@ NTSTATUS nt_status_string_to_code(const
  {
  	int idx = 0;
  

File diff suppressed because it is too large
+ 112 - 112
package/network/services/samba36/patches/330-librpc_default_print.patch


Some files were not shown because too many files changed in this diff