Platform Developer Agreement

@ben Where Is the Platform Developer Agreement mentioned in the terms?

Continuing the discussion from Foscam IP Camera Integration with SmartThings:

1 Like

They changed it Nov 22.

https://web.archive.org/web/20140803013958/https://www.smartthings.com/terms/

You can find this on the ā€œMy Publication Requestsā€ screen.

http://cl.ly/ZdOd/Image%202015-02-04%20at%207.58.23%20PM.png

And when you go to submit a new submission.

http://cl.ly/Zceh/Image%202015-02-04%20at%207.59.04%20PM.png

1 Like

I donā€™t see a problem here because as a developer, I can dual-license my software and the Apache license terms would apply to SmartThings only. Also, correct me if Iā€™m wrong, but the Developer Agreement only concerns with software submitted to SmartThings for publication. If I have not submitted it to SmartThings but just made it available on Github, Iā€™m free to choose whatever license terms I like.

'#FirstWorldProblems

Thanks for that clarification @Ben that document answers most of the questions I had regarding smart app publication, perhaps you could add a link to it where it is referenced in the terms of service.

@RBoy I apologize that your thread was hijacked, but I feel that the conversation that was happening there is an important one. I too have a project that I feel will be worth paying for, but I have chosen to err on the side of caution by waiting to charge people to use it. I believe at this point there are still many unanswered questions surrounding the monetezation of smartapps or external services that utilize them in the case of my project.

1 Like

Youā€™re probably right, but I worry about the ā€œgotchasā€, though with the new SmartThings Platform Agreement, perhaps things are more clear.

The ā€œgotchaā€ that I am worried about is that your GitHub code eventually gets installed onto the SmartThings Platform (even if not by yourself, but by a user). Once it is on the SmartThings Platform (even as a one-off install), then, at least from my interpretation of the original Terms of Use, the code would be subject to those Terms. Which could mean, perhaps, that if STā€™s Terms of Use are not compatible with your License, then your code could never be legally installed on the Platform, since that would cause the License to be violated.

Oh wellā€¦ thatā€™s all just theory. Iā€™ll reserve further questions and comment I read carefully and we learn more about the applicability of the SmartThings Platform Developer Agreement. Which Iā€™d like to paste here in a new Post.

Thanks, Kristopher: ā€“ I swear I read the old code / developer terms just this morning, but that could have been from something that was pasted into an old Forum thread. Iā€™m tempted to delete deprecated messages from the other Topic now.

Iā€™ve copied and pasted this here as of Feb 4, 2015, 22:42 PST.

SmartThings Platform Developer Agreement

This SmartThings Platform Developer Agreement (the ā€œAgreementā€) applies to your public listing of one or more Developer Submissions on the SmartThings Platform. For clarity, any other use by you of any SmartThings products or services outside of the express scope of this Agreement shall be governed by and subject to our Terms of Service.

BY CLICKING ON THE ā€œSUBMITā€ BUTTON, BY USING THE SMARTTHINGS PLATFORM, OR BY SUBMITTING ANY DEVELOPER SUBMISSION TO THE SMARTTHINGS PLATFORM, YOU OR THE ENTITY OR ENTITY THAT YOU REPRESENT (ā€œYOUā€, ā€œYOURā€, OR ā€œLICENSEEā€) ARE UNCONDITIONALLY CONSENTING TO BE BOUND BY AND ARE BECOMING A PARTY TO THIS AGREEMENT. LICENSEEā€™S CONTINUED USE OF THE SMARTTHINGS PLATFORM SHALL ALSO CONSTITUTE ASSENT TO THIS AGREEMENT. IF LICENSEE DOES NOT UNCONDITIONALLY AGREE TO ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT, LICENSEE MAY NOT USE THE SMARTTHINGS PLATFORM. IF THE TERMS OF THIS AGREEMENT ARE CONSIDERED AN OFFER, ACCEPTANCE IS EXPRESSLY LIMITED TO SUCH TERMS. IF YOU ARE ACCEPTING THIS AGREEMENT ON BEHALF OF AN ORGANIZATION OR ENTITY, YOU REPRESENT AND WARRANT YOU HAVE POWER AND AUTHORITY TO BIND SUCH ORGANIZATION OR ENTITY TO THIS AGREEMENT.

  1. Definitions.

Ā· ā€œSDKā€ means SmartThingsā€™ proprietary online software development kit and related information and documentation which enables the creation of Developer Submissions.

Ā· ā€œDeveloper Submissionā€ means SmartApps and Device Type Handlers.

Ā· ā€œDeviceā€ means a hardware device that connects to and/or interacts with the Platform or any Developer Submission.

Ā· ā€œDevice Type Handlerā€ means software that is designed to run on the SmartThings Platform and enable the SmartThings Platform to connect to and/or interface with a Device.

Ā· ā€œEnd Userā€ means an end user who uses the Platform and/or any of your Developer Submissions or associated Devices.

Ā· ā€œCatalogā€ means SmartThingsā€™ online directory of Developer Submissions that interoperate with the SmartThings Platform.

Ā· ā€œPlatformā€ or ā€œSmartThings Platformā€ means SmartThingsā€™ proprietary technology platform which provides functionality (including via the SDK) to enable interoperation of Developer Submissions and Devices, including all related information and documentation, and including the Catalog.

Ā· ā€œSmartAppā€ means a software application which is designed to interoperate with the SmartThings Platform.

  1. Modifications to Platform & Agreement. SmartThings reserves the right, at its sole discretion, to modify or replace this Agreement, or change, suspend, or discontinue the Platform (including without limitation, the availability of any feature, database, or content) at any time by posting a notice on the Platform or by sending you an email. SmartThings may also impose limits on certain features or services or restrict your access to parts or all of the Platform without notice or liability. It is your responsibility to check this Agreement periodically for changes. Your continued use of the Platform following the posting of any changes to this Agreement constitutes acceptance of those changes.

  2. Listing Your Developer Submissions on the Platform. Subject to the terms and conditions of this Agreement, upon your successful completion of the Developer Submission review and approval process set forth herein for a particular Developer Submission, SmartThings grants you a nonexclusive, revocable license to list such Developer Submission on the Platform. SmartThings reserves the right, in its sole discretion and for any reason at any time, to revoke this permission, to refuse to list your Developer Submission on the Platform, and/or to remove any Developer Submission from the Platform (including removing any installed instances of such Developer Submission as well as any associated data). You hereby grant SmartThings a worldwide, nonexclusive, sublicensable, perpetual, royalty-free, fully paid-up, transferable right and license: (a) to market your Developer Submissions and to permit others to use, access, install, and download your Developer Submissions and any associated documentation through the Platform in accordance with this Agreement, and (b) to use your applicable trademarks and logos in connection with the distribution and marketing of your Developer Submissions.

  3. Developer Submission Review and Approval Process. Prior to listing your Developer Submissions on the Platform (or any updated or modified version of any Developer Submission), you must submit each Developer Submission to SmartThings for review using the online submission functionality provided by SmartThings. You agree to provide accurate, complete, and updated information about yourself and all of your Developer Submissions. You are responsible for evaluating and testing all aspects of each of your Developer Submissions (including functionality, performance, security, and user interface) prior to submission. SmartThings reserves the right to conduct any type of review of your Developer Submissions, and SmartThings may adopt and change its review standards and processes in its sole discretion. SmartThingsā€™ current Developer Submission review guidelines are available at http://community.smartthings.com. Although SmartThings will use commercially reasonable efforts to avoid any adverse effects on your Developer Submissions or associated systems during the testing process, you agree that SmartThings (and, if applicable, its agents or contractors conducting any Developer Submission testing) will bear no responsibility for any such adverse effects. If you make any updates or modifications to any of your Developer Submissions, you must submit such updated or modified versions to SmartThings for review and approval under the same process set forth above.

  4. Restrictions. As between the parties, SmartThings retains all right, title and interest in and to the Platform (including all related intellectual property rights), and you may not use the Platform other than as expressly set forth herein. If you create or offer a program, feature, product, or service (whether offered via the Platform, your personal website or service, or any other distribution channel) that is competitive with a SmartThings product or service (a ā€œCompetitive Productā€), you will not use in that Competitive Product any part of the Platform or any related intellectual property in connection with that Competitive Product. You shall not reverse engineer any aspect of the Platform or permit anyone else to do so, except to the extent such restriction is prohibited by applicable law. You shall not block, disable, hide or limit in any way the ability of any software or hardware to access the Platform, or any portion or functionality of or enabled by the Platform. You understand that SmartThings may cease support of old versions or releases of the Platform; you will always use and support the latest available version or release of the Platform. Additionally, you shall not interfere or attempt to interfere with the proper working of the Platform or any activities conducted on the Platform, or bypass any measures SmartThings may use to prevent or restrict access to the Platform (or other accounts, computer systems or networks connected to the Platform). You understand and agree that SmartThings works with many application and software developers and some of their products or services may be similar to or perform the same or similar functions as your Developer Submissions (ā€œSimilar Offeringsā€), and SmartThings may also develop its own Similar Offerings. To avoid potential misunderstandings, SmartThings cannot agree to any confidentiality or use restrictions with respect to any information that you may provide in connection with your Developer Submissions or this Agreement, and nothing herein shall be construed to limit SmartThings from developing Similar Offerings.

  5. Responsibility for Your Developer Submissions. You acknowledge that you are solely responsible (and that SmartThings has no responsibility) for your Developer Submissions, including without limitation the functionality, content, development, operation, and maintenance thereof. By submitting your Developer Submissions to SmartThings, you represent and warrant that: (i) your Developer Submissions (including (a) all content and other materials contained in or available through your Developer Submissions, (b) any Devices provided by you which relate to your Developer Submissions, and Ā© the use of any of the foregoing by SmartThings or any End Users) do not and will not violate, misappropriate or infringe the rights of any person or entity including any contract rights, privacy rights, or any copyright, patent, trademark, trade secret or other personal or proprietary rights, (ii) your Developer Submissions (including any content or materials made available in connection therewith) are not offensive, profane, obscene, libelous or otherwise illegal, and (iii) your Developer Submissions will not contain any virus, worm, Trojan house, adware, spyware or other malicious code. You will comply with all applicable local, state, national and international laws and regulations, including, without limitation, all applicable export control laws, and maintain all licenses, permits and other permissions necessary to list and provide your Developer Submissions.

  6. Developer Submission Licensing. The parties acknowledge and agree that neither SmartThings nor any End User shall acquire any ownership interest in or to any of your Developer Submissions. When you submit a Developer Submission to SmartThings for review, SmartThings may provide you with the ability to submit (at your option) a separate End User license to govern End Usersā€™ use of such Developer Submission (a ā€œCustom EULAā€), which Custom EULA will form a part of your application for your Developer Submission. SmartThings may (but is not obligated to) review your Custom EULA, and may reject any Developer Submission based on your Custom EULA in its sole discretion. Any updates or modifications to a Custom EULA must be submitted to SmartThings for review and shall cause your SmartApp to be subject to approval under the same process as set forth above. If your Developer Submission is approved by SmartThings (and your submission included a Custom EULA), then during the installation process for such Developer Submission (i) SmartThings shall provide each End User to whom SmartThings allows access to such Developer Submission an opportunity to review the Custom EULA at the time that SmartThings first provides such access. You are solely responsible for your Custom EULA, and any review or approval of your Developer Submission by SmartThings does not constitute legal advice or an endorsement of any associated Custom EULA. If you do not submit a Custom EULA with your Developer Submission (or if you elect to continue with the submission process following a rejection of your Developer Submission by SmartThings based on your Custom EULA), then your Developer Submission shall be made available to End Users pursuant to SmartThingsā€™ then-current Terms of Service, the current version of which is set forth at http://www.smartthings.com/terms (ā€œDefault Termsā€). Notwithstanding the foregoing, for any Device Type Handler that you submit to SmartThings (as well as any associated service manager SmartApps), you shall and hereby do grant SmartThings the right to use and make available such Device Type Handler and associated service manager SmartApps pursuant to the terms of Version 2.0 of the Apache License, unless you have otherwise notified SmartThings in advance and writing (including via any functionality provided by the Platform for such purposes) that you do not wish to have such license apply to such Device Type Handler or associated service manager SmartApps. You hereby agree that the Custom EULA for each of your Developer Submissions is solely between you and the End User, and that SmartThings shall not be responsible for, and shall not have any liability whatsoever under, any Custom EULA (or any breach thereof by you or any End User).

  7. End User Support. You are solely responsible for providing support (if any) to your End Users with respect to your Developer Submissions and any associated Devices or services provided by you or on your behalf. You will provide SmartThings with a current email address to which SmartThings may direct inquiries from End Users regarding your Developer Submissions (provided that SmartThings is not obligated to do so).

  8. Fees; Payment. Fees for participation in the Platform, if any, shall be prominently set forth on the Platform, or may be set forth in a separate written agreement between you and SmartThings (ā€œFeesā€). Unless otherwise agreed by SmartThings in writing, all Fees shall be payable annually in advance in United States dollars within thirty (30) days of SmartThingsā€™ invoice. All Fees are nonrefundable and are not subject to setoff.

  9. End User Data & Privacy. If you directly or indirectly collect, copy, store, transmit, share, or otherwise use or exploit any information regarding any End Users (including, without limitation, any personally identifiable information) (collectively, ā€œUser Dataā€) via your Developer Submissions or otherwise through your use of the Platform (collectively, ā€œData Collection Activitiesā€), then you are solely responsible (a) for ensuring that such Data Collection Activities are conducted in full compliance with all applicable laws, rules, regulations, industry self-regulatory regimes and third-party contracts, terms and policies (including any written policies, guidelines, or principles promulgated by SmartThings from time to time regarding Data Collection Activities), and (b) for obtaining all consents, authorizations and clearances from End Users and any from other third parties that may be required in connection therewith. You may only engage in Data Collection Activities that are directly relevant to the functionality provided to End Users by your Developer Submission. You must not transfer to SmartThings, and must not (nor allow any third party to) modify, configure or use the Platform to track, collect, or to cause to be collected by or transferred to SmartThings, any User Data that is financial information, health information, medical information, pharmaceutical information, information regarding children under 13 years of age, or other sensitive information, or that is used to target advertising to individual End Users. Without limiting the generality of the foregoing, you must maintain a privacy policy applicable to your Developer Submissions (and any other associated products and services) that (i) is prominently presented to End Users, and (ii) fully discloses your use of the Platform and any provision of User Data to SmartThings as contemplated by this Agreement. You acknowledge and agree that SmartThings is permitted to use any User Data that you provide to SmartThings in accordance with SmartThingsā€™ Privacy Policy.

  10. Warranties; Disclaimer. The parties acknowledge that the Platform are provided ā€œAS ISā€. EXCEPT FOR ANY EXPRESS WARRANTIES SET FORTH HEREIN, SMARTTHINGS AND ITS SUPPLIERS AND LICENSORS HEREBY DISCLAIM ALL (AND HAVE NOT AUTHORIZED ANYONE TO MAKE ANY) WARRANTIES RELATING TO THE PLATFORM OR OTHER SUBJECT MATTER OF THIS AGREEMENT, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES AGAINST INFRINGEMENT OF THIRD PARTY RIGHTS, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. NEITHER SMARTTHINGS NOR ITS SUPPLIERS OR LICENSORS MAKES ANY WARRANTY AS TO THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE PLATFORM OR THAT THE PLATFORM WILL BE ERROR-FREE OR AVAILABLE AT ANY GIVEN TIME.

  11. Indemnification. You will indemnify and hold SmartThings, its parents, subsidiaries, affiliates, officers, and employees harmless (including, without limitation, from all damages, liabilities, settlements, costs and attorneysā€™ fees) from any claim or demand made by any third party due to or arising out of (i) your Developer Submissions, your Developer Submissionsā€™ interaction with any Devices, or any Devices provided by you, (ii) your access to or use of the Platform, (iii) your violation of this Agreement, (iv) your negligence or willful misconduct, or (v) any infringement, misappropriation, or violation of any intellectual property or other personal or proprietary right of any person or entity by you, your Developer Submissions, your Developer Submissionsā€™ interaction with any Devices, or any Devices provided by you.

  12. Limitation of Liability. TO THE FULLEST EXTENT ALLOWED BY APPLICABLE LAW, UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE) SHALL SMARTTHINGS BE LIABLE TO YOU OR TO ANY OTHER PERSON FOR (A) ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND, INCLUDING DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, ACCURACY OF RESULTS, OR FAILURE OR MALFUNCTION OF ANY DEVICE CONNECTED TO THE PLATFORM, OR (B) ANY AMOUNT, IN THE AGGREGATE, IN EXCESS OF THE GREATER OF (I) $100 OR (II) THE AMOUNTS PAID BY YOU TO SMARTTHINGS IN CONNECTION WITH THE PLATFORM IN THE TWELVE (12) MONTH PERIOD PRECEDING ANY APPLICABLE CLAIM, OR (III) ANY MATTER BEYOND SMARTTHINGS REASONABLE CONTROL. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THE ABOVE LIMITATION AND EXCLUSIONS MAY NOT APPLY TO YOU.

  13. Term; Termination. Unless earlier terminated as set forth below, the term of this Agreement shall commence on the date you accept it, and continue for the longer of (a) one year or (b) until none of your Developer Submissions are listed on the Platform. Either party may terminate this Agreement with or without cause upon 30 daysā€™ written notice. In addition, SmartThings may terminate this Agreement immediately upon notice to you in the event that (i) you become the subject of a petition in bankruptcy or other proceeding relating to insolvency, or make an assignment for the benefit of creditors, (ii) you are acquired by or become a SmartThings competitor, (iii) you breach your confidentiality obligations under this Agreement or infringe or misappropriate SmartThingsā€™ intellectual property rights, or (iv) SmartThings determines, based on one or more End User or prospect complaints, that your actions or your Developer Submissions create a significant risk of harm to SmartThingsā€™ reputation, business or customer relationships.

  14. Miscellaneous. You may not assign, delegate or transfer this Agreement, your rights or obligations hereunder, or your Platform account, in any way (by operation of law or otherwise) without SmartThingsā€™s prior written consent. SmartThings may freely transfer, assign, or delegate this Agreement and its rights and obligations without consent. This Agreement is governed by and will be construed under the laws of the State of California, without regard to the conflicts of laws provisions thereof. Any dispute arising from or relating to the subject matter of this Agreement shall be finally settled in San Francisco County, California, in English, in accordance with the Streamlined Arbitration Rules and Procedures of Judicial Arbitration and Mediation Services, Inc. (ā€œJAMSā€) then in effect, by one commercial arbitrator with substantial experience in resolving intellectual property and commercial contract disputes, who shall be selected from the appropriate list of JAMS arbitrators in accordance with the Arbitration Rules and Procedures of JAMS. Judgment upon the award rendered by such arbitrator may be entered in any court of competent jurisdiction. Notwithstanding the foregoing obligation to arbitrate disputes, each party shall have the right to pursue injunctive or other equitable relief at any time, from any court of competent jurisdiction. For all purposes of this Agreement, the parties consent to exclusive jurisdiction and venue in the state or federal courts located in, respectively, San Francisco County, California, or the Northern District of California. You will be responsible for withholding, filing, and reporting all taxes, duties, and other governmental assessments associated with your activity in connection with the Platform. The failure of either you or us to exercise, in any way, any right herein shall not be deemed a waiver of any further rights hereunder. If any provision of this Agreement is found to be unenforceable or invalid, that provision will be limited or eliminated, to the minimum extent necessary, so that this Agreement shall otherwise remain in full force and effect and enforceable. This Agreement is the complete and exclusive statement of the mutual understanding between you and SmartThings regarding your use of the Platform, and that it supersedes and cancels all previous written and oral agreements, communications and other understandings relating to the subject matter of this Agreement, and that all modifications to this Agreement must be in a writing signed by both parties (except as otherwise provided herein). No agency, partnership, joint venture, or employment is created as a result of this Agreement and you do not have any authority of any kind to bind SmartThings in any respect whatsoever. You and SmartThings agree there are no third party beneficiaries intended under this Agreement.

Perhaps, but in THIS country intellectual property does matter.

This community strived on people collaborating and freely sharing their ideas and projects. Some developers, myself included, asked for voluntary contributions to support development of rather complex apps, but all projects so far, including amazing dashboard developed by @625alex, have been open source. This way we all could learn from each other and make SmartThings better.

Now, someone comes along and decides to leverage this treasure trove of open source code to make a profit by setting up a closed source server and charging for access to ā€œpremiumā€ apps. Is it illegal? Probably not, unless there is indeed violation of the license terms. But where does it leave other developers whoā€™s primary goal may not be a short-term profit, but who nonetheless do not want to be taken advantage of by someone making profit off their work?

I for one, have no desire to follow @rboyā€™s example and start charging people for access to my apps until SmartThings opens up the App Store. But until that happens, Iā€™m going to hold off on updates and new app releases.

2 Likes

I understand thereā€™s reason for concern and also reason to be very optimistic and hopeful for a supportive Development and Distribution Platform from SmartThings.

In the meantime, though, what is your exact concern that would keep you from continuing the usual flow of updates and new app releases? That could be a really big loss to the Community, and Iā€™d like to discuss ways to avoid that loss.

I believe in laissez-faire, a free market. Right now there is no official marketplace, which allows some ā€œentrepreneursā€ to take advantage of developers who spent a lot of time and effort making this platform usable without seeking immediate reward. I think the time has come for SmartThings to recognize the value that independent developers are bringing to this platform and finally deliver on the promise of the App Store.

Wellā€¦ thatā€™s a ā€¦ ā€œstrategyā€, I guess. I donā€™t know if your choice of withholding further updates & releases will make the SmartApp Store happen any faster. I definitely know that it is high on the priority list (but we know that there are lots of high priority items). The concept also comes along with a lot of risks to ST: Customers expect certain functionality to be included free with the product; how will support calls be handled and passed along to the 3rd Party Developers?; how rigorous must ST be in certifying code ā€“ does it just have to be safe, or does it have to be of sufficiently high quality so that a poorly written SmartApp or Device Type doesnā€™t hurt the reputation of the Platform?; etc.!

In the meantime, from a hypothetical market perspective, I speculate another risk: You may be actually incentivizing more ā€œentrepreneursā€ to offer fee-for-support services (along the lines of RBoyā€™s initiative). Your SmartApps are popular but sufficiently complex that ā€œ4th-partyā€ support plans could be in demand and worth paying for (and, therefore, worth charging for).

Itā€™s a Catch-22 situation that I think applies to many open-source software providers. Free development, regular updates, and some amount of handling support questions, etc., is taken for granted and is a good way to get the system ā€œoff the groundā€. Getting some folks to switch to a revenue generating version becomes a challenge, especially if there are competitors ā€“ even GitHub, for example, has many competitors, each with different benefits for their paid options.

I think youā€™re overcomplicating it. Itā€™s an app store, not a thermonuclear power plant! I encourage you to look at Pebble (I mentioned it earlier in another thread). Pebble App Store went online one year after Pebble smart watch started shipping. SmartThings has been on the market almost as long as Pebble and no app store in sight. And Pebble is still s start-up, BTW.

You may be actually incentivizing more ā€œentrepreneursā€ to offer fee-for-support services

I donā€™t care if someone wants to make a quick buck selling their wares. But why on earth Iā€™d want to help them doing that by giving away my code? Like I said, my apps are released under GPLv3. If you want to fix something or add new features - be my guest, but you must provide unrestricted access to the modified source.

2 Likes

Just to help me be 100% clear (or close) on my understanding of the GPL, it is my interpretation that hypothetical software modifier and supporter ā€œRā€ is ONLY required to provide access to the modified source to the whomever ā€œRā€ chooses to provide the compiled binary program (whether or not the compiled program, distribution system, or support is free or for any fee).
Ref: Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation and nearby sections.

In the case of SmartThings, this would occur in one or both of these ways:

  1. If ā€œRā€ doesnā€™t certify and officially Platform Submit the SmartApp or Device Type, and instead just sells subscription access to a distribution site of the ā€œ.groovyā€ code for folks to past and publish for themselves using the IDE; this is fully permissible. The GPL does NOT require that if ā€œRā€ provides one paid distribution path, that they must also provide a free distribution path; it just means that the folks who paid for the distribution / support site, must (ā€œalsoā€, as applicable) get the source code for free, and may do all the GPL permitted stuff with it, including posting it back here on the Community and/or GitHub, their own web pages, certify and sell it on SmartThings, etcā€¦

  2. If ā€œRā€ certifies and uses Platform Submit of the SmartApp or Device Type, then ā€œRā€ is also permitted to charge a SmartApp Fee, but fee or free, everyone who can access the installed app must be able to request (or easily download) the modified source code, with no further use and distribution restrictions.

So, as a specific live example, if @RBoy has modified versions of your GPLā€™d programs in his paywalled library, that is perfectly legal. He does not have to provide a non-paywalled access to them. His subscribers, however, automatically get unrestricted access to the modified source and are only subject to GPL rules for further distribution. In short: Even just one person could subscribe to @RBoyā€™s repository and make a free clone of it here, ā€œback home where it was bornā€.

Very small semantic difference, I suppose. Just a mental exercise?


Iā€™m much more interested in what can be considered ā€œfair useā€ when it comes to portions of any Licensed code. In the case of Apache V2, the user can change the License, so no problem. In the case of GPL (a copyleft) or fully copyright restricted, then I would argue if a ā€œsmallā€ section of code is copied because it can be considered ā€œeducational materialā€ and/or ā€œobviousā€, then the License or copyright can be ignored. ā€“ Iā€™m not talking ā€œblatant major plagiarismā€, but if someone writes a nifty one or two line function to calculate the number of hours until sunset, I would like to believe that it is fair use to copy and paste that with zero legal obligations or restrictions regardless of the License, provided it was in Open Source and no reverse engineering violation occurred. Attribution (Credits) is good etiquette, but not legally required.

This is important because code snippets are educational. Without some notion of fair use of code snippets, programming textbooks would all have to explicitly release copyright from all examples. Similarly, just reading shared code can lead to something that ā€œlooksā€ like copying, since there are a limited number of ways to code a particular algorithm. And, finally, mandatory boilerplate sections like ā€œmetadata{ capabilities }ā€ are not copyrightable code, IMHO.


Back on the Topic of your plansā€¦
When SmartThings provides a SmartApp Store, under what type of License will you put your work? Proprietary closed source? Full copyright? Or still GPL? Some hybrid?

ā€¦CP / Terry.

Maybe we could devote a large chunk of a developer call to licensing(Apache V2 vs GPL, etc) and rules of the road when it comes to commercial products on smartthings. As I have said earlier, I will be the first to admit that I donā€™t know enough about those topics to speak with any certainty on them. All I have at this point are questions

I believe this is why we have patents. If you develop a novel algorithm, you protect yourself with a patent; not the copyright. Though your original work is still subject to copyright as well.

.

My take on that dev agreement after quickly scanning it:

[quote]You hereby grant SmartThings a worldwide, nonexclusive, sublicensable, perpetual, royalty-free, fully paid-up, transferable right and license: (a) to market your Developer Submissionsā€¦ [/quote]So, if you send it to them, they are allowed to use it. Simple enough.

Thereā€™s a bunch of stuff in there that says if you submit it to them, you actually own it. (So, if developer ā€œHā€ takes your code from github and submits it, ā€œHā€ has broken the law, and you can request that ST takes down the submission.)

[quote]
The parties acknowledge and agree that neither SmartThings nor any End User shall acquire any ownership interest in or to any of your Developer Submissions.
[/quote]So, you arenā€™t giving it to ST. You are just letting them use it (under what might be special termsā€¦) There is an option in there for ST to allow a developer to submit a custom license along with the code. (However, that says ā€œmay allowā€ so itā€™s not required for them to allow that.)

This part is interesting:

So, unless you explicitly state otherwise, any device type code is considered ApacheV2 licensed BY ST. Thereā€™s some oddities in the language that would require a lawyer to interpret here. In particular, if you are granting ST the right to use (and make available) your device with ApacheV2, does that propagate to end users? I donā€™t know the answer, and I suspect itā€™s somewhat open to interpretation.

I might be overthinking this, but I tend to get paranoid about legal stuff that isnā€™t clear. Iā€™d feel better about it if ST would clarify that aspect of the agreement (so that a developer can understand it without retaining a lawyer.)

I still think the best way to deal with this, for those that want to SHARE their code and prevent others from taking it for profit, is a simple ApacheV2 modification. A license agreement (or modification of one) does NOT have to be complicated to be legal and enforceable. Itā€™s perfectly legal to modify a license with something as simple as ā€œanyone using the name of ā€˜garyd9ā€™ as any type of alias may not use this code.ā€ Itā€™s also common to modify ApacheV2 by simply stating that all modifications are licensed under GPLv3 and including the required link to the GPLv3 (previous versions of the GPL donā€™t work well with the ACL.)

By the way, hereā€™s a great site for most GPL type questions: Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation I think the FAQā€™s starting around this tag: Frequently Asked Questions about the GNU Licenses - GNU Project - Free Software Foundation are relevant (and confirms a statement by @tgauchat)

Disclaimer:

Iā€™m not a lawyer. Iā€™m a software developer who does ā€œfreeā€ software in his free time, and ā€œpaidā€ software in his paid time. That has given me a certain amount of experience (and exposure to legal advice) regarding various open source type licenses. However, Iā€™m not qualified to give other people legal advice and am not doing so. A person should consult a legal professional for proper legal advice.

I donā€™t know why you need so many words to interpret a simple idea:

ā€œAll third partiesā€ means absolutely everyone

Thereā€™s no mention of binaries. All it says is that I, the creator of software donā€™t have to do anything to make modified software source available. It is they, who made the changes must make it available to anyone, without restriction. I donā€™t think it can be said clearer than that.

Can someone sell GPLā€™ed software or products that use it? Yes, absolutely. Itā€™s done every day, but the vendor must make all GPLā€™ed source, including modifications, available to everyone.

Yes, he does, and no itā€™s illegal. This is the exact scenario that GPL is ment to prevent.

I disagree. From the FAQ I posted a link to previously:

Iā€™m not saying that I like what @RBoy is doing. In fact, if heā€™s taking code from other people as a basis for a profit, I think itā€™s unethical and despicable. However, if the code was released under the GPL, itā€™s allowed under that license.

Youā€™re right. I stand corrected. The GPL however makes it pointless to charge a fee for the source code under assumption that it would be immediately released back to the community. Thatā€™s still way better than Apache license that allows the distributor to ā€œpull the rugā€ from under the open source software and change the license terms any way he likes.

I have been holding off on releasing some code until I could clarify a few things. I am glad that if I release GPL software it will stay that way. I truly believe in open source development, but I also want to earn a living with my chosen craft. Now, if the original software that @RBoy used was released under Apache, he is perfectly in the right to continue what he is doing. The community can decide if they want to support his efforts. Letā€™s not make this discussion about a specific person.

1 Like