summaryrefslogtreecommitdiffstats
path: root/graphdat-pr5.patch
blob: 1640635d36fdedfc4211916ef36b1d907f7a3220 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
From 138bb73a32d8b19feeb9032225caed686f66674b Mon Sep 17 00:00:00 2001
From: Remi Collet <fedora@famillecollet.com>
Date: Fri, 19 Sep 2014 08:14:40 +0200
Subject: [PATCH 1/6] add --with-libmsgpack to use system library

---
 config.m4    | 47 +++++++++++++++++++++++++++++++++++++----------
 graphdat.c   |  2 +-
 src/timers.h |  2 +-
 3 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/config.m4 b/config.m4
index d6b6ac0..435475c 100644
--- a/config.m4
+++ b/config.m4
@@ -4,6 +4,9 @@ dnl config.m4 for extension graphdat
 PHP_ARG_ENABLE(graphdat, whether to enable Graphdat support,
 			  [  --enable-graphdat           Enable Graphdat support])
 
+PHP_ARG_WITH(libmsgpack, whether to use system msgpack,
+			  [  --with-libmsgpack           Use system msgpack], no, no)
+
 if test "$PHP_GRAPHDAT" != "no"; then
   dnl # --with-graphdat -> add include path
 
@@ -14,21 +17,45 @@ if test "$PHP_GRAPHDAT" != "no"; then
     src/drupal7.c \
     src/joomla.c \
     src/magento.c \
-    src/msgpack/objectc.c \
-    src/msgpack/unpack.c \
-    src/msgpack/version.c \
-    src/msgpack/vrefbuffer.c \
-    src/msgpack/zone.c \
     src/sockets.c \
     src/timers.c \
     src/wordpress.c \
     src/zendplugin.c"
 
-  PHP_NEW_EXTENSION(graphdat, $graphdat_sources, $ext_shared)
-  
+  if test "$PHP_LIBMSGPACK" != "no"; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+    AC_MSG_CHECKING(msgpack version)
+    if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists msgpack; then
+      LIBMSGPACK_INCLUDE=`$PKG_CONFIG msgpack --cflags`
+      LIBMSGPACK_LIBRARY=`$PKG_CONFIG msgpack --libs`
+      LIBMSGPACK_VERSION=`$PKG_CONFIG msgpack --modversion`
+    fi
+
+    if test -z "$LIBMSGPACK_VERSION"; then
+      AC_MSG_RESULT(msgpack.pc not found)
+      AC_CHECK_HEADERS([msgpack.h])
+      PHP_CHECK_LIBRARY(msgpack, msgpack_version,
+        [PHP_ADD_LIBRARY(msgpack, 1, GRAPHDAT_SHARED_LIBADD)],
+        [AC_MSG_ERROR(msgpack library not found)])
+    else
+      AC_MSG_RESULT($LIBMSGPACK_VERSION)
+      PHP_EVAL_INCLINE($LIBMSGPACK_INCLUDE)
+      PHP_EVAL_LIBLINE($LIBMSGPACK_LIBRARY, GRAPHDAT_SHARED_LIBADD)
+    fi
+    PHP_NEW_EXTENSION(graphdat, $graphdat_sources, $ext_shared)
+    PHP_SUBST(GRAPHDAT_SHARED_LIBADD)
+  else
+    graphdat_sources="$graphdat_sources \
+      src/msgpack/objectc.c \
+      src/msgpack/unpack.c \
+      src/msgpack/version.c \
+      src/msgpack/vrefbuffer.c \
+      src/msgpack/zone.c"
+    PHP_NEW_EXTENSION(graphdat, $graphdat_sources, $ext_shared)
+    PHP_ADD_INCLUDE($ext_srcdir/src/msgpack)
+    PHP_ADD_BUILD_DIR($ext_builddir/src/msgpack)
+  fi
+
   PHP_ADD_INCLUDE($ext_srcdir/src)
-  PHP_ADD_INCLUDE($ext_srcdir/src/msgpack)
   PHP_ADD_BUILD_DIR($ext_builddir/src)
-  PHP_ADD_BUILD_DIR($ext_builddir/src/msgpack)
-
 fi
diff --git a/graphdat.c b/graphdat.c
index 735d1cb..a2fd714 100644
--- a/graphdat.c
+++ b/graphdat.c
@@ -32,7 +32,7 @@
 #include "ext/standard/info.h"
 #include "php_graphdat.h"
 #include "sockets.h"
-#include "msgpack.h"
+#include <msgpack.h>
 #include "ext/standard/base64.h"
 #include "timers.h"
 #include <string.h>
diff --git a/src/timers.h b/src/timers.h
index 384cb5a..0db6020 100644
--- a/src/timers.h
+++ b/src/timers.h
@@ -8,7 +8,7 @@
 
 #include <stddef.h>
 #include <sys/time.h>
-#include "msgpack.h"
+#include <msgpack.h>
 
 #ifndef graphdat_sdk_php_timers_h
 #define graphdat_sdk_php_timers_h

From 149a1182a7e503e6a81262b40fad9aeec628e652 Mon Sep 17 00:00:00 2001
From: Remi Collet <fedora@famillecollet.com>
Date: Fri, 19 Sep 2014 08:20:00 +0200
Subject: [PATCH 2/6] report msgpack version

---
 graphdat.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/graphdat.c b/graphdat.c
index a2fd714..131d238 100644
--- a/graphdat.c
+++ b/graphdat.c
@@ -228,6 +228,8 @@ PHP_MINFO_FUNCTION(graphdat)
 {
   php_info_print_table_start();
   php_info_print_table_header(2, "graphdat", "enabled");
+  php_info_print_table_header(2, "msgpack headers version", MSGPACK_VERSION);
+  php_info_print_table_header(2, "msgpack library version", msgpack_version());
   php_info_print_table_end();
 
   DISPLAY_INI_ENTRIES();

From a93473a771a5c4556da1aa52e471200e2f7e9e9f Mon Sep 17 00:00:00 2001
From: Remi Collet <fedora@famillecollet.com>
Date: Fri, 19 Sep 2014 08:22:24 +0200
Subject: [PATCH 3/6] fix version in reflection + report version in phpinfo

---
 graphdat.c     | 3 ++-
 package2.xml   | 1 +
 php_graphdat.h | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/graphdat.c b/graphdat.c
index 131d238..ef721cd 100644
--- a/graphdat.c
+++ b/graphdat.c
@@ -86,7 +86,7 @@ zend_module_entry graphdat_module_entry = {
   PHP_RSHUTDOWN(graphdat),  /* Replace with NULL if there's nothing to do at request end */
   PHP_MINFO(graphdat),
 #if ZEND_MODULE_API_NO >= 20010901
-  "0.1", /* Replace with version number for your extension */
+  PHP_GRAPHDAT_VERSION,
 #endif
   STANDARD_MODULE_PROPERTIES
 };
@@ -228,6 +228,7 @@ PHP_MINFO_FUNCTION(graphdat)
 {
   php_info_print_table_start();
   php_info_print_table_header(2, "graphdat", "enabled");
+  php_info_print_table_header(2, "graphdat extension version", PHP_GRAPHDAT_VERSION);
   php_info_print_table_header(2, "msgpack headers version", MSGPACK_VERSION);
   php_info_print_table_header(2, "msgpack library version", msgpack_version());
   php_info_print_table_end();
diff --git a/php_graphdat.h b/php_graphdat.h
index ae735f4..8a4e3df 100644
--- a/php_graphdat.h
+++ b/php_graphdat.h
@@ -21,6 +21,8 @@
 #ifndef PHP_GRAPHDAT_H
 #define PHP_GRAPHDAT_H
 
+#define PHP_GRAPHDAT_VERSION "1.0.3"
+
 #include <sys/time.h>
 #include "timers.h"
 

From 9947c97b544d32607226cab5e812c92c1bf9d7fe Mon Sep 17 00:00:00 2001
From: Remi Collet <fedora@famillecollet.com>
Date: Fri, 19 Sep 2014 08:36:23 +0200
Subject: [PATCH 6/6] add arginfo for reflection

---
 graphdat.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/graphdat.c b/graphdat.c
index ef721cd..812cb85 100644
--- a/graphdat.c
+++ b/graphdat.c
@@ -61,12 +61,16 @@ ZEND_DECLARE_MODULE_GLOBALS(graphdat)
 /* True global resources - no need for thread safety here */
 static int le_graphdat;
 
+ZEND_BEGIN_ARG_INFO_EX(arginfo_graphdat_name, 0, 0, 1)
+    ZEND_ARG_INFO(0, name)
+ZEND_END_ARG_INFO()
+
 /*
  * Every user visible function must have an entry in graphdat_functions[].
  */
 const zend_function_entry graphdat_functions[] = {
-    PHP_FE(graphdat_begin, NULL)
-    PHP_FE(graphdat_end, NULL)
+    PHP_FE(graphdat_begin, arginfo_graphdat_name)
+    PHP_FE(graphdat_end,   arginfo_graphdat_name)
     PHP_FE_END  /* Must be the last line in graphdat_functions[] */
 };