From: Markham Date: Sat, 12 Dec 2015 17:38:30 +0000 (+0100) Subject: buildsystem: add samba2 target (2.2.12) X-Git-Url: https://git.webhop.me/?a=commitdiff_plain;h=f2960f4ba37e93e7220fc6ff40d74bd1e546a0c3;p=bs-cst-neutrino-hd.git buildsystem: add samba2 target (2.2.12) --- diff --git a/archive-patches/samba_2.2.12-noprint.diff b/archive-patches/samba_2.2.12-noprint.diff new file mode 100644 index 0000000..2c3f1d9 --- /dev/null +++ b/archive-patches/samba_2.2.12-noprint.diff @@ -0,0 +1,268 @@ +diff --git a/source/Makefile.in b/source/Makefile.in +index f360f29..2826aa4 100644 +--- a/source/Makefile.in ++++ b/source/Makefile.in +@@ -157,8 +157,8 @@ RPC_SERVER_OBJ = rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o \ + rpc_server/srv_pipe_hnd.o rpc_server/srv_reg.o rpc_server/srv_reg_nt.o \ + rpc_server/srv_samr.o rpc_server/srv_samr_nt.o rpc_server/srv_srvsvc.o rpc_server/srv_srvsvc_nt.o \ + rpc_server/srv_util.o rpc_server/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o \ +- rpc_server/srv_pipe.o rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o \ +- rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o rpc_client/cli_spoolss_notify.o ++ rpc_server/srv_pipe.o rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o ++ + + # this includes only the low level parse code, not stuff + # that requires knowledge of security contexts +@@ -200,7 +200,7 @@ SMBD_OBJ1 = smbd/server.o smbd/files.o smbd/chgpasswd.o smbd/connection.o \ + smbd/vfs.o smbd/vfs-wrap.o smbd/statcache.o \ + smbd/posix_acls.o lib/sysacls.o \ + smbd/process.o smbd/service.o smbd/error.o \ +- printing/printfsp.o lib/util_seaccess.o \ ++ lib/util_seaccess.o \ + libsmb/cli_pipe_util.o + + PRINTING_OBJ = printing/pcap.o printing/print_svid.o \ +@@ -213,8 +213,8 @@ MSDFS_OBJ = msdfs/msdfs.o + + SMBD_OBJ = $(SMBD_OBJ1) $(MSDFS_OBJ) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \ + $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(RPC_CLIENT_OBJ) \ +- $(LOCKING_OBJ) $(PASSDB_OBJ) $(PRINTING_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) \ +- $(PRINTBACKEND_OBJ) $(QUOTAOBJS) $(OPLOCK_OBJ) $(NOTIFY_OBJ) ++ $(LOCKING_OBJ) $(PASSDB_OBJ) $(PROFILE_OBJ) $(LIB_OBJ) \ ++ $(QUOTAOBJS) $(OPLOCK_OBJ) $(NOTIFY_OBJ) + + + NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \ +@@ -234,7 +234,7 @@ NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) $(UBIQX_OBJ) \ + $(PROFILE_OBJ) $(LIB_OBJ) + + SWAT_OBJ = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \ +- web/swat.o $(PRINTING_OBJ) $(LIBSMB_OBJ) $(LOCKING_OBJ) \ ++ web/swat.o $(LIBSMB_OBJ) $(LOCKING_OBJ) \ + $(PARAM_OBJ) $(PASSDB_OBJ) $(RPC_PARSE_OBJ) \ + $(UBIQX_OBJ) $(LIB_OBJ) + +diff --git a/source/rpc_server/srv_pipe.c b/source/rpc_server/srv_pipe.c +index aa89441..34f8beb 100644 +--- a/source/rpc_server/srv_pipe.c ++++ b/source/rpc_server/srv_pipe.c +@@ -515,7 +515,9 @@ static struct api_cmd api_fd_commands[] = + { "wkssvc", "ntsvcs", api_wkssvc_rpc }, + { "NETLOGON", "lsass", api_netlog_rpc }, + { "winreg", "winreg", api_reg_rpc }, ++#ifdef PRINTING_NOT_DISABLED + { "spoolss", "spoolss", api_spoolss_rpc }, ++#endif + #ifdef WITH_MSDFS + { "netdfs", "netdfs" , api_netdfs_rpc }, + #endif +diff --git a/source/smbd/close.c b/source/smbd/close.c +index 2080d5a..1b4c999 100644 +--- a/source/smbd/close.c ++++ b/source/smbd/close.c +@@ -135,7 +135,9 @@ static int close_normal_file(files_struct *fsp, BOOL normal_close) + err1 = -1; + + if (fsp->print_file) { ++#ifdef PRINTING_NOT_DISABLED + print_fsp_end(fsp, normal_close); ++#endif + file_free(fsp); + return 0; + } +diff --git a/source/smbd/fileio.c b/source/smbd/fileio.c +index 7af01a3..ae1acde 100644 +--- a/source/smbd/fileio.c ++++ b/source/smbd/fileio.c +@@ -162,8 +162,10 @@ ssize_t write_file(files_struct *fsp, char *data, SMB_OFF_T pos, size_t n) + ssize_t total_written = 0; + int write_path = -1; + ++#ifdef PRINTING_NOT_DISABLED + if (fsp->print_file) + return print_job_write(fsp->print_jobid, data, n); ++#endif + + if (!fsp->can_write) { + errno = EPERM; +diff --git a/source/smbd/lanman.c b/source/smbd/lanman.c +index 1c6db9c..ee501fc 100644 +--- a/source/smbd/lanman.c ++++ b/source/smbd/lanman.c +@@ -771,6 +771,7 @@ static void fill_printq_info(connection_struct *conn, int snum, int uLevel, + } + } + ++#if PRINTING_NOT_DISABLED + /* This function returns the number of files for a given driver */ + static int get_printerdrivernumber(int snum) + { +@@ -965,7 +966,6 @@ static BOOL api_DosPrintQGetInfo(connection_struct *conn, + /**************************************************************************** + View list of all print jobs on all queues. + ****************************************************************************/ +- + static BOOL api_DosPrintQEnum(connection_struct *conn, uint16 vuid, char* param, char* data, + int mdrcnt, int mprcnt, + char **rdata, char** rparam, +@@ -1066,6 +1066,7 @@ static BOOL api_DosPrintQEnum(connection_struct *conn, uint16 vuid, char* param, + + return True; + } ++#endif + + /**************************************************************************** + get info level for a server list query +@@ -1902,6 +1903,7 @@ static BOOL api_SamOEMChangePassword(connection_struct *conn,uint16 vuid, char * + delete a print job + Form: <> + ****************************************************************************/ ++#ifdef PRINTING_NOT_DISABLED + static BOOL api_RDosPrintJobDel(connection_struct *conn,uint16 vuid, char *param,char *data, + int mdrcnt,int mprcnt, + char **rdata,char **rparam, +@@ -2092,7 +2094,7 @@ static BOOL api_PrintJobInfo(connection_struct *conn,uint16 vuid,char *param,cha + + return(True); + } +- ++#endif + + /**************************************************************************** + get info about the server +@@ -3292,6 +3294,7 @@ struct + {"RNetUserGetInfo", RAP_WUserGetInfo, api_RNetUserGetInfo,0}, + {"NetUserGetGroups", RAP_WUserGetGroups, api_NetUserGetGroups,0}, + {"NetWkstaGetInfo", RAP_WWkstaGetInfo, api_NetWkstaGetInfo,0}, ++#ifdef PRINTING_NOT_DISABLED + {"DosPrintQEnum", RAP_WPrintQEnum, api_DosPrintQEnum,0}, + {"DosPrintQGetInfo", RAP_WPrintQGetInfo, api_DosPrintQGetInfo,0}, + {"WPrintQueuePause", RAP_WPrintQPause, api_WPrintQueueCtrl,0}, +@@ -3303,16 +3306,19 @@ struct + {"RDosPrintJobResume",RAP_WPrintJobContinue, api_RDosPrintJobDel,0}, + {"WPrintDestEnum", RAP_WPrintDestEnum, api_WPrintDestEnum,0}, + {"WPrintDestGetInfo", RAP_WPrintDestGetInfo, api_WPrintDestGetInfo,0}, +- {"NetRemoteTOD", RAP_NetRemoteTOD, api_NetRemoteTOD,0}, + {"WPrintQueuePurge", RAP_WPrintQPurge, api_WPrintQueueCtrl,0}, ++#endif ++ {"NetRemoteTOD", RAP_NetRemoteTOD, api_NetRemoteTOD,0}, + {"NetServerEnum", RAP_NetServerEnum2, api_RNetServerEnum,0}, + {"WAccessGetUserPerms",RAP_WAccessGetUserPerms,api_WAccessGetUserPerms,0}, + {"SetUserPassword", RAP_WUserPasswordSet2, api_SetUserPassword,0}, + {"WWkstaUserLogon", RAP_WWkstaUserLogon, api_WWkstaUserLogon,0}, ++#ifdef PRINTING_NOT_DISABLED + {"PrintJobInfo", RAP_WPrintJobSetInfo, api_PrintJobInfo,0}, + {"WPrintDriverEnum", RAP_WPrintDriverEnum, api_WPrintDriverEnum,0}, + {"WPrintQProcEnum", RAP_WPrintQProcessorEnum,api_WPrintQProcEnum,0}, + {"WPrintPortEnum", RAP_WPrintPortEnum, api_WPrintPortEnum,0}, ++#endif + {"SamOEMChangePassword",RAP_SamOEMChgPasswordUser2_P,api_SamOEMChangePassword,0}, + {NULL, -1, api_Unsupported,0}}; + +diff --git a/source/smbd/open.c b/source/smbd/open.c +index 809b842..cb42829 100644 +--- a/source/smbd/open.c ++++ b/source/smbd/open.c +@@ -790,6 +790,7 @@ files_struct *open_file_shared1(connection_struct *conn,char *fname, SMB_STRUCT_ + mode_t new_mode = (mode_t)0; + + if (conn->printer) { ++#ifdef PRINTING_NOT_DISABLED + /* printers are handled completely differently. Most + of the passed parameters are ignored */ + if (Access) +@@ -797,6 +798,9 @@ files_struct *open_file_shared1(connection_struct *conn,char *fname, SMB_STRUCT_ + if (action) + *action = FILE_WAS_CREATED; + return print_fsp_open(conn, fname); ++#else ++ return NULL; ++#endif + } + + fsp = file_new(conn); +diff --git a/source/smbd/process.c b/source/smbd/process.c +index 765fdef..358e563 100644 +--- a/source/smbd/process.c ++++ b/source/smbd/process.c +@@ -546,10 +546,10 @@ struct smb_message_struct + /* 0xbd */ { NULL, NULL, 0 }, + /* 0xbe */ { NULL, NULL, 0 }, + /* 0xbf */ { NULL, NULL, 0 }, +-/* 0xc0 */ { "SMBsplopen",reply_printopen,AS_USER | QUEUE_IN_OPLOCK }, +-/* 0xc1 */ { "SMBsplwr",reply_printwrite,AS_USER}, +-/* 0xc2 */ { "SMBsplclose",reply_printclose,AS_USER}, +-/* 0xc3 */ { "SMBsplretq",reply_printqueue,AS_USER}, ++/* 0xc0 */ { NULL, NULL, 0 /*"SMBsplopen",reply_printopen,AS_USER | QUEUE_IN_OPLOCK*/ }, ++/* 0xc1 */ { NULL, NULL, 0 /*"SMBsplwr",reply_printwrite,AS_USER*/ }, ++/* 0xc2 */ { NULL, NULL, 0 /*"SMBsplclose",reply_printclose,AS_USER*/ }, ++/* 0xc3 */ { NULL, NULL, 0 /*"SMBsplretq",reply_printqueue,AS_USER*/}, + /* 0xc4 */ { NULL, NULL, 0 }, + /* 0xc5 */ { NULL, NULL, 0 }, + /* 0xc6 */ { NULL, NULL, 0 }, +diff --git a/source/smbd/reply.c b/source/smbd/reply.c +index 0efc29c..6e05b85 100644 +--- a/source/smbd/reply.c ++++ b/source/smbd/reply.c +@@ -3421,7 +3421,7 @@ int reply_echo(connection_struct *conn, + /**************************************************************************** + Reply to a printopen. + ****************************************************************************/ +- ++#ifdef PRINTING_NOT_DISABLED + int reply_printopen(connection_struct *conn, + char *inbuf,char *outbuf, int dum_size, int dum_buffsize) + { +@@ -3559,6 +3559,7 @@ int reply_printqueue(connection_struct *conn, + END_PROFILE(SMBsplretq); + return(outsize); + } ++#endif + + /**************************************************************************** + Reply to a printwrite. +diff --git a/source/smbd/server.c b/source/smbd/server.c +index d7e9589..13376d8 100644 +--- a/source/smbd/server.c ++++ b/source/smbd/server.c +@@ -399,7 +399,9 @@ BOOL reload_services(BOOL test) + + ret = lp_load(servicesf,False,False,True); + ++#ifdef PRINTING_NOT_DISABLED + load_printers(); ++#endif + + /* perhaps the config filename is now set */ + if (!test) +@@ -888,8 +890,10 @@ static void usage(char *pname) + if (!locking_init(0)) + exit(1); + ++#ifdef PRINTING_NOT_DISABLED + if (!print_backend_init()) + exit(1); ++#endif + + if (!share_info_db_init()) + exit(1); +diff --git a/source/smbd/service.c b/source/smbd/service.c +index 05d29d5..203f45f 100644 +--- a/source/smbd/service.c ++++ b/source/smbd/service.c +@@ -143,6 +143,7 @@ int find_service(char *service) + iService = add_home_service(service,phome_dir); + } + ++#ifdef PRINTING_NOT_DISABLED + /* If we still don't have a service, attempt to add it as a printer. */ + if (iService < 0) + { +@@ -167,6 +168,7 @@ int find_service(char *service) + DEBUG(3,("%s is not a valid printer name\n", service)); + } + } ++#endif + + /* Check for default vfs service? Unsure whether to implement this */ + if (iService < 0) diff --git a/archive-patches/samba_2.2.12.diff b/archive-patches/samba_2.2.12.diff new file mode 100644 index 0000000..620ba19 --- /dev/null +++ b/archive-patches/samba_2.2.12.diff @@ -0,0 +1,174 @@ +diff -uNr samba-2.2.12.org//source/configure.in samba-2.2.12/source/configure.in +--- samba-2.2.12.org//source/configure.in 2004-08-12 20:24:30.000000000 +0200 ++++ samba-2.2.12/source/configure.in 2010-03-15 19:12:28.000000000 +0100 +@@ -371,41 +371,7 @@ + AC_MSG_CHECKING([for LFS support]) + old_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" +- AC_TRY_RUN([ +-#include +-#include +-main() { +-#if _LFS64_LARGEFILE == 1 +- struct utsname uts; +- char *release; +- int major, minor; +- +- /* Ensure this is glibc 2.2 or higher */ +-#if defined(__GLIBC__) && defined(__GLIBC_MINOR__) +- int libc_major = __GLIBC__; +- int libc_minor = __GLIBC_MINOR__; +- +- if (libc_major < 2) +- exit(1); +- if (libc_minor < 2) +- exit(1); +-#endif +- +- /* Ensure this is kernel 2.4 or higher */ +- +- uname(&uts); +- release = uts.release; +- major = atoi(strsep(&release, ".")); +- minor = atoi(strsep(&release, ".")); +- +- if (major > 2 || (major == 2 && minor > 3)) +- exit(0); +- exit(1); +-#else +- exit(1); +-#endif +-} +-], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross]) ++ LINUX_LFS_SUPPORT=yes + CPPFLAGS="$old_CPPFLAGS" + if test x$LINUX_LFS_SUPPORT = xyes ; then + CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS" +diff -uNr samba-2.2.12.org//source/Makefile.in samba-2.2.12/source/Makefile.in +--- samba-2.2.12.org//source/Makefile.in 2004-08-12 20:24:19.000000000 +0200 ++++ samba-2.2.12/source/Makefile.in 2010-03-15 19:12:23.000000000 +0100 +@@ -702,29 +702,29 @@ + install: installbin installman installscripts installcp installswat + + installdirs: +- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(BASEDIR) +- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(SBINDIR) +- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(BINDIR) +- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(LIBDIR) +- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(VARDIR) +- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(PIDDIR) +- $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(CODEPAGEDIR) ++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) ++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(SBINDIR) ++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(BINDIR) ++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(LIBDIR) ++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(VARDIR) ++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(PIDDIR) ++ $(SHELL) $(srcdir)/install-sh -d -m $(INSTALLPERMS) $(DESTDIR)/$(CODEPAGEDIR) + + installservers: all installdirs +- @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS) ++ @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(SPROGS) + + installbin: all installdirs +- @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS) $(WINBIND_SPROGS) +- @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(BASEDIR) $(BINDIR) $(LIBDIR) $(VARDIR) $(PROGS) $(WINBIND_PROGS) ++ @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(SPROGS) $(WINBIND_SPROGS) ++ @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(BINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(PROGS) $(WINBIND_PROGS) + + installscripts: installdirs +- @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(BINDIR) $(SCRIPTS) ++ @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)/$(BINDIR) $(SCRIPTS) + + installcp: installdirs installbin +- @$(SHELL) $(srcdir)/script/installcp.sh $(srcdir) $(LIBDIR) $(CODEPAGEDIR) $(BINDIR) $(CODEPAGELIST) ++ @$(SHELL) $(srcdir)/script/installcp.sh $(srcdir) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(CODEPAGEDIR) ../../host/builds/samba2/bin $(CODEPAGELIST) + + installswat: installdirs +- @$(SHELL) $(srcdir)/script/installswat.sh $(SWATDIR) $(srcdir) ++ @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)/$(SWATDIR) $(srcdir) + + installclientlib: + -$(INSTALLCLIENTCMD_SH) bin/libsmbclient.@SHLIBEXT@ +@@ -734,26 +734,26 @@ + + # revert to the previously installed version + revert: +- @$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SPROGS) ${WINBIND_SPROGS} +- @$(SHELL) $(srcdir)/script/revert.sh $(BINDIR) $(PROGS) $(SCRIPTS) ${WINBIND_PROGS} ++ @$(SHELL) $(srcdir)/script/revert.sh $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(SPROGS) ${WINBIND_SPROGS} ++ @$(SHELL) $(srcdir)/script/revert.sh $(DESTDIR)/$(BINDIR) $(DESTDIR)/$(PROGS) $(DESTDIR)/$(SCRIPTS) ${WINBIND_PROGS} + + installman: +- @$(SHELL) $(srcdir)/script/installman.sh $(MANDIR) $(srcdir) "@ROFF@" ++ @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)/$(MANDIR) $(srcdir) "@ROFF@" + + uninstall: uninstallman uninstallbin uninstallscripts uninstallcp + + uninstallman: +- @$(SHELL) $(srcdir)/script/uninstallman.sh $(MANDIR) $(srcdir) ++ @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)/$(MANDIR) $(srcdir) + + uninstallbin: +- @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(BASEDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(SPROGS) $(WINBIND_SPROGS) +- @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(BASEDIR) $(BINDIR) $(LIBDIR) $(VARDIR) $(PROGS) $(WINBIND_PROGS) ++ @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(SBINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(SPROGS) $(WINBIND_SPROGS) ++ @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)/$(BASEDIR) $(DESTDIR)/$(BINDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(VARDIR) $(PROGS) $(WINBIND_PROGS) + + uninstallscripts: +- @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(BINDIR) $(SCRIPTS) ++ @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(DESTDIR)/$(BINDIR) $(SCRIPTS) + + uninstallcp: +- @$(SHELL) $(srcdir)/script/uninstallcp.sh $(CODEPAGEDIR) $(CODEPAGELIST) ++ @$(SHELL) $(srcdir)/script/uninstallcp.sh $(DESTDIR)/$(CODEPAGEDIR) $(CODEPAGELIST) + + clean: + -rm -f core */*~ *~ */*.o */*.po */*.po32 */*.@SHLIBEXT@* */*.a +diff -uNr samba-2.2.12.org//source/include/includes.h samba-2.2.12/source/include/includes.h +--- samba-2.2.12.org//source/include/includes.h 2004-08-12 20:24:29.000000000 +0200 ++++ samba-2.2.12/source/include/includes.h 2010-04-24 22:39:31.000000000 +0200 +@@ -322,10 +322,6 @@ + #include + #endif + +-#ifdef HAVE_STROPTS_H +-#include +-#endif +- + #ifdef HAVE_POLL_H + #include + #endif +diff --git a/source/client/smbmnt.c b/source/client/smbmnt.c +index 3624898..bb93e2b 100644 +--- a/source/client/smbmnt.c ++++ b/source/client/smbmnt.c +@@ -13,6 +13,12 @@ + + #include + #include ++ ++/* sorry, no real idea why this is needed on some toolchains :-( ++ I suspect some include breakage. Anyway, this avoids the build error */ ++#if defined(_TIME_H) && !defined(_LINUX_TIME_H) ++#define _LINUX_TIME_H ++#endif + #include + #include + #include +diff --git a/source/client/smbmount.c b/source/client/smbmount.c +index 40e21e1..30e72ac 100644 +--- a/source/client/smbmount.c ++++ b/source/client/smbmount.c +@@ -25,6 +25,11 @@ + + #include + #include ++/* sorry, no real idea why this is needed on some toolchains :-( ++ I suspect some include breakage. Anyway, this avoids the build error */ ++#if defined(_TIME_H) && !defined(_LINUX_TIME_H) ++#define _LINUX_TIME_H ++#endif + #include + + extern BOOL in_client; diff --git a/make/applications.mk b/make/applications.mk index 22c748f..668396e 100755 --- a/make/applications.mk +++ b/make/applications.mk @@ -335,9 +335,114 @@ $(D)/mtd-utils: $(ARCHIVE)/mtd-utils-$(MTD_UTILS_VER).tar.bz2 $(D)/zlib | $(TARG endif # ifeq ($(PLATFORM), nevis) -$(D)/samba: $(D)/libiconv $(ARCHIVE)/samba-3.3.9.tar.gz | $(TARGETPREFIX) - $(UNTAR)/samba-3.3.9.tar.gz - cd $(BUILD_TMP)/samba-3.3.9 && \ +ifeq ($(PLATFORM), apollo) +SMB_PREFIX=/usr +endif +ifeq ($(PLATFORM), kronos) +SMB_PREFIX=/usr +endif +ifeq ($(PLATFORM), nevis) +SMB_PREFIX=/var +endif +ifeq ($(PLATFORM), nevis) +SAMBA_BUILDS = \ + bin/smbd \ + bin/nmbd +SAMBA_OPT = +else +SAMBA_BUILDS = \ + bin/smbd \ + bin/nmbd +SAMBA_OPT = \ + bin/smbclient \ + bin/smbmount \ + bin/smbmnt \ + bin/smbpasswd +endif + +# // use SAMBA_EXTRA_DIR to build it not in TARGETPREFIX +SAMBA_EXTRA_DIR=yes +ifeq ($(SAMBA_EXTRA_DIR), yes) +SAMBA_TARGET=$(BUILD_TMP)/build_samba +else +SAMBA_TARGET=$(TARGETPREFIX) +endif +$(D)/samba2: $(ARCHIVE)/samba-$(SAMBA2_VER).tar.gz | $(TARGETPREFIX) + rm -f $(SAMBA_TARGET) + mkdir -p $(SAMBA_TARGET) + $(UNTAR)/samba-$(SAMBA2_VER).tar.gz + set -e; cd $(BUILD_TMP)/samba-$(SAMBA2_VER); \ + $(PATCH)/samba_2.2.12.diff; \ + $(PATCH)/samba_2.2.12-noprint.diff; \ + cd source; \ + rm -f config.guess; \ + rm -f config.sub; \ + autoconf configure.in > configure; \ + automake --add-missing || true; \ + ./configure \ + --build=$(BUILD) \ + --prefix=$(SMB_PREFIX) \ + samba_cv_struct_timespec=yes \ + samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \ + --with-configdir=$(SMB_PREFIX)/etc \ + --with-privatedir=$(SMB_PREFIX)/etc/samba/private \ + --with-lockdir=/tmp/lock \ + --with-piddir=/tmp \ + --with-logfilebase=/tmp \ + --disable-cups \ + ; \ + $(MAKE) clean || true; \ + $(MAKE) bin/make_smbcodepage bin/make_unicodemap CC=$(CC); \ + install -d $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages; \ + ./bin/make_smbcodepage c 850 codepages/codepage_def.850 \ + $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages/codepage.850; \ + ./bin/make_unicodemap 850 codepages/CP850.TXT \ + $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages/unicode_map.850; \ + ./bin/make_unicodemap ISO8859-1 codepages/CPISO8859-1.TXT \ + $(SAMBA_TARGET)$(SMB_PREFIX)/lib/codepages/unicode_map.ISO8859-1 + $(MAKE) -C $(BUILD_TMP)/samba-$(SAMBA2_VER)/source distclean + set -e; cd $(BUILD_TMP)/samba-$(SAMBA2_VER)/source; \ + ./configure \ + --build=$(BUILD) \ + --host=$(TARGET) \ + --prefix=$(SMB_PREFIX) \ + samba_cv_struct_timespec=yes \ + samba_cv_HAVE_GETTIMEOFDAY_TZ=yes \ + samba_cv_HAVE_IFACE_IFCONF=yes \ + samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes \ + samba_cv_HAVE_OFF64_T=yes \ + samba_cv_have_longlong=yes \ + --with-configdir=$(SMB_PREFIX)/etc \ + --with-privatedir=$(SMB_PREFIX)/etc/samba/private \ + --with-lockdir=/tmp/lock \ + --with-piddir=/tmp \ + --with-logfilebase=/tmp \ + --disable-cups \ + ; \ + $(MAKE) $(SAMBA_BUILDS) $(SAMBA_OPT) + install -d $(SAMBA_TARGET)$(SMB_PREFIX)/bin + for i in smbd nmbd; do \ + install $(BUILD_TMP)/samba-$(SAMBA2_VER)/source/bin/$$i $(SAMBA_TARGET)$(SMB_PREFIX)/bin; \ + done + install -d $(SAMBA_TARGET)$(SMB_PREFIX)/etc/samba/private + install -d $(SAMBA_TARGET)/etc/init.d + install $(SCRIPTS)/smb.conf $(SAMBA_TARGET)$(SMB_PREFIX)/etc + install -m 755 $(SCRIPTS)/samba $(SAMBA_TARGET)/etc/init.d/samba + ln -sf samba $(SAMBA_TARGET)/etc/init.d/S99samba + ln -sf samba $(SAMBA_TARGET)/etc/init.d/K01samba + cp -a $(SAMBA_TARGET)/* $(TARGETPREFIX) + $(TARGET)-strip $(SAMBA_TARGET)$(SMB_PREFIX)/bin/* + for i in $(SAMBA_OPT); do \ + install $(BUILD_TMP)/samba-$(SAMBA2_VER)/source/$$i $(SAMBA_TARGET)$(SMB_PREFIX)/bin; \ + done + $(REMOVE)/samba-$(SAMBA2_VER) + touch $@ + +$(D)/samba3: $(D)/libiconv $(ARCHIVE)/samba-$(SAMBA3_VER).tar.gz | $(TARGETPREFIX) + rm -f $(SAMBA_TARGET) + mkdir -p $(SAMBA_TARGET) + $(UNTAR)/samba-$(SAMBA3_VER).tar.gz + cd $(BUILD_TMP)/samba-$(SAMBA3_VER) && \ $(PATCH)/samba-3.3.9.diff && \ cd source && \ export CONFIG_SITE=$(PATCHES)/samba-3.3.9-config.site && \ @@ -355,9 +460,9 @@ $(D)/samba: $(D)/libiconv $(ARCHIVE)/samba-3.3.9.tar.gz | $(TARGETPREFIX) --without-krb5 --without-ldap --without-ads --disable-cups --disable-swat \ && \ $(MAKE) && \ - $(MAKE) install DESTDIR=$(TARGETPREFIX) - rm -f -r $(TARGETPREFIX)/.remove - $(REMOVE)/samba-3.3.9 + $(MAKE) install DESTDIR=$(SAMBA_TARGET) + rm -f -r $(SAMBA_TARGET)/.remove + $(REMOVE)/samba-$(SAMBA3_VER) touch $@ $(D)/qtweb: $(ARCHIVE)/qt-everywhere-opensource-src-4.6.3.tar.gz | $(TARGETPREFIX) diff --git a/make/archives.mk b/make/archives.mk index b0ba3e4..40f069d 100755 --- a/make/archives.mk +++ b/make/archives.mk @@ -75,8 +75,11 @@ $(ARCHIVE)/procps-3.2.8.tar.gz: $(ARCHIVE)/busybox-1.22.1.tar.bz2: $(WGET) http://www.fhloston-paradise.de/busybox-1.22.1.tar.bz2 -$(ARCHIVE)/samba-3.3.9.tar.gz: - $(WGET) http://www.fhloston-paradise.de/samba-3.3.9.tar.gz +$(ARCHIVE)/samba-$(SAMBA2_VER).tar.gz: + $(WGET) http://samba.org/samba/ftp/old-versions/samba-$(SAMBA2_VER).tar.gz + +$(ARCHIVE)/samba-$(SAMBA3_VER).tar.gz: + $(WGET) http://www.fhloston-paradise.de/samba-$(SAMBA3_VER).tar.gz $(ARCHIVE)/strace-4.6.tar.xz: $(WGET) http://www.fhloston-paradise.de/strace-4.6.tar.xz diff --git a/make/versions.mk b/make/versions.mk index 4d5cf30..635d504 100644 --- a/make/versions.mk +++ b/make/versions.mk @@ -59,6 +59,10 @@ PKGCONFIG_VER=0.28 # Portmapper PORTMAP_VER=6.0 +# Samba provides the SMB (Server-Message-Block-Protokoll) +SAMBA2_VER = 2.2.12 +SAMBA3_VER = 3.3.9 + UNFS3_VER=0.9.22 # ushare; uShare is a UPnP (TM) A/V Media Server. diff --git a/scripts/samba b/scripts/samba new file mode 100755 index 0000000..352e983 --- /dev/null +++ b/scripts/samba @@ -0,0 +1,44 @@ +#!/bin/sh + + +case "$1" in + start) + [ -e /var/etc/.samba ] || exit 1 + [ -d /tmp/lock ] || mkdir -p /tmp/lock > /dev/null 2>&1 + for i in smbd nmbd; do + printf "starting $i ..." + if pidof $i > /dev/null; then + echo " already running" + else + $i -D + echo "done" + fi + done + ;; + stop) + kill -TERM `cat /var/run/nmbd.pid` && echo "smbd killed" + kill -TERM `cat /var/run/smbd.pid` && echo "nmbd killed" + sleep 1 + for i in smbd nmbd; do + if pidof $i > /dev/null; then + killall $i && echo "$i killed!" + fi + done + rm -rf /tmp/lock + rm -f /tmp/smbd.pid + rm -f /tmp/nmbd.pid + ;; + reload) + echo "Reloading /var/etc/smb.conf" "smbd only" + kill -HUP `pidof smbd` + ;; + restart|force-reload) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload}" + exit 1 + ;; +esac diff --git a/scripts/smb.conf b/scripts/smb.conf new file mode 100644 index 0000000..3d8da2a --- /dev/null +++ b/scripts/smb.conf @@ -0,0 +1,14 @@ +[global] +character set = ISO8859-1 +workgroup = WORKGROUP +guest account = root +security = share + +[coolstream] +comment = Samba-Server +path = /media +guest ok = yes +browseable = yes +public = yes +writeable = yes +