diff --git a/.gitignore b/.gitignore index f28cb05..d23f6fd 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /elfutils-0.185.tar.bz2 /elfutils-0.186.tar.bz2 /elfutils-0.187.tar.bz2 +/elfutils-0.188.tar.bz2 diff --git a/elfutils-0.187-csh-profile.patch b/elfutils-0.187-csh-profile.patch deleted file mode 100644 index 6f26815..0000000 --- a/elfutils-0.187-csh-profile.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit f1252e4dbe781f75d806ce0b990779548eeeb7a9 -Author: Mark Wielaard -Date: Tue May 3 17:48:55 2022 +0200 - - config: Move the 2>/dev/null inside the sh -c '' quotes for profile.csh. - - csh/tcsh would warn about "Ambiguous output redirect" if not done inside - the sh -c command. - - Fix-by: наб - - https://bugzilla.redhat.com/show_bug.cgi?id=2080957 - - Signed-off-by: Mark Wielaard - -diff --git a/config/profile.csh.in b/config/profile.csh.in -index 012e243a..74c20c99 100644 ---- a/config/profile.csh.in -+++ b/config/profile.csh.in -@@ -6,7 +6,7 @@ - - if (! $?DEBUGINFOD_URLS) then - set prefix="@prefix@" -- set DEBUGINFOD_URLS=`sh -c 'cat "$0"/*.urls; :' "@sysconfdir@/debuginfod" 2>/dev/null | tr '\n' ' '` -+ set DEBUGINFOD_URLS=`sh -c 'cat "$0"/*.urls 2>/dev/null; :' "@sysconfdir@/debuginfod" | tr '\n' ' '` - if ( "$DEBUGINFOD_URLS" != "" ) then - setenv DEBUGINFOD_URLS "$DEBUGINFOD_URLS" - else diff --git a/elfutils-0.187-debuginfod-client-fd-leak.patch b/elfutils-0.187-debuginfod-client-fd-leak.patch deleted file mode 100644 index 2f6b78b..0000000 --- a/elfutils-0.187-debuginfod-client-fd-leak.patch +++ /dev/null @@ -1,98 +0,0 @@ -commit 59158656f3b0b99d8784ddc82c15778813000edc -Author: Frank Ch. Eigler -Date: Wed May 4 10:26:42 2022 -0400 - - PR29117: fix fd leak in debuginfod client for cache-miss files - - Correct a nasty fd leak and a few less nasty leaks in the debuginfod - client code. The nasty one impacts long-lived apps such as debuginfod - servers. - - Signed-off-by: Mark Wielaard - Signed-off-by: Frank Ch. Eigler - -diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c -index ea6e461a..521972e4 100644 ---- a/debuginfod/debuginfod-client.c -+++ b/debuginfod/debuginfod-client.c -@@ -243,7 +243,13 @@ debuginfod_config_cache(char *config_path, - return -errno; - - if (dprintf(fd, "%ld", cache_config_default_s) < 0) -- return -errno; -+ { -+ int ret = -errno; -+ close (fd); -+ return ret; -+ } -+ -+ close (fd); - } - - long cache_config; -@@ -284,7 +290,13 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path) - return -errno; - - if (dprintf(fd, "%ld", cache_clean_default_interval_s) < 0) -- return -errno; -+ { -+ int ret = -errno; -+ close (fd); -+ return ret; -+ } -+ -+ close (fd); - - /* init max age config file. */ - if (stat(maxage_path, &st) != 0 -@@ -292,8 +304,13 @@ debuginfod_init_cache (char *cache_path, char *interval_path, char *maxage_path) - return -errno; - - if (dprintf(fd, "%ld", cache_default_max_unused_age_s) < 0) -- return -errno; -+ { -+ int ret = -errno; -+ close (fd); -+ return ret; -+ } - -+ close (fd); - return 0; - } - -@@ -812,18 +829,17 @@ debuginfod_query_server (debuginfod_client *c, - has passed since the last attempt. */ - time_t cache_miss; - time_t target_mtime = st.st_mtime; -+ -+ close(fd); /* no need to hold onto the negative-hit file descriptor */ -+ - rc = debuginfod_config_cache(cache_miss_path, - cache_miss_default_s, &st); - if (rc < 0) -- { -- close(fd); -- goto out; -- } -+ goto out; - - cache_miss = (time_t)rc; - if (time(NULL) - target_mtime <= cache_miss) - { -- close(fd); - rc = -ENOENT; - goto out; - } -diff --git a/debuginfod/debuginfod-find.c b/debuginfod/debuginfod-find.c -index 3e8ab203..f60b5463 100644 ---- a/debuginfod/debuginfod-find.c -+++ b/debuginfod/debuginfod-find.c -@@ -231,6 +231,8 @@ main(int argc, char** argv) - fprintf(stderr, "Server query failed: %s\n", strerror(-rc)); - return 1; - } -+ else -+ close (rc); - - printf("%s\n", cache_name); - free (cache_name); diff --git a/elfutils-0.187-mhd_epoll.patch b/elfutils-0.187-mhd_epoll.patch deleted file mode 100644 index fbbbdac..0000000 --- a/elfutils-0.187-mhd_epoll.patch +++ /dev/null @@ -1,51 +0,0 @@ -commit 28f9d86ea89f88b24f1d12c8e9d5ddc3f77da194 -Author: Mark Wielaard -Date: Fri May 6 00:29:28 2022 +0200 - - debuginfod: Use MHD_USE_EPOLL for libmicrohttpd version 0.9.51 or higher - - Also disable MHD_USE_THREAD_PER_CONNECTION when using MHD_USE_EPOLL. - - https://sourceware.org/bugzilla/show_bug.cgi?id=29123 - - Signed-off-by: Mark Wielaard - -diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx -index c02540f1..d4f47bf7 100644 ---- a/debuginfod/debuginfod.cxx -+++ b/debuginfod/debuginfod.cxx -@@ -1,6 +1,6 @@ - /* Debuginfo-over-http server. - Copyright (C) 2019-2021 Red Hat, Inc. -- Copyright (C) 2021 Mark J. Wielaard -+ Copyright (C) 2021, 2022 Mark J. Wielaard - This file is part of elfutils. - - This file is free software; you can redistribute it and/or modify -@@ -3899,7 +3899,14 @@ main (int argc, char *argv[]) - } - } - -- unsigned int mhd_flags = ((connection_pool -+ /* Note that MHD_USE_EPOLL and MHD_USE_THREAD_PER_CONNECTION don't -+ work together. */ -+ unsigned int use_epoll = 0; -+#if MHD_VERSION >= 0x00095100 -+ use_epoll = MHD_USE_EPOLL; -+#endif -+ -+ unsigned int mhd_flags = ((connection_pool || use_epoll - ? 0 : MHD_USE_THREAD_PER_CONNECTION) - #if MHD_VERSION >= 0x00095300 - | MHD_USE_INTERNAL_POLLING_THREAD -@@ -3907,9 +3914,7 @@ main (int argc, char *argv[]) - | MHD_USE_SELECT_INTERNALLY - #endif - | MHD_USE_DUAL_STACK --#ifdef MHD_USE_EPOLL -- | MHD_USE_EPOLL --#endif -+ | use_epoll - #if MHD_VERSION >= 0x00095200 - | MHD_USE_ITC - #endif diff --git a/elfutils-0.187-mhd_no_dual_stack.patch b/elfutils-0.187-mhd_no_dual_stack.patch deleted file mode 100644 index 3f38e36..0000000 --- a/elfutils-0.187-mhd_no_dual_stack.patch +++ /dev/null @@ -1,118 +0,0 @@ -commit ba675ed25a26fd425ffd19b02cf18babf4291b4f -Author: Mark Wielaard -Date: Thu May 5 23:59:57 2022 +0200 - - debuginfod: Try without MHD_USE_DUAL_STACK if MHD_start_daemon fails - - On a systems that have ipv6 disabled debuginfod doesn't start up - anymore because libhttpd MHD_USE_DUAL_STACK only works if it can - open an ipv6 socket. If MHD_start_daemon with MHD_USE_DUAL_STACK - fails try again without that flag set. - - https://sourceware.org/bugzilla/show_bug.cgi?id=29122 - - Signed-off-by: Mark Wielaard - -diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx -index 4aaf41c0..c02540f1 100644 ---- a/debuginfod/debuginfod.cxx -+++ b/debuginfod/debuginfod.cxx -@@ -3899,40 +3899,67 @@ main (int argc, char *argv[]) - } - } - -- // Start httpd server threads. Use a single dual-homed pool. -- MHD_Daemon *d46 = MHD_start_daemon ((connection_pool ? 0 : MHD_USE_THREAD_PER_CONNECTION) -+ unsigned int mhd_flags = ((connection_pool -+ ? 0 : MHD_USE_THREAD_PER_CONNECTION) - #if MHD_VERSION >= 0x00095300 -- | MHD_USE_INTERNAL_POLLING_THREAD -+ | MHD_USE_INTERNAL_POLLING_THREAD - #else -- | MHD_USE_SELECT_INTERNALLY -+ | MHD_USE_SELECT_INTERNALLY - #endif -+ | MHD_USE_DUAL_STACK - #ifdef MHD_USE_EPOLL -- | MHD_USE_EPOLL -+ | MHD_USE_EPOLL - #endif -- | MHD_USE_DUAL_STACK - #if MHD_VERSION >= 0x00095200 -- | MHD_USE_ITC -+ | MHD_USE_ITC - #endif -- | MHD_USE_DEBUG, /* report errors to stderr */ -- http_port, -- NULL, NULL, /* default accept policy */ -- handler_cb, NULL, /* handler callback */ -- MHD_OPTION_EXTERNAL_LOGGER, error_cb, NULL, -- (connection_pool ? MHD_OPTION_THREAD_POOL_SIZE : MHD_OPTION_END), -- (connection_pool ? (int)connection_pool : MHD_OPTION_END), -- MHD_OPTION_END); -+ | MHD_USE_DEBUG); /* report errors to stderr */ - -+ // Start httpd server threads. Use a single dual-homed pool. -+ MHD_Daemon *d46 = MHD_start_daemon (mhd_flags, http_port, -+ NULL, NULL, /* default accept policy */ -+ handler_cb, NULL, /* handler callback */ -+ MHD_OPTION_EXTERNAL_LOGGER, -+ error_cb, NULL, -+ (connection_pool -+ ? MHD_OPTION_THREAD_POOL_SIZE -+ : MHD_OPTION_END), -+ (connection_pool -+ ? (int)connection_pool -+ : MHD_OPTION_END), -+ MHD_OPTION_END); -+ -+ MHD_Daemon *d4 = NULL; - if (d46 == NULL) - { -- sqlite3 *database = db; -- sqlite3 *databaseq = dbq; -- db = dbq = 0; // for signal_handler not to freak -- sqlite3_close (databaseq); -- sqlite3_close (database); -- error (EXIT_FAILURE, 0, "cannot start http server at port %d", http_port); -- } -+ // Cannot use dual_stack, use ipv4 only -+ mhd_flags &= ~(MHD_USE_DUAL_STACK); -+ d4 = MHD_start_daemon (mhd_flags, http_port, -+ NULL, NULL, /* default accept policy */ -+ handler_cb, NULL, /* handler callback */ -+ MHD_OPTION_EXTERNAL_LOGGER, -+ error_cb, NULL, -+ (connection_pool -+ ? MHD_OPTION_THREAD_POOL_SIZE -+ : MHD_OPTION_END), -+ (connection_pool -+ ? (int)connection_pool -+ : MHD_OPTION_END), -+ MHD_OPTION_END); -+ if (d4 == NULL) -+ { -+ sqlite3 *database = db; -+ sqlite3 *databaseq = dbq; -+ db = dbq = 0; // for signal_handler not to freak -+ sqlite3_close (databaseq); -+ sqlite3_close (database); -+ error (EXIT_FAILURE, 0, "cannot start http server at port %d", -+ http_port); -+ } - -- obatched(clog) << "started http server on IPv4 IPv6 " -+ } -+ obatched(clog) << "started http server on" -+ << (d4 != NULL ? " IPv4 " : " IPv4 IPv6 ") - << "port=" << http_port << endl; - - // add maxigroom sql if -G given -@@ -4053,6 +4080,7 @@ main (int argc, char *argv[]) - - /* Stop all the web service threads. */ - if (d46) MHD_stop_daemon (d46); -+ if (d4) MHD_stop_daemon (d4); - - if (! passive_p) - { diff --git a/elfutils.spec b/elfutils.spec index 9d0a6b3..19f9d92 100644 --- a/elfutils.spec +++ b/elfutils.spec @@ -1,6 +1,6 @@ Name: elfutils -Version: 0.187 -%global baserelease 9 +Version: 0.188 +%global baserelease 1 Release: %{baserelease}%{?dist} URL: http://elfutils.org/ %global source_url ftp://sourceware.org/pub/elfutils/%{version}/ @@ -48,6 +48,8 @@ BuildRequires: iproute BuildRequires: procps BuildRequires: bsdtar BuildRequires: curl +# For run-debuginfod-response-headers.sh test case +BuildRequires: socat BuildRequires: automake BuildRequires: autoconf @@ -72,14 +74,6 @@ BuildRequires: gettext-devel # For s390x... FDO package notes are bogus. Patch1: elfutils-0.186-fdo-swap.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=2080957 -Patch2: elfutils-0.187-csh-profile.patch -# https://sourceware.org/bugzilla/show_bug.cgi?id=29117 -Patch3: elfutils-0.187-debuginfod-client-fd-leak.patch -# https://sourceware.org/bugzilla/show_bug.cgi?id=29122 -Patch4: elfutils-0.187-mhd_no_dual_stack.patch -# https://sourceware.org/bugzilla/show_bug.cgi?id=29123 -Patch5: elfutils-0.187-mhd_epoll.patch %description Elfutils is a collection of utilities, including stack (to show @@ -420,11 +414,12 @@ fi %{_bindir}/debuginfod %config(noreplace) %{_sysconfdir}/sysconfig/debuginfod %{_unitdir}/debuginfod.service -%{_sysconfdir}/sysconfig/debuginfod %if %{with_sysusers} %{_sysusersdir}/elfutils-debuginfod.conf %endif -%{_mandir}/man8/debuginfod.8* +%{_mandir}/man8/debuginfod*.8* +%{_mandir}/man7/debuginfod*.7* + %dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod %ghost %attr(0600,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod/debuginfod.sqlite @@ -447,6 +442,9 @@ exit 0 %systemd_postun_with_restart debuginfod.service %changelog +* Wed Nov 2 2022 Mark Wielaard - 0.188-1 +- Upgrade to upsteam elfutils 0.188. + * Wed Oct 5 2022 Amit Shah - 0.187-9 - Auto-configure debuginfod_url based on macros.dist diff --git a/sources b/sources index 808d95e..04cbb1b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (elfutils-0.187.tar.bz2) = a9b9e32b503b8b50a62d4e4001097ed2721d3475232a6380e6b9853bd1647aec016440c0ca7ceb950daf1144f8db9814ab43cf33cc0ebef7fc91e9e775c9e874 +SHA512 (elfutils-0.188.tar.bz2) = 585551b2d937d19d1becfc2f28935db1dd1a3d25571a62f322b70ac8da98c1a741a55d070327705df6c3e2ee026652e0b9a3c733b050a0b0ec5f2fc75d5b74b5