[Buildroot] [PATCH v2 1/1] libcapn : new package
Sagaert Johan
sagaert.johan at proximus.be
Wed Feb 17 18:04:06 UTC 2016
libcapn is a C Library to interact with the Apple Push Notification Service
(APNs for short) using simple and intuitive API.
With the library you can easily send push notifications to iOS and OS X (>= 10.8) devices.
The patches remove the jansson git submodule requirement
and links against the jansson Builtroot package instead.
Signed-off-by: Sagaert Johan <sagaert.johan at proximus.be>
---
Changes V1->V2
include missing hash file.
---
package/Config.in | 1 +
.../0001-use-global-jansson-include-file.patch | 26 +++++++++++
...ve-the-jansson-git-submodule-requirements.patch | 54 ++++++++++++++++++++++
.../0003-remove-ld.so.conf.d-creation.patch | 29 ++++++++++++
package/libcapn/Config.in | 13 ++++++
package/libcapn/libcapn.hash | 2 +
package/libcapn/libcapn.mk | 18 ++++++++
7 files changed, 143 insertions(+)
create mode 100644 package/libcapn/0001-use-global-jansson-include-file.patch
create mode 100644 package/libcapn/0002-remove-the-jansson-git-submodule-requirements.patch
create mode 100644 package/libcapn/0003-remove-ld.so.conf.d-creation.patch
create mode 100644 package/libcapn/Config.in
create mode 100644 package/libcapn/libcapn.hash
create mode 100644 package/libcapn/libcapn.mk
diff --git a/package/Config.in b/package/Config.in
index 529ad33..30042fe 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1073,6 +1073,7 @@ menu "Networking"
source "package/gupnp-av/Config.in"
source "package/ibrcommon/Config.in"
source "package/ibrdtn/Config.in"
+ source "package/libcapn/Config.in"
source "package/libcgi/Config.in"
source "package/libcgicc/Config.in"
source "package/libcurl/Config.in"
diff --git a/package/libcapn/0001-use-global-jansson-include-file.patch b/package/libcapn/0001-use-global-jansson-include-file.patch
new file mode 100644
index 0000000..8e89b7e
--- /dev/null
+++ b/package/libcapn/0001-use-global-jansson-include-file.patch
@@ -0,0 +1,26 @@
+From d696407e5fe6d14ac18f4b63532c4eaa80699fa3 Mon Sep 17 00:00:00 2001
+From: Sagaert Johan <sagaert.johan at proximus.be>
+Date: Wed, 17 Feb 2016 10:05:13 +0100
+Subject: [PATCH 1/3] use global jansson include file
+
+Signed-off-by: Sagaert Johan <sagaert.johan at proximus.be>
+---
+ src/library/apn_payload.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/library/apn_payload.c b/src/library/apn_payload.c
+index eaf5010..ac000e5 100644
+--- a/src/library/apn_payload.c
++++ b/src/library/apn_payload.c
+@@ -24,7 +24,7 @@
+ #include <errno.h>
+ #include <assert.h>
+
+-#include "src/jansson.h"
++#include "jansson.h"
+ #include "apn_strings.h"
+ #include "apn_memory.h"
+ #include "apn_private.h"
+--
+2.3.3
+
diff --git a/package/libcapn/0002-remove-the-jansson-git-submodule-requirements.patch b/package/libcapn/0002-remove-the-jansson-git-submodule-requirements.patch
new file mode 100644
index 0000000..7de9095
--- /dev/null
+++ b/package/libcapn/0002-remove-the-jansson-git-submodule-requirements.patch
@@ -0,0 +1,54 @@
+From e418621d70d05ca9b77de6a1d369ff01266a3347 Mon Sep 17 00:00:00 2001
+From: Sagaert Johan <sagaert.johan at proximus.be>
+Date: Wed, 17 Feb 2016 10:05:58 +0100
+Subject: [PATCH 2/3] remove the jansson git submodule requirements
+
+Signed-off-by: Sagaert Johan <sagaert.johan at proximus.be>
+---
+ CMakeLists.txt | 16 +---------------
+ 1 file changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 75e3b35..7a80fe6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -94,10 +94,6 @@ ENDFOREACH(STRERROR_R_HEADER)
+
+ INCLUDE(ExternalProject)
+
+-INCLUDE_DIRECTORIES ("${CAPN_THIRD_PARTY_DIR}/jansson")
+-INCLUDE_DIRECTORIES ("${CAPN_THIRD_PARTY_DIR}/jansson/include")
+-
+-
+ CONFIGURE_FILE("${CAPN_SOURCE_LIB_DIR}/apn_platform.h.cmake" "${PROJECT_BINARY_DIR}/src/library/apn_platform.h")
+ CONFIGURE_FILE("${CAPN_SOURCE_LIB_DIR}/apn_version.h.cmake" "${PROJECT_BINARY_DIR}/src/library/apn_version.h")
+
+@@ -206,16 +202,6 @@ ELSE(WIN32)
+ ENDIF()
+ ENDIF()
+
+- ExternalProject_Add(
+- jansson
+- SOURCE_DIR "${CAPN_THIRD_PARTY_DIR}/jansson"
+- BINARY_DIR "${CAPN_THIRD_PARTY_DIR}/jansson"
+- INSTALL_DIR "${CAPN_THIRD_PARTY_DIR}/jansson"
+- CMAKE_COMMAND cmake . -DCMAKE_C_FLAGS=-fPIC -DJANSSON_BUILD_DOCS=OFF
+- BUILD_COMMAND make
+- INSTALL_COMMAND ""
+- )
+-
+ SET(CAPN_INSTALL_PATH_LIB "${CAPN_INSTALL_PATH_LIB}/${CAPN_LIB_NAME}")
+ SET(CAPN_PKGCONF_FILE_NAME "libcapn.pc")
+ CONFIGURE_FILE("${CAPN_PKGCONF_FILE_NAME}.cmake" "${PROJECT_BINARY_DIR}/${CAPN_PKGCONF_FILE_NAME}")
+@@ -255,7 +241,7 @@ IF(WIN32)
+ TARGET_LINK_LIBRARIES(${CAPN_LIB_NAME} ${OPENSSL_SSLEAY_LIBRARY})
+ TARGET_LINK_LIBRARIES(${CAPN_LIB_NAME} ${OPENSSL_LIBEAY_LIBRARY})
+ ELSE()
+- TARGET_LINK_LIBRARIES(${CAPN_LIB_NAME} "${CAPN_THIRD_PARTY_DIR}/jansson/lib/libjansson.a")
++ TARGET_LINK_LIBRARIES(${CAPN_LIB_NAME} "jansson")
+ TARGET_LINK_LIBRARIES(${CAPN_LIB_NAME} ${OPENSSL_LIBRARIES})
+ ENDIF()
+
+--
+2.3.3
+
diff --git a/package/libcapn/0003-remove-ld.so.conf.d-creation.patch b/package/libcapn/0003-remove-ld.so.conf.d-creation.patch
new file mode 100644
index 0000000..1605b37
--- /dev/null
+++ b/package/libcapn/0003-remove-ld.so.conf.d-creation.patch
@@ -0,0 +1,29 @@
+From e5d1accd8dca48639dea6f7c98501b1040652cea Mon Sep 17 00:00:00 2001
+From: Sagaert Johan <sagaert.johan at proximus.be>
+Date: Wed, 17 Feb 2016 10:12:58 +0100
+Subject: [PATCH 3/3] remove ld.so.conf.d creation
+
+Signed-off-by: Sagaert Johan <sagaert.johan at proximus.be>
+---
+ CMakeLists.txt | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7a80fe6..354688f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -211,11 +211,6 @@ ELSE(WIN32)
+ IF(NOT DEFINED CAPN_INSTALL_PATH_SYSCONFIG)
+ SET(CAPN_INSTALL_PATH_SYSCONFIG "/etc" CACHE PATH "")
+ ENDIF()
+- IF(EXISTS "${CAPN_INSTALL_PATH_SYSCONFIG}/ld.so.conf.d" AND IS_DIRECTORY "${CAPN_INSTALL_PATH_SYSCONFIG}/ld.so.conf.d")
+- SET(CAPN_LDCONF_FILE_NAME "libcapn-${CAPN_VERSION}-${CAPN_ARCH_STR}.conf")
+- CONFIGURE_FILE(libcapn.ld.conf.cmake "${PROJECT_BINARY_DIR}/${CAPN_LDCONF_FILE_NAME}")
+- INSTALL(FILES "${PROJECT_BINARY_DIR}/${CAPN_LDCONF_FILE_NAME}" DESTINATION "${CAPN_INSTALL_PATH_SYSCONFIG}/ld.so.conf.d")
+- ENDIF()
+ ENDIF()
+
+ CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/src/config/apn_config.c.cmake" "${PROJECT_BINARY_DIR}/src/config/apn_config.c")
+--
+2.3.3
+
diff --git a/package/libcapn/Config.in b/package/libcapn/Config.in
new file mode 100644
index 0000000..5b25910
--- /dev/null
+++ b/package/libcapn/Config.in
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_LIBCAPN
+ bool "libcapn"
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_JANSSON
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
+ help
+ libcapn is a C Library to interact with the
+ Apple Push Notification Service (APNs for short)
+ using simple and intuitive API.
+ With the library you can easily send push
+ notifications to iOS and OS X (>= 10.8) devices.
+
+ http://libcapn.org
diff --git a/package/libcapn/libcapn.hash b/package/libcapn/libcapn.hash
new file mode 100644
index 0000000..b2a2fad
--- /dev/null
+++ b/package/libcapn/libcapn.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 726aac9ca0dc26fd5e43d7b6a942fb2520a078c0bf2af1aac2b9ad12311a55e5 libcapn-7a6dc662e9daa864f687.tar.gz
diff --git a/package/libcapn/libcapn.mk b/package/libcapn/libcapn.mk
new file mode 100644
index 0000000..df8e162
--- /dev/null
+++ b/package/libcapn/libcapn.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# libcapn
+#
+################################################################################
+
+LIBCAPN_VERSION = 7a6dc662e9daa864f687
+LIBCAPN_SITE = $(call github,adobkin,libcapn,$(LIBCAPN_VERSION))
+LIBCAPNLICENSE = MIT
+LIBCAPN_DEPENDENCIES += jansson openssl
+LIBCAPN_INSTALL_STAGING = YES
+LIBCAPN_CONF_OPTS = -DCMAKE_BUILD_TYPE=Release \
+ -DAPN_HAVE_GLIBC_STRERROR_R=OFF \
+ -DAPN_HAVE_POSIX_STRERROR_R=OFF \
+ -DAPN_HAVE_GLIBC_STRERROR_R__TRYRUN_OUTPUT=OFF \
+ -DAPN_HAVE_POSIX_STRERROR_R__TRYRUN_OUTPUT=OFF
+
+$(eval $(cmake-package))
--
2.3.3
More information about the buildroot
mailing list