diff options
-rw-r--r-- | .SRCINFO | 11 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | PKGBUILD | 45 | ||||
-rw-r--r-- | lsyncd.service | 13 | ||||
-rw-r--r-- | lsyncd.sysusers | 1 |
5 files changed, 53 insertions, 18 deletions
@@ -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 @@ -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 |