~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): Russ Allbery
  • Date: 2008-09-22 19:07:02 UTC
  • mfrom: (12.1.14 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080922190702-59m13d7kn6gkw32d
Tags: 1.4.7.dfsg1-6
* Apply upstream patch to free /proc entries in the correct order.
  Thanks, Marc Dionne.  (Closes: #493914)
* Apply upstream deltas to support 2.6.27 kernels and to stop using
  COMMON_KERN_CFLAGS for all 2.6 kernels uniformly, which fixes
  problems on amd64 with newer kernels.  Thanks, Björn Torkelsson.
  (LP: #267504)
* Translation updates:
  - Swedish, thanks Martin Bagge.  (Closes: #493120)

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