[Libvir] [PATCH 3/3] Python cygvirtmod.dll -> libvirtmod.dll

Richard W.M. Jones rjones at redhat.com
Thu Nov 29 17:34:28 UTC 2007


Daniel Veillard wrote:
> On Thu, Nov 29, 2007 at 04:58:42PM +0000, Richard W.M. Jones wrote:
>> Cygwin likes to name DLLs as cyg<name>.dll.
>>
>> This is very unhelpful for Python loadable modules because the init 
>> function name will be wrong and because it requires a change to the 
>> 'libvirt.py' file to load the right module name (import libvirtmod -> 
>> import cygvirtmod).
> 
>   hum, I think it would also require a change to the python C file
> to rename the entry point too, otherwise a simple
>    try:
>        import libvirtmod
>    except:
>        import cygvirtmod
> 
> might have done it.
> 
>> In this patch I've added a post-install hook to make a symlink so that 
>> Python finds libvirtmod.dll and all is happy.
> 
>   I must admit I'm wondering a bit about ln -s reliability in a Windows
> environment ... maybe the above try:/except: plus a change at the end of
> python/libvir.c adding

'ln -s' relies on Cygwin, which fakes it by writing a file called 
'libvirtmod.dll.lnk' (or somesuch).

So in some sense we require Cygwin, but of course all of this code needs 
Cygwin to function.

Because this is Python the situation is arguably a little bit different. 
  There are essentially two versions of Python for Windows -- one is a 
native port (compiled, presumably, with Visual C++), and the other is 
the Cygwin port which is the one that I'm using now.

In theory I suppose a Cygwin-compiled Python module (*.dll) could be 
loaded by the native Python.  It wouldn't work for us though because 
libvirtmod.dll requires cygvirt-0.dll which fundamentally requires 
Cygwin.  We'd have to do a native version of libvirt as well, which 
involves lots of invasive changes.

> #ifdef CYGWIN
> void
> initcygvirtmod(void)
> {
>     initlibvirtmod();
> }
> #endif
> 
> might be a bit more reliable,

Either would work -- whichever you feel happier with.

Rich.

-- 
Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom.  Registered in
England and Wales under Company Registration No. 03798903
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3237 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20071129/9f2a9e5a/attachment-0001.bin>


More information about the libvir-list mailing list