Skip to content

Commit

Permalink
Adding Solaris packaging files to HEAD.
Browse files Browse the repository at this point in the history
(This used to be commit 3ac5f6b)
  • Loading branch information
Shirish Kalele committed Apr 11, 2001
1 parent 91e97f9 commit 362e4bb
Show file tree
Hide file tree
Showing 12 changed files with 376 additions and 0 deletions.
18 changes: 18 additions & 0 deletions packaging/Solaris/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

INSTRUCTIONS: Preparing Samba packages for Solaris

To produce a package:

* Build the binaries (by running ./configure; make; in the source directory)
* Type sh makepkg.sh

The package will be created in the /tmp directory.

By default, the package will be built to install samba in /usr/local
To change the default, modify the INSTALL_BASE variable in makepkg.sh
This is after you have configured samba with a --prefix option of the
alternate samba location and then created the binaries.

Shirish Kalele <[email protected]>
Date: 2000.01.12

1 change: 1 addition & 0 deletions packaging/Solaris/copyright
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Copyright (C) 2001 Samba Team
44 changes: 44 additions & 0 deletions packaging/Solaris/i.swat
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
while read src dest
do
sed -e '/^swat.*swat$/d' $dest >/tmp/$$swat || exit 2
cat $src >>/tmp/$$swat || exit 2

# Use cp;rm instead of mv because $dest might be a symlink
cp -f /tmp/$$swat $dest || exit 2
rm -f /tmp/$$swat
done

if [ "$1" = ENDOFCLASS ]
then

# If local install, restart inetd
if [ -z "${PKG_INSTALL_ROOT}" ]
then
TARGET=`hostname`
kill -HUP `ps -e -o pid,comm | grep inetd | awk '{print $1}'`
else
TARGET="<servername>"
fi

cat <<EOF
The Samba Web Administration Tool (SWAT) has been installed on your system.
You can connect to it from a web browser on TCP port 901 at
http://${TARGET}:901/.

If you use NIS/NIS+, check the ${PKG_INSTALL_ROOT}/etc/nsswitch.conf file
to verify that the local services file is being used as a backend for the
services database, or you won't be able to connect to the Samba Admin Tool.

EOF

if [ ! -z "$PKG_INSTALL_ROOT" ]
then
CAT <<EOF
The SWAT settings will not take effect till you send a hangup (HUP) signal
to inetd on the target system.

EOF
fi

fi

1 change: 1 addition & 0 deletions packaging/Solaris/inetd.conf.master
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
swat stream tcp nowait.400 root __BASEDIR__/samba/bin/swat swat
122 changes: 122 additions & 0 deletions packaging/Solaris/makepkg.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
#!/bin/sh
#
# Copyright (C) Shirish A Kalele 2000
#
# Builds a Samba package from the samba distribution.
# By default, the package will be built to install samba in /usr/local
# Change the INSTALL_BASE variable to change this: will modify the pkginfo
# and samba.server files to point to the new INSTALL_BASE
#
INSTALL_BASE=/usr/local

add_dynamic_entries()
{
# First build the codepages and append codepage entries to prototype
echo "#\n# Codepages \n#"
echo d none samba/lib/codepages 0755 root other

CODEPAGELIST="437 737 850 852 861 932 866 949 950 936"
# Check if make_smbcodepage exists
if [ ! -f $DISTR_BASE/source/bin/make_smbcodepage ]; then
echo "Could not find $DISTR_BASE/source/bin/make_smbcodepage to generate codepages.\n\
Please create the binaries before packaging." >&2
exit 1
fi

for p in $CODEPAGELIST; do
$DISTR_BASE/source/bin/make_smbcodepage c $p $DISTR_BASE/source/codepages/codepage_def.$p $DISTR_BASE/source/codepages/codepage.$p
echo f none samba/lib/codepages/codepage.$p=source/codepages/codepage.$p 0644 root other
done

# Add the binaries, docs and SWAT files

echo "#\n# Binaries \n#"
cd $DISTR_BASE/source/bin
for binfile in *
do
if [ -f $binfile ]; then
echo f none samba/bin/$binfile=source/bin/$binfile 0755 root other
fi
done
echo "#\n# HTML documentation \n#"
echo d none samba/docs/htmldocs 0755 root other
cd $DISTR_BASE/docs/htmldocs
for htmldoc in *
do
if [ -f $htmldoc ]; then
echo f none samba/docs/htmldocs/$htmldoc=docs/htmldocs/$htmldoc 0644 root other
fi
done
echo "#\n# Text Docs \n#"
echo d none samba/docs/textdocs 0755 root other
cd $DISTR_BASE/docs/textdocs
for textdoc in *
do
if [ -f $textdoc ]; then
echo f none samba/docs/textdocs/$textdoc=docs/textdocs/$textdoc 0644 root other
fi
done
echo "#\n# SWAT \n#"
cd $DISTR_BASE
list=`find swat -type d`
for i in $list
do
echo "d none samba/$i 0755 root other"
done
list=`find swat -type f`
for i in $list
do
echo "f none samba/$i=$i 0644 root other"
done
echo "#\n# HTML documentation for SWAT\n#"
cd $DISTR_BASE/docs/htmldocs
for htmldoc in *
do
if [ -f $htmldoc ]; then
echo f none samba/swat/help/$htmldoc=docs/htmldocs/$htmldoc 0644 root other
fi
done

}

if [ $# = 0 ]
then
# Try to guess the distribution base..
CURR_DIR=`pwd`
DISTR_BASE=`echo $CURR_DIR | sed 's|\(.*\)/packaging.*|\1|'`
echo "Assuming Samba distribution is rooted at $DISTR_BASE.."
else
DISTR_BASE=$1
fi

#
if [ ! -d $DISTR_BASE ]; then
echo "Source build directory $DISTR_BASE does not exist."
exit 1
fi

# Set up the prototype file from prototype.master
if [ -f prototype ]; then
rm prototype
fi

# Setup version from version.h
VERSION=`sed 's/#define VERSION \"\(.*\)\"$/\1/' ../../source/include/version.h`
sed -e "s|__VERSION__|$VERSION|" -e "s|__ARCH__|`uname -p`|" -e "s|__BASEDIR__|$INSTALL_BASE|g" pkginfo.master >pkginfo

sed -e "s|__BASEDIR__|$INSTALL_BASE|g" inetd.conf.master >inetd.conf
sed -e "s|__BASEDIR__|$INSTALL_BASE|g" samba.server.master >samba.server

cp prototype.master prototype

# Add the dynamic part to the prototype file
(add_dynamic_entries >> prototype)

# Create the package
pkgmk -o -d /tmp -b $DISTR_BASE -f prototype
if [ $? = 0 ]
then
pkgtrans /tmp samba.pkg samba
fi
echo The samba package is in /tmp
rm -f prototype
12 changes: 12 additions & 0 deletions packaging/Solaris/pkginfo.master
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
PKG=samba
NAME=SMB based file/printer sharing
ARCH=__ARCH__
VERSION=__VERSION__
CATEGORY=system
VENDOR=Samba Team
DESC=File and printer sharing for Windows workstations
HOTLINE=Please contact your local UNIX support group
[email protected]
CLASSES=none
BASEDIR=__BASEDIR__
INTONLY=1
12 changes: 12 additions & 0 deletions packaging/Solaris/preremove
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh

# If this is a local deinstall, stop samba
if [ -z "$PKG_INSTALL_ROOT" ]
then
SMBD=`ps -e -o pid,comm | grep smbd | awk '{print $1}'`
NMBD=`ps -e -o pid,comm | grep nmbd | awk '{print $1}'`
[ ! -z "$SMBD" ] && kill $SMBD
[ ! -z "$NMBD" ] && kill $NMBD
sleep 2
fi

84 changes: 84 additions & 0 deletions packaging/Solaris/prototype.master
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#
# The static master prototype file for the Samba package.
# For files that can't be dynamically added to the prototype file at
# package build time
#
# Information files.
#
i pkginfo=./pkginfo
i copyright=./copyright
i request=./request
i preremove=./preremove
i i.swat=./i.swat
i r.swat=./r.swat
#
# Stuff that goes into the system areas of the filesystem.
#
d initscript /etc ? ? ?
d initscript /etc/init.d ? ? ?
f initscript /etc/init.d/samba.server=packaging/Solaris/samba.server 0744 root sys
d initscript /etc/rc3.d ? ? ?
s initscript /etc/rc3.d/S99samba.server=../init.d/samba.server
#
# Stuff to set up SWAT
#
e swat /etc/services=packaging/Solaris/services ? ? ?
e swat /etc/inetd.conf=packaging/Solaris/inetd.conf ? ? ?
#
# Create the samba subtree. (Usually /usr/local/samba )
#
d none samba 0755 root other
d none samba/var 0755 root other
d none samba/bin 0755 root other
d none samba/lib 0755 root other
d none samba/docs 0755 root other
#
# Scripts
#
f none samba/bin/smbtar=source/script/smbtar 0755 root other
f none samba/bin/addtosmbpass=source/script/addtosmbpass 0755 root other
f none samba/bin/convert_smbpasswd=source/script/convert_smbpasswd 0755 root other
f none samba/bin/mksmbpasswd.sh=source/script/mksmbpasswd.sh 0755 root other
#
# man pages
#
d none /usr ? ? ?
d none /usr/share ? ? ?
d none /usr/share/man ? ? ?
d none /usr/share/man/man1 ? ? ?
d none /usr/share/man/man5 ? ? ?
d none /usr/share/man/man7 ? ? ?
d none /usr/share/man/man8 ? ? ?
f none /usr/share/man/man1/make_smbcodepage.1=docs/manpages/make_smbcodepage.1 0644 root other
f none /usr/share/man/man1/nmblookup.1=docs/manpages/nmblookup.1 0644 root other
f none /usr/share/man/man1/smbclient.1=docs/manpages/smbclient.1 0644 root other
f none /usr/share/man/man1/smbrun.1=docs/manpages/smbrun.1 0644 root other
f none /usr/share/man/man1/smbsh.1=docs/manpages/smbsh.1 0644 root other
f none /usr/share/man/man1/smbstatus.1=docs/manpages/smbstatus.1 0644 root other
f none /usr/share/man/man1/smbtar.1=docs/manpages/smbtar.1 0644 root other
f none /usr/share/man/man1/testparm.1=docs/manpages/testparm.1 0644 root other
f none /usr/share/man/man1/testprns.1=docs/manpages/testprns.1 0644 root other
f none /usr/share/man/man5/lmhosts.5=docs/manpages/lmhosts.5 0644 root other
f none /usr/share/man/man5/smb.conf.5=docs/manpages/smb.conf.5 0644 root other
f none /usr/share/man/man5/smbpasswd.5=docs/manpages/smbpasswd.5 0644 root other
f none /usr/share/man/man7/samba.7=docs/manpages/samba.7 0644 root other
f none /usr/share/man/man8/nmbd.8=docs/manpages/nmbd.8 0644 root other
f none /usr/share/man/man8/smbd.8=docs/manpages/smbd.8 0644 root other
f none /usr/share/man/man8/smbmnt.8=docs/manpages/smbmnt.8 0644 root other
f none /usr/share/man/man8/smbmount.8=docs/manpages/smbmount.8 0644 root other
f none /usr/share/man/man8/smbpasswd.8=docs/manpages/smbpasswd.8 0644 root other
f none /usr/share/man/man8/smbumount.8=docs/manpages/smbumount.8 0644 root other
f none /usr/share/man/man8/swat.8=docs/manpages/swat.8 0644 root other
f none /usr/share/man/man8/smbspool.8=docs/manpages/smbspool.8 0644 root other
#
# Stuff that goes into lib
#
f none samba/lib/smb.conf.example=examples/smb.conf.default 0644 root other
d none samba/lib/regeditscripts 0755 root other
f none samba/lib/regeditscripts/NT4_PlainPassword.reg=docs/NT4_PlainPassword.reg 0444 root other
f none samba/lib/regeditscripts/Win95_PlainPassword.reg=docs/Win95_PlainPassword.reg 0444 root other
f none samba/lib/regeditscripts/Win98_PlainPassword.reg=docs/Win98_PlainPassword.reg 0444 root other
f none samba/lib/regeditscripts/Win2000_PlainPassword.reg=docs/Win2000_PlainPassword.reg 0444 root other
#
# Static part of prototype file ends.
#
16 changes: 16 additions & 0 deletions packaging/Solaris/r.swat
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
while read dest
do
sed -e '/^swat.*swat$/d' $dest >/tmp/$$swat || exit 2
# Use cp;rm; instead of mv because $dest might be a symlink
cp -f /tmp/$$swat $dest || exit 2
rm -f /tmp/$$swat
done

if [ "$1" = ENDOFCLASS ]
then
if [ -z "$PKG_INSTALL_ROOT" ]
then
kill -HUP `ps -e -o pid,comm | grep inetd | awk '{print $1}'`
fi
fi

17 changes: 17 additions & 0 deletions packaging/Solaris/request
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
trap 'exit 3' 15

VALSTR=/usr/sadm/bin/valstr

resp=`ckyorn -d y -p "Do you wish to have Samba start whenever the system boots up? (default:y) " -Q`
$VALSTR -r "^[yY]" $resp
[ $? -eq 0 ] && CLASSES="$CLASSES initscript"

resp=`ckyorn -d y -p "Do you wish to set up the Samba Web Admin Tool (SWAT)? (default:y) " -Q`
$VALSTR -r "^[yY]" $resp
[ $? -eq 0 ] && CLASSES="$CLASSES swat"

cat >$1 <<!
CLASSES=$CLASSES
!
exit 0

48 changes: 48 additions & 0 deletions packaging/Solaris/samba.server.master
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/sh
#ident "@(#)samba.server 1.0 96/06/19 TK" /* SVr4.0 1.1.13.1*/
#
# Please send info on modifications to [email protected]
#
# This file should have uid root, gid sys and chmod 744
#
if [ ! -d /usr/bin ]
then # /usr not mounted
exit
fi

killproc() { # kill the named process(es)
pid=`/usr/bin/ps -e |
/usr/bin/grep -w $1 |
/usr/bin/sed -e 's/^ *//' -e 's/ .*//'`
[ "$pid" != "" ] && kill $pid
}

# Start/stop processes required for samba server

case "$1" in

'start')
#
# Edit these lines to suit your installation (paths, workgroup, host)
#
BASE=__BASEDIR__/samba
$BASE/bin/smbd -D -s$BASE/lib/smb.conf
$BASE/bin/nmbd -D -s$BASE/lib/smb.conf
;;
'stop')
killproc nmbd
killproc smbd
;;

'restart')
killproc nmbd
killproc smbd
BASE=/usr/local/samba
$BASE/bin/smbd -D -s$BASE/lib/smb.conf
$BASE/bin/nmbd -D -l$BASE/var/log -s$BASE/lib/smb.conf
;;

*)
echo "Usage: /etc/init.d/samba.server { start | stop | restart }"
;;
esac
1 change: 1 addition & 0 deletions packaging/Solaris/services
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
swat 901/tcp # Samba Web Admin Tool - swat

0 comments on commit 362e4bb

Please sign in to comment.