~ubuntu-branches/ubuntu/oneiric/openafs/oneiric-201305130334

« back to all changes in this revision

Viewing changes to src/packaging/MacOS/buildpkg.sh

  • Committer: Bazaar Package Importer
  • Author(s): Sam Hartman
  • Date: 2006-10-21 20:57:09 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20061021205709-y5keam1v20qxjwwo
Tags: 1.4.2-2
Upstream fix to prevent butc segfaulting.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
# Portions Copyright (c) 2003, 2006 Apple Computer, Inc.  All rights reserved.
 
3
 
 
4
if [ -z "$1" ]; then
 
5
    echo Usage: buildpkg binary-dir
 
6
    echo '  or'
 
7
    echo 'Usage: buildpkg [-firstpass] binary-dir'
 
8
    echo '            (customize pkgroot)'
 
9
    echo '       buildpkg [-secondpass]'
 
10
    exit 1
 
11
fi
 
12
 
 
13
firstpass=yes
 
14
secondpass=yes
 
15
if [ "$1" = "-firstpass" ]; then
 
16
    secondpass=no
 
17
    shift
 
18
elif [ "$1" = "-secondpass" ]; then
 
19
    firstpass=no
 
20
    shift
 
21
fi
 
22
 
 
23
BINDEST=`cd $1 && pwd`
 
24
CURDIR=`pwd`
 
25
RESSRC=`dirname $0`
 
26
RESSRC=`cd $RESSRC && pwd`
 
27
majorvers=`uname -r | sed 's/\..*//'`
 
28
 
 
29
PKGROOT=$CURDIR/pkgroot
 
30
PKGRES=$CURDIR/pkgres
 
31
if [ $majorvers -ge 7 ]; then
 
32
    SEP=:
 
33
    package=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
 
34
    if [ ! -x $package ]; then
 
35
       echo "PackageMaker does not exist. Please run this script on a MacOS X system"
 
36
      echo "with the DeveloperTools package installed"
 
37
      exit 1
 
38
    fi
 
39
else
 
40
    SEP=.
 
41
    package=/usr/bin/package
 
42
    if [ ! -f $package ]; then
 
43
       echo "$package does not exist. Please run this script on a MacOS X system"
 
44
      echo "with the BSD subsystem installed"
 
45
      exit 1
 
46
    fi
 
47
    if grep -q 'set resDir = ""' $package ; then
 
48
       echo $package is buggy.
 
49
       echo remove the line \''set resDir = ""'\' from $package and try again
 
50
       exit 1
 
51
    fi
 
52
fi
 
53
 
 
54
if [ $firstpass = yes ]; then
 
55
    if [ -x /usr/bin/curl ]; then
 
56
        /usr/bin/curl -f -O http://dl.central.org/dl/cellservdb/CellServDB
 
57
    fi
 
58
 
 
59
    if [ ! -f CellServDB ]; then
 
60
       echo "A CellServDB file must be placed in the working directory"
 
61
       die=1
 
62
    else
 
63
       if grep -q 'GCO Public CellServDB' CellServDB ; then
 
64
         touch CellServDB
 
65
       else
 
66
          echo "A proper CellServDB file must be placed in the working directory"
 
67
          die=1
 
68
       fi
 
69
    fi
 
70
    FILES="ReadMe.rtf License.rtf CellServDB.list OpenAFS.info OpenAFS.post_install OpenAFS.pre_upgrade csrvdbmerge.pl 2.0.txt"
 
71
    for f in $FILES; do
 
72
       if [ ! -f $RESSRC/$f ]; then
 
73
         echo "file missing: " $RESSRC/$f
 
74
         die=1
 
75
       fi
 
76
    done
 
77
    if [ "$die" ]; then
 
78
      echo "Correct above errors; then retry"
 
79
      exit 1
 
80
    fi
 
81
    if [ ! -f $BINDEST/bin/translate_et ]; then
 
82
      die=1
 
83
    fi
 
84
    if [ ! -f $BINDEST/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs ]; then
 
85
      die=1
 
86
    fi
 
87
    if [ "$die" ]; then
 
88
       echo $BINDEST " is not a valid binary dir. it should be the result of"
 
89
       echo "make dest"
 
90
       exit 1
 
91
    fi
 
92
 
 
93
    rm -rf $PKGROOT
 
94
    mkdir $PKGROOT
 
95
 
 
96
    mkdir -p $PKGROOT/Library
 
97
    chown root${SEP}admin $PKGROOT
 
98
    chmod 775 $PKGROOT $PKGROOT/Library
 
99
    mkdir -p $PKGROOT/Library/OpenAFS/Tools
 
100
    (cd $BINDEST && pax -rw * $PKGROOT/Library/OpenAFS/Tools)
 
101
    cd $RESSRC
 
102
    mkdir -p $PKGROOT/Library/StartupItems/OpenAFS
 
103
    cp $BINDEST/root.client/usr/vice/etc/afs.rc  $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
 
104
    chmod a+x $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
 
105
    cp $BINDEST/root.client/usr/vice/etc/StartupParameters.plist  $PKGROOT/Library/StartupItems/OpenAFS/StartupParameters.plist
 
106
    chown -R root${SEP}admin $PKGROOT/Library
 
107
    chmod -R o-w $PKGROOT/Library
 
108
    chmod -R g+w $PKGROOT/Library
 
109
    chown -R root${SEP}wheel $PKGROOT/Library/StartupItems
 
110
    chmod -R og-w $PKGROOT/Library/StartupItems
 
111
    chown -R root${SEP}wheel $PKGROOT/Library/OpenAFS/Tools
 
112
    chmod -R og-w $PKGROOT/Library/OpenAFS/Tools
 
113
 
 
114
    mkdir -p $PKGROOT/private/var/db/openafs/cache
 
115
    mkdir -p $PKGROOT/private/var/db/openafs/etc/config
 
116
    cp $CURDIR/CellServDB $PKGROOT/private/var/db/openafs/etc/CellServDB.master
 
117
    echo openafs.org > $PKGROOT/private/var/db/openafs/etc/ThisCell.sample
 
118
    if [ $majorvers -ge 7 ]; then
 
119
        echo /afs:/var/db/openafs/cache:30000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
 
120
        cp -RP $PKGROOT/Library/OpenAFS/Tools/etc/afssettings $PKGROOT/private/var/db/openafs/etc/config
 
121
        cp settings.plist $PKGROOT/private/var/db/openafs/etc/config/settings.plist.orig
 
122
    else
 
123
        echo /Network/afs:/var/db/openafs/cache:30000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
 
124
    fi
 
125
    echo '-afsdb -stat 2000 -dcache 800 -daemons 3 -volumes 70 -dynroot -fakestat-all' > $PKGROOT/private/var/db/openafs/etc/config/afsd.options.sample
 
126
 
 
127
    strip -X -S $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs
 
128
 
 
129
    cp -RP $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext $PKGROOT/private/var/db/openafs/etc
 
130
    cp -RP $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/C $PKGROOT/private/var/db/openafs/etc
 
131
 
 
132
    chown -R root${SEP}wheel $PKGROOT/private
 
133
    chmod -R og-w $PKGROOT/private
 
134
    chmod  og-rx $PKGROOT/private/var/db/openafs/cache
 
135
 
 
136
    mkdir -p $PKGROOT/usr/bin $PKGROOT/usr/sbin
 
137
 
 
138
    BINLIST="fs klog klog.krb pagsh pagsh.krb pts sys tokens tokens.krb unlog unlog.krb aklog"
 
139
    ETCLIST="vos"
 
140
 
 
141
# Should these be linked into /usr too?
 
142
    OTHER_BINLIST="bos cmdebug rxgen translate_et udebug xstat_cm_test xstat_fs_test"
 
143
    OTHER_ETCLIST="rxdebug"
 
144
 
 
145
    for f in $BINLIST; do
 
146
       ln -s ../../Library/OpenAFS/Tools/bin/$f $PKGROOT/usr/bin/$f
 
147
    done
 
148
    for f in $ETCLIST; do
 
149
       ln -s ../../Library/OpenAFS/Tools/etc/$f $PKGROOT/usr/sbin/$f
 
150
    done
 
151
 
 
152
    ln -s ../../Library/OpenAFS/Tools/bin/kpasswd $PKGROOT/usr/bin/kpasswd.afs
 
153
 
 
154
    ln -s ../../Library/OpenAFS/Tools/root.client/usr/vice/etc/afsd $PKGROOT/usr/sbin/afsd
 
155
 
 
156
#    mkdir -p $PKGROOT/Library/Kerberos\ Plug-Ins
 
157
#    ln -s ../../Library/OpenAFS/Tools/root.client/Library/Kerberos\ Plug-Ins/aklog.loginLogout $PKGROOT/Library/Kerberos\ Plug-Ins/
 
158
 
 
159
    chown -R root${SEP}wheel $PKGROOT/usr
 
160
    chmod -R og-w $PKGROOT/usr
 
161
fi
 
162
 
 
163
if [ $secondpass = yes ]; then
 
164
    rm -rf $PKGRES
 
165
    mkdir $PKGRES
 
166
 
 
167
    cd $RESSRC
 
168
    if [ $majorvers -ge 7 ]; then
 
169
        cp OpenAFS.post_install $PKGRES/postinstall
 
170
        cp OpenAFS.pre_upgrade $PKGRES/preupgrade
 
171
        cp OpenAFS.post_install $PKGRES/postupgrade
 
172
        cp background.jpg $PKGRES/background.jpg
 
173
        if [ $majorvers -ge 8 ]; then
 
174
            cp InstallationCheck $PKGRES
 
175
            mkdir -p $PKGRES/English.lproj
 
176
            cp InstallationCheck $PKGRES/English.lproj
 
177
            chmod a+x $PKGRES/InstallationCheck
 
178
        fi
 
179
        chmod a+x $PKGRES/postinstall $PKGRES/postupgrade $PKGRES/preupgrade
 
180
    else
 
181
        cp OpenAFS.post_install OpenAFS.pre_upgrade $PKGRES
 
182
        cp OpenAFS.post_install $PKGRES/OpenAFS.post_upgrade
 
183
        chmod a+x $PKGRES/OpenAFS.post_install $PKGRES/OpenAFS.post_upgrade $PKGRES/OpenAFS.pre_upgrade
 
184
    fi
 
185
    cp License.rtf ReadMe.rtf $PKGRES
 
186
    cp csrvdbmerge.pl $PKGRES
 
187
    chmod a+x $PKGRES/csrvdbmerge.pl
 
188
    cp CellServDB.list $PKGRES
 
189
    chown -R root${SEP}wheel $PKGRES
 
190
    rm -rf $CURDIR/OpenAFS.pkg
 
191
    if [ $majorvers -ge 7 ]; then
 
192
        echo $package -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
 
193
            -i OpenAFS.Info.plist -d OpenAFS.Description.plist
 
194
        $package -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
 
195
            -i OpenAFS.Info.plist -d OpenAFS.Description.plist
 
196
    else
 
197
        echo $package $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES
 
198
        (cd $CURDIR && $package $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES)
 
199
        #old versions of package didn't handle this properly
 
200
        if [ ! -r $CURDIR/OpenAFS.pkg/Contents ]; then
 
201
                mkdir -p $CURDIR/OpenAFS.pkg/Contents/Resources
 
202
                mv $CURDIR/OpenAFS.pkg/OpenAFS.* $CURDIR/OpenAFS.pkg/Contents/Resources
 
203
                mv $CURDIR/OpenAFS.pkg/*.rtf $CURDIR/OpenAFS.pkg/Contents/Resources
 
204
                mv $CURDIR/OpenAFS.pkg/csrvdbmerge.pl $CURDIR/OpenAFS.pkg/Contents/Resources
 
205
                mv $CURDIR/OpenAFS.pkg/CellServDB* $CURDIR/OpenAFS.pkg/Contents/Resources
 
206
        fi
 
207
    fi
 
208
 
 
209
    rm -rf $PKGROOT $PKGRES
 
210
    mkdir $CURDIR/dmg
 
211
    mv $CURDIR/OpenAFS.pkg $CURDIR/dmg
 
212
    rm -rf $CURDIR/OpenAFS.dmg
 
213
    cp Uninstall $CURDIR/dmg/Uninstall.command
 
214
    cp DS_Store $CURDIR/dmg/.DS_Store
 
215
    mkdir $CURDIR/dmg/.background
 
216
    cp afslogo.jpg $CURDIR/dmg/.background
 
217
#    hdiutil create -srcfolder $CURDIR/dmg -volname OpenAFS -anyowners $CURDIR/OpenAFS.dmg
 
218
    hdiutil makehybrid -hfs -hfs-volume-name OpenAFS -hfs-openfolder $CURDIR/dmg $CURDIR/dmg -o $CURDIR/TMP.dmg
 
219
    hdiutil convert -format UDZO TMP.dmg -o $CURDIR/OpenAFS.dmg
 
220
    rm $CURDIR/TMP.dmg
 
221
    rm -rf $CURDIR/dmg
 
222
    # Unfortunately, sudo sets $USER to root, so I can't chown the 
 
223
    #.pkg dir back to myself
 
224
    #chown -R $USER $CURDIR/OpenAFS.pkg
 
225
else
 
226
    echo "First pass completed.  Customize pkgroot and then run:"
 
227
    echo "    $0 -secondpass"
 
228
fi