I'm wondering how much of the Canon SDK I am allowed to distribute with applications I build on top of it.

Canon's SDK for remote operation of DSLR cameras (generally known as EDSDK) is free to download, but asks you to go through some hoops to get to the download. After that point, you get binary libraries and header files.

The license states:

  1. LICENSE. Canon grants Developer a non-exclusive, non-transferable license to use the Software in object code format according to the terms and conditions of this Agreement. Title to the Software shall at all times reside in Canon. Developer may not use, reproduce, sublicense, distribute to any third party or dispose of the Software, in whole or in part, other than as permitted under this Agreement. Developer may distribute the Software, in object code format, only as part of the Developer Software Package in Europe without payment of royalty to Canon, provided that Developer abides by the provisions of this Agreement. Developer shall distribute Developer Software Package elsewhere at its sole risk.

(Developer Software Package = the thing you make)

When it states "object code format" I presume this means compiled binaries. It sounds like I'm allowed to distribute the compiled binaries but it's not clear about the header files. Do you think this license expressly disallows me from distributing the header files?

This is important for me since my project is open source and I would like to distribute all components which are required to build it.

  • 2
    Do you have a link to the full agreement? Sep 9, 2016 at 10:02
  • 1
    You have to first make an account with Canon before the agreement is presented.I've pasted it at : gist.githubusercontent.com/elliotwoods/… Sep 9, 2016 at 11:00
  • 1
    OK, I checked it up and this is really a proprietary software agreement. There is no way I could redistribute a project (say on Github) that contain code from this and comply with their license irrespective of the fact that these terms would likely conflict with most if not all open source licenses; actually even making any commercial product would likely be a problem with this. I would either ask for legal advice or ask Canon for other terms or just would not release anything based on this. Sad, is it? Sep 9, 2016 at 16:54
  • 1
    Thanks for looking into this. I've emailed Canon DIDP for clarification. There are commercial projects which employ the EDSDK so commercial use is possible. Sep 12, 2016 at 3:41

1 Answer 1


From the face of it, I cannot redistribute sources. And I cannot even redistribute binaries outside of Europe or else I will have to pay Canon.

I could unlikely use this as part of (as in embedded) in open source code:

  1. headers do not seem to be redistributable
  2. the objects are redistributable only in Europe, which is practically impossible to enforce for any open source project
  3. the license even in this very restrictive form is not transferable.

So on the face of it this looks like a trial software agreement to entice buying a commercial license or a redistribution license with royalties.

I would ask Canon for another license compatible with open source usage.

  • So to clarify concerning object code... i can distribute outside Europe "at my own risk", but you believe that means I have to pay Canon in that case? Sep 12, 2016 at 3:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.