On 21/05/15 19:00, jaime soler gómez wrote:
El mar, 19-05-2015 a las 11:05 -0400, Marcos Ortiz escribió:
Leyendo con un poco más de calma el CHANGELOG de json-c, estaba viendo
que en la versión 0.11, que es la que tengo aquí en CentOS, cambiaron
algunas direcciones de librerías [1]:

El error del tipo no encuentra símbolo, se suele deber a que no tienes
la versión adecuada de la librería libjson.so .
Lo que me extraña es que en el makefile de la extensión, se linka contra
la librería de json, pero luego no aparece en las dependencias de ldd.
La versión en centos 7 de la librería es la 0.11-4
http://rpm.pbone.net/index.php3/stat/4/idpl/29072593/dir/centos_7/com/json-c-0.11-4.el7_0.x86_64.rpm.html
Exactamente esa es la que está instalada en mi sistema.
y la función json_tokener_parse existe en la versión 0.11
https://github.com/json-c/json-c/blob/json-c-0.11/json_tokener.h
Precisamente estaba revisando eso ahora, y sí, la cabecera json_tokener.h está en el sistema
[root@IPjson]# ls -la
total 104
drwxr-xr-x.  2 root root  4096 may 18 12:33 .
drwxr-xr-x. 38 root root  8192 may 18 23:44 ..
-rw-r--r--.  1 root root  1089 jun 24  2014 arraylist.h
-rw-r--r--.  1 root root   693 jun 24  2014 bits.h
-rw-r--r--.  1 root root  1724 jun 24  2014 debug.h
-rw-r--r--.  1 root root   163 jun 24  2014 json_config.h
-rw-r--r--.  1 root root   680 jun 24  2014 json_c_version.h
-rw-r--r--.  1 root root   699 jun 24  2014 json.h
-rw-r--r--.  1 root root   579 jun 24  2014 json_inttypes.h
-rw-r--r--.  1 root root 20025 jun 24  2014 json_object.h
-rw-r--r--.  1 root root  8184 jun 24  2014 json_object_iterator.h
-rw-r--r--.  1 root root   990 jun 24  2014 json_object_private.h
-rw-r--r--.  1 root root  7019 jun 24  2014 json_tokener.h
-rw-r--r--.  1 root root  1034 jun 24  2014 json_util.h
-rw-r--r--.  1 root root  6790 jun 24  2014 linkhash.h
-rw-r--r--.  1 root root  2194 jun 24  2014 printbuf.h
-rw-r--r--.  1 root root   407 jun 24  2014 random_seed.h
[root@IP json]# pwd
/usr/include/json

0.11

   * IMPORTANT: the name of the library has changed to libjson-c.so and
      the header files are now in include/json-c.
      The pkgconfig name has also changed from json to json-c.
      You should change your build to use appropriate -I and -l
options.
      A compatibility shim is in place so builds using the old name
will
      continue to work, but that will be removed in the next release.
   * Maximum recursion depth is now a runtime option.
      json_tokener_new() is provided for compatibility.
      json_tokener_new_ex(depth)
   * Include json_object_iterator.h in the installed headers.
   * Add support for building on Android.
   * Rewrite json_object_object_add to replace just the value if the
key already exists so keys remain valid.
   * Make it safe to delete keys while iterating with the
json_object_object_foreach macro.
   * Add a json_set_serializer() function to allow the string output of
a json_object to be customized.
   * Make float parsing locale independent.
   * Add a json_tokener_set_flags() function and a JSON_TOKENER_STRICT
flag.
   * Enable -Werror when building.
   * speed improvements to parsing 64-bit integers on systems with
working sscanf
   * Add a json_object_object_length function.
   * Fix a bug (buffer overrun) when expanding arrays to more than 64
entries.

Entonces, como este FDW fue desarrollado hace casi dos años, puede ser
que no hayan cambiando la referencia de los headers de json/json.h a
include/json-c.h

Voy a revisar el código de neo4j_fdw a ver cómo lo está haciendo

[1] https://github.com/json-c/json-c/blob/master/ChangeLog

On 19/05/15 11:22, Gilberto Castillo wrote:

Éste es el resultado:

ldd /usr/lib64/pgsql/neo4j_fdw.so
          linux-vdso.so.1 =>  (0x00007fffe0dfe000)
          libcurl.so.4 => /lib64/libcurl.so.4 (0x00007fe213bb5000)
          libc.so.6 => /lib64/libc.so.6 (0x00007fe2137f4000)
          libidn.so.11 => /lib64/libidn.so.11 (0x00007fe2135c0000)
          libssh2.so.1 => /lib64/libssh2.so.1 (0x00007fe213396000)
          libssl3.so => /lib64/libssl3.so (0x00007fe213157000)
          libsmime3.so => /lib64/libsmime3.so (0x00007fe212f2f000)
          libnss3.so => /lib64/libnss3.so (0x00007fe212c0a000)
          libnssutil3.so => /lib64/libnssutil3.so (0x00007fe2129de000)
          libplds4.so => /lib64/libplds4.so (0x00007fe2127d9000)
          libplc4.so => /lib64/libplc4.so (0x00007fe2125d4000)
          libnspr4.so => /lib64/libnspr4.so (0x00007fe212396000)
          libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe212179000)
          libdl.so.2 => /lib64/libdl.so.2 (0x00007fe211f75000)
          libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2
(0x00007fe211d2b000)
          libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fe211a4a000)
          libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fe211815000)
          libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fe211611000)
          liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fe211401000)
          libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fe2111af000)
          libz.so.1 => /lib64/libz.so.1 (0x00007fe210f99000)
          /lib64/ld-linux-x86-64.so.2 (0x00007fe214037000)
          libssl.so.10 => /lib64/libssl.so.10 (0x00007fe210d2c000)
          libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fe210947000)
          librt.so.1 => /lib64/librt.so.1 (0x00007fe21073e000)
          libkrb5support.so.0 => /lib64/libkrb5support.so.0
(0x00007fe210530000)
          libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fe21032c000)
          libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fe210111000)
          libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fe20fef4000)
          libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fe20fcce000)
          libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fe20fa97000)
          libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fe20f836000)
          liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fe20f610000)
          libfreebl3.so => /lib64/libfreebl3.so (0x00007fe20f393000)


Usa:
===
pg_config --libdir

Dependiendo de resultado has:
============================
Linker de bibliotecas dinámicas del sistema

  $ sudo echo echo "/camino_delaslib/lib" > /etc/ld.so.conf.d/neo4j.conf
  $ ldconfig
  $ ldconfig --print | grep /camino_delaslib/lib


Saludos,
Gilberto Castillo
ETECSA, La Habana, Cuba


---
This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at 
host imx3.etecsa.cu
Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com>
--
Marcos Ortiz, Sr. Product Manager (Data Infrastructure) at UCI
@marcosluis2186




--
Marcos Ortiz <http://about.me/marcosortiz>, Sr. Product Manager (Data Infrastructure) at UCI
@marcosluis2186 <http://twitter.com/marcosluis2186>

Responder a