2 # Portions Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
5 echo Usage: buildpkg binary-dir
10 majorvers=`uname -r | sed 's/\..*//'`
11 if [ $majorvers -ge 7 ]; then
13 package=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
14 if [ ! -x $package ]; then
15 echo "PackageMaker does not exist. Please run this script on a MacOS X system"
16 echo "with the DeveloperTools package installed"
21 package=/usr/bin/package
22 if [ ! -f $package ]; then
23 echo "$package does not exist. Please run this script on a MacOS X system"
24 echo "with the BSD subsystem installed"
27 if grep -q 'set resDir = ""' $package ; then
28 echo $package is buggy.
29 echo remove the line \''set resDir = ""'\' from $package and try again
34 if [ -x /usr/bin/curl ]; then
35 /usr/bin/curl -f -O http://www.central.org/dl/cellservdb/CellServDB
38 if [ ! -f CellServDB ]; then
39 echo "A CellServDB file must be placed in the working directory"
42 FILES="ReadMe.rtf License.rtf CellServDB.list OpenAFS.info OpenAFS.post_install OpenAFS.pre_upgrade csrvdbmerge.pl 2.0.txt"
45 echo "file missing: " $f
50 echo "Correct above errors; then retry"
53 if [ ! -f $BINDEST/bin/translate_et ]; then
56 if [ ! -f $BINDEST/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs ]; then
60 echo $BINDEST " is not a valid binary dir. it should be the result of"
65 PKGROOT=$RESSRC/pkgroot
68 mkdir -p $PKGROOT $PKGRES
70 mkdir $PKGROOT/Library
71 chown -R root${SEP}admin $PKGROOT
73 mkdir $PKGROOT/Library/OpenAFS $PKGROOT/Library/OpenAFS/Tools
75 pax -rw * $PKGROOT/Library/OpenAFS/Tools
77 mkdir $PKGROOT/Library/StartupItems
78 mkdir $PKGROOT/Library/StartupItems/OpenAFS
79 cp $BINDEST/root.client/usr/vice/etc/afs.rc $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
80 chmod a+x $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
81 cp $BINDEST/root.client/usr/vice/etc/StartupParameters.plist $PKGROOT/Library/StartupItems/OpenAFS/StartupParameters.plist
82 chown -R root${SEP}admin $PKGROOT/Library
83 chmod -R o-w $PKGROOT/Library
84 chmod -R g+w $PKGROOT/Library
85 chown -R root${SEP}wheel $PKGROOT/Library/OpenAFS/Tools
86 chmod -R og-w $PKGROOT/Library/OpenAFS/Tools
88 mkdir $PKGROOT/private $PKGROOT/private/var $PKGROOT/private/var/db
89 mkdir $PKGROOT/private/var/db/openafs $PKGROOT/private/var/db/openafs/cache
90 mkdir $PKGROOT/private/var/db/openafs/etc $PKGROOT/private/var/db/openafs/etc/config
91 cp $RESSRC/CellServDB $PKGROOT/private/var/db/openafs/etc/CellServDB.master
92 echo openafs.org > $PKGROOT/private/var/db/openafs/etc/ThisCell.sample
93 if [ $majorvers -ge 7 ]; then
94 echo /afs:/var/db/openafs/cache:30000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
95 make AFSINCLUDE=$BINDEST/include
96 cp afssettings $PKGROOT/private/var/db/openafs/etc/config
97 cp settings.plist $PKGROOT/private/var/db/openafs/etc/config/settings.plist.orig
100 echo /Network/afs:/var/db/openafs/cache:30000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
102 echo '-stat 2000 -dcache 800 -daemons 3 -volumes 70 -dynroot -fakestat-all' > $PKGROOT/private/var/db/openafs/etc/config/afsd.options.sample
104 strip -X -S $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs
106 cp -RP $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext $PKGROOT/private/var/db/openafs/etc
108 chown -R root${SEP}wheel $PKGROOT/private
109 chmod -R og-w $PKGROOT/private
110 chmod og-rx $PKGROOT/private/var/db/openafs/cache
112 mkdir $PKGROOT/usr $PKGROOT/usr/bin $PKGROOT/usr/sbin
114 BINLIST="fs klog klog.krb pagsh pagsh.krb pts sys tokens tokens.krb unlog unlog.krb"
116 # Should these be linked into /usr too?
117 OTHER_BINLIST="bos cmdebug rxgen translate_et udebug xstat_cm_test xstat_fs_test"
118 OTHER_ETCLIST="vos rxdebug"
120 for f in $BINLIST; do
121 ln -s ../../Library/OpenAFS/Tools/bin/$f $PKGROOT/usr/bin/$f
123 ln -s ../../Library/OpenAFS/Tools/bin/kpasswd $PKGROOT/usr/bin/kpasswd.afs
125 ln -s ../../Library/OpenAFS/Tools/root.client/usr/vice/etc/afsd $PKGROOT/usr/sbin/afsd
127 chown -R root${SEP}wheel $PKGROOT/usr
128 chmod -R og-w $PKGROOT/usr
130 if [ $majorvers -ge 7 ]; then
131 cp OpenAFS.post_install $PKGRES/postinstall
132 cp OpenAFS.pre_upgrade $PKGRES/preupgrade
133 cp OpenAFS.post_install $PKGRES/postupgrade
134 chmod a+x $PKGRES/postinstall $PKGRES/postupgrade $PKGRES/preupgrade
136 cp OpenAFS.post_install OpenAFS.pre_upgrade $PKGRES
137 cp OpenAFS.post_install $PKGRES/OpenAFS.post_upgrade
138 chmod a+x $PKGRES/OpenAFS.post_install $PKGRES/OpenAFS.post_upgrade $PKGRES/OpenAFS.pre_upgrade
140 cp License.rtf ReadMe.rtf $PKGRES
141 cp csrvdbmerge.pl $PKGRES
142 chmod a+x $PKGRES/csrvdbmerge.pl
143 cp CellServDB.list $PKGRES
144 chown -R root${SEP}wheel $PKGRES
146 if [ $majorvers -ge 7 ]; then
147 echo $package -build -p $RESSRC/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
148 -i OpenAFS.Info.plist -d OpenAFS.Description.plist
149 $package -build -p $RESSRC/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
150 -i OpenAFS.Info.plist -d OpenAFS.Description.plist
152 echo $package $PKGROOT OpenAFS.info -r $PKGRES
153 $package $PKGROOT OpenAFS.info -r $PKGRES
154 #old versions of package didn't handle this properly
155 if [ ! -r OpenAFS.pkg/Contents ]; then
156 mkdir OpenAFS.pkg/Contents OpenAFS.pkg/Contents/Resources
157 mv OpenAFS.pkg/OpenAFS.* OpenAFS.pkg/Contents/Resources
158 mv OpenAFS.pkg/*.rtf OpenAFS.pkg/Contents/Resources
159 mv OpenAFS.pkg/csrvdbmerge.pl OpenAFS.pkg/Contents/Resources
160 mv OpenAFS.pkg/CellServDB* OpenAFS.pkg/Contents/Resources
164 rm -rf pkgroot pkgres
165 # Unfortunately, sudo sets $USER to root, so I can't chown the
166 #.pkg dir back to myself
167 #chown -R $USER OpenAFS.pkg