xref: /freebsd/crypto/openssh/contrib/aix/buildbff.sh (revision 3af64f03119a159ac15eb75b92d346705b490385)
1ce3adf43SDag-Erling Smørgrav#!/bin/sh
2ce3adf43SDag-Erling Smørgrav#
3ce3adf43SDag-Erling Smørgrav# buildbff.sh: Create AIX SMIT-installable OpenSSH packages
4ce3adf43SDag-Erling Smørgrav#
5ce3adf43SDag-Erling Smørgrav# Author: Darren Tucker (dtucker at zip dot com dot au)
6ce3adf43SDag-Erling Smørgrav# This file is placed in the public domain and comes with absolutely
7ce3adf43SDag-Erling Smørgrav# no warranty.
8ce3adf43SDag-Erling Smørgrav#
9ce3adf43SDag-Erling Smørgrav# Based originally on Ben Lindstrom's buildpkg.sh for Solaris
10ce3adf43SDag-Erling Smørgrav#
11ce3adf43SDag-Erling Smørgrav
12ce3adf43SDag-Erling Smørgrav#
13ce3adf43SDag-Erling Smørgrav# Tunable configuration settings
14ce3adf43SDag-Erling Smørgrav# 	create a "config.local" in your build directory or set
15ce3adf43SDag-Erling Smørgrav#	environment variables to override these.
16ce3adf43SDag-Erling Smørgrav#
17ce3adf43SDag-Erling Smørgrav[ -z "$PERMIT_ROOT_LOGIN" ] && PERMIT_ROOT_LOGIN=no
18ce3adf43SDag-Erling Smørgrav[ -z "$X11_FORWARDING" ] && X11_FORWARDING=no
19ce3adf43SDag-Erling Smørgrav[ -z "$AIX_SRC" ] && AIX_SRC=no
20ce3adf43SDag-Erling Smørgrav
21ce3adf43SDag-Erling Smørgravumask 022
22ce3adf43SDag-Erling Smørgrav
23ce3adf43SDag-Erling Smørgravstartdir=`pwd`
24ce3adf43SDag-Erling Smørgrav
25ce3adf43SDag-Erling Smørgravperl -v >/dev/null || (echo perl required; exit 1)
26ce3adf43SDag-Erling Smørgrav
27ce3adf43SDag-Erling Smørgrav# Path to inventory.sh: same place as buildbff.sh
28ce3adf43SDag-Erling Smørgravif  echo $0 | egrep '^/'
29ce3adf43SDag-Erling Smørgravthen
30ce3adf43SDag-Erling Smørgrav	inventory=`dirname $0`/inventory.sh		# absolute path
31ce3adf43SDag-Erling Smørgravelse
32ce3adf43SDag-Erling Smørgrav	inventory=`pwd`/`dirname $0`/inventory.sh	# relative path
33ce3adf43SDag-Erling Smørgravfi
34ce3adf43SDag-Erling Smørgrav
35ce3adf43SDag-Erling Smørgrav#
36ce3adf43SDag-Erling Smørgrav# We still support running from contrib/aix, but this is deprecated
37ce3adf43SDag-Erling Smørgrav#
38ce3adf43SDag-Erling Smørgravif pwd | egrep 'contrib/aix$'
39ce3adf43SDag-Erling Smørgravthen
40ce3adf43SDag-Erling Smørgrav	echo "Changing directory to `pwd`/../.."
41ce3adf43SDag-Erling Smørgrav	echo "Please run buildbff.sh from your build directory in future."
42ce3adf43SDag-Erling Smørgrav	cd ../..
43ce3adf43SDag-Erling Smørgrav	contribaix=1
44ce3adf43SDag-Erling Smørgravfi
45ce3adf43SDag-Erling Smørgrav
46ce3adf43SDag-Erling Smørgravif [ ! -f Makefile ]
47ce3adf43SDag-Erling Smørgravthen
48ce3adf43SDag-Erling Smørgrav	echo "Makefile not found (did you run configure?)"
49ce3adf43SDag-Erling Smørgrav	exit 1
50ce3adf43SDag-Erling Smørgravfi
51ce3adf43SDag-Erling Smørgrav
52ce3adf43SDag-Erling Smørgrav#
53ce3adf43SDag-Erling Smørgrav# Directories used during build:
54ce3adf43SDag-Erling Smørgrav# current dir = $objdir		directory you ran ./configure in.
55ce3adf43SDag-Erling Smørgrav# $objdir/$PKGDIR/ 		directory package files are constructed in
56ce3adf43SDag-Erling Smørgrav# $objdir/$PKGDIR/root/		package root ($FAKE_ROOT)
57ce3adf43SDag-Erling Smørgrav#
58ce3adf43SDag-Erling Smørgravobjdir=`pwd`
59ce3adf43SDag-Erling SmørgravPKGNAME=openssh
60ce3adf43SDag-Erling SmørgravPKGDIR=package
61ce3adf43SDag-Erling Smørgrav
62ce3adf43SDag-Erling Smørgrav#
63ce3adf43SDag-Erling Smørgrav# Collect local configuration settings to override defaults
64ce3adf43SDag-Erling Smørgrav#
65ce3adf43SDag-Erling Smørgravif [ -s ./config.local ]
66ce3adf43SDag-Erling Smørgravthen
67ce3adf43SDag-Erling Smørgrav	echo Reading local settings from config.local
68ce3adf43SDag-Erling Smørgrav	. ./config.local
69ce3adf43SDag-Erling Smørgravfi
70ce3adf43SDag-Erling Smørgrav
71ce3adf43SDag-Erling Smørgrav#
72ce3adf43SDag-Erling Smørgrav# Fill in some details from Makefile, like prefix and sysconfdir
73ce3adf43SDag-Erling Smørgrav#	the eval also expands variables like sysconfdir=${prefix}/etc
74ce3adf43SDag-Erling Smørgrav#	provided they are eval'ed in the correct order
75ce3adf43SDag-Erling Smørgrav#
76ce3adf43SDag-Erling Smørgravfor confvar in prefix exec_prefix bindir sbindir libexecdir datadir mandir mansubdir sysconfdir piddir srcdir
77ce3adf43SDag-Erling Smørgravdo
78ce3adf43SDag-Erling Smørgrav	eval $confvar=`grep "^$confvar=" $objdir/Makefile | cut -d = -f 2`
79ce3adf43SDag-Erling Smørgravdone
80ce3adf43SDag-Erling Smørgrav
81ce3adf43SDag-Erling Smørgrav#
82ce3adf43SDag-Erling Smørgrav# Collect values of privsep user and privsep path
83ce3adf43SDag-Erling Smørgrav#	currently only found in config.h
84ce3adf43SDag-Erling Smørgrav#
85ce3adf43SDag-Erling Smørgravfor confvar in SSH_PRIVSEP_USER PRIVSEP_PATH
86ce3adf43SDag-Erling Smørgravdo
87ce3adf43SDag-Erling Smørgrav	eval $confvar=`awk '/#define[ \t]'$confvar'/{print $3}' $objdir/config.h`
88ce3adf43SDag-Erling Smørgravdone
89ce3adf43SDag-Erling Smørgrav
90ce3adf43SDag-Erling Smørgrav# Set privsep defaults if not defined
91ce3adf43SDag-Erling Smørgravif [ -z "$SSH_PRIVSEP_USER" ]
92ce3adf43SDag-Erling Smørgravthen
93ce3adf43SDag-Erling Smørgrav	SSH_PRIVSEP_USER=sshd
94ce3adf43SDag-Erling Smørgravfi
95ce3adf43SDag-Erling Smørgravif [ -z "$PRIVSEP_PATH" ]
96ce3adf43SDag-Erling Smørgravthen
97ce3adf43SDag-Erling Smørgrav	PRIVSEP_PATH=/var/empty
98ce3adf43SDag-Erling Smørgravfi
99ce3adf43SDag-Erling Smørgrav
100ce3adf43SDag-Erling Smørgrav# Clean package build directory
101ce3adf43SDag-Erling Smørgravrm -rf $objdir/$PKGDIR
102ce3adf43SDag-Erling SmørgravFAKE_ROOT=$objdir/$PKGDIR/root
103ce3adf43SDag-Erling Smørgravmkdir -p $FAKE_ROOT
104ce3adf43SDag-Erling Smørgrav
105ce3adf43SDag-Erling Smørgrav# Start by faking root install
106ce3adf43SDag-Erling Smørgravecho "Faking root install..."
107ce3adf43SDag-Erling Smørgravcd $objdir
108ce3adf43SDag-Erling Smørgravmake install-nokeys DESTDIR=$FAKE_ROOT
109ce3adf43SDag-Erling Smørgrav
110ce3adf43SDag-Erling Smørgravif [ $? -gt 0 ]
111ce3adf43SDag-Erling Smørgravthen
112ce3adf43SDag-Erling Smørgrav	echo "Fake root install failed, stopping."
113ce3adf43SDag-Erling Smørgrav	exit 1
114ce3adf43SDag-Erling Smørgravfi
115ce3adf43SDag-Erling Smørgrav
116ce3adf43SDag-Erling Smørgrav#
117ce3adf43SDag-Erling Smørgrav# Copy informational files to include in package
118ce3adf43SDag-Erling Smørgrav#
119ce3adf43SDag-Erling Smørgravcp $srcdir/LICENCE $objdir/$PKGDIR/
120ce3adf43SDag-Erling Smørgravcp $srcdir/README* $objdir/$PKGDIR/
121ce3adf43SDag-Erling Smørgrav
122ce3adf43SDag-Erling Smørgrav#
123ce3adf43SDag-Erling Smørgrav# Extract common info requires for the 'info' part of the package.
124ce3adf43SDag-Erling Smørgrav#	AIX requires 4-part version numbers
125ce3adf43SDag-Erling Smørgrav#
126ce3adf43SDag-Erling SmørgravVERSION=`./ssh -V 2>&1 | cut -f 1 -d , | cut -f 2 -d _`
127ce3adf43SDag-Erling SmørgravMAJOR=`echo $VERSION | cut -f 1 -d p | cut -f 1 -d .`
128ce3adf43SDag-Erling SmørgravMINOR=`echo $VERSION | cut -f 1 -d p | cut -f 2 -d .`
129ce3adf43SDag-Erling SmørgravPATCH=`echo $VERSION | cut -f 1 -d p | cut -f 3 -d .`
130ce3adf43SDag-Erling SmørgravPORTABLE=`echo $VERSION | awk 'BEGIN{FS="p"}{print $2}'`
131ce3adf43SDag-Erling Smørgrav[ "$PATCH" = "" ] && PATCH=0
132ce3adf43SDag-Erling Smørgrav[ "$PORTABLE" = "" ] && PORTABLE=0
133ce3adf43SDag-Erling SmørgravBFFVERSION=`printf "%d.%d.%d.%d" $MAJOR $MINOR $PATCH $PORTABLE`
134ce3adf43SDag-Erling Smørgrav
135ce3adf43SDag-Erling Smørgravecho "Building BFF for $PKGNAME $VERSION (package version $BFFVERSION)"
136ce3adf43SDag-Erling Smørgrav
137ce3adf43SDag-Erling Smørgrav#
138ce3adf43SDag-Erling Smørgrav# Set ssh and sshd parameters as per config.local
139ce3adf43SDag-Erling Smørgrav#
140ce3adf43SDag-Erling Smørgravif [ "${PERMIT_ROOT_LOGIN}" = no ]
141ce3adf43SDag-Erling Smørgravthen
142ce3adf43SDag-Erling Smørgrav	perl -p -i -e "s/#PermitRootLogin yes/PermitRootLogin no/" \
143ce3adf43SDag-Erling Smørgrav		$FAKE_ROOT/${sysconfdir}/sshd_config
144ce3adf43SDag-Erling Smørgravfi
145ce3adf43SDag-Erling Smørgravif [ "${X11_FORWARDING}" = yes ]
146ce3adf43SDag-Erling Smørgravthen
147ce3adf43SDag-Erling Smørgrav	perl -p -i -e "s/#X11Forwarding no/X11Forwarding yes/" \
148ce3adf43SDag-Erling Smørgrav		$FAKE_ROOT/${sysconfdir}/sshd_config
149ce3adf43SDag-Erling Smørgravfi
150ce3adf43SDag-Erling Smørgrav
151ce3adf43SDag-Erling Smørgrav
152ce3adf43SDag-Erling Smørgrav# Rename config files; postinstall script will copy them if necessary
153ce3adf43SDag-Erling Smørgravfor cfgfile in ssh_config sshd_config
154ce3adf43SDag-Erling Smørgravdo
155ce3adf43SDag-Erling Smørgrav	mv $FAKE_ROOT/$sysconfdir/$cfgfile $FAKE_ROOT/$sysconfdir/$cfgfile.default
156ce3adf43SDag-Erling Smørgravdone
157ce3adf43SDag-Erling Smørgrav
158ce3adf43SDag-Erling Smørgrav#
159ce3adf43SDag-Erling Smørgrav# Generate lpp control files.
160ce3adf43SDag-Erling Smørgrav#	working dir is $FAKE_ROOT but files are generated in dir above
161ce3adf43SDag-Erling Smørgrav#	and moved into place just before creation of .bff
162ce3adf43SDag-Erling Smørgrav#
163ce3adf43SDag-Erling Smørgravcd $FAKE_ROOT
164ce3adf43SDag-Erling Smørgravecho Generating LPP control files
165ce3adf43SDag-Erling Smørgravfind . ! -name . -print >../openssh.al
166ce3adf43SDag-Erling Smørgrav$inventory >../openssh.inventory
167ce3adf43SDag-Erling Smørgrav
168ce3adf43SDag-Erling Smørgravcat <<EOD >../openssh.copyright
169ce3adf43SDag-Erling SmørgravThis software is distributed under a BSD-style license.
170ce3adf43SDag-Erling SmørgravFor the full text of the license, see /usr/lpp/openssh/LICENCE
171ce3adf43SDag-Erling SmørgravEOD
172ce3adf43SDag-Erling Smørgrav
173ce3adf43SDag-Erling Smørgrav#
174ce3adf43SDag-Erling Smørgrav# openssh.size file allows filesystem expansion as required
175ce3adf43SDag-Erling Smørgrav# generate list of directories containing files
176ce3adf43SDag-Erling Smørgrav# then calculate disk usage for each directory and store in openssh.size
177ce3adf43SDag-Erling Smørgrav#
178ce3adf43SDag-Erling Smørgravfiles=`find . -type f -print`
179ce3adf43SDag-Erling Smørgravdirs=`for file in $files; do dirname $file; done | sort -u`
180ce3adf43SDag-Erling Smørgravfor dir in $dirs
181ce3adf43SDag-Erling Smørgravdo
182ce3adf43SDag-Erling Smørgrav	du $dir
183ce3adf43SDag-Erling Smørgravdone > ../openssh.size
184ce3adf43SDag-Erling Smørgrav
185ce3adf43SDag-Erling Smørgrav#
186ce3adf43SDag-Erling Smørgrav# Create postinstall script
187ce3adf43SDag-Erling Smørgrav#
188ce3adf43SDag-Erling Smørgravcat <<EOF >>../openssh.post_i
189ce3adf43SDag-Erling Smørgrav#!/bin/sh
190ce3adf43SDag-Erling Smørgrav
191ce3adf43SDag-Erling Smørgravecho Creating configs from defaults if necessary.
192ce3adf43SDag-Erling Smørgravfor cfgfile in ssh_config sshd_config
193ce3adf43SDag-Erling Smørgravdo
194ce3adf43SDag-Erling Smørgrav	if [ ! -f $sysconfdir/\$cfgfile ]
195ce3adf43SDag-Erling Smørgrav	then
196ce3adf43SDag-Erling Smørgrav		echo "Creating \$cfgfile from default"
197ce3adf43SDag-Erling Smørgrav		cp $sysconfdir/\$cfgfile.default $sysconfdir/\$cfgfile
198ce3adf43SDag-Erling Smørgrav	else
199ce3adf43SDag-Erling Smørgrav		echo "\$cfgfile already exists."
200ce3adf43SDag-Erling Smørgrav	fi
201ce3adf43SDag-Erling Smørgravdone
202ce3adf43SDag-Erling Smørgravecho
203ce3adf43SDag-Erling Smørgrav
204ce3adf43SDag-Erling Smørgrav# Create PrivilegeSeparation user and group if not present
205ce3adf43SDag-Erling Smørgravecho Checking for PrivilegeSeparation user and group.
206ce3adf43SDag-Erling Smørgravif cut -f1 -d: /etc/group | egrep '^'$SSH_PRIVSEP_USER'\$' >/dev/null
207ce3adf43SDag-Erling Smørgravthen
208ce3adf43SDag-Erling Smørgrav	echo "PrivSep group $SSH_PRIVSEP_USER already exists."
209ce3adf43SDag-Erling Smørgravelse
210ce3adf43SDag-Erling Smørgrav	echo "Creating PrivSep group $SSH_PRIVSEP_USER."
211ce3adf43SDag-Erling Smørgrav	mkgroup -A $SSH_PRIVSEP_USER
212ce3adf43SDag-Erling Smørgravfi
213ce3adf43SDag-Erling Smørgrav
214ce3adf43SDag-Erling Smørgrav# Create user if required
215ce3adf43SDag-Erling Smørgravif lsuser "$SSH_PRIVSEP_USER" >/dev/null
216ce3adf43SDag-Erling Smørgravthen
217ce3adf43SDag-Erling Smørgrav	echo "PrivSep user $SSH_PRIVSEP_USER already exists."
218ce3adf43SDag-Erling Smørgravelse
219ce3adf43SDag-Erling Smørgrav	echo "Creating PrivSep user $SSH_PRIVSEP_USER."
220ce3adf43SDag-Erling Smørgrav	mkuser gecos='SSHD PrivSep User' login=false rlogin=false account_locked=true pgrp=$SSH_PRIVSEP_USER $SSH_PRIVSEP_USER
221ce3adf43SDag-Erling Smørgravfi
222ce3adf43SDag-Erling Smørgrav
223ce3adf43SDag-Erling Smørgravif egrep '^[ \t]*UsePrivilegeSeparation[ \t]+no' $sysconfdir/sshd_config >/dev/null
224ce3adf43SDag-Erling Smørgravthen
225ce3adf43SDag-Erling Smørgrav	echo UsePrivilegeSeparation not enabled, privsep directory not required.
226ce3adf43SDag-Erling Smørgravelse
227ce3adf43SDag-Erling Smørgrav	# create chroot directory if required
228ce3adf43SDag-Erling Smørgrav	if [ -d $PRIVSEP_PATH ]
229ce3adf43SDag-Erling Smørgrav	then
230ce3adf43SDag-Erling Smørgrav		echo "PrivSep chroot directory $PRIVSEP_PATH already exists."
231ce3adf43SDag-Erling Smørgrav	else
232ce3adf43SDag-Erling Smørgrav		echo "Creating PrivSep chroot directory $PRIVSEP_PATH."
233ce3adf43SDag-Erling Smørgrav		mkdir $PRIVSEP_PATH
234ce3adf43SDag-Erling Smørgrav		chown 0 $PRIVSEP_PATH
235ce3adf43SDag-Erling Smørgrav		chgrp 0 $PRIVSEP_PATH
236ce3adf43SDag-Erling Smørgrav		chmod 755 $PRIVSEP_PATH
237ce3adf43SDag-Erling Smørgrav	fi
238ce3adf43SDag-Erling Smørgravfi
239ce3adf43SDag-Erling Smørgravecho
240ce3adf43SDag-Erling Smørgrav
241ce3adf43SDag-Erling Smørgrav# Generate keys unless they already exist
242ce3adf43SDag-Erling Smørgravecho Creating host keys if required.
243*190cef3dSDag-Erling Smørgrav$bindir/ssh-keygen -A
244ce3adf43SDag-Erling Smørgravecho
245ce3adf43SDag-Erling Smørgrav
246ce3adf43SDag-Erling Smørgrav# Set startup command depending on SRC support
247ce3adf43SDag-Erling Smørgravif [ "$AIX_SRC" = "yes" ]
248ce3adf43SDag-Erling Smørgravthen
249ce3adf43SDag-Erling Smørgrav	echo Creating SRC sshd subsystem.
250ce3adf43SDag-Erling Smørgrav	rmssys -s sshd 2>&1 >/dev/null
251ce3adf43SDag-Erling Smørgrav	mkssys -s sshd -p "$sbindir/sshd" -a '-D' -u 0 -S -n 15 -f 9 -R -G tcpip
252ce3adf43SDag-Erling Smørgrav	startupcmd="start $sbindir/sshd \\\"\\\$src_running\\\""
253ce3adf43SDag-Erling Smørgrav	oldstartcmd="$sbindir/sshd"
254ce3adf43SDag-Erling Smørgravelse
255ce3adf43SDag-Erling Smørgrav	startupcmd="$sbindir/sshd"
256ce3adf43SDag-Erling Smørgrav	oldstartcmd="start $sbindir/sshd \\\"$src_running\\\""
257ce3adf43SDag-Erling Smørgravfi
258ce3adf43SDag-Erling Smørgrav
259ce3adf43SDag-Erling Smørgrav# If migrating to or from SRC, change previous startup command
260ce3adf43SDag-Erling Smørgrav# otherwise add to rc.tcpip
261ce3adf43SDag-Erling Smørgravif egrep "^\$oldstartcmd" /etc/rc.tcpip >/dev/null
262ce3adf43SDag-Erling Smørgravthen
263ce3adf43SDag-Erling Smørgrav	if sed "s|^\$oldstartcmd|\$startupcmd|g" /etc/rc.tcpip >/etc/rc.tcpip.new
264ce3adf43SDag-Erling Smørgrav	then
265ce3adf43SDag-Erling Smørgrav		chmod 0755 /etc/rc.tcpip.new
266ce3adf43SDag-Erling Smørgrav		mv /etc/rc.tcpip /etc/rc.tcpip.old && \
267ce3adf43SDag-Erling Smørgrav		mv /etc/rc.tcpip.new /etc/rc.tcpip
268ce3adf43SDag-Erling Smørgrav	else
269ce3adf43SDag-Erling Smørgrav		echo "Updating /etc/rc.tcpip failed, please check."
270ce3adf43SDag-Erling Smørgrav	fi
271ce3adf43SDag-Erling Smørgravelse
272ce3adf43SDag-Erling Smørgrav	# Add to system startup if required
273ce3adf43SDag-Erling Smørgrav	if grep "^\$startupcmd" /etc/rc.tcpip >/dev/null
274ce3adf43SDag-Erling Smørgrav	then
275ce3adf43SDag-Erling Smørgrav		echo "sshd found in rc.tcpip, not adding."
276ce3adf43SDag-Erling Smørgrav	else
277ce3adf43SDag-Erling Smørgrav		echo "Adding sshd to rc.tcpip"
278ce3adf43SDag-Erling Smørgrav		echo >>/etc/rc.tcpip
279ce3adf43SDag-Erling Smørgrav		echo "# Start sshd" >>/etc/rc.tcpip
280ce3adf43SDag-Erling Smørgrav		echo "\$startupcmd" >>/etc/rc.tcpip
281ce3adf43SDag-Erling Smørgrav	fi
282ce3adf43SDag-Erling Smørgravfi
283ce3adf43SDag-Erling SmørgravEOF
284ce3adf43SDag-Erling Smørgrav
285ce3adf43SDag-Erling Smørgrav#
286ce3adf43SDag-Erling Smørgrav# Create liblpp.a and move control files into it
287ce3adf43SDag-Erling Smørgrav#
288ce3adf43SDag-Erling Smørgravecho Creating liblpp.a
289ce3adf43SDag-Erling Smørgrav(
290ce3adf43SDag-Erling Smørgrav	cd ..
291ce3adf43SDag-Erling Smørgrav	for i in openssh.al openssh.copyright openssh.inventory openssh.post_i openssh.size LICENCE README*
292ce3adf43SDag-Erling Smørgrav	do
293ce3adf43SDag-Erling Smørgrav		ar -r liblpp.a $i
294ce3adf43SDag-Erling Smørgrav		rm $i
295ce3adf43SDag-Erling Smørgrav	done
296ce3adf43SDag-Erling Smørgrav)
297ce3adf43SDag-Erling Smørgrav
298ce3adf43SDag-Erling Smørgrav#
299ce3adf43SDag-Erling Smørgrav# Create lpp_name
300ce3adf43SDag-Erling Smørgrav#
301ce3adf43SDag-Erling Smørgrav# This will end up looking something like:
302ce3adf43SDag-Erling Smørgrav# 4 R I OpenSSH {
303ce3adf43SDag-Erling Smørgrav# OpenSSH 3.0.2.1 1 N U en_US OpenSSH 3.0.2p1 Portable for AIX
304ce3adf43SDag-Erling Smørgrav# [
305ce3adf43SDag-Erling Smørgrav# %
306ce3adf43SDag-Erling Smørgrav# /usr/local/bin 8073
307ce3adf43SDag-Erling Smørgrav# /usr/local/etc 189
308ce3adf43SDag-Erling Smørgrav# /usr/local/libexec 185
309ce3adf43SDag-Erling Smørgrav# /usr/local/man/man1 145
310ce3adf43SDag-Erling Smørgrav# /usr/local/man/man8 83
311ce3adf43SDag-Erling Smørgrav# /usr/local/sbin 2105
312ce3adf43SDag-Erling Smørgrav# /usr/local/share 3
313ce3adf43SDag-Erling Smørgrav# %
314ce3adf43SDag-Erling Smørgrav# ]
315ce3adf43SDag-Erling Smørgrav# }
316ce3adf43SDag-Erling Smørgrav
317ce3adf43SDag-Erling Smørgravecho Creating lpp_name
318ce3adf43SDag-Erling Smørgravcat <<EOF >../lpp_name
319ce3adf43SDag-Erling Smørgrav4 R I $PKGNAME {
320ce3adf43SDag-Erling Smørgrav$PKGNAME $BFFVERSION 1 N U en_US OpenSSH $VERSION Portable for AIX
321ce3adf43SDag-Erling Smørgrav[
322ce3adf43SDag-Erling Smørgrav%
323ce3adf43SDag-Erling SmørgravEOF
324ce3adf43SDag-Erling Smørgrav
325ce3adf43SDag-Erling Smørgravfor i in $bindir $sysconfdir $libexecdir $mandir/${mansubdir}1 $mandir/${mansubdir}8 $sbindir $datadir /usr/lpp/openssh
326ce3adf43SDag-Erling Smørgravdo
327ce3adf43SDag-Erling Smørgrav	# get size in 512 byte blocks
328ce3adf43SDag-Erling Smørgrav	if [ -d $FAKE_ROOT/$i ]
329ce3adf43SDag-Erling Smørgrav	then
330ce3adf43SDag-Erling Smørgrav		size=`du $FAKE_ROOT/$i | awk '{print $1}'`
331ce3adf43SDag-Erling Smørgrav		echo "$i $size" >>../lpp_name
332ce3adf43SDag-Erling Smørgrav	fi
333ce3adf43SDag-Erling Smørgravdone
334ce3adf43SDag-Erling Smørgrav
335ce3adf43SDag-Erling Smørgravecho '%' >>../lpp_name
336ce3adf43SDag-Erling Smørgravecho ']' >>../lpp_name
337ce3adf43SDag-Erling Smørgravecho '}' >>../lpp_name
338ce3adf43SDag-Erling Smørgrav
339ce3adf43SDag-Erling Smørgrav#
340ce3adf43SDag-Erling Smørgrav# Move pieces into place
341ce3adf43SDag-Erling Smørgrav#
342ce3adf43SDag-Erling Smørgravmkdir -p usr/lpp/openssh
343ce3adf43SDag-Erling Smørgravmv ../liblpp.a usr/lpp/openssh
344ce3adf43SDag-Erling Smørgravmv ../lpp_name .
345ce3adf43SDag-Erling Smørgrav
346ce3adf43SDag-Erling Smørgrav#
347ce3adf43SDag-Erling Smørgrav# Now invoke backup to create .bff file
348ce3adf43SDag-Erling Smørgrav#	note: lpp_name needs to be the first file so we generate the
349ce3adf43SDag-Erling Smørgrav#	file list on the fly and feed it to backup using -i
350ce3adf43SDag-Erling Smørgrav#
351ce3adf43SDag-Erling Smørgravecho Creating $PKGNAME-$VERSION.bff with backup...
352ce3adf43SDag-Erling Smørgravrm -f $PKGNAME-$VERSION.bff
353ce3adf43SDag-Erling Smørgrav(
354ce3adf43SDag-Erling Smørgrav	echo "./lpp_name"
355ce3adf43SDag-Erling Smørgrav	find . ! -name lpp_name -a ! -name . -print
356ce3adf43SDag-Erling Smørgrav) | backup  -i -q -f ../$PKGNAME-$VERSION.bff $filelist
357ce3adf43SDag-Erling Smørgrav
358ce3adf43SDag-Erling Smørgrav#
359ce3adf43SDag-Erling Smørgrav# Move package into final location and clean up
360ce3adf43SDag-Erling Smørgrav#
361ce3adf43SDag-Erling Smørgravmv ../$PKGNAME-$VERSION.bff $startdir
362ce3adf43SDag-Erling Smørgravcd $startdir
363ce3adf43SDag-Erling Smørgravrm -rf $objdir/$PKGDIR
364ce3adf43SDag-Erling Smørgrav
365ce3adf43SDag-Erling Smørgravecho $0: done.
366ce3adf43SDag-Erling Smørgrav
367