Re: [RFC PATCH] Python bindings: CDLL("libnotmuch.3.dylib") on Darwin

Subject: Re: [RFC PATCH] Python bindings: CDLL("libnotmuch.3.dylib") on Darwin

Date: Tue, 25 Jun 2013 17:21:59 +0200

To: Tomi Ollila, notmuch@notmuchmail.org

Cc: tomi.ollila@iki.fi

From: Justus Winter


Quoting Tomi Ollila (2013-06-25 16:36:56)
> Use os.uname() to check for 'Darwin' and load "libnotmuch.3.dylib"
> instead of "libnotmuch.so.3" if that is the case.
> ---
> 
> This is followup to thread starting from
> 
>   id:1369540418-94177-1-git-send-email-Julian@GrayVines.com
> 
> For anyone interested: this is basically no-overhead addition as ctypes
> already loads os module (is "available" as ctypes._os) -- Comparison using
> strace(1) showed that uname system call is used in addition to other processing.
> 
> This patch is modeled after _lb_'s comments on IRC:
> 
> < _lb_> nmlib = CDLL("libnotmuch.so.3") needs to be replaced with
>         nmlib = CDLL("libnotmuch.3.dylib") in OSX
> < _lb_> Works like a charm! Mmm... I'll have to subscribe to the list
>         to send the patch...
> < _lb_> I guess the quid of the question is to have an os detection
>         if so it loads the right lib?
> 
> ... a few days ago, but the patch didn't arrive yet ;D
> 
> I tested that this still works on Linux, but did not test on Mac OS X;
> also I did not think much how to handle the importing and the if test.
> 
> Anyone using Mac care to take over -- you are probably more interested
> of getting this thing to work :D

Looks good, though I'd prefer not to do the from..import
thing. os.uname is just as short and more concise, you can see where
the uname function comes from.

If anyone on OSX confirms that this works I'll merge the patch.

Justus

Thread: