Why is it a problem?
Patents are dangerous because they can put an additional restriction on the use and distribution of software which is not mentioned in the license.
A company can freely contribute to an open source project and license their work under an open source license, but in the meantime file a patent on some aspect of their contribution. Later they can then use that patent to collect license fees from distributors and users of the allegedly free software. All of this is completely legal because licenses usually only deal with copyright law, and patent law is a completely different beast, even though the outcome is usually the same.
This can also be done by companies which were not involved in the development at all but own a similar patent filed before the project was published. The patent doesn't even need to be enforceable. The threat alone that it might apply can be enough to stunt the adoption of free software, because patent lawsuits are expensive. Companies fear that they might lack the resources to fight a patent lawsuit, even when they could win with enough money.
Patents can also be used to prevent someone from creating a free alternative for a proprietary product. A good example for this is the H.264 video encoding algorithm, also known as MPEG-4. The algorithm was developed as proprietary software, but how to implement it is no secret. An algorithm can not be copyrighted, only a specific implementation can. So as far as copyright is concerned, anyone could create a free implementation for everyone to use. But unfortunately there are various companies which hold several software patents which apply (or might apply) to this algorithm. This allows them to collect royalties from anyone implementing the algorithm, free or not.
Advocates of free software thus recommend to use different algorithms like OGG Vorbis which was specifically designed to circumvent any known patents on video encoding. But video encoding is such a minefield of patents that some people believe that there might still be some less known patents out there which could also be applied to Vorbis and fear that wide adoption of Vorbis could prompt the holders of these patents to surface and start to demand money.
Patent law is an area which is not internationally homogenized. Different countries have different laws regarding what can be patented and which laws apply. Software patents in particular is a shaky area which is handled differently in different jurisdictions. This can lead to the situation that a certain piece of free software is only free in some parts of the world and not in others, violating the right to free distribution without discrimination of certain groups.
How can we deal with it?
- Demand patent licensing in licenses. The GPLv3 for example has a section on patents which says that any contributors must license any patents which apply to their work for free. However, this does not help against 3rd party patent claims.
- Work around the patents. When you have an open source project, do your research about which patents might apply to the area and try to not violate them. Release early, because after you released a product, any applications for new patents which apply to the product are invalid due to prior art.
- Bust the patents. When prior art can be proven for a patent, it can be declared invalid. A good medium for crowdsourcing potential prior art is the stackexchange site Ask Patents which has a specific tag for prior art requests. The Electronic Frontier Foundation also has a patent busting project.
- Build a defensive pool of patents. Just play the same game the patent trolls play. Register patents yourself, and then pledge that you will only enforce them against those who also try to press their own patent claims. This is the strategy many large companies use to protect themselves from frivolous patent claims. Unfortunately this only works against people who actually implement their patents in products and are not just in the business of filing lawsuits. Also, the strategy of fighting fire with fire might not sit well with the more ideological parts of the free software community.
- Political lobbying against software patents. Software patents have already be declared unenforceable in large parts of the world. But there are still countries which have not yet understood how bad they are for innovation and the international competitiveness of the countries IT economy. Support organizations which try to convince politicians to change the local patent laws for the better. When you live in such a country, try to convince your local politicians yourself and consider their opinions about software patents when casting your vote in the next election.