macos: use pkgbuild to build the package on 10.10/10.11
[openafs.git] / src / packaging / MacOS / OpenAFS.post_install
index c6ed97d..b9ef27b 100644 (file)
@@ -32,12 +32,42 @@ if [ `grep /Network/afs cacheinfo` ]; 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
 
-if [ ! -f config/afsd.options -a -f config/afsd.options.sample ]; then
-   cp config/afsd.options.sample config/afsd.options
+# force reversion of 10.4 memcache mistake
+rm -f config/afsd.options.broken
+echo '-memcache -afsdb -stat 2000 -dcache 800 -daemons 3 -volumes 70 -dynroot -fakestat-all' > config/afsd.options.broken
+if cmp -s config/afsd.options.broken config/afsd.options ; then
+   rm -f config/afsd.options
+fi
+rm -f config/afsd.options.broken
+
+# 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.
@@ -59,11 +89,14 @@ if [ -z "$done" -a  -f CellServDB ]; then
   if cmp -s CellServDB CellServDB.master ; then
     echo CellServDB is up to date.
     cp CellServDB.master CellServDB.master.last
+    if [ ! -f CellServDB ]; then
+      cp CellServDB.master CellServDB
+    fi
     done=1
   fi
 fi
 
-if [ -z "$done" -a  -f CellServDB ]; then
+if [ -z "$done" ]; then
   # there are local changes to be merged
   if [ -f CellServDB -a -f CellServDB.master.last ]; then
     echo Merging CellServDB entries....
@@ -73,7 +106,7 @@ if [ -z "$done" -a  -f CellServDB ]; then
     # this is a new install, or an upgrade from pre-1.2.7
     echo "Installing new CellServDB"
     cp CellServDB.master CellServDB.master.last
-    if [ ! -e CellServDB ]; then
+    if [ ! -f CellServDB ]; then
        cp CellServDB.master CellServDB
     fi
   fi
@@ -83,9 +116,23 @@ if [ $majorvers -ge 7 ]; then
   # 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