summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO11
-rw-r--r--.gitignore1
-rw-r--r--PKGBUILD45
-rw-r--r--lsyncd.service13
-rw-r--r--lsyncd.sysusers1
5 files changed, 53 insertions, 18 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2b315ad1b845..435906215628 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,19 +1,24 @@
pkgbase = lsyncd
pkgdesc = Live Syncing (Mirror) Daemon
pkgver = 2.3.1
- pkgrel = 3
+ pkgrel = 4
url = https://github.com/lsyncd/lsyncd
arch = x86_64
license = GPL2
+ checkdepends = lua53-posix
+ checkdepends = openssh
makedepends = asciidoc
makedepends = cmake
- depends = rsync
+ depends = glibc
depends = lua53
+ depends = rsync
source = lsyncd-2.3.1.tar.gz::https://github.com/lsyncd/lsyncd/archive/refs/tags/v2.3.1.tar.gz
source = lsyncd.service
+ source = lsyncd.sysusers
source = use-lua53.patch
sha256sums = 501f70368da8c43d3da81bf9bbb22f43dfcbc9f96b03c745842f326723c091c7
- sha256sums = 538072a4505abbdf8c4d16c9200810d4a2253f892a71fc16b5cd7f35ebe1ae57
+ sha256sums = e9a55c1851906f36c74213565b800e1118d71a98546ccbbb6ac758f0eb89e1d5
+ sha256sums = f3d6b6c1411de9f6c9a2980e41dcfb87ede9c02005ebb881878f399f062d825f
sha256sums = ef55721553bdac0e3441ced58b9df1bb0d24f97513e66c12c3e94a477ba89115
pkgname = lsyncd
diff --git a/.gitignore b/.gitignore
index 522500351caa..fb7b400a5867 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@
!PKGBUILD
!.SRCINFO
!lsyncd.service
+!lsyncd.sysusers
!use-lua53.patch
diff --git a/PKGBUILD b/PKGBUILD
index c46f1b6e5266..d60d2da6733a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,34 +4,40 @@
pkgname=lsyncd
pkgver=2.3.1
-pkgrel=3
+pkgrel=4
pkgdesc="Live Syncing (Mirror) Daemon"
arch=(x86_64)
url="https://github.com/lsyncd/lsyncd"
license=(GPL2)
depends=(
- rsync
+ glibc
lua53
+ rsync
)
makedepends=(
asciidoc
cmake
)
+checkdepends=(
+ lua53-posix
+ openssh
+)
source=(
"$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz"
"lsyncd.service"
+ "lsyncd.sysusers"
"use-lua53.patch"
)
sha256sums=(
'501f70368da8c43d3da81bf9bbb22f43dfcbc9f96b03c745842f326723c091c7'
- '538072a4505abbdf8c4d16c9200810d4a2253f892a71fc16b5cd7f35ebe1ae57'
+ 'e9a55c1851906f36c74213565b800e1118d71a98546ccbbb6ac758f0eb89e1d5'
+ 'f3d6b6c1411de9f6c9a2980e41dcfb87ede9c02005ebb881878f399f062d825f'
'ef55721553bdac0e3441ced58b9df1bb0d24f97513e66c12c3e94a477ba89115'
)
_archive="$pkgname-$pkgver"
-
prepare() {
cd "$_archive"
@@ -42,23 +48,38 @@ build() {
cd "$_archive"
cmake -B build -S . \
- -DCMAKE_BUILD_TYPE='None' \
- -DCMAKE_INSTALL_PREFIX='/usr' \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
-Wno-dev
cmake --build build
}
+check() {
+ cd "$_archive"
+
+ # Lua dependency lua-crontab is not packaged. Link:
+ # https://luarocks.org/modules/agladysh/lua-crontab
+ sed --in-place '/cron-rsync.lua/d' CMakeLists.txt
+
+ # SSH tests not functional if BUILDDIR is outside of home directory.
+ sed --in-place '/exclude-rsyncssh.lua/d' CMakeLists.txt
+ sed --in-place '/churn-rsyncssh.lua/d' CMakeLists.txt
+
+ make -C build run-tests
+}
+
package() {
cd "$_archive"
DESTDIR="$pkgdir" cmake --install build
- install -Dm664 "${pkgdir}/man1/lsyncd.1" "${pkgdir}/usr/share/man/man1/lsyncd.1"
- rm -rf "${pkgdir}/man1"
+ install -Dm664 "$pkgdir/man1/lsyncd.1" "$pkgdir/usr/share/man/man1/lsyncd.1"
+ rm -rf "$pkgdir/man1"
- install -m 644 -D "${srcdir}/lsyncd.service" "${pkgdir}/usr/lib/systemd/system/lsyncd.service"
+ install -Dm644 "$srcdir/$pkgname.service" "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+ install -Dm644 "$srcdir/$pkgname.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
- mkdir -p "${pkgdir}/usr/share/doc/$pkgname"
- cp -r "${pkgdir}/usr/doc/examples" "${pkgdir}/usr/share/doc/$pkgname/examples"
- rm -rf "${pkgdir}/usr/doc"
+ mkdir -p "$pkgdir/usr/share/doc/$pkgname"
+ cp -r "$pkgdir/usr/doc/examples" "$pkgdir/usr/share/doc/$pkgname/examples"
+ rm -rf "$pkgdir/usr/doc"
}
diff --git a/lsyncd.service b/lsyncd.service
index bdff00a08e1b..0127427adcde 100644
--- a/lsyncd.service
+++ b/lsyncd.service
@@ -1,11 +1,18 @@
-# Author: TamCore <philipp at tamcore dot eu>
[Unit]
Description=synchronization daemon
[Service]
Type=simple
-PIDFile=/run/lsyncd.pid
-ExecStart=/usr/bin/lsyncd -pidfile /run/lsyncd.pid /etc/lsyncd/lsyncd.conf.lua
+User=lsyncd
+Group=lsyncd
+Restart=always
+ExecStart=/usr/bin/lsyncd -nodaemon /etc/lsyncd/lsyncd.conf.lua
+ExecReload=/bin/kill -HUP $MAINPID
+
+# Hardening
+PrivateTmp=true
+ProtectSystem=full
+NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
diff --git a/lsyncd.sysusers b/lsyncd.sysusers
new file mode 100644
index 000000000000..abf892c6100c
--- /dev/null
+++ b/lsyncd.sysusers
@@ -0,0 +1 @@
+u lsyncd - "lsyncd user" /nonexistent /bin/false