summaryrefslogtreecommitdiff
path: root/package/samba
diff options
context:
space:
mode:
Diffstat (limited to 'package/samba')
-rw-r--r--package/samba/Config.in62
-rw-r--r--package/samba/Makefile69
-rw-r--r--package/samba/files/samba.init29
-rw-r--r--package/samba/files/smb.conf17
-rw-r--r--package/samba/ipkg/samba-client.control4
-rw-r--r--package/samba/ipkg/samba-passwd.control4
-rw-r--r--package/samba/ipkg/samba.conffiles1
-rw-r--r--package/samba/ipkg/samba.control5
-rw-r--r--package/samba/ipkg/samba.postinst3
-rw-r--r--package/samba/ipkg/swat.control5
-rw-r--r--package/samba/ipkg/swat.postinst6
-rw-r--r--package/samba/patches/patch-source_client_mtab_c11
-rw-r--r--package/samba/patches/patch-source_configure198
-rw-r--r--package/samba/patches/patch-source_registry_reg_perfcount_c21
14 files changed, 435 insertions, 0 deletions
diff --git a/package/samba/Config.in b/package/samba/Config.in
new file mode 100644
index 000000000..f548a5e2b
--- /dev/null
+++ b/package/samba/Config.in
@@ -0,0 +1,62 @@
+config ADK_COMPILE_SAMBA
+ tristate
+ default n
+ depends ADK_PACKAGE_SAMBA || ADK_PACKAGE_SAMBA_CLIENT || ADK_PACKAGE_SMBFS
+
+config ADK_PACKAGE_SAMBA
+ prompt "samba............................. NetBIOS/SMB file and print server"
+ tristate
+ default n
+ select ADK_COMPILE_SAMBA
+ select ADK_PACKAGE_LIBPOPT
+ help
+ The Samba software suite is a collection of programs that implements the
+ SMB protocol for unix systems, allowing you to serve files and printers to
+ Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred
+ to as the LanManager or Netbios protocol.
+
+ http://www.samba.org/
+
+ This package contains the SMB file and print server daemons.
+
+config ADK_SAMBA_CODEPAGE
+ string "legacy codepage"
+ default "ISO8859-1"
+ depends on ADK_PACKAGE_SAMBA
+ help
+ which codepage should be added to package
+ choose one of:
+ 1125 1251 437 737 775 850 852 857 861 866 932 936 949 950
+ ISO8859-1 ISO8859-13 ISO8859-15 ISO8859-2 ISO8859-5 ISO8859-7
+ ISO8859-9 KOI8-R KOI8-U
+
+config ADK_PACKAGE_SAMBA_CLIENT
+ prompt "samba-client...................... NetBIOS/SMB simple client"
+ tristate
+ default n
+ select ADK_COMPILE_SAMBA
+ help
+ The Samba software suite is a collection of programs that implements the
+ SMB protocol for unix systems, allowing you to serve files and printers to
+ Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred
+ to as the LanManager or Netbios protocol.
+
+ http://www.samba.org/
+
+ This package contains a simple command-line SMB client.
+
+config ADK_PACKAGE_SAMBA_PASSWD
+ prompt "samba-passwd...................... samba password utility"
+ tristate
+ default n
+ select ADK_COMPILE_SAMBA
+ help
+ The Samba software suite is a collection of programs that implements the
+ SMB protocol for unix systems, allowing you to serve files and printers to
+ Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred
+ to as the LanManager or Netbios protocol.
+
+ http://www.samba.org/
+
+ This package contains a the samba password utility.
+
diff --git a/package/samba/Makefile b/package/samba/Makefile
new file mode 100644
index 000000000..11be3043a
--- /dev/null
+++ b/package/samba/Makefile
@@ -0,0 +1,69 @@
+# $Id$
+#-
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${TOPDIR}/rules.mk
+
+PKG_NAME:= samba
+PKG_VERSION:= 3.3.4
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 1443165edb7cb3f56f1e77aec1ee3266
+MASTER_SITES:= ftp://se.samba.org/pub/samba/stable/ \
+ ftp://ftp.easynet.be/samba/stable/
+WRKSRC= ${WRKDIST}/source
+
+include ${TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,SAMBA,samba,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,SAMBA_CLIENT,samba-client,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+$(eval $(call PKG_template,SAMBA_PASSWD,samba-passwd,${PKG_VERSION}-${PKG_RELEASE},${ARCH}))
+
+CONFIGURE_STYLE:= gnu
+TLDFLAGS+= -Wl,-rpath -Wl,/usr/lib/samba
+CONFIGURE_ENV+= samba_cv_CC_NEGATIVE_ENUM_VALUES=no \
+ samba_cv_USE_SETRESUID=no
+ifeq ($(ADK_IPV6),y)
+CONFIGURE_ENV+= libreplace_cv_HAVE_IPV6=yes
+else
+CONFIGURE_ENV+= libreplace_cv_HAVE_IPV6=no
+endif
+CONFIGURE_ARGS+= --libdir=/usr/lib/samba \
+ --localstatedir=/var/log/samba \
+ --with-configdir=/etc/samba \
+ --with-lockdir=/var/run/samba \
+ --with-privatedir=/etc/samba \
+ --with-libiconv=/dev/null \
+ --with-syslog \
+ --without-winbind \
+ --disable-cups \
+ --disable-swat \
+ --disable-avahi \
+ --with-utmp=no \
+ --with-ldap=no \
+ --without-cluster-support \
+ --without-sendfile-support
+BUILD_STYLE:= auto
+INSTALL_STYLE:= auto
+
+post-install:
+ ${INSTALL_DIR} ${IDIR_SAMBA}/etc/{init.d,samba}
+ ${INSTALL_DIR} ${IDIR_SAMBA}/usr/sbin
+ ${INSTALL_DIR} ${IDIR_SAMBA}/usr/lib/samba
+ ${INSTALL_DIR} ${IDIR_SAMBA}/usr/lib/samba/{charset,vfs}
+ ${INSTALL_DATA} ${WRKINST}/usr/lib/samba/charset/CP850.so \
+ ${IDIR_SAMBA}/usr/lib/samba/charset
+ ${INSTALL_DATA} ./files/samba.init ${IDIR_SAMBA}/etc/init.d/samba
+ ${INSTALL_DATA} ./files/smb.conf ${IDIR_SAMBA}/etc/samba/
+ ${INSTALL_BIN} ${WRKINST}/usr/sbin/{nmbd,smbd} ${IDIR_SAMBA}/usr/sbin
+ ${CP} ${WRKINST}/usr/lib/samba/*.so* ${IDIR_SAMBA}/usr/lib/samba
+ ${CP} ${WRKINST}/usr/lib/samba/vfs/*.so* ${IDIR_SAMBA}/usr/lib/samba/vfs
+ ${INSTALL_DATA} ${WRKINST}/usr/lib/samba/*.dat ${IDIR_SAMBA}/usr/lib/samba
+ ${INSTALL_DIR} ${IDIR_SAMBA_PASSWD}/usr/bin
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/smbpasswd \
+ ${IDIR_SAMBA_PASSWD}/usr/bin/
+ ${INSTALL_DIR} ${IDIR_SAMBA_CLIENT}/usr/bin
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/smbclient \
+ ${IDIR_SAMBA_CLIENT}/usr/bin/
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/samba/files/samba.init b/package/samba/files/samba.init
new file mode 100644
index 000000000..94080f31a
--- /dev/null
+++ b/package/samba/files/samba.init
@@ -0,0 +1,29 @@
+#!/bin/sh
+#FWINIT 80
+. /etc/rc.conf
+
+case $1 in
+autostop) ;;
+autostart)
+ test x"$samba" = x"NO" && exit 0
+ exec sh $0 start
+ ;;
+start)
+ [ -d /var/run/samba ] || mkdir -p /var/run/samba
+ [ -d /var/log/samba ] || mkdir -p /var/log/samba
+ nmbd -D
+ smbd -D
+ ;;
+stop)
+ killall nmbd
+ killall smbd
+ ;;
+restart)
+ sh $0 stop
+ sh $0 start
+ ;;
+*)
+ echo "usage: $0 {start | stop | restart}"
+ exit 1
+esac
+exit $?
diff --git a/package/samba/files/smb.conf b/package/samba/files/smb.conf
new file mode 100644
index 000000000..1355c4fb5
--- /dev/null
+++ b/package/samba/files/smb.conf
@@ -0,0 +1,17 @@
+[global]
+ syslog = 1
+ syslog only = yes
+ workgroup = OpenADK
+ server string = OpenADK Samba Server
+ security = share
+ encrypt passwords = yes
+ guest account = root
+ local master = yes
+ name resolve order = hosts bcast
+ pid directory = /var/run/samba
+ load printers = no
+ printcap name = /dev/null
+ unix charset = ASCII
+ dos charset = ASCII
+ display charset = ASCII
+ unix extensions = yes
diff --git a/package/samba/ipkg/samba-client.control b/package/samba/ipkg/samba-client.control
new file mode 100644
index 000000000..dcfe292b3
--- /dev/null
+++ b/package/samba/ipkg/samba-client.control
@@ -0,0 +1,4 @@
+Package: samba-client
+Priority: optional
+Section: net
+Description: NetBIOS/SMB client
diff --git a/package/samba/ipkg/samba-passwd.control b/package/samba/ipkg/samba-passwd.control
new file mode 100644
index 000000000..2cba0a83e
--- /dev/null
+++ b/package/samba/ipkg/samba-passwd.control
@@ -0,0 +1,4 @@
+Package: samba-passwd
+Priority: optional
+Section: net
+Description: samba password utility
diff --git a/package/samba/ipkg/samba.conffiles b/package/samba/ipkg/samba.conffiles
new file mode 100644
index 000000000..5c10c50ad
--- /dev/null
+++ b/package/samba/ipkg/samba.conffiles
@@ -0,0 +1 @@
+/etc/samba/smb.conf
diff --git a/package/samba/ipkg/samba.control b/package/samba/ipkg/samba.control
new file mode 100644
index 000000000..c1cf603c4
--- /dev/null
+++ b/package/samba/ipkg/samba.control
@@ -0,0 +1,5 @@
+Package: samba
+Priority: optional
+Section: net
+Depends: libgcc
+Description: NetBIOS/SMB file and print server
diff --git a/package/samba/ipkg/samba.postinst b/package/samba/ipkg/samba.postinst
new file mode 100644
index 000000000..b9f99e86b
--- /dev/null
+++ b/package/samba/ipkg/samba.postinst
@@ -0,0 +1,3 @@
+#!/bin/sh
+. $IPKG_INSTROOT/etc/functions.sh
+add_rcconf samba samba NO
diff --git a/package/samba/ipkg/swat.control b/package/samba/ipkg/swat.control
new file mode 100644
index 000000000..318941467
--- /dev/null
+++ b/package/samba/ipkg/swat.control
@@ -0,0 +1,5 @@
+Package: swat
+Priority: optional
+Section: net
+Depends: samba
+Description: NetBIOS/SMB file and print server
diff --git a/package/samba/ipkg/swat.postinst b/package/samba/ipkg/swat.postinst
new file mode 100644
index 000000000..85c2d226e
--- /dev/null
+++ b/package/samba/ipkg/swat.postinst
@@ -0,0 +1,6 @@
+#!/bin/sh
+. $IPKG_INSTROOT/etc/functions.sh
+add_service swat 901/tcp
+grep -qe '^swat ' -e '^#swat ' $IPKG_INSTROOT/etc/inetd.conf 2>&- || \
+ echo '#swat stream tcp nowait.400 root /usr/bin/swat swat' \
+ >>$IPKG_INSTROOT/etc/inetd.conf
diff --git a/package/samba/patches/patch-source_client_mtab_c b/package/samba/patches/patch-source_client_mtab_c
new file mode 100644
index 000000000..7dedcd065
--- /dev/null
+++ b/package/samba/patches/patch-source_client_mtab_c
@@ -0,0 +1,11 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- samba-3.3.3.orig/source/client/mtab.c 2009-04-01 13:48:54.000000000 +0200
++++ samba-3.3.3/source/client/mtab.c 2009-04-18 23:27:50.522604765 +0200
+@@ -32,6 +32,7 @@
+ #include <errno.h>
+ #include <stdio.h>
+ #include <sys/time.h>
++#include <sys/stat.h>
+ #include <time.h>
+ #include <fcntl.h>
+ #include <mntent.h>
diff --git a/package/samba/patches/patch-source_configure b/package/samba/patches/patch-source_configure
new file mode 100644
index 000000000..c41ed21e7
--- /dev/null
+++ b/package/samba/patches/patch-source_configure
@@ -0,0 +1,198 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- samba-3.3.3.orig/source/configure 2009-04-01 14:19:36.000000000 +0200
++++ samba-3.3.3/source/configure 2009-04-18 22:56:27.047962181 +0200
+@@ -44062,194 +44062,6 @@ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ #
+-#
+-#
+-case "$host_os" in
+- *linux*)
+- # glibc <= 2.3.2 has a broken getgrouplist
+- if test "$cross_compiling" = yes; then
+- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+-See \`config.log' for more details." >&5
+-$as_echo "$as_me: error: cannot run test program while cross compiling
+-See \`config.log' for more details." >&2;}
+- { (exit 1); exit 1; }; }; }
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-
+-#include <unistd.h>
+-#include <sys/utsname.h>
+-main() {
+- /* glibc up to 2.3 has a broken getgrouplist */
+-#if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
+- int libc_major = __GLIBC__;
+- int libc_minor = __GLIBC_MINOR__;
+-
+- if (libc_major < 2)
+- exit(1);
+- if ((libc_major == 2) && (libc_minor <= 3))
+- exit(1);
+-#endif
+- exit(0);
+-}
+-
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_link") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_try") 2>&5
+- ac_status=$?
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- linux_getgrouplist_ok=yes
+-else
+- $as_echo "$as_me: program exited with status $ac_status" >&5
+-$as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-( exit $ac_status )
+-linux_getgrouplist_ok=no
+-fi
+-rm -rf conftest.dSYM
+-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-
+-
+- if test x"$linux_getgrouplist_ok" = x"yes"; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_GETGROUPLIST 1
+-_ACEOF
+-
+- fi
+- ;;
+- *)
+-
+-for ac_func in getgrouplist
+-do
+-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+-$as_echo_n "checking for $ac_func... " >&6; }
+-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+- $as_echo_n "(cached) " >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h. */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h. */
+-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+- For example, HP-UX 11i <limits.h> declares gettimeofday. */
+-#define $ac_func innocuous_$ac_func
+-
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char $ac_func (); below.
+- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+- <limits.h> exists even on freestanding compilers. */
+-
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
+-
+-#undef $ac_func
+-
+-/* Override any GCC internal prototype to avoid an error.
+- Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char $ac_func ();
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined __stub_$ac_func || defined __stub___$ac_func
+-choke me
+-#endif
+-
+-int
+-main ()
+-{
+-return $ac_func ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (ac_try="$ac_link"
+-case "(($ac_try" in
+- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+- *) ac_try_echo=$ac_try;;
+-esac
+-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+-$as_echo "$ac_try_echo") >&5
+- (eval "$ac_link") 2>conftest.er1
+- ac_status=$?
+- grep -v '^ *+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+- (exit $ac_status); } && {
+- test -z "$ac_c_werror_flag" ||
+- test ! -s conftest.err
+- } && test -s conftest$ac_exeext && {
+- test "$cross_compiling" = yes ||
+- $as_test_x conftest$ac_exeext
+- }; then
+- eval "$as_ac_var=yes"
+-else
+- $as_echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+- eval "$as_ac_var=no"
+-fi
+-
+-rm -rf conftest.dSYM
+-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+- conftest$ac_exeext conftest.$ac_ext
+-fi
+-ac_res=`eval 'as_val=${'$as_ac_var'}
+- $as_echo "$as_val"'`
+- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+-$as_echo "$ac_res" >&6; }
+-as_val=`eval 'as_val=${'$as_ac_var'}
+- $as_echo "$as_val"'`
+- if test "x$as_val" = x""yes; then
+- cat >>confdefs.h <<_ACEOF
+-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+-_ACEOF
+-
+-fi
+-done
+-
+- ;;
+-esac
+-
+-#
+ # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
+ #
+
diff --git a/package/samba/patches/patch-source_registry_reg_perfcount_c b/package/samba/patches/patch-source_registry_reg_perfcount_c
new file mode 100644
index 000000000..a06b713d4
--- /dev/null
+++ b/package/samba/patches/patch-source_registry_reg_perfcount_c
@@ -0,0 +1,21 @@
+$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
+--- samba-3.3.4.orig/source/registry/reg_perfcount.c 2009-04-28 08:46:16.000000000 +0200
++++ samba-3.3.4/source/registry/reg_perfcount.c 2009-05-10 23:52:42.000000000 +0200
+@@ -616,14 +616,14 @@ static bool _reg_perfcount_add_counter(P
+ obj = NULL;
+ memset(buf, 0, PERFCOUNT_MAX_LEN);
+ memcpy(buf, data.dptr, data.dsize);
+- begin = index(buf, '[');
+- end = index(buf, ']');
++ begin = strchr(buf, '[');
++ end = strchr(buf, ']');
+ if(begin == NULL || end == NULL)
+ return False;
+ start = begin+1;
+
+ while(start < end) {
+- stop = index(start, ',');
++ stop = strchr(start, ',');
+ if(stop == NULL)
+ stop = end;
+ *stop = '\0';