DISCLAIMER: This is just a note for my finding, which by no means is guaranteed to be legally correct.
`roscpp` statically links `xmlrpcpp` (see #1).
ROS' xmlrpcpp is licensed as L-GPL.
As long as an application linking statically to an L-GPL library must conform to certain conditions, static linking under certain condition is possible, which `roscpp` qualifies for.
> statically linked:
>
> - Either you must release both parts as LGPL.
> - Or provide everything that allow the user to relink the application with a different version of the LGPL source code. In this case the other requirements are the same as if it was dynamically linked.
By being opensource-d, roscpp qualifies the 2nd option.
That said, how can roscpp be licensed under BSD, not L-GPL?
This is what I'm still not entirely sure about, but BSD is GPL-compatible so as long as the above condition is met it can be licensed differently AFAIU.
#1
$ roscd ros_comm
$ git log -1
commit 1b8fe87ccd662b597faf2d6ae0f862096c7d96a3
Author: Dirk Thomas <dirk-thomas@users.noreply.github.com>
Date: Fri Feb 2 16:04:30 2018 -0800
Add process listeners to XML RPC server (#1319)
When a process on a remote machine dies, the `process_died` callback of
the server is called. However, the process listeners given to
`ROSLaunchParent` need to be forwarded to the server, otherwise they
cannot be called.
$ ack-grep -B 1 -A 2 xmlrpcpp .
package.xml
35- <build_depend>std_msgs</build_depend>
36: <build_depend>xmlrpcpp</build_depend>
37-
38- <run_depend version_gte="0.3.17">cpp_common</run_depend>
--
45- <run_depend>std_msgs</run_depend>
46: <run_depend>xmlrpcpp</run_depend>
47-</package>
include/ros/xmlrpc_manager.h
38-#include "common.h"
39:#include "xmlrpcpp/XmlRpc.h"
40-
41-#include <ros/time.h>
include/ros/publication.h
33-#include "common.h"
34:#include "xmlrpcpp/XmlRpc.h"
35-
36-#include <boost/thread/mutex.hpp>
include/ros/master.h
31-#include "forwards.h"
32:#include "xmlrpcpp/XmlRpcValue.h"
33-#include "common.h"
34-
include/ros/node_handle.h
51-
52:#include <xmlrpcpp/XmlRpcValue.h>
53-
54-namespace ros
include/ros/topic_manager.h
35-
36:#include "xmlrpcpp/XmlRpcValue.h"
37-
38-#include <boost/thread/mutex.hpp>
include/ros/subscription.h
37-#include "ros/statistics.h"
38:#include "xmlrpcpp/XmlRpc.h"
39-
40-#include <boost/thread.hpp>
include/ros/param.h
32-#include "common.h"
33:#include "xmlrpcpp/XmlRpcValue.h"
34-
35-#include <vector>
include/ros/service_publication.h
32-#include "common.h"
33:#include "xmlrpcpp/XmlRpc.h"
34-
35-#include <boost/thread/mutex.hpp>
src/libros/node_handle.cpp
46-#include "ros/this_node.h"
47:#include "xmlrpcpp/XmlRpc.h"
48-
49-#include <boost/thread.hpp>
src/libros/service_manager.cpp
44-
45:#include "xmlrpcpp/XmlRpc.h"
46-
47-#include <ros/console.h>
src/libros/topic_manager.cpp
43-
44:#include "xmlrpcpp/XmlRpc.h"
45-
46-#include <ros/console.h>
src/libros/master.cpp
36-
37:#include "xmlrpcpp/XmlRpc.h"
38-
39-namespace ros
src/libros/init.cpp
50-#include "ros/internal_timer_manager.h"
51:#include "xmlrpcpp/XmlRpcSocket.h"
52-
53-#include "roscpp/GetLoggers.h"
CMakeLists.txt
8-find_package(catkin REQUIRED COMPONENTS
9: cpp_common message_generation rosconsole roscpp_serialization roscpp_traits rosgraph_msgs rostime std_msgs xmlrpcpp
10-)
11-
--
56- LIBRARIES roscpp ${PTHREAD_LIB}
57: CATKIN_DEPENDS cpp_common message_runtime rosconsole roscpp_serialization roscpp_traits rosgraph_msgs rostime std_msgs xmlrpcpp
58- DEPENDS Boost
59-)
CHANGELOG.rst
39-* move connection specific log message to new name roscpp_internal.connections (`#980 <https://github.com/ros/ros_comm/pull/980>`_)
40:* move headers to include/xmlrpcpp (`#962 <https://github.com/ros/ros_comm/issues/962>`_)
41-* fix UDP block number when EAGAIN or EWOULDBLOCK (`#957 <https://github.com/ros/ros_comm/issues/957>`_)
42-* fix return code of master execute function (`#938 <https://github.com/ros/ros_comm/pull/938>`_)
$
No comments:
Post a Comment