#!/bin/bash # samba.SlackBuild # Heavily based on the original Slackware build scripts, # Modified by Stuart Winter # 06-Aug-2004 # Record toolchain & other info for the build log: slackbuildinfo # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/$PKGSERIES/$PACKAGE export PORTCWD=$PWD # Temporary build locations: export TMPBUILD=$TMP/build-$PACKAGE export PKG=$TMP/package-$PACKAGE mkpkgdirs # Delete & re-create temporary directories then cd into $TMPBUILD # Determine the CFLAGS for the known architectures: case $PORTARCH in arm) export SLKCFLAGS="-O2 -march=armv3 -mtune=xscale" ;; powerpc) export SLKCFLAGS="-O2" ;; sparc) export SLKCFLAGS="-O2" ;; esac # Extract source: tar jxvvf $CWD/$PACKAGE-$VERSION.tar.bz2 cd $PACKAGE-$VERSION slackhousekeeping # Apply patches: #zcat $CWD/samba-3.0.23.nsswitch.diff.gz | patch -p2 --verbose || failpatch cd source # Configure: CFLAGS="$SLKCFLAGS" \ ./configure \ --enable-cups \ --with-fhs \ --with-acl-support=yes \ --with-automount \ --enable-static=no \ --enable-shared=yes \ --prefix=/usr \ --localstatedir=/var \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --with-lockdir=/var/cache/samba \ --sysconfdir=/etc \ --with-configdir=/etc/samba \ --with-privatedir=/etc/samba/private \ --with-swatdir=/usr/share/swat \ --with-smbmount \ --with-quotas \ --with-syslog \ --with-utmp \ --with-libsmbclient \ --with-winbind \ --with-ldap \ $ARCH-slackware-linux || failconfig # Build: make || failmake # Create package framework: mkdir -p $PKG/{sbin,lib} \ $PKG/usr/doc/samba-$VERSION \ $PKG/var/spool/samba \ $PKG/var/log/samba \ $PKG/etc/samba/private \ $PKG/var/cache/samba chmod 700 $PKG/etc/samba/private chmod 1777 $PKG/var/spool/samba # Install into package: make install DESTDIR=$PKG # libnss_win* libraries: cp -a nsswitch/libnss_winbind.so $PKG/lib/libnss_winbind.so.2 cp -a nsswitch/libnss_wins.so $PKG/lib/libnss_wins.so.2 ( cd $PKG/lib ln -sf libnss_winbind.so.2 libnss_winbind.so ln -sf libnss_wins.so.2 libnss_wins.so ) # Add some (u)mount links: mkdir -p $PKG/sbin ( cd $PKG/sbin rm -f mount.smbfs ; ln -sf ../usr/bin/smbmount mount.smbfs # rm -f umount.smbfs ; ln -sf ../usr/bin/smbumount umount.smbfs rm -f mount.cifs ; ln -sf ../usr/sbin/mount.cifs mount.cifs # rm -f umount.cifs ; ln -sf ../usr/sbin/umount.cifs umount.cifs ) # Make sure libsmbclient gets installed: mkdir -p $PKG/usr/lib/samba ( cd $PKG/usr/lib/samba rm -f libsmbclient.a mv libsmbclient.so ../libsmbclient.so.0.0 ln -sf ../libsmbclient.so.0.0 libsmbclient.so cd .. rm -f libsmbclient.so.0 libsmbclient.so libsmbclient.a ln -sf libsmbclient.so.0.0 libsmbclient.so.0 ln -sf libsmbclient.so.0.0 libsmbclient.so ) chmod 644 $PKG/usr/include/libsmbclient.h # Install default config file: install -m644 $CWD/smb.conf.default $PKG/etc/samba/smb.conf-sample if [ ! -r $PKG/usr/bin/smbget ]; then rm -f $PKG/usr/share/man/man1/smbget.1 rm -f $PKG/usr/share/swat/help/smbget.1.html fi # We'll add rc.samba to the init directory, but chmod 644 so that it doesn't # start by default: mkdir -p $PKG/etc/rc.d install -m644 $CWD/rc.samba $PKG/etc/rc.d/rc.samba.new # Move man pages into Slackware location: mv $PKG/usr/share/man $PKG/usr # Install docs: cd .. cp -a COPYING Manifest README Read-Manifest-Now Roadmap WHATSNEW.txt docs examples \ $PKG/usr/doc/$PACKAGE-$VERSION # Junk: rm -rf $PKG/usr/doc/$PACKAGE-$VERSION/docs/{htmldocs,manpages,*.pdf,docbook} mkdir -p $PKG/usr/doc/samba-$VERSION/docs ( cd $PKG/usr/doc/$PACKAGE-$VERSION/docs ln -sf /usr/share/swat/using_samba using_samba ln -sf /usr/share/swat/help htmldocs ) # If necessary, start the fakeroot server so we can set file/dir ownerships: start_fakeroot # Apply generic Slackware packaging policies: cd $PKG slackstripall # strip all .a archives and all ELFs slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # chown -R root:root, chmod -R og-w, slackchown, slack644docs slackdesc # install slack-desc and doinst.sh # Build the package: if [ $PORTARCH = arm ]; then slackmp # run makepkg else makepkg -l y -c n $PKGSTORE/$PKGSERIES/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz fi # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links