~ruther/guix-local

cb7bd0cff5e8ea1c01ba835a4ebba6c9abae7e16 — Ludovic Courtès 10 years ago 25d188c
gnu: weechat: Dynamically link against libpython2.7.so.

* gnu/packages/patches/weechat-python.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/weechat.scm (weechat)[source]: Use it.
3 files changed, 45 insertions(+), 1 deletions(-)

M gnu-system.am
A gnu/packages/patches/weechat-python.patch
M gnu/packages/weechat.scm
M gnu-system.am => gnu-system.am +1 -0
@@ 726,6 726,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/vtk-mesa-10.patch			\
  gnu/packages/patches/w3m-fix-compile.patch			\
  gnu/packages/patches/webkitgtk-2.4-sql-init-string.patch	\
  gnu/packages/patches/weechat-python.patch			\
  gnu/packages/patches/weex-vacopy.patch			\
  gnu/packages/patches/wicd-bitrate-none-fix.patch		\
  gnu/packages/patches/wicd-get-selected-profile-fix.patch	\

A gnu/packages/patches/weechat-python.patch => gnu/packages/patches/weechat-python.patch +40 -0
@@ 0,0 1,40 @@
Get Python LDFLAGS from 'pkg-config'.

The other approach is more complex and gets it wrong: it returns
"-L/path/to/python/lib/python-2.7.10/lib/python2.7/config -lpython -lwhatever";
since that config/ sub-directory contains libpython2.7.a, we end up
statically linking Python in Weechat's python.so, which we do not want.

--- weechat-1.3/configure.ac	2015-08-16 08:27:07.000000000 +0200
+++ weechat-1.3/configure.ac	2015-11-29 18:18:52.975197048 +0100
@@ -535,29 +535,7 @@ if test "x$enable_python" = "xyes" ; the
             if test -r "$PYTHON_INCLUDE/Python.h"; then
                 PYTHON_CFLAGS="-I$PYTHON_INCLUDE"
                 AC_MSG_RESULT(found)
-                PYTHON_LIB=`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBPL'))"`
-                PYTHON_LFLAGS="-lpython$PYTHON_VERSION "`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBS')+' '+distutils.sysconfig.get_config_var('SYSLIBS')+' '+distutils.sysconfig.get_config_var('LINKFORSHARED'))"`
-                AC_MSG_CHECKING(for Python library)
-                if test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.so"; then
-                   PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS"
-                   AC_MSG_RESULT(found)
-                elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.a"; then
-                   PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS"
-                   AC_MSG_RESULT(found)
-                elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.dll.a"; then
-                   PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS"
-                   AC_MSG_RESULT(found)
-                elif test -r "$PYTHON_SYSPREFIX/lib/libpython$PYTHON_VERSION.so"; then
-                   PYTHON_LFLAGS="-L$PYTHON_SYSPREFIX/lib/ $PYTHON_LFLAGS"
-                   AC_MSG_RESULT(found)
-                else
-                    AC_MSG_WARN([
-*** Python library couldn't be found on your system.
-*** Try to install it with your software package manager.
-*** WeeChat will be built without Python support.])
-                    enable_python="no"
-                    not_found="$not_found python"
-                fi
+                PYTHON_LFLAGS=`pkg-config python2 --libs`
             else
                 AC_MSG_WARN([
 *** Python header files couldn't be found on your system.

M gnu/packages/weechat.scm => gnu/packages/weechat.scm +4 -1
@@ 20,6 20,7 @@
;; TODO: Add ruby

(define-module (gnu packages weechat)
  #:use-module (gnu packages)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages base)
  #:use-module (gnu packages gettext)


@@ 52,7 53,9 @@
              (uri (string-append "http://weechat.org/files/src/weechat-"
                                  version ".tar.gz"))
              (sha256
               (base32 "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w"))))
               (base32
                "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w"))
              (patches (list (search-patch "weechat-python.patch")))))
    (build-system gnu-build-system)
    (native-inputs `(("autoconf" ,autoconf)
                     ("pkg-config" ,pkg-config)