*** empty log message ***

svn path=/trunk/boinc/; revision=9280
This commit is contained in:
Charlie Fenton 2006-01-21 12:42:04 +00:00
parent a3615df44c
commit 6ec89207c5
18 changed files with 445 additions and 83 deletions

View File

@ -717,3 +717,42 @@ David 20 Jan 2006
clientgui/
Events.h
ViewStatistics.C,h
Charlie 21 Jan 2006
-Mac: Changes for Grid Republic: manager determinea branding before
launching client; create new release script for GR; GR screen saver
displays GR icon in system preferences dialog; data directory is
"GridRepublic Data" if a GR install; installing BOINC over an
existing GR installation or GR over existing BOINC installation
renames data directory and performs other necessary tasks to ensure
continued processing of existing work. (But user's screensaver
selection is not changed automatically.)
clientgui/
BOINCGUIApp.cpp - Set up branding before launching boinc client.
mac/
mac_saver_module.cpp
gridrepublic.tiff
SetVersion.C
mac_installer/
release_boinc.sh
PostInstall.cpp
postinstall
postupgrade
preinstall (new)
preupgrade (new)
release_GridRepublic.sh (new)
GR-preinstall (new)
GR-preupgrade (new)
GR-Description.plist (new)
GR_Branding (new)
GR-ReadMe.rtf (new)
GR-Description.plist (new)
mac_build/
GR-InfoPlist.strings (new)
GR-ScreenSaver-Info.plist (new)
boinc.xcodeproj/
project.pbxproj

View File

@ -199,6 +199,12 @@ bool CBOINCGUIApp::OnInit() {
#endif
// Setup the branding scheme
m_pBranding = new CBrandingScheme;
wxASSERT(m_pBranding);
m_pBranding->OnInit(m_pConfig);
#ifdef __WXMAC__
wxString strDirectory = wxEmptyString;
@ -214,15 +220,16 @@ bool CBOINCGUIApp::OnInit() {
// The mac installer sets the "setuid & setgid" bits for the
// BOINC Manager and core client so any user can run them and
// they can operate on shared data.
strDirectory = wxT("/Library/Application Support");
strDirectory = wxT("/Library/Application Support/");
#endif
success = ::wxSetWorkingDirectory(strDirectory);
if (success) {
// If SetWD failed, don't create a directory in wrong place
strDirectory += wxT("/BOINC Data");
strDirectory += m_pBranding->GetProjectName();
strDirectory += wxT(" Data");
if (! wxDirExists(strDirectory))
success = wxMkdir(wxT("BOINC Data"), 0777); // Does nothing if dir exists
success = wxMkdir(m_pBranding->GetProjectName() + wxT(" Data"), 0777); // Does nothing if dir exists
success = ::wxSetWorkingDirectory(strDirectory);
// wxChar *wd = wxGetWorkingDirectory(buf, 1000); // For debugging
}
@ -303,13 +310,6 @@ bool CBOINCGUIApp::OnInit() {
return false;
}
// Setup the branding scheme
m_pBranding = new CBrandingScheme;
wxASSERT(m_pBranding);
m_pBranding->OnInit(m_pConfig);
// Initialize the main document
m_pDocument = new CMainDocument();
wxASSERT(m_pDocument);

View File

@ -21,8 +21,8 @@
int IsFileCurrent(char* filePath);
int FixInfoPlistFile(char* myPath);
int FixInfoPlist_Strings(void);
int MakeInstallerInfoPlistFile(void);
int FixInfoPlist_Strings(char* myPath, char* brand);
int MakeInstallerInfoPlistFile(char* myPath, char* brand);
int main(int argc, char** argv) {
int retval = 0, err;
@ -36,7 +36,9 @@ int main(int argc, char** argv) {
printf("%s\n", myPath); // For debugging
#endif
err = FixInfoPlist_Strings();
err = FixInfoPlist_Strings("./English.lproj/InfoPlist.strings", "BOINC");
if (err) retval = err;
err = FixInfoPlist_Strings("./GR-InfoPlist.strings", "GridRepublic");
if (err) retval = err;
err = FixInfoPlistFile("./Info.plist");
if (err) retval = err;
@ -46,9 +48,13 @@ int main(int argc, char** argv) {
if (err) retval = err;
err = FixInfoPlistFile("./ScreenSaver-Info.plist");
if (err) retval = err;
err = FixInfoPlistFile("./GR-ScreenSaver-Info.plist");
if (err) retval = err;
err = FixInfoPlistFile("./SystemMenu-Info.plist");
if (err) retval = err;
err = MakeInstallerInfoPlistFile();
err = MakeInstallerInfoPlistFile("./Pkg-Info.plist", "BOINC Manager");
if (err) retval = err;
err = MakeInstallerInfoPlistFile("./GR-Pkg-Info.plist", "GridRepublic");
return retval;
}
@ -75,10 +81,9 @@ int IsFileCurrent(char* filePath) {
}
int FixInfoPlist_Strings() {
int FixInfoPlist_Strings(char* myPath, char* brand) {
int retval = 0;
FILE *f;
char *myPath = "./English.lproj/InfoPlist.strings";
if (IsFileCurrent(myPath))
return 0;
@ -87,9 +92,9 @@ int FixInfoPlist_Strings() {
if (f)
{
fprintf(f, "/* Localized versions of Info.plist keys */\n\n");
fprintf(f, "CFBundleName = \"BOINC\";\n");
fprintf(f, "CFBundleShortVersionString = \"BOINC version %s\";\n", BOINC_VERSION_STRING);
fprintf(f, "CFBundleGetInfoString = \"BOINC version %s, Copyright 2005 University of California.\";\n", BOINC_VERSION_STRING);
fprintf(f, "CFBundleName = \"%s\";\n", brand);
fprintf(f, "CFBundleShortVersionString = \"%s version %s\";\n", brand, BOINC_VERSION_STRING);
fprintf(f, "CFBundleGetInfoString = \"%s version %s, Copyright 2005 University of California.\";\n", brand, BOINC_VERSION_STRING);
retval = fclose(f);
}
else {
@ -176,10 +181,9 @@ bail:
}
int MakeInstallerInfoPlistFile() {
int MakeInstallerInfoPlistFile(char* myPath, char* brand) {
int retval = 0;
FILE *f;
char *myPath = "./Pkg-Info.plist";
if (IsFileCurrent(myPath))
return 0;
@ -191,7 +195,7 @@ int MakeInstallerInfoPlistFile() {
fprintf(f, "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n");
fprintf(f, "<plist version=\"1.0\">\n<dict>\n");
fprintf(f, "\t<key>CFBundleGetInfoString</key>\n");
fprintf(f, "\t<string>BOINC Manager %s</string>\n", BOINC_VERSION_STRING);
fprintf(f, "\t<string>%s %s</string>\n", brand, BOINC_VERSION_STRING);
fprintf(f, "\t<key>CFBundleIdentifier</key>\n\t<string>edu.berkeley.boinc</string>\n");
fprintf(f, "\t<key>CFBundleShortVersionString</key>\n");
fprintf(f, "\t<string>%s</string>\n", BOINC_VERSION_STRING);

View File

@ -242,10 +242,12 @@ OSStatus initBOINCApp() {
{
#if 0 // Code for separate data in each user's private directory
strcpy(buf, getenv("HOME"));
strcat(buf, "/Library/Application Support/BOINC Data");
strcat(buf, "/Library/Application Support/");
#else // All users share the same data
strcpy(buf, "/Library/Application Support/BOINC Data");
strcpy(buf, "/Library/Application Support/");
#endif
strcat(buf, gBrandText);
strcat(buf, " Data");
status = chdir(buf);
if (status) {
perror("chdir");

View File

@ -0,0 +1,5 @@
/* Localized versions of Info.plist keys */
CFBundleName = "GridRepublic";
CFBundleShortVersionString = "GridRepublic version 5.3.13";
CFBundleGetInfoString = "GridRepublic version 5.3.13, Copyright 2005 University of California.";

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>GridRepublic</string>
<key>CFBundleIdentifier</key>
<string>edu.berkeley.boincsaver</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>GridRepublic</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>5.3.13</string>
<key>NSPrincipalClass</key>
<string>BOINC_Saver_ModuleView</string>
</dict>
</plist>

View File

@ -225,8 +225,6 @@
DDD7EF4707F0526E00BA3B90 /* SystemMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = DD40CDFE07F038990096C645 /* SystemMenu.m */; };
DDD7F08007F0686100BA3B90 /* SystemMenu.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = DD40CDF907F0386A0096C645 /* SystemMenu.bundle */; };
DDDC35260909212D006076EC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F51BDF4903086C46012012A7 /* InfoPlist.strings */; };
DDEB3AD50980CD180087E200 /* GR_Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DDEB3AD40980CD180087E200 /* GR_Info.plist */; };
DDEB3CA90981084A0087E200 /* GridRepublic.icns in Resources */ = {isa = PBXBuildFile; fileRef = DDEB3CA80981084A0087E200 /* GridRepublic.icns */; };
DDEF38900802B73500E87552 /* ViewStatistics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DDEF388E0802B73500E87552 /* ViewStatistics.cpp */; };
DDF166AB08DF898A00C8C4A5 /* mac_backtrace.C in Sources */ = {isa = PBXBuildFile; fileRef = DDF166A908DF898A00C8C4A5 /* mac_backtrace.C */; };
DDF166C308DF8AEE00C8C4A5 /* mac_backtrace.C in Sources */ = {isa = PBXBuildFile; fileRef = DDF166A908DF898A00C8C4A5 /* mac_backtrace.C */; };
@ -873,6 +871,12 @@
DDEF388F0802B73500E87552 /* ViewStatistics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ViewStatistics.h; path = ../clientgui/ViewStatistics.h; sourceTree = SOURCE_ROOT; };
DDF166A908DF898A00C8C4A5 /* mac_backtrace.C */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = mac_backtrace.C; path = ../lib/mac_backtrace.C; sourceTree = SOURCE_ROOT; };
DDF166AA08DF898A00C8C4A5 /* mac_backtrace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = mac_backtrace.h; path = ../lib/mac_backtrace.h; sourceTree = SOURCE_ROOT; };
DDF1F47A09822C3400482C89 /* preinstall */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.csh; name = preinstall; path = ../mac_installer/preinstall; sourceTree = SOURCE_ROOT; };
DDF1F47B09822C3400482C89 /* preupgrade */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.csh; name = preupgrade; path = ../mac_installer/preupgrade; sourceTree = SOURCE_ROOT; };
DDF1F4A409822F8A00482C89 /* GR-Branding */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = "GR-Branding"; path = "../mac_installer/GR-Branding"; sourceTree = SOURCE_ROOT; };
DDF1F4BC0982307300482C89 /* GR-preinstall */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.csh; name = "GR-preinstall"; path = "../mac_installer/GR-preinstall"; sourceTree = SOURCE_ROOT; };
DDF1F4BD0982307300482C89 /* GR-preupgrade */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.csh; name = "GR-preupgrade"; path = "../mac_installer/GR-preupgrade"; sourceTree = SOURCE_ROOT; };
DDF1F5550982531600482C89 /* GR-ScreenSaver-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = "GR-ScreenSaver-Info.plist"; sourceTree = SOURCE_ROOT; };
DDF3028907CCCE2C00701169 /* BOINCMgr.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = BOINCMgr.icns; path = ../client/mac/BOINCMgr.icns; sourceTree = SOURCE_ROOT; };
DDF9385407E28906004DC076 /* checkin_notes */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = checkin_notes; path = ../checkin_notes; sourceTree = SOURCE_ROOT; };
F5159562029EB02001F5651B /* md5.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../lib/md5.c; sourceTree = SOURCE_ROOT; };
@ -1044,6 +1048,7 @@
DD40CDFA07F0386B0096C645 /* SystemMenu-Info.plist */,
DD96AFFA0811075100A06F22 /* ScreenSaver-Info.plist */,
DD1277B5081F3D67007B5DE1 /* Installer-Info.plist */,
DDF1F5550982531600482C89 /* GR-ScreenSaver-Info.plist */,
);
name = "«PROJECTNAME»";
sourceTree = "<group>";
@ -1054,10 +1059,11 @@
DD0C5A8A0816711400CEC5D7 /* boinc.tiff */,
DD48091E081A66F100A174AA /* BOINCSaver.nib */,
DD64E7D507D89DB800B176C8 /* Info.plist */,
DDEB3AD40980CD180087E200 /* GR_Info.plist */,
DDF3028907CCCE2C00701169 /* BOINCMgr.icns */,
DDEB3CA80981084A0087E200 /* GridRepublic.icns */,
F51BDF4903086C46012012A7 /* InfoPlist.strings */,
DDEB3AD40980CD180087E200 /* GR_Info.plist */,
DDEB3CA80981084A0087E200 /* GridRepublic.icns */,
DDF1F4A409822F8A00482C89 /* GR-Branding */,
);
name = Resources;
sourceTree = SOURCE_ROOT;
@ -1080,8 +1086,12 @@
DD1277BE081F3E73007B5DE1 /* LoginItemAPI.c */,
DD1277BF081F3E73007B5DE1 /* LoginItemAPI.h */,
DD1277C0081F3E73007B5DE1 /* PostInstall.cpp */,
DDF1F47A09822C3400482C89 /* preinstall */,
DDF1F47B09822C3400482C89 /* preupgrade */,
DDB8D5A5081FC8C700A5A1E8 /* postinstall */,
DD127880081F464E007B5DE1 /* postupgrade */,
DDF1F4BC0982307300482C89 /* GR-preinstall */,
DDF1F4BD0982307300482C89 /* GR-preupgrade */,
);
name = mac_installer;
sourceTree = SOURCE_ROOT;
@ -2053,8 +2063,6 @@
DD095EF407D87B1600362260 /* boinc in Resources */,
DD095F5A07D883E500362260 /* BOINCMgr.icns in Resources */,
DD095F5B07D883E600362260 /* InfoPlist.strings in Resources */,
DDEB3AD50980CD180087E200 /* GR_Info.plist in Resources */,
DDEB3CA90981084A0087E200 /* GridRepublic.icns in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IFPkgDescriptionDescription</key>
<string></string>
<key>IFPkgDescriptionTitle</key>
<string>GridRepublic</string>
</dict>
</plist>

View File

@ -0,0 +1,76 @@
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf330
{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid1}}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
\margl1440\margr1440\vieww9000\viewh9000\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc
\f0\b\fs28 \cf0 Macintosh GridRepublic Version 5.2.14 Release Notes\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\f1\b0\fs24 \cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\qc
\cf0 http://gridrepublic.org\
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
\f0\b \cf0 Troubleshooting tip:
\f1\b0 The installer writes a file /Library/Receipts/GridRepublic.pkg. If the installer refuses to let you install, trash this file and try again.\
\
GridRepublic requires Macintosh OS X version 10.3 or greater.\
\
Although this installer adds the GridRepublic screen saver to your system, it does not change your screen saver settings. To select GridRepublic as your screen saver, use the Screen Saver or Screen Effects panel in the System Preferences (accessible from the Apple menu). \
\
It may take a minute after the screen saver starts before the science application graphics appear. At the time of this release, SETI@home and Einstein@home are the only GridRepublic projects which have implemented screen saver support for the Macintosh. We expect other GridRepublic projects to do so soon.\
\
Note: on some versions of the Mac OS, you may not be able to exit the GridRepublic screen saver by moving the mouse; you may need to press the mouse button or press any key on the keyboard to exit. \
\
The installer places two items onto your hard drive: GridRepublic.app in your /Applications folder and GridRepublicSaver.saver in your /Library/Screen Savers folder. \
\
It also sets GridRepublic as one of the items to automatically start whenever the user is logged in. You can add or remove Login Items by using the Accounts Pane in the System Preferences (accessible from the Apple menu). (These items are called "Login Items" in OS 10.4 or "Startup Items" in OS 10.3.)\
\
The installer creates the GridRepublic Data folder in your /Library/Application Support folder. If you have previously been running GridRepublic in a different folder, copy your data into this folder. \
\
All users who log in on the same Macintosh will share one set of GridRepublic data, ensuring that work units are processed in the most timely manner. However, the installer sets GridRepublic as a Startup item only for the user who ran the installer. To have GridRepublic start automatically when other users log in, add it to each user's Startup Items as described above.\
\
You can move GridRepublic to any folder you wish. If you do so, you will need to update the information in each user's Startup Items. In most cases, the GridRepublic screen saver should still work properly. If it does not, move GridRepublic back to the Applications folder.\
\
The installer sets the "setuid" permission flag for the GridRepublic, which allows it to write to the shared GridRepublic Data regardless of which user is logged in. If you copy GridRepublic or the GridRepublic core client to your computer without using the installer, some users may not be able to run it properly.\
\
\pard\pardeftab720\ql\qnatural
\cf0 To completely remove (
\f0\b uninstall
\f1\b0 ) GridRepublic from your Macintosh:\
\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
\ls1\ilvl0\cf0 \'a5 Move the following files to the trash:\
\pard\tx940\tx1440\pardeftab720\li1200\fi-1200\ql\qnatural
\ls1\ilvl1\cf0 \'a5 GridRepublic.app (from your
\f0\b /Applications/
\f1\b0 folder)\
\'a5 GridRepublicSaver.saver (from your
\f0\b /Library/Screen Savers/
\f1\b0 folder)\
\'a5 the
\f0\b GridRepublic Data/
\f1\b0 folder (from your
\f0\b /Library/Applications Support/
\f1\b0 folder.)\
\pard\tx220\tx720\pardeftab720\li400\fi-400\ql\qnatural
\ls1\ilvl0\cf0 \'a5 Open the
\f0\b Accounts
\f1\b0 pane in the
\f0\b System Preferences
\f1\b0 (accessible from the Apple menu), and remove GridRepublic from your list of
\f0\b Login Items
\f1\b0 (or
\f0\b Startup Items
\f1\b0 under OS 10.3.)\
\pard\tx220\tx720\pardeftab720\li360\fi-360\ql\qnatural
\ls1\ilvl0\cf0 \'a5 Open
\f0\b System Preferences
\f1\b0 from the Apple menu. Select
\f0\b Desktop & Screen Saver
\f1\b0 and select a different screen saver.\
}

View File

@ -0,0 +1,11 @@
#!/bin/csh
##
# Pre-Install Script for Macintosh GridRepublic for OS X revised 1/21/06
##
# If we are replacing an earlier BOINC installation, fix the data directory name before installing
mv -n "/Library/Application Support/BOINC Data" "/Library/Application Support/GridRepublic Data"
exit 0

View File

@ -0,0 +1,11 @@
#!/bin/csh
##
# Pre-Upgrade Script for Macintosh GridRepublic for OS X revised 1/21/06
##
# If we are replacing an earlier BOINC installation, fix the data directory name before installing
mv -n "/Library/Application Support/BOINC Data" "/Library/Application Support/GridRepublic Data"
exit 0

View File

@ -73,23 +73,33 @@ int main(int argc, char *argv[])
if (err == noErr)
err = GetProcessPID(&installerPSN , &installerPID);
brandID = GetBrandID();
err = Gestalt(gestaltSystemVersion, &response);
if (err != noErr)
return err;
if (response < 0x1030) {
::SetFrontProcess(&ourProcess);
StandardAlert (kAlertStopAlert, "\pSorry, BOINC requires system 10.3 or higher.",
// Remove everything we've installed
if (brandID == 1) {
StandardAlert (kAlertStopAlert, "\pSorry, GridRepublic requires system 10.3 or higher.",
NULL, NULL, &itemHit);
system ("rm -rf /Applications/GridRepublic.app");
system ("rm -rf /Library/Screen\\ Savers/GridRepublic.saver");
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.",
NULL, NULL, &itemHit);
} else {
system ("rm -rf /Applications/BOINCManager.app");
system ("rm -rf /Library/Screen\\ Savers/BOINCSaver.saver");
system ("rm -rf /Library/Application\\ Support/BOINC\\ Data");
system ("rm -rf /Library/Receipts/BOINC.pkg");
}
err = kill(installerPID, SIGKILL);
// Remove everything we've installed
system ("rm -rf /Applications/BOINCManager.app");
system ("rm -rf /Library/Screen\\ Savers/BOINCSaver.saver");
system ("rm -rf /Library/Application\\ Support/BOINC\\ Data");
system ("rm -rf /Library/Receipts/BOINC.pkg");
ExitToShell();
}
@ -124,40 +134,48 @@ int main(int argc, char *argv[])
}
// Set owner of BOINCManager and contents, including core client
sprintf(s, "chown -Rf %s /Applications/BOINCManager.app", p);
system (s);
if (brandID == 1) {
sprintf(s, "chown -Rf %s /Applications/GridRepublic.app", p);
system (s);
// Set owner of BOINC Screen Saver
sprintf(s, "chown -Rf %s /Library/Screen\\ Savers/BOINCSaver.saver", p);
system (s);
// Set owner of BOINC Screen Saver
sprintf(s, "chown -Rf %s /Library/Screen\\ Savers/GridRepublic.saver", p);
system (s);
// Set owner of BOINC Data
sprintf(s, "chown -Rf %s /Library/Application\\ Support/BOINC\\ Data", p);
system (s);
// Set owner of BOINC Data
sprintf(s, "chown -Rf %s /Library/Application\\ Support/GridRepublic\\ Data", p);
system (s);
brandID = GetBrandID();
if (brandID == 1) {
system ("rm -rf /Applications/GridRepublic.app");
system ("mv -f /Applications/BOINCManager.app/ /Applications/GridRepublic.app/");
system ("mv -f /Applications/GridRepublic.app/Contents/Info.plist /Applications/GridRepublic.app/Contents/BOINC_Info.plist");
system ("cp -fp /Applications/GridRepublic.app/Contents/Resources/GR_Info.plist /Applications/GridRepublic.app/Contents/Info.plist");
system ("mv -f /Applications/GridRepublic.app/Contents/MacOS/BOINCManager /Applications/GridRepublic.app/Contents/MacOS/GridRepublic");
system ("cp -fp Contents/Resources/Branding /Applications/GridRepublic.app/Contents/Resources/Branding");
system ("rm -rf /Library/Screen\\ Savers/GridRepublic.saver");
system ("mv -f /Library/Screen\\ Savers/BOINCSaver.saver /Library/Screen\\ Savers/GridRepublic.saver");
system ("rm -rf /Applications/BOINCManager.app");
system ("rm -rf /Library/Screen\\ Savers/BOINCSaver.saver");
system ("chmod -R a+s /Applications/GridRepublic.app");
err_fsref = FSPathMakeRef((StringPtr)"/Applications/GridRepublic.app", &fileRef, NULL);
} else {
sprintf(s, "chown -Rf %s /Applications/BOINCManager.app", p);
system (s);
// Set owner of BOINC Screen Saver
sprintf(s, "chown -Rf %s /Library/Screen\\ Savers/BOINCSaver.saver", p);
system (s);
// Set owner of BOINC Data
sprintf(s, "chown -Rf %s /Library/Application\\ Support/BOINC\\ Data", p);
system (s);
system ("rm -rf /Applications/GridRepublic.app"); // Installing BOINC over GridRepublic
system ("rm -rf /Library/Screen\\ Savers/GridRepublic.saver"); // Installing BOINC over GridRepublic
}
system ("chmod -R a+s /Applications/BOINCManager.app");
if (brandID == 1)
err_fsref = FSPathMakeRef((StringPtr)"/Applications/GridRepublic.app", &fileRef, NULL);
else
err_fsref = FSPathMakeRef((StringPtr)"/Applications/BOINCManager.app", &fileRef, NULL);
}
if (err_fsref == noErr)
if (err_fsref == noErr) {
err = LSRegisterFSRef(&fileRef, true);
if (err_fsref == noErr)
err = LSOpenFSRef(&fileRef, NULL);
}
// Installer is running as root. We must setuid back to the logged in user
// in order to add a startup item to the user's login preferences
@ -200,9 +218,6 @@ int main(int argc, char *argv[])
break;
}
if (err_fsref == noErr)
err = LSOpenFSRef(&fileRef, NULL);
return 0;
}

View File

@ -1,11 +1,9 @@
#!/bin/csh
##
# post-Install Script for Macintosh BOINC Manager for OS X revised 5/21/05
# post-Install Script for Macintosh BOINC Manager for OS X revised 1/21/06
##
chmod -R a+s /Applications/BOINCManager.app
cd "$1"
# Run the Postinstall Application
Contents/Resources/PostInstall.app/Contents/MacOS/PostInstall &

View File

@ -1,11 +1,9 @@
#!/bin/csh
##
# post-Upgrade Script for Macintosh BOINC Manager for OS X revised 5/21/05
# post-Upgrade Script for Macintosh BOINC Manager for OS X revised 1/21/06
##
chmod -R a+s /Applications/BOINCManager.app
cd "$1"
# Run the Postinstall Application
Contents/Resources/PostInstall.app/Contents/MacOS/PostInstall &

11
mac_installer/preinstall Normal file
View File

@ -0,0 +1,11 @@
#!/bin/csh
##
# Pre-Install Script for Macintosh BOINC Manager for OS X revised 1/21/06
##
# If we are replacing an earlier GridRepublic installation, fix the data directory name before installing
mv -n "/Library/Application Support/GridRepublic Data" "/Library/Application Support/BOINC Data"
exit 0

11
mac_installer/preupgrade Normal file
View File

@ -0,0 +1,11 @@
#!/bin/csh
##
# Pre-Upgrade Script for Macintosh BOINC Manager for OS X revised 1/21/06
##
# If we are replacing an earlier GridRepublic installation, fix the data directory name before installing
mv -n "/Library/Application Support/GridRepublic Data" "/Library/Application Support/BOINC Data"
exit 0

View File

@ -0,0 +1,137 @@
#!/bin/csh
##
# Release Script for Macintosh BOINC Manager 1/21/06 by Charlie Fenton
##
## Usage:
## cd to the root directory of the boinc tree, for example:
## cd [path]/boinc
##
## Invoke this script with the three parts of version number as arguments.
## For example, if the version is 3.2.1:
## source [path_to_this_script] 3 2 1
##
## This will create a director "BOINC_Installer" in the parent directory of
## the current directory
if [ $# -lt 3 ]; then
echo "Usage:"
echo " cd [path]/boinc"
echo " source [path_to_this_script] major_version minor_version revision_number"
exit 0
fi
pushd ./
## XCode 2.x has separate directories for Development and Deployment build products
if [ "$4" = "-dev" ]; then
if [ -d mac_build/build/Development/ ]; then
BUILDPATH="mac_build/build/Development"
else
BUILDPATH="mac_build/build"
fi
else
if [ -d mac_build/build/Deployment/ ]; then
BUILDPATH="mac_build/build/Deployment"
else
BUILDPATH="mac_build/build"
fi
fi
sudo rm -dfR ../BOINC_Installer/GR_Installer\ Resources/
sudo rm -dfR ../BOINC_Installer/GR_Pkg_Root
mkdir -p ../BOINC_Installer/GR_Installer\ Resources/
cp -fp mac_Installer/License.rtf ../BOINC_Installer/GR_Installer\ Resources/
cp -fp mac_installer/GR-ReadMe.rtf ../BOINC_Installer/GR_Installer\ Resources/ReadMe.rtf
cp -fp mac_installer/GR-preinstall ../BOINC_Installer/GR_Installer\ Resources/preinstall
cp -fp mac_installer/GR-preupgrade ../BOINC_Installer/GR_Installer\ Resources/preupgrade
cp -fp mac_installer/postinstall ../BOINC_Installer/GR_Installer\ Resources/
cp -fp mac_installer/postupgrade ../BOINC_Installer/GR_Installer\ Resources/
cp -fpR $BUILDPATH/Postinstall.app ../BOINC_Installer/GR_Installer\ Resources/
mkdir -p ../BOINC_Installer/GR_Pkg_Root
mkdir -p ../BOINC_Installer/GR_Pkg_Root/Applications
mkdir -p ../BOINC_Installer/GR_Pkg_Root/Library
mkdir -p ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers
mkdir -p ../BOINC_Installer/GR_Pkg_Root/Library/Application\ Support
mkdir -p ../BOINC_Installer/GR_Pkg_Root/Library/Application\ Support/GridRepublic\ Data
mkdir -p ../BOINC_Installer/GR_Pkg_Root/Library/Application\ Support/GridRepublic\ Data/locale
cp -fpR $BUILDPATH/BOINCManager.app ../BOINC_Installer/GR_Pkg_Root/Applications/
cp -fpR $BUILDPATH/BOINCSaver.saver ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/
## Copy the localization files into the installer tree
## Old way copies CVS and *.po files which are not needed
## cp -fpR locale/client/ ../BOINC_Installer/GR_Pkg_Root/Library/Application\ Support/BOINC\ Data/locale
## sudo rm -dfR ../BOINC_Installer/GR_Pkg_Root/Library/Application\ Support/BOINC\ Data/locale/CVS
## New way copies only *.mo files (adapted from boinc/sea/make-tar.sh)
find locale/client -name '*.mo' | cut -d '/' -f 3 | awk '{print "-p \"../BOINC_Installer/GR_Pkg_Root/Library/Application Support/GridRepublic\ Data/locale/"$0"\""}' | xargs mkdir
find locale/client -name '*.mo' | cut -d '/' -f 3,4 | awk '{print "cp \"locale/client/"$0"\" \"../BOINC_Installer/GR_Pkg_Root/Library/Application Support/GridRepublic\ Data/locale/"$0"\""}' | bash
## Modify for Grid Republic
# Rename the Manager's bundle and its executable inside the bundle
mv -f ../BOINC_Installer/GR_Pkg_Root/Applications/BOINCManager.app/ ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/
mv -f ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/Contents/MacOS/BOINCManager ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/Contents/MacOS/GridRepublic
# Replace the Manager's info.plist, InfoPlist.strings, BOINCMgr.icns
cp -fp mac_build/GR_Info.plist ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/Contents/Info.plist
cp -fp mac_build/GR-InfoPlist.strings ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/Contents/Resources/English.lproj/InfoPlist.strings
cp -fp client/mac/GridRepublic.icns ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/Contents/Resources/GridRepublic.icns
rm -f ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/Contents/Resources/BOINCMgr.icns
# Copy Branding file into both Application Bundle and Installer Package
cp -fp mac_installer/GR-Branding ../BOINC_Installer/GR_Pkg_Root/Applications/GridRepublic.app/Contents/Resources/Branding
cp -fp mac_installer/GR-Branding ../BOINC_Installer/GR_Installer\ Resources/Branding
# Rename the screensaver bundle and its executable inside the bundle
mv -f ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/BOINCSaver.saver ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/GridRepublic.saver
mv -f ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/GridRepublic.saver/Contents/MacOS/BOINCSaver ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/GridRepublic.saver/Contents/MacOS/GridRepublic
# Replace screensaver's info.plist, InfoPlist.strings, boinc.tif
cp -fp mac_build/GR-ScreenSaver-Info.plist ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/GridRepublic.saver/Contents/Info.plist
cp -fp mac_build/GR-InfoPlist.strings ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/GridRepublic.saver/Contents/Resources/English.lproj/InfoPlist.strings
cp -fp clientgui/mac/gridrepublic.tiff ../BOINC_Installer/GR_Pkg_Root/Library/Screen\ Savers/GridRepublic.saver/Contents/Resources/boinc.tiff
## Fix up ownership and permissions
sudo chown -R root:admin ../BOINC_Installer/GR_Pkg_Root/*
sudo chmod -R 775 ../BOINC_Installer/GR_Pkg_Root/*
sudo chmod 1775 ../BOINC_Installer/GR_Pkg_Root/Library
sudo chown -R 501:admin ../BOINC_Installer/GR_Pkg_Root/Library/Application\ Support/*
sudo chmod -R 755 ../BOINC_Installer/GR_Pkg_Root/Library/Application\ Support/*
sudo chown -R root:admin ../BOINC_Installer/GR_Installer\ Resources/*
sudo chmod -R 755 ../BOINC_Installer/GR_Installer\ Resources/*
sudo rm -dfR ../BOINC_Installer/New_Release_GR_$1_$2_$3/
mkdir -p ../BOINC_Installer/New_Release_GR_$1_$2_$3/
mkdir -p ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_macOSX_powerpc
mkdir -p ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_powerpc-apple-darwin
mkdir -p ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_macOSX_SymbolTables
cp -fp mac_installer/GR-ReadMe.rtf ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_macOSX_powerpc/ReadMe.rtf
sudo chown -R 501:admin ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_macOSX_powerpc/ReadMe.rtf
sudo chmod -R 755 ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_macOSX_powerpc/ReadMe.rtf
cp -fpR $BUILDPATH/boinc ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_powerpc-apple-darwin/
cp -fpR $BUILDPATH/boinc_cmd ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_powerpc-apple-darwin/
sudo chown -R root:admin ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_powerpc-apple-darwin/*
sudo chmod -R 755 ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_powerpc-apple-darwin/*
cp -fpR $BUILDPATH/SymbolTables ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_macOSX_SymbolTables/
/Developer/Tools/packagemaker -build -p ../BOINC_Installer/New_Release_GR_$1_$2_$3/gridrepublic_$1.$2.$3_macOSX_powerpc/GridRepublic.pkg -f ../BOINC_Installer/GR_Pkg_Root -r ../BOINC_Installer/GR_Installer\ Resources/ -i mac_build/GR-Pkg-Info.plist -d mac_Installer/GR-Description.plist -ds
cd ../BOINC_Installer/New_Release_GR_$1_$2_$3
zip -rq gridrepublic_$1.$2.$3_macOSX_powerpc.zip gridrepublic_$1.$2.$3_macOSX_powerpc
zip -rq gridrepublic_$1.$2.$3_powerpc-apple-darwin.zip gridrepublic_$1.$2.$3_powerpc-apple-darwin
zip -rq gridrepublic_$1.$2.$3_macOSX_SymbolTables.zip gridrepublic_$1.$2.$3_macOSX_SymbolTables
popd
return 0

View File

@ -22,6 +22,8 @@ echo " source [path_to_this_script] major_version minor_version revision_numbe
exit 0
fi
pushd ./
## XCode 2.x has separate directories for Development and Deployment build products
if [ "$4" = "-dev" ]; then
if [ -d mac_build/build/Development/ ]; then
@ -44,6 +46,8 @@ mkdir -p ../BOINC_Installer/Installer\ Resources/
cp -fp mac_Installer/License.rtf ../BOINC_Installer/Installer\ Resources/
cp -fp mac_installer/ReadMe.rtf ../BOINC_Installer/Installer\ Resources/
cp -fp mac_installer/preinstall ../BOINC_Installer/Installer\ Resources/
cp -fp mac_installer/preupgrade ../BOINC_Installer/Installer\ Resources/
cp -fp mac_installer/postinstall ../BOINC_Installer/Installer\ Resources/
cp -fp mac_installer/postupgrade ../BOINC_Installer/Installer\ Resources/
@ -69,31 +73,27 @@ cp -fpR $BUILDPATH/BOINCSaver.saver ../BOINC_Installer/Pkg_Root/Library/Screen\
find locale/client -name '*.mo' | cut -d '/' -f 3 | awk '{print "-p \"../BOINC_Installer/Pkg_Root/Library/Application Support/BOINC Data/locale/"$0"\""}' | xargs mkdir
find locale/client -name '*.mo' | cut -d '/' -f 3,4 | awk '{print "cp \"locale/client/"$0"\" \"../BOINC_Installer/Pkg_Root/Library/Application Support/BOINC Data/locale/"$0"\""}' | bash
## Fix up ownership and permissions
sudo chown -R root:admin ../BOINC_Installer/Pkg_Root/*
sudo chmod -R 775 ../BOINC_Installer/Pkg_Root/*
sudo chmod 1775 ../BOINC_Installer/Pkg_Root/Library
sudo chown -R 501:wheel ../BOINC_Installer/Pkg_Root/Applications/*
sudo chmod -R 755 ../BOINC_Installer/Pkg_Root/Applications/*
sudo chown -R 501:wheel ../BOINC_Installer/Pkg_Root/Library/Application\ Support/*
sudo chown -R 501:admin ../BOINC_Installer/Pkg_Root/Library/Application\ Support/*
sudo chmod -R 755 ../BOINC_Installer/Pkg_Root/Library/Application\ Support/*
sudo chown -R 501:wheel ../BOINC_Installer/Pkg_Root/Library/Screen\ Savers/*
sudo chmod -R 755 ../BOINC_Installer/Pkg_Root/Library/Screen\ Savers/*
sudo chown -R root:admin ../BOINC_Installer/Installer\ Resources/*
sudo chmod -R 755 ../BOINC_Installer/Installer\ Resources/*
sudo rm -dfR ../BOINC_Installer/New_Release_$1_$2_$3/
mkdir -p ../BOINC_Installer/New_Release_$1_$2_$3/
mkdir -p ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX
mkdir -p ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_powerpc
mkdir -p ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_powerpc-apple-darwin
mkdir -p ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_SymbolTables
cp -fp mac_installer/ReadMe.rtf ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX
sudo chown -R 501:wheel ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX/ReadMe.rtf
sudo chmod -R 755 ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX/ReadMe.rtf
cp -fp mac_installer/ReadMe.rtf ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_powerpc
sudo chown -R 501:admin ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_powerpc/ReadMe.rtf
sudo chmod -R 755 ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_powerpc/ReadMe.rtf
cp -fpR $BUILDPATH/boinc ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_powerpc-apple-darwin/
cp -fpR $BUILDPATH/boinc_cmd ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_powerpc-apple-darwin/
@ -102,10 +102,12 @@ sudo chmod -R 755 ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_powerpc
cp -fpR $BUILDPATH/SymbolTables ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_SymbolTables/
/Developer/Tools/packagemaker -build -p ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX/BOINC.pkg -f ../BOINC_Installer/Pkg_Root -r ../BOINC_Installer/Installer\ Resources/ -i mac_build/Pkg-Info.plist -d mac_Installer/Description.plist -ds
/Developer/Tools/packagemaker -build -p ../BOINC_Installer/New_Release_$1_$2_$3/boinc_$1.$2.$3_macOSX_powerpc/BOINC.pkg -f ../BOINC_Installer/Pkg_Root -r ../BOINC_Installer/Installer\ Resources/ -i mac_build/Pkg-Info.plist -d mac_Installer/Description.plist -ds
cd ../BOINC_Installer/New_Release_$1_$2_$3
zip -rq boinc_$1.$2.$3_macOSX.zip boinc_$1.$2.$3_macOSX
zip -rq boinc_$1.$2.$3_macOSX_powerpc.zip boinc_$1.$2.$3_macOSX_powerpc
zip -rq boinc_$1.$2.$3_powerpc-apple-darwin.zip boinc_$1.$2.$3_powerpc-apple-darwin
zip -rq boinc_$1.$2.$3_macOSX_SymbolTables.zip boinc_$1.$2.$3_macOSX_SymbolTables
popd
return 0