I'd like to create an open-source version of a proprietary program. Can I do this without getting sued by the owner of the proprietary program?
—Andre Durand, founder of Jabber.Com
For the sake of illustration only, I'm going to assume that you want to create an open-source version of a program such as Windows. Unfortunately, the owners of most proprietary programs (like the owner of Windows) do not allow you to reverse engineer their programs or to copy their code. That doesn't mean you can't exercise your own creativity to create your own winning version of a proprietary program, including your own improvements and new features. The simple answer to your question is yes, you can create an open-source version of a proprietary program, as long as you create your own version of the program without infringing the copyrights or patents of the proprietary program. The courts uniformly hold that a copyright is infringed when one intentionally, or even subconsciously, makes copies of a copyrighted work. However, if a person, without making any use of a prior copyrighted work, by his or her own independent labor produces something similar, there is no infringement. As Judge Learned Hand put it, to sustain an infringement suit, “more must appear than the mere similarity or even identity of the supposed infringement with the part in question” (Fred Fisher Inc. vs. Dillingham D.C.N.Y. 1924 298 F.145, 147). He continues:
Two or more authors may write on the same subject, treat it similarly, and use the same common materials in like manner or for one purpose. Their productions may contain the same thoughts, sentiments, ideas; they may be identical. Such resemblance or identity is material only as showing whether there has been unlawful copying.
Copying is a matter to be proven by evidence. The law requires proof of either outright copying or, if the evidence of copying is unclear, proof that you had access to the original and that there are “substantial similarities” between your work and the original. Because of the risk that evidence can be interpreted in many ways, when you set out to implement your own independent version of a copyrighted proprietary program, you should make a clear record of precisely what you have done. Here are some simple, common-sense practices you should follow. When you examine the program you intend to re-implement, restrict yourself to an external review of the functions and processes that the other program performs. Remember that if your program turns out to be too similar to the proprietary program, the court may not believe that you didn't see and copy copyrighted code. The less you look at, the less likely it is that your code will be “substantially similar”. Don't copy the user documentation for the proprietary program, even if your new program is intended to operate identically. Such copies of documentation are infringing even if the software itself doesn't infringe. If you have had access to the source code or implementation details of the proprietary program, you may have to separate yourself from the implementation of the open-source version. One way big companies do this is to create a specification that describes what the program is to do, and give that specification to a separate group of engineers who have never seen the original proprietary program. Those engineers can implement according to the specification without copying the original work. To protect yourself, document this procedure thoroughly. One final caution: the copyright in the original proprietary program does not extend to the “ideas” implemented by the program but only to their “expression”. You have the right to re-implement the ideas of the program without fear of copyright infringement. However, the ideas may be protected by patents. Merely making, using or selling the patented software can subject you to claims of patent infringement. You can infringe a patent even without copying it, and even if you independently and innocently arrive at the exact same idea. So if some aspects of the proprietary program are protected by patent, you will have to find a way to implement those portions of the program without using any of the patented technology.
Is there any advantage to registering my copyright in a program?
—Mark Jordon, 1707WebWay.Com
Registering a copyright is a simple and inexpensive process. The procedure is well documented in Circular 61, Copyright Registration for Computer Programs, available from the Library of Congress. For further information, go to www.loc.gov/copyright/circs/circ61.pdf. Registration is not a condition of copyright protection. However, there are several advantages to registering your work:
Registration establishes a public record of the copyright claim.
Before an infringement suit may be filed in court, registration is necessary for works of US origin.
If made before or within five years of publication, registration will establish prima facie evidence in court of the validity of the copyright and of the facts stated in the certificate.
If registration is made within three months after publication of the work or prior to an infringement of the work, statutory damages and attorney's fees will be available to the copyright owner in court actions. Otherwise, only an award of actual damages and profits is available to the copyright owner.
Registration allows the owner of the copyright to record the registration with the US Customs Service for protection against the importation of infringing copies.
You may register your copyright any time within the life of the copyright.
Legal advice must be provided in the course of an attorney-client relationship specifically with reference to all the facts of a particular situation. Even though an attorney wrote the answers presented here, the information must not be relied upon as a substitute for obtaining specific legal advice from a licensed attorney.
|Designing Electronics with Linux||May 22, 2013|
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
- Designing Electronics with Linux
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Dynamic DNS—an Object Lesson in Problem Solving
- Using Salt Stack and Vagrant for Drupal Development
- Why Python?
- New Products
- A Topic for Discussion - Open Source Feature-Richness?
- Validate an E-Mail Address with PHP, the Right Way
- What's the tweeting protocol?
- Tech Tip: Really Simple HTTP Server with Python
- Understanding the Linux Kernel
23 min 54 sec ago
2 hours 53 min ago
- Kernel Problem
12 hours 56 min ago
- BASH script to log IPs on public web server
17 hours 23 min ago
20 hours 59 min ago
- Reply to comment | Linux Journal
21 hours 31 min ago
- All the articles you talked
23 hours 55 min ago
- All the articles you talked
23 hours 58 min ago
- All the articles you talked
23 hours 59 min ago
1 day 4 hours ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?