[packages/taskchampion-sync-server] new
atler
atler at pld-linux.org
Sat May 31 02:58:23 CEST 2025
commit 6735440d6ee9168bee29700c5f1ba958ac485f96
Author: Jan Palus <atler at pld-linux.org>
Date: Sat May 31 01:08:27 2025 +0200
new
taskchampion-sync-server.service | 14 ++++++
taskchampion-sync-server.spec | 100 +++++++++++++++++++++++++++++++++++++
taskchampion-sync-server.sysconfig | 5 ++
3 files changed, 119 insertions(+)
---
diff --git a/taskchampion-sync-server.spec b/taskchampion-sync-server.spec
new file mode 100644
index 0000000..23d07f0
--- /dev/null
+++ b/taskchampion-sync-server.spec
@@ -0,0 +1,100 @@
+%define crates_ver 0.6.1
+
+Summary: Sync server for Taskchampion
+Name: taskchampion-sync-server
+Version: 0.6.1
+Release: 1
+License: MIT
+Group: Applications
+Source0: https://github.com/GothenburgBitFactory/taskchampion-sync-server/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 2c6aeb80e919f7fdf39b263757abc2e3
+Source1: %{name}-crates-%{crates_ver}.tar.xz
+# Source1-md5: ef73bc6f71f1c84e60deb015a6bfa1c9
+Source2: %{name}.service
+Source3: %{name}.sysconfig
+URL: http://taskchampion-sync-server.org/
+BuildRequires: cargo
+BuildRequires: pkgconfig
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 2.004
+BuildRequires: rust
+BuildRequires: sqlite3-devel
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires: systemd-units >= 38
+Provides: group(taskchampion-sync)
+Provides: user(taskchampion-sync)
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+TaskChampion is the task database Taskwarrior uses to store and sync
+tasks. TaskChampion Sync-Server implements a sync server against which
+Taskwarrior and other applications embedding TaskChampion can sync.
+
+%prep
+%setup -q -a1
+mv %{name}-%{crates_ver}/vendor .
+
+export CARGO_HOME="$(pwd)/.cargo"
+
+mkdir -p "$CARGO_HOME"
+cat >.cargo/config <<EOF
+[source.crates-io]
+registry = 'https://github.com/rust-lang/crates.io-index'
+replace-with = 'vendored-sources'
+
+[source.vendored-sources]
+directory = '$PWD/vendor'
+EOF
+
+%build
+export CARGO_HOME="$(pwd)/.cargo"
+export LIBSQLITE3_SYS_USE_PKG_CONFIG=true
+%cargo_build --frozen
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+install -d $RPM_BUILD_ROOT{/etc/sysconfig,%{systemdunitdir},/var/lib/taskchampion-sync-server}
+
+export CARGO_HOME="$(pwd)/.cargo"
+export LIBSQLITE3_SYS_USE_PKG_CONFIG=true
+
+%cargo_install --frozen --root $RPM_BUILD_ROOT%{_prefix} --path $(pwd)/server
+
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
+cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+%systemd_post taskchampion-sync-server.service
+
+%pre
+%groupadd -g 354 taskchampion-sync
+%useradd -u 354 -g 354 -d /var/lib/taskchampion-sync-server -s /bin/false -c "TaskChampion Sync-Server user" taskchampion-sync
+
+%preun
+%systemd_preun taskchampion-sync-server.service
+
+%postun
+if [ "$1" = "0" ]; then
+ %userremove taskchampion-sync
+ %groupremove taskchampion-sync
+fi
+%systemd_reload
+
+%files
+%defattr(644,root,root,755)
+%doc CONTRIBUTING.md LICENSE README.md
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
+%attr(755,root,root) %{_bindir}/taskchampion-sync-server
+%{systemdunitdir}/%{name}.service
+%dir %attr(770,taskchampion-sync,taskchampion-sync)/var/lib/taskchampion-sync-server
diff --git a/taskchampion-sync-server.service b/taskchampion-sync-server.service
new file mode 100644
index 0000000..cd865c8
--- /dev/null
+++ b/taskchampion-sync-server.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=TaskChampion Sync-Server
+Wants=network-online.target
+After=network-online.target
+
+[Service]
+EnvironmentFile=-/etc/sysconfig/taskchampion-sync-server
+ExecStart=/usr/bin/taskchampion-sync-server --listen $ADDRESS $OPTIONS
+Type=simple
+User=taskchampion-sync
+Group=taskchampion-sync
+
+[Install]
+WantedBy=multi-user.target
diff --git a/taskchampion-sync-server.sysconfig b/taskchampion-sync-server.sysconfig
new file mode 100644
index 0000000..481c208
--- /dev/null
+++ b/taskchampion-sync-server.sysconfig
@@ -0,0 +1,5 @@
+# Mandatory address and port to listen on
+ADDRESS=localhost:53589
+
+# Other options
+OPTIONS=
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/taskchampion-sync-server.git/commitdiff/6735440d6ee9168bee29700c5f1ba958ac485f96
More information about the pld-cvs-commit
mailing list