Merge from vendor branch TNF:
[pkgsrcv2.git] / emulators / compat_netbsd / INSTALL.a.out
1 # $NetBSD: INSTALL,v 1.7 2007/07/30 14:42:43 jlam Exp $
2
3 # Generate a +ROOT_ACTIONS script that runs certain actions that require
4 # superuser privileges.
5 #
6 case "${STAGE},$1" in
7 UNPACK,|UNPACK,+ROOT_ACTIONS)
8         ${CAT} > ./+ROOT_ACTIONS << 'EOF'
9 #!@SH@
10 #
11 # +ROOT_ACTIONS - run actions requiring superuser privileges
12 #
13 # Usage: ./+ROOT_ACTIONS ADD|REMOVE [metadatadir]
14 #
15 # This script runs certain actions that require superuser privileges.
16 # If such privileges are not available, then simply output a message
17 # asking the user to run this script with the appropriate elevated
18 # privileges.
19 #
20
21 CAT="@CAT@"
22 CHMOD="@CHMOD@"
23 CP="@CP@"
24 ECHO="@ECHO@"
25 GREP="@GREP@"
26 ID="@ID@"
27 PWD_CMD="@PWD_CMD@"
28 RM="@RM@"
29 TEST="@TEST@"
30 TOUCH="@TOUCH@"
31
32 SELF=$0
33 ACTION=$1
34
35 CURDIR=`${PWD_CMD}`
36 PKG_METADATA_DIR="${2-${CURDIR}}"
37 : ${PKGNAME=${PKG_METADATA_DIR##*/}}
38 : ${PKG_PREFIX=@PREFIX@}
39
40 EMULDIR="${PKG_PREFIX}/@EMULSUBDIR@"
41 OPSYS_EMULDIR="@OPSYS_EMULDIR@"
42
43 ROOT_ACTIONS_COOKIE="./+ROOT_ACTIONS_done"
44 EUID=`${ID} -u`
45
46 exitcode=0
47 case $ACTION,$EUID in
48 ADD,0)
49         ${ECHO} "" > ${ROOT_ACTIONS_COOKIE}
50         ${CHMOD} g+w ${ROOT_ACTIONS_COOKIE}
51         ${SED} -n "/^\# LDCONFIG: /{s/^\# LDCONFIG: //;p;}" ${SELF} |
52         while read dir; do
53                 case $dir in
54                 /*)     continue ;;
55                 *)      dir="${PKG_PREFIX}/$dir" ;;
56                 esac
57                 ${TEST} -d "$dir" || continue
58
59                 ldsoconf="/etc/ld.so.conf"
60                 ${TEST} -f "$ldsoconf" || continue
61                 if ${GREP} "^$dir" $ldsoconf >/dev/null; then
62                         :
63                 else
64                         ${ECHO} "${PKGNAME}: adding $dir to $ldsoconf"
65                         ${TOUCH} $ldsoconf
66                         ${CP} $ldsoconf $ldsoconf.pkgsrc."$$"
67                         { ${CAT} $ldsoconf.pkgsrc."$$"; ${ECHO} "$dir"; } > $ldsoconf
68                         ${RM} $ldsoconf.pkgsrc."$$"
69                 fi
70         done
71         ${ECHO} "${PKGNAME}: creating a.out runtime link editor directory cache."
72         @LDCONFIG_ADD_CMD@
73         ;;
74
75 ADD,*)
76         if ${TEST} ! -f ${ROOT_ACTIONS_COOKIE}; then
77                 ${CAT} << EOM
78 ==============================================================================
79 Please run the following command with superuser privileges to complete
80 the installation of ${PKGNAME}:
81
82     cd ${PKG_METADATA_DIR} && ${SELF} ADD
83
84 ==============================================================================
85 EOM
86         fi
87         ;;
88
89 REMOVE,0)
90         ${SED} -n "/^\# LDCONFIG: /{s/^\# LDCONFIG: //;p;}" ${SELF} |
91         { while read dir; do
92                 case $dir in
93                 /*)     continue ;;
94                 *)      dir="${PKG_PREFIX}/$dir" ;;
95                 esac
96                 ${TEST} -d "$dir" || continue
97
98                 ldsoconf="/etc/ld.so.conf"
99                 ${TEST} -f "$ldsoconf" || continue
100                 if ${GREP} "^$dir" $ldsoconf >/dev/null; then
101                         case "$printed_header" in
102                         yes)    ;;
103                         *)      printed_header=yes
104                                 ${ECHO} "==========================================================================="
105                                 ${ECHO} "The following lines can be removed from $ldsoconf:"
106                                 ${ECHO} ""
107                                 ;;
108                         esac
109                         ${ECHO} "       $dir"
110                 fi
111         done
112         case "$printed_header" in
113         yes)    ${ECHO} ""
114                 ${ECHO} "==========================================================================="
115                 exit 1
116                 ;;
117         esac; }
118         ${RM} -f ${ROOT_ACTIONS_COOKIE}
119         ;;
120 esac
121 exit $exitcode
122
123 EOF
124         ${CHMOD} +x ./+ROOT_ACTIONS
125         ;;
126 esac
127
128 # LDCONFIG: @EMULSUBDIRSLASH@usr/X11R6/lib
129 # LDCONFIG: @EMULSUBDIRSLASH@usr/lib
130
131 EMULDIR="${PKG_PREFIX}/@EMULSUBDIR@"
132 OPSYS_EMULDIR="@OPSYS_EMULDIR@"
133
134 case "${STAGE}" in
135 POST-INSTALL)
136         # Run any actions that require root privileges.
137         ${TEST} ! -x ./+ROOT_ACTIONS ||
138                 ./+ROOT_ACTIONS ADD ${PKG_METADATA_DIR}
139         ;;
140 esac