]> git.webhop.me Git - bs-cst-neutrino-hd.git/commitdiff
buildsystem: add samba2 target (2.2.12)
authorMarkham <markham001@gmx.de>
Sat, 12 Dec 2015 17:38:30 +0000 (18:38 +0100)
committerMarkham <markham001@gmx.de>
Sat, 12 Dec 2015 17:38:30 +0000 (18:38 +0100)
archive-patches/samba_2.2.12-noprint.diff [new file with mode: 0644]
archive-patches/samba_2.2.12.diff [new file with mode: 0644]
make/applications.mk
make/archives.mk
make/versions.mk
scripts/samba [new file with mode: 0755]
scripts/smb.conf [new file with mode: 0644]

diff --git a/archive-patches/samba_2.2.12-noprint.diff b/archive-patches/samba_2.2.12-noprint.diff
new file mode 100644 (file)
index 0000000..2c3f1d9
--- /dev/null
@@ -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: <W> <> 
+   ****************************************************************************/
++#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 (file)
index 0000000..620ba19
--- /dev/null
@@ -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 <unistd.h>
+-#include <sys/utsname.h>
+-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 <compat.h>
+ #endif
+-#ifdef HAVE_STROPTS_H
+-#include <stropts.h>
+-#endif
+-
+ #ifdef HAVE_POLL_H
+ #include <poll.h>
+ #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 <asm/types.h>
+ #include <asm/posix_types.h>
++
++/* 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 <linux/smb.h>
+ #include <linux/smb_mount.h>
+ #include <asm/unistd.h>
+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 <mntent.h>
+ #include <asm/types.h>
++/* 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 <linux/smb_fs.h>
+ extern BOOL in_client;
index 22c748f83732fa80dd7e94f87658304864c345a9..668396edeace0102d1bdccfb27293154c3f83ca6 100755 (executable)
@@ -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)
index b0ba3e45e3ff3fac3800a54ddd854da6628ee38a..40f069dbb2813e8e12e40359aad61074667c7b24 100755 (executable)
@@ -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
index 4d5cf3041c4871c215fd6c89679e3182e1a2c412..635d504f9282274a07d09a5ed57db7d46262879c 100644 (file)
@@ -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 (executable)
index 0000000..352e983
--- /dev/null
@@ -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 (file)
index 0000000..3d8da2a
--- /dev/null
@@ -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
+