Re: WO451 on Jaguar/Panther/Tiger [was: Re: Side effect of OSX on Intel announcement]
Giulio Cesare Solaroli <[email protected]>
| Newsgroups | gmane.comp.web.webobjects.general |
|---|---|
| Message-ID | <[email protected]> |
Hi Patrick, here are some detailed instructions on how to run WebObjects 4.5.1 (objective-C) at least on Jaguar. I didn't write them (I have forgotten the original author). All our applications works fine, but we don't use neither WOTaskd nor WOMonitor, so I don't know if these suggestions could be of any help to you. Regards, Giulio Cesare Solaroli ============================== All of this needs to be done as root, so be extra careful! 1. Edit /System/Library/Frameworks/WebObjects.framework/Resources/taginfo.plist The second to last line needs a semicolon after the "}" character. 2. Make a directory named /Developer/PrivateWO451Frameworks and put a copy of AppSupport.framework and AppleUtilities.framework in there. These can be found on a 10.1 system in /System/Library/PrivateFrameworks Since frameworks contain internal symbolic links, I usually just tar them on 10.1 and untar them on 10.2 to retain the links. 3. in /Developer/Applications/EOModeler.app/Contents/MacOS rename EOModeler to EOModeler.orig 4. Create a script named EOModeler (remember to use chmod +x to make it executable) with the following contents: #!/bin/sh export DYLD_FRAMEWORK_PATH=/Developer/PrivateWO451Frameworks /Developer/Applications/EOModeler.app/Contents/MacOS/EOModeler.orig What this does is trick Finder into running your script when you click on EOModeler.app instead of the binary. The script will setup the environment to add the private frameworks to the framework search path, and then run the original binary. Check the dyld man page for details on this trick. 5. Do the same thing in /Developer/Applications/WebObjectsBuilder.app/Contents/MacOS. Here is the script. Be sure to escape the space characters. #!/bin/sh export DYLD_FRAMEWORK_PATH=/Developer/PrivateWO451Frameworks /Developer/Applications/WebObjects\ Builder.app/Contents/MacOS/WebObjects\ Builder.orig Create a text file named /System/Library/SystemResources/PrecompLists/WebObjects451.precompList with the following contents: /System/Library/Frameworks/EOControl.framework/Versions/B/Headers/EOControl.p /System/Library/Frameworks/EOAccess.framework/Versions/B/Headers/EOAccess.p /System/Library/Frameworks/EOInterface.framework/Versions/B/Headers/EOInterface.p /System/Library/Frameworks/WebObjects.framework/Versions/A/Headers/WebObjects.p /System/Library/Frameworks/EOControl.framework/Versions/B/Headers/EOControl.pp /System/Library/Frameworks/EOAccess.framework/Versions/B/Headers/EOAccess.pp /System/Library/Frameworks/EOInterface.framework/Versions/B/Headers/EOInterface.pp /System/Library/Frameworks/WebObjects.framework/Versions/A/Headers/WebObjects.pp [ 6. run the following 2 commands: fixPrecomps -gcc3all fixPrecomps -gcc2 This will make sure all of the precompiled headers are up to date for gcc2 and gcc3 use. Otherwise compiles are VERY slow and your object files are huge. 7. Run "gcc_select 2" to make gcc 2.9.5 the default compiler. PBWO makefiles don't seem to work with gcc 3.1. If you ever need to switch back to gcc3, just run 'gcc_select 3'. You can toggle these back and forth. The change is permanent (even through reboots), since the command just manipulates symlinks. I think this is all of the steps. This configuration seems to work for me, but I haven't done very extensive testing yet. Good luck! On 6/10/05, Patrick Middleton <[email protected]> wrote: > > On 9 Jun 2005, at 18:07, Pierce T. Wetter III wrote: > > > ... > > Yes. Doing it right now on Tiger! > >> > >> I would be very interested in knowing how did you achieve that, as we > >> are worried abount the current Apple hardware not beeing able to run > >> MacOS 10.2. > > > > Well, we buy G5 XServes all the time, so here goes. > > > > At this point, we have this all in a giant tgz file we just extract, > > so this is off the top of my head. > > > > Basically, starting from a working 10.x install of WO4.5.1P4, tar up > > the following files/directories: > > > > Developer/Applications/EOModeler.app/ > > Developer/Applications/WebObjects Builder.app/ > > System/Library/Frameworks/EOAccess.framework/ > > System/Library/Frameworks/EOControl.framework/ > > System/Library/Frameworks/EOInterface.framework/ > > System/Library/Frameworks/EOModeler.framework/ > > System/Library/Frameworks/Plot.framework/ > > System/Library/Frameworks/WebObjects.framework/ > > System/Library/Frameworks/WOExtensions.framework/ > > System/Library/PrivateFrameworks/MultiScript.framework/ > > System/Library/PrivateFrameworks/XML.framework/ > > System/Library/StartupItems/WebObjects/ > > System/Library/StartupItems/WebObjects/StartupParameters.plist > > System/Library/StartupItems/WebObjects/WebObjects > > System/Library/WebObjects/Adaptors/ > > System/Library/WebObjects/Applications/ > > System/Library/WebObjects/Executables/ > > > > Basically, you need to get the two PrivateFrameworks above, and there > > are a couple of .plist files in WebObjects that were missing a > > trailing ';'. The 10.0 .plist parser was more flexible, the 10.1+ > > complains. You can fix it by just opening it in a text editor and > > adding a ; to the end of the file. > > > > Though if you're running on 10.2, you've probably fixed all that > > already. > > > > Repeat for a deployment install instead of a developer install, > > though in that case you don't need some of the above stuff. > > > > That's pretty much it. WO is basically a command line process, so it > > doesn't depend on stuff. > > > > Then in your xcode projects (after upgrading them): > > > > The new KVC stuff ends up overriding the old WO KVC stuff, so you > > have to include Foundation.framework LAST, after all the WO EOF stuff > > so that WO uses the old KVC stuff instead of the new KVC stuff. I > > think that happened in Panther? so that may be your problem. > > > > > > The newer operating systems are also more fussy about if > > "application"includes framework1, but not framework2, but framework1 > > included framework2, it used to be ok. Now "application" has to > > include framework2 as well if it uses it. > > OK I'm interested. Very interested. > > The only plist I found that appeared to need tweaking is > /System/Library/Frameworks/WebObjects.framework/Versions/A/Resources/ > taginfo.plist, and rhat appears to be needed for development, not for > deployment. For me, deployment on current MacOSX (client, not server) > with Apache is a must, development would be a bonus. [So would the > above reference to the stricter 10.1+ plist parser actually mean > 10.2+?] > > Traditionally I have used the default 'host list' configuration method > (see /System/Library/WebObjects/Adaptors/Apache/apache.conf ), and > clearly I was using that when previously I tried to get our apps going > on 10.3.x . One of the problems is that because of Rendezvous (or > Bonjour, or whatever the lawyers say it's called this week) and other > changes in the OS, wotaskd on localhost thinks it's running on a > machine called something like 'panther.local.' instead of 'localhost'. > But if I use 'file' based configuration, I can bypass that, and I can > see my app running, which is way more than I managed whenever I looked > at this before. > > But wotaskd and Monitor are misbehaving, and I think I still need > those. My /var/log/webobjects.log file is steadily filling with things > like > '2005-06-10 12:02:14.163 wotaskd[1873] *** +[NSNotificationCenter > setNotificationCenterSerializeRemoves:]: this method now does nothing, > stop calling it' > which I think I can ignore, and > '2005-06-10 12:05:38.764 wotaskd[1873] Failed to save local site > config. Is /Library/WebObjects/Configuration/SiteConfig.conf writeable > ?' > '2005-06-10 12:05:43.760 Monitor[1975] Failed to save local site > config. Is /Library/WebObjects/Configuration/SiteConfig.conf writeable > ?' > that I can't; and yes, the relevant directory and files have modes > 0777 or 0666. > > > In the past I have fixed this by building my own WOExtensions framework > with some categories to restore the 'all collections are mutable' > behaviour that was in 10.0. If I do that, wotaskd and Monitor work, > but -- as per an earlier post from me -- the EOAdaptor I'm using > breaks. > > Ideas please? How do I fix wotaskd and Monitor? > > -- Patrick > > _______________________________________________ > WebObjects-talk mailing list > [email protected] > http://www.omnigroup.com/mailman/listinfo/webobjects-talk >