AW: [Zope3-dev] Re: AW: relying on win32api in windows supportofzc.zope3recipes

Roger Ineichen dev at
Fri Aug 17 16:47:04 EDT 2007

Hi Martijn

> Betreff: [Zope3-dev] Re: AW: relying on win32api in windows 
> supportofzc.zope3recipes
> Hey Roger,
> Roger Ineichen wrote:
> [snip]
> >> Was the original way to run Zope 3 trunk dependent on win32api?
> > 
> > I guess, but I'm not sure;
> > Python 2.5 includes ctypes which could be used as a replacement for 
> > the win32 part.
> I am fine with requiring win32api, though it'd be better if 
> it were indeed installable from the python package index. 
> Otherwise you need to tell people to install two things 
> (Python and win32api) instead of one thing on Windows in 
> order to be able to install Zope 3. Who will volunteer to bug 
> Mark Hammond? Perhaps Sidnei can, he's a Windows native. :)

Yeah, good idea probably he can ask him. I think he know
Mark Hammond.

> > To some previous questions in this thread. 
> > 
> > I'm fine with any improvements and doctest cleanup. My problem was, 
> > that I couldn't really merge the linux tests into one 
> document because 
> > I didn't had a linux box when I wrote the implementation 
> for testing.
> Right, testing on multiple platforms isn't easy. I had the 
> same problem but in reverse - trouble getting it set up in Windows.
> > I agree with the maintainance overhead. That's bad.
> > 
> > I also recognized the buildout difference in the tests. I guess the 
> > egg version is older then the version then I used from the trunk. I 
> > guess again, I think Jim did some improvments in buildout 
> and didn't 
> > change the tests in zope3recipe.
> > 
> > Could this be the case?
> The more I look into it, the less I understand. I've just 
> confirmed that on Linux and Windows both, the test runner is 
> using zc.buildout-1.0.0b28
>   - the same version.
> The Windows tests run successfully for me with that buildout 
> version. So do the Linux tests!
> On Windows I do get a lot of output involving import errors 
> of 'tests' 
> modules from various eggs (zdaemon, zope.testing, zconfig, 
> etc, basically it seems any package on the path). I already 
> reported this behavior to Jim. Did you see this too? Anyway, 
> this did not appear to have affected the finding or running 
> of the tests themselves on Windows.

I'm not sure if my wiondows test setup broke something on
linux. Stephan Richter tested it and was telling me that
the tests are fine.

> It isn't some other egg either, you'd think: the sys.path 
> setting in the 'test' script points to the exact same 
> versions of the eggs on both
> platforms:
> sys.path[0:0] = [
>    '/home/faassen/buildout/zc.zope3recipes',
>    '/home/faassen/buildout-eggs/zope.testing-3.5.1-py2.4.egg',
>    '/home/faassen/bin/eggs/setuptools-0.6c6-py2.4.egg',
> '/home/faassen/buildout-eggs/zc.recipe.filestorage-1.0a5-py2.4.egg',
>    '/home/faassen/buildout-eggs/zdaemon-2.0.0-py2.4.egg',
>    '/home/faassen/buildout-eggs/ZConfig-2.4a6-py2.4.egg',
>    '/home/faassen/buildout-eggs/zc.recipe.egg-1.0.0b6-py2.4.egg',
>    '/home/faassen/bin/eggs/zc.buildout-1.0.0b28-py2.4.egg',
>    ]
> This is very mysterious. The Linux tests expect lines like this:
>      Generated script '/sample-buildout/bin/instance'.
> And the Windows tests expect that line not to be there.
> Also, the Linux tests have this sequence:
>      >>> print system(join('bin', 'buildout')),
>      Develop: '/sample-buildout/demo1'
>      Develop: '/sample-buildout/demo2'
>      Updating database.
>      Updating myapp.
>      Updating instance.
>      Installing instance2.
>      Generated script '/root/etc/init.d/myapp-run-instance2'.
> And the Windows tests expect this:
>      >>> print system(join('bin', 'buildout')),
>      Develop: '/sample-buildout/demo1'
>      Develop: '/sample-buildout/demo2'
>      Uninstalling instance.
>      Updating database.
>      Updating myapp.
>      Installing instance.
>      Installing instance2.
>      Generated script '/root/etc/init.d/myapp-run-instance2'.
> Where Linux has "Updating instance", Windows has 
> "Uninstalling instance" 
> and then following it "Installing instance".
> Oddly enough the "Generated script" bit *is* expected in 
> Windows here (as in many other places).
> I really don't understand what's going on here at all and 
> it's no wonder you also had issues.

Hehe, I was nearly going crazy as I wrote this part.

I see the difference in update on linux and uninstall/install
on windows. I'm not sure what's going on there.

The reason for a update or un/install ist driven by the 
buildout. If buildout recognizes that the checkout or
a script is changing, a un/install get used. I buildout
thinks nothing get changed a update will be used.

As far as I can see, this is based on the return value
of the install or update method. If this method regonizes
another output then the last one (in the last buildout run),
a un/install process get used. if the return value is 
still the same, a update process get used.

I'm not sure how buildout can find out the difference
between the buildout runs. I guess this is based on the
history.cfg file. I didn't fully introspect this part
as I wrote the windows implementation. Probably we need
to take a second look at what is the difference of the 
update or install method if they run on linux or windows.

Roger Ineichen

> Regards,
> Martijn
> _______________________________________________
> Zope3-dev mailing list
> Zope3-dev at
> Unsub: 

More information about the Zope3-dev mailing list