I write scripts for a commercial GIS package (ArcGIS) using Python and the GIS package software API (Arcpy). I had been thinking about putting the scripts that I create on GitHub under an MIT licence but I am not sure if the API of the software makes my scripts open source or not. I guess my question is, how do you know if your work is open source if you use someone else API?
-
Are you asking whether using an API requires your plugins/scripts to be open source? Or whether it prohibits it because ArcGIS is proprietary? Or something else? – curiousdannii Jul 16 '15 at 06:42
-
@curiousdannii: whether the use of their API prohibits it being open source because ArcGIS is proprietary – TsvGis Jul 16 '15 at 07:02
-
I vote to close this as "unclear" what you're asking. Without seeing the actual API and how it is used, I don't think it can be answered. – Free Radical Aug 08 '15 at 08:01
2 Answers
First of all, you have to consider the license of the API you're using. Such a license might restrict the ways you release programs based on that API (maybe only for internal use or fees for releasing a program or something like that). If you look at this question, it seems that you cannot license a plugin based on ArcGIS as open source, as this license restricts the way the program can be used. But I don't know if it is the same API you're using. You might want to clarify that. The question I gave doesn't apply, as ArcPy is a Python library. Still I'm unable to find the licenses/terms that apply to the usage of this library, so be wary.
If the license of the API of the commercial App permits the creation of open source software, you still need to check if the open source license in question is compatible. You will have no problem with permissive licenses, so MIT is OK. If you choose a copyleft license (like GPL) on the other hand, you have another problem. The GPL demands, that every linked software is distributed under the same terms, the GPL in that case. As the API links your software and the commercial app it is obviously impossible. Still, you can do that, as long as you the only contributor (or all other contributors also gave their consent). But you would be barred to incorporate any GPL-code from different projects. An prominent example was the KDE-project. At first Qt was released under a non-free license. Still, the release of KDE was legal, but the risks I described lead to massive protest and eventually to the start of the Gnome-project. Also the Debian-project was at some point denying KDE the inclusion in the distribution. In the end Trolltech released Qt under the GPL, thus solving these problems.
Also, you cannot bundle your code with the commercial program. The users of your plugin still have to purchase a license of that program to use your plugin.
-
I don't think your first link applies to this situation. Lots of web services have limitations, such as rate limits for example. Those limitations do not have any impact on whether some program which accesses the web service can be free/open or not. – curiousdannii Jul 16 '15 at 10:32
-
Furthermore, what counts as a "link", and therefore what the GPL applies to, is contested. – curiousdannii Jul 16 '15 at 10:33
-
@curiousdannii: In the answer at the first link it is said, that the program using the API can only be used for a set of use-cases, that is incompatible with open source. And you're right that the linking is difficult, I think I already said it in an answer to another question, but I think it leads to far here. Fact is, as long as we don't know for sure if the linking is holding in court, we have to assume it might and err on the safe side. – Mnementh Jul 16 '15 at 11:51
-
I disagree that the API owners have any say over the licensing of any product that uses it, for the simple fact that the client could be changed to use a different web service. The web service is not open, but that doesn't mean the plugins can't be. – curiousdannii Jul 16 '15 at 12:17
-
@curiousdannii: API-owners around the world have a different opinion about that. Also I'm not sure OP is talking about a web-API, so I'm not sure the question I linked apply, as it might be a different API to the ESRI-products. And some time ago it was pretty usual, that users of a framework have to agree to licensing fees for the product they created on base of that framework. In the face of open source this has become less common, but it is still a possibility. – Mnementh Jul 16 '15 at 12:21
-
Some specific companies may have weird requirements, but I'd think in general that it is as I say. An API could be not just proprietary but commercial, users having to authenticate with the program/server. That should have no impact on how the client is licensed. Not all free/open software has to be usable without authentication. – curiousdannii Jul 16 '15 at 12:27
-
You always talk about servers and web, that is only one way an API can work. But besides that I'm pretty sure that however the API is built, it is always possible for the copyright-owner to make restrictions towards the programs using that API. So, modern APIs are often designed with open source in mind and work as you describe. But that is no general truth. – Mnementh Jul 16 '15 at 12:37
-
I've been saying "service" which would apply to a linked library too. – curiousdannii Jul 16 '15 at 12:39
-
@curiousdannii: And for which the copyright-owner can make restrictions that limit the possibilities for you programs relying on this. – Mnementh Jul 16 '15 at 12:46
-
1I think we need a general canonical question about linking libraries. – curiousdannii Jul 16 '15 at 20:41
-
This answer seems to be either wrong or irrelevant (I am not able to figure out which, as the question itself is not clear). – Free Radical Aug 08 '15 at 08:00
You need to look at what the license of your API will be.
Looking at the ArcGIS Copyright Information page...
...No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying and recording, or by any information storage or retrieval system, except as expressly permitted in writing by ESRI...
Therefore, using the api and allowing open source freedoms, such as reproduction and distribution is asking for trouble.
I misunderstood. It seems like the library in question is actually ArcPy, and not ArcGIS.
Therefore, to answer your question, you need to look at the nature of your "referenced libraries". You need to look at their copyright/licensing terms, analyze them, and determine how they will impact the goals of your project. For example, can I still fork, share it and the like. You can have specific terms and conditions, such as copyleft (also known as ShareAlike), or make it as permissive as possible (Such as this license). In the end, you will know your work is Open Source, if it meets their definition:
- Free Redistribution
- Source Code
- Derived Works
- Integrity of The Author's Source Code
- No Discrimination Against Persons or Groups
- No Discrimination Against Fields of Endeavour
- Distribution of License
- License Must Not Be Specific to a Product
- License Must Not Restrict Other Software
- License Must Be Technology-Neutral
- 6,449
- 4
- 36
- 75
-
4
-
@curiousdannii You're right... I'm not even understanding what I wrote - None of it makes sense! – Zizouz212 Jul 16 '15 at 13:56
-
1"I misunderstood. It seems like the library in question is actually ArcPy, and not ArcGIS." - ArgGIS is a software package, not an API. ArcPy is seemingly the Python-API to access ArcGIS. For details: https://en.wikipedia.org/wiki/ArcGIS – Mnementh Jul 16 '15 at 14:32
-
@Mnementh Exactly. ArcPy is the api, while ArcGIS is the actual software program. – Zizouz212 Jul 16 '15 at 14:58