⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buildbff.sh

📁 OpenSSL Source code for SFTP, SSH, and many others
💻 SH
字号:
#!/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 022PKGNAME=opensshPKGDIR=packagePATH=`pwd`:$PATH		# set path for external toolsexport PATH# Clean build directory rm -rf $PKGDIRmkdir $PKGDIRif [ ! -f ../../Makefile ]then	echo "Top-level Makefile not found (did you run ./configure?)"	exit 1fi## Start by faking root install echo "Faking root install..."START=`pwd`FAKE_ROOT=$START/$PKGDIRcd ../.. make install-nokeys DESTDIR=$FAKE_ROOTif [ $? -gt 0 ]then	echo "Fake root install failed, stopping."	exit 1fi## Extract common info requires for the 'info' part of the package.#	AIX requires 4-part version numbers#VERSION=`./ssh -V 2>&1 | sed -e 's/,.*//' | cut -f 2 -d _`MAJOR=`echo $VERSION | cut -f 1 -d p | cut -f 1 -d .`MINOR=`echo $VERSION | cut -f 1 -d p | cut -f 2 -d .`PATCH=`echo $VERSION | cut -f 1 -d p | cut -f 3 -d .`PORTABLE=`echo $VERSION | cut -f 2 -d p`if [ "$PATCH" = "" ]then	PATCH=0fiBFFVERSION=`printf "%d.%d.%d.%d" $MAJOR $MINOR $PATCH $PORTABLE`echo "Building BFF for $PKGNAME $VERSION (package version $BFFVERSION)"## 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 piddirdo	eval $confvar=`grep "^$confvar=" Makefile | cut -d = -f 2`done# Rename config files; postinstall script will copy them if necessaryfor cfgfile in ssh_config sshd_config ssh_prng_cmdsdo	mv $FAKE_ROOT/$sysconfdir/$cfgfile $FAKE_ROOT/$sysconfdir/$cfgfile.defaultdone## 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_ROOTecho Generating LPP control filesfind . ! -name . -print >../openssh.alinventory.sh >../openssh.inventorycp ../../../LICENCE ../openssh.copyright## Create postinstall script#cat <<EOF >>../openssh.post_i#!/bin/sh# Create configs from defaults if necessaryfor cfgfile in ssh_config sshd_config ssh_prng_cmdsdo        if [ ! -f $sysconfdir/\$cfgfile ]        then                echo "Creating \$cfgfile from default"                cp $sysconfdir/\$cfgfile.default $sysconfdir/\$cfgfile        else                echo "\$cfgfile already exists."        fidone# Generate keys unless they already existif [ -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 ""fiif [ -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 ""fiif [ -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 requiredif grep $sbindir/sshd /etc/rc.tcpip >/dev/nullthen        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.tcpipfiEOF## 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_namecat <<EOF >../lpp_name4 R I $PKGNAME {$PKGNAME $BFFVERSION 1 N U en_US OpenSSH $VERSION Portable for AIX[%EOFfor i in $bindir $sysconfdir $libexecdir $mandir/man1 $mandir/man8 $sbindir $datadirdo	# get size in 512 byte blocks	size=`du $FAKE_ROOT/$i | awk '{print $1}'`	echo "$i $size" >>../lpp_namedoneecho '%' >>../lpp_nameecho ']' >>../lpp_nameecho '}' >>../lpp_name## Move pieces into place#mkdir -p usr/lpp/opensshmv ../liblpp.a usr/lpp/opensshmv ../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...rm -f $PKGNAME-$VERSION.bff(	echo "./lpp_name"	find . ! -name lpp_name -a ! -name . -print ) | backup  -i -q -f ../$PKGNAME-$VERSION.bff $filelistcd ..rm -rf $PKGDIRecho $0: done.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -