[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