如何为我的Python扩展创建依赖于体系结构的Debian软件包?

时间:2013-08-09 13:49:27

标签: python debian dpkg lirc

我写了一个Python 3 LIRC扩展,因为pylirc不适用于Python 3.我正在尝试将其打包成Debian软件包,并且已成功创建软件包python3-lirc_1.2.0-1_all.debpython-lirc_1.2.0-1_all.deb。这些软件包安装得很好,但只适用于它们编译的特定体系结构。

所以当我的笔记本电脑在我的笔记本电脑上编译时,python3-lirc_1.2.0-1_all.deb可以正常工作,而我的Raspberry Pi上的python3-lirc_1.2.0-1_all.deb可以在我的Raspberry Pi上运行,但每个软件包都取决于架构。

我可以在发送包之前重命名包:

python3-lirc_1.2.0-1_all.deb -> python3-lirc_1.2.0-1_amd64.deb
python3-lirc_1.2.0-1_all.deb -> python3-lirc_1.2.0-1_armhf.deb

但这似乎不是正确的方式。 debian / {control,rules}文件中是否有我需要设置的标志?通常会自动处理。

这是我的debian / control文件:

Source: python-lirc
Maintainer: Thomas Preston <thomasmarkpreston@gmail.com>
Section: python
Priority: optional
Build-Depends: python (>= 2.6.6-3),
               debhelper (>= 7),
               python3,
               python3-setuptools,
               liblircclient-dev,
               cython
Standards-Version: 3.9.1
X-Python-Version: >= 2.6
X-Python3-Version: >= 3.2
Homepage: https://github.com/tompreston/python-lirc

Package: python-lirc
Architecture: all
Depends: ${misc:Depends}, ${python:Depends}, lirc
Description: Python module for creating LIRC clients.
 This Python module allows you to retrieve commands from the LIRC
 server.

Package: python3-lirc
Architecture: all
Depends: ${misc:Depends}, ${python3:Depends}, lirc
Description: Python 3 module for creating LIRC clients.
 This Python 3 module allows you to retrieve commands from the LIRC
 server.

这是我的debian / rules文件:

#!/usr/bin/make -f

%:
    dh $@ --with python2,python3 --buildsystem=python_distutils

override_dh_auto_build:
    cython -a lirc/lirc.pyx;
    python2.6 setup.py build;
    python2.7 setup.py build;
    cython -3 -a lirc/lirc.pyx;
    python3 setup.py build;

override_dh_auto_install:
    python2.6 setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb;
    python2.7 setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb;
    python3 setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb;

1 个答案:

答案 0 :(得分:0)

Architecture: all适用于与平台无关的软件包。

尝试Architecture: any

请参阅:Debian Policy Manual : Chapter 5 - Control files and their fields