Search⌘ K
AI Features

Adjust the Template

Explore how to adjust APKBUILD templates to resolve build errors such as failed test checks and unnecessary subpackages. Understand how to prepare your package for successful building and submit it through a forked Alpine repositories workflow on GitLab.

We'll cover the following...

Preface

Let’s continue from our previous lesson. After newapkbuild is run, the following APKBUILD gets generated:

Shell
# Contributor:
# Maintainer:
pkgname=guesser-game
pkgver=0.1.0
pkgrel=0
pkgdesc="An easy funny game, which the computer will guess the number you have in mind"
url="https://github.com/mwpnava/Python-Code/tree/master/My_own_Python_package"
arch="all"
license="MIT"
depends="python3"
makedepends="py3-setuptools"
checkdepends="py3-pytest"
install=""
subpackages="$pkgname-dev $pkgname-doc"
source="https://files.pythonhosted.org/packages/f6/1d/eab54180ecc38b0d58491ec1015a313c56f3d3d0676610de02fe130eadd7/guesser_game-$pkgver.tar.gz"
builddir="$srcdir/"
build() {
python3 setup.py build
}
check() {
pytest
}
package() {
python3 setup.py install --prefix=/usr --root="$pkgdir"
}

We now have to adjust parts of the APKBUILD for it to correctly generate an .apk package for us. The easiest way to do this is by checking if the package simply gets built when we run the following command to generate the .apk package:

Shell
abuild -r

Run the command above in the terminal below:

Terminal 1
Terminal
Loading...

As we can see, the build fails with the following error message:

Shell
====================================== test session starts ======================================
platform linux -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.1
rootdir: /src/guesser-game/src/guesser_game-0.1.0
collected 0 items
===================================== no tests ran in 0.01s =====================================
>>> ERROR: guesser-game: check failed

Apparently, guesser-game has no tests, so the check() phase of the APKBUILD fails to run. We can fix this by removing the check() function from the APKBUILD and adding options="!check" to it. This ensures abuild doesn’t try to run any nonexistent tests. We can try this by running the following command ... ...