The libeio event loop adds RPM_CHECK_LIB to handle --with-libeio here:
[https://github.com/rpm5/rpm/commit/133c60b4036fd97af89390aea6ae94034239d545](url)
(Presumably you will do your own pkg-config AutoFU to handle --with-libeio)
The patch in comments above has been mildly reworked to remove all debugging
and start the event loop globally here:
[https://github.com/rpm5/rpm/commit/f29874c11d30309048bc726f637c1cc5e2c6b856](url)
You will need to manually enable asynchronous fsync-on-close (similar as
before):
```
diff --git a/lib/fsm.c b/lib/fsm.c
index 553774b..a7affcf 100644
--- a/lib/fsm.c
+++ b/lib/fsm.c
@@ -218,7 +218,7 @@ static int expandRegular(rpmfi fi, const char *dest, rpmpsm
psm, int nodigest, i
/* Create the file with 0200 permissions (write by owner). */
{
mode_t old_umask = umask(0577);
- wfd = Fopen(dest, "w.ufdio");
+ wfd = Fopen(dest, "wNS.ufdio");
umask(old_umask);
}
if (Ferror(wfd)) {
```
What is likely controversial is starting the event loop everywhere all the time
in lib/poptALL.c
```
+#if defined(WITH_LIBEIO)
+ /* Start libeio event loop. */
+ rc = rpmeioStart(NULL);
+ if (rc)
+ fprintf(stderr, _("%s: event loop failed to start (%d)\n"),
+ xgetprogname(), rc);
+#endif
```
If you don't like my patch in lib/poptALL.c (I have mixed feelings), then
please supply a positive suggestion for where and how to start an event loop in
RPM.
I doubt an idle event loop hurts anything. But if an idle event loop does
affect RPM somehow, well its time to discover what else is needed IMHO. YMMV ...
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/258#issuecomment-320544133
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint