贝壳的第一个为debian官方贡献的包出炉了,地址在这里。之前也发过一个ITP,结果发现莫名其妙有人在做了。不知道为什么没有在wnpp中发现,结果弄的好不尴尬。
大概说一下,为debian官方贡献打包,你需要了解这个包的基本情况。例如用哪种语言写的,有什么依赖关系,是什么授权,等等。尤其是授权,debian有所谓的dsfg方针(不知道的看
这里,
这里,
这里)。如果你打出来的包包含dsfg不许可的内容,你的包会被紧急移除,直到修复这个问题。尤其值得注意的是,debian要求文件级的授权,就是说,即使有一个文件不符合授权要求,整个包也会不通过,哪怕包本身声明为开源授权。之前ibus还是fctix,因为用了拼音加加的词库,就享受了一把这个待遇。另外,如果可以的话,最好征求一下上游维护者的意见(一般就是作者)。因为debian的bug系统中的问题是你需要解决的,而这些问题通常没有上游维护者是很难搞定的。当然,如果你觉得自己搞的定,或者可以出了问题再联系,那也可以。
当你搞明白这些问题后,通常需要先发一个ITP(Intent To Adoption)出来,表示你要打包,别人不要抢。通常是用reportbug来进行提交,汇报wnpp(Work-Needing and Prospective Packages)这个包的bug。然后程序会问你确定?确定的话,会要求你选择是哪种报告,其中就有ITP。当你的ITP通过后,你会收到一个bugnumber,这个bugnumber会在changelog中用到。
另外说明一下bts(
bug tracking system)的基本用法。你需要给
[email protected]发送一封邮件,内容是bts的控制指令,每行一条。碰到无法识别的指令时,bts停止解析。通常习惯在最后写一个thanks来停止解析,也表示礼貌。指令系统可以参考[3]。
然后开始干活。干活的方法参考
Debian 新维护人员手册。其中注意在changelog中填入你刚刚申请到的ITP,这样当包通过后,会自动关闭你的ITP。提交的包需要是lintian clean的,即自动检查程序没有发现错误。通常你可以在本地系统安装lintian进行检查。
当你完成打包工作(没法详述,太复杂了,自己看文档吧),你需要上传到mentors系统,然后让DD审查你的包。你首先要在
http://mentors.debian.net拥有一个账户,这个账户的email将来会用于给你发送bug通知之类的东西。当你完成账户创建,你会在页面上看到要求上传一个gpgkey。gpg创建key都会吧?记得做4096位密钥。另外填写姓名的时候,用最好真实姓名作为名称,网名进nickname,尤其是大部分中国人都有一个拼音姓名和一个英文姓名的时候。。。
然后,你的主页上有一个说明,会让你复制一些数据到你的~/.
dput.cf中。dput是用来上传源码包的工具。如果你按照说明去复制,那么你就可以用dput debexpo ..changes来上传你的包。其中有几点需要注意的,一个是debexpo不能丢,否则会默认传到
ftp.debian.org上去,然后失败。另外changes和dsc必须经过你上传那个公钥对应的私钥的签署,否则签名验证失败,你的包上传行为就会失败。如果你的系统中有多个private key,那么dpkg-buildpackage会不知道如何打包。用-k参数加上你的私钥id,就可以指定使用哪个私钥进行签署。
当你的包完成上传后,你可以在my packages下面看到。注意服务器检查结果,本地通过lintian的包在远程还是可能爆出错误,所以再检查一下。
OK,最后总结一下,整个过程中我们用到了三个系统。第一个是debian bts,通过提起bug来表示你准备打包。第二个是
mentors.debian.net,通过注册来上传包。第三个是
[email protected],通过maillist来提醒DD检查你的包。过程有一点小繁琐,不过熟悉之后还不算繁琐。如果真的觉得繁琐,debian在包检测和打包过程中的一堆事情更是会烦死人的。
Reference: