Hi, I have a question about ROS2 and licensing. I would like to create a Python (pip) package for a built version of ROS2 (version Dashing) to allow for simple installation. This package would then be publicly available through a URL (for free, of course). Is this allowed under the current license, and are there any caveats?
It is my understanding that the components that build up ROS2 are all under the Apache 2.0 license, and I have not found any "NOTICE" files in any of them.
Thank you in advance!
Originally posted by jaosef on ROS Answers with karma: 1 on 2020-01-14
Post score: 0
Original comments
Comment by mgruhler on 2020-01-14:
I'll explicitly post this as a comment, and not as an answer, as this is NOT a legally binding advice about the question you ask. Also, you'll not receive any legal advice here that you'll be able to point to and say "they told me that it is okay..."
Now that the disclaimer is out of the way...
Is this allowed under the current license
Yes, given that you follow all conditions that the license puts on you (see this for some hints)
are there any caveats
Sure, there might be clashes with packages installed via the regular package manager, depending on how you set that up. And any you'll need to update your package for every new release of a ROS2 package. To just name a few (you'll probably guess that I don't think what you try to do is a very good idea)...
the components that build up ROS2 are all under the Apache 2.0 license
You need to be more specific here: What packages do you plan to distribute? Each has a seperate
Comment by mgruhler on 2020-01-14:
license. And those licenses don't need to be the same. It is actually fairly common that some packages, even distributed by the OSRF, don't have the recommended license (take gmapping
in ROS1 as an example). So you'll need to check this on a package-per-package basis and comply with the license terms for each package!
I have not found any "NOTICE" files in any of them
Having a "NOTICE" file is not a requirement by the Apache 2.0, nor is distributing a copy of this the only obligation from the Apache 2.0 during redistribution. Check paragraph 4 of the Apache 2.0 license.
So, long story short: Why do you plan to do this in the first place? I guess there are better ways to do this. But to help with that, you'll need to explain in detail your line of thought about proceeding in this fashion (see also http://xyproblem.info),
(Lastly, I'm not familiar enough with pip to judge if this is actually technically feasible...)
Comment by gvdhoorn on 2020-01-14:
Ignoring the legal aspect to this, just some links to ongoing discussions and efforts around "easy distribution" of ROS (2) packages in "a single package" (although not necessarily limited to that):
- ROS packages on conda / conda-forge
- First ROS packages on conda / conda-forge!
- Experimental Python package index for ROS
And it would indeed be good to have a little more information about your intentions @jaosef. Do you have any particular reason for wanting to do this? Or just because it's nice?
+100 for asking this question btw: licensing is not the first thing people think of when looking into this, but it's certainly a very important aspect of the problem.