OpenCV 라이선스에 관한 질문입니다. (V4L2 라이선스 연관)
글쓴이: oblab / 작성시간: 목, 2016/07/07 - 10:12오전
우분투 환경에서 테스트를 하고 있습니다
웹캠을 실시간출력하는 프로그램을 만들고 있는데요
처음에는 V4L2를 이용하여 만들다가 라이선스때문에 OpenCV를 이용하게 됬습니다.
V4L2 는 GPL 라이선스로 배포시 코드를 공개해야하는 의무가 있고
OpenCV는 BSD 라이선스로 배포시 코드공개는 자율에 맡긴다 정도로 저는 이해를 하고 있는데요
OpenCV로 기본적인 웹캠플레이 프로그램을 만들고(인터넷에 검색하면 예제나오는것) 실행까지 확인했습니다.
실행파일을 ldd 명령어로 의존성 및 참조라이브러리를 확인해볼려고했는데요
많은 리스트 항목에
libv4l1.so.0 => /usr/lib/.......
libv4l2.so.0 => /usr/lib/.......
이 눈에 들어오더라구요
OpenCV도 리눅스 환경에서는 내부적으로 V4L 을 사용하는것 같은데요
의존성확인으로는 OpenCV 라이브러리를 사용하게 되도 속으로는 V4L을 사용하게 되는것 같습니다.
이런 상황에서 제가만든 프로그램은 어떤 라이선스의 영향을 받는건가요?
OpenCV만을 사용했는데 V4L이 라이브러리안에서 사용되고 있는상황인데
OpenCV의 BSD 라이선스만을 사용중이라고해야하는건지 내부적으로 V4L이 사용되니 GPL 라이선스를 따라야하는건지..의문입니다.
OpenCV홈페이지에서는 공식적으로 BSD라이선스라 했으니 다른거 신경쓰지않고 BSD 라이선스를 적용해야 따라도 되는건가요?
Forums:
V4L2는 라이브러리가 아니라 커널 API로 알고
V4L2는 라이브러리가 아니라 커널 API로 알고 있는데요. API 호출하는 프로그램은 적용 안될껄요.
커널 자체는 GPL입니다.
리눅스용 지포스 드라이버 같은 독점드라이버들도 엄밀히 말하자면 라이센스 위반입니다.
이때문에 요즘 리눅스 드라이버 보면 그거 피할려고 드라이버 소스 다 공개해두고 펌웨어로 중요부분을 감추는 식으로 하는 경우가 많이 보이고 있습니다.
Written By the Black Knight of Destruction
답변감사합니다
라이센스가...생각보다 복잡하네요
호기심이 나서 잠시
호기심이 나서 잠시 찾아봤습니다.
https://patchwork.ozlabs.org/patch/384574/
opencv는 BSD 라이센스이고 libv4l 라이브러리는 GPL 라이센스를 쓰는데,
위 글을 보니 v4l2를 쓰기 위해 꼭 libv4l을 거쳐야 하는 것은 아닌 모양입니다.
opencv를 아래와 같이 빌드해보고 ldd로 테스트해서 libv4l 의존성이 사라진다면
libv4l 없이 v4l2를 지원하는 셈이니 라이센스 고민을 피할 수 있겠네요.
참고로, 빌드옵션에 따라 LGPL/GPL 여부가 결정되는 ffmpeg을 libv4l 없이 빌드해보니
여전히 v4l2를 지원하는 걸로 나오고 자체라이센스도 LGPL을 유지하더군요.
좋은정보 감사합니다.
좋은정보 감사합니다. 라이선스가 그냥 알기보다 상당히 복잡하네요..
댓글 달기