Package Details: technitium-dns-server-git r4127.gd0484b6c-1

Git Clone URL: https://aur.archlinux.org/technitium-dns-server-git.git (read-only, click to copy)
Package Base: technitium-dns-server-git
Description: Open source authoritative and recursive DNS server focused on privacy and security
Upstream URL: https://technitium.com/dns/
Licenses: GPL-3.0-only
Conflicts: technitium-dns-server
Provides: technitium-dns-server
Submitter: SoftExpert
Maintainer: SoftExpert
Last Packager: SoftExpert
Votes: 0
Popularity: 0.000000
First Submitted: 2025-01-26 11:28 (UTC)
Last Updated: 2026-07-11 20:04 (UTC)

Latest Comments

« First ‹ Previous 1 2

SoftExpert commented on 2025-10-28 22:32 (UTC) (edited on 2025-10-29 05:42 (UTC) by SoftExpert)

Hi @Xaekai; thanks for the feedback!

I use this package on a system with dinit, so I cannot test in real conditions with systemd. Any suggestions are welcome, though !

I try to keep it as simple as possible; the idea is to detect when installing for the first time if the context is systemd-specific or dinit-specific and apply appropriate commands, without mixing with commands for the other init system.

The .install script is not finished; definitely I need to make sure the technitium user and group are created first (in the pre_install() section, I guess).

Edit: I have included some small modifications, based on your findings; can you, please, test ?

Xaekai commented on 2025-10-28 17:13 (UTC) (edited on 2025-10-28 20:55 (UTC) by Xaekai)

When attempting to create a repeatable deployment script for setting up this DNS server in a Archlinux CT under Proxmox I encountered an issue where this package wouldn't build. It should have dotnet-sdk added as a make dependency.

The service also fails to start, as it tries to chown folders for a user that doesn't exist. You seem to be putting the service and sysuser files in the wrong folder in your install commands in the PKGBUILD. They can't go in /opt for systemd to recognize them.

.sysuser -> /usr/lib/sysusers.d/
.service -> /usr/lib/systemd/system/
.tmpfiles -> /usr/lib/tmpfiles.d/

Also you could include a tmpfiles to set the appropriate ownerships.

# technitium-dns-server.tmpfiles
d /opt/technitium-dns-server 0755 technitium technitium -
Z /opt/technitium-dns-server 0755 technitium technitium -

The PKGBUILD install section would look like this for these files:

install -Dm644 "technitium-dns-server.service" "${pkgdir}/usr/lib/systemd/system/technitium-dns-server.service"
install -Dm644 "technitium-dns-server.sysuser" "${pkgdir}/usr/lib/sysusers.d/technitium.conf"
install -Dm644 "technitium-dns-server.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/technitium.conf"

Additionally the service file should prepend a + to the exec of chown to indicate it should be ran as root and not the service user

ExecStartPre=+/usr/bin/chown -R technitium:technitium /opt/technitium-dns-server/config

EDIT: Ok, I think I see what you're trying to do. You're symlinking in your install script hooks. The sysusers call has already been executed at that point, so the user doesn't get created. If you wanna do it that way you'll need to call systemd-sysusers again in your install script after you've made the links. The .install script should also have hooks to remove those links during uninstall.

SoftExpert commented on 2025-01-26 11:30 (UTC)

This package builds with latest ASP.NET (9.0) and provides service definition files for dinit and systemd . If something is not quite right, thank you in advance for signalling it.