140 lines
2.8 KiB
Bash
140 lines
2.8 KiB
Bash
#This shell script installs new binaries, changing sizes and modes
|
|
#Call: fixbin src_dir dst_dir
|
|
#Example: fixbin /usr/src/commands/bin /bin
|
|
|
|
#Check for args
|
|
case $# in
|
|
2) ;;
|
|
*) echo Usage: $0 src_dir dst_dir
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
src=$1
|
|
dst=$2
|
|
if test -d $src; then : ; else echo $src is not a directory; exit 1; fi
|
|
if test -d $dst; then : ; else echo $dst is not a directory; exit 1; fi
|
|
|
|
#Is dst dir writable?
|
|
date >$dst/$$
|
|
if test -r $dst/$$
|
|
then :
|
|
else echo $0: $dst is not writable
|
|
exit 1
|
|
fi
|
|
|
|
#Is this script running as superuser?
|
|
if chown bin $dst/$$ >/dev/null 2>&1
|
|
then rm $dst/$$
|
|
else echo You must be superuser to run $0
|
|
rm $dst/$$
|
|
exit 1
|
|
fi
|
|
|
|
#Copy all the files into position if needed
|
|
if test $src = $dst
|
|
then : # e.g., $0 /bin /bin
|
|
else cd $src
|
|
cp * $dst
|
|
fi
|
|
|
|
#Set owner
|
|
cd $dst
|
|
chown bin *
|
|
|
|
#The following files are setuid root
|
|
chown root $dst/at
|
|
chown root $dst/df
|
|
chown root $dst/login
|
|
chown root $dst/mv
|
|
chown root $dst/passwd
|
|
chown root $dst/recover
|
|
chown root $dst/su
|
|
|
|
chmod 4755 $dst/at
|
|
chmod 4755 $dst/df
|
|
chmod 4755 $dst/login
|
|
chmod 4755 $dst/mv
|
|
chmod 4755 $dst/passwd
|
|
chmod 4755 $dst/recover
|
|
chmod 4755 $dst/su
|
|
|
|
#Increase default stack size from 8K to more for selected programs
|
|
chmem =50000 $dst/ar
|
|
chmem =10000 $dst/cgrep
|
|
chmem =16000 $dst/cp
|
|
chmem =55000 $dst/cdiff
|
|
chmem =64000 $dst/compress
|
|
chmem =64000 $dst/cpdir
|
|
chmem =64000 $dst/cron
|
|
chmem =30000 $dst/de
|
|
chmem =40000 $dst/dd
|
|
chmem =32000 $dst/du
|
|
chmem =55000 $dst/diff
|
|
chmem =60000 $dst/ed
|
|
chmem =50000 $dst/file
|
|
chmem =50000 $dst/find
|
|
chmem =60000 $dst/fix
|
|
chmem =60000 $dst/fsck
|
|
chmem =60000 $dst/indent
|
|
chmem =10000 $dst/last
|
|
chmem =20000 $dst/make
|
|
chmem =10000 $dst/man
|
|
chmem =64000 $dst/mined
|
|
chmem =40000 $dst/mkfs
|
|
chmem =40000 $dst/mkproto
|
|
chmem =15000 $dst/mref
|
|
chmem =16000 $dst/nm
|
|
chmem =65000 $dst/nroff
|
|
chmem =20000 $dst/patch
|
|
chmem =32000 $dst/pr
|
|
chmem =60000 $dst/ps
|
|
chmem =50000 $dst/readfs
|
|
chmem =16000 $dst/roff
|
|
chmem =60000 $dst/sed
|
|
chmem =20000 $dst/sh
|
|
chmem =60000 $dst/sort
|
|
chmem =16000 $dst/strip
|
|
chmem =16000 $dst/strings
|
|
chmem =60000 $dst/tar
|
|
chmem =60000 $dst/treecmp
|
|
|
|
# remove old linked files and make new ones
|
|
rm -rf chip uncompress zcat ex vi
|
|
ln machine chip
|
|
ln compress uncompress
|
|
ln compress zcat
|
|
ln elvis ex
|
|
ln elvis vi
|
|
|
|
if chip INTEL
|
|
then
|
|
chown root $dst/readclock
|
|
chmod 4755 $dst/readclock
|
|
|
|
chmem =16000 $dst/ast
|
|
chmem =60000 $dst/asld
|
|
chmem =32000 $dst/dosread
|
|
chmem =64000 $dst/libpack
|
|
chmem =64000 $dst/libupack
|
|
chmem =60000 $dst/lorder
|
|
chmem =60000 $dst/tsort
|
|
|
|
rm -rf doswrite dosdir
|
|
ln dosread doswrite
|
|
ln dosread dosdir
|
|
fi
|
|
|
|
if chip M68000
|
|
then
|
|
chmem =20000 $dst/anm
|
|
chmem =20000 $dst/cc
|
|
# chmem =20000 $dst/cv usr/lib !!!
|
|
chmem =25000 $dst/tos
|
|
|
|
rm -rf tosdir tosread toswrite
|
|
ln tos tosdir
|
|
ln tos tosread
|
|
ln tos toswrite
|
|
fi
|