상세 컨텐츠

본문 제목

'알집'이 bzip2 라이선스를 어겼다는 내용에 대해...

STORY

by ESTsoft 2010. 12. 28. 17:04

본문

어떤 사이트의 알집 관련 글 중, bzip2 라이선스 원문과 함께 알집이 해당 라이선스를 어겼다고 하는 내용이 있었습니다.

저희는 SW개발사로서 SW 라이선스와 관련된 문제를 예방하기 위해 항상 주의를 기울여 왔습니다만, 혹시라도 bzip2 라이선스를 해석하면서 실수했을 가능성을 염두하고 당시 bzip2 알고리즘을 사용했던 것이 라이선스 문제가 없는지 alz포맷 개발에 관여했던 개발자들과 함께 다시 한번 면밀히 검토하였습니다.

이 과정에서 추가적으로 bzip2 개발자에게도 관련 라이선스의 범위에 대해 정확한 확인을 받고자 문의를 했으나 답신을 받을 수는 없었습니다. 검토 결과 알집이 bzip2 라이선스를 어겼다고 하는 글의 내용은 사소한 오해에서 비롯되었다는 결론을 얻었습니다.

이해를 돕기 위해 먼저 bzip2에 대해 설명 드리겠습니다.

bzip2는 압축포맷 자체를 가리키기도 하고 압축 알고리즘을 말하기도 합니다. bzip2알고리즘은 내부적으로 BWT알고리즘과 Huffman Coding을 사용합니다. 이는 zip포맷이 내부적으로 sliding window 알고리즘과 Huffman Coding을 사용하는 것과 같습니다.

다시 원래 주제로 돌아가서, 저희가 알집이 bzip2 라이선스를 어겼다는 근거로 인용되었던 bzip2 라이선스 규정 원문을 어떻게 해석했는지 설명 드리겠습니다.

알집의 alz포맷 개발 당시, bzip2는 BSD 라이선스를 기반으로 공개된 것이었으며 bzip2 개발자가 4개의 조건을 추가한 형태였습니다. 참고로, BSD 라이선스는 공개 소스에 대한 라이선스 규정이지만 Linux 진영의 GPL 규정과는 달리 상업용으로 사용이 가능하고 소스 공개 의무는 없습니다. 실제로 BSD 라이선스 규정으로 공개된 소스코드는 주요 글로벌 소프트웨어회사에서 상용 소프트웨어 개발 시 광범위하게 활용하고 있습니다.

당시 저희는 bzip2 개발자가 추가한 라이선스 규정을 검토한 후 BSD 라이선스의 틀에서 벗어나지 않는 것으로 간주하고 BSD 라이선스를 준용했습니다. 그럼, bzip2 개발자가 추가한 4개의 조건이 무엇이었는지 말씀 드리겠습니다.

[원문]
This program, "bzip2" and associated library "libbzip2", are
copyright (C) 1996-2002 Julian R Seward. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

2. The origin of this software must not be misrepresented; you must
not claim that you wrote the original software. If you use this
software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.

3. Altered source versions must be plainly marked as such, and must
not be misrepresented as being the original software.

4. The name of the author may not be used to endorse or promote
products derived from this software without specific prior written
permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS ISAND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Julian Seward, Cambridge, UK.
jseward@acm.org
bzip2/libbzip2 version 1.0.2 of 30 December 2001



1번 조항은 redistributions of source code
즉, 소스코드 재배포에 관한 규정입니다. 알집에서 관련 소스를 재배포를 하지 않았기에 이 조항과 무관합니다.

2번 조항은 if you USE this software IN A PRODUCT
즉, bzip2와 libbzip2를 제품에 포함해 사용하는 경우 출처를 밝히면 감사하고, 필수는 아니라는 내용입니다. 알집은 bzip2나 libbzip2 오브젝트를 포함해 사용하지 않았습니다. 따라서, 이 조항도 무관합니다.

물론, USE this software IN A PRODUCT라는 문장이 bzip2와 libbzip2의 오브젝트를 포함하는 것만을 의미하는 것이 아니라 소스 코드를 참고한 것까지 포함하는 것이라고 확대 해석한다면, bzip2 소스를 참고했기에 이 조항과 연관이 있긴 합니다만, 이 조항의 내용 자체가 출처를 명시해주면 고맙겠지만 의무는 아니라고 쓰여있기에 저희가 이 조항을 어긴 것은 아닙니다.
아울러, 저희가 alz 포맷을 처음 출시하던 당시에는 출처를 밝히지 않았으나, 논란이 된 이후 버전에서는 해당 출처를 명확히 밝히고 있습니다.

3번 항목은 변형된 소스 버전일 경우 명확히 명시해야 한다는 것
으로, 이 역시 소스코드의 재배포시 지켜야 할 규정입니다.

4번 항목은 개발자의 이름을 인용하고자 하는 경우 서면허가를 받으라는 내용
으로 이 부분도 무관합니다.

bzip2에 한 말씀 덧붙이자면, alz가 알집 독자 포맷이 아니라고 말씀하시는 분들은 포맷과 알고리즘을 구분하지 않았기 때문에 오해하신 것이라 생각합니다. 압축 포맷은 압축 파일을 구성하는 형식을 의미하는 것이며, 압축 알고리즘은 압축 파일 내부의 개별 원본 파일이 압축되는 방식을 의미합니다.

alz포맷에 사용 된 bzip2 알고리즘은 오픈소스(BSD 라이선스)를 참고한 것이 맞습니다만, alz포맷은 저희 개발팀이 설계하고 개발한 것이 맞습니다. 참고로, alz포맷 최초 버전은 DEFLATE와 bzip2 알고리즘을 모두 사용했습니다. zip포맷과 현재 alz포맷으로 압축할 때 사용되는 DEFLATE 알고리즘은 최초 개발사인 PKWARE사가 공개한 이래로 대부분의 압축프로그램에서 사용하고 있습니다.

bzip2 알고리즘은 알집 5.0x 버전(2002년)에서는 alz 로 압축할 때와 풀 때 사용되었으며,그 이후 버전에서는 이전 버전에서 bzip2 알고리즘이 사용된 alz포맷을 풀 때만 사용합니다.
알집 8.0 부터는 프로그램 내의 ‘알집은’ 메뉴에서 ‘저작권 정보’ 탭을 통해 bzip2 등 오픈소스 사용 내역을 명시하고 있습니다.

 



사실, 처음 alz포맷을 선보일 때부터 오픈소스의 활용에 관해 명확하게 정보를 공개했더라면 이러한 오해가 없었을 텐데, 그렇게 하지 못했던 것에 대해 사용자 여러분께 사죄 드립니다. 당시 저희가 세심하지 못했습니다. 죄송합니다. 부족하나마 제 글을 통해 관련된 오해가 해소되었기를 바랍니다.

- 알집 개발 당시 참여했던 KJ

관련글 더보기

댓글 영역