use hatchling instead of flit

This commit is contained in:
Evgenii Alekseev 2024-10-10 13:59:56 +03:00
parent be57045972
commit fca9239cd2
3 changed files with 30 additions and 16 deletions

View File

@ -43,7 +43,7 @@ RUN pacman -S --noconfirm --asdeps \
pacman -S --noconfirm --asdeps \
base-devel \
python-build \
python-flit \
python-hatchling \
python-installer \
python-wheel \
&& \

View File

@ -8,7 +8,7 @@ arch=('any')
url="https://github.com/arcan1s/ahriman"
license=('GPL3')
depends=('devtools>=1:1.0.0' 'git' 'pyalpm' 'python-bcrypt' 'python-inflection' 'python-pyelftools' 'python-requests')
makedepends=('python-build' 'python-flit' 'python-installer' 'python-wheel')
makedepends=('python-build' 'python-hatchling' 'python-installer' 'python-wheel')
optdepends=('python-aioauth-client: web server with OAuth2 authorization'
'python-aiohttp: web server'
'python-aiohttp-apispec>=3.0.0: web server'
@ -32,20 +32,25 @@ backup=('etc/ahriman.ini'
'etc/ahriman.ini.d/logging.ini')
build() {
cd "$pkgname-$pkgver"
cd "$pkgname-$pkgver"
python -m build --wheel --no-isolation
python -m build --wheel --no-isolation
}
package() {
cd "$pkgname-$pkgver"
cd "$pkgname-$pkgver"
python -m installer --destdir="$pkgdir" "dist/$pkgname-$pkgver-py3-none-any.whl"
python -m installer --destdir="$pkgdir" "dist/$pkgname-$pkgver-py3-none-any.whl"
# keep usr/share configs as reference and copy them to /etc
install -Dm644 "$pkgdir/usr/share/$pkgname/settings/ahriman.ini" "$pkgdir/etc/ahriman.ini"
install -Dm644 "$pkgdir/usr/share/$pkgname/settings/ahriman.ini.d/logging.ini" "$pkgdir/etc/ahriman.ini.d/logging.ini"
# hatchling doesn't support installation outside of the python root, so we need to install data files manually
local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
cp -a "$pkgdir$site_packages/$pkgname/data/"* "$pkgdir/usr/"
rm -r "$pkgdir$site_packages/$pkgname/data"
install -Dm644 "$srcdir/$pkgname.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
install -Dm644 "$srcdir/$pkgname.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
# keep usr/share configs as reference and copy them to /etc
install -Dm644 "$pkgdir/usr/share/$pkgname/settings/ahriman.ini" "$pkgdir/etc/ahriman.ini"
install -Dm644 "$pkgdir/usr/share/$pkgname/settings/ahriman.ini.d/logging.ini" "$pkgdir/etc/ahriman.ini.d/logging.ini"
install -Dm644 "$srcdir/$pkgname.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
install -Dm644 "$srcdir/$pkgname.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
}

View File

@ -1,6 +1,6 @@
[build-system]
requires = ["flit_core"]
build-backend = "flit_core.buildapi"
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "ahriman"
@ -89,17 +89,26 @@ web = [
"setuptools", # required by aiohttp-apispec
]
[tool.flit.sdist]
[tool.hatch.version]
path = "src/ahriman/__init__.py"
[tool.hatch.build.targets.sdist]
include = [
"AUTHORS",
"CONTRIBUTING.md",
"SECURITY.md",
"package",
"src",
"web.png",
]
exclude = [
"package/archlinux",
]
[tool.flit.external-data]
directory = "package"
[tool.hatch.build.targets.wheel]
packages = [
"src/ahriman",
]
[tool.hatch.build.targets.wheel.force-include]
"package" = "ahriman/data"