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]
