macos next support
[openafs.git] / src / packaging / MacOS / buildpkg.sh.in
index e75ccb6..309b0aa 100644 (file)
@@ -34,9 +34,17 @@ fi
 if [ $majorvers -eq 9 ]; then
   RELNAME="Leopard"
 fi
+if [ $majorvers -eq 10 ]; then
+  RELNAME="Snowleopard"
+fi
+if [ $majorvers -eq 11 ]; then
+  RELNAME="Lion"
+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,25 +111,29 @@ 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
@@ -133,6 +145,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 +209,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 +237,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
@@ -229,13 +272,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