Open Source Compliance by Open Source
오픈소스를 사용하고 배포할 때에는 오픈소스 라이선스가 요구하는 의무사항을 준수해야 합니다. 오픈소스를 올바르게 사용하면서 소프트웨어를 개발/배포하는 기업은 이러한 오픈소스 라이선스 의무사항을 준수하기 위한 정책과 프로세스를 갖추고 있습니다. 이러한 라이선스 준수를 위한 일련의 활동을 오픈소스 컴플라이언스라고 합니다.
오픈소스 컴플라이언스 활동을 위해서는 먼저 제품 소프트웨어에 어떤 오픈소스가 포함되어 있는지 식별해야 하며, 이때 자동화된 소스 코드 스캔 도구를 사용할 수 있습니다. 소스 코드 스캔 도구는 상용 도구 및 오픈소스 도구 등 다양하게 존재합니다. (참고 : Source code scanning and license compliance ) 각 도구들은 특장점이 있지만 어떤 하나도 모든 문제를 해결할 수 있는 완벽한 기능을 제공하지는 않습니다. 따라서 기업은 제품의 특성과 요구사항에 맞는 적합한 도구를 선택해야 합니다.
오늘은 이러한 도구 중에서 Linux Foundation의 FOSSology에 대해서 알아보려고 합니다. FOSSology Project (https://www.fossology.org/)는 오픈소스로 공개된 소스 코드 스캔 도구로서 기업들이 손쉽게 무료로 사용할 수 있습니다.
FOSSology는 웹 기반의 프로그램으로 사용자는 웹사이트에 로그인하여 개별 파일 혹은 소프트웨어 패키지를 업로드할 수 있습니다. FOSSology는 업로드된 파일 내에 라이선스 텍스트와 Copyright 정보를 검출합니다. 개발자는 사용하고자 하는 오픈소스의 라이선스가 무엇인지, Copyright은 어떻게 되는지에 대한 정보를 확인하고자 할 때 FOSSology를 이용하는 것이 좋습니다. FOSSology는 개발자가 업로드한 오픈소스 패키지 내의 모든 파일을 스캔하여 각 파일 내 라이선스 관련 텍스트와 Copyright 정보를 자동으로 검출하고, 이를 리포트로 생성합니다. FOSSology 주요 특징에 대한 자세한 내용은 다음 페이지를 참고할 수 있습니다. : https://www.fossology.org/features/
기업 내에서 FOSSology를 사용하기 위해서는 사내에 FOSSology 서버를 구축해야 합니다. 이를 위해 리눅스 기반의 서버 시스템에 FOSSology를 설치해야 합니다. FOSSology는 다음 세 가지 방법으로 설치할 수 있습니다.
Docker 사용
Vagrant와 VirtualBox 사용
Source build 하여 설치
여기서는 가장 간편한 방법인 Docker를 사용하는 방법에 대해 설명합니다.
FOSSology는 컨테이너화 된 Docker 이미지를 Docker Hub (https://hub.docker.com/)를 통해 공개하고 있습니다. : https://hub.docker.com/r/fossology/fossology
Pre-built 된 Docker 이미지는 다음 명령어를 사용하여 실행할 수 있습니다.
$ docker run -p 8081:80 fossology/fossology
Docker 이미지는 다음 URL과 계정 정보로 사용할 수 있습니다. : http://[IP_OF_DOCKER_HOST]:8081/repo
Username : fossy
Passwd : fossy
설치와 관련한 자세한 내용은 다음 페이지를 참고할 수 있습니다. : https://github.com/fossology/fossology/blob/master/README.md
FOSSology를 설치할 수 있는 시스템 구축이 곤란한 상황이라면, FOSSology Project에서 제공하는 테스트 서버를 이용할 수 있습니다. FOSSology 프로젝트에서는 테스트를 위한 환경을 제공합니다. (테스트 서버는 예고 없이 중단될 수 있습니다.) 사용자는 다음 계정으로 FOSSology 테스트 서버에 접속하여 FOSSology 기능을 시험해볼 수 있습니다.
URL: http://83.169.21.23/fossology/
Username: testuser
Password: test
FOSSology의 기본 사용 절차는 다음과 같습니다.
사용하고자 하는 오픈소스의 라이선스와 Copyright 정보를 확인하기 위해 오픈소스의 소스 코드를 하나의 파일로 압축하여 FOSSology에 업로드합니다. 이를 위해 메뉴 > Upload > From File을 선택합니다.
업로드할 파일을 선택하고 Upload 버튼을 클릭합니다. 업로드가 완료되면 Job Agent에 의해 자동으로 분석을 수행합니다. 메뉴 > Jobs > My Recent Jobs에서 분석 중인 Status를 확인할 수 있습니다.
분석이 완료되면 메뉴 > Browse에서 분석 결과를 확인할 수 있습니다.
개별 파일을 선택하면 FOSSology가 검출한 라이선스 관련 텍스트가 무엇인지 확인할 수 있습니다.
메뉴 > Browser > 파일 혹은 디렉터리를 선택 > Copyright/Email/Url/Author에서는 FOSSology가 검출한 Copyright/Email/Url/Author 정보를 보여줍니다.
사용자는 FOSSology는 이렇게 분석한 결과가 유효한지 여부에 대해 확인 후 잘못 검출된 항목에 대해서는 분석 결과에서 제외시키는 작업을 할 수 있습니다. FOSSology는 이를 Clearing 과정이라고 설명하며, 자세한 사항은 다음 페이지를 참고할 수 있습니다. : https://www.fossology.org/get-started/basic-workflow/
위와 같은 방법으로 사용하고자 하는 오픈소스의 라이선스는 무엇인지, Copyright 정보는 어떻게 되는지를 간단히 확인할 수 있습니다.
(다음 blog에서는 FOSSology 3.6을 CentOS 7.6에 설치하는 방법을 상세히 설명합니다. : https://brunch.co.kr/@foss/5)