Ticket #16792: patch-installer.sh.diff

File patch-installer.sh.diff, 13.6 KB (added by Schamschula (Marius Schamschula), 9 years ago)
  • installer.sh

    old new  
    147147                                exit 1
    148148                                ;;
    149149                        *)
    150                                 test "${PREFIX}" = "/" && PREFIX=""
     150                                test "${DESTDIR}${PREFIX}" = "/" && PREFIX=""
    151151
    152                                 if [ "${RKHINST_ACTION}" = "install" ]; then
    153                                         RKHTMPVAR=`echo "${PATH}" | grep "${PREFIX}/bin"`
    154 
    155                                         if [ -z "${RKHTMPVAR}" ]; then
    156                                                 echo ""
    157                                                 echo "Note: Directory ${PREFIX}/bin is not in your PATH"
    158                                                 echo ""
    159                                         fi
    160                                 fi
     152#                               if [ "${RKHINST_ACTION}" = "install" ]; then
     153#                                       RKHTMPVAR=`echo "${PATH}" | grep "${DESTDIR}${PREFIX}/bin"`
     154#
     155#                                       if [ -z "${RKHTMPVAR}" ]; then
     156#                                               echo ""
     157#                                               echo "Note: Directory ${DESTDIR}${PREFIX}/bin is not in your PATH"
     158#                                               echo ""
     159#                                       fi
     160#                               fi
    161161                                ;;
    162162                        esac
    163163                        ;;
     
    234234
    235235                case "$1" in
    236236                /usr/local|custom_*)
    237                         SYSCONFIGDIR="${PREFIX}/etc"
     237                        SYSCONFIGDIR="${PREFIX}/etc/rkhunter"
    238238                        ;;
    239239                RPM)
    240240                        if [ $RPM_USING_ROOT -eq 1 ]; then
     
    278278                        fi
    279279
    280280                        if [ -z "${LIBDIR}" ]; then
    281                                 if [ "${UNAMEM}" = "x86_64" -o "${UNAMEM}" = "ppc64" ]; then
    282                                         LIBDIR="${PREFIX}/lib64"
    283                                 else
    284                                         LIBDIR="${PREFIX}/lib"
    285                                 fi
     281                                LIBDIR="${PREFIX}/lib"
    286282                        fi
    287283
    288284                        BINDIR="${PREFIX}/bin"
     
    362358                        SHAREDIR="${PREFIX}/share"
    363359                        ;;
    364360                *)
    365                         if [ -d "${PREFIX}/lib64" ]; then
    366                                 LIBDIR="${PREFIX}/lib64"
    367                         else
    368                                 LIBDIR="${PREFIX}/lib"
    369                         fi
     361                        LIBDIR="${PREFIX}/lib"
    370362
    371363                        BINDIR="${PREFIX}/bin"
    372364                        VARDIR="/var"
     
    410402                RKHINST_MAN_DIR="${PREFIX}/man/man8"
    411403        else
    412404                RKHINST_DB_DIR="${VARDIR}/lib/${APPNAME}/db"
    413                 RKHINST_TMP_DIR="${VARDIR}/lib/${APPNAME}/tmp"
    414                 RKHINST_DOC_DIR="${SHAREDIR}/doc/${APPNAME}-${APPVERSION}"
     405                RKHINST_TMP_DIR="/private/tmp"
     406                RKHINST_DOC_DIR="${SHAREDIR}/${APPNAME}-${APPVERSION}"
    415407        fi
    416408
    417409        RKHINST_LANG_DIR="${RKHINST_DB_DIR}/i18n"
     
    635627                ;;
    636628        *)
    637629                # Check PREFIX
    638                 if [ -z "${PREFIX}" ]; then
     630                if [ -z "${DESTDIR}${PREFIX}" ]; then
    639631                        :
    640                 elif [ -d "${PREFIX}" ]; then
    641                         if [ -w "${PREFIX}" ]; then
    642                                 echo " Checking installation directory \"$PREFIX\": it exists and is writable."
     632                elif [ -d "${DESTDIR}${PREFIX}" ]; then
     633                        if [ -w "${DESTDIR}${PREFIX}" ]; then
     634                                echo " Checking installation directory \"${DESTDIR}$PREFIX\": it exists and is writable."
    643635
    644636                                # That's enough for a standalone installation.
    645                                 if [ "${PREFIX}" = "." ]; then
     637                                if [ "${DESTDIR}${PREFIX}" = "." ]; then
    646638                                        chown -R ${RKHINST_OWNER} ./files
    647639
    648640                                        for DIR in `find ./files -type d -name CVS`; do
     
    668660
    669661                                        PREFIX="${PWD}"
    670662
    671                                         echo "LOGFILE=${PREFIX}/rkhunter.log" >>rkhunter.conf
     663                                        echo "LOGFILE=${PREFIX}/var/log/rkhunter/rkhunter.log" >>rkhunter.conf
    672664                                        echo "TMPDIR=$PREFIX" >>rkhunter.conf
    673665                                        echo "DBDIR=$PREFIX" >>rkhunter.conf
    674666                                        echo "SCRIPTDIR=$PREFIX" >>rkhunter.conf
     
    691683                                echo " Checking installation directory \"$PREFIX\": it exists, but it is not writable. Exiting."
    692684                                exit 1
    693685                        fi
    694                 elif [ -e "${PREFIX}" ]; then
     686                elif [ -e "${DESTDIR}${PREFIX}" ]; then
    695687                        echo " Checking installation directory \"$PREFIX\": it is not a directory. Exiting."
    696688                        exit 1
    697689                else
     
    712704
    713705        umask 022
    714706        for DIR in ${RKHDIR_LIST}; do
    715                 if [ -d "${DIR}" ]; then
    716                         if [ -w "${DIR}" ]; then
    717                                 echo "  Directory ${DIR}: exists and is writable."
     707                if [ -d "${DESTDIR}${DIR}" ]; then
     708                        if [ -w "${DESTDIR}${DIR}" ]; then
     709                                echo "  Directory ${DESTDIR}${DIR}: exists and is writable."
    718710                        else
    719                                 echo "  Directory ${DIR}: exists, but it is not writable. Exiting."
     711                                echo "  Directory ${DESTDIR}${DIR}: exists, but it is not writable. Exiting."
    720712                                exit 1
    721713                        fi
    722714                else
    723                         mkdir -p ${DIR} >/dev/null 2>&1
     715                        mkdir -p ${DESTDIR}${DIR} >/dev/null 2>&1
    724716                        ERRCODE=$?
    725717
    726718                        if [ $ERRCODE -eq 0 ]; then
    727                                 echo "  Directory ${DIR}: creating: OK"
     719                                echo "  Directory ${DESTDIR}${DIR}: creating: OK"
    728720                        else
    729                                 echo "  Directory ${DIR}: creating: FAILED: Code $ERRCODE"
     721                                echo "  Directory ${DESTDIR}${DIR}: creating: FAILED: Code $ERRCODE"
    730722                                exit 1
    731723                        fi
    732724                fi
     
    734726        umask 027
    735727
    736728        for DIR in ${RKHINST_DIRS_EXCEP}; do
    737                 if [ -d "${DIR}" ]; then
    738                         if [ -w "${DIR}" ]; then
    739                                 echo "  Directory ${DIR}: exists and is writable."
     729                if [ -d "${DESTDIR}${DIR}" ]; then
     730                        if [ -w "${DESTDIR}${DIR}" ]; then
     731                                echo "  Directory ${DESTDIR}${DIR}: exists and is writable."
    740732                        else
    741                                 echo "  Directory ${DIR}: exists, but it is not writable. Exiting."
     733                                echo "  Directory ${DESTDIR}${DIR}: exists, but it is not writable. Exiting."
    742734                                exit 1
    743735                        fi
    744736                else
    745                         mkdir -p ${DIR} >/dev/null 2>&1
     737                        mkdir -p ${DESTDIR}${DIR} >/dev/null 2>&1
    746738                        ERRCODE=$?
    747739
    748740                        if [ $ERRCODE -eq 0 ]; then
    749                                 echo "  Directory ${DIR}: creating: OK"
     741                                echo "  Directory ${DESTDIR}${DIR}: creating: OK"
    750742                        else
    751                                 echo "  Directory ${DIR}: creating: FAILED: Code $ERRCODE"
     743                                echo "  Directory ${DESTDIR}${DIR}: creating: FAILED: Code $ERRCODE"
    752744                                exit 1
    753745                        fi
    754746                fi
    755747
    756                 case "${DIR}" in
     748                case "${DESTDIR}${DIR}" in
    757749                */${APPNAME}|*/${APPNAME}/*|*/${APPNAME}-${APPVERSION})
    758                         chmod "${RKHINST_MODE_EX}" "${DIR}"
     750                        chmod "${RKHINST_MODE_EX}" "${DESTDIR}${DIR}"
    759751                        ;;
    760752                esac
    761753        done
     
    769761        for FILE in ${RKHINST_SCRIPT_FILES} ${RKHINST_DB_FILES} ${RKHINST_MAN_FILES}; do
    770762                case "${FILE}" in
    771763                *.pl|*.sh)
    772                         cp -f ./files/"${FILE}" "${RKHINST_SCRIPT_DIR}" >/dev/null 2>&1
     764                        cp -f ./files/"${FILE}" "${DESTDIR}${RKHINST_SCRIPT_DIR}" >/dev/null 2>&1
    773765                        ERRCODE=$?
    774766
    775767                        if [ $ERRCODE -eq 0 ]; then
    776768                                echo " Installing ${FILE}: OK"
    777                                 chmod "${RKHINST_MODE_EX}" "${RKHINST_SCRIPT_DIR}/${FILE}"
     769                                chmod "${RKHINST_MODE_EX}" "${DESTDIR}${RKHINST_SCRIPT_DIR}/${FILE}"
    778770                        else
    779771                                echo " Installing ${FILE}: FAILED: Code $ERRCODE"
    780772                                exit 1
    781773                        fi
    782774                        ;;
    783775                *.dat)
    784                         if [ "${FILE}" = "mirrors.dat" -a -f "${RKHINST_DB_DIR}/mirrors.dat" ]; then
    785                                 RKHTMPVAR=`egrep '^(local|remote)=' ${RKHINST_DB_DIR}/mirrors.dat 2>/dev/null`
     776                        if [ "${FILE}" = "mirrors.dat" -a -f "${DESTDIR}${RKHINST_DB_DIR}/mirrors.dat" ]; then
     777                                RKHTMPVAR=`egrep '^(local|remote)=' ${DESTDIR}${RKHINST_DB_DIR}/mirrors.dat 2>/dev/null`
    786778
    787779                                if [ -n "${RKHTMPVAR}" ]; then
    788780                                        echo " Installing ${FILE}: Locally modified - not overwritten"
     
    790782                                fi
    791783                        fi
    792784
    793                         cp -f ./files/"${FILE}" "${RKHINST_DB_DIR}" >/dev/null 2>&1
     785                        cp -f ./files/"${FILE}" "${DESTDIR}${RKHINST_DB_DIR}" >/dev/null 2>&1
    794786                        ERRCODE=$?
    795787
    796788                        if [ $ERRCODE -eq 0 ]; then
    797789                                echo " Installing ${FILE}: OK"
    798                                 chmod "${RKHINST_MODE_RW}" "${RKHINST_DB_DIR}/${FILE}"
     790                                chmod "${RKHINST_MODE_RW}" "${DESTDIR}${RKHINST_DB_DIR}/${FILE}"
    799791                        else
    800792                                echo " Installing ${FILE}: FAILED: Code $ERRCODE"
    801793                                exit 1
    802794                        fi
    803795                        ;;
    804796                *.8)
    805                         cp -f ./files/"${FILE}" "${RKHINST_MAN_DIR}" >/dev/null 2>&1
     797                        cp -f ./files/"${FILE}" "${DESTDIR}${RKHINST_MAN_DIR}" >/dev/null 2>&1
    806798                        ERRCODE=$?
    807799
    808800                        if [ $ERRCODE -eq 0 ]; then
    809801                                echo " Installing ${FILE}: OK"
    810                                 chmod "${RKHINST_MODE_RWR}" "${RKHINST_MAN_DIR}/${FILE}"
     802                                chmod "${RKHINST_MODE_RWR}" "${DESTDIR}${RKHINST_MAN_DIR}/${FILE}"
    811803                        else
    812804                                echo " Installing ${FILE}: FAILED: Code $ERRCODE"
    813805                                exit 1
     
    819811
    820812        # Application documents
    821813        for FILE in ${RKHINST_DOC_FILES}; do
    822                 cp -f ./files/"${FILE}" "${RKHINST_DOC_DIR}" >/dev/null 2>&1
     814                cp -f ./files/"${FILE}" "${DESTDIR}${RKHINST_DOC_DIR}" >/dev/null 2>&1
    823815                ERRCODE=$?
    824816
    825817                if [ $ERRCODE -eq 0 ]; then
    826818                        echo " Installing ${FILE}: OK"
    827                         chmod "${RKHINST_MODE_RWR}" "${RKHINST_DOC_DIR}/${FILE}"
     819                        chmod "${RKHINST_MODE_RWR}" "${DESTDIR}${RKHINST_DOC_DIR}/${FILE}"
    828820                else
    829821                        echo " Installing ${FILE}: FAILED: Code $ERRCODE"
    830822                        exit 1
     
    836828        ERRCODE=0
    837829
    838830        for FILE in `find ./files/i18n -type f`; do
    839                 cp "${FILE}" "${RKHINST_LANG_DIR}" >/dev/null 2>&1
     831                cp "${FILE}" "${DESTDIR}${RKHINST_LANG_DIR}" >/dev/null 2>&1
    840832                ERRCODE=$?
    841833
    842834                test $ERRCODE -ne 0 && break
     
    854846        ERRCODE=0
    855847
    856848        for FILE in `find ./files/signatures -type f`; do
    857                 cp "${FILE}" "${RKHINST_SIG_DIR}" >/dev/null 2>&1
     849                cp "${FILE}" "${DESTDIR}${RKHINST_SIG_DIR}" >/dev/null 2>&1
    858850                ERRCODE=$?
    859851
    860852                test $ERRCODE -ne 0 && break
     
    871863        for FILE in ${RKHINST_BIN_FILES}; do
    872864                case "${RKHINST_LAYOUT}" in
    873865                RPM|DEB|TGZ|TXZ)       
    874                         cp -f ./files/"${FILE}" "${RKHINST_BIN_DIR}/${FILE}" >/dev/null 2>&1
     866                        cp -f ./files/"${FILE}" "${DESTDIR}${RKHINST_BIN_DIR}/${FILE}" >/dev/null 2>&1
    875867                        ERRCODE=$?
    876868
    877869                        if [ $ERRCODE -eq 0 ]; then
    878870                                echo " Installing ${FILE}: OK"
    879                                 chmod "${RKHINST_MODE_EX}" "${RKHINST_BIN_DIR}/${FILE}"
     871                                chmod "${RKHINST_MODE_EX}" "${DESTDIR}${RKHINST_BIN_DIR}/${FILE}"
    880872                        else
    881873                                echo " Installing ${FILE}: FAILED: Code $ERRCODE"
    882874                                exit 1
    883875                        fi
    884876                        ;;
    885877                *)     
    886                         sed -e "s|-f /etc/rkhunter.conf|-f $RKHINST_ETC_DIR/rkhunter.conf|g" -e "s|CONFIGFILE=\"/etc|CONFIGFILE=\"$RKHINST_ETC_DIR|g" ./files/"${FILE}" >"${RKHINST_BIN_DIR}/${FILE}"
     878                        sed -e "s|-f /etc/rkhunter.conf|-f $RKHINST_ETC_DIR/rkhunter.conf|g" -e "s|CONFIGFILE=\"/etc|CONFIGFILE=\"$RKHINST_ETC_DIR|g" ./files/"${FILE}" >"${DESTDIR}${RKHINST_BIN_DIR}/${FILE}"
    887879                        ERRCODE=$?
    888880
    889881                        if [ $ERRCODE -eq 0 ]; then
    890882                                echo " Installing ${FILE}: OK"
    891                                 chmod "${RKHINST_MODE_EX}" "${RKHINST_BIN_DIR}/${FILE}"
     883                                chmod "${RKHINST_MODE_EX}" "${DESTDIR}${RKHINST_BIN_DIR}/${FILE}"
    892884                        else
    893885                                echo " Installing ${FILE}: FAILED: Code $ERRCODE"
    894886                                exit 1
     
    902894        for FILE in ${RKHINST_ETC_FILE}; do
    903895                test $OVERWRITE -eq 1 && rm -f "${RKHINST_ETC_DIR}/${FILE}"
    904896
    905                 if [ -f "${RKHINST_ETC_DIR}/${FILE}" ]; then
     897                if [ -f "${DESTDIR}${RKHINST_ETC_DIR}/${FILE}" ]; then
    906898                        # We need people to make local changes themselves, so
    907899                        # give opportunity and alert. Don't use Perl to get value.
    908900
     
    918910
    919911                        NEWFILE="${FILE}.${RANDVAL}"
    920912
    921                         cp -f "./files/${FILE}" "${RKHINST_ETC_DIR}/${NEWFILE}" >/dev/null 2>&1
     913                        cp -f "./files/${FILE}" "${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}" >/dev/null 2>&1
    922914                        ERRCODE=$?
    923915
    924916                        if [ $ERRCODE -eq 0 ]; then
     
    929921                                exit 1
    930922                        fi
    931923
    932                         echo "" >>"${RKHINST_ETC_DIR}/${NEWFILE}"
     924                        echo "" >>"${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}"
    933925
    934                         test -z "${PREFIX}" && RKHTMPVAR="/" || RKHTMPVAR="${PREFIX}"
     926                        test -z "${DESTDIR}${PREFIX}" && RKHTMPVAR="/" || RKHTMPVAR="${DESTDIR}${PREFIX}"
    935927
    936                         echo "INSTALLDIR=${RKHTMPVAR}" >>"${RKHINST_ETC_DIR}/${NEWFILE}"
    937                         echo "DBDIR=${RKHINST_DB_DIR}" >>"${RKHINST_ETC_DIR}/${NEWFILE}"
    938                         echo "SCRIPTDIR=${RKHINST_SCRIPT_DIR}" >>"${RKHINST_ETC_DIR}/${NEWFILE}"
    939                         echo "TMPDIR=${RKHINST_TMP_DIR}" >>"${RKHINST_ETC_DIR}/${NEWFILE}"
     928                        echo "INSTALLDIR=${RKHTMPVAR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}"
     929                        echo "DBDIR=${RKHINST_DB_DIR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}"
     930                        echo "SCRIPTDIR=${RKHINST_SCRIPT_DIR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}"
     931                        echo "TMPDIR=${RKHINST_TMP_DIR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}"
    940932
    941933                        if [ "$FILE" = "rkhunter.conf" ]; then
    942                                 echo "USER_FILEPROP_FILES_DIRS=${RKHINST_ETC_DIR}/${FILE}" >>"${RKHINST_ETC_DIR}/${NEWFILE}"
    943                                 test -f "${RKHINST_ETC_DIR}/${FILE}.local" && echo "USER_FILEPROP_FILES_DIRS=${RKHINST_ETC_DIR}/${FILE}.local" >>"${RKHINST_ETC_DIR}/${NEWFILE}"
     934                                echo "USER_FILEPROP_FILES_DIRS=${RKHINST_ETC_DIR}/${FILE}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}"
     935                                test -f "${RKHINST_ETC_DIR}/${FILE}.local" && echo "USER_FILEPROP_FILES_DIRS=${RKHINST_ETC_DIR}/${FILE}.local" >>"${DESTDIR}${RKHINST_ETC_DIR}/${NEWFILE}"
    944936                        fi
    945937
    946938                        case "${RKHINST_LAYOUT}" in
     
    955947                                ;;
    956948                        esac
    957949                else
    958                         cp -f "./files/${FILE}" "${RKHINST_ETC_DIR}" >/dev/null 2>&1
     950                        cp -f "./files/${FILE}" "${DESTDIR}${RKHINST_ETC_DIR}" >/dev/null 2>&1
    959951                        ERRCODE=$?
    960952
    961953                        if [ $ERRCODE -eq 0 ]; then
    962954                                echo " Installing ${FILE}: OK"
    963                                 chmod "${RKHINST_MODE_RW}" "${RKHINST_ETC_DIR}/${FILE}"
     955                                chmod "${RKHINST_MODE_RW}" "${DESTDIR}${RKHINST_ETC_DIR}/${FILE}"
    964956                        else
    965957                                echo " Installing ${FILE}: FAILED: Code $ERRCODE"
    966958                                exit 1
    967959                        fi
    968960
    969                         echo "" >>"${RKHINST_ETC_DIR}/${FILE}"
     961                        echo "" >>"${DESTDIR}${RKHINST_ETC_DIR}/${FILE}"
    970962
    971963                        if [ -n "${RPM_BUILD_ROOT}" -a $RPM_USING_ROOT -eq 0 ]; then
    972                                 echo "INSTALLDIR=${PREFIX}" | sed "s|${RPM_BUILD_ROOT}||g" >>"${RKHINST_ETC_DIR}/${FILE}"
     964                                echo "INSTALLDIR=${DESTDIR}${PREFIX}" | sed "s|${RPM_BUILD_ROOT}||g" >>"${RKHINST_ETC_DIR}/${FILE}"
    973965                                echo "DBDIR=${RKHINST_DB_DIR}" | sed "s|${RPM_BUILD_ROOT}||g" >>"${RKHINST_ETC_DIR}/${FILE}"
    974966                                echo "SCRIPTDIR=${RKHINST_SCRIPT_DIR}" | sed "s|${RPM_BUILD_ROOT}||g" >>"${RKHINST_ETC_DIR}/${FILE}"
    975967                                echo "TMPDIR=${RKHINST_TMP_DIR}" | sed "s|${RPM_BUILD_ROOT}||g" >>"${RKHINST_ETC_DIR}/${FILE}"
     
    992984                        else
    993985                                test -z "${PREFIX}" && RKHTMPVAR="/" || RKHTMPVAR="${PREFIX}"
    994986
    995                                 echo "INSTALLDIR=${RKHTMPVAR}" >>"${RKHINST_ETC_DIR}/${FILE}"
    996                                 echo "DBDIR=${RKHINST_DB_DIR}" >>"${RKHINST_ETC_DIR}/${FILE}"
    997                                 echo "SCRIPTDIR=${RKHINST_SCRIPT_DIR}" >>"${RKHINST_ETC_DIR}/${FILE}"
    998                                 echo "TMPDIR=${RKHINST_TMP_DIR}" >>"${RKHINST_ETC_DIR}/${FILE}"
    999                                 echo "USER_FILEPROP_FILES_DIRS=${RKHINST_ETC_DIR}/${FILE}" >>"${RKHINST_ETC_DIR}/${FILE}"
     987                                echo "INSTALLDIR=${RKHTMPVAR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${FILE}"
     988                                echo "DBDIR=${RKHINST_DB_DIR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${FILE}"
     989                                echo "SCRIPTDIR=${RKHINST_SCRIPT_DIR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${FILE}"
     990                                echo "TMPDIR=${RKHINST_TMP_DIR}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${FILE}"
     991                                echo "USER_FILEPROP_FILES_DIRS=${RKHINST_ETC_DIR}/${FILE}" >>"${DESTDIR}${RKHINST_ETC_DIR}/${FILE}"
    1000992                        fi
    1001993                fi
    1002994        done
     
    12741266        -o | --overwrite)
    12751267                OVERWRITE=1
    12761268                ;;
     1269        DESTDIR*)
     1270                DESTDIR=`echo "$1" | awk 'BEGIN {FS="="}; {print $2}'`
     1271                ;;
    12771272        *)
    12781273                echo "Unknown option given: $1"
    12791274                echo ""