0

Say I have a program named X. If I edit X, I have to make the source code of X open source.

If I have another program (say a web application) and I write my own code Y (which is closed source) and I embed open source X in close source Y, am I breaking the license?

----- Why I am asking this----- There was a program I will call A with the MIT license, a group of people took A and came up with X changing the license to GPL, I then took X and came up with Y (and made it open source).

Then I came up with Z (fully my own and all closed source) if I embed Y (via Iframe) can I still legally keep Z close source?

PLEASE NOTE: ALL of Y is open source.

And lets assume that Z is hosted on domain Z.com and that Y is hosted of Y.com

I am also planning to use Z commercially

EDIT: If Y loads data from Z's server is it still allowed under GPL, if not if Y loads data from ZY (open source code for Z server for loading and saving data of Y) is it then allowed?

5
  • This probably comes down to what kind of communication occurs between the framing and framed pages, but I'd expect Z does not generally incur copyleft obligations for framing Y. Imagine, for example, that Y is a chess game and Z is a tournament-bracket program, and they only exchange messages like "Player #1 won this game". In such a setup, Z is agnostic to what Y is -- it happens to be chess but could be any kind of game with a binary win state.
    – apsillers
    Jan 4, 2023 at 0:52
  • For my example the only communication is just giving it a unique ID (Z sends to Y)(which is in the embed link [EG: Y.com?id=UNIQUEID]), however IF Y then loads data from Z's server does it still count as "agnostic".
    – Titanium
    Jan 4, 2023 at 0:55
  • 1
    I think I'd need to know more about the complete nature of what kind of information! For the simple link case, it seems clear-cut that this kind of framing does not make a derivative work that the GPL could place requirements on. If Z and Y operate cooperatively, I am much less sure.
    – apsillers
    Jan 4, 2023 at 1:21
  • In your second paragraph you ask "[If] I embed open source X in close source Y, am I breaking the license?" and then in the next paragraph you say "I then took X and came up with Y (and made it open source)." That seems like a contradiction of what you just asked above "embedded open source X in close[d] source Y".
    – Brandin
    Jan 6, 2023 at 12:27
  • " If Y loads data from Z's server is it still allowed under GPL, if not if Y loads data from ZY (open source code for Z server for loading and saving data of Y) is it then allowed?" -- So, Z is GPL, but what is the license for ZY? Note that if it's Affero GPL, this may change the situation. If it's AGPL licensed, then that may mean that you need to offer everyone who has access to load data interactively a copy of that source code, that is installed on that server.
    – Brandin
    Jan 6, 2023 at 12:35

1 Answer 1

2

Say I have a program named X. If I edit X, I have to make the source code of X open source.

This statement is not generally true. In case of all the commonly used open-source licenses, the mere editing does not trigger the requirement to publish (or offer) the modified source code. Only if the original license of X is a copyleft license, and only when you publish/transfer that modified program to 3rd parties, then you need to provide the (modified) sources.

If I have another program (say a web application) and I write my own code Y (which is closed source) and I embed open source X in close source Y, am I breaking the license?

This question depends on the type of open source license of X. For example, if the code of the web application you are referring to is all running on the server, and it is not transmitted to the web browser (html or Javascript code usually is), then you do not need to do anything, unless the open source license of X is the AGPL license.

If your web application transmits code to the browser, and if X has a permissive open source license (MIT, BSD, Apache or the like) then you will just need to provide the copyright notice, attribution and partly the license language.

If X is licensed under GPL, then it really depends which part of the web application is actually published/transferred to 3rd parties, and also how closely X and Y are communicating with each other. From the little detail you have provided it is not possible to provide an answer for that specific case.

----- Why I am asking this----- There was a program I will call A with the MIT license, a group of people took A and came up with X changing the license to GPL, I then took X and came up with Y (and made it open source).

This sentence is confusing me, because in the 2nd paragraph of your question you wrote that Y is closed source and X is open source. In general it can be said that if X was licensed under GPL and you took it and created a derivative work of X (you call it Y), and (see above) if you publish/transfer Y to 3rd parties, then Y also needs to be published under GPL.

Then I came up with Z (fully my own and all closed source) if I embed Y (via Iframe) can I still legally keep Z close source?

PLEASE NOTE: ALL of Y is open source.

And lets assume that Z is hosted on domain Z.com and that Y is hosted of Y.com

Based on the little information you provided, embedding Y via Iframe in Z and providing it on the same webpage, without further intimate communication between Y and Z, likely constitutes an 'Aggregate' so that the licenses of Y and Z do not influence each other. This is even more true if Y and Z are hosted on different domains.

I am also planning to use Z commercially

Commercial use is not an obstacle to code under open source licenses.

EDIT: If Y loads data from Z's server is it still allowed under GPL, if not if Y loads data from ZY (open source code for Z server for loading and saving data of Y) is it then allowed?

Remote data communication between 2 servers does not have an impact on the licenses of the software running on each server.

Edit: If you plan to fully integrate the code of Y in your web project Z, then you need to carefully consider the level of integration of the two parts.

Just hosting the code for the Iframe on your own domain will not change much, if there was no intimate communication between Y and Z before, then this will not change. With or tags this will be similar.

If, however, you completely amalgamate the code of Y into Z, then you will have to consider Z a derivative work of Y, and therefore Z would need to be licensed under GPL as well.

There are grey zones in between, and you will have to judge yourself how your implementation matches the criteria. It might be helpful for you to read the GPL FAQ related to 'Aggregation.

1
  • Comments are not for extended discussion; this conversation has been moved to chat.
    – MadHatter
    Jan 10, 2023 at 11:52

Your Answer

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

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