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?
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
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.