GNU 프로젝트는 라이브러리에 두 가지 주된 이용허락(라이선스)를 사용하고 있습니다. 하나는 LGPL이라 불리는 GNU Lesser GPL이고 또다른 하나는 일반적인 GNU GPL입니다. 이용허락의 선택은 큰 차이를 유발합니다. LGPL이 적용된 라이브러리는 독점 소프트웨어에 사용될 수 있지만, 일반적인 GPL이 적용된 라이브러리는 단지 자유 프로그램에서만 사용될 수 있습니다.
특정한 라이브러리에 어떤 이용허락을 적용하느냐는 전략적인 문제이기 때문에 구체적인 상황에 따라 달라질 수 있습니다. 현재 대부분의 GNU 라이브러리들은 LGPL을 따르고 있는데, 이것은 우리가 두가지 전략 중에서 하나는 무시한 채 다른 한가지 전략만을 추구하고 있다는 것을 의미합니다. 이런 이유 때문에 우리는 더욱 많은 라이브러리들을 LGPL이 아닌 일반적인 GPL로 배포하려고 노력하고 있습니다.
독점 소프트웨어 개발자들은 비용면에서 비교 우위를 갖고 있습니다. 그렇게 때문에 자유 소프트웨어 개발자들은 이러한 부분을 상쇄시킬 수 있는 이점을 서로에게 제공해 주어야 할 필요가 있습니다. 라이브러리에 일반적인 GPL을 적용하게 되면 자유 소프트웨어 개발자들은 이를 사용할 수 있지만, 독점 소프트웨어 개발자들은 사용할 수 없게 되어 자유 소프트웨어 개발자들에게 이점을 제공해 줄 수 있습니다.
일반적인 GPL의 적용이 모든 라이브러리에 장점을 제공해 주는 것은 아닙니다. 어떤 경우에는 LGPL을 사용하는 것이 더 좋습니다. 이러한 경우의 일반적인 형태는 GPL을 적용한 라이브러리의 기능이 다른 대체 라이브러리를 통해 독점 소프트웨어에서도 쉽게 구현될 수 있을 때입니다. 이러한 경우에는 GPL이 적용된 라이브러리가 자유 소프트웨어에 대한 특별한 이점을 보장해 줄 수 없기 때문에 단순히 LGPL을 적용하는 것이 그 사용 범위를 넓히기 위해서라도 더 좋다고 볼 수 있습니다.
이러한 이유 때문에 우리는 GNU C 라이브러리에 LGPL을 사용했습니다. GNU C 라이브러리 이외에도 다른 C 라이브러리들이 많이 존재하기 때문에 만약 GNU C 라이브러리에 GPL을 적용하게 되면 독점 소프트웨어 개발자들은 그들이 사용할 수 있는 다른 C 라이브러리를 사용하게 될 것입니다. 이러한 결과는 우리에게 문제를 더 가져다 줄 뿐이며 독점 소프트웨어 개발자들에게는 아무런 문제가 되지 않습니다.
그러나 만약 어떤 라이브러리가 GNU Readline의 경우와 같이, 독자적이고 중요한 기능을 제공하는 것이라면 그것은 전혀 별개의 문제입니다. Readline 라이브러리는 에디터나 셸과 같이 대화형으로 진행되는 프로그램을 사용할 때 명령행 편집이나 히스토리 기능을 제공하는데, 이러한 기능은 다른 라이브러리에서 일반적으로 찾아볼 수 없는 특징적인 것입니다. 따라서 Readline에 GPL을 적용하게 되면 Readline의 사용을 자유 소프트웨어에만 한정시킬 수 있기 때문에 자유 소프트웨어 공동체에 실질적인 힘이 될 수 있습니다. Readline의 기능을 포함시키고자 하는 소프트웨어를 자유 소프트웨어로 만들 수 있는 것입니다.
만약 우리가 독점 소프트웨어에는 찾아볼 수 없는 기능을 가진 GPL 기반의 강력한 라이브러리들을 축적할 수 있다면 그것은 새로운 자유 소프트웨어를 개발할 수 있는 매우 유용한 모듈로 활용될 수 있을 것입니다. 이것은 자유 소프트웨어의 개발에 더욱 큰 이점을 줄 것이고, 어떤 프로젝트들은 GPL이 적용된 라이브러리를 사용하기 위해서, 앞으로 개발될 소프트웨어를 자유 소프트웨어로 만들기로 결정하기도 할 것입니다. 대학의 프로젝트는 이러한 영향을 쉽게 받을 수 있습니다. 최근에는 기업들도 자유 소프트웨어를 만들기 시작했으며, 심지어 몇몇 상업 프로젝트도 이러한 영향을 받게 되었습니다.
자유 경쟁이 갖고 있는 중요한 이점을 부정하려고 하는 독점 소프트웨어 개발자들은 프로그램 저작자들에게 라이브러리를 GPL 소프트웨어에 포함시키지 말 것을 설득하려고 노력할 것입니다. 예를 들면, 만약 라이브러리를 독점 소프트웨어 제품을 만드는데 사용하면 보다 많은 사용자들이 그 라이브러리를 쓰게 될 것이라고 주장할 지도 모릅니다. 이러한 점을 프로그램 저작자들의 자존심과 공명심에 빌어 설득할 경우에는, 상당한 인기를 가진 하나의 라이브러리를 만들어 내는 것이 마치 자유 소프트웨어 공동체가 당면한 가장 필요한 요구라는 그릇된 판단을 유도하게 될 수 있습니다.
그러나 우리는 이러한 유혹에 넘어가서는 안됩니다. 왜냐하면 우리는 GPL 라이브러리를 통한 단결을 통해 더욱 많은 것들을 달성할 수 있기 때문입니다. 자유 소프트웨어 개발자들은 서로가 서로를 지원해야만 합니다. 라이브러리를 자유 소프트웨어에 한정해서 배포하는 방법을 통해 우리는 동료 개발자들이 만든 자유 소프트웨어 패키지들이 이에 대응되는 독점 소프트웨어를 능가하도록 도울 수 있습니다. 이러한 방법들을 통해 자유 소프트웨어가 전반적인 경쟁 우위를 갖게 되면 자유 소프트웨어 운동 전체가 보다 많은 인기를 얻게 될 것입니다.