diff -r -c -N openssh-3.0.2p1/contrib/aix/README openssh-3.0.2p1-aix/contrib/aix/README
*** openssh-3.0.2p1/contrib/aix/README	Thu Jan  1 11:00:00 1970
--- openssh-3.0.2p1-aix/contrib/aix/README	Sun Mar  3 15:21:15 2002
***************
*** 0 ****
--- 1,41 ----
+ Overview:
+ 
+ This directory contains files to build an AIX native (SMIT-installable)
+ openssh package.
+ 
+ 
+ Directions:
+ 
+ ./configure [options]
+ cd contrib/aix; ./buildbff.sh
+ 
+ This should result in a package openssh-[ver].bff being built in the
+ contrib/aix directory. This can be installed via "smitty install" or
+ similar. The results of "make install" will be left in install.log
+ for troubleshooting if necessary.
+ 
+ 
+ Acknowledgements:
+ 
+ The contents of this directory are based on Ben Lindstrom's Solaris
+ buildpkg.sh. Ben also supplied inventory.sh.
+ 
+ Jim Abbey's (GPL'ed) lppbuild-2.1 was used to learn how to build .bff's
+ and for comparison with the output from this script, however no code
+ from lppbuild is included and it is not required for operation.
+ 
+ 
+ Other notes:
+ 
+ The script treats all packages as USR packages (not ROOT+USR when
+ appropriate).  It seems to work, though......
+ 
+ 
+ Disclaimer:
+ 
+ It is hoped that it is useful but there is no warranty. If it breaks
+ you get to keep both pieces.
+ 
+ 
+ 	- Darren Tucker (dtucker at zip dot com dot au)
+ 	  2002/03/01
diff -r -c -N openssh-3.0.2p1/contrib/aix/buildbff.sh openssh-3.0.2p1-aix/contrib/aix/buildbff.sh
*** openssh-3.0.2p1/contrib/aix/buildbff.sh	Thu Jan  1 11:00:00 1970
--- openssh-3.0.2p1-aix/contrib/aix/buildbff.sh	Sun Mar  3 16:01:40 2002
***************
*** 0 ****
--- 1,194 ----
+ #!/bin/sh
+ #
+ # buildbff.sh: Create AIX SMIT-installable OpenSSH packages
+ #
+ # Author: Darren Tucker (dtucker at zip dot com dot au)
+ # This file is placed in the public domain and comes with absolutely
+ # no warranty.
+ # 
+ # Based originally on Ben Lindstrom's buildpkg.sh for Solaris
+ #
+ 
+ umask 022
+ PKGNAME=openssh
+ 
+ PATH=$PATH:`pwd`		# set path for external tools
+ export PATH
+ 
+ ## Extract common info requires for the 'info' part of the package.
+ VERSION=`tail -1 ../../version.h | sed -e 's/.*_\([0-9]\)/\1/g' | sed 's/\"$//'`
+ BFFVERSION=`echo $VERSION | sed 's/p/./g'`
+ 
+ echo "Building BFF for $PKGNAME $VERSION (package version $BFFVERSION)"
+ PKGDIR=package
+ 
+ # Clean build directory and package file
+ rm -rf $PKGDIR
+ mkdir $PKGDIR
+ rm -f $PKGNAME-$VERSION.bff
+ 
+ ## Start by faking root install 
+ echo "Faking root install..."
+ START=`pwd`
+ FAKE_ROOT=$START/$PKGDIR
+ cd ../.. 
+ make install-nokeys DESTDIR=$FAKE_ROOT >install.log 2>&1
+ 
+ ## Fill in some details, like prefix and sysconfdir
+ for confvar in prefix exec_prefix bindir sbindir libexecdir datadir mandir mansubdir sysconfdir piddir
+ do
+ 	eval $confvar=`grep "^$confvar=" Makefile | cut -d = -f 2`
+ done
+ 
+ # Rename config files; postinstall script will copy them if necessary
+ for cfgfile in ssh_config sshd_config ssh_prng_cmds
+ do
+ 	mv $FAKE_ROOT/$sysconfdir/$cfgfile $FAKE_ROOT/$sysconfdir/$cfgfile.default
+ done
+ 
+ #
+ # Generate lpp control files.
+ #	working dir is $FAKE_ROOT but files are generated in contrib/aix
+ #	and moved into place just before creation of .bff
+ #
+ cd $FAKE_ROOT
+ echo Generating LPP control files
+ find . ! -name . -print >../openssh.al
+ inventory.sh >../openssh.inventory
+ cp ../../../LICENCE ../openssh.copyright
+ 
+ #
+ # Create postinstall script
+ #
+ cat <<EOF >>../openssh.post_i
+ #!/bin/sh
+ 
+ # Create configs from defaults if necessary
+ for cfgfile in ssh_config sshd_config ssh_prng_cmds
+ do
+         if [ ! -f $sysconfdir/\$cfgfile ]
+         then
+                 echo "Creating \$cfgfile from default"
+                 cp $sysconfdir/\$cfgfile.default $sysconfdir/\$cfgfile
+         else
+                 echo "\$cfgfile already exists."
+         fi
+ done
+ 
+ # Generate keys unless they already exist
+ if [ -f "$sysconfdir/ssh_host_key" ] ; then
+         echo "$sysconfdir/ssh_host_key already exists, skipping."
+ else
+         $bindir/ssh-keygen -t rsa1 -f $sysconfdir/ssh_host_key -N ""
+ fi
+ if [ -f $sysconfdir/ssh_host_dsa_key ] ; then
+         echo "$sysconfdir/ssh_host_dsa_key already exists, skipping."
+ else
+         $bindir/ssh-keygen -t dsa -f $sysconfdir/ssh_host_dsa_key -N ""
+ fi
+ if [ -f $sysconfdir/ssh_host_rsa_key ] ; then
+         echo "$sysconfdir/ssh_host_rsa_key already exists, skipping."
+ else 
+         $bindir/ssh-keygen -t rsa -f $sysconfdir/ssh_host_rsa_key -N ""
+ fi
+ 
+ # Add to system startup if required
+ if grep $sbindir/sshd /etc/rc.tcpip >/dev/null
+ then
+         echo "sshd found in rc.tcpip, not adding."
+ else
+         
+         echo >>/etc/rc.tcpip
+         echo "echo Starting sshd" >>/etc/rc.tcpip
+         echo "$sbindir/sshd" >>/etc/rc.tcpip
+ fi
+ 
+ # Stop running sshd
+ if [ -f $piddir/sshd.pid ]
+ then
+         pid=\`cat $piddir/sshd.pid\`
+         if ps -p \$pid | grep sshd >/dev/null
+         then
+                 echo "Stopping sshd (pid \$pid)."
+                 kill \$pid
+         fi
+ fi
+ 
+ # Start now
+ echo "Starting sshd."
+ $sbindir/sshd
+ 
+ EOF
+ 
+ #
+ # Create liblpp.a and move control files into it
+ #
+ echo Creating liblpp.a
+ (
+ 	cd ..
+ 	for i in al copyright inventory post_i
+ 	do
+ 		ar -r liblpp.a openssh.$i
+ 		rm openssh.$i
+ 	done
+ )
+ 
+ #
+ # Create lpp_name
+ #
+ # This will end up looking something like:
+ # 4 R I OpenSSH {
+ # OpenSSH 3.0.2.1 1 N U en_US OpenSSH 3.0.2p1 Portable for AIX
+ # [
+ # %
+ # /usr/local/bin 8073
+ # /usr/local/etc 189
+ # /usr/local/libexec 185
+ # /usr/local/man/man1 145
+ # /usr/local/man/man8 83
+ # /usr/local/sbin 2105
+ # /usr/local/share 3
+ # %
+ # ]
+ echo Creating lpp_name
+ cat <<EOF >../lpp_name
+ 4 R I $PKGNAME {
+ $PKGNAME $BFFVERSION 1 N U en_US OpenSSH $VERSION Portable for AIX
+ [
+ %
+ EOF
+ 
+ for i in $bindir $sysconfdir $libexecdir $mandir/man1 $mandir/man8 $sbindir $datadir
+ do
+ 	# get size in 512 byte blocks
+ 	size=`du $FAKE_ROOT/$i | awk '{print $1}'`
+ 	echo "$i $size" >>../lpp_name
+ done
+ 
+ echo '%' >>../lpp_name
+ echo ']' >>../lpp_name
+ echo '}' >>../lpp_name
+ 
+ #
+ # Move pieces into place
+ #
+ mkdir -p usr/lpp/openssh
+ mv ../liblpp.a usr/lpp/openssh
+ mv ../lpp_name .
+ 
+ #
+ # Now invoke backup to create .bff file
+ #	note: lpp_name needs to be the first file do we generate the
+ #	file list on the fly and feed it to backup using -i
+ #
+ echo Creating $PKGNAME-$VERSION.bff with backup...
+ (
+ 	echo "./lpp_name"
+ 	find . ! -name lpp_name -a ! -name . -print 
+ ) | backup  -i -q -f ../$PKGNAME-$VERSION.bff $filelist
+ 
+ cd ..
+ 
+ echo $0: done.
+ rm -rf $PKGDIR
+ 
diff -r -c -N openssh-3.0.2p1/contrib/aix/inventory.sh openssh-3.0.2p1-aix/contrib/aix/inventory.sh
*** openssh-3.0.2p1/contrib/aix/inventory.sh	Thu Jan  1 11:00:00 1970
--- openssh-3.0.2p1-aix/contrib/aix/inventory.sh	Sun Mar  3 14:05:02 2002
***************
*** 0 ****
--- 1,37 ----
+ find . -ls | awk '{
+ 			if (NR != 1) {
+ 				## Encode permissions in oct
+ 				u=0; g=0; o=0;
+ 				if (substr($3,2,1) == "r") u=u+4;
+ 				if (substr($3,3,1) == "w") u=u+2;
+ 				if (substr($3,4,1) == "x") u=u+1;
+ 				if (substr($3,5,1) == "r") g=g+4;
+ 				if (substr($3,6,1) == "w") g=g+2;
+ 				if (substr($3,7,1) == "x") g=g+1;
+ 				if (substr($3,8,1) == "r") o=o+4;
+ 				if (substr($3,9,1) == "w") o=o+2;
+ 				if (substr($3,10,1) == "x") o=o+1;
+ 
+ 				## Start to display inventory information
+ 				print substr($11, 2, length($11) - 1)":";
+ 				print "\tclass=apply,inventory,openssh";
+ 				print "\towner=root";
+ 				print "\tgroup=system";
+ 				print "\tmode="u""g""o;
+ 				if (substr($3, 0, 1) == "-") {
+ 					## Entry is File
+ 					print "\ttype=FILE";
+ 					print "\tsize=VOLATILE";
+ 					## One should system() out do a checksum
+ 					print "\tchecksum=VOLATILE";
+ 				} else if (substr($3, 0, 1) == "l") { 
+ 					## Entry is SymLink
+ 					print "\ttype=SYMLINK";
+ 					print "\ttarget="$13;
+ 				} else if (substr($3, 0, 1) == "d") {
+ 					print "\ttype=DIRECTORY";
+ 				} 
+ 			}
+ 		  }'
+ 
+ 
