]> err.no Git - sope/blobdiff - maintenance/make-osxmpkg.sh
fixed a MacOS 10.5 issue
[sope] / maintenance / make-osxmpkg.sh
index 1d42893c5ec5a71e582bd0ddf0042ddd6b75406b..081f0254e7144273231add45a2390cb578d11dee 100755 (executable)
@@ -11,7 +11,13 @@ oldpwd="$PWD"
 PKG_BUILD_DIR="$PWD/osxpkgbuild"
 PKG_DIR="$PKG_BUILD_DIR/${PKG_NAME}.mpkg"
 PKG_RSRC_DIR="$PKG_BUILD_DIR/${PKG_NAME}.mpkg/Contents/Resources"
-PKG_VERSION="4.5"
+
+# TODO: make that arguments
+PKG_MAJOR_VERSION=4
+PKG_MINOR_VERSION=5
+PKG_SUBMINOR_VERSION=trunk
+
+PKG_VERSION="${PKG_MAJOR_VERSION}.${PKG_MINOR_VERSION}.${PKG_SUBMINOR_VERSION}"
 ROOT_DIR="$PKG_BUILD_DIR/Packages"
 
 CHECK_XML="yes"
@@ -31,6 +37,15 @@ SUDO="sudo"
 RM_R="rm -r"
 
 
+# ****************************** options ******************************
+
+# if we set this to 'yes', we get no 'upgrade' button on "reinstalls"
+PKG_IS_RELOCATABLE=no
+
+# RootAuthorization / AdminAuthorization
+PKG_AUTHORIZATION=RootAuthorization
+
+
 # ****************************** usage ********************************
 
 function usage() {
@@ -130,21 +145,32 @@ function genInfoPList() {
   echo >>$F "<plist version=\"1.0\">"
   echo >>$F "  <dict>"
 
-  plistWriteString >>$F IFMajorVersion 4
-  plistWriteString >>$F IFMinorVersion 5
+  plistWriteString >>$F IFMajorVersion ${PKG_MAJOR_VERSION}
+  plistWriteString >>$F IFMinorVersion ${PKG_MINOR_VERSION}
 
   plistWriteDate   >>$F IFPkgBuildDate "`date -u +%Y-%m-%dT%H:%M:%SZ`"
   plistWriteString >>$F IFPkgBuildVersion                 "${PKG_VERSION}"
   #plistWriteBool   >>$F IFPkgFlagAllowBackRev             true
-  plistWriteString >>$F IFPkgFlagAuthorizationAction      AdminAuthorization
+
+  # allowed: AdminAuthorization, RootAuthorization, ??
+  plistWriteString >>$F IFPkgFlagAuthorizationAction      ${PKG_AUTHORIZATION}
+  
   plistWriteString >>$F IFPkgFlagBackgroundAlignment      topright
   plistWriteString >>$F IFPkgFlagBackgroundScaling        none
   plistWriteString >>$F IFPkgFlagDefaultLocation          /
   #plistWriteBool   >>$F IFPkgFlagFollowLinks              true
+
   #plistWriteBool   >>$F IFPkgFlagInstallFat               true
+
   #plistWriteBool   >>$F IFPkgFlagIsRequired               false
   #plistWriteBool   >>$F IFPkgFlagOverwritePermissions     false
-  plistWriteBool   >>$F IFPkgFlagRelocatable              true
+
+  if test "x${PKG_IS_RELOCATABLE}" = "xyes"; then
+    plistWriteBool   >>$F IFPkgFlagRelocatable            true
+  else
+    plistWriteBool   >>$F IFPkgFlagRelocatable            false
+  fi
+  
   plistWriteString >>$F IFPkgFlagRestartAction            NoRestart
   plistWriteBool   >>$F IFPkgFlagRootVolumeOnly           false
   plistWriteBool   >>$F IFPkgFlagUpdateInstalledLanguages false
@@ -185,10 +211,12 @@ function genVersionPList() {
   echo >>$F "<plist version=\"1.0\">"
   echo >>$F "  <dict>"
 
+  # TODO: find out about BuildVersion
   plistWriteString >>$F BuildVersion               4
-  plistWriteString >>$F CFBundleShortVersionString "4.5"
+  
+  plistWriteString >>$F CFBundleShortVersionString "${PKG_VERSION}"
   plistWriteString >>$F ProjectName                "${PKG_NAME}"
-  plistWriteString >>$F SourceVersion              45000
+  plistWriteString >>$F SourceVersion ${PKG_MAJOR_VERSION}${PKG_MINOR_VERSION}000
   
   # close plist
   echo >>$F "  </dict>"
@@ -229,21 +257,37 @@ function genInfoFile() {
   echo >>$F "Version               ${PKG_VERSION}"
   echo >>$F "Description           ${PKG_VERSION}"
   
-  echo >>$F "PackageLocation      ../"
+  # TODO: find documentation for this one
+  # echo >>$F "PackageLocation      ../Packages"
   echo >>$F "FastInstall          NO"
   
   echo >>$F "Require Reboot        NO"  # TODO: consolidate
   echo >>$F "OverwritePermissions  NO"  # TODO: consolidate
   echo >>$F "UseUserMask           NO"  # TODO: consolidate
   echo >>$F "RootVolumeOnly        NO"  # TODO: consolidate
-  echo >>$F "NeedsAuthorization    YES" # TODO: consolidate
+
+  if test "x${PKG_AUTHORIZATION}" = "x"; then
+    echo >>$F "NeedsAuthorization    NO"
+  else
+    # need to check Admin/Root?
+    echo >>$F "NeedsAuthorization    YES"
+  fi
+  
   echo >>$F "DefaultLocation       /"   # TODO: consolidate
-  echo >>$F "Relocatable           YES" # TODO: consolidate
-  echo >>$F "Install Fat           YES" # TODO: consolidate
-  echo >>$F "LibrarySubdirectory   Standard"
   
-  ln -s ${PKG_RSRC_DIR}/English.lproj/${PKG_NAME}.info \
-        ${PKG_RSRC_DIR}/English.lproj/Install.info
+  if test "x${PKG_IS_RELOCATABLE}" = "xyes"; then
+    echo >>$F "Relocatable           YES"
+  else
+    echo >>$F "Relocatable           NO"
+  fi
+  
+  #echo >>$F "Install Fat           YES" # TODO: consolidate
+  echo >>$F "LibrarySubdirectory   Standard"
+
+  GIOLDDIR="$PWD"  
+  cd "${PKG_RSRC_DIR}/English.lproj/"
+  ln -s "${PKG_NAME}.info" Install.info
+  cd "$GIOLDDIR"
   echo ".. done."
 }
 
@@ -258,8 +302,8 @@ function genPkgInfoFile() {
 function genPkgVersionFile() {
   F="${PKG_RSRC_DIR}/package_version"
   echo -n "  gen package_version: $F .."
-  echo >$F  "major: 4"
-  echo >>$F "minor: 5"
+  echo >$F  "major: ${PKG_MAJOR_VERSION}"
+  echo >>$F "minor: ${PKG_MINOR_VERSION}"
   echo ".. done."
 }
 
@@ -333,7 +377,7 @@ function copyPackages() {
 
 # ****************************** running ******************************
 
-echo "Building SOPE MacOSX Installer.app packages $PKG_NAME.mpkg .."
+echo "Building SOPE MacOSX Installer.app multipackage $PKG_NAME.mpkg .."
 validateArgs;
 
 ensureSudo;