summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-10-12 16:39:21 +0200
committermetamuffin <metamuffin@disroot.org>2024-10-12 16:39:21 +0200
commita9fd82ae18eb67f6288d46d40bc893598922d181 (patch)
tree0f8f2d2cef42fcac145d5beb097e76197bc6f232
downloadpkgbuilds-a9fd82ae18eb67f6288d46d40bc893598922d181.tar
pkgbuilds-a9fd82ae18eb67f6288d46d40bc893598922d181.tar.bz2
pkgbuilds-a9fd82ae18eb67f6288d46d40bc893598922d181.tar.zst
add existing pkgbuilds
-rw-r--r--conduit-git/PKGBUILD42
-rw-r--r--conduit-git/conduit.service55
-rw-r--r--conduit-git/config.toml13
-rw-r--r--conduit-git/sysusers.conf1
-rw-r--r--conduit-git/tmpfiles.conf3
-rw-r--r--fastbangs-git/.gitignore5
-rw-r--r--fastbangs-git/PKGBUILD39
-rw-r--r--fastbangs-git/fastbangs.install5
-rw-r--r--fastbangs-git/fastbangs.service33
-rw-r--r--fastbangs-git/sysusers.conf1
-rw-r--r--gnix-git/PKGBUILD41
-rw-r--r--gnix-git/config.yaml7
-rw-r--r--gnix-git/gnix.service34
-rw-r--r--gnix-git/sysusers.conf1
-rw-r--r--gnix/PKGBUILD36
-rw-r--r--gnix/config.yaml7
-rw-r--r--gnix/gnix.service34
-rw-r--r--gnix/sysusers.conf1
-rw-r--r--gpn-tron-git/PKGBUILD39
-rw-r--r--gpn-tron-git/gpn-tron.service32
-rw-r--r--gpn-tron-git/gpn-tron.toml14
-rw-r--r--gpn-tron-git/sysusers.conf1
-rw-r--r--hurrycurry-client-git/PKGBUILD37
-rw-r--r--hurrycurry-client-git/hurrycurry-client2
-rw-r--r--hurrycurry-client-git/hurrycurry-client.desktop12
-rw-r--r--hurrycurry-client-web-git/PKGBUILD29
-rw-r--r--hurrycurry-client-web/PKGBUILD23
-rw-r--r--hurrycurry-client/PKGBUILD31
-rw-r--r--hurrycurry-client/hurrycurry-client2
-rw-r--r--hurrycurry-client/hurrycurry-client.desktop12
-rw-r--r--hurrycurry-pixel-client-git/PKGBUILD38
-rw-r--r--hurrycurry-pixel-client-git/hurrycurry-pixel-client.desktop11
-rw-r--r--hurrycurry-server-git/PKGBUILD65
-rw-r--r--hurrycurry-server-git/hurrycurry-registry.service33
-rw-r--r--hurrycurry-server-git/hurrycurry.service34
-rw-r--r--hurrycurry-server-git/hurrycurry.yaml0
-rw-r--r--hurrycurry-server-git/sysusers.conf1
-rw-r--r--hurrycurry-server-git/tmpfiles.conf2
-rw-r--r--hurrycurry-server/PKGBUILD59
-rw-r--r--hurrycurry-server/hurrycurry-registry.service33
-rw-r--r--hurrycurry-server/hurrycurry.service34
-rw-r--r--hurrycurry-server/hurrycurry.yaml0
-rw-r--r--hurrycurry-server/sysusers.conf1
-rw-r--r--hurrycurry-server/tmpfiles.conf2
m---------i2p0
-rw-r--r--i2prouter-nowrapper/PKGBUILD20
-rw-r--r--i2prouter-nowrapper/i2prouter-wrapper11
-rw-r--r--i2prouter-nowrapper/service-dropin.conf7
-rw-r--r--jellything-git/PKGBUILD60
-rw-r--r--jellything-git/jellything.install7
-rw-r--r--jellything-git/jellything.service32
-rw-r--r--jellything-git/jellything.yaml13
-rw-r--r--jellything-git/jellything_secrets.yaml21
-rw-r--r--jellything-git/sysusers.conf1
-rw-r--r--keks-meet-server-git/PKGBUILD40
-rw-r--r--keks-meet-server-git/keks-meet-server.service34
-rw-r--r--keks-meet-server-git/sysusers.conf1
-rw-r--r--keks-meet-server/PKGBUILD34
-rw-r--r--keks-meet-server/keks-meet-server.service34
-rw-r--r--keks-meet-server/sysusers.conf1
-rw-r--r--mediamtx/.SRCINFO18
-rw-r--r--mediamtx/PKGBUILD40
-rw-r--r--mediamtx/mediamtx.service10
-rw-r--r--mediamtx/mediamtx@.service10
-rw-r--r--meta-adservices-git/PKGBUILD42
-rw-r--r--meta-adservices-git/meta_adservices.service32
-rw-r--r--meta-adservices-git/meta_adservices.toml5
-rw-r--r--meta-adservices-git/sysusers.conf1
-rw-r--r--metamuffin-blog-git/PKGBUILD21
-rw-r--r--metamuffin-website-git/PKGBUILD37
-rw-r--r--metamuffin-website-git/metamuffin-website.service33
-rw-r--r--metamuffin-website-git/sysusers.conf1
-rw-r--r--statuspage-git/PKGBUILD41
-rw-r--r--statuspage-git/statuspage.service32
-rw-r--r--statuspage-git/statuspage.yaml14
-rw-r--r--statuspage-git/sysusers.conf1
-rw-r--r--violet/PKGBUILD42
m---------ympd0
78 files changed, 1601 insertions, 0 deletions
diff --git a/conduit-git/PKGBUILD b/conduit-git/PKGBUILD
new file mode 100644
index 0000000..c5dbe93
--- /dev/null
+++ b/conduit-git/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=conduit-git
+pkgver=r2330.be1b8b68
+pkgrel=1
+pkgdesc="conduit matrix homeserver"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/conduit"
+license=('AGPL3')
+depends=('gcc-libs')
+makedepends=('rustup' 'clang')
+backup=('etc/conduit.toml')
+source=("git+https://gitlab.com/famedly/conduit.git"
+ "conduit.service"
+ "config.toml"
+ "tmpfiles.conf"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP")
+pkgver() {
+ cd "conduit"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "conduit"
+ cargo fetch --locked --target "$CHOST"
+}
+build() {
+ cd "conduit"
+ cargo build --frozen --release --target "$CHOST"
+}
+package() {
+ install -Dm755 conduit/target/$CHOST/release/conduit "$pkgdir/usr/bin/conduit"
+ install -Dm644 config.toml "$pkgdir/etc/conduit.toml"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/conduit.conf"
+ install -Dm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/conduit.conf"
+ install -Dm644 conduit.service "$pkgdir/usr/lib/systemd/system/conduit.service"
+ install -Dm644 conduit/LICENSE "$pkgdir/usr/share/licenses/conduit/LICENSE"
+}
diff --git a/conduit-git/conduit.service b/conduit-git/conduit.service
new file mode 100644
index 0000000..d39a33b
--- /dev/null
+++ b/conduit-git/conduit.service
@@ -0,0 +1,55 @@
+
+[Unit]
+Description=Conduit Matrix Homeserver
+After=network.target nss-lookup.target
+
+[Service]
+Type=notify
+ExecStart=/usr/bin/conduit-matrix
+ExecReload=/bin/kill -HUP ${MAINPID}
+TimeoutSec=10
+Restart=on-failure
+
+Environment="CONDUIT_CONFIG=/etc/conduit.toml"
+WorkingDirectory=/var/lib/conduit-matrix
+
+StartLimitInterval=1m
+StartLimitBurst=5
+
+AmbientCapabilities=
+CapabilityBoundingSet=
+LockPersonality=yes
+ProcSubset=pid
+ProtectProc=invisible
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=yes
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=strict
+PrivateDevices=yes
+PrivateMounts=yes
+PrivateTmp=yes
+PrivateUsers=yes
+RemoveIPC=yes
+RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
+RestrictNamespaces=yes
+RestrictRealtime=yes
+RestrictSUIDSGID=yes
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+SystemCallErrorNumber=EPERM
+StateDirectory=conduit-matrix
+RuntimeDirectory=conduit-matrix
+
+User=conduit-matrix
+Group=conduit-matrix
+ReadWriteDirectories=-/var/lib/conduit-matrix
+ReadWriteDirectories=-/var/log/conduit-matrix
+
+[Install]
+WantedBy=multi-user.target
diff --git a/conduit-git/config.toml b/conduit-git/config.toml
new file mode 100644
index 0000000..d72932c
--- /dev/null
+++ b/conduit-git/config.toml
@@ -0,0 +1,13 @@
+[global]
+server_name = "CHANGE THIS"
+database_path = "/var/lib/conduit-matrix/conduit_db"
+database_backend = "rocksdb"
+port = 6167
+address = "127.0.0.1"
+max_request_size = 20_000_000
+allow_registration = false
+registration_token = "CHANGE THIS"
+allow_encryption = true
+allow_federation = true
+enable_lightning_bolt = true
+trusted_servers = ["matrix.org"]
diff --git a/conduit-git/sysusers.conf b/conduit-git/sysusers.conf
new file mode 100644
index 0000000..feff1dc
--- /dev/null
+++ b/conduit-git/sysusers.conf
@@ -0,0 +1 @@
+u conduit - "conduit matrix homeserver" /var/lib/conduit-matrix -
diff --git a/conduit-git/tmpfiles.conf b/conduit-git/tmpfiles.conf
new file mode 100644
index 0000000..0647300
--- /dev/null
+++ b/conduit-git/tmpfiles.conf
@@ -0,0 +1,3 @@
+d /var/lib/conduit 0700 conduit conduit - -
+d /var/lib/conduit/conduit_db 0700 conduit conduit - -
+d /var/log/conduit 0700 conduit conduit - -
diff --git a/fastbangs-git/.gitignore b/fastbangs-git/.gitignore
new file mode 100644
index 0000000..fe201fa
--- /dev/null
+++ b/fastbangs-git/.gitignore
@@ -0,0 +1,5 @@
+*.tar.zst
+*.tar
+/pkg
+/src
+/fastbangs
diff --git a/fastbangs-git/PKGBUILD b/fastbangs-git/PKGBUILD
new file mode 100644
index 0000000..a4387f5
--- /dev/null
+++ b/fastbangs-git/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=fastbangs-git
+pkgver=r91.0ece6f0
+pkgrel=4
+pkgdesc="A search engine redirect service"
+arch=('x86_64')
+url="https://codeberg.org/lialenck/fastbangs"
+license=('AGPL-3.0-only')
+makedepends=('esbuild' 'sassc' 'stack-static' 'make')
+backup=('etc/fastbangs.yaml')
+install='fastbangs.install'
+source=("git+https://codeberg.org/lialenck/fastbangs"
+ "fastbangs.service"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "fastbangs"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "fastbangs"
+ make frontend/fuzzysort.js
+ stack setup
+}
+build() {
+ cd "fastbangs"
+ make
+}
+package() {
+ install -Dm755 fastbangs/deploy/fastbangs "$pkgdir/usr/bin/fastbangs"
+ install -Dm644 fastbangs/LICENSE.agpl "$pkgdir/usr/share/licenses/fastbangs/COPYING"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/fastbangs.conf"
+ install -Dm644 fastbangs.service "$pkgdir/usr/lib/systemd/system/fastbangs.service"
+ install -Dm644 fastbangs/fastbangs.yaml "$pkgdir/etc/fastbangs.yaml"
+}
diff --git a/fastbangs-git/fastbangs.install b/fastbangs-git/fastbangs.install
new file mode 100644
index 0000000..a60b4dc
--- /dev/null
+++ b/fastbangs-git/fastbangs.install
@@ -0,0 +1,5 @@
+post_install() {
+ mkdir -p /var/lib/fastbangs
+ chown -v fastbangs:fastbangs /var/lib/fastbangs
+ ln -svf "/etc/fastbangs.yaml" "/var/lib/fastbangs/fastbangs.yaml"
+}
diff --git a/fastbangs-git/fastbangs.service b/fastbangs-git/fastbangs.service
new file mode 100644
index 0000000..7ba3bb2
--- /dev/null
+++ b/fastbangs-git/fastbangs.service
@@ -0,0 +1,33 @@
+[Unit]
+Description=fastbangs search engine redirect service
+After=network.target
+Wants=network-online.target
+
+[Service]
+WorkingDirectory=/var/lib/fastbangs
+ExecStart=/usr/bin/fastbangs
+User=fastbangs
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/fastbangs-git/sysusers.conf b/fastbangs-git/sysusers.conf
new file mode 100644
index 0000000..a66b26f
--- /dev/null
+++ b/fastbangs-git/sysusers.conf
@@ -0,0 +1 @@
+u fastbangs - "fastbangs search engine redirect service" - -
diff --git a/gnix-git/PKGBUILD b/gnix-git/PKGBUILD
new file mode 100644
index 0000000..decaa4e
--- /dev/null
+++ b/gnix-git/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=gnix-git
+pkgver=r87.2a576e6
+pkgrel=1
+pkgdesc="a simple stupid http reverse proxy"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/gnix"
+license=('AGPL3')
+makedepends=('rustup')
+conflics=('gnix')
+provides=('gnix')
+backup=('etc/gnix.yaml')
+source=("git+https://codeberg.org/metamuffin/gnix.git"
+ "gnix.service"
+ "config.yaml"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP")
+pkgver() {
+ cd "gnix"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "gnix"
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "gnix"
+ cargo +nightly build --frozen --release --target "$CHOST"
+}
+package() {
+ install -Dm755 gnix/target/$CHOST/release/gnix "$pkgdir/usr/bin/gnix"
+ install -Dm644 gnix/src/modules/auth/login.html "$pkgdir/usr/share/gnix/login.html"
+ install -Dm644 config.yaml "$pkgdir/etc/gnix.yaml"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/gnix.conf"
+ install -Dm644 gnix.service "$pkgdir/usr/lib/systemd/system/gnix.service"
+ install -Dm644 gnix/COPYING "$pkgdir/usr/share/licenses/gnix/COPYING"
+}
diff --git a/gnix-git/config.yaml b/gnix-git/config.yaml
new file mode 100644
index 0000000..85dc121
--- /dev/null
+++ b/gnix-git/config.yaml
@@ -0,0 +1,7 @@
+http:
+ bind: "0.0.0.0:80"
+
+handler: !hosts
+ "example.org": !files
+ root: "/srv/http"
+ index: true
diff --git a/gnix-git/gnix.service b/gnix-git/gnix.service
new file mode 100644
index 0000000..95593f5
--- /dev/null
+++ b/gnix-git/gnix.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=gnix http reverse proxy
+After=network.target
+Wants=network-online.target
+
+[Service]
+AmbientCapabilities=CAP_NET_BIND_SERVICE
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+ExecStart=/usr/bin/gnix /etc/gnix.yaml
+User=gnix
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/gnix-git/sysusers.conf b/gnix-git/sysusers.conf
new file mode 100644
index 0000000..f452f5d
--- /dev/null
+++ b/gnix-git/sysusers.conf
@@ -0,0 +1 @@
+u gnix - "gnix http reverse proxy" - -
diff --git a/gnix/PKGBUILD b/gnix/PKGBUILD
new file mode 100644
index 0000000..d4bd744
--- /dev/null
+++ b/gnix/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=gnix
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="a simple stupid http reverse proxy"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/gnix"
+license=('AGPL3')
+makedepends=('rustup')
+backup=('etc/gnix.yaml')
+source=("$pkgname-$pkgver.tar.gz::https://codeberg.org/metamuffin/gnix/archive/v$pkgver.tar.gz"
+ "gnix.service"
+ "config.yaml"
+ "sysusers.conf")
+sha256sums=('9ff1ebbf496c7c1df613fc46820091b92775816785d0026ddced6012204e8b1c'
+ 'a80df54a4e44960decf43ad618dc1afef9cc498370460362e91646ac3f95358e'
+ 'dae3df7d0d521b075d16ab518bc321a63bc0ca7822b814aed6e00402577d380b'
+ '9e03be16b1b3dd4c0d0e5feb5c31221758b68a54bad5ba7232e8565d766ea620')
+
+prepare() {
+ cd "gnix"
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "gnix"
+ cargo +nightly build --frozen --release --target "$CHOST"
+}
+package() {
+ install -Dm755 gnix/target/$CHOST/release/gnix "$pkgdir/usr/bin/gnix"
+ install -Dm644 gnix/src/modules/auth/login.html "$pkgdir/usr/share/gnix/login.html"
+ install -Dm644 config.yaml "$pkgdir/etc/gnix.yaml"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/gnix.conf"
+ install -Dm644 gnix.service "$pkgdir/usr/lib/systemd/system/gnix.service"
+ install -Dm644 gnix/COPYING "$pkgdir/usr/share/licenses/gnix/COPYING"
+}
diff --git a/gnix/config.yaml b/gnix/config.yaml
new file mode 100644
index 0000000..85dc121
--- /dev/null
+++ b/gnix/config.yaml
@@ -0,0 +1,7 @@
+http:
+ bind: "0.0.0.0:80"
+
+handler: !hosts
+ "example.org": !files
+ root: "/srv/http"
+ index: true
diff --git a/gnix/gnix.service b/gnix/gnix.service
new file mode 100644
index 0000000..95593f5
--- /dev/null
+++ b/gnix/gnix.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=gnix http reverse proxy
+After=network.target
+Wants=network-online.target
+
+[Service]
+AmbientCapabilities=CAP_NET_BIND_SERVICE
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+ExecStart=/usr/bin/gnix /etc/gnix.yaml
+User=gnix
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/gnix/sysusers.conf b/gnix/sysusers.conf
new file mode 100644
index 0000000..f452f5d
--- /dev/null
+++ b/gnix/sysusers.conf
@@ -0,0 +1 @@
+u gnix - "gnix http reverse proxy" - -
diff --git a/gpn-tron-git/PKGBUILD b/gpn-tron-git/PKGBUILD
new file mode 100644
index 0000000..b0def43
--- /dev/null
+++ b/gpn-tron-git/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=gpn-tron-git
+pkgver=r21.12f974f
+pkgrel=1
+pkgdesc="GPN-Tron Rust rewrite"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/gpn-tron-rust"
+license=('AGPL-3.0-only')
+makedepends=('rustup' 'esbuild')
+backup=('etc/gpn-tron.toml')
+source=("gpn-tron::git+https://codeberg.org/metamuffin/gpn-tron-rust"
+ "gpn-tron.service"
+ "gpn-tron.toml"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "gpn-tron"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "gpn-tron"
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "gpn-tron"
+ cargo +nightly build --frozen --release --target "$CHOST"
+}
+package() {
+ install -Dm755 gpn-tron/target/$CHOST/release/gpn-tron "$pkgdir/usr/bin/gpn-tron"
+ install -Dm644 gpn-tron/COPYING "$pkgdir/usr/share/licenses/gpn-tron/COPYING"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/gpn-tron.conf"
+ install -Dm644 gpn-tron.service "$pkgdir/usr/lib/systemd/system/gpn-tron.service"
+ install -Dm644 gpn-tron.toml "$pkgdir/etc/gpn-tron.toml"
+}
diff --git a/gpn-tron-git/gpn-tron.service b/gpn-tron-git/gpn-tron.service
new file mode 100644
index 0000000..93e353d
--- /dev/null
+++ b/gpn-tron-git/gpn-tron.service
@@ -0,0 +1,32 @@
+[Unit]
+Description=GPN-Tron Rust rewrite
+After=network.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/gpn-tron /etc/gpn-tron.toml
+User=gpn-tron
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/gpn-tron-git/gpn-tron.toml b/gpn-tron-git/gpn-tron.toml
new file mode 100644
index 0000000..6f00cbe
--- /dev/null
+++ b/gpn-tron-git/gpn-tron.toml
@@ -0,0 +1,14 @@
+[spectate]
+bind = "0.0.0.0:3000"
+
+[game]
+bind = "0.0.0.0:4000"
+tickrate = 1
+tickrate_speedup = 0.1
+tickrate_max = 3
+
+[bot]
+amount = 2
+
+[database]
+path = "/tmp/trondb"
diff --git a/gpn-tron-git/sysusers.conf b/gpn-tron-git/sysusers.conf
new file mode 100644
index 0000000..927518f
--- /dev/null
+++ b/gpn-tron-git/sysusers.conf
@@ -0,0 +1 @@
+u gpn-tron - "gpn-tron game server daemon" - -
diff --git a/hurrycurry-client-git/PKGBUILD b/hurrycurry-client-git/PKGBUILD
new file mode 100644
index 0000000..4a282aa
--- /dev/null
+++ b/hurrycurry-client-git/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=hurrycurry-client-git
+pkgver=r1782.4b2e56f
+pkgrel=2
+pkgdesc="A game about cooking (client)"
+arch=('any')
+url="https://codeberg.org/hurrycurry/hurrycurry"
+license=('AGPL3')
+depends=('godot')
+makedepends=('godot')
+conflics=('hurrycurry-client')
+provides=('hurrycurry-client')
+source=("git+https://codeberg.org/hurrycurry/hurrycurry.git"
+ "hurrycurry-client"
+ "hurrycurry-client.desktop")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "hurrycurry"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+build() {
+ cd "hurrycurry"
+ make client
+ mkdir -p target/release
+ godot --headless --export-pack wasm32-unknown-unknown ../target/release/client.pck client/project.godot
+}
+package() {
+ install -Dm755 hurrycurry-client "$pkgdir/usr/bin/hurrycurry-client"
+ install -Dm644 hurrycurry-client.desktop "$pkgdir/usr/share/applications/hurrycurry-client.desktop"
+ install -Dm644 hurrycurry/target/release/client.pck "$pkgdir/usr/share/hurrycurry/client.pck"
+ install -Dm644 hurrycurry/COPYING "$pkgdir/usr/share/licenses/hurrycurry-client/COPYING"
+ install -Dm644 hurrycurry/client/icons/main.png "$pkgdir/usr/share/icons/hicolor/512x512/apps/hurrycurry.png"
+}
diff --git a/hurrycurry-client-git/hurrycurry-client b/hurrycurry-client-git/hurrycurry-client
new file mode 100644
index 0000000..c621e13
--- /dev/null
+++ b/hurrycurry-client-git/hurrycurry-client
@@ -0,0 +1,2 @@
+#!/bin/sh
+godot --main-pack /usr/share/hurrycurry/client.pck
diff --git a/hurrycurry-client-git/hurrycurry-client.desktop b/hurrycurry-client-git/hurrycurry-client.desktop
new file mode 100644
index 0000000..8b2b04b
--- /dev/null
+++ b/hurrycurry-client-git/hurrycurry-client.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=Hurry Curry!
+Icon=hurrycurry
+GenericName[de]=Ein Spiel rund ums Kochen
+GenericName=A game about cooking
+Exec=hurrycurry-client
+Terminal=false
+StartupNotify=false
+Type=Application
+Categories=Game;
+Keywords=game;cooking;
+PrefersNonDefaultGPU=true
diff --git a/hurrycurry-client-web-git/PKGBUILD b/hurrycurry-client-web-git/PKGBUILD
new file mode 100644
index 0000000..b8fa3b5
--- /dev/null
+++ b/hurrycurry-client-web-git/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=hurrycurry-client-web-git
+pkgver=r1782.4b2e56f
+pkgrel=1
+pkgdesc="A game about cooking (web client)"
+arch=('any')
+url="https://codeberg.org/hurrycurry/hurrycurry"
+license=('AGPL3')
+conflics=('hurrycurry-client-web')
+provides=('hurrycurry-client-web')
+makedepends=('godot')
+source=("git+https://codeberg.org/hurrycurry/hurrycurry.git")
+sha256sums=("SKIP")
+
+pkgver() {
+ cd "hurrycurry"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+build() {
+ cd "hurrycurry"
+ make client
+ mkdir -p target/release
+ godot --headless --export-release wasm32-unknown-unknown ../target/release/client.html client/project.godot
+}
+package() {
+ install -Dm644 hurrycurry/COPYING "$pkgdir/usr/share/licenses/hurrycurry-client-web/COPYING"
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/client-web" hurrycurry/target/release/client.*
+}
diff --git a/hurrycurry-client-web/PKGBUILD b/hurrycurry-client-web/PKGBUILD
new file mode 100644
index 0000000..22e8564
--- /dev/null
+++ b/hurrycurry-client-web/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=hurrycurry-client-web
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="A game about cooking (web client)"
+arch=('any')
+url="https://codeberg.org/hurrycurry/hurrycurry"
+license=('AGPL3')
+makedepends=('godot')
+source=("hurrycurry-$pkgver.tar.gz::https://codeberg.org/hurrycurry/hurrycurry/archive/v$pkgver.tar.gz")
+sha256sums=('f165fd6ddd2b0ce22cdb010049a8a39dd74de4943dbf0e994e6e0ca02b6b2a54')
+
+build() {
+ cd "hurrycurry"
+ make client
+ mkdir -p target/release
+ godot --headless --export-release wasm32-unknown-unknown ../target/release/client.html client/project.godot
+}
+package() {
+ install -Dm644 hurrycurry/COPYING "$pkgdir/usr/share/licenses/hurrycurry-client-web/COPYING"
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/client-web" hurrycurry/target/release/client.*
+}
diff --git a/hurrycurry-client/PKGBUILD b/hurrycurry-client/PKGBUILD
new file mode 100644
index 0000000..8f5b799
--- /dev/null
+++ b/hurrycurry-client/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=hurrycurry-client
+pkgver=2.1.1
+pkgrel=2
+pkgdesc="A game about cooking (client)"
+arch=('any')
+url="https://codeberg.org/hurrycurry/hurrycurry"
+license=('AGPL3')
+depends=('godot')
+makedepends=('godot')
+source=("hurrycurry-$pkgver.tar.gz::https://codeberg.org/hurrycurry/hurrycurry/archive/v$pkgver.tar.gz"
+ "hurrycurry-client"
+ "hurrycurry-client.desktop")
+sha256sums=('f165fd6ddd2b0ce22cdb010049a8a39dd74de4943dbf0e994e6e0ca02b6b2a54'
+ '2853345b64837352f576397aac7659aa0306e03ca7de4cdd04bb64bab9c8706c'
+ '2607233a774b1f74f10deb0ef1c594e418554c4b5701d0e700016368e6d59718')
+
+build() {
+ cd "hurrycurry"
+ make client
+ mkdir -p target/release
+ godot --headless --export-pack wasm32-unknown-unknown ../target/release/client.pck client/project.godot
+}
+package() {
+ install -Dm755 hurrycurry-client "$pkgdir/usr/bin/hurrycurry-client"
+ install -Dm644 hurrycurry-client.desktop "$pkgdir/usr/share/applications/hurrycurry-client.desktop"
+ install -Dm644 hurrycurry/target/release/client.pck "$pkgdir/usr/share/hurrycurry/client.pck"
+ install -Dm644 hurrycurry/COPYING "$pkgdir/usr/share/licenses/hurrycurry-client/COPYING"
+ install -Dm644 hurrycurry/client/icons/main.png "$pkgdir/usr/share/icons/hicolor/512x512/apps/hurrycurry.png"
+}
diff --git a/hurrycurry-client/hurrycurry-client b/hurrycurry-client/hurrycurry-client
new file mode 100644
index 0000000..c621e13
--- /dev/null
+++ b/hurrycurry-client/hurrycurry-client
@@ -0,0 +1,2 @@
+#!/bin/sh
+godot --main-pack /usr/share/hurrycurry/client.pck
diff --git a/hurrycurry-client/hurrycurry-client.desktop b/hurrycurry-client/hurrycurry-client.desktop
new file mode 100644
index 0000000..8b2b04b
--- /dev/null
+++ b/hurrycurry-client/hurrycurry-client.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=Hurry Curry!
+Icon=hurrycurry
+GenericName[de]=Ein Spiel rund ums Kochen
+GenericName=A game about cooking
+Exec=hurrycurry-client
+Terminal=false
+StartupNotify=false
+Type=Application
+Categories=Game;
+Keywords=game;cooking;
+PrefersNonDefaultGPU=true
diff --git a/hurrycurry-pixel-client-git/PKGBUILD b/hurrycurry-pixel-client-git/PKGBUILD
new file mode 100644
index 0000000..4f22f4c
--- /dev/null
+++ b/hurrycurry-pixel-client-git/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=hurrycurry-pixel-client-git
+pkgver=r1860.f0d6634
+pkgrel=1
+pkgdesc="A game about cooking (pixel client)"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/hurrycurry/hurrycurry"
+license=('AGPL3')
+depends=('sdl2')
+makedepends=('rustup' 'sdl2' 'sdl2_image')
+conflics=('hurrycurry-pixel-client')
+provides=('hurrycurry-pixel-client')
+source=("git+https://codeberg.org/hurrycurry/hurrycurry.git"
+ "hurrycurry-pixel-client.desktop")
+sha256sums=("SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "hurrycurry"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "hurrycurry"
+ rustup default nightly
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "hurrycurry"
+ make pixel-client
+ cargo build --release --bin pixelcurry --target "$CHOST"
+}
+package() {
+ install -Dm755 hurrycurry/target/$CHOST/release/pixelcurry "$pkgdir/usr/bin/pixelcurry"
+ install -Dm644 hurrycurry-pixel-client.desktop "$pkgdir/usr/share/applications/hurrycurry-pixel-client.desktop"
+ install -Dm644 hurrycurry/COPYING "$pkgdir/usr/share/licenses/hurrycurry-pixel-client/COPYING"
+ install -Dm644 hurrycurry/pixel-client/icon.png "$pkgdir/usr/share/icons/hicolor/512x512/apps/pixelcurry.png"
+}
diff --git a/hurrycurry-pixel-client-git/hurrycurry-pixel-client.desktop b/hurrycurry-pixel-client-git/hurrycurry-pixel-client.desktop
new file mode 100644
index 0000000..32389df
--- /dev/null
+++ b/hurrycurry-pixel-client-git/hurrycurry-pixel-client.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Pixel Curry!
+Icon=pixelcurry
+GenericName[de]=Ein Spiel rund ums Kochen im Retro-stil
+GenericName=A retro-style game about cooking
+Exec=pixelcurry
+Terminal=false
+StartupNotify=false
+Type=Application
+Categories=Game;
+Keywords=game;cooking;
diff --git a/hurrycurry-server-git/PKGBUILD b/hurrycurry-server-git/PKGBUILD
new file mode 100644
index 0000000..d6b6234
--- /dev/null
+++ b/hurrycurry-server-git/PKGBUILD
@@ -0,0 +1,65 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=hurrycurry-server-git
+pkgver=r1859.64e2704
+pkgrel=4
+pkgdesc="A game about cooking (server)"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/hurrycurry/hurrycurry"
+license=('AGPL3')
+conflics=('hurrycurry-server')
+provides=('hurrycurry-server')
+makedepends=('rustup' 'deno' 'graphviz' 'godot')
+source=("git+https://codeberg.org/hurrycurry/hurrycurry.git"
+ "hurrycurry.service"
+ "hurrycurry-registry.service"
+ "hurrycurry.yaml"
+ "tmpfiles.conf"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "hurrycurry"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ curl 'https://s.metamuffin.org/static/hurrycurry/book.pdf' -o book.pdf
+ cd "hurrycurry"
+ rustup default nightly
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "hurrycurry"
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-server
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-replaytool
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-registry
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-discover
+ make -C data all
+ make -C test-client
+ make -C data recipes/default.svg
+}
+package() {
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-server "$pkgdir/usr/bin/hurrycurry-server"
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-replaytool "$pkgdir/usr/bin/hurrycurry-replaytool"
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-registry "$pkgdir/usr/bin/hurrycurry-registry"
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-discover "$pkgdir/usr/bin/hurrycurry-discover"
+ install -Dm644 hurrycurry.service "$pkgdir/usr/lib/systemd/system/hurrycurry.service"
+ install -Dm644 hurrycurry-registry.service "$pkgdir/usr/lib/systemd/system/hurrycurry-registry.service"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/hurrycurry.conf"
+ install -Dm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/hurrycurry.conf"
+ install -Dm644 hurrycurry/COPYING "$pkgdir/usr/share/licenses/hurrycurry-server/COPYING"
+ install -Dm664 hurrycurry/test-client/main.js "$pkgdir/usr/share/hurrycurry/test-client/main.js"
+ install -Dm664 hurrycurry/test-client/index.html "$pkgdir/usr/share/hurrycurry/test-client/index.html"
+ install -dm755 "$pkgdir/usr/share/hurrycurry/test-client/locale"
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/test-client/locale" hurrycurry/test-client/locale/*
+ install -Dm644 hurrycurry/data/index.yaml "$pkgdir/usr/share/hurrycurry/data/index.yaml"
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/data/recipes" hurrycurry/data/recipes/*.yaml
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/data/maps" hurrycurry/data/maps/*.yaml
+ install -Dm664 -t "$pkgdir/usr/share/doc/hurrycurry/recipes" hurrycurry/data/recipes/*.svg
+ install -Dm664 book.pdf "$pkgdir/usr/share/doc/hurrycurry/book.pdf"
+}
diff --git a/hurrycurry-server-git/hurrycurry-registry.service b/hurrycurry-server-git/hurrycurry-registry.service
new file mode 100644
index 0000000..bc50072
--- /dev/null
+++ b/hurrycurry-server-git/hurrycurry-registry.service
@@ -0,0 +1,33 @@
+[Unit]
+Description=hurrycurry server registry service
+After=network.target
+Wants=network-online.target
+
+[Service]
+Environment=XDG_DATA_HOME=/var/lib
+ExecStart=/usr/bin/hurrycurry-registry
+User=hurrycurry
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/hurrycurry-server-git/hurrycurry.service b/hurrycurry-server-git/hurrycurry.service
new file mode 100644
index 0000000..8e888e2
--- /dev/null
+++ b/hurrycurry-server-git/hurrycurry.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=hurrycurry game server
+After=network.target
+Wants=network-online.target
+
+[Service]
+WorkingDirectory=/usr/share/hurrycurry
+Environment=XDG_DATA_HOME=/var/lib
+ExecStart=/usr/bin/hurrycurry-server
+User=hurrycurry
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/hurrycurry-server-git/hurrycurry.yaml b/hurrycurry-server-git/hurrycurry.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hurrycurry-server-git/hurrycurry.yaml
diff --git a/hurrycurry-server-git/sysusers.conf b/hurrycurry-server-git/sysusers.conf
new file mode 100644
index 0000000..026ba33
--- /dev/null
+++ b/hurrycurry-server-git/sysusers.conf
@@ -0,0 +1 @@
+u hurrycurry - "hurrycurry game server" - -
diff --git a/hurrycurry-server-git/tmpfiles.conf b/hurrycurry-server-git/tmpfiles.conf
new file mode 100644
index 0000000..e14fa40
--- /dev/null
+++ b/hurrycurry-server-git/tmpfiles.conf
@@ -0,0 +1,2 @@
+d /var/lib/hurrycurry 0700 hurrycurry hurrycurry - -
+d /var/lib/hurrycurry-registry 0700 hurrycurry hurrycurry - -
diff --git a/hurrycurry-server/PKGBUILD b/hurrycurry-server/PKGBUILD
new file mode 100644
index 0000000..b78eea8
--- /dev/null
+++ b/hurrycurry-server/PKGBUILD
@@ -0,0 +1,59 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=hurrycurry-server
+pkgver=2.1.1
+pkgrel=6
+pkgdesc="A game about cooking (server)"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/hurrycurry/hurrycurry"
+license=('AGPL3')
+makedepends=('rustup' 'deno' 'graphviz' 'godot')
+source=("hurrycurry-$pkgver.tar.gz::https://codeberg.org/hurrycurry/hurrycurry/archive/v$pkgver.tar.gz"
+ "hurrycurry.service"
+ "hurrycurry-registry.service"
+ "hurrycurry.yaml"
+ "tmpfiles.conf"
+ "sysusers.conf")
+sha256sums=('f165fd6ddd2b0ce22cdb010049a8a39dd74de4943dbf0e994e6e0ca02b6b2a54'
+ '2e10c8882ef4847586f03ac5feb469294c1b2304928f8df41db12a1d84569eb7'
+ 'dec75b020f3a0bfc5c22f0fa013fe03d06feab608f9d4a42fb46d05dbed56844'
+ 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
+ '47c6bd933fc96d08322d78a14c7932707b1dd1be2c1bb6eda2d212973f96aac9'
+ 'bbb29eff6b62d4530b04c0a964a88229212fea165f97a1c4674c53fae9fb4fe4')
+
+prepare() {
+ curl 'https://s.metamuffin.org/static/hurrycurry/book.pdf' -o book.pdf
+ cd "hurrycurry"
+ rustup default nightly
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "hurrycurry"
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-server
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-replaytool
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-registry
+ cargo +nightly build --frozen --release --target "$CHOST" --bin hurrycurry-discover
+ make -C data all
+ make -C test-client
+ make -C data recipes/default.svg
+}
+package() {
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-server "$pkgdir/usr/bin/hurrycurry-server"
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-replaytool "$pkgdir/usr/bin/hurrycurry-replaytool"
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-registry "$pkgdir/usr/bin/hurrycurry-registry"
+ install -Dm755 hurrycurry/target/$CHOST/release/hurrycurry-discover "$pkgdir/usr/bin/hurrycurry-discover"
+ install -Dm644 hurrycurry.service "$pkgdir/usr/lib/systemd/system/hurrycurry.service"
+ install -Dm644 hurrycurry-registry.service "$pkgdir/usr/lib/systemd/system/hurrycurry-registry.service"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/hurrycurry.conf"
+ install -Dm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/hurrycurry.conf"
+ install -Dm644 hurrycurry/COPYING "$pkgdir/usr/share/licenses/hurrycurry-server/COPYING"
+ install -Dm664 hurrycurry/test-client/main.js "$pkgdir/usr/share/hurrycurry/test-client/main.js"
+ install -Dm664 hurrycurry/test-client/index.html "$pkgdir/usr/share/hurrycurry/test-client/index.html"
+ install -dm755 "$pkgdir/usr/share/hurrycurry/test-client/locale"
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/test-client/locale" hurrycurry/test-client/locale/*
+ install -Dm644 hurrycurry/data/index.yaml "$pkgdir/usr/share/hurrycurry/data/index.yaml"
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/data/recipes" hurrycurry/data/recipes/*.yaml
+ install -Dm664 -t "$pkgdir/usr/share/hurrycurry/data/maps" hurrycurry/data/maps/*.yaml
+ install -Dm664 -t "$pkgdir/usr/share/doc/hurrycurry/recipes" hurrycurry/data/recipes/*.svg
+ install -Dm664 book.pdf "$pkgdir/usr/share/doc/hurrycurry/book.pdf"
+}
diff --git a/hurrycurry-server/hurrycurry-registry.service b/hurrycurry-server/hurrycurry-registry.service
new file mode 100644
index 0000000..bc50072
--- /dev/null
+++ b/hurrycurry-server/hurrycurry-registry.service
@@ -0,0 +1,33 @@
+[Unit]
+Description=hurrycurry server registry service
+After=network.target
+Wants=network-online.target
+
+[Service]
+Environment=XDG_DATA_HOME=/var/lib
+ExecStart=/usr/bin/hurrycurry-registry
+User=hurrycurry
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/hurrycurry-server/hurrycurry.service b/hurrycurry-server/hurrycurry.service
new file mode 100644
index 0000000..8e888e2
--- /dev/null
+++ b/hurrycurry-server/hurrycurry.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=hurrycurry game server
+After=network.target
+Wants=network-online.target
+
+[Service]
+WorkingDirectory=/usr/share/hurrycurry
+Environment=XDG_DATA_HOME=/var/lib
+ExecStart=/usr/bin/hurrycurry-server
+User=hurrycurry
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/hurrycurry-server/hurrycurry.yaml b/hurrycurry-server/hurrycurry.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/hurrycurry-server/hurrycurry.yaml
diff --git a/hurrycurry-server/sysusers.conf b/hurrycurry-server/sysusers.conf
new file mode 100644
index 0000000..026ba33
--- /dev/null
+++ b/hurrycurry-server/sysusers.conf
@@ -0,0 +1 @@
+u hurrycurry - "hurrycurry game server" - -
diff --git a/hurrycurry-server/tmpfiles.conf b/hurrycurry-server/tmpfiles.conf
new file mode 100644
index 0000000..e14fa40
--- /dev/null
+++ b/hurrycurry-server/tmpfiles.conf
@@ -0,0 +1,2 @@
+d /var/lib/hurrycurry 0700 hurrycurry hurrycurry - -
+d /var/lib/hurrycurry-registry 0700 hurrycurry hurrycurry - -
diff --git a/i2p b/i2p
new file mode 160000
+Subproject b817262d08ebfa421c11ff396eeb99210c54fba
diff --git a/i2prouter-nowrapper/PKGBUILD b/i2prouter-nowrapper/PKGBUILD
new file mode 100644
index 0000000..f98aedc
--- /dev/null
+++ b/i2prouter-nowrapper/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=i2prouter-nowrapper
+pkgver=1.0.0
+pkgrel=3
+pkgdesc="Starts I2P without java-service-wrapper"
+arch=('any')
+url="https://geti2p.net/"
+license=('AGPL-3.0-only')
+depends=('fish' 'i2p')
+provides=('java-service-wrapper')
+source=("i2prouter-wrapper"
+ "service-dropin.conf")
+sha256sums=('b8759f7b1207a9b9d1627cf80b9025b5c2f30fdb2a065ffc0840ffc27675e9f4'
+ '57f1ff4ef321644d05b8f4f47301dee6f2def3edb2cff86d20438f9f35f16ba9')
+
+package() {
+ install -Dm644 service-dropin.conf "$pkgdir/usr/lib/systemd/system/i2prouter.service.d/no-wrapper.conf"
+ install -Dm755 i2prouter-wrapper "$pkgdir/usr/bin/i2prouter-wrapper"
+}
diff --git a/i2prouter-nowrapper/i2prouter-wrapper b/i2prouter-nowrapper/i2prouter-wrapper
new file mode 100644
index 0000000..3c8c5e6
--- /dev/null
+++ b/i2prouter-nowrapper/i2prouter-wrapper
@@ -0,0 +1,11 @@
+#!/usr/bin/fish
+java \
+ -cp (string join ':' /opt/i2p/lib/*.jar) \
+ -Xmx256m \
+ -Di2p.dir.base=/opt/i2p \
+ -Djava.library.path=/opt/i2p:/opt/i2p/lib \
+ -Dorg.mortbay.http.Version.paranoid=true \
+ -Dorg.mortbay.xml.XmlParser.NotValidating=true \
+ -Djava.io.tmpdir=/opt/i2p/.tmp \
+ -DloggerFilenameOverride=logs/log-router-@.txt \
+ net.i2p.router.RouterLaunch
diff --git a/i2prouter-nowrapper/service-dropin.conf b/i2prouter-nowrapper/service-dropin.conf
new file mode 100644
index 0000000..8f5933e
--- /dev/null
+++ b/i2prouter-nowrapper/service-dropin.conf
@@ -0,0 +1,7 @@
+[Service]
+Type=simple
+ExecStart=
+ExecStop=
+ExecReload=
+PIDFile=
+ExecStart=/usr/bin/i2prouter-wrapper
diff --git a/jellything-git/PKGBUILD b/jellything-git/PKGBUILD
new file mode 100644
index 0000000..abaf289
--- /dev/null
+++ b/jellything-git/PKGBUILD
@@ -0,0 +1,60 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=jellything-git
+pkgver=r633.5ccadd8
+pkgrel=1
+pkgdesc="Jellything media streaming server"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/jellything"
+license=('AGPL-3.0-only')
+depends=('dav1d' 'libavif' 'zstd')
+optdepends=('ffmpeg: Transcoding')
+makedepends=('rustup' 'esbuild' 'nasm' 'meson' 'ninja' 'cmake' 'mdbook')
+backup=('etc/jellything.yaml' 'etc/jellything_secrets.yaml')
+install='jellything.install'
+source=("git+https://codeberg.org/metamuffin/jellything.git"
+ "jellything.service"
+ "jellything.yaml"
+ "jellything_secrets.yaml"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "jellything"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "jellything"
+ git submodule init
+ git submodule update
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "jellything"
+ cargo +nightly build --frozen --release --target "$CHOST"
+ cargo +nightly build --frozen --release --bin generate_completions
+ ./target/release/generate_completions completions
+ mdbook build doc
+}
+check() {
+ cd "jellything"
+ cargo test --release
+}
+package() {
+ install -Dm755 jellything/target/$CHOST/release/jellything "$pkgdir/usr/bin/jellything"
+ install -Dm755 jellything/target/$CHOST/release/jellytool "$pkgdir/usr/bin/jellytool"
+ install -Dm644 jellything/completions/jellytool.fish "$pkgdir/usr/share/fish/completions/jellytool.fish"
+ install -Dm644 jellything/completions/jellytool.bash "$pkgdir/usr/share/bash-completion/completions/jellytool"
+ install -Dm644 jellything/completions/_jellytool "$pkgdir/usr/share/zsh/site-functions/_jellytool"
+ install -Dm644 jellything/completions/jellytool.elv "$pkgdir/usr/share/elvish/lib/jellytool.elv"
+ install -Dm644 jellything/COPYING "$pkgdir/usr/share/licenses/jellything/COPYING"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/jellything.conf"
+ install -Dm644 jellything.service "$pkgdir/usr/lib/systemd/system/jellything.service"
+ install -Dm644 jellything.yaml "$pkgdir/etc/jellything.yaml"
+ install -Dm640 jellything_secrets.yaml "$pkgdir/etc/jellything_secrets.yaml"
+ mkdir -p "$pkgdir/usr/share/doc" && cp -r jellything/target/book "$pkgdir/usr/share/doc/jellything"
+}
diff --git a/jellything-git/jellything.install b/jellything-git/jellything.install
new file mode 100644
index 0000000..eadb9eb
--- /dev/null
+++ b/jellything-git/jellything.install
@@ -0,0 +1,7 @@
+
+pre_upgrade() {
+ if [ -e /usr/bin/jellytool ]; then
+ echo 'Backing up the previous jellytool version...'
+ cp -v /usr/bin/jellytool{,.old}
+ fi
+}
diff --git a/jellything-git/jellything.service b/jellything-git/jellything.service
new file mode 100644
index 0000000..9ec78f7
--- /dev/null
+++ b/jellything-git/jellything.service
@@ -0,0 +1,32 @@
+[Unit]
+Description=jellything media streaming server
+After=network.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/jellything /etc/jellything.yaml
+User=jellything
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/jellything-git/jellything.yaml b/jellything-git/jellything.yaml
new file mode 100644
index 0000000..1be19b4
--- /dev/null
+++ b/jellything-git/jellything.yaml
@@ -0,0 +1,13 @@
+hostname: example.org
+brand: "Jellything"
+slogan: ""
+admin_username: admin
+
+secrets_path: "/etc/jellything_secrets.yaml"
+
+media_path: "/srv/media"
+asset_path: "/var/lib/jellything/assets"
+database_path: "/var/lib/jellything/db"
+library_path: "/var/lib/jellything/library"
+temp_path: "/tmp/jellything"
+cache_path: "/var/cache/jellything"
diff --git a/jellything-git/jellything_secrets.yaml b/jellything-git/jellything_secrets.yaml
new file mode 100644
index 0000000..b81eafa
--- /dev/null
+++ b/jellything-git/jellything_secrets.yaml
@@ -0,0 +1,21 @@
+# This file contains secret information for jellything.
+
+# You need to set a passwort to enable admin login.
+#admin_password: "hunter2"
+
+# To avoid sign-out on server restart, generate persistent keys here.
+# Use `head -c 32 /dev/random | base64`.
+#session_key:
+#cookie_key:
+
+# Credentials for federating remote instances
+federation: {}
+ #"jellything.example.org": { username: "fed_example", password: "" }
+
+# API Keys for obtaining metadata
+api: {}
+ #fanart_tv: ""
+ #tmdb: ""
+ #omdb: ""
+ #trakt: ""
+ #tvdb: ""
diff --git a/jellything-git/sysusers.conf b/jellything-git/sysusers.conf
new file mode 100644
index 0000000..01c35a7
--- /dev/null
+++ b/jellything-git/sysusers.conf
@@ -0,0 +1 @@
+u jellything - "jellything media streaming server" - -
diff --git a/keks-meet-server-git/PKGBUILD b/keks-meet-server-git/PKGBUILD
new file mode 100644
index 0000000..121fd26
--- /dev/null
+++ b/keks-meet-server-git/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=keks-meet-server-git
+pkgver=r383.4f926ff
+pkgrel=1
+pkgdesc="Server for keks-meet, a simple and secure conferencing application for the web."
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/keks-meet"
+license=('AGPL3')
+makedepends=('rustup' 'esbuild')
+conflics=('keks-meet-server')
+provides=('keks-meet-server')
+backup=('etc/keks-meet-server.toml')
+source=("git+https://codeberg.org/metamuffin/keks-meet.git"
+ "keks-meet-server.service"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "keks-meet"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "keks-meet"
+ cargo fetch --locked --target "$CHOST"
+}
+build() {
+ cd "keks-meet"
+ make client-build
+ cargo +nightly build --frozen --release --bin keks-meet-server --target "$CHOST"
+}
+package() {
+ install -Dm755 keks-meet/target/$CHOST/release/keks-meet-server "$pkgdir/usr/bin/keks-meet-server"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/keks-meet-server.conf"
+ install -Dm644 keks-meet-server.service "$pkgdir/usr/lib/systemd/system/keks-meet-server.service"
+ install -Dm644 keks-meet/COPYING "$pkgdir/usr/share/licenses/keks-meet/COPYING"
+ install -Dm644 keks-meet/config/default.toml "$pkgdir/etc/keks-meet-server.toml"
+}
diff --git a/keks-meet-server-git/keks-meet-server.service b/keks-meet-server-git/keks-meet-server.service
new file mode 100644
index 0000000..79c55cd
--- /dev/null
+++ b/keks-meet-server-git/keks-meet-server.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=keks-meet Server Daemon
+After=network.target
+Wants=network-online.target
+
+[Service]
+AmbientCapabilities=CAP_NET_BIND_SERVICE
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+ExecStart=/usr/bin/keks-meet-server /etc/keks-meet-server.toml
+User=keks-meet-server
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/keks-meet-server-git/sysusers.conf b/keks-meet-server-git/sysusers.conf
new file mode 100644
index 0000000..0853982
--- /dev/null
+++ b/keks-meet-server-git/sysusers.conf
@@ -0,0 +1 @@
+u keks-meet-server - "keks-meet server daemon" - -
diff --git a/keks-meet-server/PKGBUILD b/keks-meet-server/PKGBUILD
new file mode 100644
index 0000000..de29bf1
--- /dev/null
+++ b/keks-meet-server/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=keks-meet-server
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Server for keks-meet, a simple and secure conferencing application for the web."
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/keks-meet"
+license=('AGPL3')
+makedepends=('rustup' 'esbuild')
+backup=('etc/keks-meet-server.toml')
+source=("$pkgname-$pkgver.tar.gz::https://codeberg.org/metamuffin/keks-meet/archive/v$pkgver.tar.gz"
+ "keks-meet-server.service"
+ "sysusers.conf")
+sha256sums=('40cd5203f227d2019bc2179ca018a25a264570dd6c31ba023dacc92847d632db'
+ '7760ad9c44dd9a0a8d6e74ae647911eb2375776fea6d0f635024f1126c1618ce'
+ '8cc9a7ace869b934732bfe376fd09b4ab82d22f52c70619e9df4ead0fae9a9aa')
+
+prepare() {
+ cd "keks-meet"
+ cargo fetch --locked --target "$CHOST"
+}
+build() {
+ cd "keks-meet"
+ make client-build
+ cargo +nightly build --frozen --release --bin keks-meet-server --target "$CHOST"
+}
+package() {
+ install -Dm755 keks-meet/target/$CHOST/release/keks-meet-server "$pkgdir/usr/bin/keks-meet-server"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/keks-meet-server.conf"
+ install -Dm644 keks-meet-server.service "$pkgdir/usr/lib/systemd/system/keks-meet-server.service"
+ install -Dm644 keks-meet/COPYING "$pkgdir/usr/share/licenses/keks-meet/COPYING"
+ install -Dm644 keks-meet/config/default.toml "$pkgdir/etc/keks-meet-server.toml"
+}
diff --git a/keks-meet-server/keks-meet-server.service b/keks-meet-server/keks-meet-server.service
new file mode 100644
index 0000000..79c55cd
--- /dev/null
+++ b/keks-meet-server/keks-meet-server.service
@@ -0,0 +1,34 @@
+[Unit]
+Description=keks-meet Server Daemon
+After=network.target
+Wants=network-online.target
+
+[Service]
+AmbientCapabilities=CAP_NET_BIND_SERVICE
+CapabilityBoundingSet=CAP_NET_BIND_SERVICE
+ExecStart=/usr/bin/keks-meet-server /etc/keks-meet-server.toml
+User=keks-meet-server
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/keks-meet-server/sysusers.conf b/keks-meet-server/sysusers.conf
new file mode 100644
index 0000000..0853982
--- /dev/null
+++ b/keks-meet-server/sysusers.conf
@@ -0,0 +1 @@
+u keks-meet-server - "keks-meet server daemon" - -
diff --git a/mediamtx/.SRCINFO b/mediamtx/.SRCINFO
new file mode 100644
index 0000000..6030ee4
--- /dev/null
+++ b/mediamtx/.SRCINFO
@@ -0,0 +1,18 @@
+pkgbase = mediamtx
+ pkgdesc = Ready-to-use RTSP / RTMP / LL-HLS / WebRTC server and proxy that allows to read, publish and proxy video and audio streams
+ pkgver = 1.8.0
+ pkgrel = 1
+ url = https://github.com/bluenviron/mediamtx
+ arch = x86_64
+ arch = aarch64
+ license = MIT
+ makedepends = go
+ backup = etc/mediamtx/mediamtx.yml
+ source = mediamtx-1.8.0.tar.gz::https://github.com/bluenviron/mediamtx/archive/refs/tags/v1.8.0.tar.gz
+ source = mediamtx.service
+ source = mediamtx@.service
+ b2sums = ac4a8bd9ce55a927f4d6849eac536c22db7fee9283ec4b5deecfe05e6832a9ef6ab6e8bffffc3a93ed6dfa9346e184ddb339697b7b7c8e258a26d9bebdd476de
+ b2sums = 636b7c89aec0e54a471464d013fd13fd83bebb21c3ebef9c0259fdea21185e3317ced09ef1c821ed253a62c3825f00cced19e42cdd175d1ddaecdef9800eeb4f
+ b2sums = 280cab48cc4d513d20952c82aab7474b9eb474dcb37a2b9d559a7caa8cd5ab6527a293c77b8ab7c64f02564c42c91b7141756020adef8ddb54316e8fcea6d0bf
+
+pkgname = mediamtx
diff --git a/mediamtx/PKGBUILD b/mediamtx/PKGBUILD
new file mode 100644
index 0000000..9328b1c
--- /dev/null
+++ b/mediamtx/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: database64128 <free122448@hotmail.com>
+
+pkgname=mediamtx
+pkgver=1.8.3
+pkgrel=1
+pkgdesc="Ready-to-use RTSP / RTMP / LL-HLS / WebRTC server and proxy that allows to read, publish and proxy video and audio streams"
+arch=('x86_64' 'aarch64')
+url="https://github.com/bluenviron/$pkgname"
+license=('MIT')
+makedepends=('go')
+backup=("etc/$pkgname/mediamtx.yml")
+source=(
+ "$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"
+ "$pkgname.service"
+ "$pkgname@.service"
+)
+b2sums=('b8060b459bc1d3da7c54deccfc6d66576312263b2a6b143a2556f7f670f0c0dbf070123564446a5f14ad2a772ade465c4e92ecdd105f4000836f02e1b1e6582c'
+ '636b7c89aec0e54a471464d013fd13fd83bebb21c3ebef9c0259fdea21185e3317ced09ef1c821ed253a62c3825f00cced19e42cdd175d1ddaecdef9800eeb4f'
+ '280cab48cc4d513d20952c82aab7474b9eb474dcb37a2b9d559a7caa8cd5ab6527a293c77b8ab7c64f02564c42c91b7141756020adef8ddb54316e8fcea6d0bf')
+
+build() {
+ cd "$pkgname-$pkgver"
+ export CGO_CPPFLAGS="${CPPFLAGS}"
+ export CGO_CFLAGS="${CFLAGS}"
+ export CGO_CXXFLAGS="${CXXFLAGS}"
+ export CGO_LDFLAGS="${LDFLAGS}"
+ export GOFLAGS="-buildmode=pie -trimpath"
+ go generate ./...
+ go build -ldflags="-s -w -linkmode=external -X github.com/bluenviron/mediamtx/internal/core.version=v$pkgver"
+}
+
+package() {
+ install -Dm644 $pkgname.service "$pkgdir"/usr/lib/systemd/system/$pkgname.service
+ install -Dm644 $pkgname@.service "$pkgdir"/usr/lib/systemd/system/$pkgname@.service
+ cd "$pkgname-$pkgver"
+ install -d "$pkgdir"/etc/$pkgname
+ install -Dm644 $pkgname.yml "$pkgdir"/etc/$pkgname/$pkgname.yml
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
+}
diff --git a/mediamtx/mediamtx.service b/mediamtx/mediamtx.service
new file mode 100644
index 0000000..c8ea8bf
--- /dev/null
+++ b/mediamtx/mediamtx.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=MediaMTX
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/mediamtx /etc/mediamtx/mediamtx.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mediamtx/mediamtx@.service b/mediamtx/mediamtx@.service
new file mode 100644
index 0000000..055ce64
--- /dev/null
+++ b/mediamtx/mediamtx@.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=MediaMTX
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/mediamtx /etc/mediamtx/%i.yml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-adservices-git/PKGBUILD b/meta-adservices-git/PKGBUILD
new file mode 100644
index 0000000..345f323
--- /dev/null
+++ b/meta-adservices-git/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=meta-adservices-git
+pkgver=r15.27e6f6e
+pkgrel=1
+pkgdesc="Funny adservice."
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/meta-adservices"
+license=('AGPL-3.0-only')
+depends=()
+makedepends=('rustup')
+backup=('etc/meta_adservices.toml')
+source=("git+https://codeberg.org/metamuffin/meta-adservices.git"
+ "meta_adservices.service"
+ "meta_adservices.toml"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "meta-adservices"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "meta-adservices"
+ rustup default nightly
+ cargo +nightly fetch --target "$CHOST"
+}
+build() {
+ cd "meta-adservices"
+ cargo +nightly build --release --target "$CHOST"
+}
+package() {
+ install -Dm755 meta-adservices/target/$CHOST/release/meta-adservices "$pkgdir/usr/bin/meta-adservices"
+ install -Dm644 meta-adservices/COPYING "$pkgdir/usr/share/licenses/meta-adservices/COPYING"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/meta-adservices.conf"
+ install -Dm644 meta_adservices.service "$pkgdir/usr/lib/systemd/system/meta_adservices.service"
+ install -Dm644 meta_adservices.toml "$pkgdir/etc/meta_adservices.toml"
+ mkdir -p "$pkgdir/var/lib/meta_adservices"
+}
diff --git a/meta-adservices-git/meta_adservices.service b/meta-adservices-git/meta_adservices.service
new file mode 100644
index 0000000..09ab329
--- /dev/null
+++ b/meta-adservices-git/meta_adservices.service
@@ -0,0 +1,32 @@
+[Unit]
+Description=meta adservices
+After=network.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/meta-adservices /etc/meta_adservices.toml
+User=meta_adservices
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-adservices-git/meta_adservices.toml b/meta-adservices-git/meta_adservices.toml
new file mode 100644
index 0000000..fccd0f7
--- /dev/null
+++ b/meta-adservices-git/meta_adservices.toml
@@ -0,0 +1,5 @@
+bloom_filter_size = 10000
+impression_weight_falloff = 0.9
+database_path = "/var/lib/meta_adservices/db"
+ad_dir = "/var/local/ads"
+port = 44492
diff --git a/meta-adservices-git/sysusers.conf b/meta-adservices-git/sysusers.conf
new file mode 100644
index 0000000..5de1ebe
--- /dev/null
+++ b/meta-adservices-git/sysusers.conf
@@ -0,0 +1 @@
+u meta_adservices - "meta adservices server user" /var/lib/meta_adservices -
diff --git a/metamuffin-blog-git/PKGBUILD b/metamuffin-blog-git/PKGBUILD
new file mode 100644
index 0000000..1b752a7
--- /dev/null
+++ b/metamuffin-blog-git/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=metamuffin-blog-git
+pkgver=r63.cb029be
+pkgrel=1
+pkgdesc="metamuffins blog"
+arch=('any')
+url="https://codeberg.org/metamuffin/metamuffin-blog"
+license=('CC-BY-SA')
+makedepends=('rustup')
+source=("git+https://codeberg.org/metamuffin/metamuffin-blog.git")
+sha256sums=("SKIP")
+
+pkgver() {
+ cd "metamuffin-blog"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+package() {
+ mkdir -p "$pkgdir/usr/share/metamuffin-website"
+ cp -rf metamuffin-blog "$pkgdir/usr/share/metamuffin-website/blog";
+}
diff --git a/metamuffin-website-git/PKGBUILD b/metamuffin-website-git/PKGBUILD
new file mode 100644
index 0000000..3a0eb5f
--- /dev/null
+++ b/metamuffin-website-git/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=metamuffin-website-git
+pkgver=r73.8c4a1a0
+pkgrel=1
+pkgdesc="metamuffins personal webpage"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/metamuffin-website"
+license=('AGPL3')
+makedepends=('rustup')
+source=("git+https://codeberg.org/metamuffin/metamuffin-website.git"
+ "metamuffin-website.service"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "metamuffin-website"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "metamuffin-website"
+ rustup default nightly
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "metamuffin-website"
+ cargo +nightly build --frozen --release --target "$CHOST"
+}
+package() {
+ mkdir -p "$pkgdir/usr/share/metamuffin-website"
+ install -Dm755 metamuffin-website/target/$CHOST/release/metamuffin-website "$pkgdir/usr/bin/metamuffin-website"
+ install -Dm644 metamuffin-website.service "$pkgdir/usr/lib/systemd/system/metamuffin-website.service"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/metamuffin-website.conf"
+ install -Dm644 metamuffin-website/COPYING "$pkgdir/usr/share/licenses/metamuffin-website/COPYING"
+}
diff --git a/metamuffin-website-git/metamuffin-website.service b/metamuffin-website-git/metamuffin-website.service
new file mode 100644
index 0000000..4195d98
--- /dev/null
+++ b/metamuffin-website-git/metamuffin-website.service
@@ -0,0 +1,33 @@
+[Unit]
+Description=metamuffin personal website
+After=network.target
+Wants=network-online.target
+
+[Service]
+WorkingDirectory=/usr/share/metamuffin-website
+ExecStart=/usr/bin/metamuffin-website
+User=metamuffin_website
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/metamuffin-website-git/sysusers.conf b/metamuffin-website-git/sysusers.conf
new file mode 100644
index 0000000..8c70085
--- /dev/null
+++ b/metamuffin-website-git/sysusers.conf
@@ -0,0 +1 @@
+u metamuffin_website - "metamuffins personal website" - -
diff --git a/statuspage-git/PKGBUILD b/statuspage-git/PKGBUILD
new file mode 100644
index 0000000..a2f9e50
--- /dev/null
+++ b/statuspage-git/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: metamuffin <metamuffin@disroot.org>
+
+pkgname=statuspage-git
+pkgver=r19.0c33249
+pkgrel=1
+pkgdesc="service status page"
+arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
+url="https://codeberg.org/metamuffin/statuspage"
+license=('AGPL3')
+makedepends=('rustup')
+backup=('etc/statuspage.yaml')
+source=("git+https://codeberg.org/metamuffin/statuspage.git"
+ "statuspage.service"
+ "statuspage.yaml"
+ "sysusers.conf")
+sha256sums=("SKIP"
+ "SKIP"
+ "SKIP"
+ "SKIP")
+
+pkgver() {
+ cd "statuspage"
+ printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+prepare() {
+ cd "statuspage"
+ rustup default nightly
+ cargo +nightly fetch --locked --target "$CHOST"
+}
+build() {
+ cd "statuspage"
+ cargo +nightly build --frozen --release --target "$CHOST"
+}
+package() {
+ mkdir -p "$pkgdir/usr/share/statuspage"
+ install -Dm755 statuspage/target/$CHOST/release/statuspage "$pkgdir/usr/bin/statuspage"
+ install -Dm644 statuspage.service "$pkgdir/usr/lib/systemd/system/statuspage.service"
+ install -Dm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/statuspage.conf"
+ install -Dm644 statuspage/COPYING "$pkgdir/usr/share/licenses/statuspage/COPYING"
+ install -Dm644 statuspage.yaml "$pkgdir/etc/statuspage.yaml"
+}
diff --git a/statuspage-git/statuspage.service b/statuspage-git/statuspage.service
new file mode 100644
index 0000000..ea2dd09
--- /dev/null
+++ b/statuspage-git/statuspage.service
@@ -0,0 +1,32 @@
+[Unit]
+Description=service status page
+After=network.target
+Wants=network-online.target
+
+[Service]
+ExecStart=/usr/bin/statuspage /etc/statuspage.yaml
+User=statuspage
+LockPersonality=yes
+MemoryDenyWriteExecute=yes
+NoNewPrivileges=yes
+PrivateDevices=true
+PrivateTmp=true
+ProtectClock=yes
+ProtectControlGroups=yes
+ProtectHome=true
+ProtectHostname=yes
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectSystem=full
+RestrictAddressFamilies=~AF_PACKET AF_NETLINK
+RestrictNamespaces=yes
+RestrictSUIDSGID=yes
+RestrictRealtime=yes
+Restart=always
+SystemCallArchitectures=native
+SystemCallFilter=@system-service
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/statuspage-git/statuspage.yaml b/statuspage-git/statuspage.yaml
new file mode 100644
index 0000000..2d7d0eb
--- /dev/null
+++ b/statuspage-git/statuspage.yaml
@@ -0,0 +1,14 @@
+title: "My Status Page"
+bind: 127.0.0.1:8000
+interval: 60
+
+services:
+ - title: sshd
+ checks:
+ - !systemd "sshd"
+
+ - title: CUPS
+ url: https://127.0.0.1:631/
+ checks:
+ - !systemd cups
+ - !http { url: https://127.0.0.1:631/ }
diff --git a/statuspage-git/sysusers.conf b/statuspage-git/sysusers.conf
new file mode 100644
index 0000000..014df4f
--- /dev/null
+++ b/statuspage-git/sysusers.conf
@@ -0,0 +1 @@
+u statuspage - "service status page" - -
diff --git a/violet/PKGBUILD b/violet/PKGBUILD
new file mode 100644
index 0000000..7096843
--- /dev/null
+++ b/violet/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Paul-Louis Ageneau <paul-louis at ageneau dot org>
+
+pkgname=violet
+pkgver=0.5.0
+pkgrel=2
+pkgdesc="Lightweight STUN/TURN server"
+arch=('x86_64' 'i686' 'armv7h' 'aarch64')
+url="https://github.com/paullouisageneau/$pkgname"
+license=('GPL') # GPLv2 or any later version
+makedepends=('git' 'cmake')
+depends=('glibc' 'libjuice')
+provides=()
+conflicts=()
+source=("git+https://github.com/paullouisageneau/$pkgname.git#tag=v$pkgver")
+md5sums=('47bfad71129d6c6444fc3fa7ab4ab5dd')
+
+prepare() {
+ true
+}
+
+build() {
+ cd "$pkgname"
+ rm -rf build
+ cmake -B build -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DUSE_SYSTEM_JUICE=1
+
+ cmake --build build
+}
+
+package() {
+ cd "$pkgname"
+ install -m755 -d "$pkgdir"/usr/bin
+ install -m755 build/"$pkgname" "$pkgdir"/usr/bin
+ install -m755 -d "$pkgdir"/usr/lib/systemd/system
+ install -m644 "$pkgname".service "$pkgdir"/usr/lib/systemd/system
+ install -m755 -d "$pkgdir"/etc/violet
+ install -m644 example.conf "$pkgdir"/etc/violet/violet.conf
+ install -m755 -d "$pkgdir"/usr/lib/sysusers.d
+ echo "u violet - \"Violet STUN/TURN server user\"" > "$pkgdir"/usr/lib/sysusers.d/violet.conf
+}
diff --git a/ympd b/ympd
new file mode 160000
+Subproject 43115466b4dcf47ff561753b6bb5f1f0fa812fa