create a deb package on ubuntu for ncview

ncview is a X-windows based netCDF file browser. ncview是浏览netcdf文件格式非常好用的一个工具,还可以输出图像以及动画(连续的ppm)。
但是ncview现在只提供了源代码方式下载安装,在debian/ubuntu的官方库里都还没有对应的包,但fedora已经有了。
因为官方库还没有,搜索了一通,好像也没有别人在作,因此就尝试了一下自己从头制作DEB包。之前也简单接触过DEB打包,但那都是在别人已经DEB化的基础上所作的小修改,尝试之前就已经预计到会遇到麻烦。
参考ubuntu package guid complete上面的步骤,首先进行的是初始DEB化。这个没有任何问题,然后就是对应的修改,遇到了一堆的问题:
1、license的问题
upstream好像并没有明确声明采用什么LICENSE,但是看代码里没有文件头都有说明采用的是GPL-3的license。
2、orig.tar.gz的问题
ncview发布的包里包含了三个东西,一个是genoverlay,辅助生成overlay的小工具;一个是ncview;还有一个是udunits。udunits是第三方的软件,作者采用的是udunits 1.x的版本,但udunits的官方网站提示udunits现在已经发布了udunits-2版本,原有版本已经不再维护了(deprecated),同时udunits-2已经进入debian ftp master,但还没有审查通过。因此我在打包的时候就只选择了ncview的子目录,其他两个东西都没有考虑。
3、patch的问题
官方发布的软件,我第一次打包就遇到了BUG,是MAN中有一个大小写的错误,因此需要写patch。同时Makefile.in也需要作一些调整:改变NCVIEW_LIB_DIR到/usr/share/ncview目录,修正删除文件的错误(重复删除导致错误)。
没有采用patch管理系统,直接用patch/diff在rules文件中进行处理。开始直接用diff命令根据guide进行处理,最后发现在unpatch的时候就有问题。仔细看guide,原来是需要把新旧二者的目录名命名为new/old,这样就可以进行unpatch处理了。然后在rules文件中也需要进行小调整。
4、签名的问题
在control文件里要使用全名,使用缩写最后会提示一个警告。在制作deb包的时候,要加参数运行:
debuild -kE40642E8
其中k后面的参数是我gpg的pub id。
5、发布的问题
本想发布到revu.ubuntuwire.com的,但死活访问不了,不管是否带tor。因此就想先发布PPA上。
先建立了~/.dput.cf,根据帮助,采用dput上传,

dput ppa *.changes

但到网站上看就是没有反应,搜索了一下,发现会有信息到邮件,去邮件了看了下,果然是被拒。提示信息很奇怪:

Rejected:
Could not find person ”
Further error processing not possible because of a critical previous error

根据这个提示信息搜索,发现有人提交了BUG,但实际上并不是BUG,原因是在安装dput的时候,系统在/etc/dput.cf默认生成了一个问题,但我在~/.dput.cf是按照帮助里拷贝过来的,头没有改(my-ppa),而在/etc/dput.cf里默认也有个ppa,而这个PPA需要进一步的配置,所以就导致了错误。重新修改~/.dput.cf文件,然后再上传就没有问题了。

经历一番辛苦后,终于看到成果了,欢迎访问:
https://launchpad.net/~wangliangxu/+archive/ppa

第一次打包,有任何问题,请反馈给我。


已发布

分类

来自

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注