Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

distribution of flycapture SDK #178

Closed
wjwwood opened this issue Jul 30, 2018 · 2 comments
Closed

distribution of flycapture SDK #178

wjwwood opened this issue Jul 30, 2018 · 2 comments
Labels

Comments

@wjwwood
Copy link
Member

wjwwood commented Jul 30, 2018

Currently, the pointgrey_camera_driver package will download the flycapture SDK if it is not found:

# If flycapture is already present, use the found version. If not, download it.
# We can't resolve this dependency using the usual rosdep means because
# the Point Grey EULA prohibits redistributing the headers or the packages which
# contains them. We work around this by downloading the archive directly from
# their website during this step in the build process.

This should be ok, so long as you're not circumventing some registration or EULA acceptance mechanism on behalf of the user. Do any of the maintainers know about this?

However, their SDK license agreement (https://www.ptgrey.com/support/downloads/10419) says:

For clarity, headers (.h), source (.c, .cpp,.cs and .vb) and statically linked libraries (.lib and .a) cannot be redistributed;

Right now, when building the .deb for this package, it downloads the SDK, builds against it, and installs it. The result is uploaded to our http://repositories.ros.org/ where it is then re-distributed. See the contents of the .deb in Kinetic:

% dpkg -L ros-kinetic-pointgrey-camera-driver | grep fly
/opt/ros/kinetic/lib/libflycapture.so.2

Do you guys have special permission to do this? Based on the comments in the CMakeLists.txt, I'd say you probably do not, but maybe I missed some other way it works.

If not, I think we should consider removing this package from the ROS build farm, unless we either find a new way to distribute the binary so that the SDK pieces are not part of it (the user would need to install them some how after installing our deb) or we get special permission from Pointgrey to do this.

@mikepurvis CC'ing you directly since you're listed as the maintainer of the driver package.

@wjwwood
Copy link
Member Author

wjwwood commented Jul 30, 2018

Reading this again, it's possible that shared libraries are allowed to be redistributed? The line I quoted explicitly does not mention dynamically linked libraries, but I'm not sure if that's intentional or an oversight on their side.

@wjwwood
Copy link
Member Author

wjwwood commented Jul 30, 2018

Actually, reading just a little bit more I can answer my own question 😛. It's mentioned in the CMakeLists.txt here:

# Redistributing the flycapture .so file is permitted by the SDK EULA:
# http://www.ptgrey.com/support/kb/data/PGR-FlyCap-SDK-LA.pdf
install(FILES ${POINTGREY_LIB} DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION})

And the previous line in the license agreement (again here: https://www.ptgrey.com/support/downloads/10419) allows for drivers, shared libraries, executables, and documentation to be redistributed in support of derivative products:

(b) may only redistribute drivers (.inf and .sys), dynamically linked libraries (.dlls and .so), executables (.exe) and documentation (.doc, .txt, .pdf and .chm) and only to the extent necessary to support your Derivative Products.

So we're ok. Sorry for the noise 😄. Maybe this will help others wondering about the same thing.

@wjwwood wjwwood closed this as completed Jul 30, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant