[PATCH] python: replace hardcoding of SONAME version
Tomi Ollila
tomi.ollila at iki.fi
Sat Mar 7 02:42:23 PST 2015
On Sat, Mar 07 2015, David Bremner <david at tethera.net> wrote:
> Failing to update this string in globals.py causes failures when the
> SONAME changes. In order to hopefully reduce the number of such
> errors, automate the process of setting the SONAME in the python
> bindings.
Looks sensible me -- anyone knowing more how 'pythonic' the variable
convention used is (i.e. is plain SOVERSION -- or any other issues) good?
Tomi
> ---
> Makefile.local | 4 +++-
> bindings/python/notmuch/globals.py | 5 +++--
> bindings/python/notmuch/version.py | 1 +
> 3 files changed, 7 insertions(+), 3 deletions(-)
>
> After hitting the mismatch again while working on the count API, I
> decided to try to fix it.
>
> diff --git a/Makefile.local b/Makefile.local
> index 81ee347..6d54742 100644
> --- a/Makefile.local
> +++ b/Makefile.local
> @@ -107,7 +107,9 @@ dist: $(TAR_FILE)
> .PHONY: update-versions
>
> update-versions:
> - sed -i "s/^__VERSION__[[:blank:]]*=.*$$/__VERSION__ = \'${VERSION}\'/" $(PV_FILE)
> + sed -i -e "s/^__VERSION__[[:blank:]]*=.*$$/__VERSION__ = \'${VERSION}\'/" \
> + -e "s/^SOVERSION[[:blank:]]*=.*$$/SOVERSION = \'${LIBNOTMUCH_VERSION_MAJOR}\'/" \
> + ${PV_FILE}
>
> # We invoke make recursively only to force ordering of our phony
> # targets in the case of parallel invocation of make (-j).
> diff --git a/bindings/python/notmuch/globals.py b/bindings/python/notmuch/globals.py
> index 24b25d3..4c49d51 100644
> --- a/bindings/python/notmuch/globals.py
> +++ b/bindings/python/notmuch/globals.py
> @@ -18,15 +18,16 @@ Copyright 2010 Sebastian Spaeth <Sebastian at SSpaeth.de>
> """
>
> from ctypes import CDLL, Structure, POINTER
> +from version import SOVERSION
>
> #-----------------------------------------------------------------------------
> #package-global instance of the notmuch library
> try:
> from os import uname
> if uname()[0] == 'Darwin':
> - nmlib = CDLL("libnotmuch.4.dylib")
> + nmlib = CDLL("libnotmuch.{0:s}.dylib".format(SOVERSION))
> else:
> - nmlib = CDLL("libnotmuch.so.4")
> + nmlib = CDLL("libnotmuch.so.{0:s}".format(SOVERSION))
> except:
> raise ImportError("Could not find shared 'notmuch' library.")
>
> diff --git a/bindings/python/notmuch/version.py b/bindings/python/notmuch/version.py
> index f719fdf..35744d3 100644
> --- a/bindings/python/notmuch/version.py
> +++ b/bindings/python/notmuch/version.py
> @@ -1,2 +1,3 @@
> # this file should be kept in sync with ../../../version
> __VERSION__ = '0.19'
> +SOVERSION = '4'
> --
> 2.1.4
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
More information about the notmuch
mailing list