RoboCanvas — third-party notices ================================ RoboCanvas incorporates and depends on the software below. Every licence named here was read from the installed package's own metadata or from its ROS `package.xml`, not from memory. See `docs/COMMERCIAL_AUDIT.md` for the full audit and `docs/PACKAGING.md` for what a distributor has to do about it. This file must ship with any distribution of RoboCanvas. 1. Qt, via PySide6 — THE ONE WITH OBLIGATIONS --------------------------------------------- PySide6-Essentials, shiboken6 Copyright (c) The Qt Company Ltd. LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only RoboCanvas uses Qt under the **LGPL-3.0-only** option. It uses four modules — QtCore, QtGui, QtWidgets and QtOpenGLWidgets — all of which are in PySide6-Essentials. RoboCanvas does not modify Qt or PySide6, and links them dynamically as ordinary Python extension modules. Distributing this software means meeting LGPLv3's conditions. In practice: * Ship the Qt libraries as separate, replaceable files. A one-folder application bundle satisfies this; a single-file bundle needs care. See `docs/PACKAGING.md`. * Ship the LGPLv3 licence text (see section 5 below). * Do not impose terms that restrict what the LGPL permits — LGPLv3 §4 specifically covers reverse engineering for relinking. * If Qt is ever modified, the modifications must be published. The alternative is a commercial Qt licence from The Qt Company, which is a separate purchase and is not what `pip install` provides. Qt source and licence information: https://www.qt.io/licensing/ PySide6 source: https://code.qt.io/cgit/pyside/pyside-setup.git/ NOTE: the project deliberately depends on `PySide6-Essentials` rather than the `PySide6` meta-package. The meta-package additionally installs PySide6-Addons, whose binaries include Qt Charts and Qt Data Visualization — those are GPLv3-or-commercial, not LGPL. RoboCanvas imports neither, so depending on the meta-package meant shipping GPL-only binaries for nothing. 2. Python libraries — all permissive ------------------------------------ PyOpenGL, PyOpenGL-accelerate BSD numpy BSD-3-Clause numpy-stl BSD-3-Clause python-utils (via numpy-stl) BSD-3-Clause These require attribution and nothing else. This file is that attribution. Development and test only — never imported by the application and never shipped: pytest (MIT), pytest-qt (MIT), urdf-parser-py (BSD), lxml (BSD-3-Clause), PyYAML (MIT), zstandard (BSD-3-Clause). 3. ROS 2 — required at run time, installed by the user ------------------------------------------------------ rclpy, std_msgs, sensor_msgs, nav_msgs, geometry_msgs, std_srvs Apache-2.0 tf2_ros, robot_state_publisher, rviz2, urdf BSD RoboCanvas does not redistribute ROS 2. The user installs it, and RoboCanvas locates and uses that installation. TRADEMARK: "ROS" and "ROS 2" are trademarks of Open Source Robotics Foundation, Inc. RoboCanvas is not affiliated with, endorsed by, or sponsored by OSRF. Describing this product as working *with* ROS 2 is ordinary nominative use. Naming a product in a ROS-like way, or implying endorsement, is not — check the product name against OSRF's trademark policy before going to market: https://www.openrobotics.org/trademarks 4. Optional Nav2 / slam_toolbox — user-installed, never linked -------------------------------------------------------------- nav2_bringup Apache-2.0 nav2_amcl LGPL-2.1-or-later slam_toolbox LGPL These appear only if a user selects the Nav2 navigation engine, and they are installed by that user. RoboCanvas generates a launch file that starts them as separate processes; no RoboCanvas code and no Nav2 code ever share an address space, so the LGPL's linking obligations do not attach. This changes if Nav2 or slam_toolbox binaries are ever BUNDLED into a RoboCanvas installer. Do not do that without reading their licences again. The default navigation engine is RoboCanvas's own and touches none of this. 5. Licence texts that must ship alongside this file --------------------------------------------------- The full text of the GNU Lesser General Public License v3.0 is required to accompany any distribution that includes Qt. It is not reproduced here and is not present in the PySide6 wheels on this machine — it must be obtained and placed in `licenses/` before distribution. See `licenses/README.md`. 6. The browser application — redistributed in the web build ----------------------------------------------------------- Pyodide 0.27.7 MPL-2.0 CPython 3.12.7 and its standard library PSF-2.0 (Python Software (inside Pyodide: pyodide.asm.wasm, Foundation License; parts python_stdlib.zip) under other permissive terms) The browser application (web/ built with tools/web/build.py, and the public website's /app/) ships these files unmodified, copied from the npm package pinned in tools/pyodide/package-lock.json. RoboCanvas's own code runs on top of them; it does not modify or link into them. MPL-2.0 obliges a distributor of the executable form to tell recipients where the source is: https://github.com/pyodide/pyodide (tag 0.27.7). The licence text is at https://mozilla.org/MPL/2.0/. CPython's licence and the notices of the libraries in its standard library are at https://docs.python.org/3.12/license.html. The local companion download (tools/release/package_companion.py) contains no third-party code: it runs on the user's own Python 3.12 and numpy.