Compare commits

...

4 Commits

Author SHA1 Message Date
d5088c3d64 chore(aur): update owlry-plugin-weather to 1.0.3 2026-04-05 18:07:07 +02:00
f613dcb2d1 chore(owlry-plugin-weather): bump version to 1.0.3 2026-04-05 18:07:02 +02:00
da5085e0d2 fix: switch reqwest TLS backend from rustls to native-tls
reqwest 0.13 defaults to rustls -> aws-lc-rs which requires cmake/nasm
in minimal build environments. Switch owlry-plugin-weather to native-tls
(system OpenSSL). Also add scripts/aur-local-test for clean chroot
testing and .gitignore for build artifact exclusion.
2026-04-05 18:06:56 +02:00
d10fa3cdce chore(aur): bump all plugins to 1.0.2 2026-03-28 13:41:24 +01:00
26 changed files with 525 additions and 731 deletions

798
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-bookmarks pkgbase = owlry-plugin-bookmarks
pkgdesc = Bookmarks plugin for Owlry — search and launch browser bookmarks (Firefox, Chrome, Chromium) pkgdesc = Bookmarks plugin for Owlry — search and launch browser bookmarks (Firefox, Chrome, Chromium)
pkgver = 1.0.1 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-bookmarks.install install = owlry-plugin-bookmarks.install
@@ -11,7 +11,7 @@ pkgbase = owlry-plugin-bookmarks
optdepends = firefox: Firefox bookmarks support optdepends = firefox: Firefox bookmarks support
optdepends = chromium: Chromium bookmarks support optdepends = chromium: Chromium bookmarks support
optdepends = google-chrome: Chrome bookmarks support optdepends = google-chrome: Chrome bookmarks support
source = owlry-plugin-bookmarks-1.0.1.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-bookmarks-v1.0.1.tar.gz source = owlry-plugin-bookmarks-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-bookmarks-v1.0.2.tar.gz
b2sums = 1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-bookmarks pkgname = owlry-plugin-bookmarks

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-bookmarks pkgname=owlry-plugin-bookmarks
pkgver=1.0.1 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Bookmarks plugin for Owlry — search and launch browser bookmarks (Firefox, Chrome, Chromium)" pkgdesc="Bookmarks plugin for Owlry — search and launch browser bookmarks (Firefox, Chrome, Chromium)"
arch=('x86_64') arch=('x86_64')
@@ -15,7 +15,7 @@ optdepends=(
'google-chrome: Chrome bookmarks support' 'google-chrome: Chrome bookmarks support'
) )
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-bookmarks _cratename=owlry-plugin-bookmarks

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-clipboard pkgbase = owlry-plugin-clipboard
pkgdesc = Clipboard history plugin for Owlry — search and paste previous clipboard entries pkgdesc = Clipboard history plugin for Owlry — search and paste previous clipboard entries
pkgver = 1.0.0 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-clipboard.install install = owlry-plugin-clipboard.install
@@ -10,7 +10,7 @@ pkgbase = owlry-plugin-clipboard
depends = owlry-core depends = owlry-core
depends = cliphist depends = cliphist
depends = wl-clipboard depends = wl-clipboard
source = owlry-plugin-clipboard-1.0.0.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-clipboard-v1.0.0.tar.gz source = owlry-plugin-clipboard-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-clipboard-v1.0.2.tar.gz
b2sums = 3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-clipboard pkgname = owlry-plugin-clipboard

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-clipboard pkgname=owlry-plugin-clipboard
pkgver=1.0.0 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Clipboard history plugin for Owlry — search and paste previous clipboard entries" pkgdesc="Clipboard history plugin for Owlry — search and paste previous clipboard entries"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core' 'cliphist' 'wl-clipboard')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-clipboard.install install=owlry-plugin-clipboard.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-clipboard _cratename=owlry-plugin-clipboard

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-emoji pkgbase = owlry-plugin-emoji
pkgdesc = Emoji picker plugin for Owlry — search and insert emoji characters pkgdesc = Emoji picker plugin for Owlry — search and insert emoji characters
pkgver = 1.0.1 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-emoji.install install = owlry-plugin-emoji.install
@@ -10,7 +10,7 @@ pkgbase = owlry-plugin-emoji
depends = owlry-core depends = owlry-core
depends = wl-clipboard depends = wl-clipboard
depends = noto-fonts-emoji depends = noto-fonts-emoji
source = owlry-plugin-emoji-1.0.1.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-emoji-v1.0.1.tar.gz source = owlry-plugin-emoji-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-emoji-v1.0.2.tar.gz
b2sums = 1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-emoji pkgname = owlry-plugin-emoji

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-emoji pkgname=owlry-plugin-emoji
pkgver=1.0.1 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Emoji picker plugin for Owlry — search and insert emoji characters" pkgdesc="Emoji picker plugin for Owlry — search and insert emoji characters"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core' 'wl-clipboard' 'noto-fonts-emoji')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-emoji.install install=owlry-plugin-emoji.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-emoji _cratename=owlry-plugin-emoji

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-filesearch pkgbase = owlry-plugin-filesearch
pkgdesc = File search plugin for Owlry — find files using fd or mlocate pkgdesc = File search plugin for Owlry — find files using fd or mlocate
pkgver = 1.0.0 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-filesearch.install install = owlry-plugin-filesearch.install
@@ -10,7 +10,7 @@ pkgbase = owlry-plugin-filesearch
depends = owlry-core depends = owlry-core
optdepends = fd: fast file finding (recommended) optdepends = fd: fast file finding (recommended)
optdepends = mlocate: locate-based file search optdepends = mlocate: locate-based file search
source = owlry-plugin-filesearch-1.0.0.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-filesearch-v1.0.0.tar.gz source = owlry-plugin-filesearch-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-filesearch-v1.0.2.tar.gz
b2sums = 3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-filesearch pkgname = owlry-plugin-filesearch

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-filesearch pkgname=owlry-plugin-filesearch
pkgver=1.0.0 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="File search plugin for Owlry — find files using fd or mlocate" pkgdesc="File search plugin for Owlry — find files using fd or mlocate"
arch=('x86_64') arch=('x86_64')
@@ -14,7 +14,7 @@ optdepends=(
'mlocate: locate-based file search' 'mlocate: locate-based file search'
) )
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-filesearch _cratename=owlry-plugin-filesearch

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-media pkgbase = owlry-plugin-media
pkgdesc = Media controls plugin for Owlry — control MPRIS-compatible media players pkgdesc = Media controls plugin for Owlry — control MPRIS-compatible media players
pkgver = 1.0.0 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-media.install install = owlry-plugin-media.install
@@ -9,7 +9,7 @@ pkgbase = owlry-plugin-media
makedepends = cargo makedepends = cargo
depends = owlry-core depends = owlry-core
depends = playerctl depends = playerctl
source = owlry-plugin-media-1.0.0.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-media-v1.0.0.tar.gz source = owlry-plugin-media-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-media-v1.0.2.tar.gz
b2sums = 3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-media pkgname = owlry-plugin-media

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-media pkgname=owlry-plugin-media
pkgver=1.0.0 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Media controls plugin for Owlry — control MPRIS-compatible media players" pkgdesc="Media controls plugin for Owlry — control MPRIS-compatible media players"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core' 'playerctl')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-media.install install=owlry-plugin-media.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-media _cratename=owlry-plugin-media

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-pomodoro pkgbase = owlry-plugin-pomodoro
pkgdesc = Pomodoro timer widget for Owlry — track focus and break intervals pkgdesc = Pomodoro timer widget for Owlry — track focus and break intervals
pkgver = 1.0.0 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-pomodoro.install install = owlry-plugin-pomodoro.install
@@ -8,7 +8,7 @@ pkgbase = owlry-plugin-pomodoro
license = GPL-3.0-or-later license = GPL-3.0-or-later
makedepends = cargo makedepends = cargo
depends = owlry-core depends = owlry-core
source = owlry-plugin-pomodoro-1.0.0.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-pomodoro-v1.0.0.tar.gz source = owlry-plugin-pomodoro-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-pomodoro-v1.0.2.tar.gz
b2sums = 3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-pomodoro pkgname = owlry-plugin-pomodoro

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-pomodoro pkgname=owlry-plugin-pomodoro
pkgver=1.0.0 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Pomodoro timer widget for Owlry — track focus and break intervals" pkgdesc="Pomodoro timer widget for Owlry — track focus and break intervals"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-pomodoro.install install=owlry-plugin-pomodoro.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-pomodoro _cratename=owlry-plugin-pomodoro

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-scripts pkgbase = owlry-plugin-scripts
pkgdesc = Scripts plugin for Owlry — launch custom scripts from a configured directory pkgdesc = Scripts plugin for Owlry — launch custom scripts from a configured directory
pkgver = 1.0.0 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-scripts.install install = owlry-plugin-scripts.install
@@ -8,7 +8,7 @@ pkgbase = owlry-plugin-scripts
license = GPL-3.0-or-later license = GPL-3.0-or-later
makedepends = cargo makedepends = cargo
depends = owlry-core depends = owlry-core
source = owlry-plugin-scripts-1.0.0.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-scripts-v1.0.0.tar.gz source = owlry-plugin-scripts-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-scripts-v1.0.2.tar.gz
b2sums = 3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-scripts pkgname = owlry-plugin-scripts

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-scripts pkgname=owlry-plugin-scripts
pkgver=1.0.0 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Scripts plugin for Owlry — launch custom scripts from a configured directory" pkgdesc="Scripts plugin for Owlry — launch custom scripts from a configured directory"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-scripts.install install=owlry-plugin-scripts.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-scripts _cratename=owlry-plugin-scripts

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-ssh pkgbase = owlry-plugin-ssh
pkgdesc = SSH plugin for Owlry — quickly connect to SSH hosts from config pkgdesc = SSH plugin for Owlry — quickly connect to SSH hosts from config
pkgver = 1.0.1 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-ssh.install install = owlry-plugin-ssh.install
@@ -9,7 +9,7 @@ pkgbase = owlry-plugin-ssh
makedepends = cargo makedepends = cargo
depends = owlry-core depends = owlry-core
depends = openssh depends = openssh
source = owlry-plugin-ssh-1.0.1.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-ssh-v1.0.1.tar.gz source = owlry-plugin-ssh-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-ssh-v1.0.2.tar.gz
b2sums = 1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-ssh pkgname = owlry-plugin-ssh

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-ssh pkgname=owlry-plugin-ssh
pkgver=1.0.1 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="SSH plugin for Owlry — quickly connect to SSH hosts from config" pkgdesc="SSH plugin for Owlry — quickly connect to SSH hosts from config"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core' 'openssh')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-ssh.install install=owlry-plugin-ssh.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-ssh _cratename=owlry-plugin-ssh

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-systemd pkgbase = owlry-plugin-systemd
pkgdesc = Systemd plugin for Owlry — manage systemd user services pkgdesc = Systemd plugin for Owlry — manage systemd user services
pkgver = 1.0.0 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-systemd.install install = owlry-plugin-systemd.install
@@ -9,7 +9,7 @@ pkgbase = owlry-plugin-systemd
makedepends = cargo makedepends = cargo
depends = owlry-core depends = owlry-core
depends = systemd depends = systemd
source = owlry-plugin-systemd-1.0.0.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-systemd-v1.0.0.tar.gz source = owlry-plugin-systemd-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-systemd-v1.0.2.tar.gz
b2sums = 3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-systemd pkgname = owlry-plugin-systemd

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-systemd pkgname=owlry-plugin-systemd
pkgver=1.0.0 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Systemd plugin for Owlry — manage systemd user services" pkgdesc="Systemd plugin for Owlry — manage systemd user services"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core' 'systemd')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-systemd.install install=owlry-plugin-systemd.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-systemd _cratename=owlry-plugin-systemd

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-weather pkgbase = owlry-plugin-weather
pkgdesc = Weather widget for Owlry — display current weather conditions pkgdesc = Weather widget for Owlry — display current weather conditions
pkgver = 1.0.0 pkgver = 1.0.3
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-weather.install install = owlry-plugin-weather.install
@@ -8,7 +8,8 @@ pkgbase = owlry-plugin-weather
license = GPL-3.0-or-later license = GPL-3.0-or-later
makedepends = cargo makedepends = cargo
depends = owlry-core depends = owlry-core
source = owlry-plugin-weather-1.0.0.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-weather-v1.0.0.tar.gz depends = openssl
b2sums = 3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98 source = owlry-plugin-weather-1.0.3.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-weather-v1.0.3.tar.gz
b2sums = a0988b7eb5496a1b9f0f5a9936b84990c79736b66da26de06e63d542bf4b0d9e2a382e0257c3237f67fdd41a278d0a8a38e683361f50cb0dcf0c6afe8d6ac7cd
pkgname = owlry-plugin-weather pkgname = owlry-plugin-weather

View File

@@ -1,16 +1,16 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-weather pkgname=owlry-plugin-weather
pkgver=1.0.0 pkgver=1.0.3
pkgrel=1 pkgrel=1
pkgdesc="Weather widget for Owlry — display current weather conditions" pkgdesc="Weather widget for Owlry — display current weather conditions"
arch=('x86_64') arch=('x86_64')
url="https://somegit.dev/Owlibou/owlry-plugins" url="https://somegit.dev/Owlibou/owlry-plugins"
license=('GPL-3.0-or-later') license=('GPL-3.0-or-later')
depends=('owlry-core') depends=('owlry-core' 'openssl')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-weather.install install=owlry-plugin-weather.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('3d9a096485d5dea487a69fd48019eb5cddf2781bda5acce0503ecc5f19412f274b3a6f60a1922c35bd7855e4f72eaacb131d8affd0ee21d00e213345134a1b98') b2sums=('a0988b7eb5496a1b9f0f5a9936b84990c79736b66da26de06e63d542bf4b0d9e2a382e0257c3237f67fdd41a278d0a8a38e683361f50cb0dcf0c6afe8d6ac7cd')
_cratename=owlry-plugin-weather _cratename=owlry-plugin-weather

View File

@@ -1,6 +1,6 @@
pkgbase = owlry-plugin-websearch pkgbase = owlry-plugin-websearch
pkgdesc = Web search plugin for Owlry — search DuckDuckGo, Google, and custom engines pkgdesc = Web search plugin for Owlry — search DuckDuckGo, Google, and custom engines
pkgver = 1.0.1 pkgver = 1.0.2
pkgrel = 1 pkgrel = 1
url = https://somegit.dev/Owlibou/owlry-plugins url = https://somegit.dev/Owlibou/owlry-plugins
install = owlry-plugin-websearch.install install = owlry-plugin-websearch.install
@@ -8,7 +8,7 @@ pkgbase = owlry-plugin-websearch
license = GPL-3.0-or-later license = GPL-3.0-or-later
makedepends = cargo makedepends = cargo
depends = owlry-core depends = owlry-core
source = owlry-plugin-websearch-1.0.1.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-websearch-v1.0.1.tar.gz source = owlry-plugin-websearch-1.0.2.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/owlry-plugin-websearch-v1.0.2.tar.gz
b2sums = 1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9 b2sums = ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd
pkgname = owlry-plugin-websearch pkgname = owlry-plugin-websearch

View File

@@ -1,6 +1,6 @@
# Maintainer: vikingowl <christian@nachtigall.dev> # Maintainer: vikingowl <christian@nachtigall.dev>
pkgname=owlry-plugin-websearch pkgname=owlry-plugin-websearch
pkgver=1.0.1 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc="Web search plugin for Owlry — search DuckDuckGo, Google, and custom engines" pkgdesc="Web search plugin for Owlry — search DuckDuckGo, Google, and custom engines"
arch=('x86_64') arch=('x86_64')
@@ -10,7 +10,7 @@ depends=('owlry-core')
makedepends=('cargo') makedepends=('cargo')
install=owlry-plugin-websearch.install install=owlry-plugin-websearch.install
source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://somegit.dev/Owlibou/owlry-plugins/archive/$pkgname-v$pkgver.tar.gz")
b2sums=('1ae495d6dc9dce479f9676b4bfddc410bfc9be0f3f6b99f0626f007e15de55a52c4630a3facdb9671d0aaef61d30ab1fc27401476c6934371d68da6000e7e1a9') b2sums=('ce86d6ca5cfb8ce6b57bd998fe2e6c242d2e09f147f3d97bd2de5eedbfd4d081f7bb196d930da8d7158a07771b5b3b6e3e29fe79726c248d30c5a494e1bf63dd')
_cratename=owlry-plugin-websearch _cratename=owlry-plugin-websearch

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "owlry-plugin-weather" name = "owlry-plugin-weather"
version = "1.0.2" version = "1.0.3"
edition.workspace = true edition.workspace = true
rust-version.workspace = true rust-version.workspace = true
license.workspace = true license.workspace = true
@@ -20,7 +20,7 @@ owlry-plugin-api = { git = "https://somegit.dev/Owlibou/owlry.git", tag = "plugi
abi_stable = "0.11" abi_stable = "0.11"
# HTTP client for weather API requests # HTTP client for weather API requests
reqwest = { version = "0.13", features = ["blocking", "json"] } reqwest = { version = "0.13", default-features = false, features = ["native-tls", "blocking", "json"] }
# JSON parsing for API responses # JSON parsing for API responses
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }

View File

@@ -244,6 +244,7 @@ release-plugin crate new_version:
# === Testing === # === Testing ===
# Quick local build test (no chroot, uses host deps)
aur-test-pkg pkg: aur-test-pkg pkg:
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
@@ -252,3 +253,14 @@ aur-test-pkg pkg:
makepkg -sf makepkg -sf
echo "Package built successfully!" echo "Package built successfully!"
ls -lh *.pkg.tar.zst ls -lh *.pkg.tar.zst
# Build AUR packages from the local working tree in a clean chroot.
# Packages current source (incl. uncommitted changes), patches PKGBUILD,
# builds in dep order, injects local artifacts, restores PKGBUILD on exit.
# owlry-core is not in the official repos — inject it with -I:
#
# Examples:
# just aur-local-test -I ../owlry/aur/owlry-core/owlry-core-*.pkg.tar.zst owlry-plugin-weather
# just aur-local-test -I ../owlry/aur/owlry-core/owlry-core-*.pkg.tar.zst --all
aur-local-test *args:
scripts/aur-local-test {{args}}

329
scripts/aur-local-test Executable file
View File

@@ -0,0 +1,329 @@
#!/usr/bin/env bash
# scripts/aur-local-test
#
# Build AUR packages from the local working tree in a clean extra chroot.
#
# Packages the current working tree (including uncommitted changes) into a
# tarball, temporarily patches each PKGBUILD to use it, runs
# extra-x86_64-build, then restores the PKGBUILD on exit regardless of
# success or failure.
#
# Packages with local AUR deps (e.g. owlry-rune depends on owlry-core) are
# built in topological order and their artifacts injected automatically.
#
# Usage: scripts/aur-local-test [OPTIONS] [PKG...]
# See --help for details.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(git -C "$SCRIPT_DIR" rev-parse --show-toplevel)"
REPO_NAME="$(basename "$REPO_ROOT")"
AUR_DIR="$REPO_ROOT/aur"
# State tracked for cleanup
TMP_TARBALL=""
declare -a PKGBUILD_BACKUPS=()
declare -a PLACED_FILES=()
# Build config
RESET_CHROOT=0
declare -a INPUT_PKGS=()
declare -a EXTRA_INJECT=() # --inject paths (external AUR deps)
# ─── Output helpers ──────────────────────────────────────────────────────────
die() { echo "error: $*" >&2; exit 1; }
info() { printf '\033[1;34m==>\033[0m %s\n' "$*"; }
ok() { printf '\033[1;32m ->\033[0m %s\n' "$*"; }
warn() { printf '\033[1;33m !\033[0m %s\n' "$*" >&2; }
fail() { printf '\033[1;31mFAIL\033[0m %s\n' "$*" >&2; }
# ─── Cleanup ─────────────────────────────────────────────────────────────────
cleanup() {
local code=$?
local f pkgbuild
# Remove tarballs placed in aur/ dirs
for f in "${PLACED_FILES[@]+"${PLACED_FILES[@]}"}"; do
[[ -f "$f" ]] && rm -f "$f"
done
# Restore patched PKGBUILDs from backups
for f in "${PKGBUILD_BACKUPS[@]+"${PKGBUILD_BACKUPS[@]}"}"; do
pkgbuild="${f%.bak}"
[[ -f "$f" ]] && mv "$f" "$pkgbuild"
done
[[ -n "$TMP_TARBALL" && -f "$TMP_TARBALL" ]] && rm -f "$TMP_TARBALL"
exit "$code"
}
trap cleanup EXIT INT TERM
# ─── Usage ───────────────────────────────────────────────────────────────────
usage() {
cat >&2 <<EOF
Usage: $(basename "$0") [OPTIONS] [PKG...]
Build AUR packages from the local working tree in a clean chroot.
Packages current working tree (incl. uncommitted changes), patches PKGBUILD
source + checksum, runs extra-x86_64-build, then restores on exit.
Packages with local AUR deps are built in topological order and their
.pkg.tar.zst artifacts are injected into dependent builds automatically.
OPTIONS
-c, --reset Reset chroot matrix (passes -c to extra-x86_64-build).
Only applied to the first package; subsequent builds
reuse the already-fresh chroot.
-a, --all Build all packages in aur/ (respects dep order).
-I, --inject FILE Inject FILE (.pkg.tar.zst) into the chroot before
building. For AUR deps not in the official repos
(e.g. owlry-core when testing owlry-plugins).
Can be repeated.
-h, --help Show this help.
EXAMPLES
# Single package
$(basename "$0") owlry-core
# Multiple packages with chroot reset
$(basename "$0") -c owlry-core owlry-rune
# All packages in dependency order
$(basename "$0") --all --reset
# owlry-plugins: inject owlry-core from sibling repo
$(basename "$0") -I ../owlry/aur/owlry-core/owlry-core-*.pkg.tar.zst --all
EOF
exit 1
}
# ─── Argument parsing ────────────────────────────────────────────────────────
while [[ $# -gt 0 ]]; do
case "$1" in
-c|--reset)
RESET_CHROOT=1
shift ;;
-a|--all)
for dir in "$AUR_DIR"/*/; do
pkg=$(basename "$dir")
[[ -f "$dir/PKGBUILD" ]] && INPUT_PKGS+=("$pkg")
done
shift ;;
-I|--inject)
[[ $# -ge 2 ]] || die "--inject requires an argument"
[[ -f "$2" ]] || die "inject file not found: $2"
EXTRA_INJECT+=("$(realpath "$2")")
shift 2 ;;
-h|--help) usage ;;
-*) die "unknown option: $1" ;;
*)
if [[ "$1" == *.pkg.tar.zst ]]; then
[[ -f "$1" ]] || die "inject file not found: $1"
EXTRA_INJECT+=("$(realpath "$1")")
else
INPUT_PKGS+=("$1")
fi
shift ;;
esac
done
[[ ${#INPUT_PKGS[@]} -eq 0 ]] && usage
# ─── Dependency resolution ───────────────────────────────────────────────────
# Return the names of local AUR packages that PKG depends on.
local_deps_of() {
local pkg="$1"
local pkgbuild="$AUR_DIR/$pkg/PKGBUILD"
[[ -f "$pkgbuild" ]] || return 0
local dep_line bare
dep_line=$(grep '^depends=' "$pkgbuild" 2>/dev/null | head -1 || true)
[[ -z "$dep_line" ]] && return 0
# Strip depends=, parens, and quotes; split on whitespace
echo "$dep_line" \
| sed "s/^depends=//; s/[()\"']/ /g" \
| tr ' ' '\n' \
| while IFS= read -r dep; do
[[ -z "$dep" ]] && continue
bare="${dep%%[><=]*}" # strip version constraints
[[ -d "$AUR_DIR/$bare" ]] && echo "$bare"
done
}
# Topological sort (DFS) — deps before dependents.
declare -A TOPO_VISITED=()
declare -a TOPO_ORDER=()
topo_visit() {
local pkg="$1"
[[ -v "TOPO_VISITED[$pkg]" ]] && return 0
TOPO_VISITED[$pkg]=1
local dep
while IFS= read -r dep; do
topo_visit "$dep"
done < <(local_deps_of "$pkg")
TOPO_ORDER+=("$pkg")
}
resolve_order() {
TOPO_VISITED=()
TOPO_ORDER=()
local pkg
for pkg in "$@"; do
topo_visit "$pkg"
done
}
# ─── Tarball creation ────────────────────────────────────────────────────────
make_tarball() {
TMP_TARBALL=$(mktemp /tmp/aur-local-XXXXXX.tar.gz)
info "Packaging ${REPO_NAME} working tree (incl. uncommitted changes)..."
tar czf "$TMP_TARBALL" \
--exclude='.git' \
--exclude='target' \
--transform "s|^\.|${REPO_NAME}|" \
-C "$REPO_ROOT" .
ok "Tarball ready: $(du -b "$TMP_TARBALL" | cut -f1 | numfmt --to=iec 2>/dev/null || wc -c < "$TMP_TARBALL") bytes"
}
# ─── PKGBUILD patching ───────────────────────────────────────────────────────
# Patch a package's PKGBUILD to use the local tarball.
# Backs up the original; cleanup() restores it on exit.
patch_pkgbuild() {
local pkg="$1"
local pkgbuild="$AUR_DIR/$pkg/PKGBUILD"
local pkgdir="$AUR_DIR/$pkg"
# Skip packages with no remote source (meta/group packages)
if ! grep -q '^source=' "$pkgbuild" || grep -qE '^source=\(\s*\)' "$pkgbuild"; then
ok "No source URL to patch — skipping tarball injection for $pkg"
return 0
fi
local pkgname pkgver filename hash
pkgname=$(grep '^pkgname=' "$pkgbuild" | cut -d= -f2- | tr -d "\"'")
pkgver=$(grep '^pkgver=' "$pkgbuild" | cut -d= -f2- | tr -d "\"'")
filename="${pkgname}-${pkgver}.tar.gz"
hash=$(b2sum "$TMP_TARBALL" | cut -d' ' -f1)
# Backup original PKGBUILD
cp "$pkgbuild" "${pkgbuild}.bak"
PKGBUILD_BACKUPS+=("${pkgbuild}.bak")
# Place local tarball where makepkg looks for it
cp "$TMP_TARBALL" "$pkgdir/$filename"
PLACED_FILES+=("$pkgdir/$filename")
# Patch source and checksum lines in-place
sed -i "s|^source=.*|source=(\"${filename}\")|" "$pkgbuild"
sed -i "s|^b2sums=.*|b2sums=('${hash}')|" "$pkgbuild"
ok "Patched PKGBUILD: source=${filename}, b2sum=${hash:0:12}…"
}
# ─── Build ───────────────────────────────────────────────────────────────────
# built_artifacts[pkg] = path to the .pkg.tar.zst produced in this run.
# Used to inject pkg artifacts into dependent builds.
declare -A BUILT_ARTIFACTS=()
find_artifact() {
local pkg="$1"
local pkgver
# pkgver is the same in patched and original PKGBUILD
pkgver=$(grep '^pkgver=' "$AUR_DIR/$pkg/PKGBUILD" | cut -d= -f2- | tr -d "\"'" \
|| grep '^pkgver=' "$AUR_DIR/$pkg/PKGBUILD.bak" | cut -d= -f2- | tr -d "\"'")
ls "$AUR_DIR/$pkg/${pkg}-${pkgver}-"*".pkg.tar.zst" 2>/dev/null \
| grep -v -- '-debug-' | sort -V | tail -1 || true
}
build_one() {
local pkg="$1"
local pkgdir="$AUR_DIR/$pkg"
info "[$pkg] Patching PKGBUILD..."
patch_pkgbuild "$pkg"
# Collect inject args: extra (external) + artifacts of local deps built earlier
local inject=()
for f in "${EXTRA_INJECT[@]+"${EXTRA_INJECT[@]}"}"; do
inject+=("-I" "$f")
done
while IFS= read -r dep; do
if [[ -v "BUILT_ARTIFACTS[$dep]" ]]; then
inject+=("-I" "${BUILT_ARTIFACTS[$dep]}")
else
warn "$pkg depends on $dep (local AUR) which was not built in this run"
warn " → Build $dep first or pass: -I path/to/${dep}-*.pkg.tar.zst"
fi
done < <(local_deps_of "$pkg")
# Build args: -c only on the first package, then cleared
local build_args=()
if [[ $RESET_CHROOT -eq 1 ]]; then
build_args+=("-c")
RESET_CHROOT=0
fi
info "[$pkg] Running extra-x86_64-build..."
(
cd "$pkgdir"
if [[ ${#inject[@]} -gt 0 ]]; then
extra-x86_64-build "${build_args[@]+"${build_args[@]}"}" -- "${inject[@]}"
else
extra-x86_64-build "${build_args[@]+"${build_args[@]}"}"
fi
)
# Record artifact for potential injection into dependents
local artifact
artifact=$(find_artifact "$pkg")
if [[ -n "$artifact" ]]; then
BUILT_ARTIFACTS[$pkg]="$artifact"
ok "[$pkg] artifact: $(basename "$artifact")"
fi
}
# ─── Main ────────────────────────────────────────────────────────────────────
# Validate all requested packages exist
for pkg in "${INPUT_PKGS[@]}"; do
[[ -d "$AUR_DIR/$pkg" && -f "$AUR_DIR/$pkg/PKGBUILD" ]] \
|| die "package not found: aur/$pkg/PKGBUILD"
done
# Sort into build order (deps before dependents)
resolve_order "${INPUT_PKGS[@]}"
# Create one tarball, reused for all packages in this run
make_tarball
declare -a FAILED=()
for pkg in "${TOPO_ORDER[@]}"; do
echo ""
if build_one "$pkg"; then
:
else
fail "[$pkg]"
FAILED+=("$pkg")
fi
done
echo ""
if [[ ${#FAILED[@]} -gt 0 ]]; then
fail "packages failed: ${FAILED[*]}"
exit 1
fi
info "All packages built successfully!"