Hi John,

Thanks for looking at this.  My answers to your questions are below...

On Wed, 2013-07-24 at 13:10 +0200, John Crispin wrote:
> Hi Steve,
> 
> i have a few questions.
> 
> what are your plans on maintaining this package ?

We plan on updating the package every time we do a release.  If the
update is not done be me personally, it will be done by someone on the
AllJoyn team.


> is qcom planning to release more packages like this ?

I can't speak for all of Qualcomm, only for the AllJoyn project.  As for
AllJoyn, we will only be supplying the alljoyn package.  There may, in
the future, be other AllJoyn related packages that we would like to
submit as well.


> maybe it would be good if qcom simply opens its own feed and publishes 
> it. not sure if qcom has something similar to the qca aurora site

The AllJoyn project is handled separately from everything that goes
through Code Aurora Forum (which is what I think you are referring to).
We had an internal discussion as to whether we should host our own feed
or try to submit the package for inclusion in OpenWrt.  We decided that
best option is to upstream this package to OpenWrt.

We are currently working on a service that uses AllJoyn to make it
easier for end-users to configure a headless embedded device using
another device with a UI by using a WiFi link between the router and the
device.  We understand that several router manufactures base their
firmware off OpenWrt and we want to make inclusion of AllJoyn (and this
service, once finished) as simple as possible for these manufacturers to
include in their routers.

Additionally, devices that use our thin client code (also available on
our web site) need a daemon running in an always-on device on the
network.  That makes routers the ideal target for AllJoyn.

I also have a change to LuCI waiting in the wings that will allow users
to modify the UCI config entries for AllJoyn via the web interface that
I'll submit to the LuCI project once AllJoyn is merged in to OpenWrt.


- Steve


>       John
> 
> 
> On 23/07/13 23:00, Steve Kinneberg wrote:
> > from: AllJoyn Project (Qualcomm Innovation Center, Inc.)
> > <maintain...@alljoyn.org>
> >
> > Add AllJoyn v. 3.3.2 as a new package to OpenWrt.
> >
> > AllJoyn is a peer-to-peer networking technology.  Project details can be
> > found at http://www.alljoyn.org.
> >
> > Signed-off-by: Steve Kinneberg<ste...@quicinc.com>
> > ---
> > This is an updated version of AllJoyn from my previous submission.  This
> > patch completely supersedes the previous patch as that has not been
> > applied yet.
> >
> > Index: package/network/services/alljoyn/files/alljoyn.config
> > ===================================================================
> > --- package/network/services/alljoyn/files/alljoyn.config   (revision 0)
> > +++ package/network/services/alljoyn/files/alljoyn.config   (working copy)
> > @@ -0,0 +1,27 @@
> > +
> > +config transport 'unix'
> > +   option enable '1'
> > +   option path 'alljoyn'
> > +   option abstract '1'
> > +
> > +config transport 'ip'
> > +   option enable '1'
> > +   option max_incomplete_conn '16'
> > +   option max_complete_conn '96'
> > +   option bus_port '9955'
> > +   option auth_timeout '20000'
> > +   option advertise_daemon '1'
> > +   option all_networks '0'
> > +   list networks 'lan'
> > +
> > +config transport 'ice'
> > +   option enable '1'
> > +   option max_incomplete_conn '16'
> > +   option max_complete_conn '64'
> > +   option server 'https://rdvs.alljoyn.org'
> > +   option auth_timeout '40000'
> > +   option all_networks '1'
> > +
> > +config transport 'bluetooth'
> > +   option enable '0'
> > +
> > Index: package/network/services/alljoyn/files/alljoyn.defaults
> > ===================================================================
> > --- package/network/services/alljoyn/files/alljoyn.defaults (revision 0)
> > +++ package/network/services/alljoyn/files/alljoyn.defaults (working copy)
> > @@ -0,0 +1,9 @@
> > +#! /bin/sh
> > +uci batch<<EOF
> > +add ucitrack alljoyn
> > +set ucitrack.@alljoyn[-1].init=alljoyn
> > +add_list ucitrack.@network[-1].affects=alljoyn
> > +commit ucitrack
> > +EOF
> > +/etc/init.d/alljoyn enable
> > +exit 0
> > Index: package/network/services/alljoyn/files/alljoyn.init
> > ===================================================================
> > --- package/network/services/alljoyn/files/alljoyn.init     (revision 0)
> > +++ package/network/services/alljoyn/files/alljoyn.init     (working copy)
> > @@ -0,0 +1,224 @@
> > +#!/bin/sh /etc/rc.common
> > +
> > +# Copyright (C) 2013 Qualcomm Innovation Center, Inc.
> > +#
> > +#    Licensed under the Apache License, Version 2.0 (the "License");
> > +#    you may not use this file except in compliance with the License.
> > +#    You may obtain a copy of the License at
> > +#
> > +#        http://www.apache.org/licenses/LICENSE-2.0
> > +#
> > +#    Unless required by applicable law or agreed to in writing, software
> > +#    distributed under the License is distributed on an "AS IS" BASIS,
> > +#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
> > implied.
> > +#    See the License for the specific language governing permissions and
> > +#    limitations under the License.
> > +#
> > +
> > +START=65
> > +
> > +SERVICE_PID_FILE=/var/run/alljoyn.pid
> > +
> > +CONFIGFILE="/var/etc/alljoyn.conf"
> > +
> > +
> > +check() {
> > +    local flag
> > +
> > +    config_get_bool flag "$1" "$2" 0
> > +
> > +    test "$flag" == "1"
> > +    return $?
> > +}
> > +
> > +
> > +process_network() {
> > +    local network="$1"
> > +    local var="$2"
> > +    local ifname
> > +
> > +    config_get ifname "$network" ifname
> > +    if [ -n "$ifname" ]; then
> > +   append "${var}" "${ifname}" ","
> > +    fi
> > +}
> > +
> > +process_networks() {
> > +    local section="$1"
> > +
> > +    if check "$section" all_networks; then
> > +   export "${section}_networks=*"
> > +    else
> > +   config_list_foreach "$section" networks process_network 
> > "${section}_networks"
> > +
> > +   if [ "$section" == "ip" ]; then
> > +       # special case IP until multiple interfaces are properly supported 
> > for IP
> > +       local len
> > +       config_get len ip networks_LENGTH
> > +
> > +       if [ "$len" == "1" ]; then
> > +           local network
> > +           config_get network ip networks_ITEM1
> > +           config_get addr "$network" ipaddr
> > +       fi
> > +   fi
> > +    fi
> > +}
> > +
> > +
> > +process_unix_transport() {
> > +    if check unix enable; then
> > +   local path
> > +   local abstract
> > +
> > +
> > +   config_get path unix path "alljoyn"
> > +   config_get_bool abstract unix abstract "1"
> > +
> > +   if [ -n "$abstract" ]; then
> > +       path="abstract=$path"
> > +   else
> > +       path="path=$path"
> > +   fi
> > +   export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
> > +<listen>unix:${path}</listen>"
> > +
> > +   config_get unix_auth_timeout unix auth_timeout "$unix_auth_timeout"
> > +    fi
> > +}
> > +
> > +
> > +process_ip_transport() {
> > +    if check ip enable; then
> > +   local port
> > +   local addr="0.0.0.0"
> > +
> > +   if check ip advertise_daemon; then
> > +       export ${NO_EXPORT:+-n} ip_advertise_daemon="<tcp>
> > +<property router_advertisement_prefix=\"org.alljoyn.BusNode.\"/>
> > +</tcp>"
> > +   fi
> > +
> > +   process_networks ip
> > +
> > +   config_get port ip bus_port 9955
> > +
> > +   export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
> > +<listen>tcp:addr=${addr},port=${port}</listen>"
> > +
> > +   config_get ip_max_incomplete_conn ip max_incomplete_conn 
> > "$ip_max_incomplete_conn"
> > +   config_get ip_max_complete_conn ip max_complete_conn 
> > "$ip_max_complete_conn"
> > +   config_get ip_auth_timeout ip auth_timeout "$ip_auth_timeout"
> > +    fi
> > +}
> > +
> > +
> > +process_ice_transport() {
> > +    if check ice enable; then
> > +   local url
> > +   local addrport
> > +   local proto
> > +
> > +   export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
> > +<listen>ice:</listen>"
> > +
> > +   process_networks ice
> > +
> > +   config_get url ice server
> > +
> > +   proto="${url%%:*}"
> > +   addrport="${url##${proto}://}"
> > +
> > +   export ice_server="${addrport%:*}"
> > +
> > +   if [ "$proto" == "http" ]; then
> > +       export ice_protocol="HTTP"
> > +   else
> > +       export ice_protocol="HTTPS"
> > +   fi
> > +
> > +
> > +   config_get ice_max_incomplete_conn ice max_incomplete_conn 
> > "$ice_max_incomplete_conn"
> > +   config_get ice_max_complete_conn ice max_complete_conn 
> > "$ice_max_complete_conn"
> > +   config_get ice_auth_timeout ice auth_timeout "$ice_auth_timeout"
> > +    fi
> > +}
> > +
> > +
> > +process_bluetooth_transport() {
> > +    if check bluetooth enable; then
> > +   export ${NO_EXPORT:+-n} listen_specs="${listen_specs}
> > +<listen>bluetooth:</listen>"
> > +    fi
> > +}
> > +
> > +
> > +generate_conf_file() {
> > +    local listen_specs=""
> > +
> > +    local unix_auth_timeout=5000
> > +
> > +    local ip_max_incomplete_conn=16
> > +    local ip_max_complete_conn=64
> > +    local ip_auth_timeout=20000
> > +    local ip_networks=""
> > +    local ip_advertise_daemon=""
> > +
> > +    local ice_max_incomplete_conn=16
> > +    local ice_max_complete_conn=64
> > +    local ice_auth_timeout=40000
> > +    local ice_networks=""
> > +    local ice_server
> > +    local ice_protocol
> > +
> > +    include /lib/network
> > +    scan_interfaces
> > +    config_load alljoyn
> > +
> > +    process_unix_transport
> > +    process_ip_transport
> > +    process_ice_transport
> > +    process_bluetooth_transport
> > +
> > +    mkdir -p $(dirname $CONFIGFILE)
> > +
> > +    cat>  $CONFIGFILE<<EOF
> > +<busconfig>
> > +<type>alljoyn</type>
> > +<fork/>
> > +<syslog/>
> > +<pidfile>${SERVICE_PID_FILE}</pidfile>
> > +  ${listen_specs}
> > +  ${ip_advertise_daemon}
> > +<ip_name_service>
> > +<property interfaces="${ip_networks}"/>
> > +</ip_name_service>
> > +<limit max_incomplete_connections="${ip_max_incomplete_conn}"/>
> > +<limit max_completed_connections="${ip_max_complete_conn}"/>
> > +<limit auth_timeout="${ip_auth_timeout}"/>
> > +<ice>
> > +<limit max_incomplete_connections="${ice_max_incomplete_conn}"/>
> > +<limit max_completed_connections="${ice_max_complete_conn}"/>
> > +<limit auth_timeout="${ice_auth_timeout}"/>
> > +</ice>
> > +<ice_discovery_manager>
> > +<property interfaces="${ice_networks}"/>
> > +<property protocol="${ice_protocol}"/>
> > +<property server="${ice_server}"/>
> > +<property enable_ipv6="false"/>
> > +</ice_discovery_manager>
> > +<property restrict_untrusted_clients="false"/>
> > +<limit max_untrusted_clients="${ip_max_complete_conn}"/>
> > +</busconfig>
> > +EOF
> > +}
> > +
> > +
> > +start() {
> > +    generate_conf_file
> > +    service_start /usr/bin/alljoyn-daemon --config-file=$CONFIGFILE
> > +}
> > +
> > +stop() {
> > +    service_stop /usr/bin/alljoyn-daemon
> > +}
> > Index: package/network/services/alljoyn/Makefile
> > ===================================================================
> > --- package/network/services/alljoyn/Makefile       (revision 0)
> > +++ package/network/services/alljoyn/Makefile       (working copy)
> > @@ -0,0 +1,165 @@
> > +# Copyright 2012-2013, Qualcomm Innovation Center, Inc.
> > +#
> > +#    Licensed under the Apache License, Version 2.0 (the "License");
> > +#    you may not use this file except in compliance with the License.
> > +#    You may obtain a copy of the License at
> > +#
> > +#        http://www.apache.org/licenses/LICENSE-2.0
> > +#
> > +#    Unless required by applicable law or agreed to in writing, software
> > +#    distributed under the License is distributed on an "AS IS" BASIS,
> > +#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
> > implied.
> > +#    See the License for the specific language governing permissions and
> > +#    limitations under the License.
> > +#
> > +
> > +include $(TOPDIR)/rules.mk
> > +
> > +PKG_NAME:=alljoyn
> > +PKG_VERSION:=3.3.2
> > +PKG_RELEASE:=1
> > +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-src
> > +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-src.tgz
> > +PKG_SOURCE_URL:=https://www.alljoyn.org/sites/default/files/resources/
> > +PKG_MD5SUM:=c5711af5ef8a07470c2ae2e24a252b81
> > +
> > +# SCons supports parallel builds but does not support make's jobserver
> > +PKG_BUILD_PARALLEL:=$(if $(CONFIG_PKG_BUILD_USE_JOBSERVER),0,1)
> > +
> > +include $(INCLUDE_DIR)/package.mk
> > +
> > +define Package/alljoyn
> > +  SECTION:=net
> > +  CATEGORY:=Network
> > +  DEPENDS:=+libopenssl +libpthread +librt +libstdcpp
> > +  TITLE:=AllJoyn Peer-to-Peer networking
> > +  URL:=http://www.alljoyn.org
> > +  MAINTAINER:=AllJoyn Open Source Project (Qualcomm Innovation Center, 
> > Inc.)<maintain...@alljoyn.org>
> > +endef
> > +
> > +define Package/alljoyn/description
> > +AllJoyn is a daemon and application framework for developing
> > +ad hoc peer-to-peer applications.  This includes the run-time
> > +daemon and build-time C++ library.
> > +endef
> > +
> > +
> > +define Package/alljoyn-c
> > +  SECTION:=libs
> > +  CATEGORY:=Libraries
> > +  DEPENDS:=+alljoyn
> > +  TITLE:=AllJoyn Peer-to-Peer networking C binding
> > +  URL:=http://www.alljoyn.org
> > +  MAINTAINER:=AllJoyn Open Source Project (Qualcomm Innovation Center, 
> > Inc.)<maintain...@alljoyn.org>
> > +endef
> > +
> > +define Package/alljoyn-c/description
> > +AllJoyn C binding.  This provides a C library for building
> > +AllJoyn programs in C.  Selecting this will create a package
> > +containing the dynamic library for the C binding.
> > +endef
> > +
> > +
> > +
> > +ifeq ($(CONFIG_DEBUG),y)
> > +  ALLJOYN_BUILD_VARIANT:=debug
> > +else
> > +  ALLJOYN_BUILD_VARIANT:=release
> > +endif
> > +
> > +# Only the core C++ binding is supported for this release of AllJoyn for 
> > OpenWrt.
> > +ALLJOYN_BINDINGS=core,c
> > +
> > +PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/build/openwrt/openwrt/$(ALLJOYN_BUILD_VARIANT)/dist
> > +
> > +define Build/Configure/Default
> > +# Override default to do nothing
> > +endef
> > +
> > +TARGET_CFLAGS+=-fPIC
> > +TARGET_CPPFLAGS+=-fPIC
> > +
> > +define Build/Compile
> > +   rm -f $(PKG_BUILD_DIR)/alljoyn_core/inc/alljoyn/Status.h
> > +   scons -C $(PKG_BUILD_DIR) \
> > +           $(PKG_JOBS) \
> > +           WS=off \
> > +           CPU=openwrt \
> > +           OS=openwrt \
> > +           BINDINGS=$(ALLJOYN_BINDINGS) \
> > +           VARIANT=$(ALLJOYN_BUILD_VARIANT) \
> > +           BD=off \
> > +           "TARGET_CC=$$(TARGET_CC)" \
> > +           "TARGET_CXX=$$(TARGET_CXX)" \
> > +           "TARGET_CFLAGS=$$(TARGET_CFLAGS)" \
> > +           "TARGET_CPPFLAGS=$$(TARGET_CPPFLAGS)" \
> > +           "TARGET_PATH=$$(TARGET_PATH)" \
> > +           "TARGET_LINKFLAGS=$$(TARGET_LDFLAGS)" \
> > +           "TARGET_LINK=$$(TARGET_CC)" \
> > +           "STAGING_DIR=$$(STAGING_DIR)"
> > +endef
> > +
> > +define Build/InstallDev
> > +   $(INSTALL_DIR) $(1)/usr/include
> > +   $(INSTALL_DIR) $(1)/usr/include/qcc
> > +   $(CP) $(PKG_INSTALL_DIR)/cpp/inc/qcc/*.h $(1)/usr/include/qcc/
> > +   $(INSTALL_DIR) $(1)/usr/include/qcc/posix
> > +   $(CP) $(PKG_INSTALL_DIR)/cpp/inc/qcc/posix/*.h 
> > $(1)/usr/include/qcc/posix/
> > +   $(INSTALL_DIR) $(1)/usr/include/alljoyn
> > +   $(CP) $(PKG_INSTALL_DIR)/cpp/inc/alljoyn/*.h $(1)/usr/include/alljoyn/
> > +   $(INSTALL_DIR) $(1)/usr/include/alljoyn_c
> > +   $(CP) $(PKG_INSTALL_DIR)/c/inc/alljoyn_c/*.h $(1)/usr/include/alljoyn_c/
> > +   $(INSTALL_DIR) $(1)/usr/lib
> > +   $(CP) $(PKG_INSTALL_DIR)/cpp/lib/liballjoyn.a $(1)/usr/lib/
> > +   $(CP) $(PKG_INSTALL_DIR)/c/lib/liballjoyn_c.a $(1)/usr/lib/
> > +   $(CP) $(PKG_INSTALL_DIR)/c/lib/liballjoyn_c.so $(1)/usr/lib/
> > +endef
> > +
> > +define Package/alljoyn/conffiles
> > +/etc/config/alljoyn
> > +endef
> > +
> > +define Package/alljoyn/install
> > +   $(INSTALL_DIR) $(1)/usr/bin
> > +   $(INSTALL_BIN) $(PKG_INSTALL_DIR)/cpp/bin/alljoyn-daemon $(1)/usr/bin
> > +   $(INSTALL_DIR) $(1)/etc
> > +   $(INSTALL_DIR) $(1)/etc/init.d
> > +   $(INSTALL_BIN) ./files/alljoyn.init $(1)/etc/init.d/alljoyn
> > +   $(INSTALL_DIR) $(1)/etc/uci-defaults
> > +   $(INSTALL_BIN) ./files/alljoyn.defaults $(1)/etc/uci-defaults/alljoyn
> > +   $(INSTALL_DIR) $(1)/etc/config
> > +   $(INSTALL_CONF) ./files/alljoyn.config $(1)/etc/config/alljoyn
> > +endef
> > +
> > +define Package/alljoyn-c/install
> > +   $(INSTALL_DIR) $(1)/usr/lib
> > +   $(CP) $(PKG_INSTALL_DIR)/c/lib/liballjoyn_c.so $(1)/usr/lib/
> > +endef
> > +
> > +define Package/alljoyn/postinst
> > +#!/bin/sh
> > +if [ -z "$${IPKG_INSTROOT}" ]; then
> > +    . /etc/uci-defaults/alljoyn
> > +    rm -f /etc/uci-defaults/alljoyn
> > +fi
> > +exit 0
> > +endef
> > +
> > +define Package/alljoyn/prerm
> > +#!/bin/sh
> > +if [ -z "$${IPKG_INSTROOT}" ]; then
> > +    /etc/init.d/alljoyn stop
> > +    /etc/init.d/alljoyn disable
> > +    uci batch<<EOF
> > +del_list ucitrack.@network[-1].affects=alljoyn
> > +delete ucitrack.@alljoyn[-1]
> > +commit ucitrack
> > +EOF
> > +fi
> > +exit 0
> > +endef
> > +
> > +
> > +$(eval $(call BuildPackage,alljoyn))
> > +$(eval $(call BuildPackage,alljoyn-c))
> > +
> >
> >
> >
> >
> 

-- 
Steve Kinneberg
Qualcomm Innovation Center, Inc.
Email: ste...@quicinc.com
Phone: +1 (206) 576-0107



-- 
Steve Kinneberg
Qualcomm Innovation Center, Inc.
Email: ste...@quicinc.com
Phone: +1 (206) 576-0107



-- 
Steve Kinneberg
Qualcomm Innovation Center, Inc.
Email: ste...@quicinc.com
Phone: +1 (206) 576-0107



-- 
Steve Kinneberg
Qualcomm Innovation Center, Inc.
Email: ste...@quicinc.com
Phone: +1 (206) 576-0107
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to