You are currently browsing the monthly archive for November 2011.

absinthe fixes everything[1]

GLASS 1.0-beta.8.7.1 has been released. There are only a couple of bugfixes in this release as this release was targeted at the upcoming GemStone/S 2.4.5 release. The bulk of the changes were related to porting GLASS 1.0-beta.8.7 to GemStone/S 2.4.5.

GLASS 1.0-beta.8.7.1 has been tested against GemStone/S 2.3.1GemStone/S, GemStone/S 3.0.1 and the forthcoming GemStone/S 2.4.5 release.

To upgrade to GLASS 1.0-beta.8.7.1:

  1. Update your GemTools image to GemTools 1.0-beta.8.6.
  2. Update GLASS to 1.0-beta.8.7.1.
  3. Make a backup.


[1] / CC BY-NC-SA 2.0

City of London: 122 Leadenhall Street, 'The Cheesegrater'Mariano Martinez Peck writes about how he uses Metacello to create his own development images:

I spend a lot of time building my own images.

If I am downloading hundred of images every day, an image can last me a maximum of a couple of days, and I spend a lot of time building my own images, then there is something that it is not working.

Moreover, I am lazy, I don’t like loosing time with it, and my memory is bad. Hence, I have come to the solution that I will show you in this post.

Photo by / CC BY 2.0

DGJ_1453 - Murano Glass[1]

GemTools 1.0-beta.8.6 has been released. With this release the GLASS upgrade process has been improved, yet again.

One-Click 1.0-beta.8.6 GemTools

One-Click GemTools images are available on the GLASS downloads page. GemTools images are available for use with GemStone/S 2.3.xGemStone/S 2.4.4.x, and GemStone/S 3.0.1.x,

GLASS Upgrade Cha Cha

I suppose it is a little known fact that the GemTools code base includes code that is used to drive the GLASS upgrade process, although my constant entreaties to “upgrade GemTools to the latest version before upgrading GLASS” may have given you a clue or two.

I thought I’d take this opportunity to describe what goes on behind the scenes when you select the  Update > Update GLASS menu item in GemTools. This section should be especially useful if you prefer to upgrade your system without running GemTools.

For a complete upgrade script, take a look at the GLASS upgrade script page on the glass db wiki. The GLASS upgrade script page will always have the latest and greatest upgrade script.

Through the ‘Update GLASS’

The upgrade process has been greatly simplified since I first started using Metacello for bootstrapping GLASS 1.0-beta.0, back in November of 2009, but the basic steps have remained the same:

  1. bootstrap the latest version of Metacello
  2. bootstrap the latest version of Monticello
  3. upgrade GLASS

Bootstrap Metacello

Currently Metacello 1.0-beta.31.1 is the version that is needed for a smooth upgrade process:

ConfigurationOfMetacello project currentVersion versionNumber < '1.0-beta.31.1' asMetacelloVersionNumber ifTrue: [
        (Gofer new)
            gemsource: 'metacello';
            version: 'Gofer-Core.gemstone-dkh.135';
            version: 'Metacello-Base-DaleHenrichs.19';
            version: 'Metacello-Core-dkh.468';
            version: 'Metacello-MC-dkh.531';
            version: 'Metacello-Platform.gemstone-dkh.23';
            load ].

It turns out that the best formula for bootstrapping Metacello is to directly load the key packages. I would have liked to use Metacello to bootstrap itself, but for GLASS we need to upgrade a wide range of Metacello releases dating back to over a year ago and there are several bugs that make it impractical to do anything but load the packages directly.

Bootstrap Monticello

To bootstrap Monticello, we use the GLASS configuration and load the ‘Core’ and ‘Monticello’ projects:

MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [[[
    (ConfigurationOfGLASS project version: '1.0-beta.8.7.1') 
        load: #( 'Core' 'Monticello' )
    on: MetacelloSkipDirtyPackageLoad
    do: [:ex | ex resume: false ]]
        on: Warning
        do: [:ex | 
            Transcript cr; show: ex description.
            ex resume ]].

We wrap the load with an out-of-memory handler.

The MetacelloSkipDirtyPackageLoad handler is there to compensate for a bug in the Monticello package loader that occasionally resulted in a package being marked dirty after a successful load.

The Warning handler is also there to ensure that packages needed for the upgrade are loaded whether or not they are marked dirty.

Upgrade GLASS

The GLASS upgrade is completed by doing a simple load:

MCPlatformSupport commitOnAlmostOutOfMemoryDuring: [[[
    (ConfigurationOfGLASS project version: '1.0-beta.8.7.1') 
    on: MetacelloSkipDirtyPackageLoad
    do: [:ex | ex resume: false ]]
        on: Warning
        do: [:ex | 
            Transcript cr; show: ex description.
            ex resume ]].


[1] / CC BY-SA 2.0

Coast Guard 47' Motor Lifeboat in Morro Bay, CA 04 Dec 2007[1]

GemStone 3.0.1

GemStone/S 64 3.0.1 was released on Monday of this week.GemStone/S 64 Bit 3.0.1 is a new version of the GemStone/S 64 Bit object server. This release provides feature enhancements and fixes a number of serious 3.0 bugs.

Release notes, Install Guide and manuals are available here. Be sure to carefully read the GemStone 3.0.0 release notes, if this is the first time you have used GemStone/S 3.0 as there are significant differences between GemStone3.x and GemStone 2.x

GLASS 1.0-beta.8.7

GemStone 3.0.1 ships with GLASS 1.0-beta.8.7 pre-installed in $GEMSTONE/bin/extent0.seaside.dbf.

Currently there is no path for upgrading a GemStone 2.x GLASS application to GemStone 3.0.1. The upgrade path will be defined in a future release.

If you are running a production application in GemStone 2.x, it is recommended that you continue to use GemStone 2.x for production. You should port your application to GemStone 3.0.1 in preparation for the time when the upgrade procedure is defined.

If you are starting a new application then you should use GemStone 3.0.1 as a starting point.

Download and Installation

You can download the binaries from or visit downloads page and use the script to download and install GemStone 3.0.1 on your machine (highly recommended).

Starting a 3.0.1 stone

Once you’ve installed Gemstone in /opt/gemstone/product, follow these steps to start and stop the stone:

  1. Define GEMSTONE environment variables  ($GEMSTONE/bin and $GEMSTONE/seaside/bin added to your $PATH environment variable):
    source /opt/gemstone/product/seaside/defSeaside

    It is recommended that you add this step to your .bashrc.

  2. Copy the system.conf and GLASS extent0.dbf files to data directory:
    cp $GEMSTONE/seaside/system.conf \
    chmod +w $GEMSTONE/seaside/data/system.conf
    cp $GEMSTONE/bin/extent0.seaside.dbf \
    chmod +w $GEMSTONE/seaside/data/extent0.dbf

    This step is performed as part of the script.

  3. Start netldi and stone processes:
  4. Ensure stone process is running:
    gslist -lcv
  5. Stop stone process:

Check the Starting a stone page on the glass db wiki for updates to the above procedure.

GemTools 1.0-beta.8.5

A One-Click GemTools 1.0-beta.8.5 for GemStone 3.0.1 can be obtained from the downloads page or you can download GemTools 1.0-beta.8.5 for Gemstone/S 3.0.1 all platforms directly.

You can build a custom GemTools image by following these steps on the glass db wiki.

Seaside 3.0, Magritte 2.0, and Pier 2.0

I have new releases of Seaside, Magritte and Pier that have been ported to GemStone 3.0.1 queued up and they should be made available shortly.


[1] “Mike” Michael L. Baird, / CC BY 2.0

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 446 other subscribers


RSS GLASS updates

  • An error has occurred; the feed is probably down. Try again later.

RSS Metacello Updates

  • An error has occurred; the feed is probably down. Try again later.

RSS Twitterings

  • An error has occurred; the feed is probably down. Try again later.
November 2011