extra-repos/systemd: add transmission-daemon service

Based on service script in transmission's repo [1], but with Type
changed to simple as alpine's transmission is built without sd_notify.

[1] https://github.com/transmission/transmission/blob/main/daemon/transmission-daemon.service.in

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7016>
This commit is contained in:
Henrik Grimler 2025-09-08 11:31:36 +02:00 committed by The Friendly Merge Bot
parent 2a4d4f8b61
commit d2d455f8a4
No known key found for this signature in database
2 changed files with 44 additions and 1 deletions

View file

@ -7,7 +7,7 @@
# How to add a new service file (5 steps):
pkgname=systemd-services
# 1. bump pkgver
pkgver=93
pkgver=94
pkgrel=0
pkgdesc="Systemd service files"
url="https://postmarketos.org"
@ -94,6 +94,7 @@ subpackages="
tinydm-systemd:_service
tinysparql-systemd:_service
tqftpserv-systemd:_service
transmission-daemon-systemd:_service
tuned-systemd:_service
tuned-ppd-systemd:_service
udisks2-systemd:_service
@ -226,6 +227,7 @@ _tailscale_sources="system/tailscaled.service etc/default/tailscaled"
_tinydm_sources="system/tinydm.service" # see issue tinydm#11
_tinysparql_sources="user/tinysparql-xdg-portal-3.service" # From https://gitlab.gnome.org/GNOME/tinysparql/-/blob/main/src/portal/tracker-xdg-portal.service.in
_tqftpserv_sources="system/tqftpserv.service"
_transmission_daemon_sources="system/transmission-daemon.service" # Based on https://github.com/transmission/transmission/blob/main/daemon/transmission-daemon.service.in
_tuned_sources="system/tuned.service" # From https://github.com/redhat-performance/tuned/blob/master/tuned.service
_tuned_ppd_sources="system/tuned-ppd.service" # From https://github.com/redhat-performance/tuned/blob/master/tuned/ppd/tuned-ppd.service
_udisks2_sources="system/udisks2.service" # From https://github.com/storaged-project/udisks/blob/master/data/udisks2.service.in
@ -343,6 +345,7 @@ source="$(flatpath \
$_tinydm_sources \
$_tinysparql_sources \
$_tqftpserv_sources \
$_transmission_daemon_sources \
$_tuned_sources \
$_tuned_ppd_sources \
$_udisks2_sources \
@ -503,6 +506,7 @@ de63ecafaffc675f21d2a4b1e6b7e2c5464c03f7b2f79094d7f719c295190ac28b3cd85ba99a17bb
23f854fa2d0e0cb4de54db8605e549bb32061470ea7fa8ac16d474149be635e2b20a815c4ea8088e583693d7f515651ad2872b45f3b38a762f686b977d4fc49d system-tinydm.service
7adde19af39f218b5daf81a356ed76c9311d48552d6aa5998535e34fc8e6217947e5b9722e7085b6f2969a9a64be467c0715ef11163c9ea1d437a2d04ef8288b user-tinysparql-xdg-portal-3.service
c569b27925297672c479e12a6425abdf5791886fff77c2c2b67b7aa9277eb0a22e7b95b52dbc225870c97460d0988a4dae18ed864e19096c704c0895de55b699 system-tqftpserv.service
6b8346e94a078db1a81a77f7d3ea8cbd83e0f4f435806c3b36c3c16d06fa25d2b7774615acc82d1fb5e066fe5bc24c088038e2154f46812c2354d002871037ae system-transmission-daemon.service
a6154846b26445d4da8ef59364b8b43a2d64db7edc6726f094ff0f8688c832444a1e666c77a142bb66c11c226b45f29ad2000395bf69662fbbce9044c7dcadb0 system-tuned.service
8d55230785dab9d37abc57b996af962333f493c516285f1b674788659915a5b83c7de48773da918ac7cbcc49b02c833c2e36d19e29b48911c96315b8927bcf45 system-tuned-ppd.service
c7ea2b18c9d8f82306fbaca6d07b7019de3819d7898c3f50c3d0aceef4da4d311ed3bf31385e2f8998b8e3e326b1eb13309ffd44cf1b2d9db9b40bca00222c16 system-udisks2.service

View file

@ -0,0 +1,39 @@
[Unit]
Description=Transmission BitTorrent Daemon
Wants=network-online.target
After=network-online.target
Documentation=man:transmission-daemon(1)
[Service]
User=transmission
Type=simple
ExecStart=/usr/bin/transmission-daemon -f --log-level=error
ExecReload=/bin/kill -s HUP $MAINPID
# Hardening
CapabilityBoundingSet=
DevicePolicy=closed
KeyringMode=private
LockPersonality=true
NoNewPrivileges=true
MemoryDenyWriteExecute=true
PrivateTmp=true
PrivateDevices=true
ProtectClock=true
ProtectKernelLogs=true
ProtectControlGroups=true
ProtectKernelModules=true
ProtectSystem=true
ProtectHostname=true
ProtectKernelTunables=true
ProtectProc=invisible
RestrictNamespaces=true
RestrictSUIDSGID=true
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictRealtime=true
SystemCallFilter=@system-service
SystemCallArchitectures=native
SystemCallErrorNumber=EPERM
[Install]
WantedBy=multi-user.target