diff --git a/ahriman/.SRCINFO b/ahriman/.SRCINFO new file mode 100644 index 0000000..578e0b7 --- /dev/null +++ b/ahriman/.SRCINFO @@ -0,0 +1,47 @@ +pkgbase = ahriman + pkgdesc = ArcH linux ReposItory MANager + pkgver = 2.13.8 + pkgrel = 1 + url = https://github.com/arcan1s/ahriman + install = ahriman.install + arch = any + license = GPL3 + makedepends = python-build + makedepends = python-flit + makedepends = python-installer + makedepends = python-wheel + depends = devtools>=1:1.0.0 + depends = git + depends = pyalpm + depends = python-cerberus + depends = python-inflection + depends = python-passlib + depends = python-requests + depends = python-srcinfo + optdepends = breezy: -bzr packages support + optdepends = darcs: -darcs packages support + optdepends = mercurial: -hg packages support + optdepends = python-aioauth-client: web server with OAuth2 authorization + optdepends = python-aiohttp: web server + optdepends = python-aiohttp-apispec>=3.0.0: web server + optdepends = python-aiohttp-cors: web server + optdepends = python-aiohttp-jinja2: web server + optdepends = python-aiohttp-security: web server with authorization + optdepends = python-aiohttp-session: web server with authorization + optdepends = python-boto3: sync to s3 + optdepends = python-cryptography: web server with authorization + optdepends = python-requests-unixsocket: client report to web server by unix socket + optdepends = python-jinja: html report generation + optdepends = python-systemd: journal support + optdepends = rsync: sync by using rsync + optdepends = subversion: -svn packages support + backup = etc/ahriman.ini + backup = etc/ahriman.ini.d/logging.ini + source = https://github.com/arcan1s/ahriman/releases/download/2.13.8/ahriman-2.13.8.tar.gz + source = ahriman.sysusers + source = ahriman.tmpfiles + sha512sums = 834fade5b901f9ca9b8c97b8c443491cbe81d3ffd243ae2a36a2209e542b10880d97576692d52de393d391a2da75e9d5ce69933754c337427fa0dfade10ab7ac + sha512sums = b1dd772f8802be99ccba3add5f1e6f78e5e79d0967342668dd12e472651a6b91c342f11fba330caaca421cc3d6c7e2011e09a6bd131f8ba14bbc4a6206cce539 + sha512sums = ac22af25fc08f5bf1b9acbb77bbb6b2bb7af12d78ff1ae99463c16f36f1dd5ebae3af1413e353634aed5275af0eefee41257eded7987e67ae6a9411999d5a2ba + +pkgname = ahriman diff --git a/ahriman/PKGBUILD b/ahriman/PKGBUILD new file mode 100644 index 0000000..3258614 --- /dev/null +++ b/ahriman/PKGBUILD @@ -0,0 +1,60 @@ +# Maintainer: Evgeniy Alekseev + +pkgname='ahriman' +pkgver=2.13.8 +pkgrel=1 +pkgdesc="ArcH linux ReposItory MANager" +arch=('any') +url="https://github.com/arcan1s/ahriman" +license=('GPL3') +depends=('devtools>=1:1.0.0' 'git' 'pyalpm' 'python-cerberus' 'python-inflection' 'python-passlib' 'python-requests' 'python-srcinfo') +makedepends=('python-build' 'python-flit' 'python-installer' 'python-wheel') +optdepends=('breezy: -bzr packages support' + 'darcs: -darcs packages support' + 'mercurial: -hg packages support' + 'python-aioauth-client: web server with OAuth2 authorization' + 'python-aiohttp: web server' + 'python-aiohttp-apispec>=3.0.0: web server' + 'python-aiohttp-cors: web server' + 'python-aiohttp-jinja2: web server' + 'python-aiohttp-security: web server with authorization' + 'python-aiohttp-session: web server with authorization' + 'python-boto3: sync to s3' + 'python-cryptography: web server with authorization' + 'python-requests-unixsocket: client report to web server by unix socket' + 'python-jinja: html report generation' + 'python-systemd: journal support' + 'rsync: sync by using rsync' + 'subversion: -svn packages support') +source=("https://github.com/arcan1s/ahriman/releases/download/$pkgver/$pkgname-$pkgver.tar.gz" + 'ahriman.sysusers' + 'ahriman.tmpfiles') +install="$pkgname.install" +backup=('etc/ahriman.ini' + 'etc/ahriman.ini.d/logging.ini') + +build() { + cd "$pkgname-$pkgver" + + python -m build --wheel --no-isolation +} + +package() { + cd "$pkgname-$pkgver" + + python -m installer --destdir="$pkgdir" "dist/$pkgname-$pkgver-py3-none-any.whl" + + # thanks too PEP517, which we all wanted, you need to install data files manually nowadays + pushd package && find . \( -type f -or -type l \) -exec install -Dm644 "{}" "$pkgdir/usr/{}" \; && popd + + # 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" +} + +sha512sums=('834fade5b901f9ca9b8c97b8c443491cbe81d3ffd243ae2a36a2209e542b10880d97576692d52de393d391a2da75e9d5ce69933754c337427fa0dfade10ab7ac' + 'b1dd772f8802be99ccba3add5f1e6f78e5e79d0967342668dd12e472651a6b91c342f11fba330caaca421cc3d6c7e2011e09a6bd131f8ba14bbc4a6206cce539' + 'ac22af25fc08f5bf1b9acbb77bbb6b2bb7af12d78ff1ae99463c16f36f1dd5ebae3af1413e353634aed5275af0eefee41257eded7987e67ae6a9411999d5a2ba') diff --git a/ahriman/ahriman.install b/ahriman/ahriman.install new file mode 100644 index 0000000..b59cbe3 --- /dev/null +++ b/ahriman/ahriman.install @@ -0,0 +1,42 @@ +post_upgrade() { + local breakpoints=( + 2.9.0-1 + 2.12.0-1 + ) + + for v in "${breakpoints[@]}"; do + if [[ $(vercmp "$v" "$2") -ne "-1" ]]; then + "_${v//[.-]/_}_changes" + fi + done +} + +_2_9_0_1_changes() { + cat << EOF +It was found that there was an upgrade from old devtools package to the new one, which requires manual intervention: + +* make sure that devtools are upgraded to the latest release; +* merge upstream configuration into local configuration (e.g. by using pacdiff); +* run setup command (i.e. ahriman service-setup) with the same arguments as did before; +* remove build chroot, e.g.: ahriman service-clean --chroot; +* update local databases: ahriman update --no-aur --no-local --no-manual -yy. + +For more information kindly refer to migration notes https://ahriman.readthedocs.io/en/stable/migration.html. +EOF +} + +_2_12_0_1_changes() { + cat << EOF +Whereas old local tree is still supported it is highly recommended to migrate to the new one: + +* stop and disable all services; +* run service-tree-migrate as ahriman user; +* edit local configuration to avoid pointing to the old paths; +* run setup command (i.e. ahriman service-setup) with the same arguments as did before; +* update remote services in order to support new paths (or setup redirects) if any; +* enable web and timer services again by using x86_64-aur-clone suffix, + where x86_64 is the repository architecture and aur-clone is the repository name. + +For more information kindly refer to migration notes https://ahriman.readthedocs.io/en/stable/migration.html. +EOF +} diff --git a/ahriman/ahriman.sysusers b/ahriman/ahriman.sysusers new file mode 100644 index 0000000..4949913 --- /dev/null +++ b/ahriman/ahriman.sysusers @@ -0,0 +1 @@ +u ahriman 643 "ArcH linux ReposItory MANager" /var/lib/ahriman diff --git a/ahriman/ahriman.tmpfiles b/ahriman/ahriman.tmpfiles new file mode 100644 index 0000000..6a1b6ba --- /dev/null +++ b/ahriman/ahriman.tmpfiles @@ -0,0 +1 @@ +d /var/lib/ahriman 0755 ahriman ahriman \ No newline at end of file