~ubuntu-branches/ubuntu/natty/libxcursor/natty

« back to all changes in this revision

Viewing changes to install-sh

  • Committer: Bazaar Package Importer
  • Author(s): Julien Cristau, Julien Cristau, Brice Goglin, Timo Aaltonen
  • Date: 2009-11-25 15:30:10 UTC
  • mfrom: (1.1.4 upstream) (3.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20091125153010-f0v2jy3unfccew94
Tags: 1:1.1.10-1
[ Julien Cristau ]
* Drop the -1 debian revisions from build-depends.
* Bump Standards-Version to 3.7.3.
* Drop the XS- prefix from Vcs-* control fields.
* Remove /usr/X11R6/lib/X11/icons from the cursor path (closes: #557292).
* Kill vim modeline from debian changelog, it makes lintian angry.

[ Brice Goglin ]
* Add README.source, bump Standards-Version to 3.8.2.
* Use updated xsfbs, closes: #538582.
* Move -dbg package to section debug.

[ Timo Aaltonen ]
* New upstream release (closes: #554238).
* Run autoreconf on build. Add build-deps on automake, libtool
  and xutils-dev.
* Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N.
* Bump Standards-Version to 3.8.3.
* Drop pre-dependency on x11-common from libxcursor-dev. This was needed
  for upgrades from sarge.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/sh
2
2
# install - install a program, script, or datafile
3
3
 
4
 
scriptversion=2006-10-14.15
 
4
scriptversion=2006-12-25.00
5
5
 
6
6
# This originates from X11R5 (mit/util/scripts/install.sh), which was
7
7
# later released in X11R6 (xc/config/util/install.sh) with the
48
48
# set DOITPROG to echo to test this script
49
49
 
50
50
# Don't use :- since 4.3BSD and earlier shells don't like it.
51
 
doit="${DOITPROG-}"
 
51
doit=${DOITPROG-}
52
52
if test -z "$doit"; then
53
53
  doit_exec=exec
54
54
else
58
58
# Put in absolute file names if you don't have them in your path;
59
59
# or use environment vars.
60
60
 
61
 
mvprog="${MVPROG-mv}"
62
 
cpprog="${CPPROG-cp}"
63
 
chmodprog="${CHMODPROG-chmod}"
64
 
chownprog="${CHOWNPROG-chown}"
65
 
chgrpprog="${CHGRPPROG-chgrp}"
66
 
stripprog="${STRIPPROG-strip}"
67
 
rmprog="${RMPROG-rm}"
68
 
mkdirprog="${MKDIRPROG-mkdir}"
69
 
 
70
 
posix_glob=
 
61
chgrpprog=${CHGRPPROG-chgrp}
 
62
chmodprog=${CHMODPROG-chmod}
 
63
chownprog=${CHOWNPROG-chown}
 
64
cmpprog=${CMPPROG-cmp}
 
65
cpprog=${CPPROG-cp}
 
66
mkdirprog=${MKDIRPROG-mkdir}
 
67
mvprog=${MVPROG-mv}
 
68
rmprog=${RMPROG-rm}
 
69
stripprog=${STRIPPROG-strip}
 
70
 
 
71
posix_glob='?'
 
72
initialize_posix_glob='
 
73
  test "$posix_glob" != "?" || {
 
74
    if (set -f) 2>/dev/null; then
 
75
      posix_glob=
 
76
    else
 
77
      posix_glob=:
 
78
    fi
 
79
  }
 
80
'
 
81
 
71
82
posix_mkdir=
72
83
 
73
84
# Desired mode of installed file.
74
85
mode=0755
75
86
 
 
87
chgrpcmd=
76
88
chmodcmd=$chmodprog
77
89
chowncmd=
78
 
chgrpcmd=
 
90
mvcmd=$mvprog
 
91
rmcmd="$rmprog -f"
79
92
stripcmd=
80
 
rmcmd="$rmprog -f"
81
 
mvcmd="$mvprog"
 
93
 
82
94
src=
83
95
dst=
84
96
dir_arg=
85
 
dstarg=
 
97
dst_arg=
 
98
 
 
99
copy_on_change=false
86
100
no_target_directory=
87
101
 
88
 
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
 
102
usage="\
 
103
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
89
104
   or: $0 [OPTION]... SRCFILES... DIRECTORY
90
105
   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
91
106
   or: $0 [OPTION]... -d DIRECTORIES...
95
110
In the 4th, create DIRECTORIES.
96
111
 
97
112
Options:
98
 
-c         (ignored)
99
 
-d         create directories instead of installing files.
100
 
-g GROUP   $chgrpprog installed files to GROUP.
101
 
-m MODE    $chmodprog installed files to MODE.
102
 
-o USER    $chownprog installed files to USER.
103
 
-s         $stripprog installed files.
104
 
-t DIRECTORY  install into DIRECTORY.
105
 
-T         report an error if DSTFILE is a directory.
106
 
--help     display this help and exit.
107
 
--version  display version info and exit.
 
113
     --help     display this help and exit.
 
114
     --version  display version info and exit.
 
115
 
 
116
  -c            (ignored)
 
117
  -C            install only if different (preserve the last data modification time)
 
118
  -d            create directories instead of installing files.
 
119
  -g GROUP      $chgrpprog installed files to GROUP.
 
120
  -m MODE       $chmodprog installed files to MODE.
 
121
  -o USER       $chownprog installed files to USER.
 
122
  -s            $stripprog installed files.
 
123
  -t DIRECTORY  install into DIRECTORY.
 
124
  -T            report an error if DSTFILE is a directory.
108
125
 
109
126
Environment variables override the default commands:
110
 
  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
 
127
  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
 
128
  RMPROG STRIPPROG
111
129
"
112
130
 
113
131
while test $# -ne 0; do
114
132
  case $1 in
115
 
    -c) shift
116
 
        continue;;
117
 
 
118
 
    -d) dir_arg=true
119
 
        shift
120
 
        continue;;
 
133
    -c) ;;
 
134
 
 
135
    -C) copy_on_change=true;;
 
136
 
 
137
    -d) dir_arg=true;;
121
138
 
122
139
    -g) chgrpcmd="$chgrpprog $2"
123
 
        shift
124
 
        shift
125
 
        continue;;
 
140
        shift;;
126
141
 
127
142
    --help) echo "$usage"; exit $?;;
128
143
 
129
144
    -m) mode=$2
130
 
        shift
131
 
        shift
132
145
        case $mode in
133
146
          *' '* | *'    '* | *'
134
147
'*        | *'*'* | *'?'* | *'['*)
135
148
            echo "$0: invalid mode: $mode" >&2
136
149
            exit 1;;
137
150
        esac
138
 
        continue;;
 
151
        shift;;
139
152
 
140
153
    -o) chowncmd="$chownprog $2"
141
 
        shift
142
 
        shift
143
 
        continue;;
144
 
 
145
 
    -s) stripcmd=$stripprog
146
 
        shift
147
 
        continue;;
148
 
 
149
 
    -t) dstarg=$2
150
 
        shift
151
 
        shift
152
 
        continue;;
153
 
 
154
 
    -T) no_target_directory=true
155
 
        shift
156
 
        continue;;
 
154
        shift;;
 
155
 
 
156
    -s) stripcmd=$stripprog;;
 
157
 
 
158
    -t) dst_arg=$2
 
159
        shift;;
 
160
 
 
161
    -T) no_target_directory=true;;
157
162
 
158
163
    --version) echo "$0 $scriptversion"; exit $?;;
159
164
 
165
170
 
166
171
    *)  break;;
167
172
  esac
 
173
  shift
168
174
done
169
175
 
170
 
if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
 
176
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
171
177
  # When -d is used, all remaining arguments are directories to create.
172
178
  # When -t is used, the destination is already specified.
173
179
  # Otherwise, the last argument is the destination.  Remove it from $@.
174
180
  for arg
175
181
  do
176
 
    if test -n "$dstarg"; then
 
182
    if test -n "$dst_arg"; then
177
183
      # $@ is not empty: it contains at least $arg.
178
 
      set fnord "$@" "$dstarg"
 
184
      set fnord "$@" "$dst_arg"
179
185
      shift # fnord
180
186
    fi
181
187
    shift # arg
182
 
    dstarg=$arg
 
188
    dst_arg=$arg
183
189
  done
184
190
fi
185
191
 
224
230
do
225
231
  # Protect names starting with `-'.
226
232
  case $src in
227
 
    -*) src=./$src ;;
 
233
    -*) src=./$src;;
228
234
  esac
229
235
 
230
236
  if test -n "$dir_arg"; then
242
248
      exit 1
243
249
    fi
244
250
 
245
 
    if test -z "$dstarg"; then
 
251
    if test -z "$dst_arg"; then
246
252
      echo "$0: no destination specified." >&2
247
253
      exit 1
248
254
    fi
249
255
 
250
 
    dst=$dstarg
 
256
    dst=$dst_arg
251
257
    # Protect names starting with `-'.
252
258
    case $dst in
253
 
      -*) dst=./$dst ;;
 
259
      -*) dst=./$dst;;
254
260
    esac
255
261
 
256
262
    # If destination is a directory, append the input filename; won't work
257
263
    # if double slashes aren't ignored.
258
264
    if test -d "$dst"; then
259
265
      if test -n "$no_target_directory"; then
260
 
        echo "$0: $dstarg: Is a directory" >&2
 
266
        echo "$0: $dst_arg: Is a directory" >&2
261
267
        exit 1
262
268
      fi
263
269
      dstdir=$dst
378
384
      # directory the slow way, step by step, checking for races as we go.
379
385
 
380
386
      case $dstdir in
381
 
        /*) prefix=/ ;;
382
 
        -*) prefix=./ ;;
383
 
        *)  prefix= ;;
 
387
        /*) prefix='/';;
 
388
        -*) prefix='./';;
 
389
        *)  prefix='';;
384
390
      esac
385
391
 
386
 
      case $posix_glob in
387
 
        '')
388
 
          if (set -f) 2>/dev/null; then
389
 
            posix_glob=true
390
 
          else
391
 
            posix_glob=false
392
 
          fi ;;
393
 
      esac
 
392
      eval "$initialize_posix_glob"
394
393
 
395
394
      oIFS=$IFS
396
395
      IFS=/
397
 
      $posix_glob && set -f
 
396
      $posix_glob set -f
398
397
      set fnord $dstdir
399
398
      shift
400
 
      $posix_glob && set +f
 
399
      $posix_glob set +f
401
400
      IFS=$oIFS
402
401
 
403
402
      prefixes=
459
458
    # ignore errors from any of these, just make sure not to ignore
460
459
    # errors from the above "$doit $cpprog $src $dsttmp" command.
461
460
    #
462
 
    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
463
 
      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
464
 
      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
465
 
      && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
466
 
 
467
 
    # Now rename the file to the real destination.
468
 
    { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
469
 
      || {
470
 
           # The rename failed, perhaps because mv can't rename something else
471
 
           # to itself, or perhaps because mv is so ancient that it does not
472
 
           # support -f.
473
 
 
474
 
           # Now remove or move aside any old file at destination location.
475
 
           # We try this two ways since rm can't unlink itself on some
476
 
           # systems and the destination file might be busy for other
477
 
           # reasons.  In this case, the final cleanup might fail but the new
478
 
           # file should still install successfully.
479
 
           {
480
 
             if test -f "$dst"; then
481
 
               $doit $rmcmd -f "$dst" 2>/dev/null \
482
 
               || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
483
 
                     && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
484
 
               || {
485
 
                 echo "$0: cannot unlink or rename $dst" >&2
486
 
                 (exit 1); exit 1
487
 
               }
488
 
             else
489
 
               :
490
 
             fi
491
 
           } &&
492
 
 
493
 
           # Now rename the file to the real destination.
494
 
           $doit $mvcmd "$dsttmp" "$dst"
495
 
         }
496
 
    } || exit 1
 
461
    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
 
462
    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
 
463
    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
 
464
    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
 
465
 
 
466
    # If -C, don't bother to copy if it wouldn't change the file.
 
467
    if $copy_on_change &&
 
468
       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
 
469
       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
 
470
 
 
471
       eval "$initialize_posix_glob" &&
 
472
       $posix_glob set -f &&
 
473
       set X $old && old=:$2:$4:$5:$6 &&
 
474
       set X $new && new=:$2:$4:$5:$6 &&
 
475
       $posix_glob set +f &&
 
476
 
 
477
       test "$old" = "$new" &&
 
478
       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
 
479
    then
 
480
      rm -f "$dsttmp"
 
481
    else
 
482
      # Rename the file to the real destination.
 
483
      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
 
484
 
 
485
      # The rename failed, perhaps because mv can't rename something else
 
486
      # to itself, or perhaps because mv is so ancient that it does not
 
487
      # support -f.
 
488
      {
 
489
        # Now remove or move aside any old file at destination location.
 
490
        # We try this two ways since rm can't unlink itself on some
 
491
        # systems and the destination file might be busy for other
 
492
        # reasons.  In this case, the final cleanup might fail but the new
 
493
        # file should still install successfully.
 
494
        {
 
495
          test ! -f "$dst" ||
 
496
          $doit $rmcmd -f "$dst" 2>/dev/null ||
 
497
          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
 
498
            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
 
499
          } ||
 
500
          { echo "$0: cannot unlink or rename $dst" >&2
 
501
            (exit 1); exit 1
 
502
          }
 
503
        } &&
 
504
 
 
505
        # Now rename the file to the real destination.
 
506
        $doit $mvcmd "$dsttmp" "$dst"
 
507
      }
 
508
    fi || exit 1
497
509
 
498
510
    trap '' 0
499
511
  fi