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

Reply via email to