Some good news, it looks like I figured out the diff-file generation problem. (problem #2 below)
I managed to put a halt in the diff generating code that was being executed, and found it was in an infinite loop trying to create an error stack caused by a different problem. The infinite loop was because SocketStream>>printString is broken (in 3.7/3.8/3.9, I'll post a fix). After fixing that, I got a different infinite loop because it was trying to email the error stack somewhere (maybe configured to Bert's address), which caused a connection error, which then tried to email another error stack for that, etc. I might be tempted to just dump error stacks into a log directory on the server rather than emailing them, hm.
Anyway, after fixing that, the root cause of the error was because I did actually have the wrong version of Monticello loaded, which I was trying to get around the SimpleServiceEntry problem earlier. Loading the version specified by Bert fixed that.
So, .mcd file generation is working nicely, and using #updateFromRepositories and #upgrade on the MCConfiguration map from a client image appears to work, which is how the automatic updating will work.
I'd still like to fix problem #1, though, since the SS image will be a bit crippled with my hack in there. Then I will try replacing the SS image at http://source.squeakfoundation.org and see how it goes...
- Doug
On Aug 10, 2005, at 12:48 AM, Doug Way wrote:
Ok, here's my current progress, I've only been working on this sporadically.
I'm able to get a SqueakSource image loaded with Bert's packages (with tweaks), and mostly working, but the diff-file generation doesn't work in this image, either. Basically pretty similar to what we have running now, I guess. :|
There's two main problems I'm running into:
- This SqueakSource (SS) setup is based on Squeak 3.7, but the
version of Monticello (bf.254) in Bert's package list is not compatible with 3.7. (avi.231 is not compatible with 3.7 either.) If you load either of these versions in 3.7, loading .mcz files no longer works. I came up with a quick hack which seems to fix it (see attached changeset), but it causes other problems with loading regular changesets.
- The diff-file (.mcd) generation hangs in the SS image. Well, it
doesn't hang the SS image, it just doesn't send back a http response. Requesting any file ending in .mcd seems to do this, other files are either found or return a "not found" error. I haven't really dug into this yet. I don't think this is related to problem #1 but who knows...
I think the missing link here may be the "SystemFixes-bf.1" package from Bert's list, which is not available anywhere that I can find... I think it may be a few key fixes in a private package. :)
Anyway, if anyone wants to set up a mostly-working SqueakSource image to get to the exact same point that I'm at now, here are the steps you can follow: (I will post these to the swiki once it's all working, since there seems to be a lack of SqueakSource how-tos out there)
- Start with a fresh 3.7-5989-basic image.
- Load these packages in roughly this order. (These are from Bert's
working configuration... they are available on SqueakMap or on source.impara.de.)
- DynamicBindings-gk.1.mcz
- KomServices-gk.2.mcz
- PackageInfo-Base-bf.22.mcz
- Monticello-bf.254.mcz
- Install my SimpleServicesHack-dew changeset (attached to this
email), to allow additional .mcz files to load
- KomHttpServer-gk.6.mcz
- Seaside2-avi.86.mcz
- Mewa-al.13.mcz
- TinyWiki-lr.10.mcz
- SqueakSource-bf.146.mcz
- MonticelloConfigurations-bf.26.mcz
- TweakMC-bf.11.mcz (not needed? seems to be only Tweak-related)
- run the first few lines of code in SSRepository class>>initialize
- change SSRepository class>>startUp to include
'http://localhost:9090/' as the RootUrl.
- execute "SSRepository startUp" in a workspace
- open any web browser on http://localhost:9090. SqueakSource
works... hooray!
To continue with more serious testing:
- add a new Member for yourself via squeaksource web browser ui
- open an inspector on "SSRepository current" in the image, drill down
to members/(your id) and set your superuser flag to true.
- create a new project via the squeaksource web ui, and try saving new
versions of a package to the project, seems to work.
- getting files directly e.g.
http://localhost:9090/dougsproj/Kernel-dew.1.mcz works.
- getting a diff file e.g.
http://localhost:9090/dougsproj/Kernel-md.5%28dew.1%29.mcd doesn't respond, though.
- Doug
<SimpleServiceHack-dew.1.cs>