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"
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() {
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
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>"
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."
}
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."
}
# ****************************** running ******************************
-echo "Building SOPE MacOSX Installer.app packages $PKG_NAME.mpkg .."
+echo "Building SOPE MacOSX Installer.app multipackage $PKG_NAME.mpkg .."
validateArgs;
ensureSudo;