Skip to content
Snippets Groups Projects
Commit affb59fb authored by Jakub Jirutka's avatar Jakub Jirutka :flag_ua:
Browse files

testing/clsync: new aport

https://github.com/xaionaro/clsync
File live sync daemon based on inotify
parent f625013a
No related branches found
No related tags found
No related merge requests found
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=clsync
pkgver=0.4.2
pkgrel=0
pkgdesc="File live sync daemon based on inotify"
url="https://github.com/xaionaro/clsync"
arch="all"
license="GPLv3+"
depends=""
depends_dev="glib-dev fts-dev libcap-dev libexecinfo-dev linux-headers musl-dev"
makedepends="$depends_dev autoconf automake file libtool"
subpackages="$pkgname-doc $pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/xaionaro/$pkgname/archive/v$pkgver.tar.gz
musl-fix.patch
pthread_setname_np.patch"
builddir="$srcdir/$pkgname-$pkgver"
prepare() {
default_prepare || return 1
cd "$builddir"
autoreconf -i && ./configure
}
build() {
cd "$builddir"
./configure \
CFLAGS="$CFLAGS -lfts -lexecinfo" \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
--enable-capabilities \
--enable-seccomp \
--disable-debug \
|| return 1
make || return 1
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install || return 1
rm "$pkgdir"/usr/bin/gencompilerflags
}
md5sums="1167b1a3779ac9ce23c3a65091551654 clsync-0.4.2.tar.gz
6d601e7ddcd6b04b1da8db8954d958b3 musl-fix.patch
da964d1b6cb2471b6f46b7099cf8401b pthread_setname_np.patch"
sha256sums="1af63b86c1d0bd663311f2129792446dc8fc4def5559f76658b51b69a8d0c3bd clsync-0.4.2.tar.gz
73c9edc647c1ccec782a24fc1cebde9061087afb92768c18617740c37acf8fc7 musl-fix.patch
e26d72e1ebc25f9b38ffcec3ced6b37ef5fe5da5825947856b2a3fab0821d86a pthread_setname_np.patch"
sha512sums="d14a2efc4bf58d9d5c7a3fe5634cacdd182cd7cd814b0e9ebd99024a7282b056d1f7ceeec6903666391c3572d599a18e205af818b098ed7768d5c0e0f4cd1200 clsync-0.4.2.tar.gz
98e81408911731f6e203368094ea0e9eda312648eef8c5beec98b13c6ee43bccee59f0777805bea4d26cbe4e964d2ff95fe863be5be7750b50358d213f106542 musl-fix.patch
da65cfb7182fa1509c77d7da43132c1f8b4911acb819d90aaab88c78d35167c85c0f23259bb78983fdab8217c43ba93b6b21267ab96c7fdf4723878a800fe414 pthread_setname_np.patch"
musl declares lstat64 only for GNU compatibility using macro
`#define lstat64 lstat`. Local variable lstat in mon_gio overrides
global function lstat from sys/stat.h.
Upstream issue: https://github.com/xaionaro/clsync/issues/150
--- a/mon_gio.c
+++ b/mon_gio.c
@@ -305,18 +305,18 @@
count = 0;
while (gio_wait(ctx_p, indexes_p, &tv)) {
event_t *ev = event_pop();
- stat64_t lstat, *lstat_p;
+ stat64_t _lstat, *lstat_p;
mode_t st_mode;
size_t st_size;
- if ((ev->objtype_new == EOT_DOESNTEXIST) || (ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT) || lstat64(ev->path, &lstat)) {
- debug(2, "Cannot lstat64(\"%s\", lstat). Seems, that the object had been deleted (%i) or option \"--cancel-syscalls mon_stat\" (%i) is set.", ev->path, ev->objtype_new == EOT_DOESNTEXIST, ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT);
+ if ((ev->objtype_new == EOT_DOESNTEXIST) || (ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT) || lstat64(ev->path, &_lstat)) {
+ debug(2, "Cannot lstat64(\"%s\", _lstat). Seems, that the object had been deleted (%i) or option \"--cancel-syscalls mon_stat\" (%i) is set.", ev->path, ev->objtype_new == EOT_DOESNTEXIST, ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT);
st_mode = (ev->objtype_event == EOT_DIR ? S_IFDIR : S_IFREG);
st_size = 0;
lstat_p = NULL;
} else {
- st_mode = lstat.st_mode;
- st_size = lstat.st_size;
- lstat_p = &lstat;
+ st_mode = _lstat.st_mode;
+ st_size = _lstat.st_size;
+ lstat_p = &_lstat;
}
if (sync_prequeue_loadmark(1, ctx_p, indexes_p, NULL, ev->path, lstat_p, ev->objtype_old, ev->objtype_new, ev->event_id, ev->handle_id, st_mode, st_size, &path_full, &path_full_len, NULL)) {
pthread_setname_np is a glibc extension not defined in POSIX
and is not supported by musl libc.
--- a/privileged.c
+++ b/privileged.c
@@ -920,7 +920,7 @@
# endif
} else {
register_blockthread();
- pthread_setname_np(pthread_self(), "clsync-helper");
+ //pthread_setname_np(pthread_self(), "clsync-helper");
}
cap_drop(ctx_p, ctx_p->caps);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment