RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [email protected]
  Module: rpm                              Date:   12-Jun-2017 08:54:07
  Branch: rpm-5_4                          Handle: 2017061206540600

  Modified files:           (Branch: rpm-5_4)
    rpm                     CHANGES configure.ac
    rpm/misc                Makefile.am
    rpm/rpmio               Makefile.am librpmio.vers poptIO.c rpmev.h rpmio.c
                            rpmio.h rpmio_internal.h tmq.c

  Log:
    - rpmev: stub in libev wrapper(s).

  Summary:
    Revision    Changes     Path
    1.3501.2.576+1  -0      rpm/CHANGES
    2.472.2.174 +600 -5     rpm/configure.ac
    1.56.2.18   +12 -2      rpm/misc/Makefile.am
    1.293.2.90  +2  -1      rpm/rpmio/Makefile.am
    2.199.2.89  +8  -0      rpm/rpmio/librpmio.vers
    1.94.2.37   +3  -0      rpm/rpmio/poptIO.c
    1.1.2.3     +14 -0      rpm/rpmio/rpmev.h
    1.230.2.59  +2  -32     rpm/rpmio/rpmio.c
    1.97.2.24   +0  -5      rpm/rpmio/rpmio.h
    2.127.2.17  +0  -2      rpm/rpmio/rpmio_internal.h
    1.1.2.20    +14 -346    rpm/rpmio/tmq.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3501.2.575 -r1.3501.2.576 CHANGES
  --- rpm/CHANGES       10 Jun 2017 00:22:35 -0000      1.3501.2.575
  +++ rpm/CHANGES       12 Jun 2017 06:54:06 -0000      1.3501.2.576
  @@ -1,4 +1,5 @@
   5.4.17 -> 5.4.18:
  +    - jbj: rpmev: stub in libev wrapper(s).
       - jbj: rpmio: add rpmioB2N/rpmioN2B to display/set bit soup.
       - jbj: rpmio: rename rpmio{Fts,Open}Flags.
       - jbj: rpmio: add rpmio{Mount,Umount}Flags.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/configure.ac
  ============================================================================
  $ cvs diff -u -r2.472.2.173 -r2.472.2.174 configure.ac
  --- rpm/configure.ac  30 May 2017 19:18:38 -0000      2.472.2.173
  +++ rpm/configure.ac  12 Jun 2017 06:54:06 -0000      2.472.2.174
  @@ -2253,15 +2253,12 @@
         fi
         HAVE_RPM_COMPRESSION=yes 
       ], [])
  -if test ".$HAVE_RPM_COMPRESSION" = .no; then
  -    AC_MSG_ERROR([you have passed --without-{xz,bzip2,zlib} together but it 
isn't possible to build rpm without any form of compression library. At a 
minimum, i suggest adding --with-zlib if you want to actually build and install 
a *.rpm package])
  -fi
   
   dnl # Facebook Zstd
   RPM_CHECK_LIB(
       [Facebook Zstd], [zstd],
       [zstd], [ZSTD_versionNumber], [zstd.h],
  -    [no,external:none], [],
  +    [no,external:internal:none], [zstd:lib:lib],
       [
           AC_CHECK_FUNCS(COVER_optimizeTrainFromBuffer)
           AC_CHECK_FUNCS(COVER_trainFromBuffer)
  @@ -2406,8 +2403,154 @@
           AC_CHECK_FUNCS(ZSTD_sizeof_DStream)
           AC_CHECK_FUNCS(ZSTD_versionNumber)
           AC_CHECK_FUNCS(ZSTD_versionString)
  +      HAVE_RPM_COMPRESSION=yes 
  +    ], [])
  +
  +dnl # Google Brotli
  +RPM_CHECK_LIB(
  +    [Google Brotli], [brotli],
  +    [brotli], [XXX], [version.h],
  +    [no,internal:external:none], [brotli:c/include],
  +    [
       ], [])
   
  +dnl # Google Snappy
  +RPM_CHECK_LIB(
  +    [Google Snappy], [snappy],
  +    [snappy], [snappy_compress], [snappy-c.h],
  +    [no,external:internal:none], [snappy],
  +    [
  +        AC_CHECK_FUNCS(snappy_compress)
  +        AC_CHECK_FUNCS(snappy_max_compressed_length)
  +        AC_CHECK_FUNCS(snappy_uncompress)
  +        AC_CHECK_FUNCS(snappy_uncompressed_length)
  +        AC_CHECK_FUNCS(snappy_validate_compressed_buffer)
  +    ], [])
  +
  +dnl # Apple Lzfse
  +RPM_CHECK_LIB(
  +    [Apple Lzfse], [lzfse],
  +    [lzfse], [lzfse_encode_init], [lzfse.h],
  +    [no,internal:external:none], [lzfse:src],
  +    [
  +    ], [])
  +
  +dnl # LZ4
  +RPM_CHECK_LIB(
  +    [LZ4], [lz4],
  +    [lz4], [LZ4_versionNumber], [lz4.h],
  +    [no,external:internal:none], [lz4:lib],
  +    [
  +        AC_CHECK_FUNCS(LZ4_compress)
  +        AC_CHECK_FUNCS(LZ4_compressBound)
  +        AC_CHECK_FUNCS(LZ4_compress_continue)
  +        AC_CHECK_FUNCS(LZ4_compress_default)
  +        AC_CHECK_FUNCS(LZ4_compress_destSize)
  +        AC_CHECK_FUNCS(LZ4_compress_fast)
  +        AC_CHECK_FUNCS(LZ4_compress_fast_continue)
  +        AC_CHECK_FUNCS(LZ4_compress_fast_extState)
  +        AC_CHECK_FUNCS(LZ4_compress_fast_force)
  +        AC_CHECK_FUNCS(LZ4_compress_forceExtDict)
  +        AC_CHECK_FUNCS(LZ4_compressHC)
  +        AC_CHECK_FUNCS(LZ4_compress_HC)
  +        AC_CHECK_FUNCS(LZ4_compressHC2)
  +        AC_CHECK_FUNCS(LZ4_compressHC2_continue)
  +        AC_CHECK_FUNCS(LZ4_compressHC2_limitedOutput)
  +        AC_CHECK_FUNCS(LZ4_compressHC2_limitedOutput_continue)
  +        AC_CHECK_FUNCS(LZ4_compressHC2_limitedOutput_withStateHC)
  +        AC_CHECK_FUNCS(LZ4_compressHC2_withStateHC)
  +        AC_CHECK_FUNCS(LZ4_compress_HC_continue)
  +        AC_CHECK_FUNCS(LZ4_compressHC_continue)
  +        AC_CHECK_FUNCS(LZ4_compress_HC_extStateHC)
  +        AC_CHECK_FUNCS(LZ4_compressHC_limitedOutput)
  +        AC_CHECK_FUNCS(LZ4_compressHC_limitedOutput_continue)
  +        AC_CHECK_FUNCS(LZ4_compressHC_limitedOutput_withStateHC)
  +        AC_CHECK_FUNCS(LZ4_compressHC_withStateHC)
  +        AC_CHECK_FUNCS(LZ4_compress_limitedOutput)
  +        AC_CHECK_FUNCS(LZ4_compress_limitedOutput_continue)
  +        AC_CHECK_FUNCS(LZ4_compress_limitedOutput_withState)
  +        AC_CHECK_FUNCS(LZ4_compress_withState)
  +        AC_CHECK_FUNCS(LZ4_create)
  +        AC_CHECK_FUNCS(LZ4_createHC)
  +        AC_CHECK_FUNCS(LZ4_createStream)
  +        AC_CHECK_FUNCS(LZ4_createStreamDecode)
  +        AC_CHECK_FUNCS(LZ4_createStreamHC)
  +        AC_CHECK_FUNCS(LZ4_decompress_fast)
  +        AC_CHECK_FUNCS(LZ4_decompress_fast_continue)
  +        AC_CHECK_FUNCS(LZ4_decompress_fast_usingDict)
  +        AC_CHECK_FUNCS(LZ4_decompress_fast_withPrefix64k)
  +        AC_CHECK_FUNCS(LZ4_decompress_safe)
  +        AC_CHECK_FUNCS(LZ4_decompress_safe_continue)
  +        AC_CHECK_FUNCS(LZ4_decompress_safe_forceExtDict)
  +        AC_CHECK_FUNCS(LZ4_decompress_safe_partial)
  +        AC_CHECK_FUNCS(LZ4_decompress_safe_usingDict)
  +        AC_CHECK_FUNCS(LZ4_decompress_safe_withPrefix64k)
  +        AC_CHECK_FUNCS(LZ4F_compressBegin)
  +        AC_CHECK_FUNCS(LZ4F_compressBound)
  +        AC_CHECK_FUNCS(LZ4F_compressEnd)
  +        AC_CHECK_FUNCS(LZ4F_compressFrame)
  +        AC_CHECK_FUNCS(LZ4F_compressFrameBound)
  +        AC_CHECK_FUNCS(LZ4F_compressUpdate)
  +        AC_CHECK_FUNCS(LZ4F_createCompressionContext)
  +        AC_CHECK_FUNCS(LZ4F_createDecompressionContext)
  +        AC_CHECK_FUNCS(LZ4F_decompress)
  +        AC_CHECK_FUNCS(LZ4F_flush)
  +        AC_CHECK_FUNCS(LZ4F_freeCompressionContext)
  +        AC_CHECK_FUNCS(LZ4F_freeDecompressionContext)
  +        AC_CHECK_FUNCS(LZ4F_getErrorCode)
  +        AC_CHECK_FUNCS(LZ4F_getErrorName)
  +        AC_CHECK_FUNCS(LZ4F_getFrameInfo)
  +        AC_CHECK_FUNCS(LZ4F_getVersion)
  +        AC_CHECK_FUNCS(LZ4F_isError)
  +        AC_CHECK_FUNCS(LZ4_freeHC)
  +        AC_CHECK_FUNCS(LZ4_freeStream)
  +        AC_CHECK_FUNCS(LZ4_freeStreamDecode)
  +        AC_CHECK_FUNCS(LZ4_freeStreamHC)
  +        AC_CHECK_FUNCS(LZ4_loadDict)
  +        AC_CHECK_FUNCS(LZ4_loadDictHC)
  +        AC_CHECK_FUNCS(LZ4_resetStream)
  +        AC_CHECK_FUNCS(LZ4_resetStreamHC)
  +        AC_CHECK_FUNCS(LZ4_resetStreamState)
  +        AC_CHECK_FUNCS(LZ4_resetStreamStateHC)
  +        AC_CHECK_FUNCS(LZ4_saveDict)
  +        AC_CHECK_FUNCS(LZ4_saveDictHC)
  +        AC_CHECK_FUNCS(LZ4_setStreamDecode)
  +        AC_CHECK_FUNCS(LZ4_sizeofState)
  +        AC_CHECK_FUNCS(LZ4_sizeofStateHC)
  +        AC_CHECK_FUNCS(LZ4_sizeofStreamState)
  +        AC_CHECK_FUNCS(LZ4_sizeofStreamStateHC)
  +        AC_CHECK_FUNCS(LZ4_slideInputBuffer)
  +        AC_CHECK_FUNCS(LZ4_slideInputBufferHC)
  +        AC_CHECK_FUNCS(LZ4_uncompress)
  +        AC_CHECK_FUNCS(LZ4_uncompress_unknownOutputSize)
  +        AC_CHECK_FUNCS(LZ4_versionNumber)
  +        AC_CHECK_FUNCS(LZ4_versionString)
  +        AC_CHECK_FUNCS(LZ4_XXH32)
  +        AC_CHECK_FUNCS(LZ4_XXH32_canonicalFromHash)
  +        AC_CHECK_FUNCS(LZ4_XXH32_copyState)
  +        AC_CHECK_FUNCS(LZ4_XXH32_createState)
  +        AC_CHECK_FUNCS(LZ4_XXH32_digest)
  +        AC_CHECK_FUNCS(LZ4_XXH32_freeState)
  +        AC_CHECK_FUNCS(LZ4_XXH32_hashFromCanonical)
  +        AC_CHECK_FUNCS(LZ4_XXH32_reset)
  +        AC_CHECK_FUNCS(LZ4_XXH32_update)
  +        AC_CHECK_FUNCS(LZ4_XXH64)
  +        AC_CHECK_FUNCS(LZ4_XXH64_canonicalFromHash)
  +        AC_CHECK_FUNCS(LZ4_XXH64_copyState)
  +        AC_CHECK_FUNCS(LZ4_XXH64_createState)
  +        AC_CHECK_FUNCS(LZ4_XXH64_digest)
  +        AC_CHECK_FUNCS(LZ4_XXH64_freeState)
  +        AC_CHECK_FUNCS(LZ4_XXH64_hashFromCanonical)
  +        AC_CHECK_FUNCS(LZ4_XXH64_reset)
  +        AC_CHECK_FUNCS(LZ4_XXH64_update)
  +        AC_CHECK_FUNCS(LZ4_XXH_versionNumber)
  +      HAVE_RPM_COMPRESSION=yes 
  +    ], [])
  +
  +if test ".$HAVE_RPM_COMPRESSION" = .no; then
  +    AC_MSG_ERROR([you have passed --without-{zstd,xz,bzip2,zlib} together 
but it isn't possible to build rpm without any form of compression library. At 
a minimum, i suggest adding --with-zlib if you want to actually build and 
install a *.rpm package])
  +fi
  +
   dnl # BeeCrypt
   RPM_CHECK_LIB(
       [BeeCrypt], [beecrypt],
  @@ -4568,8 +4711,9 @@
   RPM_CHECK_LIB(
       [SHM in C], [shm],
       [c], [shmctl], [sys/shm.h],
  -    [no,external:none], [],
  +    [yes,external:none], [],
       [   LIBS="$OLIBS"
  +        AC_CHECK_HEADERS(sys/shm.h)
           AC_CHECK_FUNCS(shmctl)
           AC_CHECK_FUNCS(shmget)
           AC_CHECK_FUNCS(shmat)
  @@ -4925,6 +5069,457 @@
           AC_CHECK_FUNCS(io_submit)
       ], [])
   
  +dnl # Libevent
  +RPM_CHECK_LIB(
  +    [Libevent], [libevent],
  +    [event], [event_init], [event.h],
  +    [no,external:none], [],
  +    [
  +    ], [])
  +
  +dnl # Libev
  +RPM_CHECK_LIB(
  +    [Libev], [libev],
  +    [ev], [ev_run], [ev.h],
  +    [no,external:none], [],
  +    [
  +        AC_CHECK_FUNCS(ev_async_send)
  +        AC_CHECK_FUNCS(ev_async_start)
  +        AC_CHECK_FUNCS(ev_async_stop)
  +        AC_CHECK_FUNCS(ev_backend)
  +        AC_CHECK_FUNCS(ev_break)
  +        AC_CHECK_FUNCS(ev_check_start)
  +        AC_CHECK_FUNCS(ev_check_stop)
  +        AC_CHECK_FUNCS(ev_child_start)
  +        AC_CHECK_FUNCS(ev_child_stop)
  +        AC_CHECK_FUNCS(ev_cleanup_start)
  +        AC_CHECK_FUNCS(ev_cleanup_stop)
  +        AC_CHECK_FUNCS(ev_clear_pending)
  +        AC_CHECK_FUNCS(ev_default_loop)
  +        AC_CHECK_FUNCS(ev_depth)
  +        AC_CHECK_FUNCS(ev_embeddable_backends)
  +        AC_CHECK_FUNCS(ev_embed_start)
  +        AC_CHECK_FUNCS(ev_embed_stop)
  +        AC_CHECK_FUNCS(ev_embed_sweep)
  +        AC_CHECK_FUNCS(event_active)
  +        AC_CHECK_FUNCS(event_add)
  +        AC_CHECK_FUNCS(event_base_dispatch)
  +        AC_CHECK_FUNCS(event_base_free)
  +        AC_CHECK_FUNCS(event_base_get_method)
  +        AC_CHECK_FUNCS(event_base_loop)
  +        AC_CHECK_FUNCS(event_base_loopexit)
  +        AC_CHECK_FUNCS(event_base_new)
  +        AC_CHECK_FUNCS(event_base_once)
  +        AC_CHECK_FUNCS(event_base_priority_init)
  +        AC_CHECK_FUNCS(event_base_set)
  +        AC_CHECK_FUNCS(event_del)
  +        AC_CHECK_FUNCS(event_dispatch)
  +        AC_CHECK_FUNCS(event_get_callback)
  +        AC_CHECK_FUNCS(event_get_method)
  +        AC_CHECK_FUNCS(event_get_version)
  +        AC_CHECK_FUNCS(event_init)
  +        AC_CHECK_FUNCS(event_loop)
  +        AC_CHECK_FUNCS(event_loopexit)
  +        AC_CHECK_FUNCS(event_once)
  +        AC_CHECK_FUNCS(event_pending)
  +        AC_CHECK_FUNCS(event_priority_init)
  +        AC_CHECK_FUNCS(event_priority_set)
  +        AC_CHECK_FUNCS(event_set)
  +        AC_CHECK_FUNCS(ev_feed_event)
  +        AC_CHECK_FUNCS(ev_feed_fd_event)
  +        AC_CHECK_FUNCS(ev_feed_signal)
  +        AC_CHECK_FUNCS(ev_feed_signal_event)
  +        AC_CHECK_FUNCS(ev_fork_start)
  +        AC_CHECK_FUNCS(ev_fork_stop)
  +        AC_CHECK_FUNCS(ev_idle_start)
  +        AC_CHECK_FUNCS(ev_idle_stop)
  +        AC_CHECK_FUNCS(ev_invoke)
  +        AC_CHECK_FUNCS(ev_invoke_pending)
  +        AC_CHECK_FUNCS(ev_io_start)
  +        AC_CHECK_FUNCS(ev_io_stop)
  +        AC_CHECK_FUNCS(ev_iteration)
  +        AC_CHECK_FUNCS(ev_loop_destroy)
  +        AC_CHECK_FUNCS(ev_loop_fork)
  +        AC_CHECK_FUNCS(ev_loop_new)
  +        AC_CHECK_FUNCS(ev_now)
  +        AC_CHECK_FUNCS(ev_now_update)
  +        AC_CHECK_FUNCS(ev_once)
  +        AC_CHECK_FUNCS(ev_pending_count)
  +        AC_CHECK_FUNCS(ev_periodic_again)
  +        AC_CHECK_FUNCS(ev_periodic_start)
  +        AC_CHECK_FUNCS(ev_periodic_stop)
  +        AC_CHECK_FUNCS(ev_prepare_start)
  +        AC_CHECK_FUNCS(ev_prepare_stop)
  +        AC_CHECK_FUNCS(ev_recommended_backends)
  +        AC_CHECK_FUNCS(ev_ref)
  +        AC_CHECK_FUNCS(ev_resume)
  +        AC_CHECK_FUNCS(ev_run)
  +        AC_CHECK_FUNCS(ev_set_allocator)
  +        AC_CHECK_FUNCS(ev_set_invoke_pending_cb)
  +        AC_CHECK_FUNCS(ev_set_io_collect_interval)
  +        AC_CHECK_FUNCS(ev_set_loop_release_cb)
  +        AC_CHECK_FUNCS(ev_set_syserr_cb)
  +        AC_CHECK_FUNCS(ev_set_timeout_collect_interval)
  +        AC_CHECK_FUNCS(ev_set_userdata)
  +        AC_CHECK_FUNCS(ev_signal_start)
  +        AC_CHECK_FUNCS(ev_signal_stop)
  +        AC_CHECK_FUNCS(ev_sleep)
  +        AC_CHECK_FUNCS(ev_stat_start)
  +        AC_CHECK_FUNCS(ev_stat_stat)
  +        AC_CHECK_FUNCS(ev_stat_stop)
  +        AC_CHECK_FUNCS(ev_supported_backends)
  +        AC_CHECK_FUNCS(ev_suspend)
  +        AC_CHECK_FUNCS(ev_time)
  +        AC_CHECK_FUNCS(ev_timer_again)
  +        AC_CHECK_FUNCS(ev_timer_remaining)
  +        AC_CHECK_FUNCS(ev_timer_start)
  +        AC_CHECK_FUNCS(ev_timer_stop)
  +        AC_CHECK_FUNCS(ev_unref)
  +        AC_CHECK_FUNCS(ev_userdata)
  +        AC_CHECK_FUNCS(ev_verify)
  +        AC_CHECK_FUNCS(ev_version_major)
  +        AC_CHECK_FUNCS(ev_version_minor)
  +    ], [])
  +
  +dnl # Libuv
  +RPM_CHECK_LIB(
  +    [Libuv], [libuv],
  +    [uv], [uv_run], [uv.h],
  +    [no,external:none], [],
  +    [
  +        AC_CHECK_FUNCS(uv_accept)
  +        AC_CHECK_FUNCS(uv__accept)
  +        AC_CHECK_FUNCS(uv__accept4)
  +        AC_CHECK_FUNCS(uv__async_close)
  +        AC_CHECK_FUNCS(uv__async_init)
  +        AC_CHECK_FUNCS(uv_async_init)
  +        AC_CHECK_FUNCS(uv__async_send)
  +        AC_CHECK_FUNCS(uv_async_send)
  +        AC_CHECK_FUNCS(uv__async_start)
  +        AC_CHECK_FUNCS(uv__async_stop)
  +        AC_CHECK_FUNCS(uv_backend_fd)
  +        AC_CHECK_FUNCS(uv_backend_timeout)
  +        AC_CHECK_FUNCS(uv_barrier_destroy)
  +        AC_CHECK_FUNCS(uv_barrier_init)
  +        AC_CHECK_FUNCS(uv_barrier_wait)
  +        AC_CHECK_FUNCS(uv_buf_init)
  +        AC_CHECK_FUNCS(uv__calloc)
  +        AC_CHECK_FUNCS(uv_cancel)
  +        AC_CHECK_FUNCS(uv_chdir)
  +        AC_CHECK_FUNCS(uv__check_close)
  +        AC_CHECK_FUNCS(uv_check_init)
  +        AC_CHECK_FUNCS(uv_check_start)
  +        AC_CHECK_FUNCS(uv_check_stop)
  +        AC_CHECK_FUNCS(uv__cloexec_fcntl)
  +        AC_CHECK_FUNCS(uv__cloexec_ioctl)
  +        AC_CHECK_FUNCS(uv_close)
  +        AC_CHECK_FUNCS(uv__close)
  +        AC_CHECK_FUNCS(uv__close_nocheckstdio)
  +        AC_CHECK_FUNCS(uv_cond_broadcast)
  +        AC_CHECK_FUNCS(uv_cond_destroy)
  +        AC_CHECK_FUNCS(uv_cond_init)
  +        AC_CHECK_FUNCS(uv_cond_signal)
  +        AC_CHECK_FUNCS(uv_cond_timedwait)
  +        AC_CHECK_FUNCS(uv_cond_wait)
  +        AC_CHECK_FUNCS(uv__count_bufs)
  +        AC_CHECK_FUNCS(uv_cpu_info)
  +        AC_CHECK_FUNCS(uv_cwd)
  +        AC_CHECK_FUNCS(uv_default_loop)
  +        AC_CHECK_FUNCS(uv_disable_stdio_inheritance)
  +        AC_CHECK_FUNCS(uv_dlclose)
  +        AC_CHECK_FUNCS(uv_dlerror)
  +        AC_CHECK_FUNCS(uv_dlopen)
  +        AC_CHECK_FUNCS(uv_dlsym)
  +        AC_CHECK_FUNCS(uv__dup)
  +        AC_CHECK_FUNCS(uv__dup2_cloexec)
  +        AC_CHECK_FUNCS(uv__dup3)
  +        AC_CHECK_FUNCS(uv__epoll_create)
  +        AC_CHECK_FUNCS(uv__epoll_create1)
  +        AC_CHECK_FUNCS(uv__epoll_ctl)
  +        AC_CHECK_FUNCS(uv__epoll_pwait)
  +        AC_CHECK_FUNCS(uv__epoll_wait)
  +        AC_CHECK_FUNCS(uv_err_name)
  +        AC_CHECK_FUNCS(uv__eventfd)
  +        AC_CHECK_FUNCS(uv__eventfd2)
  +        AC_CHECK_FUNCS(uv_exepath)
  +        AC_CHECK_FUNCS(uv_fileno)
  +        AC_CHECK_FUNCS(uv__free)
  +        AC_CHECK_FUNCS(uv_freeaddrinfo)
  +        AC_CHECK_FUNCS(uv_free_cpu_info)
  +        AC_CHECK_FUNCS(uv_free_interface_addresses)
  +        AC_CHECK_FUNCS(uv_fs_access)
  +        AC_CHECK_FUNCS(uv_fs_chmod)
  +        AC_CHECK_FUNCS(uv_fs_chown)
  +        AC_CHECK_FUNCS(uv_fs_close)
  +        AC_CHECK_FUNCS(uv__fs_event_close)
  +        AC_CHECK_FUNCS(uv_fs_event_getpath)
  +        AC_CHECK_FUNCS(uv_fs_event_init)
  +        AC_CHECK_FUNCS(uv_fs_event_start)
  +        AC_CHECK_FUNCS(uv_fs_event_stop)
  +        AC_CHECK_FUNCS(uv_fs_fchmod)
  +        AC_CHECK_FUNCS(uv_fs_fchown)
  +        AC_CHECK_FUNCS(uv_fs_fdatasync)
  +        AC_CHECK_FUNCS(uv_fs_fstat)
  +        AC_CHECK_FUNCS(uv_fs_fsync)
  +        AC_CHECK_FUNCS(uv_fs_ftruncate)
  +        AC_CHECK_FUNCS(uv_fs_futime)
  +        AC_CHECK_FUNCS(uv_fs_link)
  +        AC_CHECK_FUNCS(uv_fs_lstat)
  +        AC_CHECK_FUNCS(uv_fs_mkdir)
  +        AC_CHECK_FUNCS(uv_fs_mkdtemp)
  +        AC_CHECK_FUNCS(uv_fs_open)
  +        AC_CHECK_FUNCS(uv__fs_poll_close)
  +        AC_CHECK_FUNCS(uv_fs_poll_getpath)
  +        AC_CHECK_FUNCS(uv_fs_poll_init)
  +        AC_CHECK_FUNCS(uv_fs_poll_start)
  +        AC_CHECK_FUNCS(uv_fs_poll_stop)
  +        AC_CHECK_FUNCS(uv_fs_read)
  +        AC_CHECK_FUNCS(uv_fs_readlink)
  +        AC_CHECK_FUNCS(uv_fs_realpath)
  +        AC_CHECK_FUNCS(uv_fs_rename)
  +        AC_CHECK_FUNCS(uv_fs_req_cleanup)
  +        AC_CHECK_FUNCS(uv_fs_rmdir)
  +        AC_CHECK_FUNCS(uv_fs_scandir)
  +        AC_CHECK_FUNCS(uv__fs_scandir_cleanup)
  +        AC_CHECK_FUNCS(uv_fs_scandir_next)
  +        AC_CHECK_FUNCS(uv_fs_sendfile)
  +        AC_CHECK_FUNCS(uv_fs_stat)
  +        AC_CHECK_FUNCS(uv_fs_symlink)
  +        AC_CHECK_FUNCS(uv_fs_unlink)
  +        AC_CHECK_FUNCS(uv_fs_utime)
  +        AC_CHECK_FUNCS(uv_fs_write)
  +        AC_CHECK_FUNCS(uv_getaddrinfo)
  +        AC_CHECK_FUNCS(uv__getaddrinfo_translate_error)
  +        AC_CHECK_FUNCS(uv_get_free_memory)
  +        AC_CHECK_FUNCS(uv__getiovmax)
  +        AC_CHECK_FUNCS(uv_getnameinfo)
  +        AC_CHECK_FUNCS(uv_get_process_title)
  +        AC_CHECK_FUNCS(uv__getpwuid_r)
  +        AC_CHECK_FUNCS(uv_getrusage)
  +        AC_CHECK_FUNCS(uv_get_total_memory)
  +        AC_CHECK_FUNCS(uv_guess_handle)
  +        AC_CHECK_FUNCS(uv_handle_size)
  +        AC_CHECK_FUNCS(uv__handle_type)
  +        AC_CHECK_FUNCS(uv_has_ref)
  +        AC_CHECK_FUNCS(uv_hrtime)
  +        AC_CHECK_FUNCS(uv__hrtime)
  +        AC_CHECK_FUNCS(uv__idle_close)
  +        AC_CHECK_FUNCS(uv_idle_init)
  +        AC_CHECK_FUNCS(uv_idle_start)
  +        AC_CHECK_FUNCS(uv_idle_stop)
  +        AC_CHECK_FUNCS(uv_inet_ntop)
  +        AC_CHECK_FUNCS(uv_inet_pton)
  +        AC_CHECK_FUNCS(uv__inotify_add_watch)
  +        AC_CHECK_FUNCS(uv__inotify_init)
  +        AC_CHECK_FUNCS(uv__inotify_init1)
  +        AC_CHECK_FUNCS(uv__inotify_rm_watch)
  +        AC_CHECK_FUNCS(uv_interface_addresses)
  +        AC_CHECK_FUNCS(uv__io_active)
  +        AC_CHECK_FUNCS(uv__io_check_fd)
  +        AC_CHECK_FUNCS(uv__io_close)
  +        AC_CHECK_FUNCS(uv__io_feed)
  +        AC_CHECK_FUNCS(uv__io_init)
  +        AC_CHECK_FUNCS(uv__io_poll)
  +        AC_CHECK_FUNCS(uv__io_start)
  +        AC_CHECK_FUNCS(uv__io_stop)
  +        AC_CHECK_FUNCS(uv_ip4_addr)
  +        AC_CHECK_FUNCS(uv_ip4_name)
  +        AC_CHECK_FUNCS(uv_ip6_addr)
  +        AC_CHECK_FUNCS(uv_ip6_name)
  +        AC_CHECK_FUNCS(uv_is_active)
  +        AC_CHECK_FUNCS(uv_is_closing)
  +        AC_CHECK_FUNCS(uv_is_readable)
  +        AC_CHECK_FUNCS(uv_is_writable)
  +        AC_CHECK_FUNCS(uv_key_create)
  +        AC_CHECK_FUNCS(uv_key_delete)
  +        AC_CHECK_FUNCS(uv_key_get)
  +        AC_CHECK_FUNCS(uv_key_set)
  +        AC_CHECK_FUNCS(uv_kill)
  +        AC_CHECK_FUNCS(uv_listen)
  +        AC_CHECK_FUNCS(uv_loadavg)
  +        AC_CHECK_FUNCS(uv_loop_alive)
  +        AC_CHECK_FUNCS(uv__loop_close)
  +        AC_CHECK_FUNCS(uv_loop_close)
  +        AC_CHECK_FUNCS(uv__loop_configure)
  +        AC_CHECK_FUNCS(uv_loop_configure)
  +        AC_CHECK_FUNCS(uv_loop_delete)
  +        AC_CHECK_FUNCS(uv_loop_init)
  +        AC_CHECK_FUNCS(uv_loop_new)
  +        AC_CHECK_FUNCS(uv_loop_size)
  +        AC_CHECK_FUNCS(uv__make_close_pending)
  +        AC_CHECK_FUNCS(uv__make_pipe)
  +        AC_CHECK_FUNCS(uv__make_socketpair)
  +        AC_CHECK_FUNCS(uv__malloc)
  +        AC_CHECK_FUNCS(uv_mutex_destroy)
  +        AC_CHECK_FUNCS(uv_mutex_init)
  +        AC_CHECK_FUNCS(uv_mutex_lock)
  +        AC_CHECK_FUNCS(uv_mutex_trylock)
  +        AC_CHECK_FUNCS(uv_mutex_unlock)
  +        AC_CHECK_FUNCS(uv__next_timeout)
  +        AC_CHECK_FUNCS(uv__nonblock_fcntl)
  +        AC_CHECK_FUNCS(uv__nonblock_ioctl)
  +        AC_CHECK_FUNCS(uv_now)
  +        AC_CHECK_FUNCS(uv_once)
  +        AC_CHECK_FUNCS(uv__open_cloexec)
  +        AC_CHECK_FUNCS(uv__open_file)
  +        AC_CHECK_FUNCS(uv_os_free_passwd)
  +        AC_CHECK_FUNCS(uv_os_get_passwd)
  +        AC_CHECK_FUNCS(uv_os_homedir)
  +        AC_CHECK_FUNCS(uv_os_tmpdir)
  +        AC_CHECK_FUNCS(uv__pipe2)
  +        AC_CHECK_FUNCS(uv_pipe_bind)
  +        AC_CHECK_FUNCS(uv__pipe_close)
  +        AC_CHECK_FUNCS(uv_pipe_connect)
  +        AC_CHECK_FUNCS(uv_pipe_getpeername)
  +        AC_CHECK_FUNCS(uv_pipe_getsockname)
  +        AC_CHECK_FUNCS(uv_pipe_init)
  +        AC_CHECK_FUNCS(uv_pipe_listen)
  +        AC_CHECK_FUNCS(uv_pipe_open)
  +        AC_CHECK_FUNCS(uv_pipe_pending_count)
  +        AC_CHECK_FUNCS(uv_pipe_pending_instances)
  +        AC_CHECK_FUNCS(uv_pipe_pending_type)
  +        AC_CHECK_FUNCS(uv__platform_invalidate_fd)
  +        AC_CHECK_FUNCS(uv__platform_loop_delete)
  +        AC_CHECK_FUNCS(uv__platform_loop_init)
  +        AC_CHECK_FUNCS(uv__poll_close)
  +        AC_CHECK_FUNCS(uv_poll_init)
  +        AC_CHECK_FUNCS(uv_poll_init_socket)
  +        AC_CHECK_FUNCS(uv_poll_start)
  +        AC_CHECK_FUNCS(uv_poll_stop)
  +        AC_CHECK_FUNCS(uv__preadv)
  +        AC_CHECK_FUNCS(uv__prepare_close)
  +        AC_CHECK_FUNCS(uv_prepare_init)
  +        AC_CHECK_FUNCS(uv_prepare_start)
  +        AC_CHECK_FUNCS(uv_prepare_stop)
  +        AC_CHECK_FUNCS(uv_print_active_handles)
  +        AC_CHECK_FUNCS(uv_print_all_handles)
  +        AC_CHECK_FUNCS(uv__process_close)
  +        AC_CHECK_FUNCS(uv_process_kill)
  +        AC_CHECK_FUNCS(uv__pwritev)
  +        AC_CHECK_FUNCS(uv_queue_work)
  +        AC_CHECK_FUNCS(uv_read_start)
  +        AC_CHECK_FUNCS(uv_read_stop)
  +        AC_CHECK_FUNCS(uv__realloc)
  +        AC_CHECK_FUNCS(uv_recv_buffer_size)
  +        AC_CHECK_FUNCS(uv__recvmmsg)
  +        AC_CHECK_FUNCS(uv__recvmsg)
  +        AC_CHECK_FUNCS(uv_ref)
  +        AC_CHECK_FUNCS(uv_replace_allocator)
  +        AC_CHECK_FUNCS(uv_req_size)
  +        AC_CHECK_FUNCS(uv_resident_set_memory)
  +        AC_CHECK_FUNCS(uv_run)
  +        AC_CHECK_FUNCS(uv__run_check)
  +        AC_CHECK_FUNCS(uv__run_idle)
  +        AC_CHECK_FUNCS(uv__run_prepare)
  +        AC_CHECK_FUNCS(uv__run_timers)
  +        AC_CHECK_FUNCS(uv_rwlock_destroy)
  +        AC_CHECK_FUNCS(uv_rwlock_init)
  +        AC_CHECK_FUNCS(uv_rwlock_rdlock)
  +        AC_CHECK_FUNCS(uv_rwlock_rdunlock)
  +        AC_CHECK_FUNCS(uv_rwlock_tryrdlock)
  +        AC_CHECK_FUNCS(uv_rwlock_trywrlock)
  +        AC_CHECK_FUNCS(uv_rwlock_wrlock)
  +        AC_CHECK_FUNCS(uv_rwlock_wrunlock)
  +        AC_CHECK_FUNCS(uv_sem_destroy)
  +        AC_CHECK_FUNCS(uv_sem_init)
  +        AC_CHECK_FUNCS(uv_sem_post)
  +        AC_CHECK_FUNCS(uv_sem_trywait)
  +        AC_CHECK_FUNCS(uv_sem_wait)
  +        AC_CHECK_FUNCS(uv_send_buffer_size)
  +        AC_CHECK_FUNCS(uv__sendmmsg)
  +        AC_CHECK_FUNCS(uv__server_io)
  +        AC_CHECK_FUNCS(uv__set_process_title)
  +        AC_CHECK_FUNCS(uv_set_process_title)
  +        AC_CHECK_FUNCS(uv_setup_args)
  +        AC_CHECK_FUNCS(uv_shutdown)
  +        AC_CHECK_FUNCS(uv__signal_close)
  +        AC_CHECK_FUNCS(uv__signal_global_once_init)
  +        AC_CHECK_FUNCS(uv_signal_init)
  +        AC_CHECK_FUNCS(uv__signal_loop_cleanup)
  +        AC_CHECK_FUNCS(uv_signal_start)
  +        AC_CHECK_FUNCS(uv_signal_stop)
  +        AC_CHECK_FUNCS(uv__socket)
  +        AC_CHECK_FUNCS(uv__socket_sockopt)
  +        AC_CHECK_FUNCS(uv_spawn)
  +        AC_CHECK_FUNCS(uv_stop)
  +        AC_CHECK_FUNCS(uv__strdup)
  +        AC_CHECK_FUNCS(uv__stream_close)
  +        AC_CHECK_FUNCS(uv__stream_destroy)
  +        AC_CHECK_FUNCS(uv__stream_flush_write_queue)
  +        AC_CHECK_FUNCS(uv__stream_init)
  +        AC_CHECK_FUNCS(uv__stream_open)
  +        AC_CHECK_FUNCS(uv_stream_set_blocking)
  +        AC_CHECK_FUNCS(uv_strerror)
  +        AC_CHECK_FUNCS(uv__strndup)
  +        AC_CHECK_FUNCS(uv__tcp_bind)
  +        AC_CHECK_FUNCS(uv_tcp_bind)
  +        AC_CHECK_FUNCS(uv__tcp_close)
  +        AC_CHECK_FUNCS(uv__tcp_connect)
  +        AC_CHECK_FUNCS(uv_tcp_connect)
  +        AC_CHECK_FUNCS(uv_tcp_getpeername)
  +        AC_CHECK_FUNCS(uv_tcp_getsockname)
  +        AC_CHECK_FUNCS(uv_tcp_init)
  +        AC_CHECK_FUNCS(uv_tcp_init_ex)
  +        AC_CHECK_FUNCS(uv__tcp_keepalive)
  +        AC_CHECK_FUNCS(uv_tcp_keepalive)
  +        AC_CHECK_FUNCS(uv_tcp_listen)
  +        AC_CHECK_FUNCS(uv__tcp_nodelay)
  +        AC_CHECK_FUNCS(uv_tcp_nodelay)
  +        AC_CHECK_FUNCS(uv_tcp_open)
  +        AC_CHECK_FUNCS(uv_tcp_simultaneous_accepts)
  +        AC_CHECK_FUNCS(uv_thread_create)
  +        AC_CHECK_FUNCS(uv_thread_equal)
  +        AC_CHECK_FUNCS(uv_thread_join)
  +        AC_CHECK_FUNCS(uv_thread_self)
  +        AC_CHECK_FUNCS(uv_timer_again)
  +        AC_CHECK_FUNCS(uv__timer_close)
  +        AC_CHECK_FUNCS(uv_timer_get_repeat)
  +        AC_CHECK_FUNCS(uv_timer_init)
  +        AC_CHECK_FUNCS(uv_timer_set_repeat)
  +        AC_CHECK_FUNCS(uv_timer_start)
  +        AC_CHECK_FUNCS(uv_timer_stop)
  +        AC_CHECK_FUNCS(uv_translate_sys_error)
  +        AC_CHECK_FUNCS(uv_try_write)
  +        AC_CHECK_FUNCS(uv_try_write_cb)
  +        AC_CHECK_FUNCS(uv_tty_get_winsize)
  +        AC_CHECK_FUNCS(uv_tty_init)
  +        AC_CHECK_FUNCS(uv_tty_reset_mode)
  +        AC_CHECK_FUNCS(uv_tty_set_mode)
  +        AC_CHECK_FUNCS(uv__udp_bind)
  +        AC_CHECK_FUNCS(uv_udp_bind)
  +        AC_CHECK_FUNCS(uv__udp_close)
  +        AC_CHECK_FUNCS(uv__udp_finish_close)
  +        AC_CHECK_FUNCS(uv_udp_getsockname)
  +        AC_CHECK_FUNCS(uv_udp_init)
  +        AC_CHECK_FUNCS(uv_udp_init_ex)
  +        AC_CHECK_FUNCS(uv_udp_open)
  +        AC_CHECK_FUNCS(uv__udp_recv_start)
  +        AC_CHECK_FUNCS(uv_udp_recv_start)
  +        AC_CHECK_FUNCS(uv__udp_recv_stop)
  +        AC_CHECK_FUNCS(uv_udp_recv_stop)
  +        AC_CHECK_FUNCS(uv__udp_send)
  +        AC_CHECK_FUNCS(uv_udp_send)
  +        AC_CHECK_FUNCS(uv_udp_set_broadcast)
  +        AC_CHECK_FUNCS(uv_udp_set_membership)
  +        AC_CHECK_FUNCS(uv_udp_set_multicast_interface)
  +        AC_CHECK_FUNCS(uv_udp_set_multicast_loop)
  +        AC_CHECK_FUNCS(uv_udp_set_multicast_ttl)
  +        AC_CHECK_FUNCS(uv_udp_set_ttl)
  +        AC_CHECK_FUNCS(uv__udp_try_send)
  +        AC_CHECK_FUNCS(uv_udp_try_send)
  +        AC_CHECK_FUNCS(uv_unref)
  +        AC_CHECK_FUNCS(uv_update_time)
  +        AC_CHECK_FUNCS(uv_uptime)
  +        AC_CHECK_FUNCS(uv__utimesat)
  +        AC_CHECK_FUNCS(uv_version)
  +        AC_CHECK_FUNCS(uv_version_string)
  +        AC_CHECK_FUNCS(uv_walk)
  +        AC_CHECK_FUNCS(uv__work_done)
  +        AC_CHECK_FUNCS(uv__work_submit)
  +        AC_CHECK_FUNCS(uv_write)
  +        AC_CHECK_FUNCS(uv_write2)
  +    ], [])
  +
   # later..
   dnl # CPUInfo
   RPM_CHECK_LIB(
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/misc/Makefile.am
  ============================================================================
  $ cvs diff -u -r1.56.2.17 -r1.56.2.18 Makefile.am
  --- rpm/misc/Makefile.am      16 Jan 2017 18:58:06 -0000      1.56.2.17
  +++ rpm/misc/Makefile.am      12 Jun 2017 06:54:06 -0000      1.56.2.18
  @@ -43,6 +43,7 @@
   endif
   
   librpmmisc_la_LDFLAGS += \
  +     @WITH_BROTLI_LDFLAGS@ \
        @WITH_DB_LDFLAGS@ \
        @WITH_FILE_LDFLAGS@ \
        @WITH_FLATCC_LDFLAGS@ \
  @@ -52,17 +53,22 @@
        @WITH_LIBTPM_LDFLAGS@ \
        @WITH_LIBGIT2_LDFLAGS@ \
        @WITH_LUA_LDFLAGS@ \
  +     @WITH_LZ4_LDFLAGS@ \
  +     @WITH_LZFSE_LDFLAGS@ \
        @WITH_NEON_LDFLAGS@ \
        @WITH_PCRE_LDFLAGS@ \
        @WITH_POPT_LDFLAGS@ \
        @WITH_RC_LDFLAGS@ \
  +     @WITH_SNAPPY_LDFLAGS@ \
        @WITH_SYCK_LDFLAGS@ \
        @WITH_XAR_LDFLAGS@ \
        @WITH_XZ_LDFLAGS@ \
  -     @WITH_ZLIB_LDFLAGS@
  +     @WITH_ZLIB_LDFLAGS@ \
  +     @WITH_ZSTD_LDFLAGS@
   librpmmisc_la_LIBADD = \
        ../gnulib/libgnu.la \
        @ALLOCA@ \
  +     @WITH_BROTLI_LIBS@ \
        @WITH_DB_LIBS@ \
        @WITH_FICL_LIBS@ \
        @WITH_FILE_LIBS@ \
  @@ -72,14 +78,18 @@
        @WITH_LIBTPM_LIBS@ \
        @WITH_LIBGIT2_LIBS@ \
        @WITH_LUA_LIBS@ \
  +     @WITH_LZ4_LIBS@ \
  +     @WITH_LZFSE_LIBS@ \
        @WITH_NEON_LIBS@ \
        @WITH_PCRE_LIBS@ \
        @WITH_POPT_LIBS@ \
        @WITH_RC_LIBS@ \
  +     @WITH_SNAPPY_LIBS@ \
        @WITH_SYCK_LIBS@ \
        @WITH_XAR_LIBS@ \
        @WITH_XZ_LIBS@ \
  -     @WITH_ZLIB_LIBS@
  +     @WITH_ZLIB_LIBS@ \
  +     @WITH_ZSTD_LIBS@
   if ENABLE_BUILD_EXTLIBDEP
   librpmmisc_la_LDFLAGS += $(LDFLAGS)
   librpmmisc_la_LIBADD  += $(LIBS)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/Makefile.am
  ============================================================================
  $ cvs diff -u -r1.293.2.89 -r1.293.2.90 Makefile.am
  --- rpm/rpmio/Makefile.am     9 Jun 2017 04:39:11 -0000       1.293.2.89
  +++ rpm/rpmio/Makefile.am     12 Jun 2017 06:54:06 -0000      1.293.2.90
  @@ -156,7 +156,7 @@
        salsa10.h salsa20.h shabal.h shavite3.h simd.h skein.h tib3.h tiger.h \
        pcrs.h rpmacl.h rpmaio.h rpmasn.h rpmaug.h rpmbag.h rpmbc.h rpmbz.h \
        rpmcap.h rpmcdsa.h rpmct.h rpmcudf.h rpmcvs.h rpmdate.h rpmdav.h \
  -     rpmdir.h rpmficl.h rpmgc.h rpmgfs.h rpmgit.h rpmhash.h \
  +     rpmdir.h rpmev.h rpmficl.h rpmgc.h rpmgfs.h rpmgit.h rpmhash.h \
        rpmhkp.h rpmhook.h rpmio_internal.h rpmjni.h rpmjs.h rpmjsio.h \
        rpmkeyring.h rpmku.h rpmltc.h rpmlua.h \
        rpmmqtt.h rpmmrb.h rpmmsq.h rpmnix.h rpmnss.h \
  @@ -213,6 +213,7 @@
        rpmdate.c \
        rpmdav.c \
        rpmdir.c \
  +     rpmev.c \
        rpmficl.c \
        rpmgc.c \
        rpmgfs.c \
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  ============================================================================
  $ cvs diff -u -r2.199.2.88 -r2.199.2.89 librpmio.vers
  --- rpm/rpmio/librpmio.vers   10 Jun 2017 00:22:36 -0000      2.199.2.88
  +++ rpm/rpmio/librpmio.vers   12 Jun 2017 06:54:06 -0000      2.199.2.89
  @@ -473,6 +473,14 @@
       vrpmMCExpand;
       rpmMCExpand;
       rpmMCExpandNumeric;
  +    _rpmev_debug;
  +    rpmevDump;
  +    rpmevNew;
  +    evs;
  +    nevs;
  +    rpmioEVTable;
  +    rpmioEVFLAGTable;
  +    rpmioEVBACKENDTable;
       _rpmficl_debug;
       rpmficlNew;
       rpmficlRun;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/poptIO.c
  ============================================================================
  $ cvs diff -u -r1.94.2.36 -r1.94.2.37 poptIO.c
  --- rpm/rpmio/poptIO.c        10 Jun 2017 00:22:36 -0000      1.94.2.36
  +++ rpm/rpmio/poptIO.c        12 Jun 2017 06:54:06 -0000      1.94.2.37
  @@ -51,6 +51,7 @@
   #include <rpmct.h>
   #include <rpmcudf.h>
   #include <rpmcvs.h>
  +#include <rpmev.h>
   #include <rpmficl.h>
   #include <rpmgit.h>
   #include <rpmhkp.h>
  @@ -1049,6 +1050,8 @@
        N_("Debug sed(1)"), NULL},
    { "rpmcudfdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, 
&_rpmcudf_debug, -1,
        N_("Debug embedded CUDF parser"), NULL},
  + { "rpmevdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &_rpmev_debug, 
-1,
  +     N_("Debug libev"), NULL},
    { "rpmficldebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, 
&_rpmficl_debug, -1,
        N_("Debug embedded FICL interpreter"), NULL},
    { "rpmgfsdebug", '\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, 
&_rpmgfs_debug, -1,
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmev.h
  ============================================================================
  $ cvs diff -u -r1.1.2.2 -r1.1.2.3 rpmev.h
  --- rpm/rpmio/rpmev.h 12 Jun 2017 05:16:48 -0000      1.1.2.2
  +++ rpm/rpmio/rpmev.h 12 Jun 2017 06:54:06 -0000      1.1.2.3
  @@ -47,6 +47,7 @@
   /**
    */
   #if defined(_RPMEV_INTERNAL)
  +
   struct rpmev_s {
       struct rpmioItem_s _item;        /*!< usage mutex and pool identifier. */
   
  @@ -55,6 +56,19 @@
       rpmevType evtype;
   };
   
  +extern void rpmevDump(const char *msg, rpmev ev, FILE *fp);
  +
  +extern unsigned rpmioEV;
  +extern struct poptOption rpmioEVTable[];
  +extern unsigned rpmioEVFLAG;
  +extern struct poptOption rpmioEVFLAGTable[];
  +extern unsigned rpmioEVBACKEND;
  +extern struct poptOption rpmioEVBACKENDTable[];
  +
  +#define RPMEV_MAX_ALLOC 64
  +extern rpmev evs[RPMEV_MAX_ALLOC];
  +extern int nevs;
  +
   #endif       /* _RPMEV_INTERNAL */
   
   /**
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.c
  ============================================================================
  $ cvs diff -u -r1.230.2.58 -r1.230.2.59 rpmio.c
  --- rpm/rpmio/rpmio.c 4 Jun 2017 22:50:14 -0000       1.230.2.58
  +++ rpm/rpmio/rpmio.c 12 Jun 2017 06:54:06 -0000      1.230.2.59
  @@ -598,24 +598,6 @@
       return rc;
   }
   
  -int Memfd_create(const char *name, unsigned int flags)
  -{
  -    int rc = -2;
  -#if defined(HAVE_MEMFD_CREATE)
  -    rc = memfd_create(name, flags);
  -#elif defined(SYS_memfd_create)
  -    rc = syscall(SYS_memfd_create, name, flags);
  -#else
  -    errno = ENOSYS;
  -#endif
  -    if (rc < 0)
  -     rpmlog(RPMLOG_ERR, _("%s(%s,0x%x) failed: %m\n"),
  -             __FUNCTION__, name, flags);
  -if (_rpmio_debug)
  -fprintf(stderr, _("<-- %s(%s,0x%x) rc %d\n"), __FUNCTION__, name, flags, rc);
  -    return rc;
  -}
  -
   int _rpmioOMask = (O_ACCMODE
        /* -- linux */
   #ifdef       O_APPEND
  @@ -702,12 +684,6 @@
       oflags &= 0x07ffffff;
   #endif
   
  -#if defined(HAVE_MEMFD_CREATE) || defined(SYS_memfd_create)
  -    if (flags & RPMFD_FLAG_MEMFD) {
  -     unsigned _mflags = 3;   /* MFD_CLOEXEC=1, MFD_ALLOW_SEALING=2 */
  -     fdno = Memfd_create(path, _mflags);
  -    } else
  -#endif
       {
        fdno = open(path, oflags, mode);
       }
  @@ -2732,7 +2708,6 @@
    * - HACK:   'N' fadvise(2)
    * - HACK:   'F' fsync(2)
    * - HACK:   'P' syncfs(2)
  - * - HACK:   'M' memfd_create(2)
    * - HACK:   'T' tempfile (O_TMPFILE)
    * - HACK:   '?' debug I/O + refcnt
    */
  @@ -2823,13 +2798,6 @@
        case 'P':
            RPMFD_SET(flags, SYNCFS);
            goto other;
  -     case 'M':
  -#if defined(HAVE_MEMFD_CREATE) || defined(SYS_memfd_create)
  -         RPMFD_SET(flags, MEMFD);
  -         goto other;
  -#else
  -         continue;
  -#endif
        case '?':
            RPMFD_SET(flags, DEBUGIO);
            RPMFD_SET(flags, DEBUGREFS);
  @@ -3463,6 +3431,7 @@
   #endif
       fdstat_exit(fd, opx, len);
   
  +    /* XXX doesn't display len */
       return fdSyscallPostFdno(__FUNCTION__, fd, fdno, rc);
   }
   
  @@ -3858,6 +3827,7 @@
       RPMIOPOOL_INTERP_FREE(sx)
   
       RPMIOPOOL_FREE(aio)
  +    RPMIOPOOL_FREE(ev)
       RPMIOPOOL_FREE(msq)
       RPMIOPOOL_FREE(zstd)
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio.h
  ============================================================================
  $ cvs diff -u -r1.97.2.23 -r1.97.2.24 rpmio.h
  --- rpm/rpmio/rpmio.h 3 Jun 2017 09:02:26 -0000       1.97.2.23
  +++ rpm/rpmio/rpmio.h 12 Jun 2017 06:54:06 -0000      1.97.2.24
  @@ -362,11 +362,6 @@
   int Mincore(void * addr, size_t len, unsigned char * vec);
   
   /**
  - * memfd_create(2) clone.
  - */
  -int Memfd_create(const char *name, unsigned int flags);
  -
  -/**
    * splice(2) clone.
    */
   ssize_t Splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out,
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmio_internal.h
  ============================================================================
  $ cvs diff -u -r2.127.2.16 -r2.127.2.17 rpmio_internal.h
  --- rpm/rpmio/rpmio_internal.h        10 Jun 2017 00:22:36 -0000      
2.127.2.16
  +++ rpm/rpmio/rpmio_internal.h        12 Jun 2017 06:54:06 -0000      
2.127.2.17
  @@ -52,7 +52,6 @@
       FDSTAT_FSYNC     = 22,   /*!< fsync statistics index. */
       FDSTAT_SYNCFS    = 23,   /*!< syncfs statistics index. */
       FDSTAT_FINCORE   = 24,   /*!< fincore statistics index. */
  -    FDSTAT_MEMFD     = 25,   /*!< memfd_create statistics index. */
   
       FDSTAT_MAX
   } fdOpX;
  @@ -499,7 +498,6 @@
            [FDSTAT_SYNCFS]             = "      syncfs",
   
            [FDSTAT_FINCORE]            = "     fincore",
  -         [FDSTAT_MEMFD]              = "       memfd",
        };
        rpmop op = &fd->stats->ops[opx];
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/tmq.c
  ============================================================================
  $ cvs diff -u -r1.1.2.19 -r1.1.2.20 tmq.c
  --- rpm/rpmio/tmq.c   12 Jun 2017 05:16:48 -0000      1.1.2.19
  +++ rpm/rpmio/tmq.c   12 Jun 2017 06:54:06 -0000      1.1.2.20
  @@ -76,6 +76,13 @@
   
   #include <rpmmsq.h>
   
  +#if defined(HAVE_EV_H)
  +# include <ev.h>
  +#endif
  +
  +#define      _RPMEV_INTERNAL
  +#include <rpmev.h>
  +
   #include "debug.h"
   
   static int _debug = -1;
  @@ -1133,351 +1140,6 @@
   }
   
   /*==============================================================*/
  -#if defined(HAVE_EV_H)
  -# include <ev.h>
  -#endif
  -
  -#define      _RPMEV_INTERNAL
  -#include <rpmev.h>
  -
  -static unsigned rpmioEV = 0;
  -struct poptOption rpmioEVTable[] = {
  - { "read", '\0', POPT_BIT_SET,               &rpmioEV, EV_READ,
  -        N_("read"), N_("EV_READ") },
  - { "write", '\0', POPT_BIT_SET,              &rpmioEV, EV_WRITE,
  -        N_("write"), N_("EV_WRITE") },
  - { "internal", '\0', POPT_BIT_SET,   &rpmioEV, EV__IOFDSET,
  -        N_("internal"), N_("EV__IOFDSET") },
  - { "timer", '\0', POPT_BIT_SET,              &rpmioEV, EV_TIMER,
  -        N_("timer"), N_("EV_TIMER") },
  - { "periodic", '\0', POPT_BIT_SET,   &rpmioEV, EV_PERIODIC,
  -        N_("periodic"), N_("EV_PERIODIC") },
  - { "signal", '\0', POPT_BIT_SET,     &rpmioEV, EV_SIGNAL,
  -        N_("signal"), N_("EV_SIGNAL") },
  - { "child", '\0', POPT_BIT_SET,              &rpmioEV, EV_CHILD,
  -        N_("child"), N_("EV_CHILD") },
  - { "stat", '\0', POPT_BIT_SET,               &rpmioEV, EV_STAT,
  -        N_("stat"), N_("EV_STAT") },
  - { "idle", '\0', POPT_BIT_SET,               &rpmioEV, EV_IDLE,
  -        N_("idle"), N_("EV_IDLE") },
  - { "prepare", '\0', POPT_BIT_SET,    &rpmioEV, EV_PREPARE,
  -        N_("prepare"), N_("EV_PREPARE") },
  - { "check", '\0', POPT_BIT_SET,              &rpmioEV, EV_CHECK,
  -        N_("check"), N_("EV_CHECK") },
  - { "embed", '\0', POPT_BIT_SET,              &rpmioEV, EV_EMBED,
  -        N_("embed"), N_("EV_EMBED") },
  - { "fork", '\0', POPT_BIT_SET,               &rpmioEV, EV_FORK,
  -        N_("fork"), N_("EV_FORK") },
  - { "cleanup", '\0', POPT_BIT_SET,    &rpmioEV, EV_CLEANUP,
  -        N_("cleanup"), N_("EV_CLEANUP") },
  - { "async", '\0', POPT_BIT_SET,              &rpmioEV, EV_ASYNC,
  -        N_("async"), N_("EV_ASYNC") },
  - { "custom", '\0', POPT_BIT_SET,     &rpmioEV, EV_CUSTOM,
  -        N_("custom"), N_("EV_CUSTOM") },
  - { "error", '\0', POPT_BIT_SET,              &rpmioEV, EV_ERROR,
  -        N_("error"), N_("EV_ERROR") },
  -   POPT_TABLEEND
  -};
  -
  -static unsigned rpmioEVFLAG = 0;
  -struct poptOption rpmioEVFLAGTable[] = {
  - { "env", '\0', POPT_BIT_CLR|POPT_ARGFLAG_TOGGLE,    &rpmioEVFLAG, 
EVFLAG_NOENV,
  -        N_("env"), N_("EVFLAG_NOENV") },
  - { "forkcheck", '\0', POPT_BIT_SET|POPT_ARGFLAG_TOGGLE,      &rpmioEVFLAG, 
EVFLAG_FORKCHECK,
  -        N_("forkcheck"), N_("EVFLAG_FORKCHECK") },
  - { "inotify", '\0', POPT_BIT_CLR|POPT_ARGFLAG_TOGGLE, &rpmioEVFLAG, 
EVFLAG_NOINOTIFY,
  -        N_("inotify"), N_("EVFLAG_NOINOTIFY") },
  - { "signalfd", '\0', POPT_BIT_SET|POPT_ARGFLAG_TOGGLE, &rpmioEVFLAG, 
EVFLAG_SIGNALFD,
  -        N_("signalfd"), N_("EVFLAG_SIGNALFD") },
  - { "sigmask", '\0', POPT_BIT_CLR|POPT_ARGFLAG_TOGGLE, &rpmioEVFLAG, 
EVFLAG_NOSIGMASK,
  -        N_("sigmask"), N_("EVFLAG_NOSIGMASK") },
  -   POPT_TABLEEND
  -};
  -
  -static unsigned rpmioEVBACKEND = 0;
  -struct poptOption rpmioEVBACKENDTable[] = {
  - { "select", '\0', POPT_BIT_SET,     &rpmioEVBACKEND, EVBACKEND_SELECT,
  -        N_("select"), N_("EVBACKEND_SELECT") },
  - { "poll", '\0', POPT_BIT_SET,               &rpmioEVBACKEND, EVBACKEND_POLL,
  -        N_("poll"), N_("EVBACKEND_POLL") },
  - { "epoll", '\0', POPT_BIT_SET,              &rpmioEVBACKEND, 
EVBACKEND_EPOLL,
  -        N_("epoll"), N_("EVBACKEND_EPOLL") },
  - { "kqueue", '\0', POPT_BIT_SET,     &rpmioEVBACKEND, EVBACKEND_KQUEUE,
  -        N_("kqueue"), N_("EVBACKEND_KQUEUE") },
  - { "devpoll", '\0', POPT_BIT_SET,    &rpmioEVBACKEND, EVBACKEND_DEVPOLL,
  -        N_("devpoll"), N_("EVBACKEND_DEVPOLL") },
  - { "port", '\0', POPT_BIT_SET,               &rpmioEVBACKEND, EVBACKEND_PORT,
  -        N_("port"), N_("EVBACKEND_PORT") },
  -   POPT_TABLEEND
  -};
  -
  -/*==============================================================*/
  -/* every watcher type has its own typedef'd struct */
  -/* with the name ev_TYPE */
  -
  -#define      RPMEV_MAX_ALLOC 64
  -static rpmev evs[RPMEV_MAX_ALLOC];
  -static int nevs = 0;
  -
  -/* all watcher callbacks have a similar signature */
  -
  -/* --- */
  -static
  -void rpmevChild_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_child * w = (ev_child *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_CHILD);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s) pid %u status %u (0x%x)\n", __FUNCTION__, w, rstr, 
w->rpid, __WEXITSTATUS(w->rstatus), w->rstatus);
  -    rstr = _free(rstr);
  -  }
  -    ev_child_stop (EV_A_ w);
  -}
  -
  -static
  -int rpmevStart(void)
  -{
  -    int rc;
  -SPEW("--> %s()\n", __FUNCTION__);
  -    pid_t pid = fork();
  -    if (pid < 0) {
  -     rc = -1;
  -     exit(rc);
  -    } else if (pid == 0) {
  -     sleep(2);
  -     rc = 42;
  -     exit(rc);
  -    } else {
  -     if (nevs < RPMEV_MAX_ALLOC) {
  -         rpmev ev = rpmevNew(RPMEV_TYPE_CHILD, NULL);
  -         ev_child * w = &ev->evw.child;
  -         w->pid = 0;
  -         w->flags = 0;       /** XXX 0=terminate, 1=stop/continue */
  -         ev_child_start (EV_DEFAULT_ w);
  -     }
  -     rc = 0;
  -    }
  -SPEW("<-- %s() rc %d\n", __FUNCTION__, rc);
  -    return rc;
  -}
  -
  -/* --- */
  -static void rpmevIo_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_io * w = (ev_io *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_IO);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s) fd %d events 0x%x\n", __FUNCTION__, w, rstr, w->fd, 
w->events);
  -    rstr = _free(rstr);
  -  }
  -    /* for one-shot events, one must manually stop the watcher */
  -    /* with its corresponding stop function. */
  -    ev_io_stop(EV_A_ w);
  -
  -    /* this causes all nested ev_loop's to stop iterating */
  -    ev_unloop(EV_A_ EVUNLOOP_ALL);
  -}
  -/* --- */
  -static void rpmevTimer_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_timer * w = (ev_timer *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_TIMER);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s) repeat %f\n", __FUNCTION__, w, rstr, w->repeat);
  -    rstr = _free(rstr);
  -  }
  -#ifdef       DYING
  -    /* this causes the innermost ev_loop to stop iterating */
  -    ev_unloop(EV_A_ EVUNLOOP_ONE);
  -#endif
  -    w->repeat = 5.5;
  -    ev_timer_again(EV_A_ w);
  -}
  -
  -/* --- */
  -static void rpmevPeriodic_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_periodic * w = (ev_periodic *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_PERIODIC);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s) offset %f interval %f reschedule_cb %p\n", 
__FUNCTION__, w, rstr, w->offset, w->interval, w->reschedule_cb);
  -    rstr = _free(rstr);
  -  }
  -    rpmevStart();
  -}
  -
  -/* --- */
  -static void rpmevSignal_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_signal * w = (ev_signal *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_SIGNAL);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s) signum %d\n", __FUNCTION__, w, rstr, w->signum);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -/* --- */
  -static void rpmevStat_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_stat * w = (ev_stat *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_STAT);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s) path %s wd %d\n", __FUNCTION__, w, rstr, w->path, 
w->wd);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -/* --- */
  -static void rpmevIdle_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_idle * w = (ev_idle *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_IDLE);
  -#ifdef       NOISY
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s)\n", __FUNCTION__, w, rstr);
  -    rstr = _free(rstr);
  -  }
  -#endif
  -    struct timespec ts = { 0, 10*1000*1000 };
  -    nanosleep(&ts, NULL);
  -    sched_yield();
  -}
  -
  -/* --- */
  -static void rpmevPrepare_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_prepare * w = (ev_prepare *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_PREPARE);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s)\n", __FUNCTION__, w, rstr);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -/* --- */
  -static void rpmevCheck_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_check * w = (ev_check *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_CHECK);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s)\n", __FUNCTION__, w, rstr);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -/* --- */
  -static void rpmevFork_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_fork * w = (ev_fork *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_FORK);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s)\n", __FUNCTION__, w, rstr);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -/* --- */
  -static void rpmevCleanup_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_cleanup * w = (ev_cleanup *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_CLEANUP);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s)\n", __FUNCTION__, w, rstr);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -/* --- */
  -static void rpmevEmbed_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_embed * w = (ev_embed *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_EMBED);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s)\n", __FUNCTION__, w, rstr);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -/* --- */
  -static void rpmevAsync_cb(EV_P_ void * _w, int revents)
  -{
  -    ev_async * w = (ev_async *) _w;
  -    rpmev ev = (rpmev) w->data;
  -assert(ev && ev->evtype == RPMEV_TYPE_ASYNC);
  -  { char *rstr = rpmioB2N(rpmioEVTable, revents);
  -    SPEW("--> %s(%p, %s)\n", __FUNCTION__, w, rstr);
  -    rstr = _free(rstr);
  -  }
  -}
  -
  -static
  -void rpmevDump(const char *msg, rpmev ev, FILE *fp)
  -{
  -    if (fp == NULL)  fp = stderr;
  -    if (msg) fprintf(stderr, "========================= %s(%p)\n", msg, ev);
  -    if (ev) {
  -#define PRINT(_fmt, _foo) \
  -    {   fprintf(fp, "%25s: %"#_fmt"\n", #_foo, ev->_foo); }
  -     PRINT(u, evtype);
  -     PRINT(d, evw.w.active);
  -     PRINT(d, evw.w.pending);
  -     PRINT(p, evw.w.data);
  -     PRINT(p, evw.w.cb);
  -#undef       PRINT
  -
  -    }
  -}
  -
  -rpmev rpmevNew(rpmevType evtype, void * _evcb, ...)
  -{
  -    rpmev ev = NULL;
  -    if (nevs < RPMEV_MAX_ALLOC) {
  -     ev = xcalloc(1, sizeof(*ev));   /* XXX xmalloc */
  -     ev_watcher * w = &ev->evw.w;
  -
  -     if (_evcb == NULL)
  -     switch (evtype) {
  -     default:
  -     case RPMEV_TYPE_UNKNOWN:
  -         break;
  -     case RPMEV_TYPE_IO:             _evcb = rpmevIo_cb;             break;
  -     case RPMEV_TYPE_TIMER:          _evcb = rpmevTimer_cb;          break;
  -     case RPMEV_TYPE_PERIODIC:       _evcb = rpmevPeriodic_cb;       break;
  -     case RPMEV_TYPE_SIGNAL:         _evcb = rpmevSignal_cb;         break;
  -     case RPMEV_TYPE_CHILD:          _evcb = rpmevChild_cb;          break;
  -     case RPMEV_TYPE_STAT:           _evcb = rpmevStat_cb;           break;
  -     case RPMEV_TYPE_IDLE:           _evcb = rpmevIdle_cb;           break;
  -     case RPMEV_TYPE_PREPARE:        _evcb = rpmevPrepare_cb;        break;
  -     case RPMEV_TYPE_CHECK:          _evcb = rpmevCheck_cb;          break;
  -     case RPMEV_TYPE_FORK:           _evcb = rpmevFork_cb;           break;
  -     case RPMEV_TYPE_CLEANUP:        _evcb = rpmevCleanup_cb;        break;
  -     case RPMEV_TYPE_EMBED:          _evcb = rpmevEmbed_cb;          break;
  -     case RPMEV_TYPE_ASYNC:          _evcb = rpmevAsync_cb;          break;
  -
  -     }
  -     ev_init(w, _evcb);
  -     w->data = ev;
  -     ev->evtype = evtype;
  -
  -     evs[nevs++] = ev;
  -    }
  -SPEW("<-- %s(%d,%p) ev %p\n", __FUNCTION__, evtype, _evcb, ev);
  -    return ev;
  -}
  -
   static int doEV(ARGV_t av, int ac)
   {
       int rc = 0;
  @@ -1569,9 +1231,15 @@
   
       /* unloop was called, so exit */
   
  +    /* XXX free rpmev allocations. */
       for (int i = 0; i < nevs; i++) {
  -     evs[i] = _free(evs[i]);
  +     rpmev ev = evs[i];
  +     evs[i] = NULL;
  +     ev = rpmevFree(ev);
       }
  +
  +    ev_loop_destroy(loop);
  +
       return rc;
   }
   
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to