这是一篇简化的教程,如果你有一个喜爱的 Python 模块不在 Arch 仓库里,AUR 里也没有,可以尝试读下去。
准备
对 Python 模块来说,一般仅仅一个 PKGBUILD 文件就足以完成所有的事情。现在你可以打开你最喜欢的文本编辑器,把下面这一个简单的 PKGBUILD 模板复制进去:
# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
pkgbase=python-whatever
pkgname=('python-whatever' 'python2-whatever')
pkgver=0.4.3
pkgrel=1
pkgdesc='Easy way to make anonymous functions by partial application of operators'
arch=('any')
license=('BSD')
url='https://github.com/Suor/whatever'
makedepends=('python-setuptools' 'python2-setuptools')
checkdepends=('python-pytest-runner' 'python2-pytest-runner')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/Suor/whatever/archive/$pkgver.tar.gz")
sha512sums=('162d66753ef4fb15279150b7fa953b4ecf086e2b36cc77531dac099ff4a25b3458af627bdf52e168b7b4b2163a1445f35c2c656b1c10c0c73502d2357ba42dd8')
prepare() {
cp -a whatever-$pkgver{,-py2}
}
build() {
cd "$srcdir"/whatever-$pkgver
python setup.py build
cd "$srcdir"/whatever-$pkgver-py2
python2 setup.py build
}
check() {
cd "$srcdir"/whatever-$pkgver
python setup.py pytest
cd "$srcdir"/whatever-$pkgver-py2
python2 setup.py pytest
}
package_python-whatever() {
depends=('python')
cd whatever-$pkgver
python setup.py install --root="$pkgdir" --optimize=1
install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
package_python2-whatever() {
depends=('python2')
cd whatever-$pkgver-py2
python2 setup.py install --root="$pkgdir" --optimize=1
install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
# vim:set ts=2 sw=2 et:
因为距离 Python 2 的废弃时间(2020年)还早,Arch 仓库中的 Python 模块包通常同时提供 Python 2/3 模块。上面例子里的 Python 软件包名叫 whatever,这也同样是它在 PyPI 中的名字。如果原来的包名中包含大写字母,在制作软件包时需要改成小写。
Continue reading 给 Arch 打一个包 – Python 模块篇