neard: add Tizen patches 95/31195/2
authorKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Tue, 2 Dec 2014 10:48:12 +0000 (11:48 +0100)
committerronan(Eurogiciel) Le Martret <ronan.lemartret@open.eurogiciel.org>
Fri, 5 Dec 2014 13:41:40 +0000 (05:41 -0800)
Change-Id: Idb92ec85d9691b14bcec885a7d5eeb26e70197a9
Signed-off-by: Kévin THIERRY <kevin.thierry@open.eurogiciel.org>
meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0001-ndef-Support-RAW-ndef-writes.patch [new file with mode: 0644]
meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0002-tag-Implement-a-raw-NDEF-accessor.patch [new file with mode: 0644]
meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0003-Add-raw-NDEF-support-for-P2P.patch [new file with mode: 0644]
meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0004-ndef-Add-support-for-WiFi-Handover-through-MIME-x-nf.patch [new file with mode: 0644]
meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0005-Add-packaging-directory.patch [new file with mode: 0644]
meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard_%.bbappend [new file with mode: 0644]

diff --git a/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0001-ndef-Support-RAW-ndef-writes.patch b/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0001-ndef-Support-RAW-ndef-writes.patch
new file mode 100644 (file)
index 0000000..60935f7
--- /dev/null
@@ -0,0 +1,145 @@
+From 947a28f4000b4638316f30f88f124d87fbdda218 Mon Sep 17 00:00:00 2001
+From: Samuel Ortiz <sameo@linux.intel.com>
+Date: Thu, 25 Oct 2012 18:58:06 +0200
+Subject: [PATCH 1/5] ndef: Support RAW ndef writes
+
+Change-Id: I21a341b2482556458e381b4a3033ef3e9313194c
+---
+ doc/tag-api.txt |  2 ++
+ src/ndef.c      | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-tag   | 13 ++++++++++++
+ 3 files changed, 76 insertions(+)
+
+diff --git a/doc/tag-api.txt b/doc/tag-api.txt
+index 303438b..768c75f 100644
+--- a/doc/tag-api.txt
++++ b/doc/tag-api.txt
+@@ -13,6 +13,8 @@ Method               void Write(dict attributes)
+                       record type and is described by the Record properties.
+                       For example, one would add a type, a Language, an
+                       Encoding and a Representation for a text record.
++                      To push raw NDEF, one should use the NDEF key and use
++                      an array of bytes for the NDEF stream.
+                       Possible Errors: org.neard.Error.PermissionDenied
+                                        org.neard.Error.InvalidArguments
+diff --git a/src/ndef.c b/src/ndef.c
+index e8f950e..4427f08 100644
+--- a/src/ndef.c
++++ b/src/ndef.c
+@@ -3618,6 +3618,64 @@ static struct near_ndef_message *build_mime_record(DBusMessage *msg)
+       return NULL;
+ }
++static struct near_ndef_message * build_raw_ndef(DBusMessage *msg)
++{
++      DBusMessageIter iter, arr_iter;
++      struct near_ndef_message *ndef;
++
++      DBG("");
++
++      ndef = NULL;
++
++      dbus_message_iter_init(msg, &iter);
++      dbus_message_iter_recurse(&iter, &arr_iter);
++
++      while (dbus_message_iter_get_arg_type(&arr_iter) !=
++                                      DBUS_TYPE_INVALID) {
++              const char *key;
++              DBusMessageIter ent_iter;
++              DBusMessageIter var_iter;
++
++              dbus_message_iter_recurse(&arr_iter, &ent_iter);
++              dbus_message_iter_get_basic(&ent_iter, &key);
++              dbus_message_iter_next(&ent_iter);
++              dbus_message_iter_recurse(&ent_iter, &var_iter);
++
++              switch (dbus_message_iter_get_arg_type(&var_iter)) {
++              case DBUS_TYPE_ARRAY:
++                      if (g_strcmp0(key, "NDEF") == 0) {
++                              DBusMessageIter array;
++                              uint8_t *data;
++                              int data_size;
++
++                              dbus_message_iter_recurse(&var_iter, &array);
++                              dbus_message_iter_get_fixed_array(&array,
++                                                              &data,
++                                                              &data_size);
++
++                              ndef = g_try_malloc0(data_size);
++                              if (ndef == NULL)
++                                      break;
++
++                              ndef->data = g_try_malloc0(data_size);
++                              if (ndef->data == NULL) {
++                                      g_free(ndef);
++                                      break;
++                              }
++
++                              ndef->length = data_size;
++                              memcpy(ndef->data, data, data_size);
++                      }
++
++                      break;
++              }
++
++              dbus_message_iter_next(&arr_iter);
++      }
++
++      return ndef;
++}
++
+ struct near_ndef_message *__ndef_build_from_message(DBusMessage *msg)
+ {
+       DBusMessageIter iter;
+@@ -3672,6 +3730,9 @@ struct near_ndef_message *__ndef_build_from_message(DBusMessage *msg)
+                       } else if (g_strcmp0(value, "MIME") == 0) {
+                               ndef = build_mime_record(msg);
+                               break;
++                      } else if (g_strcmp0(value, "Raw") == 0) {
++                              ndef = build_raw_ndef(msg);
++                              break;
+                       } else {
+                               near_error("%s not supported", value);
+                               ndef = NULL;
+diff --git a/test/test-tag b/test/test-tag
+index 3d2c226..935ab6f 100755
+--- a/test/test-tag
++++ b/test/test-tag
+@@ -28,6 +28,7 @@ def usage():
+       print "            Type is MIME, parameters are wifi_wsc <ssid> <passphrase>"
+       print "         If type is MIME, and WiFi AP is open network"
+       print "            Type is MIME, parameters are wifi_wsc <ssid>"
++      print "         If type is RAW, parameters are Raw <NDEF_file>"
+       print "e.g. < %s /org/neard/nfc0/tag0 Text UTF-8 en-US hello,NFC! >" % (sys.argv[0])
+       print "e.g. < %s /org/neard/nfc0/tag0 URI http://www.nfc-forum.com >" % (sys.argv[0])
+       print "e.g. < %s /org/neard/nfc0/tag0 SmartPoster http://www.nfc-forum.com >" % (sys.argv[0])
+@@ -35,6 +36,7 @@ def usage():
+       print "e.g. < %s /org/neard/nfc0/tag0 E-Mail test@test.com >" % (sys.argv[0])
+       print "e.g. < %s /org/neard/nfc0/tag0 MIME wifi_wsc YourAPname passphrase >" % (sys.argv[0])
+       print "e.g. < %s /org/neard/nfc0/tag0 MIME wifi_wsc YourAPname >" % (sys.argv[0])
++      print "e.g. < %s /org/neard/nfc0/tag0 Raw <NDEF_file> >" % (sys.argv[0])
+       sys.exit(1)
+@@ -129,6 +131,17 @@ if (sys.argv[1] == "write"):
+                               "MIME" : "application/vnd.wfa.wsc",
+                               "SSID" : sys.argv[5],
+                               "Passphrase" : sys.argv[6] }))
++
++      elif sys.argv[3] in ["Raw"]:
++              ndef = file(sys.argv[4]).read().rsplit(' ')
++              ndef_stream = bytearray()
++
++              for b in ndef:
++                      ndef_stream.append(int(b, 16))
++
++              tag.Write(({ "Type" : "Raw",
++                              "NDEF" : dbus.ByteArray(ndef_stream) }))
++
+       else:
+               usage()
+-- 
+1.8.1.4
+
diff --git a/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0002-tag-Implement-a-raw-NDEF-accessor.patch b/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0002-tag-Implement-a-raw-NDEF-accessor.patch
new file mode 100644 (file)
index 0000000..a0b86b9
--- /dev/null
@@ -0,0 +1,100 @@
+From ebc4849a0c25ebdbd4aa71e130754ee2668f365c Mon Sep 17 00:00:00 2001
+From: Arron Wang <arron.wang@intel.com>
+Date: Mon, 29 Sep 2014 14:23:55 +0800
+Subject: [PATCH 2/5] tag: Implement a raw NDEF accessor
+
+Change-Id: Id7fab24395d45502e8cdde573c40f2bd99348e27
+---
+ doc/tag-api.txt |  3 +++
+ src/tag.c       | 29 +++++++++++++++++++++++++++++
+ test/test-tag   |  8 ++++++--
+ 3 files changed, 38 insertions(+), 2 deletions(-)
+
+diff --git a/doc/tag-api.txt b/doc/tag-api.txt
+index 768c75f..6feb90d 100644
+--- a/doc/tag-api.txt
++++ b/doc/tag-api.txt
+@@ -20,6 +20,9 @@ Method               void Write(dict attributes)
+                                        org.neard.Error.InvalidArguments
+                                        org.neard.Error.InProgress
++              array{byte} GetRawNDEF()
++
++                      Return the tag's NDEF as a raw bytes stream.
+ Properties    string Type [readonly]
+diff --git a/src/tag.c b/src/tag.c
+index 146a87a..dd9dfe3 100644
+--- a/src/tag.c
++++ b/src/tag.c
+@@ -461,9 +461,38 @@ fail:
+       return __near_error_failed(msg, ENOMEM);
+ }
++static DBusMessage *get_raw_ndef(DBusConnection *conn,
++                              DBusMessage *msg, void *data)
++{
++      struct near_tag *tag = data;
++      DBusMessage *reply;
++      DBusMessageIter iter, array;
++
++      DBG("");
++
++      reply = dbus_message_new_method_return(msg);
++      if (reply == NULL)
++              return NULL;
++
++      dbus_message_iter_init_append(reply, &iter);
++
++      dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
++                                              DBUS_TYPE_BYTE_AS_STRING,
++                                              &array);
++
++      __near_ndef_append_records(&array, tag->records);
++
++      dbus_message_iter_close_container(&iter, &array);
++
++      return reply;
++}
++
+ static const GDBusMethodTable tag_methods[] = {
+       { GDBUS_ASYNC_METHOD("Write", GDBUS_ARGS({"attributes", "a{sv}"}),
+                                                       NULL, write_ndef) },
++      { GDBUS_METHOD("GetRawNDEF",
++                              NULL, GDBUS_ARGS({"NDEF", "ay"}),
++                              get_raw_ndef) },
+       { },
+ };
+diff --git a/test/test-tag b/test/test-tag
+index 935ab6f..36593ab 100755
+--- a/test/test-tag
++++ b/test/test-tag
+@@ -6,10 +6,10 @@ import neardutils
+ bus = dbus.SystemBus()
+-def extract_list(list):
++def extract_ndef(list):
+       val = "["
+       for i in list:
+-              val += " " + str(i)
++              val += " 0x%x" % i
+       val += " ]"
+       return val
+@@ -86,6 +86,10 @@ if (sys.argv[1] == "dump"):
+       else:
+               neardutils.dump_all_records(sys.argv[2])
++              tag = neardutils.find_tag(sys.argv[2])
++              raw_ndef = tag.GetRawNDEF()
++              print "        Raw NDEF = %s" % (extract_ndef(raw_ndef))
++
+               sys.exit(0)
+ if (sys.argv[1] == "write"):
+-- 
+1.8.1.4
+
diff --git a/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0003-Add-raw-NDEF-support-for-P2P.patch b/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0003-Add-raw-NDEF-support-for-P2P.patch
new file mode 100644 (file)
index 0000000..3f9af0e
--- /dev/null
@@ -0,0 +1,94 @@
+From cef95e13567c55fac4c9cf816928705d1b8b233f Mon Sep 17 00:00:00 2001
+From: Arron Wang <arron.wang@intel.com>
+Date: Mon, 29 Sep 2014 16:44:46 +0800
+Subject: [PATCH 3/5] Add raw NDEF support for P2P
+
+Change-Id: I7ab5cd5eea7b0e60b9980f15a7ba15def86ced0e
+---
+ src/device.c     | 31 +++++++++++++++++++++++++++++++
+ test/test-device |  8 ++++++--
+ 2 files changed, 37 insertions(+), 2 deletions(-)
+
+diff --git a/src/device.c b/src/device.c
+index a6598e0..303e787 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -173,6 +173,8 @@ static char *sn_from_message(DBusMessage *msg)
+                               return NEAR_DEVICE_SN_HANDOVER;
+                       else if (g_strcmp0(value, "MIME") == 0)
+                               return NEAR_DEVICE_SN_SNEP;
++                      else if (g_strcmp0(value, "Raw") == 0)
++                              return NEAR_DEVICE_SN_SNEP;
+                       else
+                               return NULL;
+@@ -246,9 +248,38 @@ static gboolean property_get_adapter(const GDBusPropertyTable *property,
+ }
++static DBusMessage *dump_raw_ndef(DBusConnection *conn,
++                              DBusMessage *msg, void *data)
++{
++      struct near_device *device = data;
++      DBusMessage *reply;
++      DBusMessageIter iter, array;
++
++      DBG("");
++
++      reply = dbus_message_new_method_return(msg);
++      if (reply == NULL)
++              return NULL;
++
++      dbus_message_iter_init_append(reply, &iter);
++
++      dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
++                                              DBUS_TYPE_BYTE_AS_STRING,
++                                              &array);
++
++      __near_ndef_append_records(&array, device->records);
++
++      dbus_message_iter_close_container(&iter, &array);
++
++      return reply;
++}
++
+ static const GDBusMethodTable device_methods[] = {
+       { GDBUS_ASYNC_METHOD("Push", GDBUS_ARGS({"attributes", "a{sv}"}),
+                                                       NULL, push_ndef) },
++      { GDBUS_METHOD("DumpRawNDEF",
++                              NULL, GDBUS_ARGS({"NDEF", "ay"}),
++                              dump_raw_ndef) },
+       { },
+ };
+diff --git a/test/test-device b/test/test-device
+index a4923fb..226408f 100755
+--- a/test/test-device
++++ b/test/test-device
+@@ -6,10 +6,10 @@ import neardutils
+ bus = dbus.SystemBus()
+-def extract_list(list):
++def extract_ndef(list):
+       val = "["
+       for i in list:
+-              val += " " + str(i)
++              val += " 0x%x" % i
+       val += " ]"
+       return val
+@@ -73,6 +73,10 @@ if (sys.argv[1] == "dump"):
+       else:
+               neardutils.dump_all_records(sys.argv[2])
++              device = neardutils.find_device(sys.argv[2])
++              raw_ndef = device.DumpRawNDEF()
++              print "        Raw NDEF = %s" % (extract_ndef(raw_ndef))
++
+               sys.exit(0)
+ if (sys.argv[1] == "push"):
+-- 
+1.8.1.4
+
diff --git a/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0004-ndef-Add-support-for-WiFi-Handover-through-MIME-x-nf.patch b/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0004-ndef-Add-support-for-WiFi-Handover-through-MIME-x-nf.patch
new file mode 100644 (file)
index 0000000..ff03015
--- /dev/null
@@ -0,0 +1,223 @@
+From e3d9d28335a45ff212bd2dac36bce717dffaaa11 Mon Sep 17 00:00:00 2001
+From: Samuel Ortiz <sameo@linux.intel.com>
+Date: Thu, 22 Aug 2013 00:13:00 +0200
+Subject: [PATCH 4/5] ndef: Add support for WiFi Handover through MIME/x-nfctl
+
+The NFC task launcher Android application reads NFC tags formatted with
+a proprietary MIME/x-nfctl NDEF containing an SSID and a passphrase.
+By pushing the same kind of NDEF through SNEP, a WiFi association with
+the neard WiFi handover agent can be triggered.
+
+Change-Id: I49f13dc3b32b347357c6d2a13f6b3a132ad74dab
+Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
+---
+ Makefile.am        |  2 +-
+ src/ndef.c         | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ test/test-device   |  4 +++
+ test/wifi-handover | 63 +++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 146 insertions(+), 1 deletion(-)
+ create mode 100755 test/wifi-handover
+
+diff --git a/Makefile.am b/Makefile.am
+index 32a3e91..001f82c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -81,7 +81,7 @@ dist_man_MANS = doc/neard.8 doc/neard.conf.5 doc/nfctool.1
+ test_scripts = test/test-adapter test/test-device \
+               test/test-tag test/monitor-near test/bt-handover \
+               test/handover-agent test/phdc-simple-manager \
+-              test/neardutils.py
++              test/neardutils.py test/wifi-handover
+ if TEST
+ testdir = $(pkglibdir)/test
+diff --git a/src/ndef.c b/src/ndef.c
+index 4427f08..a729b84 100644
+--- a/src/ndef.c
++++ b/src/ndef.c
+@@ -3536,6 +3536,59 @@ static struct near_ndef_message *near_ndef_prepare_mime_payload_record(
+       return mime;
+ }
++#define DE_AUTHENTICATION_TYPE 0x1003
++#define DE_NETWORK_KEY 0x1027
++#define DE_SSID 0x1045
++static void parse_wsc_oob(guint8 *oob_data, guint32 oob_length,
++                                      char **ssid, char **passphrase)
++{
++      guint32 offset = 0;
++      guint16 de_length, de_type;
++      guint16 auth_type;
++
++      while (offset < oob_length) {
++              de_type = near_get_be16(oob_data + offset);
++              de_length = near_get_be16(oob_data + offset + 2);
++
++              switch(de_type) {
++              case DE_AUTHENTICATION_TYPE:
++                      auth_type = near_get_be16(oob_data + offset + 4);
++                      DBG("WSC Authentication Type: 0x%02x",
++                          auth_type);
++                      break;
++
++              case DE_SSID:
++                      *ssid = g_try_malloc0(de_length + 1);
++                      if (!*ssid)
++                              break;
++
++                      g_snprintf(*ssid, de_length + 1,
++                                      "%s", oob_data + offset + 4);
++
++                      DBG("SSID: %s", *ssid);
++                      break;
++
++              case DE_NETWORK_KEY:
++                      *passphrase = g_try_malloc0(de_length + 1);
++                      if (!*passphrase)
++                              break;
++
++                      g_snprintf(*passphrase, de_length + 1,
++                                      "%s", oob_data + offset + 4);
++
++                      DBG("Passphrase: %s", *passphrase);
++                      break;
++
++              default:
++                      DBG("Unknown Data Element");
++                      break;
++
++              }
++
++              offset += 4 + de_length;
++      }
++}
++
+ static struct near_ndef_message *build_mime_record(DBusMessage *msg)
+ {
+       DBusMessageIter iter, arr_iter;
+@@ -3592,6 +3645,31 @@ static struct near_ndef_message *build_mime_record(DBusMessage *msg)
+                               g_free(carrier);
+                               return mime;
++                      } else if (g_strcmp0(mime_str, "x/nfctl") == 0) {
++                              struct carrier_data *carrier;
++                              char *ssid = NULL, *passphrase = NULL;
++                              char payload[128];
++
++                              carrier = __near_agent_handover_request_data(
++                                                      HO_AGENT_WIFI, NULL);
++                              if (!carrier)
++                                      return NULL;
++
++                              parse_wsc_oob(carrier->data, carrier->size,
++                                                      &ssid, &passphrase);
++                              if (!ssid || !passphrase)
++                                      return NULL;
++
++                              g_snprintf(payload, 128,
++                                      "enZ:wifi association;C:I4:%s:2:%s",
++                                      ssid, passphrase);
++                              g_free(ssid);
++                              g_free(passphrase);
++
++                              DBG("payload %s", payload);
++
++                              return near_ndef_prepare_mime_payload_record(
++                                      mime_str, payload, strlen(payload));
+                       } else {
+                               /*
+                                * Expect data is set in the Payload field of
+diff --git a/test/test-device b/test/test-device
+index 226408f..d3b6873 100755
+--- a/test/test-device
++++ b/test/test-device
+@@ -33,6 +33,7 @@ def usage():
+       print "e.g. < %s push /org/neard/nfc0/device0 StaticHandover bluetooth,wifi >" % (sys.argv[0])
+       print "e.g. < %s push /org/neard/nfc0/device0 MIME wifi_wsc>" % (sys.argv[0])
+       print "e.g. < %s push /org/neard/nfc0/device0 MIME raw application/xml '<your><xml tags></your>' >" % (sys.argv[0])
++      print "e.g. < %s push /org/neard/nfc0/device0 WiFiAssociation >" % (sys.argv[0])
+       sys.exit(1)
+@@ -116,6 +117,9 @@ if (sys.argv[1] == "push"):
+                       if sys.argv[4] in ["wifi_wsc"]:
+                               device.Push(({ "Type" : "MIME",
+                                       "MIME" : "application/vnd.wfa.wsc"}))
++              elif sys.argv[3] in ["WiFiAssociation"]:
++                      device.Push(({ "Type" : "MIME",
++                                      "MIME" : "x/nfctl" }))
+               else:
+                       usage()
+       else:
+diff --git a/test/wifi-handover b/test/wifi-handover
+new file mode 100755
+index 0000000..54c6347
+--- /dev/null
++++ b/test/wifi-handover
+@@ -0,0 +1,63 @@
++#!/usr/bin/python
++
++import os
++import sys
++import gobject
++
++import dbus
++import dbus.mainloop.glib
++
++import neardutils
++
++from dbus.lowlevel import MethodCallMessage, HANDLER_RESULT_NOT_YET_HANDLED
++
++mainloop = gobject.MainLoop()
++
++def device_added(path, interfaces):
++      for iface, props in interfaces.iteritems():
++              if "org.neard.Device" in interfaces:
++                      print("Pairing with %s" % (path))
++                      device = dbus.Interface(bus.get_object("org.neard", path),
++                                                      "org.neard.Device")
++                      device.Push(({ "Type" : "MIME", "MIME" : "x/nfctl"}))
++                      break
++
++def device_removed(path, interfaces):
++      for iface in interfaces:
++              if "org.neard.Device" in interfaces:
++                      print("Lost device %s" % (path))
++                      mainloop.quit()
++                      break
++
++if __name__ == '__main__':
++      dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
++
++      bus = dbus.SystemBus()
++
++      adapter_path = neardutils.find_adapter().object_path
++      print("Adapter path %s" % (adapter_path))
++      adapter = dbus.Interface(bus.get_object("org.neard", adapter_path),
++                                              "org.neard.Adapter")
++
++      adapter_props = dbus.Interface(bus.get_object("org.neard", adapter_path),
++                                              "org.freedesktop.DBus.Properties")
++      powered = adapter_props.Get("org.neard.Adapter", "Powered")
++      if (powered == dbus.Boolean(0)):
++              adapter_props.Set("org.neard.Adapter", "Powered", dbus.Boolean(1))
++
++      polling = adapter_props.Get("org.neard.Adapter", "Polling")
++      if (polling == dbus.Boolean(0)):
++              adapter.StopPollLoop()
++
++        print "Starting poll on %s" % (adapter_path)
++      adapter.StartPollLoop("Initiator")
++
++      bus.add_signal_receiver(device_added, bus_name="org.neard",
++                      dbus_interface="org.freedesktop.DBus.ObjectManager",
++                      signal_name="InterfacesAdded")
++
++      bus.add_signal_receiver(device_removed, bus_name="org.neard",
++                      dbus_interface="org.freedesktop.DBus.ObjectManager",
++                      signal_name="InterfacesRemoved")
++
++      mainloop.run()
+-- 
+1.8.1.4
+
diff --git a/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0005-Add-packaging-directory.patch b/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard/0005-Add-packaging-directory.patch
new file mode 100644 (file)
index 0000000..4a0bdb8
--- /dev/null
@@ -0,0 +1,206 @@
+From ff0e49b9b9ceaca5e39139b8013bd779909f8bdb Mon Sep 17 00:00:00 2001
+From: Arron Wang <arron.wang@intel.com>
+Date: Mon, 8 Jul 2013 17:04:26 +0800
+Subject: [PATCH 5/5] Add packaging directory
+
+Change-Id: I5704e7f54c2162b644eaa12aa508d4bf127145eb
+---
+ packaging/neard.changes  |  30 ++++++++++++++
+ packaging/neard.manifest |   5 +++
+ packaging/neard.service  |  12 ++++++
+ packaging/neard.spec     | 101 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/main.conf            |   2 +-
+ 5 files changed, 149 insertions(+), 1 deletion(-)
+ create mode 100644 packaging/neard.changes
+ create mode 100644 packaging/neard.manifest
+ create mode 100644 packaging/neard.service
+ create mode 100644 packaging/neard.spec
+
+diff --git a/packaging/neard.changes b/packaging/neard.changes
+new file mode 100644
+index 0000000..198bfe3
+--- /dev/null
++++ b/packaging/neard.changes
+@@ -0,0 +1,30 @@
++* Tue Sep 30 14:05:35 CST 2014 Arron <arron.wang@intel.com> - 0.14
++- Upgrade to version 0.14
++
++* Mon Jul  8 17:02:59 CST 2013 Arron <arron.wang@intel.com> - 0.12
++- rebase to version 0.12
++
++* Tue Sep 11 2012 arron.wang <arron.wang@intel.com> submit/2.0_beta/20120831.083207@3ecb862
++- Update License Info
++
++* Tue Aug 28 2012 Arron < arron.wang@intel.com> - 0.6
++- Upgrade to version 0.6
++
++* Mon Aug  6 10:39:42 CST 2012 Arron <arron.wang@intel.com>
++- Add systemd support
++
++* Fri Aug 03 2012 Anas Nashif <anas.nashif@intel.com> a7864dd
++- fix runtime requirements
++
++* Tue Jul 31 09:22:14 CST 2012 Arron <arron.wang@intel.com> - 0.5
++- Upgrade to version 0.5
++
++* Tue Apr 24 2012 Arron <arron.wang@intel.com> - 0.2.26
++- Upgrade to latest version
++
++* Fri Apr 20 2012 Arron <arron.wang@intel.com> - 0.1.64
++- Add building require for kernel-adaptation-bb-devel to fix the building error
++
++* Fri Mar 30 2012 Arron <arron.wang@intel.com> - 0.1.64
++- Init package for neard
++
+diff --git a/packaging/neard.manifest b/packaging/neard.manifest
+new file mode 100644
+index 0000000..017d22d
+--- /dev/null
++++ b/packaging/neard.manifest
+@@ -0,0 +1,5 @@
++<manifest>
++ <request>
++    <domain name="_"/>
++ </request>
++</manifest>
+diff --git a/packaging/neard.service b/packaging/neard.service
+new file mode 100644
+index 0000000..1d4ac96
+--- /dev/null
++++ b/packaging/neard.service
+@@ -0,0 +1,12 @@
++[Unit]
++Description=NFC Manager Daemon
++Requires=nfc-manager-neard.service
++Before=network.target nfc-manager-neard.service
++
++[Service]
++Type=dbus
++BusName=org.neard
++ExecStart=/usr/libexec/nfc/neard -n
++
++[Install]
++WantedBy=multi-user.target
+diff --git a/packaging/neard.spec b/packaging/neard.spec
+new file mode 100644
+index 0000000..e5c2abd
+--- /dev/null
++++ b/packaging/neard.spec
+@@ -0,0 +1,101 @@
++Name:       neard
++Summary:    Near Field Communication Manager
++Version:    0.14
++Release:    1
++Group:      Connectivity/NFC
++License:    GPL-2.0
++URL:        http://git.kernel.org/pub/scm/network/nfc/neard.git
++Source0:    http://www.kernel.org/pub/linux/network/nfc/neard-%{version}.tar.bz2
++Source1:    neard.service
++Source1001: neard.manifest
++BuildRequires:  pkgconfig(glib-2.0)
++BuildRequires:  pkgconfig(dbus-1)
++BuildRequires:  pkgconfig(libnl-3.0)
++
++Requires:   libnl3
++Requires(post):   systemd
++Requires(preun):  systemd
++Requires(postun): systemd
++
++%description
++Near Field Communication Manager
++
++
++
++%package devel
++Summary:    Development files for NFC Manager
++Requires:   %{name} = %{version}-%{release}
++
++%description devel
++neard-devel contains development files for use with neard.
++
++%package test
++Summary:    Test Scripts for NFC Manager
++Requires:   %{name} = %{version}-%{release}
++Requires:   dbus-python
++Requires:   pygobject
++
++%description test
++Scripts for testing neard and its functionality
++
++%prep
++%setup -q
++cp %{SOURCE1001} .
++
++%build
++./bootstrap
++%configure \
++              --enable-debug \
++              --prefix=/usr \
++              --sysconfdir=/etc \
++              --enable-nfctype1=builtin \
++              --enable-nfctype2=builtin \
++              --enable-nfctype3=builtin \
++              --enable-nfctype4=builtin \
++              --enable-p2p=builtin \
++              --enable-test
++
++make %{?jobs:-j%jobs}
++
++%install
++%make_install
++
++# Systemd service file
++install -d %{buildroot}%{_unitdir}
++install -m 644 %{S:1} %{buildroot}%{_unitdir}/neard.service
++install -d %{buildroot}%{_unitdir}/network.target.wants/
++ln -s ../neard.service %{buildroot}%{_unitdir}/network.target.wants/neard.service
++
++
++mkdir -p %{buildroot}%{_sysconfdir}/neard
++cp src/main.conf %{buildroot}%{_sysconfdir}/neard/main.conf
++
++%post
++systemctl daemon-reload
++systemctl restart neard.service
++
++%preun
++systemctl stop neard.service
++
++%postun
++systemctl daemon-reload
++
++%files
++%manifest %{name}.manifest
++%license COPYING
++%{_mandir}/man*/*
++%{_libexecdir}/nfc/neard
++%config %{_sysconfdir}/neard/main.conf
++%config %{_sysconfdir}/dbus-1/system.d/org.neard.conf
++%{_unitdir}/neard.service
++%{_unitdir}/network.target.wants/neard.service
++
++%files devel
++%manifest %{name}.manifest
++%{_includedir}/near/*.h
++%{_libdir}/pkgconfig/*.pc
++
++%files test
++%manifest %{name}.manifest
++%defattr(-,root,root,-)
++%{_libdir}/neard/test/*
+diff --git a/src/main.conf b/src/main.conf
+index 70c2697..053c0f8 100644
+--- a/src/main.conf
++++ b/src/main.conf
+@@ -4,7 +4,7 @@
+ # Constant polling will automatically trigger a new
+ # polling loop whenever a tag or a device is no longer
+ # in the RF field.
+-ConstantPoll = true
++ConstantPoll = false
+ # Automatically turn an adapter on when being discovered.
+ # Default value is false.
+-- 
+1.8.1.4
+
diff --git a/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard_%.bbappend b/meta-tizen-adaptation-oe-core/recipes-connectivity/neard/neard_%.bbappend
new file mode 100644 (file)
index 0000000..d38d003
--- /dev/null
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+# Tizen patches
+SRC_URI += "file://0001-ndef-Support-RAW-ndef-writes.patch"
+SRC_URI += "file://0002-tag-Implement-a-raw-NDEF-accessor.patch"
+SRC_URI += "file://0003-Add-raw-NDEF-support-for-P2P.patch"
+SRC_URI += "file://0004-ndef-Add-support-for-WiFi-Handover-through-MIME-x-nf.patch"
+SRC_URI += "file://0005-Add-packaging-directory.patch"