forked from PowerShell/openssh-portable
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- (bal) Added contrib/aix/ to support BFF package generation provided
by Darren Tucker <[email protected]>
- Loading branch information
Showing
5 changed files
with
289 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,6 +26,7 @@ Chun-Chung Chen <[email protected]> - RPM fixes | |
Corinna Vinschen <[email protected]> - Cygwin support | ||
Dan Brosemer <[email protected]> - Autoconf support, build fixes | ||
Darren Hall <[email protected]> - AIX patches | ||
Darren Tucker <[email protected]> - AIX BFF package scripts | ||
David Agraz <[email protected]> - Build fixes | ||
David Del Piero <[email protected]> - bug fixes | ||
David Hesprich <[email protected]> - Configure fixes | ||
|
@@ -89,5 +90,5 @@ Apologies to anyone I have missed. | |
|
||
Damien Miller <[email protected]> | ||
|
||
$Id: CREDITS,v 1.64 2001/12/24 03:17:21 djm Exp $ | ||
$Id: CREDITS,v 1.65 2002/03/05 03:38:35 mouring Exp $ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -61,7 +61,8 @@ | |
- [email protected] 2002/03/04 19:37:58 | ||
[channels.c] | ||
off by one; thanks to [email protected] | ||
|
||
- (bal) Added contrib/aix/ to support BFF package generation provided | ||
by Darren Tucker <[email protected]> | ||
20020226 | ||
- (tim) Bug 12 [configure.ac] add sys/bitypes.h to int64_t tests | ||
based on patch by [email protected] (Tim Mooney) | ||
|
@@ -7792,4 +7793,4 @@ | |
- Wrote replacements for strlcpy and mkdtemp | ||
- Released 1.0pre1 | ||
|
||
$Id: ChangeLog,v 1.1906 2002/03/05 01:57:44 mouring Exp $ | ||
$Id: ChangeLog,v 1.1907 2002/03/05 03:38:35 mouring Exp $ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
Overview: | ||
|
||
This directory contains files to build an AIX native (installp or SMIT | ||
installable) openssh package. | ||
|
||
|
||
Directions: | ||
|
||
./configure [options] | ||
cd contrib/aix; ./buildbff.sh | ||
|
||
|
||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
#!/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 | ||
|
||
if [ ! -f ../../Makefile ] | ||
then | ||
echo "Top-level Makefile not found (did you run ./configure?)" | ||
exit 1 | ||
fi | ||
|
||
## Start by faking root install | ||
echo "Faking root install..." | ||
START=`pwd` | ||
FAKE_ROOT=$START/$PKGDIR | ||
cd ../.. | ||
make install-nokeys DESTDIR=$FAKE_ROOT | ||
|
||
# | ||
# Fill in some details, like prefix and sysconfdir | ||
# the eval also expands variables like sysconfdir=${prefix}/etc | ||
# provided they are eval'ed in the correct order | ||
# | ||
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 | ||
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 .. | ||
|
||
rm -rf $PKGDIR | ||
echo $0: done. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
#!/bin/sh | ||
# | ||
# inventory.sh | ||
# | ||
# Originall written by Ben Lindstrom, modified by Darren Tucker to use perl | ||
# | ||
# This will produced and AIX package inventory file, which looks like: | ||
# | ||
# /usr/local/bin: | ||
# class=apply,inventory,openssh | ||
# owner=root | ||
# group=system | ||
# mode=755 | ||
# type=DIRECTORY | ||
# /usr/local/bin/slogin: | ||
# class=apply,inventory,openssh | ||
# owner=root | ||
# group=system | ||
# mode=777 | ||
# type=SYMLINK | ||
# target=ssh | ||
# /usr/local/share/Ssh.bin: | ||
# class=apply,inventory,openssh | ||
# owner=root | ||
# group=system | ||
# mode=644 | ||
# type=FILE | ||
# size=VOLATILE | ||
# checksum=VOLATILE | ||
|
||
find . ! -name . -print | perl -ne '{ | ||
chomp; | ||
if ( -l $_ ) { | ||
($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=lstat; | ||
} else { | ||
($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=stat; | ||
} | ||
# Start to display inventory information | ||
$name = $_; | ||
$name =~ s|^.||; # Strip leading dot from path | ||
print "$name:\n"; | ||
print "\tclass=apply,inventory,openssh\n"; | ||
print "\towner=root\n"; | ||
print "\tgroup=system\n"; | ||
printf "\tmode=%lo\n", $mod & 07777; # Mask perm bits | ||
if ( -l $_ ) { | ||
# Entry is SymLink | ||
print "\ttype=SYMLINK\n"; | ||
printf "\ttarget=%s\n", readlink($_); | ||
} elsif ( -f $_ ) { | ||
# Entry is File | ||
print "\ttype=FILE\n"; | ||
print "\tsize=VOLATILE\n"; | ||
print "\tchecksum=VOLATILE\n"; | ||
} elsif ( -d $_ ) { | ||
# Entry is Directory | ||
print "\ttype=DIRECTORY\n"; | ||
} | ||
}' |