MacOS: aklog auth plugin
[openafs.git] / src / packaging / MacOS / buildpkg.sh.in
index d70c8fd..f3b88ab 100644 (file)
@@ -34,9 +34,14 @@ fi
 if [ $majorvers -eq 9 ]; then
   RELNAME="Leopard"
 fi
+if [ $majorvers -eq 10 ]; then
+  RELNAME="Snowleopard"
+fi
 
 PKGROOT=$CURDIR/pkgroot
 PKGRES=$CURDIR/pkgres
+DPKGROOT=$CURDIR/dpkgroot
+DPKGRES=$CURDIR/dpkgres
 if [ $majorvers -ge 7 ]; then
     SEP=:
     package=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
@@ -103,29 +108,33 @@ if [ $firstpass = yes ]; then
     mkdir $PKGROOT
 
     mkdir -p $PKGROOT/Library
+    mkdir -p $PKGROOT/Library/PreferencePanes
+    mkdir -p $PKGROOT/Library/Security/SecurityAgentPlugins
     chown root${SEP}admin $PKGROOT
-    chmod 775 $PKGROOT $PKGROOT/Library
+    chmod 755 $PKGROOT $PKGROOT/Library $PKGROOT/Library/PreferencePanes $PKGROOT/Library/Security/SecurityAgentPlugins
+    (cd $BINDEST/tools && pax -rw OpenAFS.prefPane $PKGROOT/Library/PreferencePanes)
+    (cd $BINDEST/tools && pax -rw aklog.bundle $PKGROOT/Library/Security/SecurityAgentPlugins)
     mkdir -p $PKGROOT/Library/OpenAFS/Tools
     (cd $BINDEST && pax -rw * $PKGROOT/Library/OpenAFS/Tools)
     cd $RESSRC
-    mkdir -p $PKGROOT/Library/StartupItems/OpenAFS
-    cp $BINDEST/root.client/usr/vice/etc/afs.rc  $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
-    chmod a+x $PKGROOT/Library/StartupItems/OpenAFS/OpenAFS
-    cp $BINDEST/root.client/usr/vice/etc/StartupParameters.plist  $PKGROOT/Library/StartupItems/OpenAFS/StartupParameters.plist
-    chown -R root${SEP}admin $PKGROOT/Library
+    mkdir -p $PKGROOT/Library/LaunchDaemons
     chmod -R o-w $PKGROOT/Library
-    chmod -R g+w $PKGROOT/Library
-    chown -R root${SEP}wheel $PKGROOT/Library/StartupItems
-    chmod -R og-w $PKGROOT/Library/StartupItems
+    chmod -R g-w $PKGROOT/Library
+    cp openafs.launchd.plist $PKGROOT/Library/LaunchDaemons/org.openafs.filesystems.afs.plist
+    chmod 644 $PKGROOT/Library/LaunchDaemons/org.openafs.filesystems.afs.plist
+    chown root${SEP}admin $PKGROOT/Library
+    chown -R root${SEP}wheel $PKGROOT/Library/LaunchDaemons
     chown -R root${SEP}wheel $PKGROOT/Library/OpenAFS/Tools
     chmod -R og-w $PKGROOT/Library/OpenAFS/Tools
 
     mkdir -p $PKGROOT/private/var/db/openafs/cache
     mkdir -p $PKGROOT/private/var/db/openafs/etc/config
+    cp openafs.launchdaemon $PKGROOT/private/var/db/openafs/etc/launchafs.sh
+    chmod 755 $PKGROOT/private/var/db/openafs/etc/launchafs.sh
     cp $CURDIR/CellServDB $PKGROOT/private/var/db/openafs/etc/CellServDB.master
     echo grand.central.org > $PKGROOT/private/var/db/openafs/etc/ThisCell.sample
     if [ $majorvers -ge 7 ]; then
-       echo /afs:/var/db/openafs/cache:30000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
+       echo /afs:/var/db/openafs/cache:100000 > $PKGROOT/private/var/db/openafs/etc/cacheinfo.sample
         cp -RP $PKGROOT/Library/OpenAFS/Tools/etc/afssettings $PKGROOT/private/var/db/openafs/etc/config
        cp settings.plist $PKGROOT/private/var/db/openafs/etc/config/settings.plist.orig
     else
@@ -133,6 +142,19 @@ if [ $firstpass = yes ]; then
     fi
     cp afs.conf $PKGROOT/private/var/db/openafs/etc/config/afs.conf.sample
 
+    cp decode-panic $PKGROOT/Library/OpenAFS/Tools/tools
+    chmod a+x $PKGROOT/Library/OpenAFS/Tools/tools/decode-panic
+
+    if [ $majorvers -ge 9 ]; then
+       rm -rf $DPKGROOT
+       mkdir $DPKGROOT
+       mkdir -p $DPKGROOT/Library/OpenAFS/Debug
+       mv $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext.dSYM $DPKGROOT/Library/OpenAFS/Debug
+       cp -RP $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext $DPKGROOT/Library/OpenAFS/Debug
+       chown -R root${SEP}wheel $DPKGROOT/Library/OpenAFS/Debug
+       chmod -R og-w $DPKGROOT/Library/OpenAFS/Debug
+    fi
+
     strip -X -S $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext/Contents/MacOS/afs
 
     cp -RP $PKGROOT/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.kext $PKGROOT/private/var/db/openafs/etc
@@ -184,6 +206,24 @@ fi
 if [ $secondpass = yes ]; then
     rm -rf $PKGRES
     mkdir $PKGRES
+    cd $RESSRC
+    if [ $majorvers -ge 9 ]; then
+       rm -rf $DPKGRES
+       mkdir $DPKGRES
+       cp License.rtf $DPKGRES
+       cp InstallationCheck.$majorvers $DPKGRES/InstallationCheck
+       chmod a+x $DPKGRES/InstallationCheck
+       mkdir -p $DPKGRES/English.lproj
+       cp InstallationCheck.strings.$majorvers \
+               $DPKGRES/English.lproj/InstallationCheck.strings
+       cp background.jpg $DPKGRES/background.jpg
+       chown -R root${SEP}wheel $DPKGRES
+       rm -rf $CURDIR/OpenAFS-debug-extension.pkg
+       echo $package -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \
+           -i OpenAFS-debug.Info.plist -d OpenAFS-debug.Description.plist
+       $package -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \
+           -i OpenAFS-debug.Info.plist -d OpenAFS-debug.Description.plist
+    fi
 
     cd $RESSRC
     if [ $majorvers -ge 7 ]; then
@@ -194,7 +234,7 @@ if [ $secondpass = yes ]; then
        if [ $majorvers -ge 8 ]; then
            cp InstallationCheck.$majorvers $PKGRES/InstallationCheck
            mkdir -p $PKGRES/English.lproj
-           cp InstallationCheck.$majorvers $PKGRES/English.lproj/InstallationCheck
+           cp InstallationCheck.strings.$majorvers $PKGRES/English.lproj/InstallationCheck.strings
            chmod a+x $PKGRES/InstallationCheck
        fi
        chmod a+x $PKGRES/postinstall $PKGRES/postupgrade $PKGRES/preupgrade
@@ -210,14 +250,6 @@ if [ $secondpass = yes ]; then
     cp CellServDB.list $PKGRES
     chown -R root${SEP}wheel $PKGRES
     rm -rf $CURDIR/OpenAFS.pkg
-
-    # once we have cm cleanup in 10.4 this can go
-    if [ $majorvers -le 8 ]; then
-       cat $RESSRC/OpenAFS.info|sed 's/RequiresReboot NO/RequiresReboot YES/'>$RESSRC/OpenAFS.info.new
-       rm -f $RESSRC/OpenAFS.info
-       mv $RESSRC/OpenAFS.info.new $RESSRC/OpenAFS.info
-    fi
-
     if [ $majorvers -ge 7 ]; then
        echo $package -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
            -i OpenAFS.Info.plist -d OpenAFS.Description.plist
@@ -237,13 +269,33 @@ if [ $secondpass = yes ]; then
     fi
 
     rm -rf $PKGROOT $PKGRES
+    rm -rf $DPKGROOT $DPKGRES
+    # here we want to build installer plugin and install
+    # for Tiger and later only
+    if [ $majorvers -ge 8 ]; then
+       AFSCELLBUNDLE=$BINDEST/installer/afscell.bundle
+       cd $CURDIR
+       if [ -d $AFSCELLBUNDLE -a -f $BINDEST/installer/InstallerSections.plist ]; then
+           mkdir -p $CURDIR/OpenAFS.pkg/Contents/Plugins
+           cp -R $AFSCELLBUNDLE $CURDIR/OpenAFS.pkg/Contents/Plugins
+           cp $BINDEST/installer/InstallerSections.plist $CURDIR/OpenAFS.pkg/Contents/Plugins
+       else
+           echo "afscell.bundle not built successfully"
+           echo "... or InstallerSections.plist file not found"
+           exit 1
+       fi
+    fi
+
     mkdir $CURDIR/dmg
     mv $CURDIR/OpenAFS.pkg $CURDIR/dmg
+    if [ $majorvers -ge 8 ]; then
+       mv $CURDIR/OpenAFS-debug-extension.pkg $CURDIR/dmg
+    fi
     rm -rf $CURDIR/OpenAFS-@VERSION@-$RELNAME.dmg
-    cp Uninstall $CURDIR/dmg/Uninstall.command
-    cp DS_Store $CURDIR/dmg/.DS_Store
+    cp $RESSRC/Uninstall $CURDIR/dmg/Uninstall.command
+    cp $RESSRC/DS_Store $CURDIR/dmg/.DS_Store
     mkdir $CURDIR/dmg/.background
-    cp afslogo.jpg $CURDIR/dmg/.background
+    cp $RESSRC/afslogo.jpg $CURDIR/dmg/.background
 #    hdiutil create -srcfolder $CURDIR/dmg -volname OpenAFS -anyowners $CURDIR/OpenAFS.dmg
     hdiutil makehybrid -hfs -hfs-volume-name OpenAFS -hfs-openfolder $CURDIR/dmg $CURDIR/dmg -o $CURDIR/TMP.dmg
     hdiutil convert -format UDZO $CURDIR/TMP.dmg -o $CURDIR/OpenAFS-@VERSION@-$RELNAME.dmg