All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Code License Ethics Q
I've written some software which interacts with a very old emulated OS running under the Hercules emulator and splits its print jobs into separate files. It's written in python.
There is another project which does the same thing, but outputs only pdfs. It's written in golang and is licensed under the GPL v3.
I prefer the BSD license, and when I don't, I prefer GPL v2 because v3 essentially gives all control to the FSF. But that's me.
I'm not borrowing a single line of code from the other project (obviously) and am not even using the same config file format. However, the author there did a lot of work to determine what control characters are sent, how to determine when a job is complete, etc. and I'll use some of that info. So I'm not borrowing a switch statement, for example, but my if/else cases will be the same because that's how the emulated OS works and he did the work to discover that.
I'm of course going to give full credit and thanks to that project but my question is...do you think
(1) I have an ethical obligation to license under the GPL because I'm borrowing constants and "how to" info from the other project's code and comments
or
(2) I not only have an ethical but also legal obligation (i.e., the GPL compels it)
or
(3) No obligation
Once I'm ready to release, I think I'll reach out to the other project and ask if they want to insist on GPL but I'm just curious what people think.
Comments
I think I agree with (1), it would be the right ethical thing to do but you wouldn't necessarily have to if you didn't want to.
As much as I want to say otherwise, I agree with (2)
It's the same story of Minecraft open-source alternatives - you can't take a peek at Minecraft's source-code
It's the same story with the development of Wine or ReactOS - you can't take a peek at Windows' source-code:
https://wiki.winehq.org/Developer_FAQ#Who_can.27t_contribute_to_Wine.3F
If you want to maintain licencing freedom, you need to consider other software as a black box
In your case, any possible copyright violations would be minimal and therefore could be considered as "fair use" (if such thing exists). Without knowing for sure, I recommend you to reach out to the other project's author to seek permission, or consider it as a black box from now on
@raindog308
Considering you are sending exactly same control characters in exactly same sequences and intervals based on work done by other author which is licensed by the author and released under a license agreement and that work is authors only contribution than you have to comply the authors license agreement first and then take decision to release your work under your specified license agreement that later users of your service have to comply.
In case authors work is also derivative of other authors work than your work have to comply as per their license agreement.
Here's my two cents.
If I understand you correctly, the Operating System has an interface which everyone who interacts with it must use. There's no freedom to do anything different as far as the interface is concerned.
Thus, it's hard to see how anyone could claim copyright violation on the part of the program which sends to the OS interface.
How your program decides what to send might be subject to copyright, i.e., if you use the same algorithms in the same order with the same priorities.
But not merely the simple use of the same interface to the emulated OS since you have no choice but to use that interface, exactly. If I understand your question.
Consider that the interface to a spreadsheet is rows and columns. So, I heard that, in the famous Lotus v Borland case (which I have never read), the Supreme Court apparently decided the spreadsheet interface wasn't copyrightable.
It seems your situation might be more strongly not subject to copyright than the spreadsheet situation. For example, the rows and columns could be wider or narrower, etc. But, in your case, you are forced to use the OS interface exactly.
If you didn't get the OS interface from the other program you would have to get the same interface yourself. The other guy did work, not work that's "art" in a certain legal sense.
Ethically might be a different bag than legally. Yeah, sure, talk to them. Also ask the FSF maybe? If both the other guys and also the FSF tell you that what you want to do is okay, then you're probably on pretty safe ground.
And ask a copyright lawyer instead of us.
Friendly greetings! 🙈🙉🙊
Thats reverse engineering and that is copyright infringement if product original license agreement states that product is proprietary.
Here interfacing is done directly to the propriety product whose interface is reverse engineered by an independent author.
You can't claim rights over the "best way" or direct way to do X.
If the other author does it one way and it's the most convenient/straight-forward, I'm sorry, it's not like it and every implementation has to be GPL'd
This all sounds extremely amateurish or something you'd just here from the average joe on the internet.
That is not how "reverse engineering" clauses work.
3
Simple reason: What you took is not defined - or owned - by the other project but by said OS, Emulator, etc. Looking at the other projects code basically just was a more comfortable/easier way to do the research than to analyze the (supposedly not well documented) API of the OS and/or emulator.
Btw, you're highly likely also not eager to see your work being tainted/poisoned by GPL.
(3)
A. When Microsoft released the .NET Framework under the Microsoft Reference Source License (i.e. you can look at the source code, but you can't copy anything from it) back in 2008, tons of open-source developers looked at it, got inspiration and ported ideas from it. Did that break the GPL status on their code due to linking or copying non-GPL code? No.
B. See Oracle vs. Google Supreme Court API case.
Reverse Engineering is Engineering and Research to know about how a thing actually is build and functions.
To build a thing out of that work and release a product for enterprise usage do have to confirm certain things to customers of product by author of the work.
Reference Reading:
Maybe have a chat with the cockroaches in your head first, ask them how exactly so.
If you mean licensing at "GPL v2 only" vs "v2 or later", you can do the same with "v3 only".
that's how you know how they work? ok
Also, as far as I can tell, you have no plans on selling or charging for this tool, so fair use absolutely applies.
If you read a book that described these control characters, and then used that knowledge to write your program, would you have to pay royalties to the author of the book? Absolutely not. The only difference is that you are getting the knowledge from source code rather than a book. But legally, the situations are identical.
Disclaimer: I am not a lawyer, this is not legal advice, I am not responsible if you get your ass sued off, yadda, yadda, yadda.
As far as I know, there's no copyright for knowledge. What the original author did wasn't patented, so per se, you're not infringing on anything by using his method of interfacing with the emulated OS. You're not using what he produced "as-is* nor in your code, so I would argue that technically, you're not bounded by the licensing agreement of his code.
If you didn't copied lines of code and is not even the same language.
3
~~> @raindog308 said:
Legally it is simple, as you describe you have no obligation at all because you have a clean-room implementation.
I would say that morally you have no obligation either, assuming the information you have used is not covered by a licence that prohibits your use. They chose that licence, or the default in the relevant jurisdictions if they have not stated an explicit licence and if they wanted stronger control of it they would have chosen a different licence. Clean-room implementations are built this way all the time by & between commercial/OSS/PD/mixed concerns.
While you are similarly not obliged to (unless the information is covered by licence that carries such obligation, of course, such as CC*) I would give visible credit for their information that you used, and link to their project as a related work others might be interested in, and it sounds like you intend to do that anyway.
Sorry, I meant "v2 only" as the Linux kernel did years ago. However, I think if I'm bound by the GPL, I'm bound by the whole thing chosen by the original author.
i.e., let's imagine I'm formally forking a different v3 project. I don't think I can say "my fork is v3 only" if the original was v3.
If the original one was "v3 or later", you can still go "v3 only" with regard to your additions and changes.
That is my understanding to. If a v4 turns up and their code remained "v3 or later" you could still use the code under the terms of v3 and keep your overall project under v3, but would have the option of using v4 for your code that you are linking to other v3+ covered code. They'd have to explicitly state "the latest version at time of use" or similar for updates to GPL to retroactively apply to you. Even if a project relicenses to the as yet non-existant GPLv4, you could keep using the previous versions that have already been released under v3/v3+ under the terms of v3. This is why commercial buyers of the rights to OSS software can not retroactively un-open the source of current and past releases.
3
Where's the patent lawyers? You patent the method, not the algorithm, right?
Ask yourself this question: "Would anyone building the same program with the same functionalities must use the exact same way of doing things? i.e. same interaction with the emulated OS to determine same info?"
If yes then you should be in the clear. The other guy basically saved you time in this case and probably deserves you getting him a beer.
Yes