여러분이 초기 "데비안화"를 만들기 위하여 dh_make를 사용할 때, 다양한 작업을 위한 예제 파일은 debian/
디렉토리에 만들어 집니다. 그 양식들은 .ex 확장자를 가지고 있습니다. 만약 여러분이 하나를 사용하기를 원한다면, 그것은 확장자를 제거하여 이름을 변경 하십시오. 만약 그것이 필요하지 않다면, debian/
디렉토리를 깨끗하게 유지하기 위하여 그것을 삭제 하십시오.
소스 패키지에는 두 종류가 있습니다, 네이티브와 네이티브가 아닌 것(non-native). 네이티브 패키지는 Ubuntu/Debian 이 지정된 것 입니다. 그것은 패키징 정보와 tarball에 포함된 소스에 대한 어떤 변경들도 debian/ 디렉토리에 가지고 있습니다. (항상 <packagename>_<version>.tar.gz) Non-native는 보다 일반적 입니다. 한 non-native는 소스 패키지를 프로젝트의 홈페이지에서 내려받은 소스 tarball과 동일한 하나의 <packagename>_<version>.orig.tar.gz tarball (희망적으로 md5sum도 포함하는)과 원래의 소스 tarball외에 모든 차이들을(debian/
디렉토리와 패치) 가지는 하나의 .diff.gz 파일로 분리 합니다.
만약 여러분이 원래의 tarball을 변경 한다면 일어날 수 있는 가능한 위험에 대한 목록이 여기에 있습니다:
재생 가능성
만약 여러분이 단지 .diff.gz 와 .dsc 만을 취한다면, 여러분 또는 다른 사람이 원래의 tarball에 있는 변경을 재생산할 수단이 없습니다.
업그레이드 가능성
만약 .orig.tar.gz 이 저장되어 있고 업스트림 소스와 우분투 소스 패키지를 생성하기 위해 만들어진 변경 간에 분명한 구분이 있다면 (저작자에게서 온) 새로운 업스트림 버전으로 업그레이드를 하는 것이 훨씬 쉽습니다.
데비안에서 우분투 로 동기화
원래의 tarball을 변경하는 것은 데비안에서 우분투로 자동적으로 동기화 하는 것을 어렵게 만듭니다. 보통은, 같은 업스트림 버전 내의 .diff.gz 과 .dsc 파일만을 변경하고, 모든 데비안 또는 우분투 개정판에서는 .orig.tar.gz 을 공유 합니다. .orig.tar.gz 파일의 md5sums 이 같지 않다면 동기화 하는 것이 더욱 어렵습니다.
데비안 패키지를 위한 개정 관리의 사용
만약 여러분의 데비안 패키지를 관리하기 위하여 svn (svn-buildpackage) 을 사용한다면, 그것 내에 보통은 원래의 tarball을 저장하지 않습니다. 만약 다른 누군가 체크아웃을 한다면, 따로이 원래의 tarball을 가지는 것이 필요 합니다. 다른 버전 관리 시스템은 오직 패키징 파일 (debian/
, 기타) 만을 추적하고 전체 소스는 추적하지 않는 것에 이용될 수 있습니다. 그러나, .orig.tar.gz 이 같지 않다면, 그것은 분명히 문제를 일으킬 수 있습니다.
보안 추적
어떤 사람이 backdoor/rootkit 또는 다른 나쁜 것을 포함하기를 원한다는 것을 고려하십시오. 만약 원래의 tarball이 손상되지 않았다면, 그 사람이 무엇인가 나쁜 짓을 하기 위하여 패키지를 변경하였는 지를 보기 위하여 diff.gz 를 통해 쉽게 검사를 할 수 있습니다. 그러나, 만약 tarball이 변경되었다면, 그 tarball과 원래의 소스 간의 차이를 점검하는 것이 필요 합니다.
여러분은 여전히 그 소프트웨어의 저작자가 어떤 나쁜 것도 하지 않았다고 신뢰를 할 수 있지만, 그것은 원래의 소스가 변경되었는 여부에 관계없는 경우 입니다.
.diff.gz 파일
이미 존재하는 원래의 tarball로 변경을 반영하기 위해 대신에 .diff.gz 를 사용하는 것이 선택 사항이고, 이것은 원래의 tarball을 건드리는 것 없이 변경을 만드는 것을 쉽게 합니다.
만약 다음 중 하나 또는 그 이상이 진실일 경우 원래의 tarball을 변경하는 것은 받아질 수 있습니다:
그것이 재배포할 수 없는 비자유 부분을 가지고 있고, 패키징 내에 그것을 기록 합니다. 자주 이러한 패키지는 이름 내에 "dfsg" (Debian Free Software Guidelines 의 약어) 를 사용하고(또는), 비자유 부분이 삭제 되었음을 표시하는 버전 매김을 합니다.
저작자는 bzip2으로 압축된 소스만을 제공 합니다.
단지, bunzip2 그 .tar.bz2 와 gzip -9 그 결과 tar 를 하십시오.
여러분이 제공하는 .tar 파일과 원래의 .tar 파일의 md5sums 은 반드시 일치하여야 합니다!
실제로 debian/rules 에 get-orig-source 규칙을 제공 하는 것은 이 변환을 자동으로 합니다.
SVN에서 직접 가져오기
debian/rules 에 get-orig-source 를 제공 합니다.
다음은 원래의 tarball을 변경하는 사유가 아닙니다:
잘못된 디렉토리 레이아웃
dpkg-source 는 아주 유연하고, 심지어 다음의 경우에도 정확한 디렉토리 레이아웃을 생산하는 것을 관리 합니다:
tarball 내의 디렉토리는 <upstream>-<version> 로 이름지어질 수 없습니다.
tarball 내에 서브디렉토리가 없습니다.
.diff.gz 작게 유지를 하려면 (예를 들어, autotools에 의해 만들어진 ) 파일들을 삭제하는 것이 필요 합니다. 삭제되어야 할 필요가 있는 모든 것들은 clean 규칙 내에서 지워져야 합니다. diff -u 로 .diff.gz 가 만들어지므로, diff.gz 에서 삭제된 파일을 볼 수 없게 됩니다.
파일들은 변경되어야 할 필요가 있습니다. 변경이 필요한 파일들은 .diff.gz 로 가야만 합니다. 그것이 이것의 목적 입니다!
파일의 잘못된 접근 권한. 이것을 하기 위해 debian/rules
를 사용할 수 있습니다.
.orig.tar.gz 이 이미 debian/
dir을 포함하고 있다면 무엇을 해야 합니까?
그것을 다시 패키지하지 마십시오. 여러분은 저작자에게 debian/ dir 을 삭제하는 것과 대신에 diff.gz 를 제공하도록 문의할 수 있습니다. 이것은 저작자의 작업을 검토하는 것을 쉽게 만들어 주고, 프로그램 소스에서 패키징을 구분할 수 있게 합니다.
프로그램의 저작자와 연락하는 것은 언제나 좋은 생각이고 만약 여러분이 autoconf 문제나, 디렉토리 레이아웃, COPYRIGHT 파일 내의 오래된 Free Software Foundation 주소들을 고칠 수 있지만 그것이 여러분에게 불편할 때는 저작자에게 요청하고 그래서 여러분은 .diff.gz 내의 소스를 "패치"할 필요가 없게 됩니다.