summaryrefslogtreecommitdiff
path: root/packaging/Solaris/makepkg.sh.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/Solaris/makepkg.sh.tmpl')
-rwxr-xr-xpackaging/Solaris/makepkg.sh.tmpl164
1 files changed, 164 insertions, 0 deletions
diff --git a/packaging/Solaris/makepkg.sh.tmpl b/packaging/Solaris/makepkg.sh.tmpl
new file mode 100755
index 0000000000..55a2da2c6a
--- /dev/null
+++ b/packaging/Solaris/makepkg.sh.tmpl
@@ -0,0 +1,164 @@
+#!/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()
+{
+ # 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
+
+ # Add the scripts to bin/
+ echo "#\n# Scripts \n#"
+ cd $DISTR_BASE/source/script
+ for shfile in *
+ do
+ if [ -f $shfile ]; then
+ echo f none samba/bin/$shfile=source/script/$shfile 0755 root other
+ fi
+ done
+
+ # add libraries to /lib for winbind
+ echo "#\n# Libraries \n#"
+ if [ -f $DISTR_BASE/source/nsswitch/libnss_winbind.so ] ; then
+ echo f none /usr/lib/libnss_winbind.so=source/nsswitch/libnss_winbind.so 0755 root other
+ echo s none /usr/lib/libnss_winbind.so.1=/usr/lib/libnss_winbind.so 0755 root other
+ echo s none /usr/lib/libnss_winbind.so.2=/usr/lib/libnss_winbind.so 0755 root other
+ echo s none /usr/lib/nss_winbind.so.1=/usr/lib/libnss_winbind.so 0755 root other
+ echo s none /usr/lib/nss_winbind.so.2=/usr/lib/libnss_winbind.so 0755 root other
+ fi
+
+ # Add the manpages
+ echo "#\n# man pages \n#"
+ echo d none /usr ? ? ?
+ echo d none /usr/share ? ? ?
+ echo d none /usr/share/man ? ? ?
+
+ # Create directories for man page sections if nonexistent
+ cd $DISTR_BASE/docs/manpages
+ for i in 1 2 3 4 5 6 7 8 9
+ do
+ manpages=`ls *.$i 2>/dev/null`
+ if [ $? -eq 0 ]
+ then
+ echo d none /usr/share/man/man$i ? ? ?
+ for manpage in $manpages
+ do
+ echo f none /usr/share/man/man${i}/${manpage}=docs/manpages/$manpage 0644 root other
+ done
+ fi
+ done
+
+ echo "#\n# HTML documentation \n#"
+ cd $DISTR_BASE
+ list=`find docs/htmldocs -type d | grep -v "/CVS$"`
+ for docdir in $list
+ do
+ if [ -d $docdir ]; then
+ echo d none samba/$docdir 0755 root other
+ fi
+ done
+
+ list=`find docs/htmldocs -type f | grep -v /CVS/`
+ for htmldoc in $list
+ do
+ if [ -f $htmldoc ]; then
+ echo f none samba/$htmldoc=$htmldoc 0644 root other
+ fi
+ done
+
+ # Create a symbolic link to the Samba book in docs/ for beginners
+ echo 's none samba/docs/samba_book=htmldocs/using_samba'
+
+ 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 | grep -v "/CVS$"`
+ for i in $list
+ do
+ echo "d none samba/$i 0755 root other"
+ done
+ list=`find swat -type f | grep -v /CVS/`
+ 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
+
+ echo "#\n# Using Samba Book files for SWAT\n#"
+ cd $DISTR_BASE/docs/htmldocs
+
+# set up a symbolic link instead of duplicating the book tree
+ echo 's none samba/swat/using_samba=../docs/htmldocs/using_samba'
+
+}
+
+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=PVERSION
+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