rmdir /afs
fi
majorvers=`uname -r | sed 's/\..*//'`
-if [ $majorvers -ge 7 ]; then
+if [ $majorvers -ge 19 ]; then
+ # Root mount point is read-only. To workaround this restriction, add a
+ # synthetic entity for afs into /etc/synthetic.conf. For more information,
+ # please read man synthetic.conf(5).
+ grep -wqs 'afs' /etc/synthetic.conf || echo 'afs' >> /etc/synthetic.conf
+elif [ $majorvers -ge 7 ]; then
# /Network is now readonly, so put AFS in /afs; make sure /afs is a directory
if [ -e /afs ]; then
if [ -h /afs -o ! -d /afs ]; then
mv cacheinfo.new cacheinfo
fi
+# if the installer plugin generated ThisCell and/or CellAlias
+# files, copy them in here
+tmpthiscell=/private/tmp/org.OpenAFS.Install.ThisCell.$USER
+tmpcellalias=/private/tmp/org.OpenAFS.Install.CellAlias.$USER
+if [ -f $tmpthiscell ]; then
+ cp $tmpthiscell ThisCell
+ rm -f $tmpthiscell
+fi
+if [ -f $tmpcellalias ]; then
+ cp $tmpcellalias CellAlias
+ rm -f $tmpcellalias
+fi
+
if [ ! -f ThisCell -a -f ThisCell.sample ]; then
cp ThisCell.sample ThisCell
fi
fi
rm -f config/afsd.options.broken
-if [ ! -f config/afsd.options -a -f config/afsd.options.sample ]; then
- cp config/afsd.options.sample config/afsd.options
+# if the user hasn't changed these settings, then they should just use the new
+# afsd.conf file
+rm -f config/afsd.options.old
+echo '-afsdb -stat 2000 -dcache 800 -daemons 3 -volumes 70 -dynroot -fakestat-all' >config/afsd.options.old
+if cmp -s config/afsd.options.old config/afsd.options ; then
+ rm -f config/afsd.options
+fi
+rm -f config/afsd.options.old
+
+if [ ! -f config/afs.conf -a -f config/afs.conf.sample ]; then
+ cp config/afs.conf.sample config/afs.conf
fi
# testing case -- upgrading from pre 1.2.7, but .last file exists.
# make config/settings.plist if it doesn't exist
if [ ! -e config/settings.plist -a -e config/settings.plist.orig ]; then
cp config/settings.plist.orig config/settings.plist
+ else
+ /usr/libexec/PlistBuddy -c "Add :Darwin:All:FSEvents bool" config/settings.plist && /usr/libexec/PlistBuddy -c "Set :Darwin:All:FSEvents true" config/settings.plist
fi
elif [ -e config/afssettings ]; then
# turn off execution of afssettings
chmod a-x config/afssettings
fi
+
+# properly, we should acquire a certificate from a real CA and ship
+# signed binaries. for now, make Application Firewall (Security prefs pane)
+# happy like this. See TN2206
+if [ $majorvers -lt 14 ]; then
+ if [ -f /usr/bin/codesign ]; then
+ codesign -s - /usr/sbin/afsd
+ fi
+fi
+
+#here we should run tools which configure the client, and then if it's enabled:
+#start the new launchd daemon
+launchctl load -w /Library/LaunchDaemons/org.openafs.filesystems.afs.plist
+
+if [ $majorvers -ge 19 ]; then
+ # Assume that, if /afs is not present, either OpenAFS is being installed for
+ # the first time or the system was not rebooted after the installation.
+ # If so, inform what needs to be done to load the client. This procedure is
+ # unnecessary if OpenAFS is being reinstalled.
+ if [ ! -d /afs ]; then
+ osascript -e 'display alert "OpenAFS successfully installed" message ¬
+ "If OpenAFS is being installed for the first time on this machine, " & ¬
+ "follow the steps below:\n\n" & ¬
+ "1. Navigate to System Preferences > Security & Privacy;\n\n" & ¬
+ "2. Under the General tab towards the bottom of the window, allow " & ¬
+ "the OpenAFS kernel extension to load by clicking on Allow;\n\n" & ¬
+ "3. Reboot the machine;\n\n" & ¬
+ "Note: An entry for /afs was added in /etc/synthetic.conf. This " & ¬
+ "change takes effect only after rebooting the system."'
+ fi
+fi