瀏覽代碼

libubox: correct json-c handling

Fixes http://autobuild.buildroot.net/results/5a8/5a85e0e132f38a4a1a42c2b041f66003b64e748a/
(and a bunch of similar failures)

libubox has optional json-c handling, including the legacy version which
used libjson.so.  Unfortunately this support is buggy, so we end up with the
wrong compiler flags, and more importantly it gets confused if libjson is
enabled, as that also provides a (incompatible) libjson.so.

Fix it by disabling the legacy handling.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Peter Korsgaard 11 年之前
父節點
當前提交
4a93b8f72b
共有 2 個文件被更改,包括 35 次插入0 次删除
  1. 34 0
      package/libubox/libubox-01-drop-legacy-json-c.patch
  2. 1 0
      package/libubox/libubox.mk

+ 34 - 0
package/libubox/libubox-01-drop-legacy-json-c.patch

@@ -0,0 +1,34 @@
+[PATCH] libubox: drop legacy json-c support
+
+The cmake logic is wrong (E.G. PKG_CHECK_FOR_MODULES fails unless all
+modules are found), and the legacy libjson.so name is also used by the other
+libjson (http://sourceforge.net/projects/libjson/) which provides an
+incompatible API, so just drop it.
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ CMakeLists.txt |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b/CMakeLists.txt
+===================================================================
+--- libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b.orig/CMakeLists.txt
++++ libubox-bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b/CMakeLists.txt
+@@ -13,7 +13,7 @@
+ ENDIF()
+ 
+ INCLUDE(FindPkgConfig)
+-PKG_CHECK_MODULES(JSONC json-c json)
++PKG_CHECK_MODULES(JSONC json-c)
+ IF(JSONC_FOUND)
+   ADD_DEFINITIONS(-DJSONC)
+   INCLUDE_DIRECTORIES(${JSONC_INCLUDE_DIRS})
+@@ -42,7 +42,7 @@
+ 
+ ADD_SUBDIRECTORY(lua)
+ 
+-find_library(json NAMES json-c json)
++find_library(json NAMES json-c)
+ IF(EXISTS ${json})
+ 	ADD_LIBRARY(blobmsg_json SHARED blobmsg_json.c)
+ 	TARGET_LINK_LIBRARIES(blobmsg_json ubox ${json})

+ 1 - 0
package/libubox/libubox.mk

@@ -8,6 +8,7 @@ LIBUBOX_VERSION = bbd846ec2d72b2629758b69dc122ac0b0f2c3e4b
 LIBUBOX_SITE = git://nbd.name/luci2/libubox.git
 LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
 LIBUBOX_INSTALL_STAGING = YES
+LIBUBOX_DEPENDENCIES = host-pkgconf $(if $(BR2_PACKAGE_JSON_C),json-c)
 
 ifeq ($(BR2_PACKAGE_LUA),y)
 	LIBUBOX_DEPENDENCIES += lua