source: trunk/samhain-install.sh.in@ 520

Last change on this file since 520 was 481, checked in by katerina, 9 years ago

Enhancements and fixes for tickets #374, #375, #376, #377, #378, and #379.

File size: 40.3 KB
RevLine 
[1]1#! /bin/sh
2
3purge=
4verbose=
5express=
6force=
7act=
8
9prefix=@prefix@
10exec_prefix=@exec_prefix@
11sbindir=@sbindir@
12samhain=@install_name@
13mandir=@mandir@
14
15sysconfdir=@sysconfdir@
16configfile=@myconffile@
17
18pid_file=@mylockfile@
19pid_dir=@mylockdir@
20
21data_root=@mydataroot@
22mydatafile=@mydatafile@
23
24mylogfile=@mylogfile@
25mylogdir=@mylogdir@
26
27myhtmlfile=@myhtmlfile@
28
[170]29datarootdir=@datarootdir@
30
[1]31INSTALL_SHELL="$0 --install-sh -m 700"
32INSTALL_DATA="$0 --install-sh -m 600"
33
34mkinstalldirs="$0 --mkinstalldirs"
35
36
37DESTDIR=
38user=
39
40#
41# Only call rmdir with an absolute path
42#
43SH_RMDIR=echo
44SPATH="/bin:/usr/bin:/sbin:/usr/sbin"
45OLD_IFS=${IFS}
46IFS=':'; export IFS
47for ff in ${SPATH}; do
48 if test -x $ff/rmdir; then
49 SH_RMDIR=`eval echo ${ff}/rmdir`
50 fi
51done
52IFS=${OLD_IFS}; export IFS
53
54case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
55 *c*,-n*) ECHO_N= ECHO_C='
56' ECHO_T=' ' ;;
57 *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
58 *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
59esac
60
61
62if [ x"$1" = x ]
63then
64 echo 'samhain-install.sh [--destdir=DESTDIR][--verbose][--express][--force] action'
65 echo 'action = install-boot|install-data|install-user'
66 echo ' uninstall|purge|uninstall-boot'
[481]67 echo ' uninstall-data|uninstall-man|uninstall-program'
[1]68 echo 'samhain-install.sh --print-config <item>'
69 echo 'item = name | basekey | prefix | exec_prefix | sbin_dir | man_dir'
70 echo ' config_dir | config_file | pid_dir | log_dir | log_file'
71 echo ' data_dir | data_file'
72 exit 1
73fi
74
75while [ x"$1" != x ]; do
76 case $1 in
77 -v|--verbose) verbose=yes
78 shift
79 continue;;
80
81 -e|--express) express=yes
82 shift
83 continue;;
84
85 -f|--force) force=yes
86 shift
87 continue;;
88
89 -d) shift
90 DESTDIR="$1"
91 if test "x${DESTDIR}" = "x/"; then
92 DESTDIR=
93 fi
94 shift
95 continue;;
96
97 --destdir=*) DESTDIR=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
98 if test "x${DESTDIR}" = "x/"; then
99 DESTDIR=
100 fi
101 shift
102 continue;;
103
104 --install-sh)
105 shift
106# install - install a program, script, or datafile
107# This comes from X11R5 (mit/util/scripts/install.sh).
108#
109# Copyright 1991 by the Massachusetts Institute of Technology
110#
111# Permission to use, copy, modify, distribute, and sell this software and its
112# documentation for any purpose is hereby granted without fee, provided that
113# the above copyright notice appear in all copies and that both that
114# copyright notice and this permission notice appear in supporting
115# documentation, and that the name of M.I.T. not be used in advertising or
116# publicity pertaining to distribution of the software without specific,
117# written prior permission. M.I.T. makes no representations about the
118# suitability of this software for any purpose. It is provided "as is"
119# without express or implied warranty.
120#
121# Calling this script install-sh is preferred over install.sh, to prevent
122# `make' implicit rules from creating a file called install from it
123# when there is no Makefile.
124#
125# This script is compatible with the BSD install script, but was written
126# from scratch. It can only install one file at a time, a restriction
127# shared with many OS's install programs.
128
129
130# set DOITPROG to echo to test this script
131
132# Don't use :- since 4.3BSD and earlier shells don't like it.
133doit="${DOITPROG-}"
134
135
136# put in absolute paths if you don't have them in your path; or use env. vars.
137
138mvprog="${MVPROG-mv}"
139cpprog="${CPPROG-cp}"
140chmodprog="${CHMODPROG-chmod}"
141chownprog="${CHOWNPROG-chown}"
142chgrpprog="${CHGRPPROG-chgrp}"
143stripprog="${STRIPPROG-strip}"
144rmprog="${RMPROG-rm}"
145mkdirprog="${MKDIRPROG-mkdir}"
146
147transformbasename=""
148transform_arg=""
149instcmd="$mvprog"
150chmodcmd="$chmodprog 0755"
151chowncmd=""
152chgrpcmd=""
153stripcmd=""
154rmcmd="$rmprog -f"
155mvcmd="$mvprog"
156src=""
157dst=""
158dir_arg=""
159
160while [ x"$1" != x ]; do
161 case $1 in
162 -c) instcmd="$cpprog"
163 shift
164 continue;;
165
166 -d) dir_arg=true
167 shift
168 continue;;
169
170 -m) chmodcmd="$chmodprog $2"
171 shift
172 shift
173 continue;;
174
175 -o) chowncmd="$chownprog $2"
176 shift
177 shift
178 continue;;
179
180 -g) chgrpcmd="$chgrpprog $2"
181 shift
182 shift
183 continue;;
184
185 -s) stripcmd="$stripprog"
186 shift
187 continue;;
188
189 -t=*) transformarg=`echo $1 | sed 's/-t=//'`
190 shift
191 continue;;
192
193 -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
194 shift
195 continue;;
196
197 *) if [ x"$src" = x ]
198 then
199 src=$1
200 else
201 # this colon is to work around a 386BSD /bin/sh bug
202 :
203 dst=$1
204 fi
205 shift
206 continue;;
207 esac
208done
209
210if [ x"$src" = x ]
211then
212 echo "install: no input file specified"
213 exit 1
214else
215 true
216fi
217
218if [ x"$dir_arg" != x ]; then
219 dst=$src
220 src=""
221
222 if [ -d $dst ]; then
223 instcmd=:
224 else
225 instcmd=mkdir
226 fi
227else
228
229# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
230# might cause directories to be created, which would be especially bad
231# if $src (and thus $dsttmp) contains '*'.
232
233 if [ -f $src -o -d $src ]
234 then
235 true
236 else
237 echo "install: $src does not exist"
238 exit 1
239 fi
240
241 if [ x"$dst" = x ]
242 then
243 echo "install: no destination specified"
244 exit 1
245 else
246 true
247 fi
248
249# If destination is a directory, append the input filename; if your system
250# does not like double slashes in filenames, you may need to add some logic
251
252 if [ -d $dst ]
253 then
254 dst="$dst"/`basename $src`
255 else
256 true
257 fi
258fi
259
260## this sed command emulates the dirname command
261dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
262
263# Make sure that the destination directory exists.
264# this part is taken from Noah Friedman's mkinstalldirs script
265
266# Skip lots of stat calls in the usual case.
267if [ ! -d "$dstdir" ]; then
268defaultIFS='
269'
270IFS="${IFS-${defaultIFS}}"
271
272oIFS="${IFS}"
273# Some sh's can't handle IFS=/ for some reason.
274IFS='%'
275set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
276IFS="${oIFS}"
277
278pathcomp=''
279
280while [ $# -ne 0 ] ; do
281 pathcomp="${pathcomp}${1}"
282 shift
283
284 if [ ! -d "${pathcomp}" ] ;
285 then
286 $mkdirprog "${pathcomp}"
287 else
288 true
289 fi
290
291 pathcomp="${pathcomp}/"
292done
293fi
294
295if [ x"$dir_arg" != x ]
296then
297 $doit $instcmd $dst &&
298
299 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
300 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
301 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
302 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
303else
304
305# If we're going to rename the final executable, determine the name now.
306
307 if [ x"$transformarg" = x ]
308 then
309 dstfile=`basename $dst`
310 else
311 dstfile=`basename $dst $transformbasename |
312 sed $transformarg`$transformbasename
313 fi
314
315# don't allow the sed command to completely eliminate the filename
316
317 if [ x"$dstfile" = x ]
318 then
319 dstfile=`basename $dst`
320 else
321 true
322 fi
323
324# Make a temp file name in the proper directory.
325
326 dsttmp=$dstdir/#inst.$$#
327
328# Move or copy the file name to the temp name
329
330 $doit $instcmd $src $dsttmp &&
331
332 trap "rm -f ${dsttmp}" 0 &&
333
334# and set any options; do chmod last to preserve setuid bits
335
336# If any of these fail, we abort the whole thing. If we want to
337# ignore errors from any of these, just make sure not to ignore
338# errors from the above "$doit $instcmd $src $dsttmp" command.
339
340 if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
341 if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
342 if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
343 if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
344
345# Now rename the file to the real destination.
346
347 $doit $rmcmd -f $dstdir/$dstfile &&
348 $doit $mvcmd $dsttmp $dstdir/$dstfile
349
350fi &&
351
352
353exit 0
354 # ----- END OF INSTALL-SH -----
355 ;;
356
357 --mkinstalldirs)
358 shift
359 # mkinstalldirs --- make directory hierarchy
360 # Author: Noah Friedman <friedman@prep.ai.mit.edu>
361 # Created: 1993-05-16
362 # Public domain
363 # $Id: mkinstalldirs,v 1.10 1996/05/03 07:37:52 friedman Exp $
364 errstatus=0
365 for file
366 do
367 set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
368 shift
369 pathcomp=
370 for d
371 do
372 pathcomp="$pathcomp$d"
373 case "$pathcomp" in
374 -* ) pathcomp=./$pathcomp ;;
375 esac
376
377 if test ! -d "$pathcomp"; then
378 echo "mkdir $pathcomp" 1>&2
379
380 mkdir "$pathcomp" || lasterr=$?
381
382 if test ! -d "$pathcomp"; then
383 errstatus=$lasterr
384 fi
385 fi
386
387 pathcomp="$pathcomp/"
388 done
389 done
390 exit $errstatus
391 # mkinstalldirs ends here
392 ;;
393
394 install-deploy)
395 if test -f ./samhainrc.USEME
396 then
397 tmpconfigfile=`echo ${configfile} | sed 's%^REQ_FROM_SERVER%%'`
398 if test x"${tmpconfigfile}" = x
399 then
400 echo " No local path for configfile defined."
401 exit 0
402 else
403 cp samhainrc.USEME "${tmpconfigfile}" && chmod 0600 "${tmpconfigfile}"
404 fi
405 fi
406 if test -f postinstall.USEME
407 then
408 /bin/sh ./postinstall.USEME
409 fi
410 exit 0
411 ;;
412
413 print-config|--print-config)
414 shift
415 pwhat=$1
416 if test x"$1" = x
417 then
418 echo "$0: Missing argument to print-config"
419 exit 1
420 fi
421 case $pwhat in
422 basekey)
423 echo "@mykeybase@"
424 ;;
425
426 prefix)
427 echo $prefix
428 ;;
429
430 exec_prefix)
431 echo $exec_prefix
432 ;;
433
434 sbin_dir)
435 echo $sbindir
436 ;;
437
438 name)
439 echo $samhain
440 ;;
441
442 man_dir)
443 echo $mandir
444 ;;
445
446 config_dir)
447 echo $sysconfdir
448 ;;
449
450 config_file)
451 echo $configfile | sed 's%^REQ_FROM_SERVER%%'
452 ;;
453
454 pid_file)
455 echo ${pid_file}
456 ;;
457
458 pid_dir)
459 echo ${pid_dir}
460 ;;
461
462 data_dir)
463 echo @mydataroot@
464 ;;
465
466 data_file)
467 echo @mydatafile@ | sed 's%^REQ_FROM_SERVER%%'
468 ;;
469
470 log_file)
471 echo @mylogfile@
472 ;;
473
474 log_dir)
475 echo @mylogdir@
476 ;;
477
478 *)
479 echo "$0: Unknown item \"$pwhat\""
480 exit 1
481 ;;
482 esac
483 exit 0
484 ;;
485
486 install-user)
487 act=user
488 shift
489 user=$1
490 break;;
491
492 install-boot)
493 act=boot
494 break;;
495
496 uninstall-boot)
497 act=uboot
498 break;;
499
500 install-data)
501 act=data
502 break;;
503
504 uninstall-data)
505 act=udata
506 break;;
507
508 uninstall-man)
509 act=uman
510 break;;
511
512 uninstall-program)
513 act=uprogram
514 break;;
515
516 uninstall | remove | purge)
517 opts=
518 test x"$verbose" = "xyes" && opts="$opts --verbose"
519 test x"$express" = "xyes" && opts="$opts --express"
520 test x"$force" = "xyes" && opts="$opts --force"
521 test x"$DESTDIR" = "x" || opts="$opts --destdir=$DESTDIR"
522 test x"$1" = "xpurge" && purge=yes
523 echo "$0 $opts uninstall-program"
524 eval $0 $opts uninstall-program
525 echo "$0 $opts uninstall-man"
526 eval $0 $opts uninstall-man
527 if test x"$force" = "x"; then
528 test "x$purge" = xyes && opts="$opts --force"
529 fi
530 echo "$0 $opts uninstall-data"
531 eval $0 $opts uninstall-data
532 echo
533 echo " To uninstall the runlevel scripts, use $0 $opts uninstall-boot"
534 echo
535 exit 0
536 ;;
537 *)
538 echo "Unknown option $1"
539 exit 1
540 ;;
541
542 esac
543done
544
545if test x"$act" = xuser
546then
547
548# -- the routines for installing a new user are adapted from
549# the OpenPKG bootstrap installation script, which is distributed
550# under the following license:
551
552## Shell-based package for OpenPKG BINARY bootstrap installation
553## Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
554## Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
555## Copyright (c) 2000-2002 Ralf S. Engelschall <rse@engelschall.com>
556##
557## Permission to use, copy, modify, and distribute this software for
558## any purpose with or without fee is hereby granted, provided that
559## the above copyright notice and this permission notice appear in all
560## copies.
561##
562## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
563## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
564## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
565## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
566## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
567## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
568## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
569## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
570## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
571## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
572## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
573## SUCH DAMAGE.
574
575 if test x"$user" = x
576 then
577 echo "**ERROR**: No username specified"
578 exit 1
579 fi
580
581 s=`uname -s 2>/dev/null` || s='Unknown'
582 r=`uname -r 2>/dev/null` || r='0.0'
583 platform="${s}/${r}"
584
585 if test x"$user" = xnobody; then
586 case "$platform" in
587 HP-UX/* )
588 group="nogroup"
589 ;;
590 *)
591 group="nobody"
592 ;;
593 esac
594 else
595 group="$user"
596 fi
597 shell=/bin/false
598 if test -f /etc/shells
599 then
600 grep "^/usr/bin/false" /etc/shells >/dev/null 2>&1 && shell=/usr/bin/false
601 grep "^/bin/nologin" /etc/shells >/dev/null 2>&1 && shell=/bin/nologin
602 grep "^/sbin/nologin" /etc/shells >/dev/null 2>&1 && shell=/sbin/nologin
603 fi
604 home="${data_root}"
605
606 xuid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
607 grep "^${user}:" | awk -F: '{ print $3; }'`
608 if test "x$xuid" = x
609 then
610 # seek for a reasonable uid/gid pair
611 xuid=1000
612 ok=0
613 while test "x$ok" = x0
614 do
615 eval "u_exists=\$u_exists_$xuid"
616 if test "x$u_exists" = x
617 then
618 u_exists=`(cat /etc/passwd; ypcat passwd) 2>/dev/null | grep "^[^:]*:[^:]*:$xuid:"`
619 fi
620 eval "g_exists=\$g_exists_$xuid"
621 if test "x$g_exists" = x
622 then
623 g_exists=`(cat /etc/group; ypcat group) 2>/dev/null | grep "^[^:]*:[^:]*:$xuid:"`
624 fi
625 if [ "x$u_exists" = x -a "x$g_exists" = x ]; then
626 ok=1
627 break
628 fi
629 xuid=`expr $xuid + 1`
630 done
631 eval "u_exists_$xuid=yes"
632 eval "g_exists_$xuid=yes"
633 else
634 # user exists
635 xgid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
636 grep "^${user}:" | awk -F: '{ print $4; }'`
637 fi
638
639 if test "x$xgid" = x
640 then
641 xgid=`(cat /etc/group; ypcat group) 2>/dev/null |\
642 grep "^${group}:" | awk -F: '{ print $3; }'`
643 fi
644
645 if test "x$xgid" = x
646 then
647 xgid="$xuid"
648 g_exists=no
649 else
650 g_exists=yes
651 fi
652
653 uid=$xuid
654 gid=$xgid
655
656 if test -f /etc/shells
657 then
658 exists=`cat /etc/shells 2>/dev/null | grep "^$shell"`
659 if test "x$exists" = x; then
660 echo "${shell}" >>/etc/shells
661 test -z "$verbose" || echo " Added ${shell} to /etc/shells"
662 fi
663 fi
664
665 exists=`(cat /etc/passwd; ypcat passwd) 2>/dev/null | grep "^$user:"`
666 if test x"$exists" = x; then
667 # add entry to passwd database
668 realname="$user"
669 case "$platform" in
[59]670 FreeBSD/* | NetBSD/* | OpenBSD/* )
[1]671 file=/etc/master.passwd
672 entry="${user}:*:${uid}:${gid}::0:0:${realname}:${home}:${shell}"
673 update="(PATH=\$PATH:/usr/sbin; pwd_mkdb -p /etc/master.passwd)"
674 break
675 ;;
[481]676 Linux/* | GNU/kFreeBSD/* | GNU/* )
[1]677 file=/etc/passwd
678 entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
679 update="(PATH=\$PATH:/usr/sbin; pwconv)"
680 break
681 ;;
682 SunOS/5.* )
683 file=/etc/passwd
684 entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
685 update="(PATH=\$PATH:/usr/sbin; pwconv)"
686 break
687 ;;
688 OSF1/V5.* )
689 file=/etc/passwd
690 entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
691 update="(PATH=\$PATH:/usr/sbin; mkpasswd /etc/passwd)"
692 break
693 ;;
694 HP-UX/* )
695 file=/etc/passwd
696 entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
697 update=":"
698 break
699 ;;
700 IRIX*/* )
701 file=/etc/passwd
702 entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
703 update=":"
704 break
705 ;;
706 *)
707 echo "install-user: Unsupported system $platform"
708 echo "Please add user $user / group $group manually"
709 echo " and re-run make install-user"
710 exit 1
711 ;;
712 esac
713 cp $file $file.bak && \
714 (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
715 rm -f $file.bak >/dev/null 2>&1
716 eval $update
717 test -z "$verbose" || echo " Added user: ${user} uid: ${uid} shell: ${shell}"
718 else
719 test -z "$verbose" || echo " User ${user} exists already"
720 fi
721
722 # check whether group already exists
723 # FIXME
724 exists=`(cat /etc/group; ypcat group) 2>/dev/null | grep "^$group:"`
725 if test x"$exists" = x
726 then
727 #
728 # user has a valid GID
729 #
730 if test g_exists = xyes; then
731 exists=yes
732 fi
733 fi
734 if test x"$exists" = x
735 then
736 # add entry to group database
737 file=/etc/group
738 entry="${group}:*:${gid}:${user}"
739 cp $file $file.bak && \
740 (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
741 rm -f $file.bak >/dev/null 2>&1
742 test -z "$verbose" || echo " Added group: ${group} gid: ${gid} user: ${user}"
743 fi
744
745 exit 0
746fi
747
748if test x"$act" = xboot || test x"$act" = xuboot
749then
750 s=`uname -s 2>/dev/null` || s='Unknown'
751 r=`uname -r 2>/dev/null` || r='0.0'
752 platform="${s}/${r}"
753
754 case "$platform" in
[71]755 Darwin/*)
756 DVER="MACOSX"
757 test -z "$verbose" || echo "MacOS X system detected"
758 rc_main="/Library/StartupItems/${samhain}"
759 ${mkinstalldirs} ${rc_main}
760 rc_dirz=
761 rc_inst="(cd /Library/StartupItems/${samhain} && echo '{' >StartupParameters.plist && echo ' Description = \"@install_name@\";' >>StartupParameters.plist && echo ' Provides = (\"@install_name@\");' >>StartupParameters.plist && echo ' Requires = (\"Network\");' >>StartupParameters.plist && echo ' OrderPreference = \"Last\";' >>StartupParameters.plist && echo '}' >>StartupParameters.plist && chmod 644 StartupParameters.plist; )"
762 rc_uinst="rm -rf /Library/StartupItems/@install_name@"
763 ;;
764
[1]765 IRIX*/*)
766 DVER="IRIX"
767 test -z "$verbose" || echo " IRIX system detected"
768 rc_main=${DESTDIR}/etc/init.d
769 rc_dirz=
770 rc_inst="chmod 755 /etc/init.d/@install_name@; chown root /etc/init.d/@install_name@; chkconfig -f @install_name@ on; (cd /etc; ln -f -s init.d/@install_name@ rc2.d/S99@install_name@; ln -f -s init.d/@install_name@ rc0.d/K10@install_name@; )"
771 rc_uinst="rm -f /etc/init.d/@install_name@; rm -f /etc/rc2.d/S99@install_name@; rm -f /etc/rc0.d/K10@install_name@; chkconfig @install_name@ off"
772 ;;
773
774 AIX/*)
775 DVER="AIX"
776 test -z "$verbose" || echo " AIX system detected"
777 ln -f -s @sbindir@/@install_name@ samhain.startAIX
778 rc_main=@sbindir@
779 rc_dirz=
[442]780 rc_inst="/usr/sbin/mkitab '@install_name@:2:wait:@sbindir@/@install_name@ start >/dev/console 2>&1'"
[1]781 rc_uinst="/usr/sbin/rmitab @install_name@"
782 ;;
783
784 HP-UX/*)
785 DVER="HPUX"
786 test -z "$verbose" || echo " HP-UX system detected"
787 rc_main=${DESTDIR}/sbin/init.d
788 rc_dirz=
789 rc_inst="chmod 555 /sbin/init.d/@install_name@; chown bin:bin /sbin/init.d/@install_name@; (cd /sbin && ln -f -s /sbin/init.d/@install_name@ rc2.d/S900@install_name@ && ln -f -s /sbin/init.d/@install_name@ rc1.d/K100@install_name@; )"
790 rc_uinst="rm -f /sbin/init.d/@install_name@; rm -f /sbin/rc2.d/S900@install_name@; rm -f /sbin/rc1.d/K100@install_name@"
791 ;;
792
[59]793 OpenBSD/*)
794 test -z "$verbose" || echo " OpenBSD system detected"
795 grep '^## begin @install_name@' /etc/rc.local >/dev/null 2>&1
796 if [ $? -eq 0 ]; then
797 RCLOCALTMP=`mktemp /etc/rc.local.XXXXXXXXXX` || exit 1
798 sed "/^## begin @install_name@/,/^## end @install_name@/d" /etc/rc.local >$RCLOCALTMP || exit 1
799 cat $RCLOCALTMP >/etc/rc.local || exit 1
800 rm -f $RCLOCALTMP || exit 1
801 if test x"$act" = xuboot; then
802 echo " uninstalling from /etc/rc.local completed"
803 fi
804 fi
805 if test x"$act" = xboot; then
806 echo "## begin @install_name@" >>/etc/rc.local || exit 1
807 echo "if [ -x @sbindir@/@install_name@ ]; then" >>/etc/rc.local || exit 1
808 echo " @sbindir@/@install_name@ start" >>/etc/rc.local || exit 1
809 echo "fi" >>/etc/rc.local || exit 1
810 echo "## end @install_name@" >>/etc/rc.local || exit 1
811 echo " installing to /etc/rc.local completed"
812 fi
813 exit 0
814 ;;
815
816 NetBSD/*)
817 test -z "$verbose" || echo " NetBSD system detected"
818 if test -f /etc/rc.subr; then
819 DVER="FreeBSD"
820 rc_main=${DESTDIR}/etc/rc.d
821 rc_dirz=
822 rc_inst="chmod 755 /etc/rc.d/@install_name@"
823 rc_uinst="rm -f /etc/rc.d/@install_name@"
824 else
825 echo "${0}: unsupported platform ${platform} (too old)"
826 exit 1
827 fi
828 ;;
829
[1]830 FreeBSD/* )
831 test -z "$verbose" || echo " FreeBSD system detected"
[59]832 if test -f /etc/rc.subr; then
833 DVER="FreeBSD"
834 rc_main=${DESTDIR}/etc/rc.d
835 rc_dirz=
836 rc_inst="chmod 755 /etc/rc.d/@install_name@"
837 rc_uinst="rm -f /etc/rc.d/@install_name@"
838 else
839 DVER="Solaris"
840 rc_main=${DESTDIR}/usr/local/etc/rc.d
841 rc_dirz=
842 rc_inst="mv /usr/local/etc/rc.d/@install_name@ /usr/local/etc/rc.d/@install_name@.sh && chmod 755 /usr/local/etc/rc.d/@install_name@.sh"
843 rc_uinst="rm -f /usr/local/etc/rc.d/@install_name@.sh"
844 fi
[1]845 if test x"$act" = xboot
846 then
847 if [ ! -d ${rc_main} ]; then
848 test x"$act" = xboot && mkdir ${rc_main}
849 fi
[59]850 if test "x$DVER" = "xSolaris"; then
[1]851 ( . /etc/defaults/rc.conf
852 . /etc/rc.conf
853 found=0
854 for p in ${local_startup-x}; do
855 if test "x$p" = "x${rc_main}"; then
856 found=1
857 break
858 fi
859 done
860 if test "x$found" = x0; then
861 cp -p /etc/rc.conf /etc/rc.conf.bak
862 (
863 grep -v local_startup /etc/rc.conf.bak
864 echo "local_startup=\"${rc_main} $local_startup\""
865 ) >/etc/rc.conf
866 fi
867 )
[59]868 fi
869 fi
[1]870 ;;
[59]871
[1]872 SunOS/5.* )
873 DVER="Solaris"
[59]874 DVER_REAL="Solaris"
[1]875 test -z "$verbose" || echo " Solaris system detected"
876 rc_dirz=
877 rc_main=${DESTDIR}/etc/init.d
878 rc_inst="chmod 755 ${DESTDIR}/etc/init.d/@install_name@; chown root:sys ${DESTDIR}/etc/init.d/@install_name@; (cd ${DESTDIR}/etc; ln init.d/@install_name@ rc3.d/S99@install_name@; ln init.d/@install_name@ rc0.d/K10@install_name@; ln init.d/@install_name@ rc1.d/K10@install_name@; )"
879 rc_uinst="rm -f ${DESTDIR}/etc/init.d/@install_name@; rm -f ${DESTDIR}/etc/rc0.d/K10@install_name@; rm -f ${DESTDIR}/etc/rc1.d/K10@install_name@; rm -f ${DESTDIR}/etc/rc3.d/S99@install_name@"
880 ;;
[59]881
[481]882 Linux/* | GNU/kFreeBSD* | GNU/* )
[1]883 rlv="2 3 4 5"
884 linkopt="-f -s"
885 # find rc directories
886 if test -f /usr/lib/lsb/install_initd && test -d /etc/init.d
887 then
888 test -z "$verbose" || echo " Linux Standard Base system detected"
889 DVER=LSB
890 if test x"$DESTDIR" = x
891 then
892 rc_main=/etc/init.d
893 rc_dirz=
894 rc_inst="/usr/lib/lsb/install_initd /etc/init.d/@install_name@"
895 rc_uinst="/usr/lib/lsb/remove_initd /etc/init.d/@install_name@"
896 else
897 rc_inst=
898 rc_uinst=
899 rc_main=${DESTDIR}/etc/init.d
900 rc_dirz=
901 # test -d /etc/init.d/rc2.d && rc_dirz=${DESTDIR}/etc/init.d/rc
902 # test -d /etc/rc.d/rc2.d && rc_dirz=${DESTDIR}/etc/rc.d/rc
903 # test -d /etc/rc2.d && rc_dirz=${DESTDIR}/etc/rc
904 fi
905 elif test -f /etc/SuSE-release
906 then
907 test -z "$verbose" || echo " SuSE system detected"
908 DVER="Linux"
909 rc_inst=
910 rc_uinst=
911 if test -d /sbin/init.d && test -d /sbin/init.d/rc2.d
912 then
913 test -z "$verbose" || echo " SuSE 6.x system detected"
914 rc_main=${DESTDIR}/sbin/init.d
915 rc_dirz=${DESTDIR}/sbin/init.d/rc
916 elif test -d /etc/init.d && test -d /etc/init.d/rc2.d
917 then
918 test -z "$verbose" || echo " SuSE 7.x or newer detected"
919 rc_main=${DESTDIR}/etc/init.d
920 rc_dirz=${DESTDIR}/etc/init.d/rc
921 else
922 echo "${0}: unknown system"
923 exit 1
924 fi
925 elif test -d /sbin/init.d && test -d /sbin/init.d/rc2.d
926 then
927 DVER="Linux"
928 rc_inst=
929 rc_uinst=
930 test -z "$verbose" || echo " SuSE 5.x system detected"
931 rc_main=${DESTDIR}/sbin/init.d
932 rc_dirz=${DESTDIR}/sbin/init.d/rc
933 elif test -f /etc/debian_version
934 then
935 DVER="Linux"
936 test -z "$verbose" || echo " Debian based system detected"
937 if test x"$DESTDIR" = x
938 then
939 rc_main=/etc/init.d
940 rc_dirz=
941 rc_uinst="/usr/sbin/update-rc.d -f @install_name@ remove"
942 rc_inst="/usr/sbin/update-rc.d @install_name@ defaults 99 10"
943 else
944 rc_inst=
945 rc_uinst=
946 rc_main=${DESTDIR}/etc/init.d
947 # rc_dirz=${DESTDIR}/etc/rc
948 rc_dirz=
949 fi
950 elif test -f /etc/redhat-release
951 then
952 DVER="Linux"
953 test -z "$verbose" || echo " Redhat based system detected"
954 rc_uinst=
955 rc_inst=
956 rc_main=${DESTDIR}/etc/rc.d/init.d
957 rc_dirz=${DESTDIR}/etc/rc.d/rc
958 elif test -f /etc/mandrake-release
959 then
960 DVER="Linux"
961 test -z "$verbose" || echo " Mandrake based system detected"
962 rc_uinst=
963 rc_inst=
964 rc_main=${DESTDIR}/etc/rc.d/init.d
965 rc_dirz=${DESTDIR}/etc/rc.d/rc
966 elif test -f /etc/yellowdog-release
967 then
968 DVER="Linux"
969 test -z "$verbose" || echo " Yellow Dog based system detected"
970 rc_uinst=
971 rc_inst=
972 rc_main=${DESTDIR}/etc/rc.d/init.d
973 rc_dirz=${DESTDIR}/etc/rc.d/rc
974 elif test -f /etc/slackware-version && test -f /etc/rc.d/rc.sysvinit
975 then
976 DVER="Linux"
977 test -z "$verbose" || echo " Slackware based system detected"
978 rc_uinst=
979 rc_inst=
980 rc_main=${DESTDIR}/etc/rc.d
981 rc_dirz=${DESTDIR}/etc/rc.d/rc
982 elif test -f /etc/gentoo-release
983 then
984 DVER="Gentoo"
985 test -z "$verbose" || echo " Gentoo based system detected"
986 rc_uinst="/sbin/rc-update del @install_name@"
987 rc_inst="/sbin/rc-update add @install_name@ default"
988 rc_main=${DESTDIR}/etc/init.d
989 rc_dirz=
990 else
991 echo "${0}: unknown Linux distribution"
992 rc_uinst=
993 rc_inst=
994 rc_main=
995 rc_dirz=
996 for ff in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do
997 if test -d $ff; then
998 rc_main="$ff"
999 break
1000 fi
1001 done
1002 for fg in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do
1003 if test -d $fg; then
1004 rc_dirz="`echo $fg | sed -e 's,2.*,,'`"
1005 break
1006 fi
1007 done
1008 if [ x"${rc_dirz}" = x ]; then
1009 echo "${0}: no install directory for runlevel scripts found"
1010 exit 1
1011 fi
1012 if [ x"${rc_main}" = x ]; then
1013 echo "${0}: no install directory for runlevel scripts found"
1014 exit 1
1015 fi
1016 DVER="Linux"
1017 rc_main="${DESTDIR}${rc_main}"
1018 rc_dirz="${DESTDIR}${rc_dirz}"
1019 fi
1020 ;;
1021
1022 *)
1023 echo "${0}: unsupported platform ${platform}"
1024 exit 1
1025 ;;
1026 esac
1027
1028 if test x"${rc_main}" = x
1029 then
1030 echo "${0}: no install directory for runlevel scripts found"
1031 exit 1
1032 fi
1033
1034 if test x"${act}" = xboot
1035 then
1036
1037 startscript=NONE
1038 if test -f init/samhain.start${DVER}
1039 then
1040 startscript=`eval echo init/samhain.start${DVER}`
1041 elif test -f samhain.start${DVER}
1042 then
1043 startscript=`eval echo samhain.start${DVER}`
1044 else
1045 echo "${0}: cannot find samhain.start${DVER} in ./ or ./init"
1046 exit 1
1047 fi
1048
1049 if test "x${startscript}" = xNONE; then
1050 echo "${0}: cannot find samhain.start${DVER} in ./ or ./init"
1051 exit 1
1052 else
1053 if test -f ${rc_main}/${samhain} && test x"$force" != xyes
1054 then
1055 echo " ${rc_main}/${samhain} exists ... not overwritten (or use --force)"
1056 else
1057 if test x"$DESTDIR" = x
1058 then
1059 :
1060 else
1061 ${mkinstalldirs} ${rc_main}
1062 #
[59]1063 if test x"${DVER_REAL}" = xSolaris; then
[1]1064 ${mkinstalldirs} ${DESTDIR}/etc/rc0.d
1065 ${mkinstalldirs} ${DESTDIR}/etc/rc1.d
1066 ${mkinstalldirs} ${DESTDIR}/etc/rc3.d
1067 fi
1068 #
1069 fi
1070 test -z "$verbose" || echo " ${INSTALL_SHELL} ${startscript} ${rc_main}/${samhain}"
1071 if test -f "@INSTALL@"; then
1072 ${INSTALL_SHELL} ${startscript} ${rc_main}/${samhain}
1073 else
1074 cp ${startscript} ${rc_main}/${samhain} && chmod 0700 ${rc_main}/${samhain}
1075 fi
1076 fi
1077 fi
1078
1079
1080 if test x"${rc_dirz}" != x
1081 then
1082 for ff in $rlv
1083 do
1084 if test x"${DESTDIR}" = x
1085 then
1086 rldir="${rc_dirz}${ff}.d/"
1087 test -z "$verbose" || echo " cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} S99${samhain}"
1088 (cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} S99${samhain})
1089 test -z "$verbose" || echo " cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} K10${samhain}"
1090 (cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} K10${samhain})
1091 else
1092 :
1093 # ${mkinstalldirs} ${rc_dirz}${ff}.d
1094 fi
1095
1096
1097 done
1098 fi
1099
1100 if test x"${rc_inst}" != x
1101 then
1102 if test x"${DESTDIR}" = x
1103 then
1104 test -z "$verbose" || echo " ${rc_inst}"
1105 eval ${rc_inst}
1106 fi
1107 fi
1108 echo "installing init scripts completed"
1109 fi
1110
1111 if test x"${act}" = xuboot
1112 then
1113 if test x"${rc_uinst}" != x
1114 then
1115 test -z "$verbose" || echo " ${rc_uinst}"
1116 echo
1117 eval ${rc_uinst}
1118 fi
1119
1120 if test x"${rc_dirz}" != x
1121 then
1122 for ff in $rlv
1123 do
1124 test -z "$verbose" || echo " rm -f ${rc_dirz}${ff}.d/S99${samhain}"
1125 rm -f ${rc_dirz}${ff}.d/S99${samhain}
1126 test -z "$verbose" || echo " rm -f ${rc_dirz}${ff}.d/S99${samhain}"
1127 rm -f ${rc_dirz}${ff}.d/K10${samhain}
1128 done
1129 fi
1130
1131 test -z "$verbose" || echo " rm -f ${rc_main}/${samhain}"
1132 rm -f ${rc_main}/${samhain}
1133
1134 echo " uninstalling init scripts completed"
1135 fi
1136
1137 # boot_install|boot_uninstall completed
1138 exit 0
1139fi
1140
1141if test x"${act}" = xuprogram
1142then
[481]1143 PROGRAMS="@setpwd_prg@ @stegin_prg@ @yulectl_prg@ @sh_main_prg@ @samhainadmin_prg@"
[1]1144 for p in $PROGRAMS; do
[481]1145 test -z "$verbose" || echo " rm -f ${DESTDIR}${sbindir}/`echo $p|sed 's%samhain%@install_name@%'|sed 's%yule%@install_name@%'|sed 's%.*/%%'`"
1146 rm -f ${DESTDIR}${sbindir}/`echo $p|sed 's%samhain%@install_name@%'|sed 's%yule%@install_name@%'|sed 's%.*/%%'`
[1]1147 done
1148 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${sbindir} ... $ECHO_C"
1149 ${SH_RMDIR} ${DESTDIR}${sbindir} >/dev/null 2>&1
1150 if test x$? = x0; then
1151 test -z "$verbose" || echo "${ECHO_T}done"
1152 else
1153 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1154 fi
1155 exit 0
1156fi
1157
1158if test x"${act}" = xuman
1159then
1160 test -z "$verbose" || echo " rm -f ${DESTDIR}${mandir}/man8/@install_name@.8"
1161 rm -f ${DESTDIR}${mandir}/man8/@install_name@.8
1162 test -z "$verbose" || echo " rm -f ${DESTDIR}${mandir}/man5/@install_name@rc.5"
1163 rm -f ${DESTDIR}${mandir}/man5/@install_name@rc.5
1164
1165 OLD_IFS=${IFS}
1166 IFS=':'; export IFS
1167 for ff in ${MANPATH}; do
1168 if test x"$ff/man8" = x"${DESTDIR}${mandir}/man8"; then
1169 echo " man directory ${DESTDIR}${mandir} is in your MANPATH"
1170 echo " -- will not try to remove"
1171 IFS=${OLD_IFS}; export IFS
1172 exit 0
1173 fi
1174 done
1175 IFS=${OLD_IFS}; export IFS
1176
1177 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${mandir}/man8 ... $ECHO_C"
1178 ${SH_RMDIR} ${DESTDIR}${mandir}/man8 >/dev/null 2>&1
1179 if test x$? = x0; then
1180 test -z "$verbose" || echo "${ECHO_T}done"
1181 else
1182 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1183 fi
1184
1185 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${mandir}/man5 ... $ECHO_C"
1186 ${SH_RMDIR} ${DESTDIR}${mandir}/man5 >/dev/null 2>&1
1187 if test x$? = x0; then
1188 test -z "$verbose" || echo "${ECHO_T}done"
1189 else
1190 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1191 fi
1192
1193 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${mandir} ... $ECHO_C"
1194 ${SH_RMDIR} ${DESTDIR}${mandir} >/dev/null 2>&1
1195 if test x$? = x0; then
1196 test -z "$verbose" || echo "${ECHO_T}done"
1197 else
1198 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1199 fi
1200
1201 exit 0
1202fi
1203
1204if test x"${act}" = xudata
1205then
1206 test -z "$verbose" || echo " rm -f ${DESTDIR}`echo ${mydatafile}|sed s%REQ_FROM_SERVER%%`"
1207 rm -f ${DESTDIR}`echo ${mydatafile}|sed s%REQ_FROM_SERVER%%`
1208 test -z "$verbose" || echo " rm -f ${DESTDIR}${pid_file}"
1209 rm -f ${DESTDIR}${pid_file}
1210 test -z "$verbose" || echo " rm -f ${DESTDIR}${mylogfile}"
1211 rm -f ${DESTDIR}${mylogfile}
1212 test -z "$verbose" || echo " rm -f ${DESTDIR}${myhtmlfile}"
1213 rm -f ${DESTDIR}${myhtmlfile}
1214
1215 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${pid_dir} ... $ECHO_C"
1216 ${SH_RMDIR} ${DESTDIR}${pid_dir} >/dev/null 2>&1
1217 if test x$? = x0; then
1218 test -z "$verbose" || echo "${ECHO_T}done"
1219 else
1220 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1221 fi
1222
1223 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${mylogdir} ... $ECHO_C"
1224 ${SH_RMDIR} ${DESTDIR}${mylogdir} >/dev/null 2>&1
1225 if test x$? = x0; then
1226 test -z "$verbose" || echo "${ECHO_T}done"
1227 else
1228 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1229 fi
1230
1231 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${data_root} ... $ECHO_C"
1232 ${SH_RMDIR} ${DESTDIR}${data_root} >/dev/null 2>&1
1233 if test x$? = x0; then
1234 test -z "$verbose" || echo "${ECHO_T}done"
1235 else
1236 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1237 fi
1238
[412]1239
1240 if test -d /etc/logrotate.d; then
1241 if test -f /etc/logrotate.d/@install_name@; then
1242 test -z "$verbose" || echo $ECHO_N " rm -f /etc/logrotate.d/@install_name@ ... $ECHO_C"
1243 rm -f /etc/logrotate.d/@install_name@;
1244 if test x$? = x0; then
1245 test -z "$verbose" || echo "${ECHO_T}done"
1246 else
1247 test -z "$verbose" || echo "${ECHO_T}failed"
1248 fi
1249 fi
1250 fi
1251
[1]1252 if test x"$force" = "xyes"
1253 then
1254 test -z "$verbose" || echo " rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`"
1255 rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`
1256 elif test x"$purge" = "xyes"
1257 then
1258 test -z "$verbose" || echo " rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`"
1259 rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`
1260 elif test x"$express" = x; then
1261 echo " Do you want to remove the configuration file [y/n] ?"
1262 while [ "1" = "1" ]; do
1263 read ff
1264 case "$ff" in
1265 Y* | y* )
1266 test -z "$verbose" || echo " rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`"
1267 rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`
1268 break
1269 ;;
1270 N* | n* )
1271 test -z "$verbose" || echo " ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%` NOT removed"
1272 break
1273 ;;
1274 *)
1275 echo " Enter y[es] or n[o]"
1276 ;;
1277 esac
1278 done
1279 else
1280 test -z "$verbose" || echo " NOT REMOVED: config file ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%` (use --force to remove)"
1281 fi
1282
1283 test -z "$verbose" || echo $ECHO_N " ${SH_RMDIR} ${DESTDIR}${sysconfdir} ... $ECHO_C"
1284 ${SH_RMDIR} ${DESTDIR}${sysconfdir} >/dev/null 2>&1
1285 if test x$? = x0; then
1286 test -z "$verbose" || echo "${ECHO_T}done"
1287 else
1288 test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1289 fi
1290
1291 exit 0
1292fi
1293
1294if test x"${act}" = xdata
1295then
1296 STEGIN=@stegin_prg@
1297 CONVERT=
1298
1299 GPGPATH=@mygpg@
[191]1300 TARGETKEYID=@mykeyid@
1301 KEYTAG=@mykeytag@
[1]1302
1303 NTEST=@mytclient@
1304
1305 if test x"${NTEST}" = "x-DSH_WITH_SERVER"
1306 then
1307 RCFILE=yulerc
1308 if test -f $RCFILE
1309 then
1310 :
1311 else
1312 if test -f yulerc.template
1313 then
1314 cp yulerc.template $RCFILE
1315 fi
1316 fi
1317 else
1318 RCFILE=samhainrc
1319 IN_RCFILE=samhainrc.@selectconfig@
1320
1321 if test -f ${RCFILE}
1322 then
1323 :
1324 else
1325 if test -f ${IN_RCFILE}
1326 then
1327 test -z "$verbose" || echo " cp ${IN_RCFILE} ${RCFILE}"
1328 cp ${IN_RCFILE} ${RCFILE}
1329 fi
1330 fi
1331 fi
1332
1333 if test -f $RCFILE
1334 then
1335 :
1336 else
1337 echo "${0}: cannot find configuration file $RCFILE"
1338 exit 1
1339 fi
1340
1341 if test x"${GPGPATH}" != x
1342 then
1343 echo
1344 echo "You need to sign the config file now"
1345 echo
[191]1346 test -z "$verbose" || echo " ${GPGPATH} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE"
[1]1347 if test x"${NTEST}" = "x-DSH_WITH_SERVER"
1348 then
1349 myident_uid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
1350 grep "^${samhain}:" | awk -F: '{ print $3; }'`
1351 if test x"${myident_uid}" != x
1352 then
1353 DOT_GNUPG=`eval echo ~${samhain}/.gnupg`
1354 test -z "$verbose" || echo " using --homedir ${DOT_GNUPG}"
[191]1355 ${GPGPATH} --homedir ${DOT_GNUPG} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE
[1]1356 else
[191]1357 ${GPGPATH} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE
[1]1358 fi
1359 else
[191]1360 ${GPGPATH} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE
[1]1361 fi
1362
1363 if test -f ${RCFILE}.asc
1364 then
1365 test -z "$verbose" || echo " mv -f ${RCFILE}.asc samhainrc.pre"
1366 mv -f ${RCFILE}.asc samhainrc.pre
1367 else
1368 echo "**********************************************************"
1369 echo
1370 echo "${0}: ERROR: cannot find signed file ${RCFILE}.asc"
1371 echo
1372 echo " --- You need to sign the configuration file ---"
1373 echo
1374 echo "**********************************************************"
1375 cp ${RCFILE} samhainrc.pre
1376 fi
1377 else
1378 test -z "$verbose" || echo " cp $RCFILE samhainrc.pre"
1379 cp $RCFILE samhainrc.pre
1380 fi
1381
1382 if test x"${STEGIN}" != x
1383 then
1384 test -z "$verbose" || echo " searching for ImageMagick convert utility"
1385 OPATH=${PATH}
1386 PATH="/usr/local/bin:/usr/X11R6/bin:"${PATH}
1387
1388 OIFS=${IFS}
1389 IFS=":"
1390
1391 for dd in ${PATH}
1392 do
1393 if test -f "${dd}/convert"
1394 then
1395 "${dd}/convert" --help | grep ImageMagick >/dev/null 2>&1 && \
1396 CONVERT="${dd}/convert"
1397 test -z "$verbose" || echo " CONVERT=${dd}/convert"
1398 fi
1399 done
1400
1401 IFS=${OIFS}
1402
[203]1403 if test -f stealth_template.ps
[1]1404 then
[203]1405 PATH=${OPATH}
1406 else
1407 if test x"${CONVERT}" = x
1408 then
1409 echo "${0}: cannot find ImageMagick convert utility in PATH=${PATH}"
1410 exit 1
1411 fi
[1]1412
[203]1413 PATH=${OPATH}
[1]1414
[203]1415 if test -f stealth_template.jpg
1416 then
1417 test -z "$verbose" || echo " ${CONVERT} +compress stealth_template.jpg stealth_template.ps"
1418 "${CONVERT}" +compress stealth_template.jpg stealth_template.ps
1419 else
1420 echo "${0}: cannot find file stealth_template.jpg"
1421 exit 1
1422 fi
1423 fi
[1]1424
1425
1426 if test -f stealth_template.ps
1427 then
1428 :
1429 else
1430 echo "${0}: file stealth_template.ps not created"
1431 exit 1
1432 fi
1433
1434 if test -f samhainrc.pre
1435 then
1436 :
1437 else
1438 echo "${0}: cannot find configuration file samhainrc.pre"
1439 exit 1
1440 fi
1441
1442 if test -f ./samhain_stealth
1443 then
1444 :
1445 else
1446 echo "${0}: cannot find utility ./samhain_stealth"
1447 exit 1
1448 fi
1449
1450 ccount=`./samhain_stealth -o samhainrc.pre 2>&1 | awk '{ print $1 }'`
1451 mcount=`./samhain_stealth -i stealth_template.ps 2>&1 | awk '{ print $7 }'`
1452
1453 if test ${mcount} -lt ${ccount}
1454 then
1455 echo "${0}: configuration file samhainrc too big,"
1456 echo " need a larger image stealth_template.jpg to store"
1457 exit 1
1458 fi
1459
1460 test -z "$verbose" || echo " ./samhain_stealth -s stealth_template.ps samhainrc.pre"
1461 ./samhain_stealth -s stealth_template.ps samhainrc.pre
1462
1463 test -z "$verbose" || echo " mv -f stealth_template.ps samhainrc.install"
1464 mv -f stealth_template.ps samhainrc.install
1465 else
1466 test -z "$verbose" || echo " mv -f samhainrc.pre samhainrc.install"
1467 mv -f samhainrc.pre samhainrc.install
1468 fi
1469
1470 tmp_configfile=`echo ${configfile} | sed 's%^REQ_FROM_SERVER%%'`
1471
1472 if test x"${tmp_configfile}" = x
1473 then
1474 echo " No local configfile to install."
1475 exit 0
1476 fi
1477
1478 if test -f ${DESTDIR}${tmp_configfile} && test x"$force" = x
1479 then
1480 echo " ${DESTDIR}${tmp_configfile} exists ... not overwritten (or use --force)"
1481 else
1482 test -z "$verbose" || echo " ${INSTALL_DATA} samhainrc.install ${DESTDIR}${tmp_configfile}"
1483 ${INSTALL_DATA} samhainrc.install ${DESTDIR}${tmp_configfile}
1484 fi
1485
1486 if test x"${NTEST}" = "x-DSH_WITH_SERVER"
1487 then
1488 test -z "$verbose" || echo " chown @myident@ ${DESTDIR}${tmp_configfile}"
1489 chown @myident@ ${DESTDIR}${tmp_configfile}
1490 fi
1491
1492 #
1493 # Changed: don't check if DESTDIR is set, as these are not
1494 # the true install locations anyway
1495 #
1496 if test -f trustfile && test x"${DESTDIR}" = x
1497 then
1498 test -z "$verbose" || echo " checking whether paths are trustworthy"
1499 RESULT=`./trustfile ${DESTDIR}${tmp_configfile} 2>&1`
1500 if test x$? != x0
1501 then
1502 echo
1503 ./trustfile ${DESTDIR}${tmp_configfile}
1504 echo
1505 else
1506 test -z "$verbose" || echo " configuration file ${DESTDIR}${tmp_configfile} ... OK"
1507 fi
1508
1509 RESULT=`./trustfile ${DESTDIR}${pid_dir} >/dev/null 2>&1`
1510 if test x$? != x0
1511 then
1512 echo
1513 ./trustfile ${DESTDIR}${pid_dir}
1514 echo
1515 else
1516 test -z "$verbose" || echo " state directory ${DESTDIR}${pid_dir} ... OK"
1517 fi
1518
1519 RESULT=`./trustfile ${DESTDIR}${mylogdir} >/dev/null 2>&1`
1520 if test x$? != x0
1521 then
1522 echo
1523 ./trustfile ${DESTDIR}${mylogdir}
1524 echo
1525 else
1526 test -z "$verbose" || echo " state directory ${DESTDIR}${mylogdir} ... OK"
1527 fi
1528
1529 RESULT=`./trustfile ${DESTDIR}${data_root} >/dev/null 2>&1`
1530 if test x$? != x0
1531 then
1532 echo
1533 ./trustfile ${DESTDIR}${data_root}
1534 echo
1535 else
1536 test -z "$verbose" || echo " data directory ${DESTDIR}${data_root} ... OK"
1537 fi
1538 fi
1539 # install_data
1540 exit 0
1541fi
1542
1543
Note: See TracBrowser for help on using the repository browser.