source: branches/stable/mindi/install.sh @ 1326

Last change on this file since 1326 was 1280, checked in by Bruno Cornec, 13 years ago

First try to add HP Hardware support in mindi
Requires perl and dmidecode

  • Property svn:keywords set to Id
File size: 5.3 KB
Line 
1#!/bin/bash
2#
3# $Id: install.sh 1280 2007-03-28 14:21:54Z bruno $
4#
5
6if [ ! -f "mindi" ] ; then
7    echo "Please 'cd' to the directory you have just untarred." >> /dev/stderr
8    exit 1
9fi
10
11if [ "_$PREFIX" != "_" ]; then
12    local=${HEAD}$PREFIX
13    sublocal=$PREFIX
14    if [ "_$CONFDIR" != "_" ]; then
15        conf=${HEAD}$CONFDIR/mindi
16        subconf=$CONFDIR/mindi
17    else
18        echo "CONFDIR should be defined if PREFIX is defined"
19        exit -1
20    fi
21else
22    local=/usr/local
23    sublocal=$local
24    if [ -f /usr/sbin/mindi ]; then
25        echo "WARNING: /usr/sbin/mindi exists. You should probably remove the mindi package !"
26    fi
27    conf=$local/etc/mindi
28    subconf=$conf
29    echo $PATH | grep $local/sbin > /dev/null || echo "Warning - your PATH environmental variable is BROKEN. Please add $local/sbin to your PATH."
30fi
31
32if uname -a | grep Knoppix > /dev/null || [ -e "/ramdisk/usr" ] ; then
33    local=/ramdisk/usr
34    sublocal=$local
35    conf=/ramdisk/etc
36    subconf=$conf
37    export PATH=/ramdisk/usr/sbin:/ramdisk/usr/bin:/$PATH
38fi
39
40MINDIVER=`cat VERSION`
41MINDIREV=`cat REVISION`
42echo "mindi ${MINDIVER}-r${MINDIREV} will be installed under $local"
43
44if [ _"$MANDIR" == _"" ]; then
45    MANDIR=$local/share/man/man8
46else
47    MANDIR=${HEAD}$MANDIR/man8
48fi
49if [ _"$DOCDIR" == _"" ]; then
50    DOCDIR=$local/share/doc/mindi-$MINDIVER
51else
52    DOCDIR=${HEAD}$DOCDIR/mindi-$MINDIVER
53fi
54if [ _"$LIBDIR" == _"" ]; then
55    ARCH=`/bin/arch`
56    echo $ARCH | grep -E '^i[0-9]86$' &> /dev/null && ARCH=i386 && locallib=$local/lib
57    echo $ARCH | grep -E '^x86_64$' &> /dev/null && locallib=$local/lib64
58    echo $ARCH | grep -E '^ia64$' &> /dev/null && locallib=$local/lib
59    sublocallib="$locallib/mindi"
60else
61    locallib=${HEAD}$LIBDIR
62    sublocallib="$LIBDIR/mindi"
63fi
64
65echo "Creating target directories ..."
66install -m 755 -d $conf $conf/deplist.d $locallib/mindi $MANDIR $local/sbin $DOCDIR
67
68echo "Copying files ..."
69install -m 644 isolinux.cfg msg-txt sys-disk.raw.gz isolinux-H.cfg syslinux.cfg syslinux-H.cfg dev.tgz $locallib/mindi
70install -m 644 distributions/conf/deplist.d/* $conf/deplist.d
71install -m 444 distributions/conf/mindi.conf.dist $conf
72#
73# Compute mindi.conf.dist (cecked by mindi) to avoid changes here
74# Modify the checksum file so that path is correct at execution time
75#
76md5sum $conf/mindi.conf.dist > $conf/mindi.conf.dist.md5
77perl -pi -e "s~$conf~$subconf~" $conf/mindi.conf.dist.md5
78#
79# Example of mindi.conf
80#
81if [ ! -e $conf/mindi.conf ]; then
82    cat > $conf/mindi.conf << EOF
83#
84# Configuration file for mindi
85#
86# By default values are taken from $conf/mindi.conf.dist
87# You can override them here
88#
89# e.g.
90#
91#mindi_tmp_dir="/var/tmp"
92#
93EOF
94    chmod 644 $conf/mindi.conf
95fi
96
97#
98# Example of deplist.txt
99#
100if [ ! -e $conf/deplist.txt ]; then
101    cat > $conf/deplist.txt << EOF
102# mindi additional dependency list
103#
104# NB:
105# You have to give an absolute path
106# If you want to add something, just add it on its own line. K.I.S.S.
107
108EOF
109    chmod 644 $conf/deplist.txt
110fi
111
112cp -af rootfs aux-tools $locallib/mindi
113if [ -e FindDistroFailsafe ]; then
114    cp -af FindDistroFailsafe $locallib/mindi
115fi
116chmod 755 $locallib/mindi/rootfs/sbin/*
117chmod 755 $locallib/mindi/aux-tools/sbin/*
118
119# Substirute variables for init
120perl -pi -e "s~^MINDI_VER=VVV~MINDI_VER=$MINDIVER~ ; s~^MINDI_REV=RRR~MINDI_REV=$MINDIREV~" $locallib/mindi/rootfs/sbin/init
121
122# Substitute variables for mindi
123sed -e "s~^MINDI_PREFIX=XXX~MINDI_PREFIX=$sublocal~" -e "s~^MINDI_CONF=YYY~MINDI_CONF=$subconf~" -e "s~^MINDI_VER=VVV~MINDI_VER=$MINDIVER~" -e "s~^MINDI_REV=RRR~MINDI_REV=$MINDIREV~" -e "s~^MINDI_LIB=LLL~MINDI_LIB=$sublocallib~" mindi > $local/sbin/mindi
124sed -e "s~^my \$mindiconf=YYY~my \$mindiconf=$subconf;~" mindi-bkphw > $local/sbin/mindi-bkphw
125chmod 755 $local/sbin/mindi $local/sbin/mindi-bkphw
126install -m 755 parted2fdisk.pl $local/sbin
127install -m 755 analyze-my-lvm $locallib/mindi
128
129install -m 644 mindi.8 $MANDIR
130install -m 644 ChangeLog COPYING README README.busybox README.ia64 README.pxe TODO INSTALL svn.log $DOCDIR
131
132if [ "_$PREFIX" = "_" ] && [ ! -f $locallib/mindi/rootfs/bin/busybox ]; then
133        echo "WARNING: no busybox found, mindi will not work on this arch ($ARCH)"
134fi
135
136# Managing parted2fdisk
137if [ "$ARCH" = "ia64" ] ; then
138    (cd $local/sbin && ln -sf parted2fdisk.pl parted2fdisk)
139    make -f Makefile.parted2fdisk DEST=$locallib/mindi install
140    if [ -f $locallib/mindi/rootfs/sbin/parted2fdisk-$ARCH ]; then
141        echo "Installing parted2fdisk ..."
142        install -s -m 755 $locallib/mindi/rootfs/sbin/parted2fdisk-$ARCH $locallib/mindi/rootfs/sbin/parted2fdisk
143        install -s -m 755 $locallib/mindi/rootfs/sbin/parted2fdisk-$ARCH $local/sbin/parted2fdisk
144    else
145        echo "WARNING: no parted2fdisk found, mindi will not work on this arch ($ARCH)"
146    fi
147else
148    # FHS requires fdisk under /sbin
149    (cd $local/sbin && ln -sf /sbin/fdisk parted2fdisk)
150    echo "Symlinking fdisk to parted2fdisk"
151    ( cd $locallib/mindi/rootfs/sbin && ln -sf fdisk parted2fdisk)
152fi
153# Remove left parted2fdisk
154rm -f $locallib/mindi/rootfs/sbin/parted2fdisk-*
155
156if [ "$RPMBUILDMINDI" != "true" ]; then
157    chown -R root:root $locallib/mindi $conf $DOCDIR
158    chown root:root $local/sbin/mindi $MANDIR/mindi.8 $locallib/mindi/analyze-my-lvm $local/sbin/parted2fdisk.pl
159    if [ "$ARCH" = "ia64" ] ; then
160        chown root:root $local/sbin/parted2fdisk
161    fi
162fi
163
164# Special case for SuSE family where doc is put elsewhere in the RPM
165if [ -e /etc/SuSE-release ]; then
166    rm -rf $DOCDIR
167fi
168
169# Special case for Debian family where doc is put elsewhere in the DEB
170if [ -e /etc/debian_version ]; then
171    rm -rf $DOCDIR
172fi
173
174exit 0
Note: See TracBrowser for help on using the repository browser.