如前所示,在launchpad上编译gnome的包,其实就是在debian/rules里面include了/usr/share/cdbs/1/class/gnome.mk而已,导致.mo文件在声称的deb包里都被删掉了。
不管是加NO_PKG_MANGLE参数,还是修改debian/control的section字段,最后都没解决问题。
可能是在launchpad的关系,很多东西自己没法设,比如/etc/maintainermangler.conf
最后无奈下载了pkgbinarymangler的源代码看看,pkgstriptranslations里有如下内容:
- # ignore language packs
- if echo "$srcname" | grep -q ^language-pack; then
- echo "pkgstriptranslations: building language pack, doing nothing"
- exit 0
- fi
- # ignore backports
- if dpkg-parsechangelog | grep -q 'Distribution:.*backport'; then
- echo "pkgstriptranslations: building backport, doing nothing"
- exit 0
- fi
第一段很明显,language-pack开头的包是不strip的,否则岂不.mo文件都没了。
第二段的话难道是changelog里有Distribution:.*backport就会skip这个strip处理?
研究了下dpkg-parsechangelog,发现它的输出有Distribution这一字段,其直取自changelog的第一行,即jaunty,karmic等字段,
这个字段实在不想改,不过看看它的这个grep没有特殊位置要求,就写在changlog的正文里了。
不管怎样,至少现在的deb里有mo文件了。
虽然做法不怎么漂亮。
最新评论