我正在尝试将 Spamdyke 4.3.1(下载链接)转换为 Debian 软件包(.deb
)。这是一个非常容易构建的软件,没有疯狂的依赖,就像libssl-dev
这样:
apt-get install build-essential devscripts \
debhelper dh-make libssl-dev
然后一旦你解包源:
cd spamdyke-4.3.1/spamdyke
./configure --exec_prefix=/usr
make
和平常
make install
因为我愿意用这个软件制作 Debian 包,所以我在文件夹中创建了所有必要的文件,并通过添加以下内容debian/
修改了它的install
目标:spamdyke/Makefile.in
${DESTDIR}
install: spamdyke
cp spamdyke ${DESTDIR}/usr/local/bin/spamdyke-@PACKAGE_VERSION@
rm -f ${DESTDIR}/usr/local/bin/spamdyke
ln -s ${DESTDIR}/usr/local/bin/spamdyke-@PACKAGE_VERSION@ ${DESTDIR}/usr/local/bin/spamdyke
但我目前的问题是分发存档将所有源文件保存在spamdyke/
文件夹而不是根文件夹中,这不是dh_*
工具期望自动完成所有繁重工作的工具:
drwxr-xr-x 4 vagrant vagrant 4096 Feb 3 10:57 debian
drwxr-xr-x 3 vagrant vagrant 4096 Jan 30 19:43 documentation
drwxr-xr-x 2 vagrant vagrant 4096 Feb 5 21:00 spamdyke
drwxr-xr-x 997 vagrant vagrant 77824 Jan 30 19:43 tests
drwxr-xr-x 2 vagrant vagrant 4096 Jan 20 2012 utils
不幸的是,我无法创建正确debian/rules
的方法来使所有包装工作。我希望debian/rules
尽可能简单,坦率地说,我希望将它指向spamdyke
带有选项的源文件夹--builddirectory
至少对于配置和构建步骤来说就足够了。我debian/rules
现在的样子是这样的:
#!/usr/bin/make -f
export DH_VERBOSE = 1
%:
dh $@ --builddirectory=spamdyke
override_dh_auto_configure:
dh_auto_configure --builddirectory=spamdyke -- --exec_prefix=/usr
override_dh_auto_build:
dh_auto_make --builddirectory=spamdyke
然而,结果却debuild -b -us -uc
产生了相当空.deb
的包,lintian 抱怨empty-binary-package
:
dpkg-genchanges: binary-only upload (no source code included)
dpkg-source --after-build spamdyke-4.3.1
dpkg-buildpackage: binary-only upload (no source included)
Now running lintian...
W: spamdyke: new-package-should-close-itp-bug
E: spamdyke: copyright-should-refer-to-common-license-file-for-gpl
W: spamdyke: empty-binary-package
Finished running lintian.
我希望必须在这里遗漏一些明显的东西,但目前我无法找到要搜索的内容。任何提示表示赞赏。提前致谢。
您需要设置
--sourcedirectory
而不是--builddirectory
随叫随到dh $@
,它将影响所有dh_auto_*
. 因此,您可以删除这些覆盖。资源:
man debhelper
笔记:
避免使用硬编码路径
例如
/usr/local
,使用$prefix
变量代替。autotools/usr/local
默认设置,debhelper 重置为/usr
(无需手动设置)建议的修复:
spamdyke/Makefile.in
定义prefix
和更改符号链接目标。debian/rules
删除覆盖参考: GNU 编码标准