Las patentes de software son el varapalo del momento en el software libre, porque plantean la única amenaza contra la cual la comunidad del software libre no puede defenderse. Los problemas de copyright y de marcas registradas siempre se pueden sortear. Si parte de tu código parece que podría infringir el copyright de otro, puedes reescribir esa parte. Si resulta que alguien tiene el nombre de tu proyecto como marca registrada, en el peor de los casos puedes simplemente cambiáselo. A pesar de que cambiar nombres puede ser una inconveniencia temporal, no debería importar a largo plazo, ya que el propio código haría lo que siempre hizo.
Pero una patente es un requerimiento judicial global contra la implementación de cierta idea. No importa quien escriba el código, ni siquiera el lenguaje de programación usado. Una vez que alguien amenaza a un proyecto de software libre de infrigir una patente, el proyecto debe detener la implementación de esa característica particular, o enfrentarse a un caro y largo juicio. Dado que los instigadores de esos juicios son generalmente empresas con los bolsillos profundos —esos son los que tienen los recursos y la inclinación para adquirir patentes en primer lugar — la mayoría de los proyectos de software libre no pueden afrontar la última opción, y deben abandonar inmediatamente incluso si piensan que la patente podría ser inaplicable en un juzgado. Para evitar llegar a estas situaciones en primer lugar, los proyectos de software libre están empezando a codificarse defensivamente, evitando algoritmos patentados por adelantado incluso cuando son la mejor o la única solución a un problema de programación. [40]
Encuestas y la evidencia anecdótica muestran que no sólo la mayoría de los programadores de software libre, sino la mayoría de todos los programadores, piensan que las patentes de software deberían ser abolidas totalmente.[41] Los programadores de software libre tienden a estar convencidos sobre esto, y pueden rehusar trabajar en proyectos que están muy asociados con la recolección o la aplicación de patentes de software. Si tu organización recolecta patentes de software, entonces deja claro, de manera pública e irrevocable, que esas patentes nunca serán forzadas a aplicarse a proyectos de software libre, y que sólo son en defensa en caso de que otra organización inicie un proceso por infringimiento contra tu organización. Esto no es sólo la manera correcta de hacerlo, sino que también es bueno para las relaciones públicas con el software libre. [42]
Desafortunadamente, recolectar patentes para propósitos defensivos es una acción racional. El sistema actual de patentes es, al menos en los Estados Unidos, una carrera armamentística por naturaleza: si tu competencia ha adquirido muchas patentes, tu mejor defensa es que adquieras tú muchas patentes, de modo que si alguna vez eres denunciado por infringir alguna patente puedas responder con una amenaza similar —entonces las dos organizaciones generalmente se sientan y trabajan en un acuerdo de licenciamiento cruzado de modo que ninguna deba pagar nada, excepto a sus abogados expertos en propiedad intelectual, por supuesto.
El daño hecho al software libre por las patentes de software es más insidioso que sólo las amenazas directas al desarrollo del código, sin embargo. Las patentes de software fomentan una atmósfera de secretismo entre diseñadores de firmware, que justificadamente se preocupan de que por publicar detalles de sus interfaces podrían proporcionar ayuda técnica a sus competidores en búsqueda de golpearles con juicios de infringimiento de patentes. Esto no es sólo un peligro teórico: aparentemente ha estado pasando durante mucho tiempo en la industria de las tarjetas gráficas, por ejemplo. Muchos fabricantes de tarjetas gráficas son reacios a publicar las especificaciones de programación detalladas necesarias para producir drivers libres de gran rendimiento para sus tarjetas, así haciendo imposible a sistemas operativos libres soportar esas tarjetas con su potencial completo. ¿Por qué los fabricantes harán esto? No tiene sentido que trabajen contra el soporte de software: después de todo, la compatibilidad con más sistemas operativos sólo puede inducir a más ventas de tarjetas. Pero resulta que, detrás de la puerta de la sala de diseño, estos fabricantes están violando patentes de otros, a veces deliberadamente y otras por desconocimiento. Estas patentes son tan impredecibles y potencialmente tan numerosas que ningún fabricante de tarjetas puede afirmar su seguridad, incluso tras hacer búsquedas de patentes. Así, los fabricantes no se atreven a publicar sus especificaciones de la interfaz completa, ya que facilitaría a los competidores a averiguar si alguna patente ha sido infringida. (Por supuesto, la naturaleza de esta situación es tal que no vas a encontrar una admisión escrita de una fuente primaria acerca de qué está ocurriendo: esto lo sé a través de comunicaciones personales).
Algunas licencias de software libre tienen claúsulas especiales para combatir, o al menos desalentar, las patentes de software. La GNU GPL, por ejemplo, contiene estos pasajes:
Esta es una traducción NO oficial de la "GNU General Public License" al español. No fué publicada por la "FSF Free Software Foundation", y no respalda legalmente los términos de distribución del software que utiliza la "GNU GPL", sólo el texto original en inglés lo hace. Sin embargo esperamos que esta traducción ayude a las personas de habla hispana a entender mejor la "GPL".
7. Si como consecuencia de un veredicto de un juzgado o por el alegato de infringir una patente o por cualquier otra razón (no limitado solo a cuestiones de patentes) se imponen condiciones sobre usted que contradigan los términos y condiciones de esta Licencia, éstas no le excusan de los términos y condiciones aquí descritos. Si usted no puede distribuir el producto cumpliendo totalmente con las obligaciones concernientes a la resolución oficial y al mismo tiempo con las obligaciones que se describen en este contrato de Licencia, entonces no podrá distribuir más este producto. Por ejemplo, si una licencia de patente no permitirá la distribución del Programa de forma libre de regalías (sin pago de regalías) por parte de quienes lo reciban directa o indirectamente, entonces la única forma de cumplir con ambas obligaciones es renunciar a la distribución del mismo. [...] La intención de esta sección no es la de inducirlo a infringir ninguna ley de patentes, ni tampoco infringir algún reclamo de derechos, ni discutir la validez de tales reclamos; esta sección tiene el único propósito de proteger la integridad del sistema de distribución del software libre, que está implementado por prácticas de licencia pública. Mucha gente ha hecho generosas contribuciones a la amplia gama de software distribuido bajo este sistema favoreciendo así la constante aplicación de este sistema de distribución; es decisión del autor/donador si su Programa será distribuído utilizando este u otro sistema de distribución, y la persona que recibe el software no puede obligarlo a hacer ninguna elección en particular.
La licencia Apache, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) también contiene requisitos antipatentes. Primero, estipula que todo aquel distribuyendo código bajo la licencia debe ímplicitamente incluir una licencia de patente libre de regalías para aquellas patentes que posean que puedan aplicar al código. Segundo, y más ingeniosamente, castiga a cualquiera que inicie una reclamación de violación de patentes en el trabajo cubierto, automáticamente terminando su licencia de patente implícita en el momento que se haga dicha reclamación:
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You 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, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
Aunque es útil, tanto legal como políticamente, construir defensas ante las patentes en las licencias de software libre, al final estos pasos no son suficientes para desvanecer los efectos que tienen las amenazas de pleitos sobre el software libre. Sólo los cambios en la raíz o la interpretación de las leyes internacionales de patentes pueden hacer eso. Para saber más sobre este problema, y cómo se está combatiendo, diríjase a http://www.nosoftwarepatents.com/. El artículo de la Wikipedia inglesa http://en.wikipedia.org/wiki/Software_patent también tiene mucha información útil sobre patentes de software. He escrito una entrada en mi blog resumiendo los argumentos en contra de las patentes de software en http://www.rants.org/2007/05/01/how-to-tell-that-software-patents-are-a-bad-idea/.
[40] Sun Microsystems e IBM al menos han hecho un gesto hacia el problema desde la otra dirección, mediante la liberación de un gran número de patentes de software —1600 y 500 respectivamente — para uso de la comunidad del software libre. No soy un abogado y por tanto no puedo evaluar la utilidad real de estos derechos, pero incluso si todas son patentes importantes, y los términos de estos derechos las hace realmente libres para su uso por cualquier proyecto libre, todavía sería sólo una gota de agua en el oceáno.
[41] Veáse http://lpf.ai.mit.edu/Whatsnew/survey.html como una de esas encuestas.
[42] Por ejemplo, Red Hat ha prometido que los proyectos libres están seguros de sus patentes, veáse http://www.redhat.com/legal/patent_policy.html.