I just read that under BSD, Apache, and MIT Licenses, one can use, modify and redistribute source code in a product as long as credit for the open source portion is given back to the the author. That seems clear (and significantly different from GPL).

However, is it legally acceptable to try and patent a piece of software if that software uses a BSD Licensed open source file as library (or support) code?

Edit: Not asking if one can patent the open source (BSD Licensed portion) rather the unique software that was written on top of the open source. Can that be patented?

4 Answers
4

First, the patent system doesn't care about software licenses. Conversely, copyright doesn't care about patent licenses (it's automatic anyway). The only place where patents and copyright might interact is in licenses, which are contracts which might grant someone additional rights that they would not have given the restrictions imposed by patent and copyright laws (such as the right to perform a patented method or to distribute a piece of software).

Second, you can't patent a piece of software. Generally speaking, what is patented is not a device as such, but the way the device works. For example (prior art aside), you don't patent a Ford Model T, you patent a vehicle on four wheels, or a piston engine, etc. When it comes to software, what is really patented is the algorithm. See What constitutes an original patentable idea in software? for a more in-depth treatment.

If you write a program that uses a novel algorithm, you may patent the algorithm. You must file the patent before you distribute the program, under any license (in the US, you have a 1-year grace period in some circumstances). The GPLv3 is a contract where the copyright holder declares that he will not enforce any patent that the software may relate to (I'm simplifying somewhat but that's the gist of it). Other licenses, including older versions of the GNU GPL, do not preclude having patents.

Note that it is possible to unknowingly write software that violates a patent, for example if the author independently rediscovered an algorithm. Thus even the GPLv3 does not guarantee that a piece of software is unencumbered by a patent, only that it is unencumbered by patents assigned to the grantor of the license.

Algorithms are NOT patentable, but software is, as a method, as a system, or as an article of manufacture.
– Louis IselinNov 6 '12 at 22:17

2

@LouisIselin The method in a piece of software is an algorithm.
– GillesNov 6 '12 at 22:20

1

What we have here is a failure to communicate. An algorithm is an idea for a process flow that can be performed in your head and is not patentable. Software is a set of instructions that when carried out by a computing device causes a method to be performed. Software may be patentable, depending on how it is claimed.
– Louis IselinNov 14 '12 at 0:20

Matter of language. Software is a coded (set of) algorithm(s) which a "computer" can execute. So, in the end, software is just a algorithm (or a set of algorithms) "expressed" in way that a computer can execute. This special way is a computer language (a trained engineer also can read and interpret a algorithm coded in a computer language). Side effect: if the computer can perform an algorithm, so we can. If we can perform that, so computer can.
– rdllopesMay 14 '14 at 9:37

The question is not "Can I patent it?" (you certainly can), but rather, "Does the license require me to do anything particular with the patent?"

The BSD and MIT licenses don't mention patents at all. Therefore, you have no patent related obligations under them.

The Apache 2.0 license does include an explicit patent grant. If you contribute any code to the Apache licensed library, you grant "a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work..." This only applies to the library itself - that is, code you agree to distribute under the Apache license. It does not apply to other code you use in the same program. (Anyway, that's my reading of it. I'm not a lawyer.)

Other licenses have other terms. The GPL, as you noted, goes further. Merely using a GPL library in your program could require you to give a free license to any patents involved in any part of the program.

An important conclusion here for anyone distributing their software as open source: If we're working within the current patent system that, de facto, allows software patents, it is important to choose an open source license model that includes consideration of patent rights.
– Dennis CrouchNov 1 '12 at 11:24

The short answer is YES. The question asked if you can patent software that uses open source libraries or files as support. There are no restrictions on what you use as support to meet the patentability requirements of Title 35 of the US Code.

Unlike most answers above which focus on a product patent,there is another type of patent that is called a process patent i.e. you are claiming a set of process steps that meet the requirements for grant of a patent.

All the individual steps can be known steps, like the Open source code that you refer to to. Yet if the whole is structured in an non-obvious inventive way, the process patent can be claimed.

So check if you are working toward a process patent or a product patent.