summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extra/samba/APKBUILD92
-rw-r--r--extra/samba/samba.confd6
-rw-r--r--extra/samba/samba.initd64
3 files changed, 162 insertions, 0 deletions
diff --git a/extra/samba/APKBUILD b/extra/samba/APKBUILD
new file mode 100644
index 00000000..309c7a3b
--- /dev/null
+++ b/extra/samba/APKBUILD
@@ -0,0 +1,92 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=samba
+pkgver=3.2.8
+pkgrel=0
+pkgdesc="Tools to access a server's filespace and printers via SMB"
+url="http://www.samba.org"
+license="GPL3"
+subpackages="$pkgname-dev $pkgname-doc winbind $pkgname-common
+ $pkgname-initscript"
+depends="db popt ncurses uclibc samba-initscript"
+makedepends="db-dev popt-dev ncurses-dev"
+source="http://us1.$pkgname.org/$pkgname/ftp/stable/$pkgname-$pkgver.tar.gz
+ samba.initd
+ samba.confd
+ "
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver/source
+# patch -Np2 -i "$srcdir"/no-clients.patch || return 1
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/samba \
+ --with-configdir=/etc/samba \
+ --libdir=/usr/lib/samba \
+ --localstatedir=/var \
+ --with-fhs \
+ --with-lockdir=/var/cache/samba \
+ --with-piddir=/var/run/samba \
+ --with-logfilebase=/var/log/samba \
+ --without-pam \
+ --without-ads \
+ --with-libsmbclient \
+ --disable-nss-wrapper \
+ --disable-dnssd \
+ --disable-swat
+ make proto || return 1
+ make everything || return 1
+ make DESTDIR="$pkgdir" install
+
+ install -d "$pkgdir"/var/log/samba \
+ "$pkgdir"/usr/share/doc/samba
+ cd "$srcdir"/$pkgname-$pkgver
+ cp -r examples "pkgdir"/usr/share/doc/samba/
+ install -D packaging/RHEL/setup/smbusers "$pkgdir"/etc/samba/smbusers
+}
+
+initscript() {
+ pkgdesc="Init script for Samba"
+ depends=""
+ install -Dm755 $srcdir/samba.initd "$subpkgdir"/etc/init.d/samba
+ install -Dm644 $srcdir/samba.confd "$subpkgdir"/etc/conf.d/samba
+}
+
+_mv_files() {
+ local i
+ for i in "$@"; do
+ mkdir -p "$subpkgdir"/${i%/*}
+ mv "$pkgdir"/$i "$subpkgdir"/$i || return 1
+ done
+}
+
+winbind() {
+ pkgdesc="Samba user and group resolver"
+ depends="uclibc samba-common popt samba-initscript"
+ cd "$pkgdir"
+ _mv_files \
+ usr/bin/wbinfo \
+ usr/bin/ntlm_auth \
+ usr/sbin/winbindd \
+ usr/lib/samba/idmap \
+ usr/lib/samba/libwbclient*
+}
+
+common() {
+ pkgdesc="Samba common files for both client an servers"
+ depends="uclibc popt"
+ cd "$pkgdir"
+ _mv_files \
+ usr/bin/net \
+ usr/bin/nmblookup \
+ usr/bin/smbpasswd \
+ usr/bin/testparm \
+ usr/lib/samba/*.dat \
+ usr/lib/samba/libtalloc* \
+ usr/lib/samba/libtdb* \
+ var/run/samba \
+ var/cache/samba \
+ var/log/samba
+}
+
+md5sums="06efd6e6cc4aac628a1a0b082e4be0f2 samba-3.2.8.tar.gz
+587c1c4824ef5b0ac593fcf8ec8fec78 samba.initd
+c150433426e18261e6e3eed3930e1a76 samba.confd"
diff --git a/extra/samba/samba.confd b/extra/samba/samba.confd
new file mode 100644
index 00000000..3788c3c1
--- /dev/null
+++ b/extra/samba/samba.confd
@@ -0,0 +1,6 @@
+# add "winbindd" to daemon_list if you want start winbind from here as well
+daemon_list="smbd nmbd"
+
+smbd_options="-D"
+nmbd_options="-D"
+#winbindd_options=""
diff --git a/extra/samba/samba.initd b/extra/samba/samba.initd
new file mode 100644
index 00000000..45d9ef00
--- /dev/null
+++ b/extra/samba/samba.initd
@@ -0,0 +1,64 @@
+#!/sbin/runscript
+
+opts="reload"
+
+DAEMON=${SVCNAME#samba.}
+if [ "$DAEMON" != "samba" ]; then
+ daemon_list=$DAEMON
+fi
+
+depend() {
+ need net
+}
+
+start_smbd() {
+ start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- \
+ ${smbd_options:-D}
+}
+
+stop_smbd() {
+ start-stop-daemon --stop --quiet --pidfie /var/run/samba/smbd.pid
+}
+
+start_nmbd() {
+ start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- \
+ ${nmbd_options:-D}
+}
+
+stop_nmbd() {
+ start-stop-daemon --stop --quiet --pidfie /var/run/samba/nmbd.pid
+}
+
+start_winbindd() {
+ start-stop-daemon --start --quiet --exec /usr/sbin/winbindd \
+ -- $winbindd_options
+}
+
+stop_winbindd() {
+ start-stop-daemon --stop --quiet --oknodo --exec /usr/sbin/winbindd
+}
+
+start() {
+ for i in $daemon_list; do
+ ebegin "Starting $i"
+ start_$i
+ eend $?
+ done
+}
+
+stop() {
+ for i in $daemon_list; do
+ ebegin "Stopping $i"
+ stop_$i
+ eend $?
+ done
+}
+
+reload() {
+ for i in $daemon_list; do
+ ebegin "Reloading $i"
+ killall -HUP $i
+ eend $?
+ done
+}
+