여기서 만든 내 프로그램들(BerEditor, CertMan, CryptokiMan) 은 오픈소스를 이용하여 만들었다.
오픈소스의 경우 소스를 자유롭게 참조 하고 사용 할 수 있지만 프로그램을 만들어서 배포하는 경우
해당 라이선스에 따라 지켜야 하는 의무 사항이 존재 하는 프로그램이다.
(물론 개인적으로만 사용하는 경우는 의무 사항이 없다. 하지만 배포 하는 경우 지켜야 한다)
사이드 프로젝트로 만든 여기 프로그램 경우 일부 소스는 공개를 하였지만
전체 소스 공개를 요구하는 GPL 라이선스 모듈은 배포시 포함 하지 않았다.
즉 소스 공개에 대해서는 개인적으로 제한 받지 않기 위해서이다.
( 테스트 용도로만 GPL 라이브러리는 사용중이다^^)
그리고 자체 개발한 소스에 대해서는 저작권 표시를 해주는게 필요하여 저작권 표시를 해주었다.
프로그램 개발 시 가장 많이 사용되는 오픈 소스는 OpenSSL 과 QT 라이브러리이다.
OpenSSL 경우 Apache-2.0 라이선스를 이용하고
QT 경우 LGPLv3 or GPLv3 버전을 이용하는데 가능한한 GPLv3 기능은 내부 테스트용으로 이용하고 배포에는 배제 하였다.
( GPLv3 을 사용하면 소스 공개에 대해서 의무 사항이기 때문)
그 외에 다양한 오픈소스도 참조 하였는데 수정 및 변경 사용에 문제가 없는 MIT 라이선스 또는 Public 라이선스를 사용하였다.
(이들 라이선스 경우 사용 고지는 해야 한다)
OpenSSL 사용시 지켜야 할 사항
기본적으로 OpenSSL 경우 Apache 2.0 라이선스는 자유롭게 수정 및 소스공개 없이 사용 가능하다.
그리고 LGPL-3.0 라이선스와 같이 사용에 문제가 없다.
하지만 해당 오픈소스를 사용하는것을 고지 해 주어야 한다.
OpenSSL 경우 개인적으로 소스를 패치 하여서 사용하였지만 현재 OpenSSL 의 패치 없이 사용하도록 변경을 하고
About 창에서 OpenSSL 을 동적링크를 이용하여 사용한다는 것을 표시 하였다.
Apache-2.0 라이선스에서 변경 사용하는 경우 변경 내용에대한 고지는 하여야 한다.
QT 사용시 지켜야 할 사항
QT 경우 GPL 또는 LGPL 라이선스를 요구하는데 사용하는 모듈이 모두 LGPL 이면 LGPL 라이선스 요구 사항에 따라 소스를 공개 하지 않아도 된다. 하지만 사용하는 모듈 중에 GPL 이 존재 한다면 소스를 공개해야 하는 의무 사항이 따른다
GPL 라이선스중 대표적인게 QtChart 모듈 경우이다.(물론 상용으로 사용하면 소스 공개 제한은 없다^^)
그래서 BerEditor, CertMan 그리고 CryptokiMan 은 사실 UI 개발에 LGPL 라이선스용 모듈만을 이용하여 개발 하였다.
QT 또한 About 창에서 QT를 동적링크를 이용하여 사용한다는 것을 표시 하였다.
사실 LGPL 경우 소스를 변경하게 되면 LGPL 소스 변경에 대한 공개의 의무가 있다.
하지만 QT 에서 제공하는 동적라이브러리 상태로 소스 변경 없이 사용하게 되면 소스 공개 없이 사용 할 수 있다.
(만약 정적 라이브러리로 개발 하면 소스를 변경 하지 않아도 추가적으로 제공 해야 하는 의무 사항이 더 있게 된다)
MIT 또는 공개 라이선스
내부적으로 SSS 또는 Sparkle 등 MIT 라이선스 모듈등 여러가지 공개된 오픈소스가 사용되었는데
필요한 경우 소스를 변경 하였지만 소스내에 저작권 표시는 그대로 유지 하여 변경 하였다.
그리고 이들 라이선스에서는 자유롭게 소스 변경을 하여 사용 할 수 있지만 사용하고 있다는 고지는 해야한다.
그래서 이들 모두 About 창에서 사용하는 저작권 표시를 해주었다.
내프로그램에 대한 저작권
다음 내용이 해당 프로그램 저자권에 대한 고지 사항 내용이다.
해당 프로그램 사용시 저작권 및 보증에 대한 책임이 없음을 명시하는 내용이다.
(개인적으로 아래 영어 문구 해석하기 너무 어렵네요)
- 자체 개발 소스 저작권 표시
사용한 오픈소스에 대한 저작권 표시
아래 내용이 사용된 오픈소스와 해당 저작권 정보 및 링크를 표시 하였다.
프로그램 패키지 고지 의무
현재 배포한 프로그램을 설치 하면 COPYRIGHT 파일과 thirdparty_license 폴더에 사용한 오픈소스 라이선스 정보 파일을 모두 같이 패키지 하였다.
내프로그램 오픈소스 처리 요약
- Apachec-2.0 과 LGPL-3.0 모듈은 변경 없이 동적 링크 사용
- GPL 라이선스 모듈 사용 안함
- MIT 라이선스 경우 소스 변경 사용 및 소스내 저작권 표시 유지
- 자체 개발 소스 내 저작권 표시
- About 창에 프로그램 저작권 표시 및 사용 오픈 소스 출처 및 저작권 표시
- 해당 패키지에 COPYRIGHT 및 사용 오픈 소스 라이선스 파일 포함
마무리
지금까지 개인적으로 프로그램을 아무 제한 없이 사용할때는 라이선스 의무 사항을 고려하지 않았지만
최근에 배포를 하다 보니 오픈소스에 대한 준수 사항를 검토 하여서 처리를 하였다.
사실 검토 하다 보니 오픈소스 고지 의무가 생각보다는 어렵다는 생각이 든다 특히 라이선스 충돌 문제 같은경우
나름 판단해서 준비를 하였지만 혹시 더 필요한게 있는지는 모르겠다.
혹시라도 부족한게 있음 알려주세요^^