14. 패키지 확인
• WNPP에서 관련된 목적의 패키지가 있는지 확인
• Work-Needing and Prospective Packages 의 약자
• 패키지들의 리스트가 있는 사이트
• Debian(Repository)에 반영되기를 기다리는 패키지들의 목록이 있는 곳
• https://www.debian.org/devel/wnpp/
• 메일이나 reportbug 프로그램을 이용해서 추가
• 패키지를 추가하는 것이 아닌, 패키지의 상태를 등록하는 것
20. WNPP Request Type
• ITP (Intent To Package)
• 패키지의 설명을 저작권과 관련된 URL을 참조해서 제출
• O (Orphaned)
• maintainer가 없어져, 새로운 maintainer가 필요한 상태
• RFA (Request For Adoption)
• 현재 maintainer가 다른 maintainer 를 구하고 있는 상태
• 현재 maintainer가 바쁘거나 흥미가 없는 상태
• 이 패키지는 한동안 유지될 것이지만, 적극적으로 관리되지는 않는 상태
21. WNPP Request Type
• RFH (Request For Help)
• 현재 maintainer가 패키지를 관리하길 원하나 도움이 필요한 상태
• RFP (Request For Package)
• Debian에서 관리하고 싶은 패키지
• 저작권이나 관련된 URL, 설명을 요청한 상태
25. 업로드 정책
• stable 에 업로드 하는 것을 엄격하게 제한
• 예를 들어, 현재 stable인 jessie 를 타겟으로 패키지를 새로 올리기 어려움
• 업로드 가능 조건
1. 기존 패키지 혹은 시스템에 치명적인 기능상의 문제가 있을 경우
2. 업로드된 패키지가 설치되지 않는 경우
3. 릴리즈된 아키텍처에 필요한 패키지가 없는 경우
• oldstable 의 경우도 위의 조건을 만족시켜야함
26. 업로드 정책
• 패키지 파일을 ftp 서버에 업로드
• 패키지 파일에는 서명된 changes 파일과 dsc 파일이 포함되어야함
• dsc 파일은 debian source control 파일임
• Source package Layout 에 따라 필요한 파일을 업로드함
• ftp.upload.debian.org 의 /pub/UploadQueue/ 디렉토리에 업로드
• ftp://ftp.upload.debian.org/pub/UploadQueue/
• UploadQueue README 파일 참조
• ftp://ftp.upload.debian.org/pub/UploadQueue/README
28. Debian Directory
• Debian pacakge 를 구성하기 위한 패키지 정보를 담은 디렉토리
• changelog, control, copyright, rules 파일이 가장 중요
• 그 외, compat, README, docs, source/format 등의 파일들이 있음
29. changelog
• Debian 패키지의 변경 기록을 적은 파일
• 패키지 명과 버전, release 버전, 변경 내역등이 작성됨
• 버전은 “<upstream 버전>-<debian 버전>” 으로 작성
• Ex) 1.0.0-1
30. Upstream definition in Ubuntu
• Most of the software available through Ubuntu is not written by
Ubuntu developers themselves.
• Most of it is written by developers of other Open Source projects
and then integrated into Ubuntu.
• These projects are called “Upstreams”, because their source code
flows into Ubuntu, where we “just” integrate it.
31. changelog
• 변경 내역에 Debian 의 이슈가 있을 경우, 이슈 번호를 기록
• ”Closes: #XXX” 와 같은 형태
• 핵심 변경 사항은 ”*” 를 사용해서 표기
• 핵심 변경 사항과 관련된 하위 변경 사항은 “-” 을 사용해서 표기
• 작성 일자는 RFC 5322 형식에 맞춰서 작성
33. control
• 패키지의 메타 정보를 기록한 파일
• Source 패키지의 정보와 생성할 debian 패키지의 정보를 작성
• Source 패키지 정보
• Source 이름, section, maintainer, build-depends 등을 기록
• Debian 패키지 정보
• Package 이름, architecture, depends, description 등을 기록
39. source/format
• 초기 생성된 내용을 그대로 유지
• 소스 패키지의 버전을 명시
• 1.0 : 기본 형식 (Default 값)
• 3.0 (quilt) : upstream 과 분리된
• 3.0 (native) : debian native 패키지 (upstream 이 없음)
41. rules
• Makefile 같이 패키지의 빌드를 위한 파일
• debhelper 에 의해서 많은 부분이 자동화 되어있음
• dh 명령을 사용해서 빌드를 수행함
• 설정을 커스터마이징 할 수 있음
• 패키징 로그는 “debian/package.debhelper.log” 파일에 기록됨
51. Requirement
• packaging-dev
• 패키징에 관련된 모든 패키지를 담고 있는 패키지
• 너무 많은 패키지가 들어있음
• devscripts
• Debian 패키지 관리를 도와주는 script 들을 가지고 있는 패키지
• Dch, debclean, debi, debpkg, debuild 등의 패키지가 포함되어 있음
52. Requirement
• dh-make
• Debian 패키지를 만들기 위한 debian 디렉토리를 생성해주는 tool
• Upstream source code 를 사용하거나 native debian package 를 만들 수 있음
• git-buildpackage
• Git 을 사용한 형상 관리와 debian 패키징을 위한 tool
• 주로 사용하게 됨
53. Requirement
• pbuilder
• 시스템과 분리된 독립된 환경에서 패키지를 빌드할 수 있도록 해주는 tool
• debootstrp 을 이용해서, chroot 환경을 만들어줌
• lintian
• Debian directory 의 문법 오류나 형식, 정책 위반을 검증해주는 tool
55. Pbuilder
• 빌드를 위한 깔끔한 환경을 제공해줌
• 시스템의 설정을 수정하지 않고, 다양한 빌드 환경을 만들어줌
• Ubuntu 나 Debian 의 다양한 릴리즈 환경을 지원
• ”pbuilder-dist <release> create” 명령을 사용
• Ex) pbuilder-dist jessie create