mirror of https://github.com/BOINC/boinc.git
Mac: Update XCode project build rules: DWARF symbols, use gcc 4 compiler more, Client, Manager, installer require OS 10.3.9.
svn path=/trunk/boinc/; revision=13966
This commit is contained in:
parent
4394245d16
commit
d0032ae0d8
|
@ -9946,3 +9946,32 @@ David 25 Oct 2007
|
|||
top_users.php
|
||||
top_teams.php
|
||||
top_hosts.php
|
||||
|
||||
Charlie 26 Oct 2007
|
||||
- Mac: Update XCode project build rules to generate DWARF-style symbol
|
||||
tables, which are much smaller and more efficient. Use gcc-4.0 compiler
|
||||
for all builds except PowerPC libraries (to maintain compatibility back
|
||||
to OS 10.3.0 for science applications with older versions of BOINC) and
|
||||
boinc_cmd (because it uses libboinc.a). BOINC Client and BOINC Manager
|
||||
now require OS 10.3.9 or later (upgrade to 10.3.9 from OS 10.3.0 through
|
||||
10.3.8 is a free download from Apple.) More XCode build rule cleanup.
|
||||
- Mac: Installer displays an error message and quits if OS < 10.3.9.
|
||||
- Mac SCR: fix GridRepublic branding bug.
|
||||
|
||||
clientgui/
|
||||
mac/
|
||||
SecurityUtility.cpp
|
||||
SystemMenu.m
|
||||
clientscr/
|
||||
mac_saver_module.cpp
|
||||
mac_installer/
|
||||
GR-ReadMe.rtf
|
||||
Installer.cpp
|
||||
PostInstall.cpp
|
||||
ReadMe.rtf
|
||||
release_boinc.sh
|
||||
release_GridRepublic.sh
|
||||
mac_build/
|
||||
boinc.xcodeproj/
|
||||
project.pbxproj
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
#include <sys/param.h> // for MAXPATHLEN
|
||||
#include <unistd.h> // for getwd, getlogin
|
||||
|
||||
#include <Carbon/Carbon.h>
|
||||
|
||||
#include "SetupSecurity.h"
|
||||
|
||||
// Standalone utility to set up BOINC security owners, groups, permissions
|
||||
|
|
|
@ -30,8 +30,6 @@
|
|||
#include <Carbon/Carbon.h>
|
||||
#include <Cocoa/Cocoa.h>
|
||||
|
||||
#define _DEBUG 0
|
||||
|
||||
@interface SystemMenu : NSObject {
|
||||
}
|
||||
- (void)BuildSysMenu:(MenuRef)menuToCopy;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -19,7 +19,7 @@ Starting with version 5.5.4, this software features new, stricter security measu
|
|||
\
|
||||
This is a
|
||||
\f0\b universal binary
|
||||
\f1\b0 which will run natively on both Intel and PowerPC Macs. GridRepublic Desktop requires Macintosh OS X version 10.3 or greater. \
|
||||
\f1\b0 which will run natively on both Intel and PowerPC Macs. GridRepublic Desktop requires Macintosh OS X version 10.3.9 or greater. \
|
||||
\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
|
|
|
@ -39,8 +39,7 @@
|
|||
|
||||
void Initialize(void); /* function prototypes */
|
||||
OSStatus IsLogoutNeeded(Boolean *result);
|
||||
OSErr UpdateAllVisibleUsers(long brandID);
|
||||
long GetBrandID(void);
|
||||
OSErr FindProcess (OSType typeToFind, OSType creatorToFind, ProcessSerialNumberPtr processSN);
|
||||
static OSErr QuitAppleEventHandler(const AppleEvent *appleEvt, AppleEvent* reply, UInt32 refcon);
|
||||
void print_to_log_file(const char *format, ...);
|
||||
void strip_cr(char *buf);
|
||||
|
@ -50,9 +49,13 @@ Boolean gQuitFlag = false; /* global */
|
|||
int main(int argc, char *argv[])
|
||||
{
|
||||
char pkgPath[MAXPATHLEN], infoPlistPath[MAXPATHLEN];
|
||||
char brand[64], s[256];
|
||||
char *p;
|
||||
ProcessSerialNumber ourPSN;
|
||||
ProcessSerialNumber ourPSN, installerPSN;
|
||||
FSRef ourFSRef;
|
||||
long response;
|
||||
short itemHit;
|
||||
pid_t installerPID = 0;
|
||||
FSRef infoPlistFileRef;
|
||||
Boolean isDirectory, result;
|
||||
CFURLRef xmlURL = NULL;
|
||||
|
@ -65,7 +68,6 @@ int main(int argc, char *argv[])
|
|||
CFStringRef valueLogoutRequired = CFSTR("RequiredLogout");
|
||||
CFStringRef valueNoRestart = CFSTR("NoRestart");
|
||||
CFStringRef errorString = NULL;
|
||||
long response;
|
||||
Boolean needLogout;
|
||||
OSStatus err = noErr;
|
||||
|
||||
|
@ -87,11 +89,33 @@ int main(int argc, char *argv[])
|
|||
p = strrchr(infoPlistPath, '/'); // Point to name of this application (e.g., "BOINC Installer.app")
|
||||
if (p == NULL)
|
||||
p = infoPlistPath - 1;
|
||||
strlcpy(brand, p+1, sizeof(brand));
|
||||
strlcat(pkgPath, p+1, sizeof(pkgPath));
|
||||
p = strrchr(pkgPath, ' '); // Strip off space characterand everything following )
|
||||
p = strrchr(pkgPath, ' '); // Strip off last space character and everything following
|
||||
if (p)
|
||||
*p = '\0';
|
||||
|
||||
err = Gestalt(gestaltSystemVersion, &response);
|
||||
if (err != noErr)
|
||||
return err;
|
||||
|
||||
if (response < 0x1039) {
|
||||
::SetFrontProcess(&ourPSN);
|
||||
p = strrchr(brand, ' '); // Strip off last space character and everything following
|
||||
if (p)
|
||||
*p = '\0';
|
||||
s[0] = sprintf(s+1, "Sorry, this version of %s requires system 10.3.9 or higher.", brand);
|
||||
StandardAlert (kAlertStopAlert, (StringPtr)s, NULL, NULL, &itemHit);
|
||||
|
||||
err = FindProcess ('APPL', 'xins', &installerPSN);
|
||||
err = GetProcessPID(&installerPSN , &installerPID);
|
||||
|
||||
if (err == noErr)
|
||||
err = kill(installerPID, SIGKILL);
|
||||
|
||||
ExitToShell();
|
||||
}
|
||||
|
||||
strlcat(pkgPath, ".pkg", sizeof(pkgPath));
|
||||
|
||||
needLogout = false;
|
||||
|
@ -299,19 +323,34 @@ void Initialize() /* Initialize some managers */
|
|||
}
|
||||
|
||||
|
||||
long GetBrandID()
|
||||
// ---------------------------------------------------------------------------
|
||||
/* This runs through the process list looking for the indicated application */
|
||||
/* Searches for process by file type and signature (creator code) */
|
||||
// ---------------------------------------------------------------------------
|
||||
OSErr FindProcess (OSType typeToFind, OSType creatorToFind, ProcessSerialNumberPtr processSN)
|
||||
{
|
||||
long iBrandId;
|
||||
|
||||
iBrandId = 0; // Default value
|
||||
|
||||
FILE *f = fopen("Contents/Resources/Branding", "r");
|
||||
if (f) {
|
||||
fscanf(f, "BrandId=%ld\n", &iBrandId);
|
||||
fclose(f);
|
||||
ProcessInfoRec tempInfo;
|
||||
FSSpec procSpec;
|
||||
Str31 processName;
|
||||
OSErr myErr = noErr;
|
||||
/* null out the PSN so we're starting at the beginning of the list */
|
||||
processSN->lowLongOfPSN = kNoProcess;
|
||||
processSN->highLongOfPSN = kNoProcess;
|
||||
/* initialize the process information record */
|
||||
tempInfo.processInfoLength = sizeof(ProcessInfoRec);
|
||||
tempInfo.processName = processName;
|
||||
tempInfo.processAppSpec = &procSpec;
|
||||
/* loop through all the processes until we */
|
||||
/* 1) find the process we want */
|
||||
/* 2) error out because of some reason (usually, no more processes) */
|
||||
do {
|
||||
myErr = GetNextProcess(processSN);
|
||||
if (myErr == noErr)
|
||||
GetProcessInformation(processSN, &tempInfo);
|
||||
}
|
||||
|
||||
return iBrandId;
|
||||
while ((tempInfo.processSignature != creatorToFind || tempInfo.processType != typeToFind) &&
|
||||
myErr == noErr);
|
||||
return(myErr);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -128,18 +128,18 @@ int main(int argc, char *argv[])
|
|||
if (err != noErr)
|
||||
return err;
|
||||
|
||||
if (response < 0x1030) {
|
||||
if (response < 0x1039) {
|
||||
::SetFrontProcess(&ourProcess);
|
||||
// Remove everything we've installed
|
||||
if (brandID == 1) {
|
||||
StandardAlert (kAlertStopAlert, "\pSorry, GridRepublic requires system 10.3 or higher.",
|
||||
StandardAlert (kAlertStopAlert, "\pSorry, this version of GridRepublic requires system 10.3.9 or higher.",
|
||||
NULL, NULL, &itemHit);
|
||||
system ("rm -rf /Applications/GridRepublic\\ Desktop.app");
|
||||
system ("rm -rf /Library/Screen\\ Savers/GridRepublic.saver");
|
||||
// We don't customize BOINC Data directory name for branding
|
||||
// system ("rm -rf /Library/Application\\ Support/GridRepublic\\ Data");
|
||||
system ("rm -rf /Library/Receipts/GridRepublic.pkg");
|
||||
StandardAlert (kAlertStopAlert, "\pSorry, BOINC requires system 10.3 or higher.",
|
||||
StandardAlert (kAlertStopAlert, "\pSorry, this version of BOINC requires system 10.3.9 or higher.",
|
||||
NULL, NULL, &itemHit);
|
||||
} else {
|
||||
system ("rm -rf /Applications/BOINCManager.app");
|
||||
|
|
|
@ -19,7 +19,7 @@ Starting with version 5.5.4, BOINC features new, stricter security measures. Se
|
|||
\
|
||||
This is a
|
||||
\f0\b universal binary
|
||||
\f1\b0 which will run natively on both Intel and PowerPC Macs. BOINCManager requires Macintosh OS X version 10.3 or greater. \
|
||||
\f1\b0 which will run natively on both Intel and PowerPC Macs. BOINCManager requires Macintosh OS X version 10.3.9 or greater. \
|
||||
\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
##
|
||||
# Release Script for Macintosh GridRepublic Desktop 9/5/07 by Charlie Fenton
|
||||
# Release Script for Macintosh GridRepublic Desktop 10/26/07 by Charlie Fenton
|
||||
##
|
||||
|
||||
## Usage:
|
||||
|
@ -230,7 +230,8 @@ sudo chmod -R 555 "${NEW_DIR_PATH}/${LC_BRAND_NAME}_$1.$2.$3_macOSX_universal/ex
|
|||
|
||||
##### We've decided not to create branded symbol table file; it is identical to standard one
|
||||
#### mkdir -p "${NEW_DIR_PATH}/${LC_BRAND_NAME}_$1.$2.$3_macOSX_SymbolTables"
|
||||
#### cp -fpR $BUILDPATH/SymbolTables ${NEW_DIR_PATH}/${LC_BRAND_NAME}_$1.$2.$3_macOSX_SymbolTables/
|
||||
#### cp -fpR $BUILDPATH/boinc.dSYM ${NEW_DIR_PATH}/${LC_BRAND_NAME}_$1.$2.$3_macOSX_SymbolTables/
|
||||
#### cp -fpR $BUILDPATH/BOINCManager.app.dSYM ${NEW_DIR_PATH}/${LC_BRAND_NAME}_$1.$2.$3_macOSX_SymbolTables/
|
||||
|
||||
# Make temporary copies of Pkg-Info.plist and Description.plist for PackageMaker and update for this branding
|
||||
cp -fp mac_build/Pkg-Info.plist "${NEW_DIR_PATH}"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
##
|
||||
# Release Script for Macintosh BOINC Manager 9/5/07 by Charlie Fenton
|
||||
# Release Script for Macintosh BOINC Manager 10/26/07 by Charlie Fenton
|
||||
##
|
||||
|
||||
## Usage:
|
||||
|
@ -183,7 +183,8 @@ cp -fpR $BUILDPATH/setprojectgrp ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$
|
|||
sudo chown -R root:admin ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_universal-apple-darwin/move_to_boinc_dir/*
|
||||
sudo chmod -R u+rw-s,g+r-ws,o+r-w ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_universal-apple-darwin/move_to_boinc_dir/*
|
||||
|
||||
cp -fpR $BUILDPATH/SymbolTables ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_SymbolTables/
|
||||
cp -fpR $BUILDPATH/boinc.dSYM ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_SymbolTables/
|
||||
cp -fpR $BUILDPATH/BOINCManager.app.dSYM ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_SymbolTables/
|
||||
|
||||
cd ../BOINC_Installer/New_Release_$1_$2_$3
|
||||
zip -rqy boinc_$1.$2.$3_macOSX_universal.zip boinc_$1.$2.$3_macOSX_universal
|
||||
|
|
Loading…
Reference in New Issue