aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNedeljko Miljevic <Nedeljko.Miljevic@windriver.com>2015-11-02 10:24:38 +0100
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2015-11-04 13:55:49 +0900
commit7017d4f847b2ce243540c5554dd72661a4a02865 (patch)
treeb1d7775ffc456639862d30b861127e5c40e0a9ed
parentf793335f343758d4b662dab24e1537bf92ed9eaf (diff)
Added AMB (automotive-message-broker) to meta-ivi-common layer
v3:(Tadao Tanikawa) - Remove 'qtbase' from dependencies. v2:(Tadao Tanikawa) - Remove 'gpsd' dependency temporarily to complete bitbake without error. v1:(Nedeljko Miljevic) Change-Id: Ieebf982751486167482a303e53cd1ed834b55b3e Signed-off-by: Nedeljko Miljevic <nedeljko.miljevic@windriver.com> Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com>
-rw-r--r--meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/amb_allow_sessionbus.patch124
-rw-r--r--meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/ambd.service15
-rw-r--r--meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker_git.bb43
-rw-r--r--meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-automotive.bb1
4 files changed, 183 insertions, 0 deletions
diff --git a/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/amb_allow_sessionbus.patch b/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/amb_allow_sessionbus.patch
new file mode 100644
index 000000000..d9b77c8f5
--- /dev/null
+++ b/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/amb_allow_sessionbus.patch
@@ -0,0 +1,124 @@
+diff --git a/plugins/dbus/abstractdbusinterface.cpp b/plugins/dbus/abstractdbusinterface.cpp
+index 9dd8566..19ef606 100644
+--- a/plugins/dbus/abstractdbusinterface.cpp
++++ b/plugins/dbus/abstractdbusinterface.cpp
+@@ -17,6 +17,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+ #include "abstractdbusinterface.h"
++#include "dbusplugin.h"
+
+ #include <abstractroutingengine.h>
+ #include <debugout.h>
+@@ -37,7 +38,7 @@ list<string> AbstractDBusInterface::mimplementedProperties;
+ const uint getPid(const char *owner)
+ {
+ GError* error = nullptr;
+- GDBusProxy* dbus = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, NULL,
++ GDBusProxy* dbus = g_dbus_proxy_new_for_bus_sync(bustype, G_DBUS_PROXY_FLAGS_NONE, NULL,
+ "org.freedesktop.DBus",
+ "/",
+ "org.freedesktop.DBus",
+diff --git a/plugins/dbus/automotivemanager.cpp b/plugins/dbus/automotivemanager.cpp
+index b5fb149..edbe1bd 100644
+--- a/plugins/dbus/automotivemanager.cpp
++++ b/plugins/dbus/automotivemanager.cpp
+@@ -1,3 +1,4 @@
++#include "dbusplugin.h"
+ #include "automotivemanager.h"
+ #include "abstractdbusinterface.h"
+ #include "listplusplus.h"
+@@ -341,7 +342,7 @@ static void signalCallback( GDBusConnection *connection,
+ AbstractDBusInterface* iface = i.first;
+ for(auto n : i.second)
+ {
+- if(n == name)
++ if(n == name && !persistent)
+ {
+ DebugOut()<<"unreferencing "<<n<<" from the subscription of "<<iface->objectPath()<<endl;
+ manager->subscribedProcesses[iface].remove(n);
+@@ -398,7 +399,7 @@ AutomotiveManager::AutomotiveManager(GDBusConnection *connection)
+
+ g_assert(regId > 0);
+
+- g_dbus_connection_signal_subscribe(g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL,NULL), "org.freedesktop.DBus", "org.freedesktop.DBus",
++ g_dbus_connection_signal_subscribe(g_bus_get_sync(bustype, NULL,NULL), "org.freedesktop.DBus", "org.freedesktop.DBus",
+ "NameOwnerChanged", "/org/freedesktop/DBus", NULL, G_DBUS_SIGNAL_FLAGS_NONE,
+ signalCallback, this, NULL);
+ }
+diff --git a/plugins/dbus/dbusinterfacemanager.cpp b/plugins/dbus/dbusinterfacemanager.cpp
+index 0c8a645..07e6786 100644
+--- a/plugins/dbus/dbusinterfacemanager.cpp
++++ b/plugins/dbus/dbusinterfacemanager.cpp
+@@ -236,7 +236,7 @@ on_name_lost (GDBusConnection *connection, const gchar *name, gpointer user_data
+ DBusInterfaceManager::DBusInterfaceManager(AbstractRoutingEngine* engine,std::map<std::string,std::string> config)
+ :AbstractSink(engine,config),re(engine), connection(nullptr)
+ {
+- ownerId = g_bus_own_name(G_BUS_TYPE_SYSTEM,
++ ownerId = g_bus_own_name(bustype,
+ DBusServiceName,
+ G_BUS_NAME_OWNER_FLAGS_NONE,
+ on_bus_acquired,
+diff --git a/plugins/dbus/dbusplugin.cpp b/plugins/dbus/dbusplugin.cpp
+index 7fa31c1..0b75d69 100644
+--- a/plugins/dbus/dbusplugin.cpp
++++ b/plugins/dbus/dbusplugin.cpp
+@@ -24,8 +24,21 @@
+ #include "debugout.h"
+ #include "listplusplus.h"
+
++bool persistent=false;
++GBusType bustype=G_BUS_TYPE_SYSTEM;
++
+ extern "C" AbstractSinkManager * create(AbstractRoutingEngine* routingengine, map<string, string> config)
+ {
++ if(config.find("sessionbus") != config.end())
++ {
++ bustype=G_BUS_TYPE_SESSION;
++ }
++
++ if(config.find("persistent") != config.end())
++ {
++ persistent=true;
++ }
++
+ return new DBusSinkManager(routingengine, config);
+ }
+
+diff --git a/plugins/dbus/dbusplugin.h b/plugins/dbus/dbusplugin.h
+index 337f2f6..92e6255 100644
+--- a/plugins/dbus/dbusplugin.h
++++ b/plugins/dbus/dbusplugin.h
+@@ -29,6 +29,9 @@
+
+ typedef std::map<VehicleProperty::Property, VariantType*> PropertyDBusMap;
+
++extern GBusType bustype;
++extern bool persistent;
++
+ class DBusSink : public AbstractSink, public AbstractDBusInterface
+ {
+
+diff --git a/tests/amb-get b/tests/amb-get
+index 0835a64..7fb48ea 100755
+--- a/tests/amb-get
++++ b/tests/amb-get
+@@ -5,12 +5,17 @@ import sys
+ import argparse
+
+ parser = argparse.ArgumentParser()
++parser.add_argument("--sessionbus", help="use session bus", action='store_true')
+ parser.add_argument("get", help="get {objectName}")
+ args = parser.parse_args()
+
+ objectName = args.get
+
+-bus = dbus.SystemBus()
++if (args.sessionbus):
++ bus = dbus.SessionBus()
++else:
++ bus = dbus.SystemBus()
++
+ managerObject = bus.get_object("org.automotive.message.broker", "/");
+ managerInterface = dbus.Interface(managerObject, "org.automotive.Manager")
+
diff --git a/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/ambd.service b/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/ambd.service
new file mode 100644
index 000000000..e06e2427f
--- /dev/null
+++ b/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker/ambd.service
@@ -0,0 +1,15 @@
+#
+# ambd systemd service unit file
+#
+
+[Unit]
+Description=Automotive Message Broker
+After=syslog.target
+
+[Service]
+Type=dbus
+BusName=org.automotive.message.broker
+ExecStart=/usr/bin/ambd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker_git.bb b/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker_git.bb
new file mode 100644
index 000000000..b921b99c8
--- /dev/null
+++ b/meta-ivi-common/recipes-automotive/automotive-message-broker/automotive-message-broker_git.bb
@@ -0,0 +1,43 @@
+SUMMARY = "automotive message broker"
+DESCRIPTION = "Automotive-message-broker abstracts the details of the network \
+away from applications and provides a standard API for applications to easily \
+get the required information"
+
+HOMEPAGE = "https://github.com/otcshare/automotive-message-broker/wiki"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b42382de5d854b9bb598acf2e8827de3"
+
+inherit cmake systemd
+
+PV = "0.12+git${SRCPV}"
+
+# The 'gpsd' cause conflict bluez4 and bluez5 because
+# meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.10.bb is able to
+# select bluez4 only instead AGL Distro choosed bluez5 at Changes 4141.
+# <https://gerrit.automotivelinux.org/gerrit/#/c/4141/>
+#
+# As temporary treatment, removing 'gpsd' from DEPENDS will let bitbake to build correctly.
+#
+#DEPENDS = "glib-2.0 util-linux sqlite3 qtbase boost json-c libtool gpsd"
+DEPENDS = "glib-2.0 util-linux sqlite3 boost json-c libtool"
+
+SRC_URI = "git://github.com/otcshare/automotive-message-broker.git"
+SRCREV = "ac3fe53327a13afc571efe079a31a0472ea285a3"
+
+SRC_URI += "file://amb_allow_sessionbus.patch \
+ file://ambd.service \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "ambd.service"
+
+S = "${WORKDIR}/git"
+
+do_install_append() {
+ mv ${D}/usr/include/amb/* ${D}/usr/include
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/ambd.service ${D}${systemd_unitdir}/system
+}
+
+FILES_${PN} += "${systemd_unitdir}/ambd.service"
diff --git a/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-automotive.bb b/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-automotive.bb
index a623abded..98ff7cab0 100644
--- a/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-automotive.bb
+++ b/meta-ivi-common/recipes-core/packagegroups/packagegroup-ivi-common-core-automotive.bb
@@ -12,4 +12,5 @@ PACKAGES = "\
ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
+ automotive-message-broker \
"