~lefteris-nikoltsios/+junk/samba-lp1016895

« back to all changes in this revision

Viewing changes to lib/tdb/install-sh

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2011-12-21 13:18:04 UTC
  • mfrom: (0.39.21 sid)
  • Revision ID: package-import@ubuntu.com-20111221131804-xtlr39wx6njehxxr
Tags: 2:3.6.1-3ubuntu1
* Merge from Debian testing.  Remaining changes:
  + debian/patches/VERSION.patch:
    - set SAMBA_VERSION_SUFFIX to Ubuntu.
  + debian/patches/error-trans.fix-276472:
    - Add the translation of Unix Error code -ENOTSUP to NT Error Code
    - NT_STATUS_NOT_SUPPORTED to prevent the Permission denied error.
  + debian/smb.conf:
    - add "(Samba, Ubuntu)" to server string.
    - comment out the default [homes] share, and add a comment about
      "valid users = %S" to show users how to restrict access to
      \\server\username to only username.
    - Set 'usershare allow guests', so that usershare admins are 
      allowed to create public shares in addition to authenticated
      ones.
    - add map to guest = Bad user, maps bad username to guest access.
  + debian/samba-common.config:
    - Do not change priority to high if dhclient3 is installed.
    - Use priority medium instead of high for the workgroup question.
  + debian/control:
    - Don't build against or suggest ctdb.
    - Add dependency on samba-common-bin to samba.
  + Add ufw integration:
    - Created debian/samba.ufw.profile
    - debian/rules, debian/samba.dirs, debian/samba.files: install
      profile
    - debian/control: have samba suggest ufw
  + Add apport hook:
    - Created debian/source_samba.py.
    - debian/rules, debian/samba.dirs, debian/samba-common-bin.files: install
  + Switch to upstart:
    - Add debian/samba.{nmbd,smbd}.upstart.
  + debian/samba.logrotate, debian/samba-common.dhcp, debian/samba.if-up:
    - Make them upstart compatible
  + debian/samba.postinst: 
    - Avoid scary pdbedit warnings on first import.
  + debian/samba-common.postinst: Add more informative error message for
    the case where smb.conf was manually deleted
  + debian/patches/fix-debuglevel-name-conflict.patch: don't use 'debug_level'
    as a global variable name in an NSS module 
  + Dropped:
    - debian/patches/error-trans.fix-276472
    - debian/patches/fix-debuglevel-name-conflict.patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#! /bin/sh
2
 
#
3
 
# install - install a program, script, or datafile
4
 
# This comes from X11R5.
5
 
#
6
 
# Calling this script install-sh is preferred over install.sh, to prevent
7
 
# `make' implicit rules from creating a file called install from it
8
 
# when there is no Makefile.
9
 
#
10
 
# This script is compatible with the BSD install script, but was written
11
 
# from scratch.
12
 
#
13
 
 
14
 
 
15
 
# set DOITPROG to echo to test this script
16
 
 
17
 
# Don't use :- since 4.3BSD and earlier shells don't like it.
18
 
doit="${DOITPROG-}"
19
 
 
20
 
 
21
 
# put in absolute paths if you don't have them in your path; or use env. vars.
22
 
 
23
 
mvprog="${MVPROG-mv}"
24
 
cpprog="${CPPROG-cp}"
25
 
chmodprog="${CHMODPROG-chmod}"
26
 
chownprog="${CHOWNPROG-chown}"
27
 
chgrpprog="${CHGRPPROG-chgrp}"
28
 
stripprog="${STRIPPROG-strip}"
29
 
rmprog="${RMPROG-rm}"
30
 
mkdirprog="${MKDIRPROG-mkdir}"
31
 
 
32
 
transformbasename=""
33
 
transform_arg=""
34
 
instcmd="$mvprog"
35
 
chmodcmd="$chmodprog 0755"
36
 
chowncmd=""
37
 
chgrpcmd=""
38
 
stripcmd=""
39
 
rmcmd="$rmprog -f"
40
 
mvcmd="$mvprog"
41
 
src=""
42
 
dst=""
43
 
dir_arg=""
44
 
 
45
 
while [ x"$1" != x ]; do
46
 
    case $1 in
47
 
        -c) instcmd="$cpprog"
48
 
            shift
49
 
            continue;;
50
 
 
51
 
        -d) dir_arg=true
52
 
            shift
53
 
            continue;;
54
 
 
55
 
        -m) chmodcmd="$chmodprog $2"
56
 
            shift
57
 
            shift
58
 
            continue;;
59
 
 
60
 
        -o) chowncmd="$chownprog $2"
61
 
            shift
62
 
            shift
63
 
            continue;;
64
 
 
65
 
        -g) chgrpcmd="$chgrpprog $2"
66
 
            shift
67
 
            shift
68
 
            continue;;
69
 
 
70
 
        -s) stripcmd="$stripprog"
71
 
            shift
72
 
            continue;;
73
 
 
74
 
        -t=*) transformarg=`echo $1 | sed 's/-t=//'`
75
 
            shift
76
 
            continue;;
77
 
 
78
 
        -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
79
 
            shift
80
 
            continue;;
81
 
 
82
 
        *)  if [ x"$src" = x ]
83
 
            then
84
 
                src=$1
85
 
            else
86
 
                # this colon is to work around a 386BSD /bin/sh bug
87
 
                :
88
 
                dst=$1
89
 
            fi
90
 
            shift
91
 
            continue;;
92
 
    esac
93
 
done
94
 
 
95
 
if [ x"$src" = x ]
96
 
then
97
 
        echo "install:  no input file specified"
98
 
        exit 1
99
 
else
100
 
        true
101
 
fi
102
 
 
103
 
if [ x"$dir_arg" != x ]; then
104
 
        dst=$src
105
 
        src=""
106
 
        
107
 
        if [ -d $dst ]; then
108
 
                instcmd=:
109
 
        else
110
 
                instcmd=mkdir
111
 
        fi
112
 
else
113
 
 
114
 
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
115
 
# might cause directories to be created, which would be especially bad 
116
 
# if $src (and thus $dsttmp) contains '*'.
117
 
 
118
 
        if [ -f $src -o -d $src ]
119
 
        then
120
 
                true
121
 
        else
122
 
                echo "install:  $src does not exist"
123
 
                exit 1
124
 
        fi
125
 
        
126
 
        if [ x"$dst" = x ]
127
 
        then
128
 
                echo "install:  no destination specified"
129
 
                exit 1
130
 
        else
131
 
                true
132
 
        fi
133
 
 
134
 
# If destination is a directory, append the input filename; if your system
135
 
# does not like double slashes in filenames, you may need to add some logic
136
 
 
137
 
        if [ -d $dst ]
138
 
        then
139
 
                dst="$dst"/`basename $src`
140
 
        else
141
 
                true
142
 
        fi
143
 
fi
144
 
 
145
 
## this sed command emulates the dirname command
146
 
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
147
 
 
148
 
# Make sure that the destination directory exists.
149
 
#  this part is taken from Noah Friedman's mkinstalldirs script
150
 
 
151
 
# Skip lots of stat calls in the usual case.
152
 
if [ ! -d "$dstdir" ]; then
153
 
defaultIFS='    
154
 
'
155
 
IFS="${IFS-${defaultIFS}}"
156
 
 
157
 
oIFS="${IFS}"
158
 
# Some sh's can't handle IFS=/ for some reason.
159
 
IFS='%'
160
 
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
161
 
IFS="${oIFS}"
162
 
 
163
 
pathcomp=''
164
 
 
165
 
while [ $# -ne 0 ] ; do
166
 
        pathcomp="${pathcomp}${1}"
167
 
        shift
168
 
 
169
 
        if [ ! -d "${pathcomp}" ] ;
170
 
        then
171
 
                $mkdirprog "${pathcomp}"
172
 
        else
173
 
                true
174
 
        fi
175
 
 
176
 
        pathcomp="${pathcomp}/"
177
 
done
178
 
fi
179
 
 
180
 
if [ x"$dir_arg" != x ]
181
 
then
182
 
        $doit $instcmd $dst &&
183
 
 
184
 
        if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
185
 
        if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
186
 
        if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
187
 
        if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
188
 
else
189
 
 
190
 
# If we're going to rename the final executable, determine the name now.
191
 
 
192
 
        if [ x"$transformarg" = x ] 
193
 
        then
194
 
                dstfile=`basename $dst`
195
 
        else
196
 
                dstfile=`basename $dst $transformbasename | 
197
 
                        sed $transformarg`$transformbasename
198
 
        fi
199
 
 
200
 
# don't allow the sed command to completely eliminate the filename
201
 
 
202
 
        if [ x"$dstfile" = x ] 
203
 
        then
204
 
                dstfile=`basename $dst`
205
 
        else
206
 
                true
207
 
        fi
208
 
 
209
 
# Make a temp file name in the proper directory.
210
 
 
211
 
        dsttmp=$dstdir/#inst.$$#
212
 
 
213
 
# Move or copy the file name to the temp name
214
 
 
215
 
        $doit $instcmd $src $dsttmp &&
216
 
 
217
 
        trap "rm -f ${dsttmp}" 0 &&
218
 
 
219
 
# and set any options; do chmod last to preserve setuid bits
220
 
 
221
 
# If any of these fail, we abort the whole thing.  If we want to
222
 
# ignore errors from any of these, just make sure not to ignore
223
 
# errors from the above "$doit $instcmd $src $dsttmp" command.
224
 
 
225
 
        if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
226
 
        if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
227
 
        if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
228
 
        if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
229
 
 
230
 
# Now rename the file to the real destination.
231
 
 
232
 
        $doit $rmcmd -f $dstdir/$dstfile &&
233
 
        $doit $mvcmd $dsttmp $dstdir/$dstfile 
234
 
 
235
 
fi &&
236
 
 
237
 
 
238
 
exit 0