From d19e0f0d97289a9e4d3c08c956ccfa2257b07bf8 Mon Sep 17 00:00:00 2001 From: Ginger Date: Tue, 2 Sep 2025 09:35:15 -0400 Subject: [PATCH] feat: Move packaging scripts into `dist/` and consolidate the service files --- .forgejo/workflows/release-image.yml | 2 +- arch/conduwuit.service | 84 ------------------- debian/conduwuit.service | 71 ---------------- {fedora => dist}/conduwuit.service | 7 +- {debian => dist/debian}/README.md | 0 {debian => dist/debian}/config | 0 {debian => dist/debian}/postinst | 0 {debian => dist/debian}/postrm | 0 .../fedora}/continuwuity.spec.rpkg | 2 +- .../nix}/pkgs/main/cross-compilation-env.nix | 0 {nix => dist/nix}/pkgs/main/default.nix | 0 docs/configuration/examples.md | 19 +---- docs/deploying/debian.md | 2 +- flake.nix | 2 +- src/core/config/mod.rs | 6 +- src/main/Cargo.toml | 4 +- 16 files changed, 16 insertions(+), 183 deletions(-) delete mode 100644 arch/conduwuit.service delete mode 100644 debian/conduwuit.service rename {fedora => dist}/conduwuit.service (95%) rename {debian => dist/debian}/README.md (100%) rename {debian => dist/debian}/config (100%) rename {debian => dist/debian}/postinst (100%) rename {debian => dist/debian}/postrm (100%) rename {fedora => dist/fedora}/continuwuity.spec.rpkg (97%) rename {nix => dist/nix}/pkgs/main/cross-compilation-env.nix (100%) rename {nix => dist/nix}/pkgs/main/default.nix (100%) diff --git a/.forgejo/workflows/release-image.yml b/.forgejo/workflows/release-image.yml index 58d6cab2..2055d91a 100644 --- a/.forgejo/workflows/release-image.yml +++ b/.forgejo/workflows/release-image.yml @@ -10,7 +10,7 @@ on: - ".gitlab-ci.yml" - ".gitignore" - "renovate.json" - - "debian/**" + - "dist/**" - "docker/**" - "docs/**" # Allows you to run this workflow manually from the Actions tab diff --git a/arch/conduwuit.service b/arch/conduwuit.service deleted file mode 100644 index 18c34f33..00000000 --- a/arch/conduwuit.service +++ /dev/null @@ -1,84 +0,0 @@ -[Unit] - -Description=Continuwuity - Matrix homeserver -Wants=network-online.target -After=network-online.target -Documentation=https://continuwuity.org/ -RequiresMountsFor=/var/lib/private/conduwuit -Alias=matrix-conduwuit.service - -[Service] -DynamicUser=yes -Type=notify-reload -ReloadSignal=SIGUSR1 - -TTYPath=/dev/tty25 -DeviceAllow=char-tty -StandardInput=tty-force -StandardOutput=tty -StandardError=journal+console - -Environment="CONTINUWUITY_LOG_TO_JOURNALD=true" -Environment="CONTINUWUITY_JOURNALD_IDENTIFIER=%N" -Environment="CONTINUWUITY_DATABASE_PATH=/var/lib/conduwuit" - -TTYReset=yes -# uncomment to allow buffer to be cleared every restart -TTYVTDisallocate=no - -TTYColumns=120 -TTYRows=40 - -AmbientCapabilities= -CapabilityBoundingSet= - -DevicePolicy=closed -LockPersonality=yes -MemoryDenyWriteExecute=yes -NoNewPrivileges=yes -#ProcSubset=pid -ProtectClock=yes -ProtectControlGroups=yes -ProtectHome=yes -ProtectHostname=yes -ProtectKernelLogs=yes -ProtectKernelModules=yes -ProtectKernelTunables=yes -ProtectProc=invisible -ProtectSystem=strict -PrivateDevices=yes -PrivateMounts=yes -PrivateTmp=yes -PrivateUsers=yes -PrivateIPC=yes -RemoveIPC=yes -RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX -RestrictNamespaces=yes -RestrictRealtime=yes -RestrictSUIDSGID=yes -SystemCallArchitectures=native -SystemCallFilter=@system-service @resources -SystemCallFilter=~@clock @debug @module @mount @reboot @swap @cpu-emulation @obsolete @timer @chown @setuid @privileged @keyring @ipc -SystemCallErrorNumber=EPERM -StateDirectory=conduwuit - -RuntimeDirectory=conduwuit -RuntimeDirectoryMode=0750 - -Environment=CONTINUWUITY_CONFIG=%d/config.toml -LoadCredential=config.toml:/etc/conduwuit/conduwuit.toml -BindPaths=/var/lib/private/conduwuit:/var/lib/matrix-conduit -BindPaths=/var/lib/private/conduwuit:/var/lib/private/matrix-conduit - -ExecStart=/usr/bin/conduwuit -Restart=on-failure -RestartSec=5 - -TimeoutStopSec=4m -TimeoutStartSec=4m - -StartLimitInterval=1m -StartLimitBurst=5 - -[Install] -WantedBy=multi-user.target diff --git a/debian/conduwuit.service b/debian/conduwuit.service deleted file mode 100644 index ec2505b5..00000000 --- a/debian/conduwuit.service +++ /dev/null @@ -1,71 +0,0 @@ -[Unit] - -Description=Continuwuity - Matrix homeserver -Wants=network-online.target -After=network-online.target -Documentation=https://continuwuity.org/ -Alias=matrix-conduwuit.service - -[Service] -DynamicUser=yes -User=conduwuit -Group=conduwuit -Type=notify - -Environment="CONTINUWUITY_CONFIG=/etc/conduwuit/conduwuit.toml" - -Environment="CONTINUWUITY_LOG_TO_JOURNALD=true" -Environment="CONTINUWUITY_JOURNALD_IDENTIFIER=%N" -Environment="CONTINUWUITY_DATABASE_PATH=/var/lib/conduwuit" - -ExecStart=/usr/sbin/conduwuit - -ReadWritePaths=/var/lib/conduwuit /etc/conduwuit - -AmbientCapabilities= -CapabilityBoundingSet= - -DevicePolicy=closed -LockPersonality=yes -MemoryDenyWriteExecute=yes -NoNewPrivileges=yes -#ProcSubset=pid -ProtectClock=yes -ProtectControlGroups=yes -ProtectHome=yes -ProtectHostname=yes -ProtectKernelLogs=yes -ProtectKernelModules=yes -ProtectKernelTunables=yes -ProtectProc=invisible -ProtectSystem=strict -PrivateDevices=yes -PrivateMounts=yes -PrivateTmp=yes -PrivateUsers=yes -PrivateIPC=yes -RemoveIPC=yes -RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX -RestrictNamespaces=yes -RestrictRealtime=yes -RestrictSUIDSGID=yes -SystemCallArchitectures=native -SystemCallFilter=@system-service @resources -SystemCallFilter=~@clock @debug @module @mount @reboot @swap @cpu-emulation @obsolete @timer @chown @setuid @privileged @keyring @ipc -SystemCallErrorNumber=EPERM -#StateDirectory=conduwuit - -RuntimeDirectory=conduwuit -RuntimeDirectoryMode=0750 - -Restart=on-failure -RestartSec=5 - -TimeoutStopSec=2m -TimeoutStartSec=2m - -StartLimitInterval=1m -StartLimitBurst=5 - -[Install] -WantedBy=multi-user.target diff --git a/fedora/conduwuit.service b/dist/conduwuit.service similarity index 95% rename from fedora/conduwuit.service rename to dist/conduwuit.service index f37c7798..db9aca1a 100644 --- a/fedora/conduwuit.service +++ b/dist/conduwuit.service @@ -9,7 +9,8 @@ Alias=matrix-conduwuit.service DynamicUser=yes User=conduwuit Group=conduwuit -Type=notify +Type=notify-reload +ReloadSignal=SIGUSR1 Environment="CONTINUWUITY_CONFIG=/etc/conduwuit/conduwuit.toml" @@ -59,8 +60,8 @@ RuntimeDirectoryMode=0750 Restart=on-failure RestartSec=5 -TimeoutStopSec=2m -TimeoutStartSec=2m +TimeoutStopSec=4m +TimeoutStartSec=4m StartLimitInterval=1m StartLimitBurst=5 diff --git a/debian/README.md b/dist/debian/README.md similarity index 100% rename from debian/README.md rename to dist/debian/README.md diff --git a/debian/config b/dist/debian/config similarity index 100% rename from debian/config rename to dist/debian/config diff --git a/debian/postinst b/dist/debian/postinst similarity index 100% rename from debian/postinst rename to dist/debian/postinst diff --git a/debian/postrm b/dist/debian/postrm similarity index 100% rename from debian/postrm rename to dist/debian/postrm diff --git a/fedora/continuwuity.spec.rpkg b/dist/fedora/continuwuity.spec.rpkg similarity index 97% rename from fedora/continuwuity.spec.rpkg rename to dist/fedora/continuwuity.spec.rpkg index f2efa383..dec4fff2 100644 --- a/fedora/continuwuity.spec.rpkg +++ b/dist/fedora/continuwuity.spec.rpkg @@ -51,7 +51,7 @@ find .cargo/registry/ -executable -name "*.rs" -exec chmod -x {} + %install install -Dpm0755 target/rpm/conduwuit -t %{buildroot}%{_bindir} -install -Dpm0644 fedora/conduwuit.service -t %{buildroot}%{_unitdir} +install -Dpm0644 dist/conduwuit.service -t %{buildroot}%{_unitdir} install -Dpm0644 conduwuit-example.toml %{buildroot}%{_sysconfdir}/conduwuit/conduwuit.toml %files diff --git a/nix/pkgs/main/cross-compilation-env.nix b/dist/nix/pkgs/main/cross-compilation-env.nix similarity index 100% rename from nix/pkgs/main/cross-compilation-env.nix rename to dist/nix/pkgs/main/cross-compilation-env.nix diff --git a/nix/pkgs/main/default.nix b/dist/nix/pkgs/main/default.nix similarity index 100% rename from nix/pkgs/main/default.nix rename to dist/nix/pkgs/main/default.nix diff --git a/docs/configuration/examples.md b/docs/configuration/examples.md index 54aa8bd7..b30661b5 100644 --- a/docs/configuration/examples.md +++ b/docs/configuration/examples.md @@ -9,24 +9,11 @@ -## Debian systemd unit file +## systemd unit file
-Debian systemd unit file +systemd unit file ``` -{{#include ../../debian/conduwuit.service}} +{{#include ../../dist/conduwuit.service}} ``` - -
- -## Arch Linux systemd unit file - -
-Arch Linux systemd unit file - -``` -{{#include ../../arch/conduwuit.service}} -``` - -
diff --git a/docs/deploying/debian.md b/docs/deploying/debian.md index 2e8a544a..527c1864 100644 --- a/docs/deploying/debian.md +++ b/docs/deploying/debian.md @@ -1 +1 @@ -{{#include ../../debian/README.md}} +{{#include ../../dist/debian/README.md}} diff --git a/flake.nix b/flake.nix index d6beb84e..4655fc01 100644 --- a/flake.nix +++ b/flake.nix @@ -48,7 +48,7 @@ pkgs.lib.makeScope pkgs.newScope (self: { inherit pkgs inputs; craneLib = (inputs.crane.mkLib pkgs).overrideToolchain (_: toolchain); - main = self.callPackage ./nix/pkgs/main { }; + main = self.callPackage ./dist/nix/pkgs/main { }; liburing = pkgs.liburing.overrideAttrs { # Tests weren't building outputs = [ diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index 58a39a75..e9e6d28d 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -126,9 +126,9 @@ pub struct Config { /// This is the only directory where continuwuity will save its data, /// including media. Note: this was previously "/var/lib/matrix-conduit". /// - /// YOU NEED TO EDIT THIS, UNLESS you are running continuwuity as a `systemd` service. - /// The service file sets it to `/var/lib/conduwuit` using an environment variable - /// and also grants write access. + /// YOU NEED TO EDIT THIS, UNLESS you are running continuwuity as a + /// `systemd` service. The service file sets it to `/var/lib/conduwuit` + /// using an environment variable and also grants write access. /// /// example: "/var/lib/conduwuit" pub database_path: PathBuf, diff --git a/src/main/Cargo.toml b/src/main/Cargo.toml index eafa1e48..cecd36e9 100644 --- a/src/main/Cargo.toml +++ b/src/main/Cargo.toml @@ -32,10 +32,10 @@ a cool hard fork of Conduit, a Matrix homeserver written in Rust""" section = "net" priority = "optional" conf-files = ["/etc/conduwuit/conduwuit.toml"] -maintainer-scripts = "../../debian/" +maintainer-scripts = "../../dist/debian/" systemd-units = { unit-name = "conduwuit", start = false } assets = [ - ["../../debian/README.md", "usr/share/doc/conduwuit/README.Debian", "644"], + ["../../dist/debian/README.md", "usr/share/doc/conduwuit/README.Debian", "644"], ["../../README.md", "usr/share/doc/conduwuit/", "644"], ["../../target/release/conduwuit", "usr/sbin/conduwuit", "755"], ["../../conduwuit-example.toml", "etc/conduwuit/conduwuit.toml", "640"],