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

Last change on this file since 442 was 442, checked in by katerina, 8 years ago

Fix for ticket #346 (make install-boot fails on AIX)

File size: 40.9 KB
Line 
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
29datarootdir=@datarootdir@
30
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'
67    echo '         uninstall-data|uninstall-man|uninstall-program|uninstall-lkm'
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-lkm)
517            act=ulkm
518            break;;
519
520        uninstall | remove | purge)
521            opts=
522            test x"$verbose" = "xyes" && opts="$opts --verbose"
523            test x"$express" = "xyes" && opts="$opts --express"
524            test x"$force" = "xyes" && opts="$opts --force"
525            test x"$DESTDIR" = "x" || opts="$opts --destdir=$DESTDIR"
526            test x"$1" = "xpurge" && purge=yes
527            echo "$0 $opts uninstall-lkm"
528            eval $0 $opts uninstall-lkm
529            echo "$0 $opts uninstall-program"
530            eval $0 $opts uninstall-program
531            echo "$0 $opts uninstall-man"
532            eval $0 $opts uninstall-man
533            if test x"$force" = "x"; then
534                test "x$purge" = xyes && opts="$opts --force"
535            fi
536            echo "$0 $opts uninstall-data"
537            eval $0 $opts uninstall-data
538            echo
539            echo "  To uninstall the runlevel scripts, use $0 $opts uninstall-boot"
540            echo
541            exit 0
542            ;;
543        *)
544        echo "Unknown option $1"
545        exit 1
546        ;;
547
548    esac
549done
550
551if test x"$act" = xuser
552then
553
554#   -- the routines for installing a new user are adapted from
555#      the OpenPKG bootstrap installation script, which is distributed
556#      under the following license:
557
558##  Shell-based package for OpenPKG BINARY bootstrap installation
559##  Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
560##  Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
561##  Copyright (c) 2000-2002 Ralf S. Engelschall <rse@engelschall.com>
562##
563##  Permission to use, copy, modify, and distribute this software for
564##  any purpose with or without fee is hereby granted, provided that
565##  the above copyright notice and this permission notice appear in all
566##  copies.
567##
568##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
569##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
570##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
571##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
572##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
573##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
574##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
575##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
576##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
577##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
578##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
579##  SUCH DAMAGE.
580
581    if test x"$user" = x
582    then
583        echo "**ERROR**: No username specified"
584        exit 1
585    fi
586
587    s=`uname -s 2>/dev/null` || s='Unknown'
588    r=`uname -r 2>/dev/null` || r='0.0'
589    platform="${s}/${r}"
590
591    if test x"$user" = xnobody; then
592        case "$platform" in
593            HP-UX/* )
594            group="nogroup"
595            ;;
596            *)
597            group="nobody"
598            ;;
599        esac
600    else
601        group="$user"
602    fi
603    shell=/bin/false
604    if test -f /etc/shells
605    then
606     grep "^/usr/bin/false" /etc/shells >/dev/null 2>&1 && shell=/usr/bin/false
607     grep "^/bin/nologin"   /etc/shells >/dev/null 2>&1 && shell=/bin/nologin
608     grep "^/sbin/nologin"  /etc/shells >/dev/null 2>&1 && shell=/sbin/nologin
609    fi
610    home="${data_root}"
611
612    xuid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
613          grep "^${user}:" | awk -F: '{ print $3; }'`
614    if test "x$xuid" = x
615    then
616        #   seek for a reasonable uid/gid pair
617        xuid=1000
618        ok=0
619        while test "x$ok" = x0
620        do
621            eval "u_exists=\$u_exists_$xuid"
622            if test "x$u_exists" = x
623            then
624                u_exists=`(cat /etc/passwd; ypcat passwd) 2>/dev/null | grep "^[^:]*:[^:]*:$xuid:"`
625            fi
626            eval "g_exists=\$g_exists_$xuid"
627            if test "x$g_exists" = x
628            then
629                g_exists=`(cat /etc/group;  ypcat group)  2>/dev/null | grep "^[^:]*:[^:]*:$xuid:"`
630            fi
631            if [ "x$u_exists" = x -a "x$g_exists" = x ]; then
632                ok=1
633                break
634            fi
635            xuid=`expr $xuid + 1`
636        done
637        eval "u_exists_$xuid=yes"
638        eval "g_exists_$xuid=yes"
639    else
640        # user exists
641        xgid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
642          grep "^${user}:" | awk -F: '{ print $4; }'`
643    fi
644
645    if test "x$xgid" = x
646    then
647        xgid=`(cat /etc/group; ypcat group) 2>/dev/null |\
648              grep "^${group}:" | awk -F: '{ print $3; }'`
649    fi
650   
651    if test "x$xgid" = x
652    then
653        xgid="$xuid"
654        g_exists=no
655    else
656        g_exists=yes
657    fi
658
659    uid=$xuid
660    gid=$xgid
661
662    if test -f /etc/shells
663    then
664        exists=`cat /etc/shells 2>/dev/null | grep "^$shell"`
665        if test "x$exists" = x; then
666            echo "${shell}" >>/etc/shells
667            test -z "$verbose" || echo "  Added ${shell} to /etc/shells"
668        fi
669    fi
670
671    exists=`(cat /etc/passwd; ypcat passwd) 2>/dev/null | grep "^$user:"`
672    if test x"$exists" = x; then
673       #   add entry to passwd database
674       realname="$user"
675       case "$platform" in
676           FreeBSD/* | NetBSD/* | OpenBSD/* )
677              file=/etc/master.passwd
678              entry="${user}:*:${uid}:${gid}::0:0:${realname}:${home}:${shell}"
679              update="(PATH=\$PATH:/usr/sbin; pwd_mkdb -p /etc/master.passwd)"
680              break
681              ;;
682           Linux/* )
683               file=/etc/passwd
684               entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
685               update="(PATH=\$PATH:/usr/sbin; pwconv)"
686               break
687               ;;
688           SunOS/5.* )
689               file=/etc/passwd
690               entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
691               update="(PATH=\$PATH:/usr/sbin; pwconv)"
692               break
693               ;;
694           OSF1/V5.* )
695               file=/etc/passwd
696               entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
697               update="(PATH=\$PATH:/usr/sbin; mkpasswd /etc/passwd)"
698               break
699               ;;
700           HP-UX/* )
701               file=/etc/passwd
702               entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
703               update=":"
704               break
705               ;;
706           IRIX*/* )
707               file=/etc/passwd
708               entry="${user}:*:${uid}:${gid}:${realname}:${home}:${shell}"
709               update=":"
710               break
711               ;;
712          *)
713               echo "install-user: Unsupported system $platform"
714               echo "Please add user $user / group $group manually"
715               echo " and re-run make install-user"
716               exit 1
717               ;;
718       esac
719       cp $file $file.bak && \
720       (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
721       rm -f $file.bak >/dev/null 2>&1
722       eval $update
723       test -z "$verbose" || echo "  Added user: ${user} uid: ${uid} shell: ${shell}"
724    else
725       test -z "$verbose" || echo "  User ${user} exists already"
726    fi
727
728    #    check whether group already exists
729    #    FIXME
730    exists=`(cat /etc/group; ypcat group) 2>/dev/null | grep "^$group:"`
731    if test x"$exists" = x
732    then
733        #
734        # user has a valid GID
735        #
736        if test g_exists = xyes; then
737            exists=yes
738        fi
739    fi
740    if test x"$exists" = x
741    then
742        #   add entry to group database
743        file=/etc/group
744        entry="${group}:*:${gid}:${user}"
745        cp $file $file.bak && \
746        (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
747        rm -f $file.bak >/dev/null 2>&1
748        test -z "$verbose" || echo "  Added group: ${group} gid: ${gid} user: ${user}"
749    fi
750
751    exit 0
752fi
753
754if test x"$act" = xboot || test x"$act" = xuboot
755then
756    s=`uname -s 2>/dev/null` || s='Unknown'
757    r=`uname -r 2>/dev/null` || r='0.0'
758    platform="${s}/${r}"
759
760    case "$platform" in
761    Darwin/*)
762        DVER="MACOSX"
763        test -z "$verbose" || echo "MacOS X system detected"
764        rc_main="/Library/StartupItems/${samhain}"
765        ${mkinstalldirs} ${rc_main}
766        rc_dirz=
767        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; )"
768        rc_uinst="rm -rf /Library/StartupItems/@install_name@"
769        ;;
770
771    IRIX*/*)
772        DVER="IRIX"
773        test -z "$verbose" || echo "  IRIX system detected"
774        rc_main=${DESTDIR}/etc/init.d
775        rc_dirz=
776        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@; )"
777        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"
778        ;;
779
780    AIX/*)
781        DVER="AIX"
782        test -z "$verbose" || echo "  AIX system detected"
783        ln -f -s @sbindir@/@install_name@  samhain.startAIX
784        rc_main=@sbindir@
785        rc_dirz=
786        rc_inst="/usr/sbin/mkitab '@install_name@:2:wait:@sbindir@/@install_name@ start >/dev/console 2>&1'"
787        rc_uinst="/usr/sbin/rmitab @install_name@"
788        ;;
789
790    HP-UX/*)
791        DVER="HPUX"
792        test -z "$verbose" || echo "  HP-UX system detected"
793        rc_main=${DESTDIR}/sbin/init.d
794        rc_dirz=
795        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@; )"
796        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@"
797        ;;
798
799    OpenBSD/*)
800        test -z "$verbose" || echo "  OpenBSD system detected"
801        grep '^## begin @install_name@' /etc/rc.local >/dev/null 2>&1
802        if [ $? -eq 0 ]; then
803            RCLOCALTMP=`mktemp /etc/rc.local.XXXXXXXXXX` || exit 1
804            sed "/^## begin @install_name@/,/^## end @install_name@/d" /etc/rc.local >$RCLOCALTMP || exit 1
805            cat $RCLOCALTMP >/etc/rc.local || exit 1
806            rm -f $RCLOCALTMP || exit 1
807            if test x"$act" = xuboot; then
808                echo "  uninstalling from /etc/rc.local completed"
809            fi
810        fi
811        if test x"$act" = xboot; then
812            echo "## begin @install_name@"          >>/etc/rc.local || exit 1
813            echo "if [ -x @sbindir@/@install_name@ ]; then" >>/etc/rc.local || exit 1
814            echo "  @sbindir@/@install_name@ start" >>/etc/rc.local || exit 1
815            echo "fi"                               >>/etc/rc.local || exit 1
816            echo "## end @install_name@"            >>/etc/rc.local || exit 1
817            echo "  installing to /etc/rc.local completed"
818        fi
819        exit 0
820        ;;
821
822    NetBSD/*)
823        test -z "$verbose" || echo "  NetBSD system detected"
824        if test -f /etc/rc.subr; then
825            DVER="FreeBSD"
826            rc_main=${DESTDIR}/etc/rc.d
827            rc_dirz=
828            rc_inst="chmod 755 /etc/rc.d/@install_name@"
829            rc_uinst="rm -f /etc/rc.d/@install_name@"
830        else
831            echo "${0}: unsupported platform ${platform} (too old)"
832            exit 1
833        fi
834        ;;
835
836    FreeBSD/* )
837        test -z "$verbose" || echo "  FreeBSD system detected"
838        if test -f /etc/rc.subr; then
839            DVER="FreeBSD"
840            rc_main=${DESTDIR}/etc/rc.d
841            rc_dirz=
842            rc_inst="chmod 755 /etc/rc.d/@install_name@"
843            rc_uinst="rm -f /etc/rc.d/@install_name@"
844        else
845            DVER="Solaris"
846            rc_main=${DESTDIR}/usr/local/etc/rc.d
847            rc_dirz=
848            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"
849            rc_uinst="rm -f /usr/local/etc/rc.d/@install_name@.sh"
850        fi
851        if test x"$act" = xboot
852        then
853            if [ ! -d ${rc_main} ]; then
854                test x"$act" = xboot && mkdir ${rc_main}
855            fi
856            if test "x$DVER" = "xSolaris"; then
857            (   . /etc/defaults/rc.conf
858                . /etc/rc.conf
859                found=0
860                for p in ${local_startup-x}; do
861                    if test "x$p" = "x${rc_main}"; then
862                        found=1
863                        break
864                    fi
865                done
866                if test "x$found" = x0; then
867                    cp -p /etc/rc.conf /etc/rc.conf.bak
868                    (
869                        grep -v local_startup /etc/rc.conf.bak
870                        echo "local_startup=\"${rc_main} $local_startup\""
871                    ) >/etc/rc.conf
872                fi
873            )
874            fi
875        fi
876        ;;
877
878    SunOS/5.* )
879        DVER="Solaris"
880        DVER_REAL="Solaris"
881        test -z "$verbose" || echo "  Solaris system detected"
882        rc_dirz=
883        rc_main=${DESTDIR}/etc/init.d
884        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@; )"
885        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@"
886        ;;
887
888    Linux/*)
889        rlv="2 3 4 5"
890        linkopt="-f -s"
891        # find rc directories
892        if test -f /usr/lib/lsb/install_initd && test -d /etc/init.d
893        then
894            test -z "$verbose" || echo "  Linux Standard Base system detected"
895            DVER=LSB
896            if test x"$DESTDIR" = x
897            then
898                rc_main=/etc/init.d
899                rc_dirz=
900                rc_inst="/usr/lib/lsb/install_initd /etc/init.d/@install_name@"
901                rc_uinst="/usr/lib/lsb/remove_initd /etc/init.d/@install_name@"
902            else
903                rc_inst=
904                rc_uinst=
905                rc_main=${DESTDIR}/etc/init.d
906                rc_dirz=
907                # test -d /etc/init.d/rc2.d && rc_dirz=${DESTDIR}/etc/init.d/rc
908                # test -d /etc/rc.d/rc2.d && rc_dirz=${DESTDIR}/etc/rc.d/rc
909                # test -d /etc/rc2.d && rc_dirz=${DESTDIR}/etc/rc
910            fi
911        elif test -f /etc/SuSE-release
912        then
913            test -z "$verbose" || echo "  SuSE system detected"
914            DVER="Linux"
915            rc_inst=
916            rc_uinst=
917            if test -d /sbin/init.d && test -d /sbin/init.d/rc2.d
918            then
919                test -z "$verbose" || echo "  SuSE 6.x system detected"
920                rc_main=${DESTDIR}/sbin/init.d
921                rc_dirz=${DESTDIR}/sbin/init.d/rc
922            elif test -d /etc/init.d && test -d /etc/init.d/rc2.d
923            then
924                test -z "$verbose" || echo "  SuSE 7.x or newer detected"
925                rc_main=${DESTDIR}/etc/init.d
926                rc_dirz=${DESTDIR}/etc/init.d/rc
927            else
928                echo "${0}: unknown system"
929                exit 1
930            fi
931        elif test -d /sbin/init.d && test -d /sbin/init.d/rc2.d
932        then
933            DVER="Linux"
934            rc_inst=
935            rc_uinst=
936            test -z "$verbose" || echo "  SuSE 5.x system detected"
937            rc_main=${DESTDIR}/sbin/init.d
938            rc_dirz=${DESTDIR}/sbin/init.d/rc
939        elif test -f /etc/debian_version
940        then
941            DVER="Linux"
942            test -z "$verbose" || echo "  Debian based system detected"
943            if test x"$DESTDIR" = x
944            then
945                rc_main=/etc/init.d
946                rc_dirz=
947                rc_uinst="/usr/sbin/update-rc.d -f @install_name@ remove"
948                rc_inst="/usr/sbin/update-rc.d @install_name@ defaults 99 10"
949            else
950                rc_inst=
951                rc_uinst=
952                rc_main=${DESTDIR}/etc/init.d
953                # rc_dirz=${DESTDIR}/etc/rc
954                rc_dirz=
955            fi
956        elif test -f /etc/redhat-release
957        then
958            DVER="Linux"
959            test -z "$verbose" || echo "  Redhat based system detected"
960            rc_uinst=
961            rc_inst=
962            rc_main=${DESTDIR}/etc/rc.d/init.d
963            rc_dirz=${DESTDIR}/etc/rc.d/rc
964        elif test -f /etc/mandrake-release
965        then
966            DVER="Linux"
967            test -z "$verbose" || echo "  Mandrake based system detected"
968            rc_uinst=
969            rc_inst=
970            rc_main=${DESTDIR}/etc/rc.d/init.d
971            rc_dirz=${DESTDIR}/etc/rc.d/rc
972        elif test -f /etc/yellowdog-release
973        then
974            DVER="Linux"
975            test -z "$verbose" || echo "  Yellow Dog based system detected"
976            rc_uinst=
977            rc_inst=
978            rc_main=${DESTDIR}/etc/rc.d/init.d
979            rc_dirz=${DESTDIR}/etc/rc.d/rc
980        elif test -f /etc/slackware-version && test -f /etc/rc.d/rc.sysvinit
981        then
982            DVER="Linux"
983            test -z "$verbose" || echo "  Slackware based system detected"
984            rc_uinst=
985            rc_inst=
986            rc_main=${DESTDIR}/etc/rc.d
987            rc_dirz=${DESTDIR}/etc/rc.d/rc
988        elif test -f  /etc/gentoo-release
989        then
990            DVER="Gentoo"
991            test -z "$verbose" || echo "  Gentoo based system detected"
992            rc_uinst="/sbin/rc-update del @install_name@"
993            rc_inst="/sbin/rc-update add @install_name@ default"
994            rc_main=${DESTDIR}/etc/init.d
995            rc_dirz=
996        else
997            echo "${0}: unknown Linux distribution"
998            rc_uinst=
999            rc_inst=
1000            rc_main=
1001            rc_dirz=
1002            for ff in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do
1003                if test -d $ff; then
1004                    rc_main="$ff"
1005                    break
1006                fi
1007            done
1008            for fg in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do
1009                if test -d $fg; then
1010                    rc_dirz="`echo $fg | sed -e 's,2.*,,'`"
1011                    break
1012                fi
1013            done
1014            if [ x"${rc_dirz}" = x ]; then
1015                echo "${0}: no install directory for runlevel scripts found"
1016                exit 1
1017            fi
1018            if [ x"${rc_main}" = x ]; then
1019                echo "${0}: no install directory for runlevel scripts found"
1020                exit 1
1021            fi
1022            DVER="Linux"
1023            rc_main="${DESTDIR}${rc_main}"
1024            rc_dirz="${DESTDIR}${rc_dirz}"
1025        fi
1026        ;;
1027
1028        *)
1029        echo "${0}: unsupported platform ${platform}"
1030        exit 1
1031        ;;
1032    esac
1033
1034    if test x"${rc_main}" = x
1035    then
1036        echo "${0}: no install directory for runlevel scripts found"
1037        exit 1
1038    fi
1039
1040    if test x"${act}" = xboot
1041    then
1042
1043        startscript=NONE
1044        if test -f init/samhain.start${DVER}
1045        then
1046            startscript=`eval echo init/samhain.start${DVER}`
1047        elif test -f samhain.start${DVER}
1048        then
1049            startscript=`eval echo samhain.start${DVER}`
1050        else
1051            echo "${0}: cannot find samhain.start${DVER} in ./ or ./init"
1052            exit 1
1053        fi
1054
1055        if test "x${startscript}" = xNONE; then
1056            echo "${0}: cannot find samhain.start${DVER} in ./ or ./init"
1057            exit 1
1058        else
1059            if test -f ${rc_main}/${samhain} && test x"$force" != xyes
1060            then
1061                echo "  ${rc_main}/${samhain} exists ... not overwritten (or use --force)"
1062            else
1063                if test x"$DESTDIR" = x
1064                then
1065                    :
1066                else
1067                    ${mkinstalldirs} ${rc_main}
1068                    #
1069                    if test x"${DVER_REAL}" = xSolaris; then
1070                        ${mkinstalldirs} ${DESTDIR}/etc/rc0.d
1071                        ${mkinstalldirs} ${DESTDIR}/etc/rc1.d
1072                        ${mkinstalldirs} ${DESTDIR}/etc/rc3.d
1073                    fi
1074                    #
1075                fi
1076                test -z "$verbose" || echo "  ${INSTALL_SHELL}  ${startscript} ${rc_main}/${samhain}"
1077                if test -f "@INSTALL@"; then
1078                    ${INSTALL_SHELL}  ${startscript} ${rc_main}/${samhain}
1079                else
1080                    cp ${startscript} ${rc_main}/${samhain} && chmod 0700 ${rc_main}/${samhain}
1081                fi
1082            fi
1083        fi
1084
1085
1086        if test x"${rc_dirz}" != x
1087        then
1088            for ff in $rlv
1089            do
1090                if test x"${DESTDIR}" = x
1091                then
1092                    rldir="${rc_dirz}${ff}.d/"
1093                    test -z "$verbose" || echo "  cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} S99${samhain}"
1094                    (cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} S99${samhain})
1095                    test -z "$verbose" || echo "  cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} K10${samhain}"
1096                    (cd ${rldir} && ln ${linkopt} ${rc_main}/${samhain} K10${samhain})
1097                else
1098                    :
1099                    # ${mkinstalldirs} ${rc_dirz}${ff}.d
1100                fi
1101
1102
1103            done
1104        fi
1105
1106        if test x"${rc_inst}" != x
1107        then
1108           if test x"${DESTDIR}" = x
1109           then
1110               test -z "$verbose" || echo "  ${rc_inst}"
1111               eval ${rc_inst}
1112           fi
1113        fi
1114        echo "installing init scripts completed"
1115    fi
1116
1117    if test x"${act}" = xuboot
1118    then
1119        if test x"${rc_uinst}" != x
1120        then
1121           test -z "$verbose" || echo "  ${rc_uinst}"
1122           echo
1123           eval ${rc_uinst}
1124        fi
1125
1126        if test x"${rc_dirz}" != x
1127        then
1128            for ff in $rlv
1129            do
1130              test -z "$verbose" || echo "  rm -f  ${rc_dirz}${ff}.d/S99${samhain}"
1131              rm -f  ${rc_dirz}${ff}.d/S99${samhain}
1132              test -z "$verbose" || echo "  rm -f  ${rc_dirz}${ff}.d/S99${samhain}"
1133              rm -f  ${rc_dirz}${ff}.d/K10${samhain}
1134            done
1135        fi
1136
1137        test -z "$verbose" || echo "  rm -f ${rc_main}/${samhain}"
1138        rm -f ${rc_main}/${samhain}
1139
1140        echo "  uninstalling init scripts completed"
1141    fi
1142
1143    # boot_install|boot_uninstall completed
1144    exit 0
1145fi
1146
1147if test x"${act}" = xulkm
1148then
1149    RVER=`uname -r`
1150    if test "x@sh_lkm@" != "x"; then
1151        if test -d /lib/modules/$RVER; then
1152            MODDIR="/lib/modules/$RVER"
1153        elif test -d /lib/modules/misc; then
1154            MODDIR="/lib/modules/misc"
1155        elif test -d /lib/modules; then
1156            MODDIR="/lib/modules/misc"
1157        fi
1158        # -- NEW --
1159        ALLMODS="@sh_lkm@"
1160        for p in $ALLMODS; do
1161            test -z "$verbose" || echo "  rm -f ${DESTDIR}${MODDIR}/`echo $p|sed '
1162s%samhain%@install_name@%'`"
1163            rm -f ${DESTDIR}${MODDIR}/`echo $p|sed 's%samhain%@install_name@%'`
1164        done
1165    fi
1166fi
1167
1168if test x"${act}" = xuprogram
1169then
1170    PROGRAMS="@setpwd_prg@ @stegin_prg@ @yulectl_prg@ @sh_main_prg@"
1171    for p in $PROGRAMS; do
1172        test -z "$verbose" || echo "  rm -f ${DESTDIR}${sbindir}/`echo $p|sed 's%samhain%@install_name@%'|sed 's%yule%@install_name@%'`"
1173        rm -f ${DESTDIR}${sbindir}/`echo $p|sed 's%samhain%@install_name@%'|sed 's%yule%@install_name@%'`
1174    done
1175    test -z "$verbose" || echo $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${sbindir} ... $ECHO_C"
1176    ${SH_RMDIR} ${DESTDIR}${sbindir} >/dev/null 2>&1
1177    if test x$? = x0; then
1178        test -z "$verbose" || echo "${ECHO_T}done"
1179    else
1180        test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1181    fi
1182    exit 0
1183fi
1184
1185if test x"${act}" = xuman
1186then
1187    test -z "$verbose" || echo "  rm -f ${DESTDIR}${mandir}/man8/@install_name@.8"
1188    rm -f ${DESTDIR}${mandir}/man8/@install_name@.8
1189    test -z "$verbose" || echo "  rm -f ${DESTDIR}${mandir}/man5/@install_name@rc.5"
1190    rm -f ${DESTDIR}${mandir}/man5/@install_name@rc.5
1191
1192    OLD_IFS=${IFS}
1193    IFS=':'; export IFS
1194    for ff in ${MANPATH}; do
1195      if test x"$ff/man8" = x"${DESTDIR}${mandir}/man8"; then
1196        echo "  man directory ${DESTDIR}${mandir} is in your MANPATH"
1197        echo "  -- will not try to remove"
1198        IFS=${OLD_IFS}; export IFS
1199        exit 0
1200      fi
1201    done
1202    IFS=${OLD_IFS}; export IFS
1203
1204    test -z "$verbose" || echo  $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${mandir}/man8 ... $ECHO_C"
1205    ${SH_RMDIR} ${DESTDIR}${mandir}/man8 >/dev/null 2>&1
1206    if test x$? = x0; then
1207        test -z "$verbose" || echo "${ECHO_T}done"
1208    else
1209        test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1210    fi
1211
1212    test -z "$verbose" || echo  $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${mandir}/man5 ... $ECHO_C"
1213    ${SH_RMDIR} ${DESTDIR}${mandir}/man5 >/dev/null 2>&1
1214    if test x$? = x0; then
1215        test -z "$verbose" || echo "${ECHO_T}done"
1216    else
1217        test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1218    fi
1219
1220    test -z "$verbose" || echo  $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${mandir} ... $ECHO_C"
1221    ${SH_RMDIR} ${DESTDIR}${mandir} >/dev/null 2>&1
1222    if test x$? = x0; then
1223        test -z "$verbose" || echo "${ECHO_T}done"
1224    else
1225        test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1226    fi
1227
1228    exit 0
1229fi
1230
1231if test x"${act}" = xudata
1232then
1233        test -z "$verbose" || echo "  rm -f ${DESTDIR}`echo ${mydatafile}|sed s%REQ_FROM_SERVER%%`"
1234        rm -f ${DESTDIR}`echo ${mydatafile}|sed s%REQ_FROM_SERVER%%`
1235        test -z "$verbose" || echo "  rm -f ${DESTDIR}${pid_file}"
1236        rm -f ${DESTDIR}${pid_file}
1237        test -z "$verbose" || echo "  rm -f ${DESTDIR}${mylogfile}"
1238        rm -f ${DESTDIR}${mylogfile}
1239        test -z "$verbose" || echo "  rm -f ${DESTDIR}${myhtmlfile}"
1240        rm -f ${DESTDIR}${myhtmlfile}
1241
1242        test -z "$verbose" || echo $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${pid_dir} ... $ECHO_C"
1243        ${SH_RMDIR} ${DESTDIR}${pid_dir} >/dev/null 2>&1
1244        if test x$? = x0; then
1245            test -z "$verbose" || echo "${ECHO_T}done"
1246        else
1247            test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1248        fi
1249
1250        test -z "$verbose" || echo $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${mylogdir} ... $ECHO_C"
1251        ${SH_RMDIR} ${DESTDIR}${mylogdir} >/dev/null 2>&1
1252        if test x$? = x0; then
1253            test -z "$verbose" || echo "${ECHO_T}done"
1254        else
1255            test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1256        fi
1257
1258        test -z "$verbose" || echo $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${data_root} ... $ECHO_C"
1259        ${SH_RMDIR} ${DESTDIR}${data_root} >/dev/null 2>&1
1260        if test x$? = x0; then
1261            test -z "$verbose" || echo "${ECHO_T}done"
1262        else
1263            test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1264        fi
1265
1266       
1267        if test -d /etc/logrotate.d; then
1268            if test -f /etc/logrotate.d/@install_name@; then
1269                test -z "$verbose" || echo $ECHO_N "  rm -f /etc/logrotate.d/@install_name@ ... $ECHO_C"
1270                rm -f /etc/logrotate.d/@install_name@;
1271                if test x$? = x0; then
1272                     test -z "$verbose" || echo "${ECHO_T}done"
1273                else
1274                    test -z "$verbose" || echo "${ECHO_T}failed"
1275                fi
1276            fi
1277        fi
1278
1279        if test x"$force" = "xyes"
1280        then
1281            test -z "$verbose" || echo "  rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`"
1282            rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`
1283        elif test x"$purge" = "xyes"
1284        then
1285            test -z "$verbose" || echo "  rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`"
1286            rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`
1287        elif test x"$express" = x; then
1288            echo "  Do you want to remove the configuration file [y/n] ?"
1289            while [ "1" = "1" ]; do
1290                read ff
1291                case "$ff" in
1292                Y* | y* )
1293                   test -z "$verbose" || echo "  rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`"
1294                   rm -f ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%`
1295                   break
1296                   ;;
1297                N* | n* )
1298                    test -z "$verbose" || echo "  ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%` NOT removed"
1299                    break
1300                    ;;
1301                *)
1302                    echo "  Enter y[es] or n[o]"
1303                    ;;
1304                esac
1305            done
1306        else
1307            test -z "$verbose" || echo "  NOT REMOVED: config file ${DESTDIR}`echo ${configfile}|sed s%REQ_FROM_SERVER%%` (use --force to remove)"
1308        fi
1309
1310        test -z "$verbose" || echo  $ECHO_N "  ${SH_RMDIR} ${DESTDIR}${sysconfdir} ... $ECHO_C"
1311        ${SH_RMDIR} ${DESTDIR}${sysconfdir} >/dev/null 2>&1
1312        if test x$? = x0; then
1313            test -z "$verbose" || echo "${ECHO_T}done"
1314        else
1315            test -z "$verbose" || echo "${ECHO_T}failed (not empty ?)"
1316        fi
1317
1318        exit 0
1319fi
1320
1321if test x"${act}" = xdata
1322then
1323    STEGIN=@stegin_prg@
1324    CONVERT=
1325
1326    GPGPATH=@mygpg@
1327    TARGETKEYID=@mykeyid@
1328    KEYTAG=@mykeytag@
1329
1330    NTEST=@mytclient@
1331
1332    if test x"${NTEST}" = "x-DSH_WITH_SERVER"
1333    then
1334        RCFILE=yulerc
1335        if test -f $RCFILE
1336        then
1337            :
1338        else
1339            if test -f yulerc.template
1340            then
1341                cp yulerc.template $RCFILE
1342            fi
1343        fi
1344    else
1345        RCFILE=samhainrc
1346        IN_RCFILE=samhainrc.@selectconfig@
1347
1348        if test -f ${RCFILE}
1349        then
1350            :
1351        else
1352            if test -f ${IN_RCFILE}
1353            then
1354                test -z "$verbose" || echo "  cp ${IN_RCFILE} ${RCFILE}"
1355                cp ${IN_RCFILE} ${RCFILE}
1356            fi
1357        fi
1358    fi
1359
1360    if test -f $RCFILE
1361    then
1362        :
1363    else
1364        echo "${0}: cannot find configuration file $RCFILE"
1365        exit 1
1366    fi
1367
1368    if test x"${GPGPATH}" != x
1369    then
1370        echo
1371        echo "You need to sign the config file now"
1372        echo
1373        test -z "$verbose" || echo "  ${GPGPATH} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE"
1374        if test x"${NTEST}" = "x-DSH_WITH_SERVER"
1375        then
1376            myident_uid=`(cat /etc/passwd; ypcat passwd) 2>/dev/null |\
1377                  grep "^${samhain}:" | awk -F: '{ print $3; }'`
1378            if test x"${myident_uid}" != x
1379            then
1380                DOT_GNUPG=`eval echo ~${samhain}/.gnupg`
1381                test -z "$verbose" || echo "  using --homedir ${DOT_GNUPG}"
1382                ${GPGPATH} --homedir ${DOT_GNUPG} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE
1383            else
1384                ${GPGPATH} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE
1385            fi
1386        else
1387            ${GPGPATH} -a ${KEYTAG} ${TARGETKEYID} --clearsign $RCFILE
1388        fi
1389
1390        if test -f ${RCFILE}.asc
1391        then
1392            test -z "$verbose" || echo "  mv -f ${RCFILE}.asc samhainrc.pre"
1393            mv -f ${RCFILE}.asc samhainrc.pre
1394        else
1395            echo "**********************************************************"
1396            echo
1397            echo "${0}: ERROR: cannot find signed file ${RCFILE}.asc"
1398            echo
1399            echo "   --- You need to sign the configuration file ---"
1400            echo
1401            echo "**********************************************************"
1402            cp ${RCFILE} samhainrc.pre
1403        fi
1404    else
1405        test -z "$verbose" || echo "  cp $RCFILE samhainrc.pre"
1406        cp $RCFILE samhainrc.pre
1407    fi
1408
1409    if test x"${STEGIN}" != x
1410    then
1411        test -z "$verbose" || echo "  searching for ImageMagick convert utility"
1412        OPATH=${PATH}
1413        PATH="/usr/local/bin:/usr/X11R6/bin:"${PATH}
1414
1415        OIFS=${IFS}
1416        IFS=":"
1417
1418        for dd in ${PATH}
1419        do
1420            if test -f "${dd}/convert"
1421            then
1422                "${dd}/convert" --help | grep  ImageMagick >/dev/null 2>&1 && \
1423                CONVERT="${dd}/convert"
1424                test -z "$verbose" || echo "  CONVERT=${dd}/convert"
1425            fi
1426        done
1427
1428        IFS=${OIFS}
1429
1430        if test -f stealth_template.ps
1431        then
1432            PATH=${OPATH}
1433        else
1434            if test x"${CONVERT}" = x
1435            then
1436                echo "${0}: cannot find ImageMagick convert utility in PATH=${PATH}"
1437                exit 1
1438            fi
1439
1440            PATH=${OPATH}
1441
1442            if test -f stealth_template.jpg
1443            then
1444                test -z "$verbose" || echo "  ${CONVERT} +compress stealth_template.jpg stealth_template.ps"
1445                "${CONVERT}" +compress stealth_template.jpg stealth_template.ps
1446            else
1447                echo "${0}: cannot find file stealth_template.jpg"
1448                exit 1
1449            fi
1450        fi
1451
1452
1453        if test -f stealth_template.ps
1454        then
1455            :
1456        else
1457            echo "${0}: file stealth_template.ps not created"
1458            exit 1
1459        fi
1460
1461        if test -f samhainrc.pre
1462        then
1463            :
1464        else
1465            echo "${0}: cannot find configuration file samhainrc.pre"
1466            exit 1
1467        fi
1468
1469        if test -f ./samhain_stealth
1470        then
1471            :
1472        else
1473            echo "${0}: cannot find utility ./samhain_stealth"
1474            exit 1
1475        fi
1476
1477        ccount=`./samhain_stealth -o samhainrc.pre 2>&1 | awk '{ print $1 }'`
1478        mcount=`./samhain_stealth -i stealth_template.ps 2>&1 | awk '{ print $7 }'`
1479
1480        if test ${mcount} -lt ${ccount}
1481        then
1482            echo "${0}: configuration file samhainrc too big,"
1483            echo "      need a larger image stealth_template.jpg to store"
1484            exit 1
1485        fi
1486       
1487        test -z "$verbose" || echo "  ./samhain_stealth -s stealth_template.ps samhainrc.pre"
1488        ./samhain_stealth -s stealth_template.ps samhainrc.pre
1489
1490        test -z "$verbose" || echo "  mv -f stealth_template.ps samhainrc.install"
1491        mv -f stealth_template.ps samhainrc.install
1492    else
1493        test -z "$verbose" || echo "  mv -f samhainrc.pre samhainrc.install"
1494        mv -f samhainrc.pre samhainrc.install
1495    fi
1496
1497    tmp_configfile=`echo ${configfile} | sed 's%^REQ_FROM_SERVER%%'`
1498
1499    if test x"${tmp_configfile}" = x
1500    then
1501        echo "  No local configfile to install."
1502        exit 0
1503    fi
1504
1505    if test -f ${DESTDIR}${tmp_configfile} && test x"$force" = x
1506    then
1507        echo "  ${DESTDIR}${tmp_configfile} exists ... not overwritten (or use --force)"
1508    else
1509        test -z "$verbose" || echo "  ${INSTALL_DATA} samhainrc.install ${DESTDIR}${tmp_configfile}"
1510        ${INSTALL_DATA} samhainrc.install ${DESTDIR}${tmp_configfile}
1511    fi
1512
1513    if test x"${NTEST}" = "x-DSH_WITH_SERVER"
1514    then
1515       test -z "$verbose" || echo "  chown @myident@ ${DESTDIR}${tmp_configfile}"
1516       chown @myident@ ${DESTDIR}${tmp_configfile}
1517    fi
1518
1519    #
1520    # Changed: don't check if DESTDIR is set, as these are not
1521    #          the true install locations anyway
1522    #
1523    if test -f trustfile && test x"${DESTDIR}" = x
1524    then
1525        test -z "$verbose" || echo "  checking whether paths are trustworthy"
1526        RESULT=`./trustfile ${DESTDIR}${tmp_configfile} 2>&1`
1527        if test x$? != x0
1528        then
1529            echo
1530            ./trustfile ${DESTDIR}${tmp_configfile}
1531            echo
1532        else
1533            test -z "$verbose" || echo "  configuration file ${DESTDIR}${tmp_configfile} ... OK"
1534        fi
1535
1536        RESULT=`./trustfile ${DESTDIR}${pid_dir} >/dev/null 2>&1`
1537        if test x$? != x0
1538        then
1539            echo
1540            ./trustfile ${DESTDIR}${pid_dir}
1541            echo
1542        else
1543            test -z "$verbose" || echo "  state directory ${DESTDIR}${pid_dir} ... OK"
1544        fi
1545
1546        RESULT=`./trustfile ${DESTDIR}${mylogdir} >/dev/null 2>&1`
1547        if test x$? != x0
1548        then
1549            echo
1550            ./trustfile ${DESTDIR}${mylogdir}
1551            echo
1552        else
1553            test -z "$verbose" || echo "  state directory ${DESTDIR}${mylogdir} ... OK"
1554        fi
1555
1556        RESULT=`./trustfile ${DESTDIR}${data_root} >/dev/null 2>&1`
1557        if test x$? != x0
1558        then
1559            echo
1560            ./trustfile ${DESTDIR}${data_root}
1561            echo
1562        else
1563            test -z "$verbose" || echo "  data directory ${DESTDIR}${data_root} ... OK"
1564        fi
1565    fi
1566    # install_data
1567    exit 0
1568fi
1569
1570       
Note: See TracBrowser for help on using the repository browser.