aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/libgcrypt/libgcrypt-1.2.2/install-sh
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/libgcrypt/libgcrypt-1.2.2/install-sh')
-rwxr-xr-xlinden/indra/libgcrypt/libgcrypt-1.2.2/install-sh646
1 files changed, 323 insertions, 323 deletions
diff --git a/linden/indra/libgcrypt/libgcrypt-1.2.2/install-sh b/linden/indra/libgcrypt/libgcrypt-1.2.2/install-sh
index 34a84ef..0b65ee8 100755
--- a/linden/indra/libgcrypt/libgcrypt-1.2.2/install-sh
+++ b/linden/indra/libgcrypt/libgcrypt-1.2.2/install-sh
@@ -1,323 +1,323 @@
1#!/bin/sh 1#!/bin/sh
2# install - install a program, script, or datafile 2# install - install a program, script, or datafile
3 3
4scriptversion=2004-10-22.00 4scriptversion=2004-10-22.00
5 5
6# This originates from X11R5 (mit/util/scripts/install.sh), which was 6# This originates from X11R5 (mit/util/scripts/install.sh), which was
7# later released in X11R6 (xc/config/util/install.sh) with the 7# later released in X11R6 (xc/config/util/install.sh) with the
8# following copyright and license. 8# following copyright and license.
9# 9#
10# Copyright (C) 1994 X Consortium 10# Copyright (C) 1994 X Consortium
11# 11#
12# Permission is hereby granted, free of charge, to any person obtaining a copy 12# Permission is hereby granted, free of charge, to any person obtaining a copy
13# of this software and associated documentation files (the "Software"), to 13# of this software and associated documentation files (the "Software"), to
14# deal in the Software without restriction, including without limitation the 14# deal in the Software without restriction, including without limitation the
15# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 15# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16# sell copies of the Software, and to permit persons to whom the Software is 16# sell copies of the Software, and to permit persons to whom the Software is
17# furnished to do so, subject to the following conditions: 17# furnished to do so, subject to the following conditions:
18# 18#
19# The above copyright notice and this permission notice shall be included in 19# The above copyright notice and this permission notice shall be included in
20# all copies or substantial portions of the Software. 20# all copies or substantial portions of the Software.
21# 21#
22# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 25# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- 26# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
27# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 27# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28# 28#
29# Except as contained in this notice, the name of the X Consortium shall not 29# Except as contained in this notice, the name of the X Consortium shall not
30# be used in advertising or otherwise to promote the sale, use or other deal- 30# be used in advertising or otherwise to promote the sale, use or other deal-
31# ings in this Software without prior written authorization from the X Consor- 31# ings in this Software without prior written authorization from the X Consor-
32# tium. 32# tium.
33# 33#
34# 34#
35# FSF changes to this file are in the public domain. 35# FSF changes to this file are in the public domain.
36# 36#
37# Calling this script install-sh is preferred over install.sh, to prevent 37# Calling this script install-sh is preferred over install.sh, to prevent
38# `make' implicit rules from creating a file called install from it 38# `make' implicit rules from creating a file called install from it
39# when there is no Makefile. 39# when there is no Makefile.
40# 40#
41# This script is compatible with the BSD install script, but was written 41# This script is compatible with the BSD install script, but was written
42# from scratch. It can only install one file at a time, a restriction 42# from scratch. It can only install one file at a time, a restriction
43# shared with many OS's install programs. 43# shared with many OS's install programs.
44 44
45# set DOITPROG to echo to test this script 45# set DOITPROG to echo to test this script
46 46
47# Don't use :- since 4.3BSD and earlier shells don't like it. 47# Don't use :- since 4.3BSD and earlier shells don't like it.
48doit="${DOITPROG-}" 48doit="${DOITPROG-}"
49 49
50# put in absolute paths if you don't have them in your path; or use env. vars. 50# put in absolute paths if you don't have them in your path; or use env. vars.
51 51
52mvprog="${MVPROG-mv}" 52mvprog="${MVPROG-mv}"
53cpprog="${CPPROG-cp}" 53cpprog="${CPPROG-cp}"
54chmodprog="${CHMODPROG-chmod}" 54chmodprog="${CHMODPROG-chmod}"
55chownprog="${CHOWNPROG-chown}" 55chownprog="${CHOWNPROG-chown}"
56chgrpprog="${CHGRPPROG-chgrp}" 56chgrpprog="${CHGRPPROG-chgrp}"
57stripprog="${STRIPPROG-strip}" 57stripprog="${STRIPPROG-strip}"
58rmprog="${RMPROG-rm}" 58rmprog="${RMPROG-rm}"
59mkdirprog="${MKDIRPROG-mkdir}" 59mkdirprog="${MKDIRPROG-mkdir}"
60 60
61chmodcmd="$chmodprog 0755" 61chmodcmd="$chmodprog 0755"
62chowncmd= 62chowncmd=
63chgrpcmd= 63chgrpcmd=
64stripcmd= 64stripcmd=
65rmcmd="$rmprog -f" 65rmcmd="$rmprog -f"
66mvcmd="$mvprog" 66mvcmd="$mvprog"
67src= 67src=
68dst= 68dst=
69dir_arg= 69dir_arg=
70dstarg= 70dstarg=
71no_target_directory= 71no_target_directory=
72 72
73usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 73usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
74 or: $0 [OPTION]... SRCFILES... DIRECTORY 74 or: $0 [OPTION]... SRCFILES... DIRECTORY
75 or: $0 [OPTION]... -t DIRECTORY SRCFILES... 75 or: $0 [OPTION]... -t DIRECTORY SRCFILES...
76 or: $0 [OPTION]... -d DIRECTORIES... 76 or: $0 [OPTION]... -d DIRECTORIES...
77 77
78In the 1st form, copy SRCFILE to DSTFILE. 78In the 1st form, copy SRCFILE to DSTFILE.
79In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. 79In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
80In the 4th, create DIRECTORIES. 80In the 4th, create DIRECTORIES.
81 81
82Options: 82Options:
83-c (ignored) 83-c (ignored)
84-d create directories instead of installing files. 84-d create directories instead of installing files.
85-g GROUP $chgrpprog installed files to GROUP. 85-g GROUP $chgrpprog installed files to GROUP.
86-m MODE $chmodprog installed files to MODE. 86-m MODE $chmodprog installed files to MODE.
87-o USER $chownprog installed files to USER. 87-o USER $chownprog installed files to USER.
88-s $stripprog installed files. 88-s $stripprog installed files.
89-t DIRECTORY install into DIRECTORY. 89-t DIRECTORY install into DIRECTORY.
90-T report an error if DSTFILE is a directory. 90-T report an error if DSTFILE is a directory.
91--help display this help and exit. 91--help display this help and exit.
92--version display version info and exit. 92--version display version info and exit.
93 93
94Environment variables override the default commands: 94Environment variables override the default commands:
95 CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG 95 CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
96" 96"
97 97
98while test -n "$1"; do 98while test -n "$1"; do
99 case $1 in 99 case $1 in
100 -c) shift 100 -c) shift
101 continue;; 101 continue;;
102 102
103 -d) dir_arg=true 103 -d) dir_arg=true
104 shift 104 shift
105 continue;; 105 continue;;
106 106
107 -g) chgrpcmd="$chgrpprog $2" 107 -g) chgrpcmd="$chgrpprog $2"
108 shift 108 shift
109 shift 109 shift
110 continue;; 110 continue;;
111 111
112 --help) echo "$usage"; exit 0;; 112 --help) echo "$usage"; exit 0;;
113 113
114 -m) chmodcmd="$chmodprog $2" 114 -m) chmodcmd="$chmodprog $2"
115 shift 115 shift
116 shift 116 shift
117 continue;; 117 continue;;
118 118
119 -o) chowncmd="$chownprog $2" 119 -o) chowncmd="$chownprog $2"
120 shift 120 shift
121 shift 121 shift
122 continue;; 122 continue;;
123 123
124 -s) stripcmd=$stripprog 124 -s) stripcmd=$stripprog
125 shift 125 shift
126 continue;; 126 continue;;
127 127
128 -t) dstarg=$2 128 -t) dstarg=$2
129 shift 129 shift
130 shift 130 shift
131 continue;; 131 continue;;
132 132
133 -T) no_target_directory=true 133 -T) no_target_directory=true
134 shift 134 shift
135 continue;; 135 continue;;
136 136
137 --version) echo "$0 $scriptversion"; exit 0;; 137 --version) echo "$0 $scriptversion"; exit 0;;
138 138
139 *) # When -d is used, all remaining arguments are directories to create. 139 *) # When -d is used, all remaining arguments are directories to create.
140 # When -t is used, the destination is already specified. 140 # When -t is used, the destination is already specified.
141 test -n "$dir_arg$dstarg" && break 141 test -n "$dir_arg$dstarg" && break
142 # Otherwise, the last argument is the destination. Remove it from $@. 142 # Otherwise, the last argument is the destination. Remove it from $@.
143 for arg 143 for arg
144 do 144 do
145 if test -n "$dstarg"; then 145 if test -n "$dstarg"; then
146 # $@ is not empty: it contains at least $arg. 146 # $@ is not empty: it contains at least $arg.
147 set fnord "$@" "$dstarg" 147 set fnord "$@" "$dstarg"
148 shift # fnord 148 shift # fnord
149 fi 149 fi
150 shift # arg 150 shift # arg
151 dstarg=$arg 151 dstarg=$arg
152 done 152 done
153 break;; 153 break;;
154 esac 154 esac
155done 155done
156 156
157if test -z "$1"; then 157if test -z "$1"; then
158 if test -z "$dir_arg"; then 158 if test -z "$dir_arg"; then
159 echo "$0: no input file specified." >&2 159 echo "$0: no input file specified." >&2
160 exit 1 160 exit 1
161 fi 161 fi
162 # It's OK to call `install-sh -d' without argument. 162 # It's OK to call `install-sh -d' without argument.
163 # This can happen when creating conditional directories. 163 # This can happen when creating conditional directories.
164 exit 0 164 exit 0
165fi 165fi
166 166
167for src 167for src
168do 168do
169 # Protect names starting with `-'. 169 # Protect names starting with `-'.
170 case $src in 170 case $src in
171 -*) src=./$src ;; 171 -*) src=./$src ;;
172 esac 172 esac
173 173
174 if test -n "$dir_arg"; then 174 if test -n "$dir_arg"; then
175 dst=$src 175 dst=$src
176 src= 176 src=
177 177
178 if test -d "$dst"; then 178 if test -d "$dst"; then
179 mkdircmd=: 179 mkdircmd=:
180 chmodcmd= 180 chmodcmd=
181 else 181 else
182 mkdircmd=$mkdirprog 182 mkdircmd=$mkdirprog
183 fi 183 fi
184 else 184 else
185 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command 185 # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
186 # might cause directories to be created, which would be especially bad 186 # might cause directories to be created, which would be especially bad
187 # if $src (and thus $dsttmp) contains '*'. 187 # if $src (and thus $dsttmp) contains '*'.
188 if test ! -f "$src" && test ! -d "$src"; then 188 if test ! -f "$src" && test ! -d "$src"; then
189 echo "$0: $src does not exist." >&2 189 echo "$0: $src does not exist." >&2
190 exit 1 190 exit 1
191 fi 191 fi
192 192
193 if test -z "$dstarg"; then 193 if test -z "$dstarg"; then
194 echo "$0: no destination specified." >&2 194 echo "$0: no destination specified." >&2
195 exit 1 195 exit 1
196 fi 196 fi
197 197
198 dst=$dstarg 198 dst=$dstarg
199 # Protect names starting with `-'. 199 # Protect names starting with `-'.
200 case $dst in 200 case $dst in
201 -*) dst=./$dst ;; 201 -*) dst=./$dst ;;
202 esac 202 esac
203 203
204 # If destination is a directory, append the input filename; won't work 204 # If destination is a directory, append the input filename; won't work
205 # if double slashes aren't ignored. 205 # if double slashes aren't ignored.
206 if test -d "$dst"; then 206 if test -d "$dst"; then
207 if test -n "$no_target_directory"; then 207 if test -n "$no_target_directory"; then
208 echo "$0: $dstarg: Is a directory" >&2 208 echo "$0: $dstarg: Is a directory" >&2
209 exit 1 209 exit 1
210 fi 210 fi
211 dst=$dst/`basename "$src"` 211 dst=$dst/`basename "$src"`
212 fi 212 fi
213 fi 213 fi
214 214
215 # This sed command emulates the dirname command. 215 # This sed command emulates the dirname command.
216 dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` 216 dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
217 217
218 # Make sure that the destination directory exists. 218 # Make sure that the destination directory exists.
219 219
220 # Skip lots of stat calls in the usual case. 220 # Skip lots of stat calls in the usual case.
221 if test ! -d "$dstdir"; then 221 if test ! -d "$dstdir"; then
222 defaultIFS=' 222 defaultIFS='
223 ' 223 '
224 IFS="${IFS-$defaultIFS}" 224 IFS="${IFS-$defaultIFS}"
225 225
226 oIFS=$IFS 226 oIFS=$IFS
227 # Some sh's can't handle IFS=/ for some reason. 227 # Some sh's can't handle IFS=/ for some reason.
228 IFS='%' 228 IFS='%'
229 set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` 229 set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
230 shift 230 shift
231 IFS=$oIFS 231 IFS=$oIFS
232 232
233 pathcomp= 233 pathcomp=
234 234
235 while test $# -ne 0 ; do 235 while test $# -ne 0 ; do
236 pathcomp=$pathcomp$1 236 pathcomp=$pathcomp$1
237 shift 237 shift
238 if test ! -d "$pathcomp"; then 238 if test ! -d "$pathcomp"; then
239 $mkdirprog "$pathcomp" 239 $mkdirprog "$pathcomp"
240 # mkdir can fail with a `File exist' error in case several 240 # mkdir can fail with a `File exist' error in case several
241 # install-sh are creating the directory concurrently. This 241 # install-sh are creating the directory concurrently. This
242 # is OK. 242 # is OK.
243 test -d "$pathcomp" || exit 243 test -d "$pathcomp" || exit
244 fi 244 fi
245 pathcomp=$pathcomp/ 245 pathcomp=$pathcomp/
246 done 246 done
247 fi 247 fi
248 248
249 if test -n "$dir_arg"; then 249 if test -n "$dir_arg"; then
250 $doit $mkdircmd "$dst" \ 250 $doit $mkdircmd "$dst" \
251 && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ 251 && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
252 && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ 252 && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
253 && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ 253 && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
254 && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } 254 && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
255 255
256 else 256 else
257 dstfile=`basename "$dst"` 257 dstfile=`basename "$dst"`
258 258
259 # Make a couple of temp file names in the proper directory. 259 # Make a couple of temp file names in the proper directory.
260 dsttmp=$dstdir/_inst.$$_ 260 dsttmp=$dstdir/_inst.$$_
261 rmtmp=$dstdir/_rm.$$_ 261 rmtmp=$dstdir/_rm.$$_
262 262
263 # Trap to clean up those temp files at exit. 263 # Trap to clean up those temp files at exit.
264 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 264 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
265 trap '(exit $?); exit' 1 2 13 15 265 trap '(exit $?); exit' 1 2 13 15
266 266
267 # Copy the file name to the temp name. 267 # Copy the file name to the temp name.
268 $doit $cpprog "$src" "$dsttmp" && 268 $doit $cpprog "$src" "$dsttmp" &&
269 269
270 # and set any options; do chmod last to preserve setuid bits. 270 # and set any options; do chmod last to preserve setuid bits.
271 # 271 #
272 # If any of these fail, we abort the whole thing. If we want to 272 # If any of these fail, we abort the whole thing. If we want to
273 # ignore errors from any of these, just make sure not to ignore 273 # ignore errors from any of these, just make sure not to ignore
274 # errors from the above "$doit $cpprog $src $dsttmp" command. 274 # errors from the above "$doit $cpprog $src $dsttmp" command.
275 # 275 #
276 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ 276 { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
277 && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ 277 && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
278 && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ 278 && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
279 && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && 279 && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
280 280
281 # Now rename the file to the real destination. 281 # Now rename the file to the real destination.
282 { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ 282 { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
283 || { 283 || {
284 # The rename failed, perhaps because mv can't rename something else 284 # The rename failed, perhaps because mv can't rename something else
285 # to itself, or perhaps because mv is so ancient that it does not 285 # to itself, or perhaps because mv is so ancient that it does not
286 # support -f. 286 # support -f.
287 287
288 # Now remove or move aside any old file at destination location. 288 # Now remove or move aside any old file at destination location.
289 # We try this two ways since rm can't unlink itself on some 289 # We try this two ways since rm can't unlink itself on some
290 # systems and the destination file might be busy for other 290 # systems and the destination file might be busy for other
291 # reasons. In this case, the final cleanup might fail but the new 291 # reasons. In this case, the final cleanup might fail but the new
292 # file should still install successfully. 292 # file should still install successfully.
293 { 293 {
294 if test -f "$dstdir/$dstfile"; then 294 if test -f "$dstdir/$dstfile"; then
295 $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ 295 $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
296 || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ 296 || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
297 || { 297 || {
298 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 298 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
299 (exit 1); exit 299 (exit 1); exit
300 } 300 }
301 else 301 else
302 : 302 :
303 fi 303 fi
304 } && 304 } &&
305 305
306 # Now rename the file to the real destination. 306 # Now rename the file to the real destination.
307 $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" 307 $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
308 } 308 }
309 } 309 }
310 fi || { (exit 1); exit; } 310 fi || { (exit 1); exit; }
311done 311done
312 312
313# The final little trick to "correctly" pass the exit status to the exit trap. 313# The final little trick to "correctly" pass the exit status to the exit trap.
314{ 314{
315 (exit 0); exit 315 (exit 0); exit
316} 316}
317 317
318# Local variables: 318# Local variables:
319# eval: (add-hook 'write-file-hooks 'time-stamp) 319# eval: (add-hook 'write-file-hooks 'time-stamp)
320# time-stamp-start: "scriptversion=" 320# time-stamp-start: "scriptversion="
321# time-stamp-format: "%:y-%02m-%02d.%02H" 321# time-stamp-format: "%:y-%02m-%02d.%02H"
322# time-stamp-end: "$" 322# time-stamp-end: "$"
323# End: 323# End: