This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via a06f2fa02e66d247fc271ac639c64eabb8e9d514 (commit) via 863858b0b7bc98ffc2bc1cc2a7a4d24bfd7bc513 (commit) via ed1a24686c9a9255290906a8c7bd1cedd7934cdc (commit) via db9c7fb8260c28e4eec30ee0386e8f5945ad10fc (commit) via 8ad61512ef3649f21c090f645a15478644620b5f (commit) via ec05e6c6bfc328e885af67997ec1419a0e3a98fc (commit) via c7c1f0e345143e6e053447cc985039094540ff6d (commit) via b776a9403ad1e825b319341e84fb38a3a49280bc (commit) via 4e788d49969a97ed3dae4a8447949dddae4224b9 (commit) via 87cd2c413584c9b195b912666eaf33153f07adfd (commit) via 8e498000ec9e16b7952cc3753f9a976caffe49d9 (commit) via aec620df453bd2040ec8cc27362e256b5db12d15 (commit) via 736441bb3954544a770eee9dad686435af440f9c (commit) via 67557306b294cfec40b18d0e3b113d4c5dbc5492 (commit) via 5a7fe40a6a60808f84789746a6b6b3002de311f3 (commit) via 10c3fc94d209a57919a49bdb8dfe432c071e155a (commit) via 68b8b5fa81dc1ebecec5ee3a671866b1f4324611 (commit) via dc60a4256a49032cdbf39c98c41c367087583407 (commit) via 177c2c3f353cbd07a60bbea9dac21f002b387614 (commit) via d6531fb525cd9101548a1923b4b83d4c7e7bfb8f (commit) via da63874c75c3afe9e80f6dd4fbb60683024ea004 (commit) via 036889a8d2976e9513521c25a4e5a285b7bee754 (commit) via 646db7b386234563df42be7b777135dca57748c9 (commit) via 9d189d0f07f88057236eb02b6125e3753e05a556 (commit) via 579c5830aa99b4f2d67e5ac7d8688babe8b3caee (commit) via 237e84837eefb20230ee1f3a03ab22c674db30cd (commit) via 642e18d96b5e5eed9e63d9ad3047613c1033a1d4 (commit) via 7adec7d392244e33d202bacf0d8955edaa55007b (commit) via 50ae4dcc50d2bc70b8afe8f98553d822328775b9 (commit) via 9cd5350f0a16c78886ebca6e9d95c849af04bb33 (commit) via 9f6251e13bbcdea200cf890638c7edfa33b43223 (commit) via b1c5bde6c7074b33610987cbae34561f318845cf (commit) via b5661ddc236ab814a0bd31142af3b8e5dd4c2613 (commit) via 7bff30a8ba0c07b7ea1afc49a27f1b527f8a7869 (commit) via 0bead24b3dce225aba3db047a1349965b6ea812a (commit) via 730fa3189bd691c9a0ffaf3f83ee4cc554903ad9 (commit) via ca744e25d0c6a0ccfdfa63ee557675b1ae1e69b1 (commit) via 0919eca9dd71e33bdd7f92ae5372d945fbc2649a (commit) via a8c72d6f5a6575b828192f3edbce3a4ac3e9f068 (commit) via c06f8d94a438a2243f75698523e623882b496fd1 (commit) via e0d59c61dd9771de79bd558800586823faee34be (commit) via 9a7aea8b32cd9792002e5db09f72e691d7fae96a (commit) via 2eda545fc75410106b6acf663a6d2751c795d4ad (commit) via a75ec91d070571e455713a2d7ff2844e7efcd979 (commit) via 89233e1abe33e087a7aa567f963412b1d008ca2e (commit) via e031838684f225c334595f87c783634cc3d4163d (commit) via 36edd6d923758255595c42beceeae9d347b315e4 (commit) via f24ce4558aeaf5e3a81f059a4c23a17651afbe2d (commit) via 36a19f2b398f8d70e0c6dc00adee5274ae7da79b (commit) via 94820d5062214e5d9404209386e122cdad0edb77 (commit) via 13183b06722267b5e95d8224bb25fa6cbac27f0f (commit) from 0ebb271d1ec8b68f73dbd396b0f3a0aa4a50a501 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit a06f2fa02e66d247fc271ac639c64eabb8e9d514 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri Jun 9 23:10:10 2023 +0200
transmission: Update to version 4.0.3
- Update from version 3.00 to 4.0.3 - This v2 version has usr/share/transmission directory uncommented. - Update of rootfile - Build changed from autotools configure to cmake - Changelog is very large. For details see https://github.com/transmission/transmission/releases/
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 863858b0b7bc98ffc2bc1cc2a7a4d24bfd7bc513 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:39:39 2023 +0000
core176: Ship all misc-progs again
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit ed1a24686c9a9255290906a8c7bd1cedd7934cdc Author: Michael Tremer michael.tremer@ipfire.org Date: Wed May 24 09:08:41 2023 +0000
misc-progs: setuid: Return exit code from called process
This patch will return the exit code from the called process which has not been done before. This made it more difficult to catch any unsuccessful calls from the web UI.
Partly Fixes: #12863 Tested-by: Jon Murphy jon.murphy@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit db9c7fb8260c28e4eec30ee0386e8f5945ad10fc Author: Adolf Belka adolf.belka@ipfire.org Date: Sat May 20 14:10:48 2023 +0200
wavemon: Update to version 0.9.4
- Update from version 0.7.5 to 0.9.4 - Update of rootfile - wavemon would not build because it could not find the netlink include files. wavemon was still looking in include/netlink/ as for libnl version 1 but with libnl3 the include files are in include/libnl3/netlink/ - Based on an issue entry in the wavemon github repo I created the patch to force wavemon to look in the correct place.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 8ad61512ef3649f21c090f645a15478644620b5f Author: Adolf Belka adolf.belka@ipfire.org Date: Sat May 20 14:10:46 2023 +0200
tmux: Update to version 3.3a
- Update from version 3.3 to 3.3a - Update of rootfile not required - Changelog CHANGES FROM 3.3 TO 3.3a * Do not crash when run-shell produces output from a config file. * Do not unintentionally turn off all mouse mode when button mode is also present.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit ec05e6c6bfc328e885af67997ec1419a0e3a98fc Author: Adolf Belka adolf.belka@ipfire.org Date: Sat May 20 14:10:45 2023 +0200
stunnel: Update to version 5.69
- Update from version 5.63 to 5.69 - Update of rootfile not required - Changelog Version 5.69, 2023.03.04, urgency: MEDIUM * New features - Improved logging performance with the "output" option. - Improved file read performance on the WIN32 platform. - DH and kDHEPSK ciphersuites removed from FIPS defaults. - Set the LimitNOFILE ulimit in stunnel.service to allow for up to 10,000 concurrent clients. * Bugfixes - Fixed the "CApath" option on the WIN32 platform by applying https://github.com/openssl/openssl/pull/20312. - Fixed stunnel.spec used for building rpm packages. - Fixed tests on some OSes and architectures by merging Debian 07-tests-errmsg.patch (thx to Peter Pentchev). Version 5.68, 2023.02.07, urgency: HIGH * Security bugfixes - OpenSSL DLLs updated to version 3.0.8. * New features - Added the new 'CAengine' service-level option to load a trusted CA certificate from an engine. - Added requesting client certificates in server mode with 'CApath' besides 'CAfile'. - Improved file read performance. - Improved logging performance. * Bugfixes - Fixed EWOULDBLOCK errors in protocol negotiation. - Fixed handling TLS errors in protocol negotiation. - Prevented following fatal TLS alerts with TCP resets. - Improved OpenSSL initialization on WIN32. - Improved testing suite stability. Version 5.67, 2022.11.01, urgency: HIGH * Security bugfixes - OpenSSL DLLs updated to version 3.0.7. * New features - Provided a logging callback to custom engines. * Bugfixes - Fixed "make cert" with OpenSSL older than 3.0. - Fixed the code and the documentation to use conscious language for SNI servers (thx to Clemens Lang). Version 5.66, 2022.09.11, urgency: MEDIUM * New features - OpenSSL 3.0 FIPS Provider support for Windows. * Bugfixes - Fixed building on machines without pkg-config. - Added the missing "environ" declaration for BSD-based operating systems. - Fixed the passphrase dialog with OpenSSL 3.0. Version 5.65, 2022.07.17, urgency: HIGH * Security bugfixes - OpenSSL DLLs updated to version 3.0.5. * Bugfixes - Fixed handling globally enabled FIPS. - Fixed openssl.cnf processing in WIN32 GUI. - Fixed a number of compiler warnings. - Fixed tests on older versions of OpenSSL. Version 5.64, 2022.05.06, urgency: MEDIUM * Security bugfixes - OpenSSL DLLs updated to version 3.0.3. * New features - Updated the pkcs11 engine for Windows. * Bugfixes - Removed the SERVICE_INTERACTIVE_PROCESS flag in "stunnel -install".
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit c7c1f0e345143e6e053447cc985039094540ff6d Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 19:04:52 2023 +0200
stress: Update to version 1.0.7
- Update from version 1.0.5 to 1.0.7 - Update of rootfile not required - Changelog Version 1.0.7 * Check for sys/prctl.h availability, because non-Linux architectures don't provide <sys/prctl.h>. * Improved GitHub CI: - Added CI test for macOS. - Added a check for stress command. - Added a test for 'make dist-bzip2'. * Moved manpage from doc/ to man/. Version 1.0.6 * Register parent termination signal in child processes. * Added 'make dist' check in CI test. * Added rights for Vratislav Bendel. * Re-organized src/stress.c via astyle command. * Updated GPL-2 license text for src/stress.c.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit b776a9403ad1e825b319341e84fb38a3a49280bc Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 19:04:51 2023 +0200
strace: Update to version 6.3
- Update from version 6.1 to 6.3 - Update of rootfile not required - Changelog Noteworthy changes in release 6.3 (2023-05-08) * Improvements * Implemented --trace-fds=set option for filtering only the syscalls that operate on the specified set of file descriptors. * Implemented --decode-fds=signalfd option for decoding of signal masks associated with signalfd file descriptors. * Implemented --syscall-limit option to automatically detach tracees after capturing the specified number of syscalls. * Implemented --argv0 option to set argv[0] of the command being executed. * Implemented decoding of PR_GET_MDWE and PR_SET_MDWE operations of prctl syscall. * Implemented decoding of IP_LOCAL_PORT_RANGE socket option. * Implemented decoding of IFLA_BRPORT_MCAST_N_GROUPS, IFLA_BRPORT_MCAST_MAX_GROUPS, IFLA_GSO_IPV4_MAX_SIZE, IFLA_GRO_IPV4_MAX_SIZE, and TCA_EXT_WARN_MSG netlink attributes. * Updated lists of F_SEAL_*, IFLA_*, IORING_*, MFD_*, NFT_*, TCA_*, and V4L2_PIX_FMT_* constants. * Updated lists of ioctl commands from Linux 6.3. * Bug fixes * Fixed build on hppa with uapi headers from Linux >= 6.2. * Fixed --status filtering when -c option is in use. Noteworthy changes in release 6.2 (2023-02-26) * Improvements * Implemented collision resolution for overlapping ioctl commands from tty and snd subsystems. * Implemented decoding of IFLA_BRPORT_MAB and IFLA_DEVLINK_PORT netlink attributes. * Updated lists of ALG_*, BPF_*, IFLA_*, KEY_*, KVM_*, LANDLOCK_*, MEMBARRIER_*, NFT_*, NTF_*, and V4L2_* constants. * Updated lists of ioctl commands from Linux 6.2. * Bug fixes * Fixed build on alpha architecture.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 4e788d49969a97ed3dae4a8447949dddae4224b9 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 19:04:50 2023 +0200
nginx: Update to version 1.24.0
- Update from version 1.22.1 to 1.24.0 - Update of rootfile not required - Changelog (including some CVE's) Changes with nginx 1.24.0 11 Apr 2023 *) 1.24.x stable branch. Changes with nginx 1.23.4 28 Mar 2023 *) Change: now TLSv1.3 protocol is enabled by default. *) Change: now nginx issues a warning if protocol parameters of a listening socket are redefined. *) Change: now nginx closes connections with lingering if pipelining was used by the client. *) Feature: byte ranges support in the ngx_http_gzip_static_module. *) Bugfix: port ranges in the "listen" directive did not work; the bug had appeared in 1.23.3. Thanks to Valentin Bartenev. *) Bugfix: incorrect location might be chosen to process a request if a prefix location longer than 255 characters was used in the configuration. *) Bugfix: non-ASCII characters in file names on Windows were not supported by the ngx_http_autoindex_module, the ngx_http_dav_module, and the "include" directive. *) Change: the logging level of the "data length too long", "length too short", "bad legacy version", "no shared signature algorithms", "bad digest length", "missing sigalgs extension", "encrypted length too long", "bad length", "bad key update", "mixed handshake and non handshake data", "ccs received early", "data between ccs and finished", "packet length too long", "too many warn alerts", "record too small", and "got a fin before a ccs" SSL errors has been lowered from "crit" to "info". *) Bugfix: a socket leak might occur when using HTTP/2 and the "error_page" directive to redirect errors with code 400. *) Bugfix: messages about logging to syslog errors did not contain information that the errors happened while logging to syslog. Thanks to Safar Safarly. *) Workaround: "gzip filter failed to use preallocated memory" alerts appeared in logs when using zlib-ng. *) Bugfix: in the mail proxy server. Changes with nginx 1.23.3 13 Dec 2022 *) Bugfix: an error might occur when reading PROXY protocol version 2 header with large number of TLVs. *) Bugfix: a segmentation fault might occur in a worker process if SSI was used to process subrequests created by other modules. Thanks to Ciel Zhao. *) Workaround: when a hostname used in the "listen" directive resolves to multiple addresses, nginx now ignores duplicates within these addresses. *) Bugfix: nginx might hog CPU during unbuffered proxying if SSL connections to backends were used. Changes with nginx 1.23.2 19 Oct 2022 *) Security: processing of a specially crafted mp4 file by the ngx_http_mp4_module might cause a worker process crash, worker process memory disclosure, or might have potential other impact (CVE-2022-41741, CVE-2022-41742). *) Feature: the "$proxy_protocol_tlv_..." variables. *) Feature: TLS session tickets encryption keys are now automatically rotated when using shared memory in the "ssl_session_cache" directive. *) Change: the logging level of the "bad record type" SSL errors has been lowered from "crit" to "info". Thanks to Murilo Andrade. *) Change: now when using shared memory in the "ssl_session_cache" directive the "could not allocate new session" errors are logged at the "warn" level instead of "alert" and not more often than once per second. *) Bugfix: nginx/Windows could not be built with OpenSSL 3.0.x. *) Bugfix: in logging of the PROXY protocol errors. Thanks to Sergey Brester. *) Workaround: shared memory from the "ssl_session_cache" directive was spent on sessions using TLS session tickets when using TLSv1.3 with OpenSSL. *) Workaround: timeout specified with the "ssl_session_timeout" directive did not work when using TLSv1.3 with OpenSSL or BoringSSL. Changes with nginx 1.23.1 19 Jul 2022 *) Feature: memory usage optimization in configurations with SSL proxying. *) Feature: looking up of IPv4 addresses while resolving now can be disabled with the "ipv4=off" parameter of the "resolver" directive. *) Change: the logging level of the "bad key share", "bad extension", "bad cipher", and "bad ecpoint" SSL errors has been lowered from "crit" to "info". *) Bugfix: while returning byte ranges nginx did not remove the "Content-Range" header line if it was present in the original backend response. *) Bugfix: a proxied response might be truncated during reconfiguration on Linux; the bug had appeared in 1.17.5. Changes with nginx 1.23.0 21 Jun 2022 *) Change in internal API: now header lines are represented as linked lists. *) Change: now nginx combines arbitrary header lines with identical names when sending to FastCGI, SCGI, and uwsgi backends, in the $r->header_in() method of the ngx_http_perl_module, and during lookup of the "$http_...", "$sent_http_...", "$sent_trailer_...", "$upstream_http_...", and "$upstream_trailer_..." variables. *) Bugfix: if there were multiple "Vary" header lines in the backend response, nginx only used the last of them when caching. *) Bugfix: if there were multiple "WWW-Authenticate" header lines in the backend response and errors with code 401 were intercepted or the "auth_request" directive was used, nginx only sent the first of the header lines to the client. *) Change: the logging level of the "application data after close notify" SSL errors has been lowered from "crit" to "info". *) Bugfix: connections might hang if nginx was built on Linux 2.6.17 or newer, but was used on systems without EPOLLRDHUP support, notably with epoll emulation layers; the bug had appeared in 1.17.5. Thanks to Marcus Ball. *) Bugfix: nginx did not cache the response if the "Expires" response header line disabled caching, but following "Cache-Control" header line enabled caching. Changes with nginx 1.21.6 25 Jan 2022 *) Bugfix: when using EPOLLEXCLUSIVE on Linux client connections were unevenly distributed among worker processes. *) Bugfix: nginx returned the "Connection: keep-alive" header line in responses during graceful shutdown of old worker processes. *) Bugfix: in the "ssl_session_ticket_key" when using TLSv1.3. Changes with nginx 1.21.5 28 Dec 2021 *) Change: now nginx is built with the PCRE2 library by default. *) Change: now nginx always uses sendfile(SF_NODISKIO) on FreeBSD. *) Feature: support for sendfile(SF_NOCACHE) on FreeBSD. *) Feature: the $ssl_curve variable. *) Bugfix: connections might hang when using HTTP/2 without SSL with the "sendfile" and "aio" directives. Changes with nginx 1.21.4 02 Nov 2021 *) Change: support for NPN instead of ALPN to establish HTTP/2 connections has been removed. *) Change: now nginx rejects SSL connections if ALPN is used by the client, but no supported protocols can be negotiated. *) Change: the default value of the "sendfile_max_chunk" directive was changed to 2 megabytes. *) Feature: the "proxy_half_close" directive in the stream module. *) Feature: the "ssl_alpn" directive in the stream module. *) Feature: the $ssl_alpn_protocol variable. *) Feature: support for SSL_sendfile() when using OpenSSL 3.0. *) Feature: the "mp4_start_key_frame" directive in the ngx_http_mp4_module. Thanks to Tracey Jaquith. *) Bugfix: in the $content_length variable when using chunked transfer encoding. *) Bugfix: after receiving a response with incorrect length from a proxied backend nginx might nevertheless cache the connection. Thanks to Awdhesh Mathpal. *) Bugfix: invalid headers from backends were logged at the "info" level instead of "error"; the bug had appeared in 1.21.1. *) Bugfix: requests might hang when using HTTP/2 and the "aio_write" directive. Changes with nginx 1.21.3 07 Sep 2021 *) Change: optimization of client request body reading when using HTTP/2. *) Bugfix: in request body filters internal API when using HTTP/2 and buffering of the data being processed. Changes with nginx 1.21.2 31 Aug 2021 *) Change: now nginx rejects HTTP/1.0 requests with the "Transfer-Encoding" header line. *) Change: export ciphers are no longer supported. *) Feature: OpenSSL 3.0 compatibility. *) Feature: the "Auth-SSL-Protocol" and "Auth-SSL-Cipher" header lines are now passed to the mail proxy authentication server. Thanks to Rob Mueller. *) Feature: request body filters API now permits buffering of the data being processed. *) Bugfix: backend SSL connections in the stream module might hang after an SSL handshake. *) Bugfix: the security level, which is available in OpenSSL 1.1.0 or newer, did not affect loading of the server certificates when set with "@SECLEVEL=N" in the "ssl_ciphers" directive. *) Bugfix: SSL connections with gRPC backends might hang if select, poll, or /dev/poll methods were used. *) Bugfix: when using HTTP/2 client request body was always written to disk if the "Content-Length" header line was not present in the request.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 87cd2c413584c9b195b912666eaf33153f07adfd Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:38:01 2023 +0000
core176: Ship mpfr
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 8e498000ec9e16b7952cc3753f9a976caffe49d9 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 19:04:49 2023 +0200
mpfr: Update with latest bug patches
- Update version 4.2.0 from 4 bug patches to 9 bug patches - Update of rootfile not required - Bug fix changelog 5 The mpfr_reldiff function, which computes |b−c|/b, is buggy on special values, e.g. on the following (b,c) values: (+Inf,+Inf) gives ±0 instead of NaN (like NaN/Inf); (+0,+0) gives 1 instead of NaN (like 0/0); (+0,1) gives 1 instead of Inf (like 1/0). Moreover, the sign of 0 for (+Inf,+Inf) or (−Inf,−Inf) is not set, i.e. it is just the sign of the destination before the call; as a consequence, results are not even consistent. These bugs are fixed by the reldiff patch. Corresponding changeset in the 4.2 branch: 81e4d4427. 6 The reuse tests are incomplete: the sign of a result zero is not checked, so that it can miss bugs (one of the mpfr_reldiff bugs mentioned above, in particular). The tests-reuse patch adds a check of the sign of zero and contains other minor improvements. Corresponding changeset in the 4.2 branch: e6d47b8f5. 7 The general code for the power function (mpfr_pow_general internal function) has two bugs in particular cases: the first one is an incorrect computation of the error bound when there has been an intermediate underflow or overflow (in such a case, the computation is performed again with a rescaling, thus with an additional error term, but there is a bug in the computation of this term), so that the result may be rounded incorrectly (in particular, a spurious overflow is possible); the second one occurs in a corner case (destination precision 1, rounding to nearest, and where the rounded result assuming an unbounded exponent range would be 2emin−2 and the exact result is larger than this value), with the only consequence being a missing underflow exception (the underflow flag is not set). These two bugs are fixed by the pow_general patch, which also provides testcases. Note: The second bug was introduced by commit 936df8ef6 in MPFR 4.1.0 (the code simplification was incorrect, and there were no associated tests in the testsuite). Corresponding changesets in the 4.2 branch: 85bc7331c, 5fa407a6c, 9a16c173e. 8 The mpfr_compound_si function can take a huge amount of memory and time in some cases (when the argument x is a large even integer and xn is represented exactly in the target precision) and does not correctly detect overflows and underflows. This is fixed by the compound patch, which also provides various tests. Corresponding changesets in the 4.2 branch: 7635c4a35, 74d86a61f, 952fb0f5c, a4894f68d, 7bb748775, f5cb40571, d87459969. 9 MPFR can crash when a formatted output function is called with %.2147483648Rg in the format string. For instance: mpfr_snprintf (NULL, 0, "%.2147483648Rg\n", x); This is fixed by the printf_large_prec_for_g patch, which also provides testcases. Corresponding changesets in the 4.2 branch: 686f82776, 769ad91a6.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit aec620df453bd2040ec8cc27362e256b5db12d15 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 19:04:48 2023 +0200
minidlna: Update to version 1.3.2
- Update from version 1.3.0 to 1.3.2 - Update of rootfile not required - Patch for CVE-2022-26505 is now built into the source tarball - Changelog 1.3.2 - Released 30-Aug-2022 - Improved DNS rebinding attack protection. - Added Samsung Neo QLED series (2021) support. - Added webm/rm/rmvb support. 1.3.1 - Released 11-Feb-2022 - Fixed a potential crash in SSDP request parsing. - Fixed a configure script failure on some platforms. - Protect against DNS rebinding attacks. - Fix an socket leakage issue on some platforms. - Minor bug fixes.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 736441bb3954544a770eee9dad686435af440f9c Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 19:04:47 2023 +0200
fping: Update to version 5.1
- Update from version 5.0 to 5.1 - Update of rootfile not required - Changelog fping 5.1 (2022-02-06) ## Bugfixes and other changes - Use setcap to specify specific files in fping.spec (#232, thanks @zdyxry) - Netdata: use host instead name as family label (#226, thanks @k0ste) - Netdata: use formatstring macro PRId64 (#229, thanks @gsnw) - Allow -4 option to be given multiple times (#215, thanks @normanr) - Documentation fix (#208, thanks @timgates42) - Retain privileges until after privileged setsockopt (#200, thanks @simetnicbr) - Set bind to source only when option is set (#198, thanks @dinoex) - Update Azure test pipeline (#197, thanks @gsnw) - Fix getnameinfo not called properly for IPv4 (#227, thanks @aafbsd) - Fixed wrong timestamp under Free- and OpenBSD and macOS (#217, thanks @gsnw) - Documentation updates (#240, thanks @auerswal) - Updated autotools (autoconf 2.71, automake 1.16.5, libtool 2.4.6)
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 67557306b294cfec40b18d0e3b113d4c5dbc5492 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:36:59 2023 +0000
core176: Ship pam
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 5a7fe40a6a60808f84789746a6b6b3002de311f3 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 13:47:53 2023 +0200
pam: Update to version 1.5.3
- Update from version 1.5.2 to 1.5.3 - Update of rootfile - Changelog Release 1.5.3 * configure: added options to configure stylesheets. * configure: added --enable-logind option to use logind instead of utmp in pam_issue and pam_timestamp. * pam_modutil_getlogin: changed to use getlogin() from libc instead of parsing utmp. * Added libeconf support to pam_env and pam_shells. * Added vendor directory support to pam_access, pam_env, pam_group, pam_faillock, pam_limits, pam_namespace, pam_pwhistory, pam_sepermit, pam_shells, and pam_time. * pam_limits: changed to not fail on missing config files. * pam_pwhistory: added conf= option to specify config file location. * pam_pwhistory: added file= option to specify password history file location. * pam_shells: added shells.d support when libeconf and vendordir are enabled. * Deprecated pam_lastlog: this module is no longer built by default because it uses utmp, wtmp, btmp and lastlog, but none of them are Y2038 safe, even on 64bit architectures. pam_lastlog will be removed in one of the next releases, consider using pam_lastlog2 (from https://github.com/thkukuk/lastlog2) and/or pam_wtmpdb (from https://github.com/thkukuk/wtmpdb) instead. * Deprecated _pam_overwrite(), _pam_overwrite_n(), and _pam_drop_reply() macros provided by _pam_macros.h; the memory override performed by these macros can be optimized out by the compiler and therefore can no longer be relied upon. * Multiple minor bug fixes, portability fixes, documentation improvements, and translation updates.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 10c3fc94d209a57919a49bdb8dfe432c071e155a Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:36:19 2023 +0000
core176: Ship nettle
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 68b8b5fa81dc1ebecec5ee3a671866b1f4324611 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 13:47:52 2023 +0200
nettle: Update to version 3.9
- Update from version 3.8.1 to 3.9 - Update of rootfile - Changelog NEWS for the Nettle 3.9 release This release includes bug fixes, several new features, a few performance improvements, and one performance regression affecting GCM on certain platforms. The new version is intended to be fully source and binary compatible with Nettle-3.6. The shared library names are libnettle.so.8.7 and libhogweed.so.6.7, with sonames libnettle.so.8 and libhogweed.so.6. This release includes a rewrite of the C implementation of GHASH (dating from 2011), as well as the plain x86_64 assembly version, to use precomputed tables in a different way, with tables always accessed in the same sequential manner. This should make Nettle's GHASH implementation side-channel silent on all platforms, but considerably slower on platforms without carry-less mul instructions. E.g., benchmarks of the C implementation on x86_64 showed a slowdown of 3 times. Bug fixes: * Fix bug in ecdsa and gostdsa signature verify operation, for the unlikely corner case that point addition really is point duplication. * Fix for chacha on Power7, nettle's assembly used an instruction only available on later processors. Fixed by Mamone Tarsha. * GHASH implementation should now be side-channel silent on all architectures. * A few portability fixes for *BSD. New features: * Support for the SM4 block cipher, contributed by Tianjia Zhang. * Support for the Balloon password hash, contributed by Zoltan Fridrich. * Support for SIV-GCM authenticated encryption mode, contributed by Daiki Ueno. * Support for OCB authenticated encryption mode. * New exported functions md5_compress, sha1_compress, sha256_compress, sha512_compress, based on patches from Corentin Labbe. Optimizations: * Improved sha256 performance, in particular for x86_64 and s390x. * Use GMP's mpn_sec_tabselect, which is implemented in assembly on many platforms, and delete the similar nettle function. Gives a modest speedup to all ecc operations. * Faster poly1305 for x86_64 and ppc64. New ppc code contributed by Mamone Tarsha. Miscellaneous: * New ASM_FLAGS variable recognized by configure. * Delete all arcfour assembly code. Affects 32-bit x86, 32-bit and 64-bit sparc. Known issues: * Version 6.2.1 of GNU GMP (the most recent GMP release as of this writing) has a known issue for MacOS on 64-bit ARM: GMP assembly files use the reserved x18 register. On this platform it is recommended to use a GMP snapshot where this bug is fixed, and upgrade to a later GMP release when one becomes available. * Also on MacOS, Nettle's testsuite may still break due to DYLD_LIBRARY_PATH being discarded under some circumstances. As a workaround, use * make check EMULATOR='env DYLD_LIBRARY_PATH=$(TEST_SHLIB_DIR)'
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit dc60a4256a49032cdbf39c98c41c367087583407 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:35:49 2023 +0000
core176: Ship libcap
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 177c2c3f353cbd07a60bbea9dac21f002b387614 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 13:47:51 2023 +0200
libcap: Update to version 2.69
- Update from version 2.67 to 2.69 - Update of rootfile - Changelog Release notes for 2.69 2023-05-14 19:10:04 -0700 An audit was performed on libcap and friends by https://x41-dsec.de/ https://x41-dsec.de/news/2023/05/15/libcap-source-code-audit/ The audit (final report, 2023-05-10) https://drive.google.com/file/d/1lsuC_tQbQ5pCE2Sy_skw0a7hTzQyQh2C/view?usp=s... was sponsored by the the Open Source Technology Improvement Fund, https://ostif.org/ (blog). Five issues were found. Four of them are addressed in this release. Each issue was labeled in the audit results as follows: LCAP-CR-23-01 (SEVERITY) LOW (CVE-2023-2602) - found by David Gstir LCAP-CR-23-02 (SEVERITY) MEDIUM (CVE-2023-2603) - found by Richard Weinberger LCAP-CR-23-100 (SEVERITY) NONE LCAP-CR-23-101 (SEVERITY) NONE Man page style improvement from Emanuele Torre Partially revive the ability to build the binaries fully statically. This was needed to make bleeding edge kernel debugging/testing via qemu+busybox work again. Addressing an issue I realized only when I tried to answer this stackexchange question. https://unix.stackexchange.com/questions/741532/launch-process-with-limited-... Release notes for 2.68 2023-03-25 17:03:17 -0700 Force libcap internal functions to be hidden outside the library (Bug 217014) Expanded the list of man page (links) to all of the supported API functions. fixed some formatting issues with the libpsx(3) manpage. Add support for a markdown preamble and postscript when generating .md versions of the man pages (Bug 217007) psx package clean up fix some copy-paste errors with TestShared() added a more complete psx testing into this test as well cap package clean up drop an unnecessary use of ", _" in the sources cleaned up cap.NamedCount documentation Converted goapps/web/README to .md format and fixed the instructions to indicate go mod tidy is needed. cap_compare test binary now cleans up after itself (Bug 217018) Figured out how to cross compile Go programs for arm (i.e. RPi) that use C code, don't use cgo but do use the psx package (all part of investigating bug 216610). Eliminate use of vendor directory
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit d6531fb525cd9101548a1923b4b83d4c7e7bfb8f Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:35:21 2023 +0000
core176: Ship harfbuzz
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit da63874c75c3afe9e80f6dd4fbb60683024ea004 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 13:47:50 2023 +0200
harfbuzz: Update to version 7.3.0
- Update from 7.2.0 to 7.3.0 - Update of rootfile - Changelog Overview of changes leading to 7.3.0 Tuesday, May 9, 2023 - Speedup applying glyph variation in VarComposites fonts (over 40% speedup). (Behdad Esfahbod) - Speedup instancing some fonts (over 20% speedup in instancing RobotoFlex). (Behdad Esfahbod) - Speedup shaping some fonts (over 30% speedup in shaping Roboto). (Behdad Esfahbod) - Support subsetting VarComposites and beyond-64k fonts. (Behdad Esfahbod) - New configuration macro HB_MINIMIZE_MEMORY_USAGE to favor optimizing memory usage over speed. (Behdad Esfahbod) - Supporting setting the mapping between old and new glyph indices during subsetting. (Garret Rieger) - Various fixes and improvements. (Behdad Esfahbod, Denis Rochette, Garret Rieger, Han Seung Min, Qunxin Liu) - New API: +hb_subset_input_old_to_new_glyph_mapping()
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 036889a8d2976e9513521c25a4e5a285b7bee754 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:34:55 2023 +0000
core176: Ship ethtool
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 646db7b386234563df42be7b777135dca57748c9 Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 13:47:49 2023 +0200
ethtool: Update to version 6.3
- Update from version 6.2 to 6.3 - Update of rootfile not required - Changelog Version 6.3 - May 8, 2023 * Feature: PLCA support (--[gs]et-plca-cfg, --get-plca-status) * Feature: MAC Merge layer support (--show-mm, --set-mm) * Feature: pass source of statistics for port stats * Feature: get/set rx push in ringparams (-g and -G) * Feature: coalesce tx aggregation parameters (-c and -C) * Feature: PSE and PD devices (--show-pse, --set-pse) * Fix: minor fixes of help text (--help) * Fix: fix build on systems with older system headers * Fix: fix netlink support when PLCA is not present (no option) * Fix: fixes for issues found with gcc13 -fanalyzer * Fix: fix return code in rxclass_rule_ins (-N) * Fix: more robust argc/argv handling
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 9d189d0f07f88057236eb02b6125e3753e05a556 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:34:23 2023 +0000
core176: Ship curl
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 579c5830aa99b4f2d67e5ac7d8688babe8b3caee Author: Adolf Belka adolf.belka@ipfire.org Date: Fri May 19 13:47:47 2023 +0200
curl: Update to version 8.1.0
- Update from version 7.88.1 to 8.1.0 - Update of rootfile not required - Changelog Fixed in 8.1.0 - May 17 2023 Changes: curl: add --proxy-http2 CURLPROXY_HTTPS2: for HTTPS proxy that may speak HTTP/2 hostip: refuse to resolve the .onion TLD tool_writeout: add URL component variables Bugfixes: amiga: Fix CA certificate paths for AmiSSL and MorphOS autotools: sync up clang picky warnings with cmake aws-sigv4.d: fix region identifier in example bufq: simplify since expression is always true cf-h1-proxy: skip an extra NULL assign cf-h2-proxy: fix processing ingress to stop too early cf-socket: add socket recv buffering for most tcp cases cf-socket: Disable socket receive buffer by default cf-socket: remove dead code discovered by PVS cf-socket: turn off IPV6_V6ONLY on Windows if it is supported checksrc: check for spaces before the colon of switch labels checksrc: find bad indentation in conditions without open brace checksrc: fix SPACEBEFOREPAREN for conditions starting with "*" ci: `-Wno-vla` no longer necessary CI: fix brew retries on GHA CI: Set minimal permissions on workflow ngtcp2-quictls.yml CI: skip Azure for commits which change only GHA CI: use another glob syntax for matching files on Appveyor cmake: bring in the network library on Haiku cmake: do not add zlib headers for openssl CMake: make config version 8 compatible with 7 cmake: picky-linker fixes for openssl, ZLIB, H3 and more cmake: set SONAME for SunOS too cmake: speed up and extend picky clang/gcc options CMakeLists.txt: fix typo for Haiku detection compressed.d: clarify the words on "not notifying headers" config-dos.h: fix SIZEOF_CURL_OFF_T for MS-DOS/DJGPP configure: don't set HAVE_WRITABLE_ARGV on Windows configure: fix detection of apxs (for httpd) configure: make quiche require quiche_conn_send_ack_eliciting connect: fix https connection setup to treat ssl_mode correctly content_encoding: only do transfer-encoding compression if asked to cookie: address PVS nits cookie: clarify that init with data set to NULL reads no file curl: do NOT append file name to path for upload when there's a query curl_easy_getinfo.3: typo fix (duplicated "from the") curl_easy_unescape.3: rename the argument curl_path: bring back support for SFTP path ending in /~ curl_url_set.3: mention that users can set content rather freely CURLOPT_IPRESOLVE.3: this for host names, not IP addresses data.d: emphasize no conversion digest: clear target buffer doc: curl_mime_init() strong easy binding was relaxed in 7.87.0 docs/cmdline-opts: document the dotless config path docs/examples/protofeats.c: outputs all protocols and features docs/libcurl/curl_*escape.3: rename "url" argument to "input"/"string" docs/SECURITY-ADVISORY.md: how to write a curl security advisory docs: bump the minimum perl version to 5.6 docs: clarify that more backends have HTTPS proxy support dynbuf: never allocate larger than "toobig" easy_cleanup: require a "good" handle to act ftp: fix 'portsock' variable was assigned the same value ftp: remove dead code ftplistparser: move out private data from public struct ftplistparser: replace realloc with dynbuf gen.pl: error on duplicated See-Also fields getpart: better handle case of file not found GHA-linux: add an address-sanitizer build GHA: add a memory-sanitizer job GHA: run all linux test jobs with valgrind GHA: suppress git clone output GIT-INFO: add --with-openssl gskit: various compile errors in OS400 h2/h3: replace `state.drain` counter with `state.dselect_bits` hash: fix assigning same value headers: clear (possibly) lingering pointer in init hostcheck: fix host name wildcard checking hostip: add locks around use of global buffer for alarm() hostip: enforce a maximum DNS cache size independent of timeout value HTTP-COOKIES.md: mention the #HttpOnly_ prefix http2: always EXPIRE_RUN_NOW unpaused http/2 transfers http2: do flow window accounting for cancelled streams http2: enlarge the connection window http2: flow control and buffer improvements http2: move HTTP/2 stream vars into local context http2: pass `stream` to http2_handle_stream_close to avoid NULL checks http2: remove unused Curl_http2_strerror function declaration HTTP3/quiche: terminate h1 response header when no body is sent http3: check stream_ctx more thoroughly in all backends HTTP3: document the ngtcp2/nghttp3 versions to use for building curl http3: expire unpaused transfers in all HTTP/3 backends http3: improvements across backends http: free the url before storing a new copy http: skip a double NULL assign ipv4.d/ipv6.d: they are "mutex", not "boolean" KNOWN_BUGS: remove fixed or outdated issues, move non-bugs lib/cmake: add HAVE_WRITABLE_ARGV check lib/sha256.c: typo fix in comment (duplicated "is available") lib1560: verify that more bad host names are rejected lib: add `bufq` and `dynhds` lib: remove CURLX_NO_MEMORY_CALLBACKS lib: unify the upload/method handling lib: use correct printf flags for sockets and timediffs libssh2: fix crash in keyboard callback libssh2: free fingerprint better libssh: tell it to use SFTP non-blocking man pages: simplify the .TH sections MANUAL.md: add dict example for looking up a single definition md(4|5): don't use deprecated iOS functions md4: only build when used mime: skip NULL assigns after Curl_safefree() multi: add handle asserts in DEBUG builds multi: add multi-ignore logic to multi_socket_action multi: free up more data earleier in DONE multi: remove a few superfluous assigns multi: remove PENDING + MSGSENT handles from the main linked list ngtcp2: adapted to 0.15.0 ngtcp2: adjust config and code checks for ngtcp2 without nghttp3 noproxy: pointer to local array 'hostip' is stored outside scope ntlm: clear lm and nt response buffers before use openssl: interop with AWS-LC OS400: fix and complete ILE/RPG binding OS400: implement EBCDIC support for recent features OS400: improve vararg emulation OS400: provide ILE/RPG usage examples pingpong: fix compiler warning "assigning an enum to unsigned char" pytest: improvements for suitable curl and error output quiche: disable pacing while pacing is not actually performed quiche: Enable IDLE egress handling RELEASE-PROCEDURE: update to new schedule rtsp: convert mallocs to dynbuf for RTP buffering rtsp: skip malformed RTSP interleaved frame data rtsp: skip NULL assigns after Curl_safefree() runtests: die if curl version can be found runtests: don't start servers if -l is given runtests: fix -c option when run with valgrind runtests: fix quoting in Appveyor and Azure test integration runtests: lots of refactoring runtests: refactor into more packages runtests: show error message if file can't be written runtests: spawn a new process for the test runner rustls: fix error in recv handling schannel: add clarifying comment server/getpart: clear target buffer before load smb: remove double assign smbserver: remove temporary files before exit socketpair: verify with a random value ssh: Add support for libssh2 read timeout telnet: simplify the implementation of str_is_nonascii() test1169: fix so it works properly everywhere test1592: add flaky keyword test1960: point to the correct path for the precheck tool test303: kill server after test tests/http: add timeout to running curl in test cases tests/http: fix log formatting on wrong exit code tests/http: fix out-of-tree builds tests/http: improved httpd detection tests/http: more tests with specific clients tests/http: relax connection check in test_07_02 tests/keywords.pl: remove tests/libtest/lib1900.c: remove tests/sshserver.pl: Define AddressFamily earlier tests: 1078 1288 1297 use valid IPv4 addresses tests: document that the unittest keyword is special tests: increase sws timeout for more robust testing tests: log a too-long Unix socket path in sws and socksd tests: make test_12_01 a bit more forgiving on connection counts tests: move pidfiles and portfiles under the log directory tests: move server config files under the pid dir tests: silence some Perl::Critic warnings in test suite tests: stop using strndup(), which isn't portable tests: switch to 3-argument open in test suite tests: turn perl modules into full packages tests: use %LOGDIR to refer to the log directory tool_cb_hdr: Fix 'Location:' formatting for early VTE terminals tool_operate: pass a long as CURLOPT_HEADEROPT argument tool_operate: refuse (--data or --form) and --continue-at combo transfer: refuse POSTFIELDS + RESUME_FROM combo transfer: skip extra assign url: fix null dispname for --connect-to option url: fix PVS nits url: remove call to Curl_llist_destroy in Curl_close urlapi: cleanups and improvements urlapi: detect and error on illegal IPv4 addresses urlapi: prevent setting invalid schemes with *url_set() urlapi: skip a pointless assign urlapi: URL encoding for the URL missed the fragment urldata: copy CURLOPT_AWS_SIGV4 value on handle duplication urldata: shrink *select_bits int => unsigned char vlts: use full buffer size when receiving data if possible vtls and h2 improvements Websocket: enhanced en-/decoding wolfssl.yml: bump to version 5.6.0 write-out.d: Use response_code in example ws: handle reads before EAGAIN better Fixed in 8.0.1 - March 20 2023 Bugfixes: fix crash in curl_easy_cleanup Fixed in 8.0.0 - March 20 2023 Changes: build: remove support for curl_off_t < 8 bytes Bugfixes: .cirrus.yml: Bump to FreeBSD 13.2 aws_sigv4: fall back to UNSIGNED-PAYLOAD for sign_as_s3 BINDINGS: add Fortran binding build: drop the use of XC_AMEND_DISTCLEAN build: fix stdint/inttypes detection with non-autotools cf-socket: fix handling of remote addr for accepted tcp sockets cf-socket: if socket is already connected, return CURLE_OK cf-socket: use port 80 when resolving name for local bind CI: don't run CI jobs if only another CI was changed CI: update ngtcp2 and nghttp2 for pytest cmake: delete unused HAVE__STRTOI64 cmake: fix enabling LDAPS on Windows cmake: skip CA-path/bundle auto-detection in cross-builds connect: fix time_connect and time_appconnect timer statistics cookie: don't load cookies again when flushing cookie: parse without sscanf() curl.h: require gcc 12.1 for the deprecation magic curl: make -w's %{stderr} use the file set with --stderr curl_path: create the new path with dynbuf CURLOPT_PIPEWAIT: allow waited reuse also for subsequent connections CURLOPT_PROXY.3: curl+NSS does not handle HTTPS over unix domain socket CURLSHOPT_SHARE.3: HSTS sharing is not thread-safe DEPRECATE: the original legacy mingw version 1 doc: fix compiler warning in libcurl.m4 docs/cmdline-opts: mark all global options docs/SECURITY-PROCESS.md: updates docs: extend the URL API descriptions docs: note '--data-urlencode' option DYNBUF.md: note Curl_dyn_add* calls Curl_dyn_free on failure easy: remove infof() debug leftover from curl_easy_recv examples/http3.c: use CURL_HTTP_VERSION_3 ftp: active mode with SSL, add the filter ftp: add more conditions for connection reuse ftp: allocate the wildcard struct on demand ftp: make the EPSV response parser not use sscanf ftp: replace sscanf for MDTM 213 response parsing ftp: replace sscanf for PASV parsing gssapi: align `gss_OID_desc` to silence ld warnings on macOS ventura headers: make curl_easy_header and nextheader return different buffers hostip: avoid sscanf and extra buffer copies http2: fix error handling during parallel operations http2: fix for http2-prior-knowledge when reusing connections http2: fix handling of RST and GOAWAY to recognize partial transfers http2: fix upload busy loop http: don't send 100-continue for short PUT requests http: fix unix domain socket use in https connects http: rewrite the status line parser without sscanf http_proxy: parse the status line without sscanf idn: return error if the conversion ends up with a blank host krb5: avoid sscanf for parsing lib1560: test parsing URLs with ridiculously large fields lib2305: deal with CURLE_AGAIN lib517: verify time stamps without leading zeroes plus some more lib: silence clang/gcc -Wvla warnings in brotli headers lib: skip Curl_llist_destroy calls libcurl-errors.3: add the CURLHcode errors from curl_easy_header.3 libssh2: only set the memory callbacks when debugging libssh2: remove unused variable from libssh2's struct libssh: use dynbuf instead of realloc Makefile.mk: delete redundant `HAVE_LDAP_SSL` macro Makefile.mk: fix -g option in debug mode mqtt: on send error, return error multi: make multi_perform ignore/unignore signals less often multi: remove PENDING + MSGSENT handles from the main linked list ngtcp2-gnutls.yml: bump to gnutls 3.8.0 ngtcp2: fix unwanted close of file descriptor 0 page-footer: add explanation for three missing exit codes parsedate: parse strings without using sscanf() parsedate: replace sscanf( for time stamp parsing quic/schannel: fix compiler warnings rand: use arc4random as fallback when available rate.d: single URLs make no sense in --rate example RELEASE-PROCEDURE.md: update coming release dates rtsp: avoid sscanf for parsing runtests: use a hash table for server port numbers sectransp: fix compiler warning c89 mixed code/declaration sectransp: make read_cert() use a dynbuf when loading secure-transport: fix recv return code handling select: stop treating POLLRDBAND as an error setopt: move the CURLOPT_CHUNK_DATA pointer to the set struct socket: detect "dead" connections better, e.g. not fit for reuse src: silence wmain() warning for all build methods telnet: only accept option arguments in ascii telnet: parse NEW_ENVIRON without sscanf telnet: parse telnet options without sscanf telnet: parse the WS= argument without sscanf test1470: test socks proxy using unix sockets and connect to https test1960: verify CURL_SOCKOPT_ALREADY_CONNECTED test2600: detect when ALARM_TIMEOUT is in use and adjust test422: verify --next used without a prior URL tests/http: add pytest to GHA and improve tests tests: add `cookies` features tests: add timeout, SLOWDOWN and DELAY keywords to tests tests: fix gnutls-serv check tests: fix MSVC unreachable code warnings in unit tests tests: hack to build most unit tests under cmake tests: HTTP server fixups tests: keep cmake unit tests names in sync tests: make CPPFLAGS common to all unit tests tests: make first.c the same for both lib tests and unit tests tests: support for imaps/pop3s/smtps protocols tests: sync option lists in runtests.pl & its man page tests: test secure mail protocols with explicit SSL requests tests: use AM_CPPFILES to modify flags in unit tests tests: use dynamic ports numbers in pytest suite tool: dump headers even if file is write-only tool: improve --stderr handling tool_getparam: don't add a new node for just --no-remote-name tool_getparam: error if --next is used without a prior URL tool_operate: avoid fclose(NULL) on bad header dump file tool_operate: propagate error codes for missing URL after --next tool_progress: shut off progress meter for --silent in parallel tool_writeout_json. fix the output for duplicate header names transfer: limit Windows SO_SNDBUF updates to once a second url: fix cookielist memleak when curl_easy_reset url: fix logic in connection reuse to deny reuse on "unclean" connections url: fix the SSH connection reuse check url: only reuse connections with same GSS delegation url: remove dummy protocol handler urlapi: '%' is illegal in host names urlapi: avoid mutating internals in getter routine urlapi: parse IPv6 literals without ENABLE_IPV6 urlapi: take const args in _dup and _get functions wildcard: remove files and move functions into ftplistparser.c winbuild: fix makefile clean wolfssl: add quic/ngtcp2 detection in cmake, and fix builds wolfSSL: ressurect the BIO `io_result` ws: keep the socket non-blocking x509asn1.c: use correct format specifier for infof() call x509asn1: use plain %x, not %lx, when the arg is an int
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 237e84837eefb20230ee1f3a03ab22c674db30cd Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:33:51 2023 +0000
core176: Ship whois
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 642e18d96b5e5eed9e63d9ad3047613c1033a1d4 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:28 2023 +0200
whois: Update to version 5.5.17
- Update from version 5.5.13 to 5.5.17 - Update of rootfile not required - Previous versions of whois were taken from debian files. However these are taken from the whois github page and then repackaged from gz to xz. It therefore seemed sensible to me that we should take the source from this package from the github repo that the developer is using. Therefore some changes to naming convention of the source file. - Changelog whois (5.5.17) unstable; urgency=medium * Added the .cd TLD server. * Updated the -kg NIC handles server name. * Removed 2 new gTLDs which are no longer active. whois (5.5.16) unstable; urgency=medium * Add bash completion support, courtesy of Ville Skyttä. * Updated the .tr TLD server. * Removed support for -metu NIC handles. whois (5.5.15) unstable; urgency=medium * Updated the .bd, .nz and .tv TLD servers. * Added the .llyw.cymru, .gov.scot and .gov.wales SLD servers. * Updated the .ac.uk and .gov.uk SLD servers. * Recursion has been enabled for whois.nic.tv. * Updated the list of new gTLDs with four generic TLDs assigned in October 2013 which were missing due to a bug. * Removed 4 new gTLDs which are no longer active. * Added the Georgian translation, contributed by Temuri Doghonadze. * Updated the Finnish translation, contributed by Lauri Nurmi. whois (5.5.14) unstable; urgency=medium * Added the .bf and .sd TLD servers. * Removed the .gu TLD server. * Updated the .dm, .fj, .mt and .pk TLD servers. * Updated the charset for whois.nic.tr. * Updated the list of new gTLDs. * Removed whois.nic.fr from the list of RIPE-like servers, because it is not one anymore. (Closes: #1021110) * Renamed whois.arnes.si to whois.register.si in the list of RIPE-like servers. * Added the hiding string for whois.auda.org.au. * Fixed uclibc builds, because uclibc does not have NLS support.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 7adec7d392244e33d202bacf0d8955edaa55007b Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:27 2023 +0200
texinfo: Update to version 7.0.3
- Update from version 7.0.2 to 7.0.3 - Update of rootfile not required - Changelog 7.0.3 (26 March 2023) This is a bug-fix release with minimal changes. * texi2any . fix performance regression when Perl binary extension (XS) modules are not being used (e.g. with TEXINFO_XS=omit) * info . further fix of recoding of UTF-8 files to ASCII to avoid text disappearing from nodes . avoid possible freeze at start of a file with `-v nodeline=pointers'
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 50ae4dcc50d2bc70b8afe8f98553d822328775b9 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:32:52 2023 +0000
core176: Ship sqlite
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 9cd5350f0a16c78886ebca6e9d95c849af04bb33 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:26 2023 +0200
sqlite: Update to version 3420000
- Update from version 3410200 to 3420000 - Update of rootfile not required - Changelog is mostly new functions but there are also a range of unnamed bug fixes and performance improvements version 3420000 Add the FTS5 secure-delete command. This option causes all forensic traces to be removed from the FTS5 inverted index when content is deleted. Enhance the JSON SQL functions to support JSON5 extensions. The SQLITE_CONFIG_LOG and SQLITE_CONFIG_PCACHE_HDRSZ calls to sqlite3_config() are now allowed to occur after sqlite3_initialize(). New sqlite3_db_config() options: SQLITE_DBCONFIG_STMT_SCANSTATUS and SQLITE_DBCONFIG_REVERSE_SCANORDER. Query planner improvements: Enable the "count-of-view" optimization by default. Avoid computing unused columns in subqueries. Improvements to the push-down optimization. Enhancements to the CLI: Add the --unsafe-testing command-line option. Without this option, some dot-commands (ex: ".testctrl") are now disabled because those commands that are intended for testing only and can cause malfunctions misused. Allow commands ".log on" and ".log off", even in --safe mode. "--" as a command-line argument means all subsequent arguments that start with "-" are interpreted as normal non-option argument. Magic parameters ":inf" and ":nan" bind to floating point literals Infinity and NaN, respectively. The --utf8 command-line option omits all translation to or from MBCS on the Windows console for interactive sessions, and sets the console code page for UTF-8 I/O during such sessions. The --utf8 option is a no-op on all other platforms. Add the ability for application-defined SQL functions to have the same name as join keywords: CROSS, FULL, INNER, LEFT, NATURAL, OUTER, or RIGHT. Enhancements to PRAGMA integrity_check: Detect and raise an error when a NaN value is stored in a NOT NULL column. Improved error message output identifies the root page of a b-tree when an error is found within a b-tree. Allow the session extension to be configured to capture changes from tables that lack an explicit ROWID. Added the subsecond modifier to the date and time functions. Negative values passed into sqlite3_sleep() are henceforth interpreted as 0. The maximum recursion depth for JSON arrays and objects is lowered from 2000 to 1000. Extended the built-in printf() function so the comma option now works with floating-point conversions in addition to integer conversions. Miscellaneous bug fixes and performance optimizations
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 9f6251e13bbcdea200cf890638c7edfa33b43223 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:32:18 2023 +0000
core176: Ship procps
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit b1c5bde6c7074b33610987cbae34561f318845cf Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:25 2023 +0200
procps: Update to version v4.0.3
- Update from version v4.0.0 to v4.0.3 - Update of rootfile - Changed souce from gz to bz2 - Changelog procps-ng-4.0.3 * library Only changes were in copyright headers and tests * docs: Don't install English manpages twice * pgrep: Add -H match on userspace signal handler merge #165 * pgrep: make --terminal respect other criteria * ps: c flag shows command name again Debian #1026326 * ps.1: Match drs description from top.1 merge #156 * skill: Match on -p again Debian #1025915 * top: E/P-core toggle ('5' key) added to help * vmstat: Referesh memory statistics Debian #1027963 * vmstat: Fix initial si,so,bi,bo,in & cs values issue #15 Debian #668580 * vmstat: Fix conversion errors due to precision merge #75 * w: Add --pids option merge #159 * watch: Pass through beep issue #104 * watch: -r option to not re-exec on SIGWINCH merge #125 * watch: find eol with --no-linewrap merge #157 procps-ng-4.0.2 * library revision - 0:1:0 Handle absent 'core_id' in /proc/cpuinfo * w: Show time with D_TIME_BITS=64 on 32bit env issue #256 procps-ng-4.0.1 * library Re-add elogind support merge #151 Used memory is Total - Available Renaming, it is now libproc2 * free: Use --kilo when only specifying --si merge #163 * pgrep: Add -A to ignore ancestors merge #160 * pidwait: Better warning if pidfd_open not implemented * pmap: Dont reuse stdin filehandle issue #231 * ps: threads again display when -L is used with -q issue #234 * ps: proper aix format string behavior was restored * sysctl: print dotted keys again * top: fix 'smaps' bug preventing build under clang issue #235 * top: column highlighting allowed under 'L' or 'O' * top: can alter autogroup nice value (like 'r' renice) * top: can display the following with no need to scroll * cmdline, control groups, environment, supplimentary groups, namespaces * top: adds a 'message log' recall capability * top: will accept utf8 multi-byte input with support for full line editing and previous line recall * top: can show more than 2 abreast in summary display * top: can distinguish P-Core and E-core cpus * top: can filter both P-Core and E-core cpus * watch: Add equexit no-change and exit option merge #153
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit b5661ddc236ab814a0bd31142af3b8e5dd4c2613 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:31:39 2023 +0000
core176: Ship man
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 7bff30a8ba0c07b7ea1afc49a27f1b527f8a7869 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:24 2023 +0200
man: Update to version 2.11.2
- Update from version 2.10.2 to 2.11.2 - Update of rootfile - Changelog man-db 2.11.2 (8 January 2023) Fixes: * Fix compile and test failures when `troff` is not `groff`. * Fix segfault in typical uses of `man` when `nroff` is not installed. * Fix crash in `mandb` when processing stray cats. Improvements: * Check for stray cats even if no manual pages in a given manpath were changed. man-db 2.11.1 (15 November 2022) Build: * Transfer Git repository to https://gitlab.com/man-db/man-db. Fixes: * SECURITY: Replace `$` characters in page names with `?` when constructing `less` prompts. * Silence error message when processing an empty manual page hierarchy with a nonexistent cache directory. * `man(1)` now sorts whatis references below real pages, even if the whatis references are from a section with higher priority. Improvements: * Add section `3type` to the default section list just after `2`. This is used by the Linux man-pages package. * Recognize more Hungarian translations of the `NAME` section. man-db 2.11.0 (15 October 2022) Fixes: * `mandb` now correctly records filters in the database if it uses cached whatis information. * Upgrade Gnulib, fixing syntax error on glibc systems with GCC 11. * The `CATWIDTH` configuration file directive now overrides `MINCATWIDTH` and `MAXCATWIDTH`. * Database entries for links were often incorrectly stored as if they were entries for the ultimate source of the page. They are now stored with the correct type. * Store links in the database using the section and extension of the link rather than of the ultimate source file. * Consider pages for adding to the database even if they seem to already exist; this performance optimization is no longer needed due to caching, and it produced inconsistent results in some unusual cases. * `man` now runs any required preprocessors in the same order that `groff` does, rather than trusting the order of filters in a page's preprocessor string. * Fix building on MinGW. (I haven't been able to test this; help from MinGW experts would be welcome.) Improvements: * Add more recognized case variants for localized versions of the `NAME` section. * Maintain multi keys in sorted order, improving database reproducibility. * Pick a more consistent name for the target of a whatis entry in the database. * Extend rules for when to replace one database entry with another, producing more stable behaviour. * Fully reorganize databases after writing them, allowing the reproduction of bitwise-identical databases regardless of scan order (at least with GDBM).
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 0bead24b3dce225aba3db047a1349965b6ea812a Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:31:16 2023 +0000
core176: Ship less
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 730fa3189bd691c9a0ffaf3f83ee4cc554903ad9 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:23 2023 +0200
less: Update to version 633
- Update from version 608 to 633 - Update of rootfile not required - Changelog Major changes between "less" versions 632 and 633 * Fix build on systems which have ncurses/termcap.h or ncursesw/termcap.h but not termcap.h. Major changes between "less" versions 608 and 632 * Add LESSUTFCHARDEF environment variable (github #275). * Add # command (github #330). * Add ^S search modifier (github #196). * Add --wordwrap option (github #113). * Add --no-vbell option (github #304). * Add --no-search-headers option (github #44). * Add --modelines option (github #89). * Add --intr option (github #224). * Add --proc-backspace, --proc-tab and --proc-return options (github #335). * Add --show-preproc-errors option (github #258). * Add LESS_LINES and LESS_COLUMNS environment variables (github #84). * Add LESS_DATA_DELAY environment variable (github #337). * Allow empty "lines" field in --header option. * Update Unicode tables. * Improve ability of ^X to interrupt F command (github #49). * Status column (-J) shows off-screen matches. * Parenthesized sub-patterns in searches are colored with unique colors, if supported by the regular expression library (github #196). * Don't allow opening a tty as file input unless -f is set (github #309). * Don't require newline input after +&... option (github #339). * Fix incorrect handling of some Private Use Unicode characters. * Fix ANSI color bug when overstriking with colored chars (github #276). * Fix compiler const warning (github #279). * Fix signal race in iread (github #280). * Fix reading procfs files on Linux (github #282). * Fix --ignore-case with ctrl-R (no regex) search (github #300). * Fix bug doing repeat search after setting & filter (github #299). * Fix bug doing repeat search before non-repeat search. * Fix crash with -R and certain line lengths (github #338). * Fix input of Windows dead keys (github #352). * Don't retain search options from a cancelled search (github #302). * Don't call realpath on fake filenames like "-" (github #289). * Implement lesstest test suite. * Convert function parameter definitions from K&R to C89 (github #316).
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit ca744e25d0c6a0ccfdfa63ee557675b1ae1e69b1 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:30:48 2023 +0000
core176: Ship grep
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 0919eca9dd71e33bdd7f92ae5372d945fbc2649a Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:22 2023 +0200
grep: Update to version 3.11
- Update from version 3.10 to 3.11 - Update of rootfile not required - Changelog * Noteworthy changes in release 3.11 (2023-05-13) [stable] ** Bug fixes With -P, patterns like [\d] now work again. Fixing this has caused grep to revert to the behavior of grep 3.8, in that patterns like \w and \b go back to using ASCII rather than Unicode interpretations. However, future versions of GNU grep and/or PCRE2 are likely to fix this and change the behavior of \w and \b back to Unicode again, without breaking [\d] as 3.10 did. [bug introduced in grep 3.10]
grep no longer fails on files dated after the year 2038, when running on 32-bit x86 and ARM hosts using glibc 2.34+. [bug introduced in grep 3.9]
grep -P no longer fails to match patterns using negated classes like \D or \W when linked with PCRE2 10.34 or newer. [bug introduced in grep 3.8] ** Changes in behavior grep --version now prints a line describing the version of PCRE2 it uses. For example, it prints this when built with the very latest from git: grep -P uses PCRE2 10.43-DEV 2023-04-14 or this with what's currently available in Fedora 37: grep -P uses PCRE2 10.40 2022-04-14
previous versions of grep wouldn't respect the user provided settings for PCRE_CFLAGS and PCRE_LIBS when building if a libpcre2-8 pkg-config module was found.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit a8c72d6f5a6575b828192f3edbce3a4ac3e9f068 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:29:48 2023 +0000
core176: Ship gawk
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit c06f8d94a438a2243f75698523e623882b496fd1 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:20 2023 +0200
gawk: Update to vesrion 5.2.2
- Update from version 5.1.1 to 5.2.2 - Update of rootfile - Changelog Changes from 5.2.1 to 5.2.2 1. Infrastructure upgrades: makeinfo 7.0.1 must be used to format the manual. As a result, the manual can also now be formatted with LaTeX by running it through `makeinfo --latex'. 2. Gawk no longer builds an x86_64 executable on M1 macOS systems. This means that PMA is unavailable on those systems. 3. Gawk will now diagnose if a heap file was created with a different setting of -M/--bignum than in the current invocation and exit with a fatal message if so. 4. Gawk no longer "leaks" its free list of NODEs in the heap file, resulting in much more efficient usage of persistent storage. 5. PROCINFO["pma"] exists if the PMA allocator is compiled into gawk. Its value is the PMA version. 6. The time extension is no longer deprecated. The strptime() function from gawkextlib's timex extension has been added to it. 7. Better information is passed to input parsers for when they want to decide whether or not to take control of a file. In particular, the readdir extension is simplified for Windows because of this. 8. The various PNG files are now installed for Info and HTML. The images files now have gawk_ prefixed names to avoid any conflicts with other installed PNG file names. 9. As usual, there have been several minor code cleanups and bug fixes. See the ChangeLog for details. Changes from 5.2.0 to 5.2.1 1. Infrastructure upgrades: PMA version Avon 8. 2. Issues related to the sign of NaN and Inf values on RiscV have been fixed; gawk now gives identical results on that platform as it does on others. 3. A few issues with the debugger have been fixed. 4. More subtle issues with untyped array elements being passed to functions have been fixed. 5. The rwarray extension's readall() function has had some bugs fixed. 6. The PMA allocator is now supported on FreeBSD, OpenBSD and Linux on S/390x. It is now supported also on both Intel and M1 macOS systems. 7. There have been several minor code cleanups and bug fixes. See the ChangeLog for details. Changes from 5.1.x to 5.2.0 ***************************************************************************** * MPFR mode (the -M option) is now ON PAROLE. This feature is now being * * supported by a volunteer in the development team and not by the primary * * maintainer. If this situation changes, then the feature will be removed. * * For more information see this section in the manual: * * https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html * ***************************************************************************** 1. Infrastructure upgrades: Libtool 2.4.7, Bison 3.8.2. 2. Numeric scalars now compare in the same way as C for the relational operators. Comparison order for sorting has not changed. This only makes a difference when comparing Infinity and NaN values with regular numbers; it should not be noticeable most of the time. 3. If the AWK_HASH environment variable is set to "fnv1a" gawk will use the FNV1-A hash function for associative arrays. 4. The CMake infrastructure has been removed. In the five years it was in the tree, nobody used it, and it was not updated. 5. There is now a new function, mkbool(), that creates Boolean-typed values. These values *are* numbers, but they are also tagged as Boolean. This is mainly for use with data exchange to/from languages or environments that support real Boolean values. See the manual for details. 6. As BWK awk has supported interval expressions since 2019, they are now enabled even if --traditional is supplied. The -r/--re-interval option remains, but it does nothing. 7. The rwarray extension has two new functions, writeall() and readall(), for saving / restoring all of gawk's variables and arrays. 8. The new `gawkbug' script should be used for reporting bugs. 9. The manual page (doc/gawk.1) has been considerably reduced in size. Wherever possible, details were replaced with references to the online copy of the manual. 10. Gawk now supports Terence Kelly's "persistent malloc" (pma), allowing gawk to preserve its variables, arrays and user-defined functions between runs. THIS IS AN EXPERIMENTAL FEATURE! For more information, see the manual. A new pm-gawk.1 man page is included, as is a separate user manual that focuses on the feature. 11. Support for OS/2 has been removed. It was not being actively maintained. 12. Similarly, support for DJGPP has been removed. It also was not being actively maintained. 13. VAX/VMS is no longer supported, as it can no longer be tested. The files for it remain in the distribution but will be removed eventually. 14. Some subtle issues with untyped array elements being passed to functions have been fixed. 15. Syntax errors are now immediately fatal. This prevents problems with errors from fuzzers and other such things. 16. There have been numerous minor code cleanups and bug fixes. See the ChangeLog for details. Changes from 5.1.1 to 5.1.x 1. Infrastructure upgrades: Automake 1.16.5, Texinfo 6.8. 2. The rwarray extension now supports writing and reading GMP and MPFR values. As a result, a bug in the API code was fixed.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit e0d59c61dd9771de79bd558800586823faee34be Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:28:50 2023 +0000
core176: Ship ed
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 9a7aea8b32cd9792002e5db09f72e691d7fae96a Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:19 2023 +0200
ed: Update to version 1.19
- Update from version 1.17 to 1.19 - Update of rootfile not required - Changelog 2023-01-11 Antonio Diaz Diaz antonio@gnu.org * Version 1.19 released. * main_loop.c (exec_command): Fix commands 'e', 'E'; they did set the 'modified' flag if file not found. (Reported by Harry Graf). (main_loop): Print script error line to stdout instead of stderr. * Change long name of option '-s' to '--script'. (Suggested by Andrew L. Moore). * Assign short name '-q' to options '--quiet' and '--silent'. * main.c (show_strerror) Use '!quiet' to enable diagnostics. * Do not process file names for backslash escapes. (Suggested by Andrew L. Moore). * ed.texi: Document 0 as starting point for searches '0;/RE/'. Document how to achieve the effect of ex style '!' filtering. 2022-02-04 Antonio Diaz Diaz antonio@gnu.org * Version 1.18 released. * main_loop.c (get_shell_command): Flush stdout after printing cmd. (Reported by Sören Tempel). * signal.c (sighup_handler): Fix a memory leak just before exiting. * carg_parser.c (ap_init): Likewise. (Both reported by Xosé Vázquez Pérez). * io.c (read_file, write_file): Check ptr returned by strip_escapes. * main_loop.c (get_shell_command, exec_command): Likewise. * main_loop.c (get_shell_command): Remove backslash from escaped '%'. (Reported by Martin Thomsen). * main_loop.c, regex.c: Implement case-insensitive REs. * regex.c (compile_regex): Don't overwrite previous regex if error. * main.c: New option '--strip-trailing-cr'. * buffer.c (push_undo_atom): Fail if stack grows larger than INT_MAX. (too_many_lines): Fail if buffer grows larger than INT_MAX lines. * global.c (set_active_node): Fail if list grows larger than INT_MAX. * signal.c (resize_buffer): Fail if a line grows longer than INT_MAX. * io.c (read_file): Return -2 for fatal errors. * main_loop.c (main_loop): Set error status if fatal error from main. * main.c [restricted_]: New message "Directory access restricted". * ed.texi: New chapter "The 's' Command". * COPYING: Restored. (I forgot to do it in 1.11). * TODO: Removed.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 2eda545fc75410106b6acf663a6d2751c795d4ad Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:28:19 2023 +0000
core176: Ship diffutils
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit a75ec91d070571e455713a2d7ff2844e7efcd979 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu May 18 20:43:18 2023 +0200
diffutils: Update to version 3.9
- Update from version 3.8 to 3.9 - Update of rootfile not required - Changelog version 3.9 * NEWS: Record release date.
build: update gnulib to latest
2023-01-05 Jim Meyering meyering@fb.com tests: avoid large-subopt XPASS on systems without perl * tests/large-subopt: Use $PERL, rather than hard-coding "perl". * bootstrap.conf (gnulib_modules): Add "perl" to the list. Reported by Bruno Haible in https://lists.gnu.org/r/diffutils-devel/2023-01/msg00000.html
2023-01-05 Bruno Haible bruno@clisp.org tests: avoid a test failure when using Solaris 11.4's old grep * tests/colors (nanosecond_zeros): Use a dumbed-down grep '.' in place of "grep -F ." to accommodate Solaris 11.4's old versions of grep in the default PATH. Reported here: https://lists.gnu.org/r/diffutils-devel/2023-01/msg00001.html
2023-01-01 Jim Meyering meyering@fb.com build: update gnulib to latest
maint: update copyright dates
2022-12-31 Paul Eggert eggert@cs.ucla.edu build: simplify GCC 12 false alarm workaround * src/util.c (print_message_queue): Pacify GCC in a more-straightforward way.
maint: fix assumption typo Fix a typo I introduced in my August 2021 signal handling fixes. Problem reported by Sam James (Bug#60457). * src/util.c (xsigismember): Don’t assume sigismember cannot return 0.
2022-12-30 Jim Meyering meyering@fb.com build: update gnulib to latest
build: temp?-disable -Wanalyzer-use-of-uninitialized-value * src/util.c (print_message_queue): This function triggers false positive warnings from GCC12, so add pragmas to ignore that new warning in this one function. Required when using either of these: - gcc version 12.2.1 20221121 - gcc version 13.0.0 20221229 (experimental)
2022-12-11 Jim Meyering meyering@fb.com build: update gnulib to latest
2022-11-12 Jim Meyering meyering@fb.com build: update gnulib to latest
2022-02-14 Paul Eggert eggert@cs.ucla.edu doc: mark up SEE ALSO (Bug#53976)
2022-01-24 Jim Meyering meyering@fb.com tests: fix false-failure on systems without valgrind * tests/init.cfg (require_valgrind_): Use exit status of subshell, not that of the "local" declaration.
2022-01-14 Paul Eggert eggert@cs.ucla.edu build: update gnulib submodule to latest
2022-01-03 Jim Meyering meyering@fb.com maint: avoid new syntax-check failure * cfg.mk (local-checks-to-skip): Add sc_indent, to skip it. Otherwise, "make syntax-check" would fail.
maint: make update-copyright
build: update gnulib to latest; also bootstrap and init.sh
2021-10-30 Paul Eggert eggert@cs.ucla.edu maint: modernize README-{hacking,prereq}
2021-10-16 Paul Eggert eggert@cs.ucla.edu doc: copy fdl.texi into git This pacifies this notice from ./bootstrap: “Notice from module fdl: Don't use this module! Instead, copy the referenced license file into your version control repository.” * bootstrap.conf (gnulib_modules): Remove fdl. * doc/fdl.texi: New file, taken from Gnulib.
maint: direct dependency on time_rz now Now that diff calls tzalloc, it depends directly on time_rz. * bootstrap.conf (gnulib_modules): Add time_rz.
build: update gnulib submodule to latest
2021-10-15 Paul Eggert eggert@cs.ucla.edu diff: fix timezone bug on Solaris Problem reported by Vladimir Marek (bug#51228). * NEWS: Mention this. * src/context.c (print_context_label): Pass localtz to nstrftime, instead of always passing 0. * src/diff.c (main) [!HAVE_TM_GMTOFF]: Initialize localtz if time_format uses %z. * src/diff.h (localtz): New decl. * tests/Makefile.am (TESTS): Add timezone. * tests/timezone: New test.
2021-08-31 Paul Eggert eggert@cs.ucla.edu diff3: port better to MS-Windows * src/diff3.c (enum diff_type): Prefix constants like ADD with "DIFF_" to avoid collisions with unwise system headers.
2021-08-30 Paul Eggert eggert@cs.ucla.edu maint: port better to non-POSIX Problem privately reported by Gisle Vanem for MS-Windows. * src/util.c (sig, install_signal_handlers): Don’t assume SIGTSTP, SIGALRM, SIGQUIT. (is_tstp_index): New function, for use in SIGTSTP avoidance.
maint: prefer attribute.h attributes Prefer the macros used in attribute.h, and _Noreturn, to the by-hand use of __attribute__, as this is more portable. * bootstrap.conf (gnulib_modules): Add attribute. * src/system.h: Include attribute.h. All uses of attributes changed to use the attribute.h macros. Plus, use _Noreturn. (FALLTHROUGH): Remove; attribute.h now defines this.
build: update gnulib submodule to latest
diff: avoid double translation * src/analyze.c (briefly_report): Do not translate here, as ‘message’ translates its format.
diff: use variable arg list for messages This simplifies the code by using varargs. * bootstrap.conf (gnulib_modules): Add flexmember. (XGETTEXT_OPTIONS): Do not flag message5. * src/util.c: Include flexmember.h, stdarg.h. (struct msg): New members msgid, argbytes. args is now FLEXIBLE_ARRAY_MEMBER, and does not contain msgid. All uses changed. (message): Now varargs. Detect number of args by counting '%'s. Use FLEXSIZEOF, to avoid problems on systems with buggy allocators. Avoid redundant ‘*p = 0’ when *p is already zero after stpcpy. (message5): Remove; all callers changed to use ‘message’. (print_message_queue): Abort if too many args were passed; this cannot happen with current diffutils.
2021-08-29 Paul Eggert eggert@cs.ucla.edu diff: port better to MS-Windows Problem reported by Gisle Vanem (Bug#36488#30). * src/util.c (xsigaction) [SA_NOCLDSTOP]: Remove; no longer needed. (install_signal_handlers): If the first call to sigaction or signal fails, do not exit; just skip the signal and continue, in case the runtime does not support the signal even though the corresponding SIG* macro is defined.
2021-08-28 Paul Eggert eggert@cs.ucla.edu diff: cleanup signal handling just before exit This should fix an unlikely signal handling bug with colored output, and should also fix a Debian FTBFS (Fails To Build From Source) on powerpc64le-linux. See Bug#34519 and Frédéric Bonnard’s report in: https://bugs.debian.org/922552#19 * bootstrap.conf (gnulib_modules): Add raise, sigprocmask. * src/diff.c (main): Call cleanup_signal_handlers before exiting. Don’t bother calling ‘exit’; no longer needed nowadays. * src/util.c (sigprocmask, siginterrupt) [!SA_NOCLDSTOP]: Define to 0 instead of empty, since the results are now used. (sigset_t) [!SA_NOCLDSTOP]: Remove; we now rely on Gnulib. (xsigaction) [SA_NOCLDSTOP]: New function. (xsigaddset, xsigismember, xsignal, xsigprocmask): New functions. (some_signals_caught): New static var. (process_signals): Omit a conditional branch. Don’t bother loading interrupt_signal if stop_signal_count is nonzero. (process_signals, install_signal_handlers): Check for failures from sigprocmask etc. (sig, nsig): Now at top level, since multiple functions need them. (install_signal_handlers): No need for caught_sig array; just use caught_signals. However, set some_signals_caught. (cleanup_signal_handlers): New function.
2021-08-22 Paul Eggert eggert@cs.ucla.edu diff: add integer overflow checking * src/diff.c (option_list, main): Check for integer overflow in some unlikely and hard-to-test cases.
maint: refactor integer overflow checking Rely on more-modern Gnulib capabilities instead of doing integer overflow checking by hand, in some cases. * lib/cmpbuf.c (buffer_lcm): * src/io.c (slurp, find_identical_ends): Use INT_ADD_WRAPV and INT_MULTIPLY_WRAPV rather than checking overflow by hand. * src/diff3.c (process_diff): * src/dir.c (dir_read): * src/io.c (find_identical_ends, read_files): Use xnmalloc rather than checking overflow by hand. (read_files): Rely on xcalloc to do overflow checking.
diff: avoid sprintf %s sprintf fails if the result contains more than INT_MAX bytes, so rework the code to avoid usage of sprintf %s where the string might be longer than that. * bootstrap.conf (gnulib_modules): Remove xvasprintf. * src/diff.c (specify_style): * src/util.c (begin_output): Rewrite to avoid sprintf %s. * src/util.c: Do not include xvasprintf.h. (concat): Remove, as it uses sprintf %s. All uses rewritten.
diff: use mempcpy * bootstrap.conf (gnulib_modules): Add mempcpy, stpcpy. * src/ifdef.c (do_printf_spec): * src/sdiff.c (expand_name, lf_snarf, temporary_file): * src/util.c (message5): Prefer mempcpy to memcpy plus manual size-updating. Prefer stpcpy to mempcpy plus manual size-spec.
sdiff: fix unlikely memory leak * src/sdiff.c (temporary_file): Fix memory leak when mkstemp fails. Don’t assume temporary file name length fits in ‘int’.
diff3: simplify process_diff * src/diff3.c (process_diff): Remove LAST_BLOCK arg, since callers no longer needed it. All callers changed. This removes an unnecessary initialization of bptr to NULL.
maint: modernize IF_LINT for GCC 11.2.1 * src/cmp.c (cmp): * src/dir.c (find_dir_file_pathname): * src/sdiff.c (edit): Mention which GCC bug this IF_LINT works around. * src/diff3.c (process_diff): Always initialize to NULL, to avoid problems on mostly-theoretical hosts where accessing uninitialized variables traps. The next patch will have a better fix for this. * src/ifdef.c (do_printf_spec): No need for IF_LINT in GCC 11.2.1.
maint: lint → GCC_LINT ‘lint’ is for traditional lint and perhaps some other tools; ‘GCC_LINT’ is targeted more for what we do. Gnulib accepts either, but we might as well be more accurate. * configure.ac (GCC_LINT): Define this instead of ‘lint’. All uses changed.
diff: remove printint * src/system.h (printint): Remove. All uses removed. This type was only for porting to pre-C89 hosts, and is no longer needed.
diff: remove INT_MAX limit on -F/-p searches * src/context.c (find_function): Don’t limit function-line searches to INT_MAX bytes, removing a FIXME.
maint: .gitignore updates * .gitignore: Remove lib/unused-parameter.h. Add all of m4, since no files there need to be committed; this lets us remove m4/.gitignore and m4/gnulib-cache.m4. Add *.orig, *.patch, .Tpo, /*.diff, lib/*/ (which lets us remove /lib/sys/), lib/ctype.h, lib/errno.h, lib/float.h, lib/fnmatch.h, lib/getopt-cdefs.h, lib/getopt.h, lib/limits.h, lib/sigsegv.h, lib/stdalign.h, lib/stdarg.h, lib/stdbool.h, lib/stddef.h, lib/stdint.h, lib/stdopen.[ch], vc-dwim-log-*. Add slashes to autom4te.cache, build-aux. Remove redundant initial slashes from patterns that also have internal slashes. Remove plain ABOUT-NLS, since /ABOUT-NLS suffices. Sort using LC_ALL=C.
maint: omit unused function if not debugging * src/util.c (debug_script): Compile only if DEBUG.
maint: remove prepargs * lib/Makefile.am (noinst_HEADERS): Remove prepargs.h. (libdiffutils_a_SOURCES): Remove prepargs.c. * lib/prepargs.c, lib/prepargs.h: Remove. Hasn’t been needed for many years. * src/diff.c: Do not include prepargs.h.
maint: zalloc → xzalloc * src/util.c (zalloc): Remove. All uses replaced by xzalloc, which means the same thing.
2021-08-22 Paul Eggert eggert@cs.ucla.edu diff3: suppress -fanalyzer alarms * src/diff3.c: Add pragma to suppress -Wanalyzer-null-dereference alarms.
* src/diff.h (find_dir_file_pathname): Add malloc-related attributes, to pacify gcc -Wsuggest-attribute=malloc.
2021-08-22 Paul Eggert eggert@cs.ucla.edu maint: remove January workaround for Gnulib issue * configure.ac: Don’t add -Wno-analyzer-null-argument, since the issue is now fixed in Gnulib.
build: update gnulib submodule to latest
2021-08-01 Paul Eggert eggert@cs.ucla.edu maint: remove stray init.cfg * init.cfg: Remove. I guess this file was a stray, since it was a copy of tests/init.cfg when it was checked in, and it hasn’t been maintained since.
tests: port to valgrind 3.16.0 + GCC 11.2 * tests/init.cfg (stderr_fileno_): Reject valgrind if it reports a "Serious error" on a trival use of ‘diff’. Without this patch, on RHEL 8.4 when I compile diffutils with a GCC 11.2.0 that I built myself, ‘valgrind diff’ spits out messages like WARNING: Serious error when reading debug info / When reading debug info from diff: Ignoring non-Dwarf2/3/4 block in .debug_info’ and this causes the strip-trailing-cr test to fail. I guess valgrind complains because the valgrind version 3.16.0 that came with RHEL 8.4 cannot grok the debug entries generated by GCC 11.2.0.
2021-08-01 Jim Meyering meyering@fb.com maint: post-release administrivia * NEWS: Add header line for next release. * .prev-version: Record previous version. * cfg.mk (old_NEWS_hash): Auto-update.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 89233e1abe33e087a7aa567f963412b1d008ca2e Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:27:21 2023 +0000
core176: Ship dhcpcd
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit e031838684f225c334595f87c783634cc3d4163d Author: Adolf Belka adolf.belka@ipfire.org Date: Fri Jun 2 21:57:52 2023 +0200
dhcpcd: Update to version 10.0.1
- Update from version 9.4.1 to 10.0.1 - Update of rootfile not required - Changelog is no longer provided. For details of changes you have to look at the commits log - https://github.com/NetworkConfiguration/dhcpcd/commits
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 36edd6d923758255595c42beceeae9d347b315e4 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:26:20 2023 +0000
core176: Ship /etc/rc.d/init.d/partresize
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit f24ce4558aeaf5e3a81f059a4c23a17651afbe2d Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Jun 5 09:30:29 2023 +0200
partresize: enable journal on ssd's and vm's
the flashimage is build without journal to not destroy usb thumbdrives or sd cards. On real ssd's and virtual machines it should enabled for higher data security.
So this patch add the journal is drive support smart.
Signed-off-by: Arne Fitzenreiter arne_f@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 36a19f2b398f8d70e0c6dc00adee5274ae7da79b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Mon Jun 5 09:30:28 2023 +0200
partresize: remove buggy code
DRV is not defined so this code is useless.
Signed-off-by: Arne Fitzenreiter arne_f@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 94820d5062214e5d9404209386e122cdad0edb77 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:23:34 2023 +0000
core176: Re-ship ovpnmain.cgi
This is just to ensure that all systems have the latest version of this file as it has been changed during the test phase of the previous update.
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 13183b06722267b5e95d8224bb25fa6cbac27f0f Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 15 09:23:02 2023 +0000
Start Core Update 176
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
-----------------------------------------------------------------------
Summary of changes: config/rootfiles/common/gawk | 13 +- config/rootfiles/common/harfbuzz | 7 +- config/rootfiles/common/libcap | 8 +- config/rootfiles/common/man | 6 +- config/rootfiles/common/nettle | 8 +- config/rootfiles/common/pam | 5 +- config/rootfiles/common/procps | 32 +- config/rootfiles/core/{175 => 176}/exclude | 0 .../core/{175 => 176}/filelists/core-files | 0 config/rootfiles/core/{175 => 176}/filelists/curl | 0 .../{oldcore/125 => core/176}/filelists/dhcpcd | 0 .../{oldcore/100 => core/176}/filelists/diffutils | 0 .../{oldcore/106 => core/176}/filelists/ed | 0 .../{oldcore/158 => core/176}/filelists/ethtool | 0 .../filelists/openvpn => core/176/filelists/files} | 2 +- .../{oldcore/103 => core/176}/filelists/gawk | 0 config/rootfiles/core/{175 => 176}/filelists/grep | 0 .../rootfiles/core/{175 => 176}/filelists/harfbuzz | 0 .../{oldcore/103 => core/176}/filelists/less | 0 .../rootfiles/core/{175 => 176}/filelists/libcap | 0 .../{oldcore/66 => core/176}/filelists/man | 0 .../{oldcore/106 => core/176}/filelists/misc-progs | 0 config/rootfiles/core/{175 => 176}/filelists/mpfr | 0 .../{oldcore/101 => core/176}/filelists/nettle | 0 .../{oldcore/119 => core/176}/filelists/pam | 0 .../{oldcore/103 => core/176}/filelists/procps | 0 .../rootfiles/core/{175 => 176}/filelists/sqlite | 0 .../{oldcore/162 => core/176}/filelists/whois | 0 .../rootfiles/{oldcore/152 => core/176}/update.sh | 14 +- config/rootfiles/{core => oldcore}/175/exclude | 0 .../{core => oldcore}/175/filelists/aarch64/linux | 0 .../{core => oldcore}/175/filelists/aarch64/u-boot | 0 .../{core => oldcore}/175/filelists/acpid | 0 .../{core => oldcore}/175/filelists/apache2 | 0 .../rootfiles/{core => oldcore}/175/filelists/apr | 0 .../{core => oldcore}/175/filelists/aprutil | 0 .../{core => oldcore}/175/filelists/arping | 0 .../rootfiles/{core => oldcore}/175/filelists/bash | 0 .../rootfiles/{core => oldcore}/175/filelists/bind | 0 .../{core => oldcore}/175/filelists/collectd | 0 .../{core => oldcore}/175/filelists/core-files | 0 .../rootfiles/{core => oldcore}/175/filelists/curl | 0 .../rootfiles/{core => oldcore}/175/filelists/dma | 0 .../{core => oldcore}/175/filelists/elinks | 0 .../{core => oldcore}/175/filelists/files | 0 .../{core => oldcore}/175/filelists/gnupg | 0 .../rootfiles/{core => oldcore}/175/filelists/grep | 0 .../{core => oldcore}/175/filelists/harfbuzz | 0 .../{core => oldcore}/175/filelists/iproute2 | 0 .../rootfiles/{core => oldcore}/175/filelists/krb5 | 0 .../{core => oldcore}/175/filelists/libcap | 0 .../{core => oldcore}/175/filelists/libevent2 | 0 .../{core => oldcore}/175/filelists/libgcrypt | 0 .../{core => oldcore}/175/filelists/libgpg-error | 0 .../{core => oldcore}/175/filelists/libhtp | 0 .../{core => oldcore}/175/filelists/libpcap | 0 .../{core => oldcore}/175/filelists/libxml2 | 0 .../rootfiles/{core => oldcore}/175/filelists/lvm2 | 0 .../rootfiles/{core => oldcore}/175/filelists/mpfr | 0 .../rootfiles/{core => oldcore}/175/filelists/newt | 0 .../rootfiles/{core => oldcore}/175/filelists/ntp | 0 .../{core => oldcore}/175/filelists/openldap | 0 .../{core => oldcore}/175/filelists/openssh | 0 .../{core => oldcore}/175/filelists/openssl | 0 .../{core => oldcore}/175/filelists/openvpn | 0 .../{core => oldcore}/175/filelists/parted | 0 .../{core => oldcore}/175/filelists/pciutils | 0 .../{core => oldcore}/175/filelists/poppler | 0 .../rootfiles/{core => oldcore}/175/filelists/ppp | 0 .../rootfiles/{core => oldcore}/175/filelists/qpdf | 0 .../{core => oldcore}/175/filelists/slang | 0 .../{core => oldcore}/175/filelists/sqlite | 0 .../{core => oldcore}/175/filelists/squid | 0 .../{core => oldcore}/175/filelists/suricata | 0 .../{core => oldcore}/175/filelists/tzdata | 0 .../{core => oldcore}/175/filelists/unbound | 0 .../{core => oldcore}/175/filelists/wpa_supplicant | 0 .../{core => oldcore}/175/filelists/x86_64/linux | 0 .../{core => oldcore}/175/filelists/xfsprogs | 0 .../rootfiles/{core => oldcore}/175/filelists/zstd | 0 config/rootfiles/{core => oldcore}/175/update.sh | 0 config/rootfiles/packages/transmission | 92 +- config/rootfiles/packages/wavemon | 8 +- lfs/curl | 4 +- lfs/dhcpcd | 8 +- lfs/diffutils | 6 +- lfs/ed | 6 +- lfs/ethtool | 4 +- lfs/fping | 8 +- lfs/gawk | 6 +- lfs/grep | 4 +- lfs/harfbuzz | 4 +- lfs/less | 4 +- lfs/libcap | 4 +- lfs/man | 6 +- lfs/minidlna | 7 +- lfs/mpfr | 2 +- lfs/nettle | 6 +- lfs/nginx | 10 +- lfs/pam | 6 +- lfs/procps | 10 +- lfs/sqlite | 4 +- lfs/strace | 6 +- lfs/stress | 29 +- lfs/stunnel | 8 +- lfs/texinfo | 4 +- lfs/tmux | 8 +- lfs/transmission | 15 +- lfs/wavemon | 32 +- lfs/whois | 18 +- make.sh | 2 +- src/initscripts/system/partresize | 18 +- src/misc-progs/setuid.c | 22 +- ...-Allow-free-selection-of-MTU-by-the-user.patch} | 0 ....0-fix-DNS-rebinding-issue-CVE-2022-26505.patch | 44 - .../mpfr-4.2.0-cumulative-patches-1-to-4.patch | 521 ----- .../mpfr-4.2.0-cumulative-patches-1-to-9.patch | 2046 ++++++++++++++++++++ .../wavemon-0.9.4-force-netlink-include-path.patch | 11 + 118 files changed, 2284 insertions(+), 804 deletions(-) copy config/rootfiles/core/{175 => 176}/exclude (100%) copy config/rootfiles/core/{175 => 176}/filelists/core-files (100%) copy config/rootfiles/core/{175 => 176}/filelists/curl (100%) copy config/rootfiles/{oldcore/125 => core/176}/filelists/dhcpcd (100%) copy config/rootfiles/{oldcore/100 => core/176}/filelists/diffutils (100%) copy config/rootfiles/{oldcore/106 => core/176}/filelists/ed (100%) copy config/rootfiles/{oldcore/158 => core/176}/filelists/ethtool (100%) copy config/rootfiles/{oldcore/31/filelists/openvpn => core/176/filelists/files} (57%) copy config/rootfiles/{oldcore/103 => core/176}/filelists/gawk (100%) copy config/rootfiles/core/{175 => 176}/filelists/grep (100%) copy config/rootfiles/core/{175 => 176}/filelists/harfbuzz (100%) copy config/rootfiles/{oldcore/103 => core/176}/filelists/less (100%) copy config/rootfiles/core/{175 => 176}/filelists/libcap (100%) copy config/rootfiles/{oldcore/66 => core/176}/filelists/man (100%) copy config/rootfiles/{oldcore/106 => core/176}/filelists/misc-progs (100%) copy config/rootfiles/core/{175 => 176}/filelists/mpfr (100%) copy config/rootfiles/{oldcore/101 => core/176}/filelists/nettle (100%) copy config/rootfiles/{oldcore/119 => core/176}/filelists/pam (100%) copy config/rootfiles/{oldcore/103 => core/176}/filelists/procps (100%) copy config/rootfiles/core/{175 => 176}/filelists/sqlite (100%) copy config/rootfiles/{oldcore/162 => core/176}/filelists/whois (100%) copy config/rootfiles/{oldcore/152 => core/176}/update.sh (93%) rename config/rootfiles/{core => oldcore}/175/exclude (100%) rename config/rootfiles/{core => oldcore}/175/filelists/aarch64/linux (100%) rename config/rootfiles/{core => oldcore}/175/filelists/aarch64/u-boot (100%) rename config/rootfiles/{core => oldcore}/175/filelists/acpid (100%) rename config/rootfiles/{core => oldcore}/175/filelists/apache2 (100%) rename config/rootfiles/{core => oldcore}/175/filelists/apr (100%) rename config/rootfiles/{core => oldcore}/175/filelists/aprutil (100%) rename config/rootfiles/{core => oldcore}/175/filelists/arping (100%) rename config/rootfiles/{core => oldcore}/175/filelists/bash (100%) rename config/rootfiles/{core => oldcore}/175/filelists/bind (100%) rename config/rootfiles/{core => oldcore}/175/filelists/collectd (100%) rename config/rootfiles/{core => oldcore}/175/filelists/core-files (100%) rename config/rootfiles/{core => oldcore}/175/filelists/curl (100%) rename config/rootfiles/{core => oldcore}/175/filelists/dma (100%) rename config/rootfiles/{core => oldcore}/175/filelists/elinks (100%) rename config/rootfiles/{core => oldcore}/175/filelists/files (100%) rename config/rootfiles/{core => oldcore}/175/filelists/gnupg (100%) rename config/rootfiles/{core => oldcore}/175/filelists/grep (100%) rename config/rootfiles/{core => oldcore}/175/filelists/harfbuzz (100%) rename config/rootfiles/{core => oldcore}/175/filelists/iproute2 (100%) rename config/rootfiles/{core => oldcore}/175/filelists/krb5 (100%) rename config/rootfiles/{core => oldcore}/175/filelists/libcap (100%) rename config/rootfiles/{core => oldcore}/175/filelists/libevent2 (100%) rename config/rootfiles/{core => oldcore}/175/filelists/libgcrypt (100%) rename config/rootfiles/{core => oldcore}/175/filelists/libgpg-error (100%) rename config/rootfiles/{core => oldcore}/175/filelists/libhtp (100%) rename config/rootfiles/{core => oldcore}/175/filelists/libpcap (100%) rename config/rootfiles/{core => oldcore}/175/filelists/libxml2 (100%) rename config/rootfiles/{core => oldcore}/175/filelists/lvm2 (100%) rename config/rootfiles/{core => oldcore}/175/filelists/mpfr (100%) rename config/rootfiles/{core => oldcore}/175/filelists/newt (100%) rename config/rootfiles/{core => oldcore}/175/filelists/ntp (100%) rename config/rootfiles/{core => oldcore}/175/filelists/openldap (100%) rename config/rootfiles/{core => oldcore}/175/filelists/openssh (100%) rename config/rootfiles/{core => oldcore}/175/filelists/openssl (100%) rename config/rootfiles/{core => oldcore}/175/filelists/openvpn (100%) rename config/rootfiles/{core => oldcore}/175/filelists/parted (100%) rename config/rootfiles/{core => oldcore}/175/filelists/pciutils (100%) rename config/rootfiles/{core => oldcore}/175/filelists/poppler (100%) rename config/rootfiles/{core => oldcore}/175/filelists/ppp (100%) rename config/rootfiles/{core => oldcore}/175/filelists/qpdf (100%) rename config/rootfiles/{core => oldcore}/175/filelists/slang (100%) rename config/rootfiles/{core => oldcore}/175/filelists/sqlite (100%) rename config/rootfiles/{core => oldcore}/175/filelists/squid (100%) rename config/rootfiles/{core => oldcore}/175/filelists/suricata (100%) rename config/rootfiles/{core => oldcore}/175/filelists/tzdata (100%) rename config/rootfiles/{core => oldcore}/175/filelists/unbound (100%) rename config/rootfiles/{core => oldcore}/175/filelists/wpa_supplicant (100%) rename config/rootfiles/{core => oldcore}/175/filelists/x86_64/linux (100%) rename config/rootfiles/{core => oldcore}/175/filelists/xfsprogs (100%) rename config/rootfiles/{core => oldcore}/175/filelists/zstd (100%) rename config/rootfiles/{core => oldcore}/175/update.sh (100%) rename src/patches/{dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch => dhcpcd-10.0.1-Allow-free-selection-of-MTU-by-the-user.patch} (100%) delete mode 100644 src/patches/minidlna-1.3.0-fix-DNS-rebinding-issue-CVE-2022-26505.patch delete mode 100644 src/patches/mpfr-4.2.0-cumulative-patches-1-to-4.patch create mode 100644 src/patches/mpfr-4.2.0-cumulative-patches-1-to-9.patch create mode 100644 src/patches/wavemon-0.9.4-force-netlink-include-path.patch
Difference in files: diff --git a/config/rootfiles/common/gawk b/config/rootfiles/common/gawk index 3972311e0..7f4496e42 100644 --- a/config/rootfiles/common/gawk +++ b/config/rootfiles/common/gawk @@ -1,6 +1,7 @@ usr/bin/awk usr/bin/gawk -usr/bin/gawk-5.1.1 +usr/bin/gawk-5.2.2 +usr/bin/gawkbug usr/etc/profile.d usr/etc/profile.d/gawk.csh usr/etc/profile.d/gawk.sh @@ -51,9 +52,19 @@ usr/lib/gawk/time.so #usr/share/awk/walkarray.awk #usr/share/awk/zerofile.awk #usr/share/info/gawk.info +#usr/share/info/gawk_api-figure1.png +#usr/share/info/gawk_api-figure2.png +#usr/share/info/gawk_api-figure3.png +#usr/share/info/gawk_array-elements.png +#usr/share/info/gawk_general-program.png +#usr/share/info/gawk_process-flow.png +#usr/share/info/gawk_statist.jpg #usr/share/info/gawkinet.info #usr/share/info/gawkworkflow.info +#usr/share/info/pm-gawk.info #usr/share/man/man1/gawk.1 +#usr/share/man/man1/gawkbug.1 +#usr/share/man/man1/pm-gawk.1 #usr/share/man/man3/filefuncs.3am #usr/share/man/man3/fnmatch.3am #usr/share/man/man3/fork.3am diff --git a/config/rootfiles/common/harfbuzz b/config/rootfiles/common/harfbuzz index 4798653a2..a03367254 100644 --- a/config/rootfiles/common/harfbuzz +++ b/config/rootfiles/common/harfbuzz @@ -44,15 +44,15 @@ #usr/lib/libharfbuzz-cairo.la #usr/lib/libharfbuzz-cairo.so usr/lib/libharfbuzz-cairo.so.0 -usr/lib/libharfbuzz-cairo.so.0.60720.0 +usr/lib/libharfbuzz-cairo.so.0.60730.0 #usr/lib/libharfbuzz-subset.la #usr/lib/libharfbuzz-subset.so usr/lib/libharfbuzz-subset.so.0 -usr/lib/libharfbuzz-subset.so.0.60720.0 +usr/lib/libharfbuzz-subset.so.0.60730.0 #usr/lib/libharfbuzz.la #usr/lib/libharfbuzz.so usr/lib/libharfbuzz.so.0 -usr/lib/libharfbuzz.so.0.60720.0 +usr/lib/libharfbuzz.so.0.60730.0 #usr/lib/pkgconfig/harfbuzz-cairo.pc #usr/lib/pkgconfig/harfbuzz-subset.pc #usr/lib/pkgconfig/harfbuzz.pc @@ -128,6 +128,7 @@ usr/lib/libharfbuzz.so.0.60720.0 #usr/share/gtk-doc/html/harfbuzz/api-index-6-0-0.html #usr/share/gtk-doc/html/harfbuzz/api-index-7-0-0.html #usr/share/gtk-doc/html/harfbuzz/api-index-7-1-0.html +#usr/share/gtk-doc/html/harfbuzz/api-index-7-3-0.html #usr/share/gtk-doc/html/harfbuzz/api-index-full.html #usr/share/gtk-doc/html/harfbuzz/apple-advanced-typography-api.html #usr/share/gtk-doc/html/harfbuzz/buffers-language-script-and-direction.html diff --git a/config/rootfiles/common/libcap b/config/rootfiles/common/libcap index af1c22e83..f331e2a43 100644 --- a/config/rootfiles/common/libcap +++ b/config/rootfiles/common/libcap @@ -6,20 +6,22 @@ sbin/setcap #usr/include/sys/psx_syscall.h usr/lib/libcap.so usr/lib/libcap.so.2 -usr/lib/libcap.so.2.67 +usr/lib/libcap.so.2.69 #usr/lib/libpsx.so #usr/lib/libpsx.so.2 -usr/lib/libpsx.so.2.67 +usr/lib/libpsx.so.2.69 #usr/lib/pkgconfig/libcap.pc #usr/lib/pkgconfig/libpsx.pc #usr/lib/security usr/lib/security/pam_cap.so #usr/share/man/man1/capsh.1 +#usr/share/man/man3/__psx_syscall.3 #usr/share/man/man3/cap_clear.3 #usr/share/man/man3/cap_clear_flag.3 #usr/share/man/man3/cap_compare.3 #usr/share/man/man3/cap_copy_ext.3 #usr/share/man/man3/cap_copy_int.3 +#usr/share/man/man3/cap_copy_int_check.3 #usr/share/man/man3/cap_drop_bound.3 #usr/share/man/man3/cap_dup.3 #usr/share/man/man3/cap_fill.3 @@ -71,6 +73,7 @@ usr/lib/security/pam_cap.so #usr/share/man/man3/cap_set_nsowner.3 #usr/share/man/man3/cap_set_proc.3 #usr/share/man/man3/cap_set_secbits.3 +#usr/share/man/man3/cap_set_syscall.3 #usr/share/man/man3/cap_setgroups.3 #usr/share/man/man3/cap_setuid.3 #usr/share/man/man3/cap_size.3 @@ -80,6 +83,7 @@ usr/lib/security/pam_cap.so #usr/share/man/man3/capsetp.3 #usr/share/man/man3/libcap.3 #usr/share/man/man3/libpsx.3 +#usr/share/man/man3/psx_load_syscalls.3 #usr/share/man/man3/psx_set_sensitivity.3 #usr/share/man/man3/psx_syscall.3 #usr/share/man/man3/psx_syscall3.3 diff --git a/config/rootfiles/common/man b/config/rootfiles/common/man index 21d8115f1..83354be30 100644 --- a/config/rootfiles/common/man +++ b/config/rootfiles/common/man @@ -8,10 +8,10 @@ #usr/bin/manpath #usr/bin/whatis #usr/lib/man-db -#usr/lib/man-db/libman-2.10.2.so +#usr/lib/man-db/libman-2.11.2.so #usr/lib/man-db/libman.la #usr/lib/man-db/libman.so -#usr/lib/man-db/libmandb-2.10.2.so +#usr/lib/man-db/libmandb-2.11.2.so #usr/lib/man-db/libmandb.la #usr/lib/man-db/libmandb.so #usr/libexec/man-db @@ -53,7 +53,9 @@ #usr/share/locale/it/LC_MESSAGES/man-db.mo #usr/share/locale/ja/LC_MESSAGES/man-db-gnulib.mo #usr/share/locale/ja/LC_MESSAGES/man-db.mo +#usr/share/locale/ka/LC_MESSAGES/man-db-gnulib.mo #usr/share/locale/ko/LC_MESSAGES/man-db-gnulib.mo +#usr/share/locale/ko/LC_MESSAGES/man-db.mo #usr/share/locale/ms/LC_MESSAGES/man-db-gnulib.mo #usr/share/locale/nb/LC_MESSAGES/man-db-gnulib.mo #usr/share/locale/nl/LC_MESSAGES/man-db-gnulib.mo diff --git a/config/rootfiles/common/nettle b/config/rootfiles/common/nettle index a9f8aca43..3c0331406 100644 --- a/config/rootfiles/common/nettle +++ b/config/rootfiles/common/nettle @@ -8,6 +8,7 @@ #usr/include/nettle/arcfour.h #usr/include/nettle/arctwo.h #usr/include/nettle/asn1.h +#usr/include/nettle/balloon.h #usr/include/nettle/base16.h #usr/include/nettle/base64.h #usr/include/nettle/bignum.h @@ -48,6 +49,7 @@ #usr/include/nettle/nettle-meta.h #usr/include/nettle/nettle-types.h #usr/include/nettle/nist-keywrap.h +#usr/include/nettle/ocb.h #usr/include/nettle/pbkdf2.h #usr/include/nettle/pgp.h #usr/include/nettle/pkcs1.h @@ -65,7 +67,9 @@ #usr/include/nettle/sha2.h #usr/include/nettle/sha3.h #usr/include/nettle/siv-cmac.h +#usr/include/nettle/siv-gcm.h #usr/include/nettle/sm3.h +#usr/include/nettle/sm4.h #usr/include/nettle/streebog.h #usr/include/nettle/twofish.h #usr/include/nettle/umac.h @@ -74,9 +78,9 @@ #usr/include/nettle/yarrow.h usr/lib/libhogweed.so usr/lib/libhogweed.so.6 -usr/lib/libhogweed.so.6.6 +usr/lib/libhogweed.so.6.7 #usr/lib/libnettle.so usr/lib/libnettle.so.8 -usr/lib/libnettle.so.8.6 +usr/lib/libnettle.so.8.7 #usr/lib/pkgconfig/hogweed.pc #usr/lib/pkgconfig/nettle.pc diff --git a/config/rootfiles/common/pam b/config/rootfiles/common/pam index 88e155f77..e25fc9c26 100644 --- a/config/rootfiles/common/pam +++ b/config/rootfiles/common/pam @@ -10,6 +10,7 @@ etc/security #etc/security/namespace.d #etc/security/namespace.init #etc/security/pam_env.conf +#etc/security/pwhistory.conf #etc/security/time.conf #lib/security #lib/security/faillock @@ -42,8 +43,6 @@ lib/security/pam_group.so lib/security/pam_issue.so #lib/security/pam_keyinit.la lib/security/pam_keyinit.so -#lib/security/pam_lastlog.la -#lib/security/pam_lastlog.so #lib/security/pam_limits.la lib/security/pam_limits.so #lib/security/pam_listfile.la @@ -187,6 +186,7 @@ usr/lib/libpamc.so.0.82.1 #usr/share/man/man5/pam.conf.5 #usr/share/man/man5/pam.d.5 #usr/share/man/man5/pam_env.conf.5 +#usr/share/man/man5/pwhistory.conf.5 #usr/share/man/man5/time.conf.5 #usr/share/man/man8/PAM.8 #usr/share/man/man8/faillock.8 @@ -205,7 +205,6 @@ usr/lib/libpamc.so.0.82.1 #usr/share/man/man8/pam_group.8 #usr/share/man/man8/pam_issue.8 #usr/share/man/man8/pam_keyinit.8 -#usr/share/man/man8/pam_lastlog.8 #usr/share/man/man8/pam_limits.8 #usr/share/man/man8/pam_listfile.8 #usr/share/man/man8/pam_localuser.8 diff --git a/config/rootfiles/common/procps b/config/rootfiles/common/procps index 144af75d7..db9a8cfc3 100644 --- a/config/rootfiles/common/procps +++ b/config/rootfiles/common/procps @@ -1,11 +1,11 @@ bin/kill bin/ps -#lib/libproc-2.la -#lib/libproc-2.so -lib/libproc-2.so.0 -lib/libproc-2.so.0.0.0 +#lib/libproc2.la +#lib/libproc2.so +lib/libproc2.so.0 +lib/libproc2.so.0.0.1 #lib/pkgconfig -#lib/pkgconfig/libproc-2.pc +#lib/pkgconfig/libproc2.pc sbin/sysctl usr/bin/free usr/bin/pgrep @@ -20,23 +20,27 @@ usr/bin/top usr/bin/vmstat usr/bin/w usr/bin/watch -#usr/include/procps -#usr/include/procps/diskstats.h -#usr/include/procps/meminfo.h -#usr/include/procps/misc.h -#usr/include/procps/pids.h -#usr/include/procps/slabinfo.h -#usr/include/procps/stat.h -#usr/include/procps/vmstat.h -#usr/include/procps/xtra-procps-debug.h +#usr/include/libproc2 +#usr/include/libproc2/diskstats.h +#usr/include/libproc2/meminfo.h +#usr/include/libproc2/misc.h +#usr/include/libproc2/pids.h +#usr/include/libproc2/slabinfo.h +#usr/include/libproc2/stat.h +#usr/include/libproc2/vmstat.h +#usr/include/libproc2/xtra-procps-debug.h #usr/share/doc/procps-ng #usr/share/doc/procps-ng/FAQ #usr/share/doc/procps-ng/bugs.md #usr/share/doc/procps-ng/libproc.supp #usr/share/locale/de/LC_MESSAGES/procps-ng.mo +#usr/share/locale/es/LC_MESSAGES/procps-ng.mo #usr/share/locale/fr/LC_MESSAGES/procps-ng.mo +#usr/share/locale/ka/LC_MESSAGES/procps-ng.mo +#usr/share/locale/ko/LC_MESSAGES/procps-ng.mo #usr/share/locale/pl/LC_MESSAGES/procps-ng.mo #usr/share/locale/pt_BR/LC_MESSAGES/procps-ng.mo +#usr/share/locale/ro/LC_MESSAGES/procps-ng.mo #usr/share/locale/sv/LC_MESSAGES/procps-ng.mo #usr/share/locale/uk/LC_MESSAGES/procps-ng.mo #usr/share/locale/vi/LC_MESSAGES/procps-ng.mo diff --git a/config/rootfiles/core/175/exclude b/config/rootfiles/core/176/exclude similarity index 100% rename from config/rootfiles/core/175/exclude rename to config/rootfiles/core/176/exclude diff --git a/config/rootfiles/core/175/filelists/core-files b/config/rootfiles/core/176/filelists/core-files similarity index 100% rename from config/rootfiles/core/175/filelists/core-files rename to config/rootfiles/core/176/filelists/core-files diff --git a/config/rootfiles/core/175/filelists/curl b/config/rootfiles/core/176/filelists/curl similarity index 100% rename from config/rootfiles/core/175/filelists/curl rename to config/rootfiles/core/176/filelists/curl diff --git a/config/rootfiles/core/176/filelists/dhcpcd b/config/rootfiles/core/176/filelists/dhcpcd new file mode 120000 index 000000000..1e799dabb --- /dev/null +++ b/config/rootfiles/core/176/filelists/dhcpcd @@ -0,0 +1 @@ +../../../common/dhcpcd \ No newline at end of file diff --git a/config/rootfiles/core/176/filelists/diffutils b/config/rootfiles/core/176/filelists/diffutils new file mode 120000 index 000000000..a5c02f3ff --- /dev/null +++ b/config/rootfiles/core/176/filelists/diffutils @@ -0,0 +1 @@ +../../../common/diffutils \ No newline at end of file diff --git a/config/rootfiles/core/176/filelists/ed b/config/rootfiles/core/176/filelists/ed new file mode 120000 index 000000000..0ed331cfa --- /dev/null +++ b/config/rootfiles/core/176/filelists/ed @@ -0,0 +1 @@ +../../../common/ed \ No newline at end of file diff --git a/config/rootfiles/core/176/filelists/ethtool b/config/rootfiles/core/176/filelists/ethtool new file mode 120000 index 000000000..494a53e9d --- /dev/null +++ b/config/rootfiles/core/176/filelists/ethtool @@ -0,0 +1 @@ +../../../common/ethtool \ No newline at end of file diff --git a/config/rootfiles/core/176/filelists/files b/config/rootfiles/core/176/filelists/files new file mode 100644 index 000000000..19b446979 --- /dev/null +++ b/config/rootfiles/core/176/filelists/files @@ -0,0 +1,2 @@ +etc/rc.d/init.d/partresize +srv/web/ipfire/cgi-bin/ovpnmain.cgi diff --git a/config/rootfiles/core/176/filelists/gawk b/config/rootfiles/core/176/filelists/gawk new file mode 120000 index 000000000..a3bbe32ce --- /dev/null +++ b/config/rootfiles/core/176/filelists/gawk @@ -0,0 +1 @@ +../../../common/gawk \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/grep b/config/rootfiles/core/176/filelists/grep similarity index 100% rename from config/rootfiles/core/175/filelists/grep rename to config/rootfiles/core/176/filelists/grep diff --git a/config/rootfiles/core/175/filelists/harfbuzz b/config/rootfiles/core/176/filelists/harfbuzz similarity index 100% rename from config/rootfiles/core/175/filelists/harfbuzz rename to config/rootfiles/core/176/filelists/harfbuzz diff --git a/config/rootfiles/core/176/filelists/less b/config/rootfiles/core/176/filelists/less new file mode 120000 index 000000000..65c0e0771 --- /dev/null +++ b/config/rootfiles/core/176/filelists/less @@ -0,0 +1 @@ +../../../common/less \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/libcap b/config/rootfiles/core/176/filelists/libcap similarity index 100% rename from config/rootfiles/core/175/filelists/libcap rename to config/rootfiles/core/176/filelists/libcap diff --git a/config/rootfiles/core/176/filelists/man b/config/rootfiles/core/176/filelists/man new file mode 120000 index 000000000..b04d65c44 --- /dev/null +++ b/config/rootfiles/core/176/filelists/man @@ -0,0 +1 @@ +../../../common/man \ No newline at end of file diff --git a/config/rootfiles/core/176/filelists/misc-progs b/config/rootfiles/core/176/filelists/misc-progs new file mode 120000 index 000000000..7223caddd --- /dev/null +++ b/config/rootfiles/core/176/filelists/misc-progs @@ -0,0 +1 @@ +../../../common/misc-progs \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/mpfr b/config/rootfiles/core/176/filelists/mpfr similarity index 100% rename from config/rootfiles/core/175/filelists/mpfr rename to config/rootfiles/core/176/filelists/mpfr diff --git a/config/rootfiles/core/176/filelists/nettle b/config/rootfiles/core/176/filelists/nettle new file mode 120000 index 000000000..f0dba7ac8 --- /dev/null +++ b/config/rootfiles/core/176/filelists/nettle @@ -0,0 +1 @@ +../../../common/nettle \ No newline at end of file diff --git a/config/rootfiles/core/176/filelists/pam b/config/rootfiles/core/176/filelists/pam new file mode 120000 index 000000000..660a1d80e --- /dev/null +++ b/config/rootfiles/core/176/filelists/pam @@ -0,0 +1 @@ +../../../common/pam \ No newline at end of file diff --git a/config/rootfiles/core/176/filelists/procps b/config/rootfiles/core/176/filelists/procps new file mode 120000 index 000000000..e17e8ed70 --- /dev/null +++ b/config/rootfiles/core/176/filelists/procps @@ -0,0 +1 @@ +../../../common/procps \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/sqlite b/config/rootfiles/core/176/filelists/sqlite similarity index 100% rename from config/rootfiles/core/175/filelists/sqlite rename to config/rootfiles/core/176/filelists/sqlite diff --git a/config/rootfiles/core/176/filelists/whois b/config/rootfiles/core/176/filelists/whois new file mode 120000 index 000000000..60cbd1894 --- /dev/null +++ b/config/rootfiles/core/176/filelists/whois @@ -0,0 +1 @@ +../../../common/whois \ No newline at end of file diff --git a/config/rootfiles/core/176/update.sh b/config/rootfiles/core/176/update.sh new file mode 100644 index 000000000..250be35df --- /dev/null +++ b/config/rootfiles/core/176/update.sh @@ -0,0 +1,69 @@ +#!/bin/bash +############################################################################ +# # +# This file is part of the IPFire Firewall. # +# # +# IPFire is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation; either version 3 of the License, or # +# (at your option) any later version. # +# # +# IPFire is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with IPFire; if not, write to the Free Software # +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # +# # +# Copyright (C) 2023 IPFire-Team info@ipfire.org. # +# # +############################################################################ +# +. /opt/pakfire/lib/functions.sh +/usr/local/bin/backupctrl exclude >/dev/null 2>&1 + +core=176 + +# Remove old core updates from pakfire cache to save space... +for (( i=1; i<=$core; i++ )); do + rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire +done + +# Stop services + +# Extract files +extract_files + +# Remove files +rm -vf \ + /usr/bin/gawk-5.1.1 + +# update linker config +ldconfig + +# Update Language cache +/usr/local/bin/update-lang-cache + +# Filesytem cleanup +/usr/local/bin/filesystem-cleanup + +# Start services + +# This update needs a reboot... +touch /var/run/need_reboot + +# Finish +/etc/init.d/fireinfo start +sendprofile + +# Update grub config to display new core version +if [ -e /boot/grub/grub.cfg ]; then + grub-mkconfig -o /boot/grub/grub.cfg +fi + +sync + +# Don't report the exitcode last command +exit 0 diff --git a/config/rootfiles/oldcore/175/exclude b/config/rootfiles/oldcore/175/exclude new file mode 100644 index 000000000..378c2d563 --- /dev/null +++ b/config/rootfiles/oldcore/175/exclude @@ -0,0 +1,34 @@ +boot/config.txt +boot/grub/grub.cfg +boot/grub/grubenv +boot/uEnv.txt +etc/alternatives +etc/collectd.custom +etc/default/grub +etc/ipsec.conf +etc/ipsec.secrets +etc/ipsec.user.conf +etc/ipsec.user.secrets +etc/localtime +etc/shadow +etc/snort/snort.conf +etc/ssl/openssl.cnf +etc/sudoers +etc/sysconfig/firewall.local +etc/sysconfig/rc.local +etc/udev/rules.d/30-persistent-network.rules +srv/web/ipfire/html/proxy.pac +var/ipfire/dma +var/ipfire/time +var/ipfire/firewall/locationblock +var/ipfire/fwhosts/customlocationgrp +var/ipfire/ovpn +var/ipfire/urlfilter/blacklist +var/ipfire/urlfilter/settings +var/lib/alternatives +var/lib/location/database.db +var/log/cache +var/log/dhcpcd.log +var/log/messages +var/state/dhcp/dhcpd.leases +var/updatecache diff --git a/config/rootfiles/core/175/filelists/aarch64/linux b/config/rootfiles/oldcore/175/filelists/aarch64/linux similarity index 100% rename from config/rootfiles/core/175/filelists/aarch64/linux rename to config/rootfiles/oldcore/175/filelists/aarch64/linux diff --git a/config/rootfiles/core/175/filelists/aarch64/u-boot b/config/rootfiles/oldcore/175/filelists/aarch64/u-boot similarity index 100% rename from config/rootfiles/core/175/filelists/aarch64/u-boot rename to config/rootfiles/oldcore/175/filelists/aarch64/u-boot diff --git a/config/rootfiles/core/175/filelists/acpid b/config/rootfiles/oldcore/175/filelists/acpid similarity index 100% rename from config/rootfiles/core/175/filelists/acpid rename to config/rootfiles/oldcore/175/filelists/acpid diff --git a/config/rootfiles/core/175/filelists/apache2 b/config/rootfiles/oldcore/175/filelists/apache2 similarity index 100% rename from config/rootfiles/core/175/filelists/apache2 rename to config/rootfiles/oldcore/175/filelists/apache2 diff --git a/config/rootfiles/core/175/filelists/apr b/config/rootfiles/oldcore/175/filelists/apr similarity index 100% rename from config/rootfiles/core/175/filelists/apr rename to config/rootfiles/oldcore/175/filelists/apr diff --git a/config/rootfiles/core/175/filelists/aprutil b/config/rootfiles/oldcore/175/filelists/aprutil similarity index 100% rename from config/rootfiles/core/175/filelists/aprutil rename to config/rootfiles/oldcore/175/filelists/aprutil diff --git a/config/rootfiles/core/175/filelists/arping b/config/rootfiles/oldcore/175/filelists/arping similarity index 100% rename from config/rootfiles/core/175/filelists/arping rename to config/rootfiles/oldcore/175/filelists/arping diff --git a/config/rootfiles/core/175/filelists/bash b/config/rootfiles/oldcore/175/filelists/bash similarity index 100% rename from config/rootfiles/core/175/filelists/bash rename to config/rootfiles/oldcore/175/filelists/bash diff --git a/config/rootfiles/core/175/filelists/bind b/config/rootfiles/oldcore/175/filelists/bind similarity index 100% rename from config/rootfiles/core/175/filelists/bind rename to config/rootfiles/oldcore/175/filelists/bind diff --git a/config/rootfiles/core/175/filelists/collectd b/config/rootfiles/oldcore/175/filelists/collectd similarity index 100% rename from config/rootfiles/core/175/filelists/collectd rename to config/rootfiles/oldcore/175/filelists/collectd diff --git a/config/rootfiles/oldcore/175/filelists/core-files b/config/rootfiles/oldcore/175/filelists/core-files new file mode 100644 index 000000000..0dec37e53 --- /dev/null +++ b/config/rootfiles/oldcore/175/filelists/core-files @@ -0,0 +1,5 @@ +etc/system-release +etc/issue +etc/os-release +srv/web/ipfire/cgi-bin/credits.cgi +var/ipfire/langs diff --git a/config/rootfiles/oldcore/175/filelists/curl b/config/rootfiles/oldcore/175/filelists/curl new file mode 120000 index 000000000..4b84bef53 --- /dev/null +++ b/config/rootfiles/oldcore/175/filelists/curl @@ -0,0 +1 @@ +../../../common/curl \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/dma b/config/rootfiles/oldcore/175/filelists/dma similarity index 100% rename from config/rootfiles/core/175/filelists/dma rename to config/rootfiles/oldcore/175/filelists/dma diff --git a/config/rootfiles/core/175/filelists/elinks b/config/rootfiles/oldcore/175/filelists/elinks similarity index 100% rename from config/rootfiles/core/175/filelists/elinks rename to config/rootfiles/oldcore/175/filelists/elinks diff --git a/config/rootfiles/core/175/filelists/files b/config/rootfiles/oldcore/175/filelists/files similarity index 100% rename from config/rootfiles/core/175/filelists/files rename to config/rootfiles/oldcore/175/filelists/files diff --git a/config/rootfiles/core/175/filelists/gnupg b/config/rootfiles/oldcore/175/filelists/gnupg similarity index 100% rename from config/rootfiles/core/175/filelists/gnupg rename to config/rootfiles/oldcore/175/filelists/gnupg diff --git a/config/rootfiles/oldcore/175/filelists/grep b/config/rootfiles/oldcore/175/filelists/grep new file mode 120000 index 000000000..ab5ef8b0e --- /dev/null +++ b/config/rootfiles/oldcore/175/filelists/grep @@ -0,0 +1 @@ +../../../common/grep \ No newline at end of file diff --git a/config/rootfiles/oldcore/175/filelists/harfbuzz b/config/rootfiles/oldcore/175/filelists/harfbuzz new file mode 120000 index 000000000..ffe1e0d0b --- /dev/null +++ b/config/rootfiles/oldcore/175/filelists/harfbuzz @@ -0,0 +1 @@ +../../../common/harfbuzz \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/iproute2 b/config/rootfiles/oldcore/175/filelists/iproute2 similarity index 100% rename from config/rootfiles/core/175/filelists/iproute2 rename to config/rootfiles/oldcore/175/filelists/iproute2 diff --git a/config/rootfiles/core/175/filelists/krb5 b/config/rootfiles/oldcore/175/filelists/krb5 similarity index 100% rename from config/rootfiles/core/175/filelists/krb5 rename to config/rootfiles/oldcore/175/filelists/krb5 diff --git a/config/rootfiles/oldcore/175/filelists/libcap b/config/rootfiles/oldcore/175/filelists/libcap new file mode 120000 index 000000000..ed67d950a --- /dev/null +++ b/config/rootfiles/oldcore/175/filelists/libcap @@ -0,0 +1 @@ +../../../common/libcap \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/libevent2 b/config/rootfiles/oldcore/175/filelists/libevent2 similarity index 100% rename from config/rootfiles/core/175/filelists/libevent2 rename to config/rootfiles/oldcore/175/filelists/libevent2 diff --git a/config/rootfiles/core/175/filelists/libgcrypt b/config/rootfiles/oldcore/175/filelists/libgcrypt similarity index 100% rename from config/rootfiles/core/175/filelists/libgcrypt rename to config/rootfiles/oldcore/175/filelists/libgcrypt diff --git a/config/rootfiles/core/175/filelists/libgpg-error b/config/rootfiles/oldcore/175/filelists/libgpg-error similarity index 100% rename from config/rootfiles/core/175/filelists/libgpg-error rename to config/rootfiles/oldcore/175/filelists/libgpg-error diff --git a/config/rootfiles/core/175/filelists/libhtp b/config/rootfiles/oldcore/175/filelists/libhtp similarity index 100% rename from config/rootfiles/core/175/filelists/libhtp rename to config/rootfiles/oldcore/175/filelists/libhtp diff --git a/config/rootfiles/core/175/filelists/libpcap b/config/rootfiles/oldcore/175/filelists/libpcap similarity index 100% rename from config/rootfiles/core/175/filelists/libpcap rename to config/rootfiles/oldcore/175/filelists/libpcap diff --git a/config/rootfiles/core/175/filelists/libxml2 b/config/rootfiles/oldcore/175/filelists/libxml2 similarity index 100% rename from config/rootfiles/core/175/filelists/libxml2 rename to config/rootfiles/oldcore/175/filelists/libxml2 diff --git a/config/rootfiles/core/175/filelists/lvm2 b/config/rootfiles/oldcore/175/filelists/lvm2 similarity index 100% rename from config/rootfiles/core/175/filelists/lvm2 rename to config/rootfiles/oldcore/175/filelists/lvm2 diff --git a/config/rootfiles/oldcore/175/filelists/mpfr b/config/rootfiles/oldcore/175/filelists/mpfr new file mode 120000 index 000000000..c8468bf42 --- /dev/null +++ b/config/rootfiles/oldcore/175/filelists/mpfr @@ -0,0 +1 @@ +../../../common/mpfr \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/newt b/config/rootfiles/oldcore/175/filelists/newt similarity index 100% rename from config/rootfiles/core/175/filelists/newt rename to config/rootfiles/oldcore/175/filelists/newt diff --git a/config/rootfiles/core/175/filelists/ntp b/config/rootfiles/oldcore/175/filelists/ntp similarity index 100% rename from config/rootfiles/core/175/filelists/ntp rename to config/rootfiles/oldcore/175/filelists/ntp diff --git a/config/rootfiles/core/175/filelists/openldap b/config/rootfiles/oldcore/175/filelists/openldap similarity index 100% rename from config/rootfiles/core/175/filelists/openldap rename to config/rootfiles/oldcore/175/filelists/openldap diff --git a/config/rootfiles/core/175/filelists/openssh b/config/rootfiles/oldcore/175/filelists/openssh similarity index 100% rename from config/rootfiles/core/175/filelists/openssh rename to config/rootfiles/oldcore/175/filelists/openssh diff --git a/config/rootfiles/core/175/filelists/openssl b/config/rootfiles/oldcore/175/filelists/openssl similarity index 100% rename from config/rootfiles/core/175/filelists/openssl rename to config/rootfiles/oldcore/175/filelists/openssl diff --git a/config/rootfiles/core/175/filelists/openvpn b/config/rootfiles/oldcore/175/filelists/openvpn similarity index 100% rename from config/rootfiles/core/175/filelists/openvpn rename to config/rootfiles/oldcore/175/filelists/openvpn diff --git a/config/rootfiles/core/175/filelists/parted b/config/rootfiles/oldcore/175/filelists/parted similarity index 100% rename from config/rootfiles/core/175/filelists/parted rename to config/rootfiles/oldcore/175/filelists/parted diff --git a/config/rootfiles/core/175/filelists/pciutils b/config/rootfiles/oldcore/175/filelists/pciutils similarity index 100% rename from config/rootfiles/core/175/filelists/pciutils rename to config/rootfiles/oldcore/175/filelists/pciutils diff --git a/config/rootfiles/core/175/filelists/poppler b/config/rootfiles/oldcore/175/filelists/poppler similarity index 100% rename from config/rootfiles/core/175/filelists/poppler rename to config/rootfiles/oldcore/175/filelists/poppler diff --git a/config/rootfiles/core/175/filelists/ppp b/config/rootfiles/oldcore/175/filelists/ppp similarity index 100% rename from config/rootfiles/core/175/filelists/ppp rename to config/rootfiles/oldcore/175/filelists/ppp diff --git a/config/rootfiles/core/175/filelists/qpdf b/config/rootfiles/oldcore/175/filelists/qpdf similarity index 100% rename from config/rootfiles/core/175/filelists/qpdf rename to config/rootfiles/oldcore/175/filelists/qpdf diff --git a/config/rootfiles/core/175/filelists/slang b/config/rootfiles/oldcore/175/filelists/slang similarity index 100% rename from config/rootfiles/core/175/filelists/slang rename to config/rootfiles/oldcore/175/filelists/slang diff --git a/config/rootfiles/oldcore/175/filelists/sqlite b/config/rootfiles/oldcore/175/filelists/sqlite new file mode 120000 index 000000000..4ea569766 --- /dev/null +++ b/config/rootfiles/oldcore/175/filelists/sqlite @@ -0,0 +1 @@ +../../../common/sqlite \ No newline at end of file diff --git a/config/rootfiles/core/175/filelists/squid b/config/rootfiles/oldcore/175/filelists/squid similarity index 100% rename from config/rootfiles/core/175/filelists/squid rename to config/rootfiles/oldcore/175/filelists/squid diff --git a/config/rootfiles/core/175/filelists/suricata b/config/rootfiles/oldcore/175/filelists/suricata similarity index 100% rename from config/rootfiles/core/175/filelists/suricata rename to config/rootfiles/oldcore/175/filelists/suricata diff --git a/config/rootfiles/core/175/filelists/tzdata b/config/rootfiles/oldcore/175/filelists/tzdata similarity index 100% rename from config/rootfiles/core/175/filelists/tzdata rename to config/rootfiles/oldcore/175/filelists/tzdata diff --git a/config/rootfiles/core/175/filelists/unbound b/config/rootfiles/oldcore/175/filelists/unbound similarity index 100% rename from config/rootfiles/core/175/filelists/unbound rename to config/rootfiles/oldcore/175/filelists/unbound diff --git a/config/rootfiles/core/175/filelists/wpa_supplicant b/config/rootfiles/oldcore/175/filelists/wpa_supplicant similarity index 100% rename from config/rootfiles/core/175/filelists/wpa_supplicant rename to config/rootfiles/oldcore/175/filelists/wpa_supplicant diff --git a/config/rootfiles/core/175/filelists/x86_64/linux b/config/rootfiles/oldcore/175/filelists/x86_64/linux similarity index 100% rename from config/rootfiles/core/175/filelists/x86_64/linux rename to config/rootfiles/oldcore/175/filelists/x86_64/linux diff --git a/config/rootfiles/core/175/filelists/xfsprogs b/config/rootfiles/oldcore/175/filelists/xfsprogs similarity index 100% rename from config/rootfiles/core/175/filelists/xfsprogs rename to config/rootfiles/oldcore/175/filelists/xfsprogs diff --git a/config/rootfiles/core/175/filelists/zstd b/config/rootfiles/oldcore/175/filelists/zstd similarity index 100% rename from config/rootfiles/core/175/filelists/zstd rename to config/rootfiles/oldcore/175/filelists/zstd diff --git a/config/rootfiles/core/175/update.sh b/config/rootfiles/oldcore/175/update.sh similarity index 100% rename from config/rootfiles/core/175/update.sh rename to config/rootfiles/oldcore/175/update.sh diff --git a/config/rootfiles/packages/transmission b/config/rootfiles/packages/transmission index d831ecde9..8efd4a95b 100644 --- a/config/rootfiles/packages/transmission +++ b/config/rootfiles/packages/transmission @@ -1,3 +1,4 @@ +etc/rc.d/init.d/transmission #etc/transmission etc/transmission/settings.json usr/bin/transmission-create @@ -5,88 +6,13 @@ usr/bin/transmission-daemon usr/bin/transmission-edit usr/bin/transmission-remote usr/bin/transmission-show -#usr/share/man/man1/transmission-create.1 -#usr/share/man/man1/transmission-daemon.1 -#usr/share/man/man1/transmission-edit.1 -#usr/share/man/man1/transmission-remote.1 -#usr/share/man/man1/transmission-show.1 usr/share/transmission -#usr/share/transmission/web -#usr/share/transmission/web/LICENSE -#usr/share/transmission/web/images -#usr/share/transmission/web/images/favicon.ico -#usr/share/transmission/web/images/favicon.png -#usr/share/transmission/web/images/webclip-icon.png -#usr/share/transmission/web/index.html -#usr/share/transmission/web/javascript -#usr/share/transmission/web/javascript/common.js -#usr/share/transmission/web/javascript/dialog.js -#usr/share/transmission/web/javascript/file-row.js -#usr/share/transmission/web/javascript/formatter.js -#usr/share/transmission/web/javascript/inspector.js -#usr/share/transmission/web/javascript/jquery -#usr/share/transmission/web/javascript/jquery/jquery-migrate.min.js -#usr/share/transmission/web/javascript/jquery/jquery-ui.min.js -#usr/share/transmission/web/javascript/jquery/jquery.min.js -#usr/share/transmission/web/javascript/jquery/jquery.transmenu.min.js -#usr/share/transmission/web/javascript/jquery/jquery.ui-contextmenu.min.js -#usr/share/transmission/web/javascript/jquery/json2.min.js -#usr/share/transmission/web/javascript/main.js -#usr/share/transmission/web/javascript/notifications.js -#usr/share/transmission/web/javascript/polyfill.js -#usr/share/transmission/web/javascript/prefs-dialog.js -#usr/share/transmission/web/javascript/remote.js -#usr/share/transmission/web/javascript/torrent-row.js -#usr/share/transmission/web/javascript/torrent.js -#usr/share/transmission/web/javascript/transmission.js -#usr/share/transmission/web/style -#usr/share/transmission/web/style/jqueryui -#usr/share/transmission/web/style/jqueryui/images -#usr/share/transmission/web/style/jqueryui/images/ui-bg_flat_0_aaaaaa_40x100.png -#usr/share/transmission/web/style/jqueryui/images/ui-bg_flat_75_ffffff_40x100.png -#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_55_fbf9ee_1x400.png -#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_65_ffffff_1x400.png -#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_75_dadada_1x400.png -#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_75_e6e6e6_1x400.png -#usr/share/transmission/web/style/jqueryui/images/ui-bg_glass_95_fef1ec_1x400.png -#usr/share/transmission/web/style/jqueryui/images/ui-bg_highlight-soft_75_cccccc_1x100.png -#usr/share/transmission/web/style/jqueryui/images/ui-icons_222222_256x240.png -#usr/share/transmission/web/style/jqueryui/images/ui-icons_2e83ff_256x240.png -#usr/share/transmission/web/style/jqueryui/images/ui-icons_454545_256x240.png -#usr/share/transmission/web/style/jqueryui/images/ui-icons_888888_256x240.png -#usr/share/transmission/web/style/jqueryui/images/ui-icons_cd0a0a_256x240.png -#usr/share/transmission/web/style/jqueryui/jquery-ui.min.css -#usr/share/transmission/web/style/transmission -#usr/share/transmission/web/style/transmission/common.css -#usr/share/transmission/web/style/transmission/images -#usr/share/transmission/web/style/transmission/images/arrow-down.png -#usr/share/transmission/web/style/transmission/images/arrow-up.png -#usr/share/transmission/web/style/transmission/images/blue-turtle.png -#usr/share/transmission/web/style/transmission/images/buttons -#usr/share/transmission/web/style/transmission/images/buttons/torrent_buttons.png -#usr/share/transmission/web/style/transmission/images/compact.png -#usr/share/transmission/web/style/transmission/images/file-priority-high.png -#usr/share/transmission/web/style/transmission/images/file-priority-low.png -#usr/share/transmission/web/style/transmission/images/file-priority-normal.png -#usr/share/transmission/web/style/transmission/images/filter_bar.png -#usr/share/transmission/web/style/transmission/images/filter_icon.png -#usr/share/transmission/web/style/transmission/images/inspector-files.png -#usr/share/transmission/web/style/transmission/images/inspector-info.png -#usr/share/transmission/web/style/transmission/images/inspector-peers.png -#usr/share/transmission/web/style/transmission/images/inspector-trackers.png -#usr/share/transmission/web/style/transmission/images/lock_icon.png -#usr/share/transmission/web/style/transmission/images/logo.png -#usr/share/transmission/web/style/transmission/images/progress.png -#usr/share/transmission/web/style/transmission/images/settings.png -#usr/share/transmission/web/style/transmission/images/toolbar-close.png -#usr/share/transmission/web/style/transmission/images/toolbar-folder.png -#usr/share/transmission/web/style/transmission/images/toolbar-info.png -#usr/share/transmission/web/style/transmission/images/toolbar-pause-all.png -#usr/share/transmission/web/style/transmission/images/toolbar-pause.png -#usr/share/transmission/web/style/transmission/images/toolbar-start-all.png -#usr/share/transmission/web/style/transmission/images/toolbar-start.png -#usr/share/transmission/web/style/transmission/images/turtle.png -#usr/share/transmission/web/style/transmission/images/wrench.png -#usr/share/transmission/web/style/transmission/mobile.css +#usr/share/transmission/public_html +#usr/share/transmission/public_html/images +#usr/share/transmission/public_html/images/favicon.ico +#usr/share/transmission/public_html/images/favicon.png +#usr/share/transmission/public_html/images/webclip-icon.png +#usr/share/transmission/public_html/index.html +#usr/share/transmission/public_html/transmission-app.js +#usr/share/transmission/public_html/transmission-app.js.LICENSE.txt var/ipfire/backup/addons/includes/transmission -etc/rc.d/init.d/transmission diff --git a/config/rootfiles/packages/wavemon b/config/rootfiles/packages/wavemon index 4f0fa3c05..3785f5aa9 100644 --- a/config/rootfiles/packages/wavemon +++ b/config/rootfiles/packages/wavemon @@ -2,9 +2,5 @@ usr/bin/wavemon #usr/share/man/man1/wavemon.1 #usr/share/man/man5/wavemonrc.5 #usr/share/wavemon -#usr/share/wavemon/AUTHORS -#usr/share/wavemon/COPYING -#usr/share/wavemon/ChangeLog -#usr/share/wavemon/NEWS -#usr/share/wavemon/README -#usr/share/wavemon/THANKS +#usr/share/wavemon/LICENSE +#usr/share/wavemon/README.md diff --git a/lfs/curl b/lfs/curl index feb4fa810..995f63cd5 100644 --- a/lfs/curl +++ b/lfs/curl @@ -24,7 +24,7 @@
include Config
-VER = 7.88.1 +VER = 8.1.0
THISAPP = curl-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = ed7e7aa29efb02fd89a53d5c8d0ec79b4d17612ea07d2a6b5a951f0ca651b4cf7264704344b1a0c2d82196f4cb5c08525e06b4cdd432bc3278ff23c7a6580839 +$(DL_FILE)_BLAKE2 = 768a824b8f5f6ddaa073599c4106f07a8134bcbe0e0d666390be1bce16ba25386d85930853bb47bc90b2c8a499a0b2abb9c685042563801e0fe58b9c315ac6cc
install : $(TARGET)
diff --git a/lfs/dhcpcd b/lfs/dhcpcd index 2373198da..136494ed1 100644 --- a/lfs/dhcpcd +++ b/lfs/dhcpcd @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2021 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 9.4.1 +VER = 10.0.1
THISAPP = dhcpcd-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 847c7451918ac89fe384e180ec52ee4624c0f2dc73354ecb4c63b02d8d9cf0a6d164b33e5d083a05d4868079dcf6208a820b4263c80337a12be40a27517ecf87 +$(DL_FILE)_BLAKE2 = f1e93285d040b98bede86bb2e87e372afc0d1d124e7a6580c23d8d228a34ee17001fc3c2d9091b16fb082fe2f2ad7ba50c0dd7b0db2b2237ab1cff9ca152100a
install : $(TARGET)
@@ -70,7 +70,7 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcpcd-10.0.1-Allow-free-selection-of-MTU-by-the-user.patch cd $(DIR_APP) && ./configure \ --prefix="" \ --sysconfdir=/var/ipfire/dhcpc \ diff --git a/lfs/diffutils b/lfs/diffutils index b3dab42ca..7fdfb5d87 100644 --- a/lfs/diffutils +++ b/lfs/diffutils @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.8 +VER = 3.9
THISAPP = diffutils-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -47,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 573abbfba55c62ba30d2084ca68860e9681cfe92648407f7fb04e1aaed2e4719e2fb5a29cf25bd125d762f4dfd52f85ee91f2ec19b099365bada7fe27a0394af +$(DL_FILE)_BLAKE2 = d43ed9f1643ac46b69083755974fc9611ad00c3b98b08332c681223d17d762567562233b51342a16f7dad8f28dfc5536999143594e33a64e6624001a71787c8f
install : $(TARGET)
diff --git a/lfs/ed b/lfs/ed index 3c19a9094..0a7014fd7 100644 --- a/lfs/ed +++ b/lfs/ed @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.17 +VER = 1.19
THISAPP = ed-$(VER) DL_FILE = $(THISAPP).tar.lz @@ -39,7 +39,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 41c75c0affbf691c8aa7d46fc1a6e0324937aed825b641848703629c8652075e7b797a321203ea49f72ca00a16b1a7d66c21809a1a47b5d0862e21e74dfd5460 +$(DL_FILE)_BLAKE2 = 139305a1d64e96f7eadcb462325918e5eee18de229ec8e1b3fac29dc9b8ef58ceea4cd7ffdbd3674fd7f421d90bc0c9e3557318eb57830d7cd46e579828fa95d
install : $(TARGET)
diff --git a/lfs/ethtool b/lfs/ethtool index f2b996fa9..e6d65ea12 100644 --- a/lfs/ethtool +++ b/lfs/ethtool @@ -24,7 +24,7 @@
include Config
-VER = 6.2 +VER = 6.3
THISAPP = ethtool-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = b3fa2571b1efef3b686eb4f20b33e6cc32bdb8cff5f2e642454ca3d41c427b1953df7b07e5ac8ef149f8b4be614210e05e593233655e5fe317c48630b20b68e8 +$(DL_FILE)_BLAKE2 = c06509525db47f8ee7c220d0b880fe80323a4a00036e9698432b1b9c85ad75045e98b23498f6283497728cafd187ca173b15f3ad60f8e6f8b4d0c5688d84a1f9
install : $(TARGET)
diff --git a/lfs/fping b/lfs/fping index 8ec776313..0ccf82777 100644 --- a/lfs/fping +++ b/lfs/fping @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2020 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,7 +26,7 @@ include Config
SUMMARY = A program to ping multiple hosts
-VER = 5.0 +VER = 5.1
THISAPP = fping-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = fping -PAK_VER = 6 +PAK_VER = 7
DEPS = ""
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 6dbb6708ecb55c1f1281bcd9e298475a1ad3a21aa81d8488b61cb39ad07d1d7285247a3c39883cbaae0b1a0e4403b6340ea7ec43411b81546f0e8eeefb02ef88 +$(DL_FILE)_BLAKE2 = 2fb344e650b5a359fb8780f2c599455d39405ae823edf695ee4385aa2661dc5811e088bafa1b9f53846ee90c0afa959a92832381a03346d1fda048eb4e7ee098
install : $(TARGET)
diff --git a/lfs/gawk b/lfs/gawk index 3eba8a908..710d7c484 100644 --- a/lfs/gawk +++ b/lfs/gawk @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,7 +25,7 @@
include Config
-VER = 5.1.1 +VER = 5.2.2
THISAPP = gawk-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -49,7 +49,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 35eec6f4c9bf52496ac16e4b0e1b98947ae0dd46d0ab1df9ec13ede24374a4917214e492182a16e25fc515fa62a765340914feac16a006d980ba1328634a5291 +$(DL_FILE)_BLAKE2 = 49dd69d3e2414867d60fe42b74b39bc6858114aeeb9305ade7bfd64f1933b3c93d59d127362b614cb4b73e29279ed3b4ea9fa0da94fce98ca9925980d17b5d0c
install : $(TARGET)
diff --git a/lfs/grep b/lfs/grep index 1a0b45350..dde47ffa2 100644 --- a/lfs/grep +++ b/lfs/grep @@ -24,7 +24,7 @@
include Config
-VER = 3.10 +VER = 3.11
THISAPP = grep-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -50,7 +50,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 5ff169a4ed39e8af1e6729fd2e1bafd39036a4f56cf831f990d58bf9e76bc7d8b055254ae7f60509be4e8bf2f3737edb15431a8ecfc7fc058578d2abea3d73b9 +$(DL_FILE)_BLAKE2 = e21785bca20b5a090d32bb5dc525fb298af30165106ed4c289b1518ea3d2acdcacfd6309b12f13be29a4b958f19588546119c695deb2b7500d49dcff86357bdc
install : $(TARGET)
diff --git a/lfs/harfbuzz b/lfs/harfbuzz index 15cc9ff13..bfc40dba3 100644 --- a/lfs/harfbuzz +++ b/lfs/harfbuzz @@ -24,7 +24,7 @@
include Config
-VER = 7.2.0 +VER = 7.3.0
THISAPP = harfbuzz-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 247746d6a0f132a0d6b0c461d9e96a4fe76bc08bca4d05b28a034de60afee8e049d798fdf3962b892b33424245d8f00a63d6068b034e80ad9d7733180e8533c1 +$(DL_FILE)_BLAKE2 = 7b1f6fb0c4c7483ff7a7c27f613b8579af30a304432e1a4e157aec4344449aed93e68443df1f2bc741be6780a6b2214d54804e2df9a20d83c8256b5f98c7fcda
install : $(TARGET)
diff --git a/lfs/less b/lfs/less index 0ba8938f2..3c3dff158 100644 --- a/lfs/less +++ b/lfs/less @@ -24,7 +24,7 @@
include Config
-VER = 608 +VER = 633
THISAPP = less-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 988940745fef1222c43b0bf4edec7cc7206ded0ac5d89d3faf4dab706a249913581c2fe7aa6063cf3d717176ed07b69299d3e791ba8a60358483fe9d1bf7f7c6 +$(DL_FILE)_BLAKE2 = e9df180794af365f86734c6b8fde766c1bba42b111717ee5e1cf11001fc7ec3d78910db9bb7c51a76816086f599808b1b60f514011ec40e37650d6bc4f8b3d5c
install : $(TARGET)
diff --git a/lfs/libcap b/lfs/libcap index 63f4ef8b0..951ed80dc 100644 --- a/lfs/libcap +++ b/lfs/libcap @@ -24,7 +24,7 @@
include Config
-VER = 2.67 +VER = 2.69
THISAPP = libcap-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = bd9be22e439397a3c1726093cfee2410df93773b3139d50a1cdc10daecb666ddb9b64daded6e0ec9f2fd6defd16ea156dbd66bd55360ea266131f31ea0f0e989 +$(DL_FILE)_BLAKE2 = 94d1fef7666a1c383a8b96f1f6092bd242164631532868b628d2f5de71b42a371d041a978ef7fbadfee3eeb433165444995d1078cd790275bc0433a7875a697e
install : $(TARGET)
diff --git a/lfs/man b/lfs/man index c6038c255..00150da4e 100644 --- a/lfs/man +++ b/lfs/man @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 2.10.2 +VER = 2.11.2
THISAPP = man-db-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 8d1748503cdf66a613d7544a27b42df9436bdf4e07ccb130d2fa62343488d2c4ab791238c348236a253abddb564db9d1bb851249da9911737ff822d822819599 +$(DL_FILE)_BLAKE2 = 80ac565cdb69736c0f922b9cbfddcae753d176329781deaf9434d87d7718f9b6ce0b6d4642a03f22a04c7f042dda7f8986b5bce0038f0748461ca55d66964ccc
install : $(TARGET)
diff --git a/lfs/minidlna b/lfs/minidlna index 1ef104743..d0422c08a 100644 --- a/lfs/minidlna +++ b/lfs/minidlna @@ -26,7 +26,7 @@ include Config
SUMMARY = DLNA compatible server
-VER = 1.3.0 +VER = 1.3.2
THISAPP = minidlna-$(VER) DL_FILE = minidlna-$(VER).tar.gz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = minidlna -PAK_VER = 12 +PAK_VER = 13
DEPS = ffmpeg flac libexif libid3tag libogg
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 3574d48ee63f8c391d1beac653587b87460522178d9f100fe4b0e49f33398b8e527ee74af02d5ea36b23338f7ac73ef3c177edae6be8eed24e94f9db5c8323b0 +$(DL_FILE)_BLAKE2 = e35266be94e4585f399c80a6909318ce973d443506f6becdacdb00802ed0ce060ebf8401ff1b5dfef0b451f609d98f805c80b9a0c87e23d14084338047418620
install : $(TARGET)
@@ -84,7 +84,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) $(UPDATE_AUTOMAKE) - cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/minidlna-1.3.0-fix-DNS-rebinding-issue-CVE-2022-26505.patch cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install diff --git a/lfs/mpfr b/lfs/mpfr index c799086d9..e2a1062c1 100644 --- a/lfs/mpfr +++ b/lfs/mpfr @@ -70,7 +70,7 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mpfr-4.2.0-cumulative-patches-1-to-4.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mpfr-4.2.0-cumulative-patches-1-to-9.patch cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure \ --prefix=/usr \ --enable-thread-safe diff --git a/lfs/nettle b/lfs/nettle index 779b87199..2d01f9557 100644 --- a/lfs/nettle +++ b/lfs/nettle @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2021 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 3.8.1 +VER = 3.9
THISAPP = nettle-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 22b4ec81645b579504356597ba87b637e46285682020c90e03ecaea386ac9b48eaf91ee76ae3b86b6060be355de20c320ab3b74958074ad23fc08ad9ab6a4cbb +$(DL_FILE)_BLAKE2 = 80885fa380de58765155a5d4b209e524f4bd0336156ba6f5189702007438998094df0e4e801370fd0a74251b8cf91f46638b0c0139388c2c2098b1207ed3415c
install : $(TARGET)
diff --git a/lfs/nginx b/lfs/nginx index ef13eefb4..ef314a177 100644 --- a/lfs/nginx +++ b/lfs/nginx @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2020 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -25,15 +25,15 @@ include Config
SUMMARY = A HTTP server and IMAP/POP3 proxy server -VER = 1.22.1 +VER = 1.24.0
THISAPP = nginx-$(VER) DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = nginx -PAK_VER = 14 +PROG = nginx +PAK_VER = 15
DEPS =
@@ -47,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 253cd4c53ed0e6d3da8ca0f0ab3b2c46f6c7222c4f6fedd05302dd05efee31869d25a33947cca3ca526899cbdfcea96754be34e15643ebd77da24175319edb46 +$(DL_FILE)_BLAKE2 = 7f671c57666dec822bff72fcf0e4eec35ecf981b8f1e489827f9bbbf9179036f61c9fdc7e497c076ccaeb35b9ba3dfe7684e4fc91ee9cae52601f68859bb034d
install : $(TARGET)
diff --git a/lfs/pam b/lfs/pam index b810f787d..020de981c 100644 --- a/lfs/pam +++ b/lfs/pam @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2020 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 1.5.2 +VER = 1.5.3
THISAPP = Linux-PAM-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = a835034cd239bc9377419c13dda45276e8e64a33fcf714a1957ff41112fbb6dce0be8e9773afc82458a04d54bf146a0c26117d7170521fecdc0c98184cef5f4f +$(DL_FILE)_BLAKE2 = 362c939f3afc343e6f4e78e7f6ba6f7a9c6ee0a9948bb5a4fc34cecfd29e9fa974082534d4ceedd04d8d3e34c7b3ef43d2a07ba5f41d26da04ec8330fc3790fb
install : $(TARGET)
diff --git a/lfs/procps b/lfs/procps index 5189e477b..a8f1c2c82 100644 --- a/lfs/procps +++ b/lfs/procps @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,10 +24,10 @@
include Config
-VER = v4.0.0 +VER = v4.0.3
THISAPP = procps-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 5b6c684aaaf4114ea6d53287f220fbc375556a9630a54d9ad8e0750d1d373ab73cf38e06df7cc663853d11fa69237ecd89dffaf3a84dc57df652357983f536cb +$(DL_FILE)_BLAKE2 = 9836bda7bf8c9dab83d2c6064af3c52f070737ad2fb399e4ca015f33c1d45db378097eb9e77763107975412a19b4dacfbe110655074704270d679ccd94e6f9c0
install : $(TARGET)
@@ -69,7 +69,7 @@ $(subst %,%_BLAKE2,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./autogen.sh cd $(DIR_APP) && ./configure \ --prefix=/usr \ diff --git a/lfs/sqlite b/lfs/sqlite index 40e7672cb..d059bb068 100644 --- a/lfs/sqlite +++ b/lfs/sqlite @@ -24,7 +24,7 @@
include Config
-VER = 3410200 +VER = 3420000
THISAPP = sqlite-autoconf-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 928134ec28c349bf984705b6296fc01f31028aee17035d38b2c0dbb020ab1a8c431fe29092f3742ac68bdd0d3146a42b72404da9a7744209f4ea1f20312cf8c3 +$(DL_FILE)_BLAKE2 = 3c4837952a3d9864f03d7a2c164b303f196ad1deeef2f96056509dd808108655e1a2b2161b4bd614bd01feaec98bb9f8019237bfbd5901ec9ae06b442175d0f6
install : $(TARGET)
diff --git a/lfs/strace b/lfs/strace index eb8752f6c..006d85be5 100644 --- a/lfs/strace +++ b/lfs/strace @@ -26,7 +26,7 @@ include Config
SUMMARY = A utility to trace the system calls of a program
-VER = 6.1 +VER = 6.3 SUP_ARCHES = x86_64 aarch64
THISAPP = strace-$(VER) @@ -35,7 +35,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = strace -PAK_VER = 8 +PAK_VER = 9
DEPS = elfutils
@@ -49,7 +49,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = f11bdddcc23d9bbe7196a102165ac40d3f39e0dec8b9c727e226d99ae0b6f22865bd0582d4e9c15fdce87dd405e0e9c68b60041bd2b90bc8480557f82ca6dcb8 +$(DL_FILE)_BLAKE2 = 7373ebddd6f23713b752ed91598e536d61e08865907c7825dd3492574c7feb0ad6d56bea0e144e1082ac1882d68bb5f160f25e70bfc6e2fd47571ef2c40403fb
install : $(TARGET)
diff --git a/lfs/stress b/lfs/stress index 52860f078..8bb06e278 100644 --- a/lfs/stress +++ b/lfs/stress @@ -1,6 +1,21 @@ ############################################################################### -# IPFire.org - An Open Source Firewall Solution # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # ###############################################################################
############################################################################### @@ -11,15 +26,15 @@ include Config
SUMMARY = Tool to load and stress a computer
-VER = 1.0.5 +VER = 1.0.7
THISAPP = stress-$(VER) -DL_FILE = $(THISAPP).tar.gz +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = stress -PAK_VER = 2 +PAK_VER = 3
DEPS =
@@ -33,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 7bc4a1d7739828ccd4b58c814e8ded42cddbd0b226bb29e916fe220835bcfa9dcdb86191bb321247aa98bd0e58791556713770bdeda5dad399aa61f2703a766c +$(DL_FILE)_BLAKE2 = c425134be47715ea5d50c56eea20f211f79feecccc73823f38c3a0f3fc1ee612ee6b6fcd07045f888ce6f1cb762a7ae42fe9003b91fe43451eabae17d918bdfc
install : $(TARGET)
@@ -65,7 +80,7 @@ $(subst %,%_BLAKE2,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) cd $(DIR_APP) && ./autogen.sh cd $(DIR_APP) && ./configure --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) diff --git a/lfs/stunnel b/lfs/stunnel index b157de1ff..24527bb25 100644 --- a/lfs/stunnel +++ b/lfs/stunnel @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2022 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@
include Config
-VER = 5.63 +VER = 5.69 SUMMARY = Universal TLS Tunnel
THISAPP = stunnel-$(VER) @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = stunnel -PAK_VER = 10 +PAK_VER = 11
DEPS =
@@ -47,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 4558f233bae0972853239b4ad8638cbf8402baf221c8b65f0b8857c624735430ed026fa4cfac8212e60737f1f522e38898da5056a66e3374509886b02068e1db +$(DL_FILE)_BLAKE2 = fd213d1c7bc9efb42ee501bccd720c6535d123fe9d78354ff14a1701edcc30f1b563ff46fa34fd3f53bb976a7e700f0cd63589a8488738314604e593a95ad7bd
install : $(TARGET)
diff --git a/lfs/texinfo b/lfs/texinfo index 62acc0af5..6cd0e1f28 100644 --- a/lfs/texinfo +++ b/lfs/texinfo @@ -24,7 +24,7 @@
include Config
-VER = 7.0.2 +VER = 7.0.3
THISAPP = texinfo-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -47,7 +47,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 23737cc800392c949add14c1d0a01a294e8c224d958c03325c96d6540dcfae49db5c2d4a8c29310c0603f8ac8477f6ee00a14db4aa6caab317b19e776139e617 +$(DL_FILE)_BLAKE2 = 38710faba2f717f7990228d58924901ea7d7378cc02e2059a437b5127f9e2dc67f732584e3f45fc34e8ef6d7671a546fe66871dadbd29e772f3417768622a650
install : $(TARGET)
diff --git a/lfs/tmux b/lfs/tmux index 3e0b22fef..19cc6b7f8 100644 --- a/lfs/tmux +++ b/lfs/tmux @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2022 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,7 +26,7 @@ include Config
SUMMARY = Terminal multiplexer
-VER = 3.3 +VER = 3.3a
THISAPP = tmux-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = tmux -PAK_VER = 10 +PAK_VER = 11
DEPS =
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 7e5b66d6d294c580d86f4f8729f867277e00f401dfa2a4b4c5dd5bd08c1e9884122340cbebfb37f56c67c65e940667f5b79b638f20f05282c434f7b3641ad003 +$(DL_FILE)_BLAKE2 = e835ce0f136175521035a684419f221864edb0a9506d7d68cbc0239b1349e78949ebd96573a9d8651a2df6d99acb433075d6e0c20d7394a53fe6b44bd9e56069
install : $(TARGET)
diff --git a/lfs/transmission b/lfs/transmission index ea1167da4..4e0667353 100644 --- a/lfs/transmission +++ b/lfs/transmission @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2020 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -26,7 +26,7 @@ include Config
SUMMARY = A BitTorrent client with multiple UIs
-VER = 3.00 +VER = 4.0.3
THISAPP = transmission-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -34,14 +34,12 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = transmission -PAK_VER = 18 +PAK_VER = 19
DEPS =
SERVICES = transmission
-CXXFLAGS += -fno-exceptions - ############################################################################### # Top-level Rules ############################################################################### @@ -50,7 +48,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 108c9acb8e8cb9c037ea96ca25f32c8421a6981b613399c73e2cd597dd1b529409329fa3c327630c164db05d8b3da81e634941bca08c7e258bb2d283782b9906 +$(DL_FILE)_BLAKE2 = 3d58f002d57458869e143e4a3617c8992e51a01f15f0e17031bc2913f404a455cde3397bde404f84a2234d12411e99b2902e4213ca6811b95288bb68f9b98553
install : $(TARGET)
@@ -83,7 +81,10 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && ./configure --prefix=/usr --disable-static + cd $(DIR_APP) && cmake . \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DINSTALL_DOC=OFF cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install
diff --git a/lfs/wavemon b/lfs/wavemon index 2fb8b75b3..265449c4f 100644 --- a/lfs/wavemon +++ b/lfs/wavemon @@ -1,8 +1,24 @@ ############################################################################### -# IPFire.org - An Open Source Firewall Solution # -# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # ###############################################################################
+ ############################################################################### # Definitions ############################################################################### @@ -11,15 +27,15 @@ include Config
SUMMARY = An ncurses monitoring application for wireless network devices
-VER = 0.7.5 +VER = 0.9.4
THISAPP = wavemon-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = wavemon -PAK_VER = 1 +PAK_VER = 2
DEPS =
@@ -33,7 +49,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 144a8aa36e99d39fb155e7afe2322c9446e168c1b009f6d53f149f7cd6c1e723e47a30233c25849b1aa1fd8c601e8d8881062daf3113c2964b0c239a5b110b6c +$(DL_FILE)_BLAKE2 = e07feb16dba86b1a91dc9b7d7df51da1b4498d8ea1a6ca36f6ae1e30e0e0bb09971330a470cde3425e7ae785bbd2819460ac2f1ddc2bc8da3aae29de3356bdbb
install : $(TARGET)
@@ -66,10 +82,10 @@ $(subst %,%_BLAKE2,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/wavemon-0.9.4-force-netlink-include-path.patch $(UPDATE_AUTOMAKE) cd $(DIR_APP) && ./configure \ - --prefix=/usr - + --prefix=/usr cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/lfs/whois b/lfs/whois index 19989af36..7715f5c29 100644 --- a/lfs/whois +++ b/lfs/whois @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2022 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2023 IPFire Team info@ipfire.org # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,16 +24,14 @@
include Config
-VER = 5.5.13 +VER = 5.5.17
-THISAPP = whois_$(VER) -DL_FILE = $(THISAPP).tar.xz +THISAPP = whois-$(VER) +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP)
-PROG = whois - ############################################################################### # Top-level Rules ############################################################################### @@ -42,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 6ce90ad907c4ea79301adbcda5a402344df9f283ac258a3186f5c405e0abfb97f603f3f163652f1cf03a1fc60290b8f9f54b509bf7d9fd3cec12189eeeaaffe5 +$(DL_FILE)_BLAKE2 = 2c60c3e9725fc31d1ff159c25a9be8ce42784db8331820a7459c2359364d0312395632a9e478995ddf787e363f073f9018982a2fb95739357a45a826ce8f79ee
install : $(TARGET)
@@ -74,11 +72,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) $(UPDATE_AUTOMAKE)
- cd $(DIR_SRC)/$(PROG) && make $(MAKETUNING) \ + cd $(DIR_SRC)/$(THISAPP) && make $(MAKETUNING) \ CONFIG_FILE=/etc/whois.conf \ whois - cd $(DIR_SRC)/$(PROG) && make prefix=/usr install-whois - cd $(DIR_SRC)/$(PROG) && install -v -m 644 whois.conf -t /etc/ + cd $(DIR_SRC)/$(THISAPP) && make prefix=/usr install-whois + cd $(DIR_SRC)/$(THISAPP) && install -v -m 644 whois.conf -t /etc/
@rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/make.sh b/make.sh index 2c0bcae45..6b9a8146b 100755 --- a/make.sh +++ b/make.sh @@ -23,7 +23,7 @@ NAME="IPFire" # Software name SNAME="ipfire" # Short name # If you update the version don't forget to update backupiso and add it to core update VERSION="2.27" # Version number -CORE="175" # Core Level (Filename) +CORE="176" # Core Level (Filename) SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir MAX_RETRIES=1 # prefetch/check loop diff --git a/src/initscripts/system/partresize b/src/initscripts/system/partresize index 272fbe482..df9c43991 100644 --- a/src/initscripts/system/partresize +++ b/src/initscripts/system/partresize @@ -48,6 +48,7 @@ case "${1}" in # Azure and Google Compute Platform if running_on_ec2 || running_on_oci || running_on_azure || running_on_gcp; then scon="on" + journal="on" fi
mount /boot > /dev/null @@ -109,14 +110,21 @@ case "${1}" in root_dev="${dev::-2}" fi
- boot_mesg "Growing root partition to maximum size..." - echo -e ',+' | sfdisk --no-reread -f -N${part_num} "${root_dev}" 2>/dev/null + # Check if the device support smart + smartctl --smart=on "${root_dev}" > /dev/null + if [ ${?} = 0 ]; then + journal="on" + fi
- # Update c,h,s values of the boot partition... - if [ ${part_num} -ne 1 -a -b "${root_dev}1" ]; then - echo -e ',' | sfdisk --no-reread -f -N1 ${DRV} &> /dev/null + # Enable journal + if [ "${journal}" = "on" ]; then + boot_mesg "Create journal on "${dev}" ..." + tune2fs -O has_journal "${dev}" fi
+ boot_mesg "Growing root partition to maximum size..." + echo -e ',+' | sfdisk --no-reread -f -N${part_num} "${root_dev}" 2>/dev/null + # The filesystem should be resized after # this operation touch /.resizefs diff --git a/src/misc-progs/setuid.c b/src/misc-progs/setuid.c index 17b0e7066..9dc0a767b 100644 --- a/src/misc-progs/setuid.c +++ b/src/misc-progs/setuid.c @@ -104,16 +104,20 @@ static int system_core(char* command, char** args, uid_t uid, gid_t gid, char *e }
default: /* parent */ - do { - if (waitpid(pid, &status, 0) == -1) { - if (errno != EINTR) - return -1; - } else { - return status; - } - } while (1); - } + // Wait until the child process has finished + waitpid(pid, &status, 0); + + // The child was terminated by a signal + if (WIFSIGNALED(status)) + return 128 + WTERMSIG(status);
+ // Return the exit code if available + if (WIFEXITED(status)) + return WEXITSTATUS(status); + + // Something unexpected happened, exiting with error + return EXIT_FAILURE; + } }
int run(char* command, char** argv) { diff --git a/src/patches/dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch b/src/patches/dhcpcd-10.0.1-Allow-free-selection-of-MTU-by-the-user.patch similarity index 100% rename from src/patches/dhcpcd-9.4.0-Allow-free-selection-of-MTU-by-the-user.patch rename to src/patches/dhcpcd-10.0.1-Allow-free-selection-of-MTU-by-the-user.patch diff --git a/src/patches/minidlna-1.3.0-fix-DNS-rebinding-issue-CVE-2022-26505.patch b/src/patches/minidlna-1.3.0-fix-DNS-rebinding-issue-CVE-2022-26505.patch deleted file mode 100644 index c28425811..000000000 --- a/src/patches/minidlna-1.3.0-fix-DNS-rebinding-issue-CVE-2022-26505.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- minidlna-1.3.0/upnphttp.c.orig 2020-11-24 19:53:50.000000000 +0100 -+++ minidlna-1.3.0/upnphttp.c 2022-04-30 12:59:23.432073807 +0200 -@@ -273,6 +273,11 @@ - p = colon + 1; - while(isspace(*p)) - p++; -+ n = 0; -+ while(p[n] >= ' ') -+ n++; -+ h->req_Host = p; -+ h->req_HostLen = n; - for(n = 0; n < n_lan_addr; n++) - { - for(i = 0; lan_addr[n].str[i]; i++) -@@ -909,6 +914,18 @@ - } - - DPRINTF(E_DEBUG, L_HTTP, "HTTP REQUEST: %.*s\n", h->req_buflen, h->req_buf); -+ if(h->req_Host && h->req_HostLen > 0) { -+ const char *ptr = h->req_Host; -+ DPRINTF(E_MAXDEBUG, L_HTTP, "Host: %.*s\n", h->req_HostLen, h->req_Host); -+ for(i = 0; i < h->req_HostLen; i++) { -+ if(*ptr != ':' && *ptr != '.' && (*ptr > '9' || *ptr < '0')) { -+ DPRINTF(E_ERROR, L_HTTP, "DNS rebinding attack suspected (Host: %.*s)", h->req_HostLen, h->req_Host); -+ Send404(h);/* 403 */ -+ return; -+ } -+ ptr++; -+ } -+ } - if(strcmp("POST", HttpCommand) == 0) - { - h->req_command = EPost; ---- minidlna-1.3.0/upnphttp.h.orig 2020-11-24 19:53:50.000000000 +0100 -+++ minidlna-1.3.0/upnphttp.h 2022-04-30 13:00:22.619152312 +0200 -@@ -89,6 +89,8 @@ - struct client_cache_s * req_client; - const char * req_soapAction; - int req_soapActionLen; -+ const char * req_Host; /* Host: header */ -+ int req_HostLen; - const char * req_Callback; /* For SUBSCRIBE */ - int req_CallbackLen; - const char * req_NT; diff --git a/src/patches/mpfr-4.2.0-cumulative-patches-1-to-4.patch b/src/patches/mpfr-4.2.0-cumulative-patches-1-to-4.patch deleted file mode 100644 index e12ed4708..000000000 --- a/src/patches/mpfr-4.2.0-cumulative-patches-1-to-4.patch +++ /dev/null @@ -1,521 +0,0 @@ -diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES ---- mpfr-4.2.0-a/PATCHES 2023-04-17 21:17:39.748645280 +0000 -+++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:17:39.792645218 +0000 -@@ -0,0 +1 @@ -+tsprintf-thousands -diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION ---- mpfr-4.2.0-a/VERSION 2023-01-06 10:55:57.000000000 +0000 -+++ mpfr-4.2.0-b/VERSION 2023-04-17 21:17:39.792645218 +0000 -@@ -1 +1 @@ --4.2.0 -+4.2.0-p1 -diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h ---- mpfr-4.2.0-a/src/mpfr.h 2023-01-06 10:55:57.000000000 +0000 -+++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:17:39.788645224 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 4 - #define MPFR_VERSION_MINOR 2 - #define MPFR_VERSION_PATCHLEVEL 0 --#define MPFR_VERSION_STRING "4.2.0" -+#define MPFR_VERSION_STRING "4.2.0-p1" - - /* User macros: - MPFR_USE_FILE: Define it to make MPFR define functions dealing -diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c ---- mpfr-4.2.0-a/src/version.c 2023-01-06 10:55:57.000000000 +0000 -+++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:17:39.792645218 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "4.2.0"; -+ return "4.2.0-p1"; - } -diff -Naurd mpfr-4.2.0-a/tests/tsprintf.c mpfr-4.2.0-b/tests/tsprintf.c ---- mpfr-4.2.0-a/tests/tsprintf.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/tests/tsprintf.c 2023-04-17 21:17:39.784645229 +0000 -@@ -1715,7 +1715,25 @@ - check_sprintf ("000000001,000", "%'013.4Rg", x); - - #ifdef PRINTF_GROUPFLAG -- check_vsprintf ("+01,234,567 :", "%0+ -'13.10Pd:", (mpfr_prec_t) 1234567); -+ /* Do not test the thousands separator with a precision field larger -+ than the number of digits (thus needing leading zeros), such as -+ "%0+ -'13.10Pd:" (used up to MPFR 4.2.0), since the GNU libc is -+ buggy: https://sourceware.org/bugzilla/show_bug.cgi?id=23432 -+ We don't know about the other implementations. -+ This new test works fine with glibc up to 2.36, but fails with 2.37 -+ (as reported by Klaus Dittrich in the MPFR mailing-list); this is -+ actually a bug introduced in glibc 2.37, not in MPFR: -+ https://sourceware.org/bugzilla/show_bug.cgi?id=30068 -+ Since this bug can yield a buffer overflow (CVE-2023-25139), possibly -+ affecting MPFR users, let us rather require a fix in glibc. This bug -+ has been fixed in the 2.37 branch: -+ https://sourceware.org/git/?p=glibc.git;a=commit;h=07b9521fc6 -+ If we wanted to check that and avoid a failure of the test because of -+ a buggy C library (while MPFR would be consistent with the C library), -+ we could compare the MPFR output with both the correct output and the -+ output from the C library (possibly buggy). But to do that in a clean -+ way, this would require a change in the check_vsprintf() call. */ -+ check_vsprintf ("+1,234,567 :", "%0+ -'13Pd:", (mpfr_prec_t) 1234567); - #endif - - mpfr_clear (x); -diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES ---- mpfr-4.2.0-a/PATCHES 2023-04-17 21:18:00.464616127 +0000 -+++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:18:00.512616059 +0000 -@@ -0,0 +1 @@ -+ui_pow_ui-overflow -diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION ---- mpfr-4.2.0-a/VERSION 2023-04-17 21:17:39.792645218 +0000 -+++ mpfr-4.2.0-b/VERSION 2023-04-17 21:18:00.512616059 +0000 -@@ -1 +1 @@ --4.2.0-p1 -+4.2.0-p2 -diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h ---- mpfr-4.2.0-a/src/mpfr.h 2023-04-17 21:17:39.788645224 +0000 -+++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:18:00.508616065 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 4 - #define MPFR_VERSION_MINOR 2 - #define MPFR_VERSION_PATCHLEVEL 0 --#define MPFR_VERSION_STRING "4.2.0-p1" -+#define MPFR_VERSION_STRING "4.2.0-p2" - - /* User macros: - MPFR_USE_FILE: Define it to make MPFR define functions dealing -diff -Naurd mpfr-4.2.0-a/src/ui_pow_ui.c mpfr-4.2.0-b/src/ui_pow_ui.c ---- mpfr-4.2.0-a/src/ui_pow_ui.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/src/ui_pow_ui.c 2023-04-17 21:18:00.504616070 +0000 -@@ -23,7 +23,7 @@ - #include "mpfr-impl.h" - - int --mpfr_ui_pow_ui (mpfr_ptr x, unsigned long int y, unsigned long int n, -+mpfr_ui_pow_ui (mpfr_ptr x, unsigned long int k, unsigned long int n, - mpfr_rnd_t rnd) - { - mpfr_exp_t err; -@@ -35,22 +35,28 @@ - MPFR_ZIV_DECL (loop); - MPFR_SAVE_EXPO_DECL (expo); - -+ MPFR_LOG_FUNC -+ (("k=%lu n=%lu rnd=%d", k, n, rnd), -+ ("y[%Pu]=%.*Rg inexact=%d", -+ mpfr_get_prec (x), mpfr_log_prec, x, inexact)); -+ - if (MPFR_UNLIKELY (n <= 1)) - { - if (n == 1) -- return mpfr_set_ui (x, y, rnd); /* y^1 = y */ -+ return mpfr_set_ui (x, k, rnd); /* k^1 = k */ - else -- return mpfr_set_ui (x, 1, rnd); /* y^0 = 1 for any y */ -+ return mpfr_set_ui (x, 1, rnd); /* k^0 = 1 for any k */ - } -- else if (MPFR_UNLIKELY (y <= 1)) -+ else if (MPFR_UNLIKELY (k <= 1)) - { -- if (y == 1) -+ if (k == 1) - return mpfr_set_ui (x, 1, rnd); /* 1^n = 1 for any n > 0 */ - else - return mpfr_set_ui (x, 0, rnd); /* 0^n = 0 for any n > 0 */ - } - -- for (size_n = 0, m = n; m; size_n++, m >>= 1); -+ for (size_n = 0, m = n; m != 0; size_n++, m >>= 1) -+ ; - - MPFR_SAVE_EXPO_MARK (expo); - prec = MPFR_PREC (x) + 3 + size_n; -@@ -60,23 +66,55 @@ - for (;;) - { - int i = size_n; -+ unsigned int inex_res; - -- inexact = mpfr_set_ui (res, y, MPFR_RNDU); -+ inex_res = mpfr_set_ui (res, k, MPFR_RNDU); - err = 1; - /* now 2^(i-1) <= n < 2^i: i=1+floor(log2(n)) */ - for (i -= 2; i >= 0; i--) - { -- inexact |= mpfr_sqr (res, res, MPFR_RNDU); -+ inex_res |= mpfr_sqr (res, res, MPFR_RNDU); - err++; - if (n & (1UL << i)) -- inexact |= mpfr_mul_ui (res, res, y, MPFR_RNDU); -+ inex_res |= mpfr_mul_ui (res, res, k, MPFR_RNDU); - } -+ -+ if (MPFR_UNLIKELY (MPFR_IS_INF (res))) -+ { -+ mpfr_t kf; -+ mpz_t z; -+ int size_k; -+ MPFR_BLOCK_DECL (flags); -+ -+ /* Let's handle the overflow by calling mpfr_pow_z. -+ Alternatively, we could call mpfr_pow_ui; this would -+ need a bit shorter code below, but mpfr_pow_ui handles -+ the overflow by calling mpfr_pow_z, so that calling -+ mpfr_pow_z directly should be a bit more efficient. */ -+ -+ MPFR_ZIV_FREE (loop); -+ mpfr_clear (res); -+ for (size_k = 0, m = k; m != 0; size_k++, m >>= 1) -+ ; -+ mpfr_init2 (kf, size_k); -+ inexact = mpfr_set_ui (kf, k, MPFR_RNDN); -+ MPFR_ASSERTD (inexact == 0); -+ mpz_init (z); -+ mpz_set_ui (z, n); -+ MPFR_BLOCK (flags, inexact = mpfr_pow_z (x, kf, z, rnd);); -+ mpz_clear (z); -+ mpfr_clear (kf); -+ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, flags); -+ goto end; -+ } -+ - /* since the loop is executed floor(log2(n)) times, - we have err = 1+floor(log2(n)). - Since prec >= MPFR_PREC(x) + 4 + floor(log2(n)), prec > err */ - err = prec - err; - -- if (MPFR_LIKELY (inexact == 0 -+ MPFR_LOG_VAR (res); -+ if (MPFR_LIKELY (!inex_res - || MPFR_CAN_ROUND (res, err, MPFR_PREC (x), rnd))) - break; - -@@ -90,6 +128,7 @@ - - mpfr_clear (res); - -+ end: - MPFR_SAVE_EXPO_FREE (expo); - return mpfr_check_range (x, inexact, rnd); - } -diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c ---- mpfr-4.2.0-a/src/version.c 2023-04-17 21:17:39.792645218 +0000 -+++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:18:00.512616059 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "4.2.0-p1"; -+ return "4.2.0-p2"; - } -diff -Naurd mpfr-4.2.0-a/tests/tlog10.c mpfr-4.2.0-b/tests/tlog10.c ---- mpfr-4.2.0-a/tests/tlog10.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/tests/tlog10.c 2023-04-17 21:18:00.504616070 +0000 -@@ -49,6 +49,60 @@ - #define TEST_RANDOM_POS 8 - #include "tgeneric.c" - -+/* On 2023-02-13, one gets an infinite loop in mpfr_log10 on both -+ 32-bit and 64-bit hosts when the precision is not large enough -+ (precision 12 and below). */ -+static void -+bug20230213 (void) -+{ -+ mpfr_exp_t old_emin, old_emax, e; -+ mpfr_t t, x, y0, y1, y2; -+ int prec; -+ -+ old_emin = mpfr_get_emin (); -+ old_emax = mpfr_get_emax (); -+ -+ set_emin (MPFR_EMIN_MIN); -+ set_emax (MPFR_EMAX_MAX); -+ e = mpfr_get_emax () - 1; -+ -+ /* The precisions of t and y0 should be large enough to avoid -+ a hard-to-round case for the target precisions. */ -+ mpfr_inits2 (64, t, y0, (mpfr_ptr) 0); -+ mpfr_set_exp_t (y0, e, MPFR_RNDN); -+ mpfr_log_ui (t, 10, MPFR_RNDN); -+ mpfr_div (y0, y0, t, MPFR_RNDN); -+ mpfr_log_ui (t, 2, MPFR_RNDN); -+ mpfr_mul (y0, y0, t, MPFR_RNDN); -+ -+ for (prec = 16; prec >= MPFR_PREC_MIN; prec--) -+ { -+ mpfr_inits2 (prec, x, y1, y2, (mpfr_ptr) 0); -+ mpfr_set (y1, y0, MPFR_RNDN); -+ -+ mpfr_set_ui_2exp (x, 1, e, MPFR_RNDN); -+ mpfr_log10 (y2, x, MPFR_RNDN); -+ MPFR_ASSERTN (MPFR_IS_PURE_FP (y2)); -+ MPFR_ASSERTN (MPFR_IS_POS (y2)); -+ -+ if (! mpfr_equal_p (y1, y2)) -+ { -+ printf ("Error in bug20230213.\n"); -+ printf ("Expected "); -+ mpfr_dump (y1); -+ printf ("Got "); -+ mpfr_dump (y2); -+ exit (1); -+ } -+ mpfr_clears (x, y1, y2, (mpfr_ptr) 0); -+ } -+ -+ mpfr_clears (t, y0, (mpfr_ptr) 0); -+ -+ set_emin (old_emin); -+ set_emax (old_emax); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -112,6 +166,8 @@ - mpfr_clear (x); - mpfr_clear (y); - -+ bug20230213 (); -+ - data_check ("data/log10", mpfr_log10, "mpfr_log10"); - - tests_end_mpfr (); -diff -Naurd mpfr-4.2.0-a/tests/tui_pow.c mpfr-4.2.0-b/tests/tui_pow.c ---- mpfr-4.2.0-a/tests/tui_pow.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/tests/tui_pow.c 2023-04-17 21:18:00.504616070 +0000 -@@ -142,6 +142,37 @@ - mpfr_clear (t); - } - -+static void -+huge (void) -+{ -+ mpfr_exp_t old_emin, old_emax; -+ mpfr_t x; -+ -+ old_emin = mpfr_get_emin (); -+ old_emax = mpfr_get_emax (); -+ -+ set_emin (MPFR_EMIN_MIN); -+ set_emax (MPFR_EMAX_MAX); -+ -+ mpfr_init2 (x, 8); -+ -+ /* The purpose of this test is more to check that mpfr_ui_pow_ui -+ terminates (without taking much memory) rather than checking -+ the value of x. On 2023-02-13, the +Inf case was not handled -+ in the Ziv iteration, yielding an infinite loop, affecting -+ mpfr_log10 in particular. See -+ commit 90de094f0d9c309daca707aa227470d810866616 -+ */ -+ mpfr_ui_pow_ui (x, 5, ULONG_MAX, MPFR_RNDN); -+ if (MPFR_EMAX_MAX <= ULONG_MAX) /* true with default _MPFR_EXP_FORMAT */ -+ MPFR_ASSERTN (MPFR_IS_INF (x)); -+ -+ mpfr_clear (x); -+ -+ set_emin (old_emin); -+ set_emax (old_emax); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -180,6 +211,7 @@ - } - - test1 (); -+ huge (); - - { - mpfr_t z, t; -diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES ---- mpfr-4.2.0-a/PATCHES 2023-04-17 21:18:26.860579184 +0000 -+++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:18:26.904579122 +0000 -@@ -0,0 +1 @@ -+multibyte-decimal_point -diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION ---- mpfr-4.2.0-a/VERSION 2023-04-17 21:18:00.512616059 +0000 -+++ mpfr-4.2.0-b/VERSION 2023-04-17 21:18:26.904579122 +0000 -@@ -1 +1 @@ --4.2.0-p2 -+4.2.0-p3 -diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h ---- mpfr-4.2.0-a/src/mpfr.h 2023-04-17 21:18:00.508616065 +0000 -+++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:18:26.900579128 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 4 - #define MPFR_VERSION_MINOR 2 - #define MPFR_VERSION_PATCHLEVEL 0 --#define MPFR_VERSION_STRING "4.2.0-p2" -+#define MPFR_VERSION_STRING "4.2.0-p3" - - /* User macros: - MPFR_USE_FILE: Define it to make MPFR define functions dealing -diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c ---- mpfr-4.2.0-a/src/version.c 2023-04-17 21:18:00.512616059 +0000 -+++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:18:26.904579122 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "4.2.0-p2"; -+ return "4.2.0-p3"; - } -diff -Naurd mpfr-4.2.0-a/tests/tfprintf.c mpfr-4.2.0-b/tests/tfprintf.c ---- mpfr-4.2.0-a/tests/tfprintf.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/tests/tfprintf.c 2023-04-17 21:18:26.896579133 +0000 -@@ -61,6 +61,12 @@ - exit (1); \ - } - -+#if MPFR_LCONV_DPTS -+#define DPLEN ((int) strlen (localeconv()->decimal_point)) -+#else -+#define DPLEN 1 -+#endif -+ - /* limit for random precision in random() */ - const int prec_max_printf = 5000; - -@@ -195,12 +201,12 @@ - lo, &ulo); - check_length (2, ulo, 36, lu); - check_vfprintf (fout, "a. %hi, b. %*f, c. %Re%hn", ush, 3, f, mpfr, &ush); -- check_length (3, ush, 46, hu); -+ check_length (3, ush, 45 + DPLEN, hu); - check_vfprintf (fout, "a. %hi, b. %f, c. %#.2Rf%n", sh, d, mpfr, &i); -- check_length (4, i, 29, d); -+ check_length (4, i, 28 + DPLEN, d); - check_vfprintf (fout, "a. %R*A, b. %Fe, c. %i%zn", rnd, mpfr, mpf, sz, - &sz); -- check_length (5, (unsigned long) sz, 34, lu); /* no format specifier "%zu" in C90 */ -+ check_length (5, (unsigned long) sz, 33 + DPLEN, lu); /* no format specifier "%zu" in C90 */ - check_vfprintf (fout, "a. %Pu, b. %c, c. %Zi%Zn", prec, ch, mpz, &mpz); - check_length_with_cmp (6, mpz, 17, mpz_cmp_ui (mpz, 17), Zi); - check_vfprintf (fout, "%% a. %#.0RNg, b. %Qx%Rn, c. %p", mpfr, mpq, &mpfr, -@@ -224,7 +230,7 @@ - - #ifdef PRINTF_L - check_vfprintf (fout, "a. %RA, b. %Lf, c. %QX%zn", mpfr, ld, mpq, &sz); -- check_length (9, (unsigned long) sz, 30, lu); /* no format specifier "%zu" in C90 */ -+ check_length (9, (unsigned long) sz, 29 + DPLEN, lu); /* no format specifier "%zu" in C90 */ - #endif - - #ifndef NPRINTF_HH -diff -Naurd mpfr-4.2.0-a/tests/tprintf.c mpfr-4.2.0-b/tests/tprintf.c ---- mpfr-4.2.0-a/tests/tprintf.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/tests/tprintf.c 2023-04-17 21:18:26.896579133 +0000 -@@ -68,6 +68,12 @@ - exit (1); \ - } - -+#if MPFR_LCONV_DPTS -+#define DPLEN ((int) strlen (localeconv()->decimal_point)) -+#else -+#define DPLEN 1 -+#endif -+ - /* limit for random precision in random() */ - const int prec_max_printf = 5000; - /* boolean: is stdout redirected to a file ? */ -@@ -316,11 +322,11 @@ - check_vprintf ("a. %c, b. %Rb, c. %u, d. %li%ln", i, mpfr, i, lo, &ulo); - check_length (2, ulo, 36, lu); - check_vprintf ("a. %hi, b. %*f, c. %Re%hn", ush, 3, f, mpfr, &ush); -- check_length (3, ush, 46, hu); -+ check_length (3, ush, 45 + DPLEN, hu); - check_vprintf ("a. %hi, b. %f, c. %#.2Rf%n", sh, d, mpfr, &i); -- check_length (4, i, 29, d); -+ check_length (4, i, 28 + DPLEN, d); - check_vprintf ("a. %R*A, b. %Fe, c. %i%zn", rnd, mpfr, mpf, sz, &sz); -- check_length (5, (unsigned long) sz, 34, lu); /* no format specifier '%zu' in C90 */ -+ check_length (5, (unsigned long) sz, 33 + DPLEN, lu); /* no format specifier '%zu' in C90 */ - check_vprintf ("a. %Pu, b. %c, c. %RUG, d. %Zi%Zn", prec, ch, mpfr, mpz, &mpz); - check_length_with_cmp (6, mpz, 24, mpz_cmp_ui (mpz, 24), Zi); - check_vprintf ("%% a. %#.0RNg, b. %Qx%Rn c. %p", -@@ -344,7 +350,7 @@ - - #ifdef PRINTF_L - check_vprintf ("a. %RA, b. %Lf, c. %QX%zn", mpfr, ld, mpq, &sz); -- check_length (9, (unsigned long) sz, 30, lu); /* no format specifier '%zu' in C90 */ -+ check_length (9, (unsigned long) sz, 29 + DPLEN, lu); /* no format specifier '%zu' in C90 */ - #endif - - #ifndef NPRINTF_HH -diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES ---- mpfr-4.2.0-a/PATCHES 2023-04-17 21:19:01.988530337 +0000 -+++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:19:02.032530276 +0000 -@@ -0,0 +1 @@ -+rec_sqrt-zivloop -diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION ---- mpfr-4.2.0-a/VERSION 2023-04-17 21:18:26.904579122 +0000 -+++ mpfr-4.2.0-b/VERSION 2023-04-17 21:19:02.032530276 +0000 -@@ -1 +1 @@ --4.2.0-p3 -+4.2.0-p4 -diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h ---- mpfr-4.2.0-a/src/mpfr.h 2023-04-17 21:18:26.900579128 +0000 -+++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:19:02.032530276 +0000 -@@ -27,7 +27,7 @@ - #define MPFR_VERSION_MAJOR 4 - #define MPFR_VERSION_MINOR 2 - #define MPFR_VERSION_PATCHLEVEL 0 --#define MPFR_VERSION_STRING "4.2.0-p3" -+#define MPFR_VERSION_STRING "4.2.0-p4" - - /* User macros: - MPFR_USE_FILE: Define it to make MPFR define functions dealing -diff -Naurd mpfr-4.2.0-a/src/rec_sqrt.c mpfr-4.2.0-b/src/rec_sqrt.c ---- mpfr-4.2.0-a/src/rec_sqrt.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/src/rec_sqrt.c 2023-04-17 21:19:02.024530287 +0000 -@@ -463,6 +463,7 @@ - int s, cy, inex; - mpfr_limb_ptr x; - MPFR_TMP_DECL(marker); -+ MPFR_ZIV_DECL (loop); - - MPFR_LOG_FUNC - (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (u), mpfr_log_prec, u, rnd_mode), -@@ -530,6 +531,7 @@ - wp = rp + 11; - if (wp < rn * GMP_NUMB_BITS) - wp = rn * GMP_NUMB_BITS; -+ MPFR_ZIV_INIT (loop, wp); - for (;;) - { - MPFR_TMP_MARK (marker); -@@ -561,8 +563,9 @@ - } - MPFR_TMP_FREE(marker); - -- wp += GMP_NUMB_BITS; -+ MPFR_ZIV_NEXT (loop, wp); - } -+ MPFR_ZIV_FREE (loop); - cy = mpfr_round_raw (MPFR_MANT(r), x, wp, 0, rp, rnd_mode, &inex); - MPFR_EXP(r) = - (MPFR_EXP(u) - 1 - s) / 2; - if (MPFR_UNLIKELY(cy != 0)) -diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c ---- mpfr-4.2.0-a/src/version.c 2023-04-17 21:18:26.904579122 +0000 -+++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:19:02.032530276 +0000 -@@ -25,5 +25,5 @@ - const char * - mpfr_get_version (void) - { -- return "4.2.0-p3"; -+ return "4.2.0-p4"; - } -diff -Naurd mpfr-4.2.0-a/tests/trec_sqrt.c mpfr-4.2.0-b/tests/trec_sqrt.c ---- mpfr-4.2.0-a/tests/trec_sqrt.c 2023-01-05 17:09:48.000000000 +0000 -+++ mpfr-4.2.0-b/tests/trec_sqrt.c 2023-04-17 21:19:02.028530282 +0000 -@@ -242,6 +242,8 @@ - data_check ("data/rec_sqrt", mpfr_rec_sqrt, "mpfr_rec_sqrt"); - bad_cases (mpfr_rec_sqrt, pm2, "mpfr_rec_sqrt", 0, -256, 255, 4, 128, - 800, 50); -+ bad_cases (mpfr_rec_sqrt, pm2, "mpfr_rec_sqrt", 0, -256, 255, 9999, 9999, -+ 120000, 1); - - end: - tests_end_mpfr (); diff --git a/src/patches/mpfr-4.2.0-cumulative-patches-1-to-9.patch b/src/patches/mpfr-4.2.0-cumulative-patches-1-to-9.patch new file mode 100644 index 000000000..07fcf2592 --- /dev/null +++ b/src/patches/mpfr-4.2.0-cumulative-patches-1-to-9.patch @@ -0,0 +1,2046 @@ +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-04-17 21:17:39.748645280 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:17:39.792645218 +0000 +@@ -0,0 +1 @@ ++tsprintf-thousands +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-01-06 10:55:57.000000000 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-04-17 21:17:39.792645218 +0000 +@@ -1 +1 @@ +-4.2.0 ++4.2.0-p1 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-01-06 10:55:57.000000000 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:17:39.788645224 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0" ++#define MPFR_VERSION_STRING "4.2.0-p1" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-01-06 10:55:57.000000000 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:17:39.792645218 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0"; ++ return "4.2.0-p1"; + } +diff -Naurd mpfr-4.2.0-a/tests/tsprintf.c mpfr-4.2.0-b/tests/tsprintf.c +--- mpfr-4.2.0-a/tests/tsprintf.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tsprintf.c 2023-04-17 21:17:39.784645229 +0000 +@@ -1715,7 +1715,25 @@ + check_sprintf ("000000001,000", "%'013.4Rg", x); + + #ifdef PRINTF_GROUPFLAG +- check_vsprintf ("+01,234,567 :", "%0+ -'13.10Pd:", (mpfr_prec_t) 1234567); ++ /* Do not test the thousands separator with a precision field larger ++ than the number of digits (thus needing leading zeros), such as ++ "%0+ -'13.10Pd:" (used up to MPFR 4.2.0), since the GNU libc is ++ buggy: https://sourceware.org/bugzilla/show_bug.cgi?id=23432 ++ We don't know about the other implementations. ++ This new test works fine with glibc up to 2.36, but fails with 2.37 ++ (as reported by Klaus Dittrich in the MPFR mailing-list); this is ++ actually a bug introduced in glibc 2.37, not in MPFR: ++ https://sourceware.org/bugzilla/show_bug.cgi?id=30068 ++ Since this bug can yield a buffer overflow (CVE-2023-25139), possibly ++ affecting MPFR users, let us rather require a fix in glibc. This bug ++ has been fixed in the 2.37 branch: ++ https://sourceware.org/git/?p=glibc.git;a=commit;h=07b9521fc6 ++ If we wanted to check that and avoid a failure of the test because of ++ a buggy C library (while MPFR would be consistent with the C library), ++ we could compare the MPFR output with both the correct output and the ++ output from the C library (possibly buggy). But to do that in a clean ++ way, this would require a change in the check_vsprintf() call. */ ++ check_vsprintf ("+1,234,567 :", "%0+ -'13Pd:", (mpfr_prec_t) 1234567); + #endif + + mpfr_clear (x); +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-04-17 21:18:00.464616127 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:18:00.512616059 +0000 +@@ -0,0 +1 @@ ++ui_pow_ui-overflow +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-04-17 21:17:39.792645218 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-04-17 21:18:00.512616059 +0000 +@@ -1 +1 @@ +-4.2.0-p1 ++4.2.0-p2 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-04-17 21:17:39.788645224 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:18:00.508616065 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p1" ++#define MPFR_VERSION_STRING "4.2.0-p2" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/ui_pow_ui.c mpfr-4.2.0-b/src/ui_pow_ui.c +--- mpfr-4.2.0-a/src/ui_pow_ui.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/ui_pow_ui.c 2023-04-17 21:18:00.504616070 +0000 +@@ -23,7 +23,7 @@ + #include "mpfr-impl.h" + + int +-mpfr_ui_pow_ui (mpfr_ptr x, unsigned long int y, unsigned long int n, ++mpfr_ui_pow_ui (mpfr_ptr x, unsigned long int k, unsigned long int n, + mpfr_rnd_t rnd) + { + mpfr_exp_t err; +@@ -35,22 +35,28 @@ + MPFR_ZIV_DECL (loop); + MPFR_SAVE_EXPO_DECL (expo); + ++ MPFR_LOG_FUNC ++ (("k=%lu n=%lu rnd=%d", k, n, rnd), ++ ("y[%Pu]=%.*Rg inexact=%d", ++ mpfr_get_prec (x), mpfr_log_prec, x, inexact)); ++ + if (MPFR_UNLIKELY (n <= 1)) + { + if (n == 1) +- return mpfr_set_ui (x, y, rnd); /* y^1 = y */ ++ return mpfr_set_ui (x, k, rnd); /* k^1 = k */ + else +- return mpfr_set_ui (x, 1, rnd); /* y^0 = 1 for any y */ ++ return mpfr_set_ui (x, 1, rnd); /* k^0 = 1 for any k */ + } +- else if (MPFR_UNLIKELY (y <= 1)) ++ else if (MPFR_UNLIKELY (k <= 1)) + { +- if (y == 1) ++ if (k == 1) + return mpfr_set_ui (x, 1, rnd); /* 1^n = 1 for any n > 0 */ + else + return mpfr_set_ui (x, 0, rnd); /* 0^n = 0 for any n > 0 */ + } + +- for (size_n = 0, m = n; m; size_n++, m >>= 1); ++ for (size_n = 0, m = n; m != 0; size_n++, m >>= 1) ++ ; + + MPFR_SAVE_EXPO_MARK (expo); + prec = MPFR_PREC (x) + 3 + size_n; +@@ -60,23 +66,55 @@ + for (;;) + { + int i = size_n; ++ unsigned int inex_res; + +- inexact = mpfr_set_ui (res, y, MPFR_RNDU); ++ inex_res = mpfr_set_ui (res, k, MPFR_RNDU); + err = 1; + /* now 2^(i-1) <= n < 2^i: i=1+floor(log2(n)) */ + for (i -= 2; i >= 0; i--) + { +- inexact |= mpfr_sqr (res, res, MPFR_RNDU); ++ inex_res |= mpfr_sqr (res, res, MPFR_RNDU); + err++; + if (n & (1UL << i)) +- inexact |= mpfr_mul_ui (res, res, y, MPFR_RNDU); ++ inex_res |= mpfr_mul_ui (res, res, k, MPFR_RNDU); + } ++ ++ if (MPFR_UNLIKELY (MPFR_IS_INF (res))) ++ { ++ mpfr_t kf; ++ mpz_t z; ++ int size_k; ++ MPFR_BLOCK_DECL (flags); ++ ++ /* Let's handle the overflow by calling mpfr_pow_z. ++ Alternatively, we could call mpfr_pow_ui; this would ++ need a bit shorter code below, but mpfr_pow_ui handles ++ the overflow by calling mpfr_pow_z, so that calling ++ mpfr_pow_z directly should be a bit more efficient. */ ++ ++ MPFR_ZIV_FREE (loop); ++ mpfr_clear (res); ++ for (size_k = 0, m = k; m != 0; size_k++, m >>= 1) ++ ; ++ mpfr_init2 (kf, size_k); ++ inexact = mpfr_set_ui (kf, k, MPFR_RNDN); ++ MPFR_ASSERTD (inexact == 0); ++ mpz_init (z); ++ mpz_set_ui (z, n); ++ MPFR_BLOCK (flags, inexact = mpfr_pow_z (x, kf, z, rnd);); ++ mpz_clear (z); ++ mpfr_clear (kf); ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, flags); ++ goto end; ++ } ++ + /* since the loop is executed floor(log2(n)) times, + we have err = 1+floor(log2(n)). + Since prec >= MPFR_PREC(x) + 4 + floor(log2(n)), prec > err */ + err = prec - err; + +- if (MPFR_LIKELY (inexact == 0 ++ MPFR_LOG_VAR (res); ++ if (MPFR_LIKELY (!inex_res + || MPFR_CAN_ROUND (res, err, MPFR_PREC (x), rnd))) + break; + +@@ -90,6 +128,7 @@ + + mpfr_clear (res); + ++ end: + MPFR_SAVE_EXPO_FREE (expo); + return mpfr_check_range (x, inexact, rnd); + } +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-04-17 21:17:39.792645218 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:18:00.512616059 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p1"; ++ return "4.2.0-p2"; + } +diff -Naurd mpfr-4.2.0-a/tests/tlog10.c mpfr-4.2.0-b/tests/tlog10.c +--- mpfr-4.2.0-a/tests/tlog10.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tlog10.c 2023-04-17 21:18:00.504616070 +0000 +@@ -49,6 +49,60 @@ + #define TEST_RANDOM_POS 8 + #include "tgeneric.c" + ++/* On 2023-02-13, one gets an infinite loop in mpfr_log10 on both ++ 32-bit and 64-bit hosts when the precision is not large enough ++ (precision 12 and below). */ ++static void ++bug20230213 (void) ++{ ++ mpfr_exp_t old_emin, old_emax, e; ++ mpfr_t t, x, y0, y1, y2; ++ int prec; ++ ++ old_emin = mpfr_get_emin (); ++ old_emax = mpfr_get_emax (); ++ ++ set_emin (MPFR_EMIN_MIN); ++ set_emax (MPFR_EMAX_MAX); ++ e = mpfr_get_emax () - 1; ++ ++ /* The precisions of t and y0 should be large enough to avoid ++ a hard-to-round case for the target precisions. */ ++ mpfr_inits2 (64, t, y0, (mpfr_ptr) 0); ++ mpfr_set_exp_t (y0, e, MPFR_RNDN); ++ mpfr_log_ui (t, 10, MPFR_RNDN); ++ mpfr_div (y0, y0, t, MPFR_RNDN); ++ mpfr_log_ui (t, 2, MPFR_RNDN); ++ mpfr_mul (y0, y0, t, MPFR_RNDN); ++ ++ for (prec = 16; prec >= MPFR_PREC_MIN; prec--) ++ { ++ mpfr_inits2 (prec, x, y1, y2, (mpfr_ptr) 0); ++ mpfr_set (y1, y0, MPFR_RNDN); ++ ++ mpfr_set_ui_2exp (x, 1, e, MPFR_RNDN); ++ mpfr_log10 (y2, x, MPFR_RNDN); ++ MPFR_ASSERTN (MPFR_IS_PURE_FP (y2)); ++ MPFR_ASSERTN (MPFR_IS_POS (y2)); ++ ++ if (! mpfr_equal_p (y1, y2)) ++ { ++ printf ("Error in bug20230213.\n"); ++ printf ("Expected "); ++ mpfr_dump (y1); ++ printf ("Got "); ++ mpfr_dump (y2); ++ exit (1); ++ } ++ mpfr_clears (x, y1, y2, (mpfr_ptr) 0); ++ } ++ ++ mpfr_clears (t, y0, (mpfr_ptr) 0); ++ ++ set_emin (old_emin); ++ set_emax (old_emax); ++} ++ + int + main (int argc, char *argv[]) + { +@@ -112,6 +166,8 @@ + mpfr_clear (x); + mpfr_clear (y); + ++ bug20230213 (); ++ + data_check ("data/log10", mpfr_log10, "mpfr_log10"); + + tests_end_mpfr (); +diff -Naurd mpfr-4.2.0-a/tests/tui_pow.c mpfr-4.2.0-b/tests/tui_pow.c +--- mpfr-4.2.0-a/tests/tui_pow.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tui_pow.c 2023-04-17 21:18:00.504616070 +0000 +@@ -142,6 +142,37 @@ + mpfr_clear (t); + } + ++static void ++huge (void) ++{ ++ mpfr_exp_t old_emin, old_emax; ++ mpfr_t x; ++ ++ old_emin = mpfr_get_emin (); ++ old_emax = mpfr_get_emax (); ++ ++ set_emin (MPFR_EMIN_MIN); ++ set_emax (MPFR_EMAX_MAX); ++ ++ mpfr_init2 (x, 8); ++ ++ /* The purpose of this test is more to check that mpfr_ui_pow_ui ++ terminates (without taking much memory) rather than checking ++ the value of x. On 2023-02-13, the +Inf case was not handled ++ in the Ziv iteration, yielding an infinite loop, affecting ++ mpfr_log10 in particular. See ++ commit 90de094f0d9c309daca707aa227470d810866616 ++ */ ++ mpfr_ui_pow_ui (x, 5, ULONG_MAX, MPFR_RNDN); ++ if (MPFR_EMAX_MAX <= ULONG_MAX) /* true with default _MPFR_EXP_FORMAT */ ++ MPFR_ASSERTN (MPFR_IS_INF (x)); ++ ++ mpfr_clear (x); ++ ++ set_emin (old_emin); ++ set_emax (old_emax); ++} ++ + int + main (int argc, char *argv[]) + { +@@ -180,6 +211,7 @@ + } + + test1 (); ++ huge (); + + { + mpfr_t z, t; +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-04-17 21:18:26.860579184 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:18:26.904579122 +0000 +@@ -0,0 +1 @@ ++multibyte-decimal_point +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-04-17 21:18:00.512616059 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-04-17 21:18:26.904579122 +0000 +@@ -1 +1 @@ +-4.2.0-p2 ++4.2.0-p3 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-04-17 21:18:00.508616065 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:18:26.900579128 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p2" ++#define MPFR_VERSION_STRING "4.2.0-p3" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-04-17 21:18:00.512616059 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:18:26.904579122 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p2"; ++ return "4.2.0-p3"; + } +diff -Naurd mpfr-4.2.0-a/tests/tfprintf.c mpfr-4.2.0-b/tests/tfprintf.c +--- mpfr-4.2.0-a/tests/tfprintf.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tfprintf.c 2023-04-17 21:18:26.896579133 +0000 +@@ -61,6 +61,12 @@ + exit (1); \ + } + ++#if MPFR_LCONV_DPTS ++#define DPLEN ((int) strlen (localeconv()->decimal_point)) ++#else ++#define DPLEN 1 ++#endif ++ + /* limit for random precision in random() */ + const int prec_max_printf = 5000; + +@@ -195,12 +201,12 @@ + lo, &ulo); + check_length (2, ulo, 36, lu); + check_vfprintf (fout, "a. %hi, b. %*f, c. %Re%hn", ush, 3, f, mpfr, &ush); +- check_length (3, ush, 46, hu); ++ check_length (3, ush, 45 + DPLEN, hu); + check_vfprintf (fout, "a. %hi, b. %f, c. %#.2Rf%n", sh, d, mpfr, &i); +- check_length (4, i, 29, d); ++ check_length (4, i, 28 + DPLEN, d); + check_vfprintf (fout, "a. %R*A, b. %Fe, c. %i%zn", rnd, mpfr, mpf, sz, + &sz); +- check_length (5, (unsigned long) sz, 34, lu); /* no format specifier "%zu" in C90 */ ++ check_length (5, (unsigned long) sz, 33 + DPLEN, lu); /* no format specifier "%zu" in C90 */ + check_vfprintf (fout, "a. %Pu, b. %c, c. %Zi%Zn", prec, ch, mpz, &mpz); + check_length_with_cmp (6, mpz, 17, mpz_cmp_ui (mpz, 17), Zi); + check_vfprintf (fout, "%% a. %#.0RNg, b. %Qx%Rn, c. %p", mpfr, mpq, &mpfr, +@@ -224,7 +230,7 @@ + + #ifdef PRINTF_L + check_vfprintf (fout, "a. %RA, b. %Lf, c. %QX%zn", mpfr, ld, mpq, &sz); +- check_length (9, (unsigned long) sz, 30, lu); /* no format specifier "%zu" in C90 */ ++ check_length (9, (unsigned long) sz, 29 + DPLEN, lu); /* no format specifier "%zu" in C90 */ + #endif + + #ifndef NPRINTF_HH +diff -Naurd mpfr-4.2.0-a/tests/tprintf.c mpfr-4.2.0-b/tests/tprintf.c +--- mpfr-4.2.0-a/tests/tprintf.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tprintf.c 2023-04-17 21:18:26.896579133 +0000 +@@ -68,6 +68,12 @@ + exit (1); \ + } + ++#if MPFR_LCONV_DPTS ++#define DPLEN ((int) strlen (localeconv()->decimal_point)) ++#else ++#define DPLEN 1 ++#endif ++ + /* limit for random precision in random() */ + const int prec_max_printf = 5000; + /* boolean: is stdout redirected to a file ? */ +@@ -316,11 +322,11 @@ + check_vprintf ("a. %c, b. %Rb, c. %u, d. %li%ln", i, mpfr, i, lo, &ulo); + check_length (2, ulo, 36, lu); + check_vprintf ("a. %hi, b. %*f, c. %Re%hn", ush, 3, f, mpfr, &ush); +- check_length (3, ush, 46, hu); ++ check_length (3, ush, 45 + DPLEN, hu); + check_vprintf ("a. %hi, b. %f, c. %#.2Rf%n", sh, d, mpfr, &i); +- check_length (4, i, 29, d); ++ check_length (4, i, 28 + DPLEN, d); + check_vprintf ("a. %R*A, b. %Fe, c. %i%zn", rnd, mpfr, mpf, sz, &sz); +- check_length (5, (unsigned long) sz, 34, lu); /* no format specifier '%zu' in C90 */ ++ check_length (5, (unsigned long) sz, 33 + DPLEN, lu); /* no format specifier '%zu' in C90 */ + check_vprintf ("a. %Pu, b. %c, c. %RUG, d. %Zi%Zn", prec, ch, mpfr, mpz, &mpz); + check_length_with_cmp (6, mpz, 24, mpz_cmp_ui (mpz, 24), Zi); + check_vprintf ("%% a. %#.0RNg, b. %Qx%Rn c. %p", +@@ -344,7 +350,7 @@ + + #ifdef PRINTF_L + check_vprintf ("a. %RA, b. %Lf, c. %QX%zn", mpfr, ld, mpq, &sz); +- check_length (9, (unsigned long) sz, 30, lu); /* no format specifier '%zu' in C90 */ ++ check_length (9, (unsigned long) sz, 29 + DPLEN, lu); /* no format specifier '%zu' in C90 */ + #endif + + #ifndef NPRINTF_HH +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-04-17 21:19:01.988530337 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:19:02.032530276 +0000 +@@ -0,0 +1 @@ ++rec_sqrt-zivloop +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-04-17 21:18:26.904579122 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-04-17 21:19:02.032530276 +0000 +@@ -1 +1 @@ +-4.2.0-p3 ++4.2.0-p4 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-04-17 21:18:26.900579128 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:19:02.032530276 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p3" ++#define MPFR_VERSION_STRING "4.2.0-p4" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/rec_sqrt.c mpfr-4.2.0-b/src/rec_sqrt.c +--- mpfr-4.2.0-a/src/rec_sqrt.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/rec_sqrt.c 2023-04-17 21:19:02.024530287 +0000 +@@ -463,6 +463,7 @@ + int s, cy, inex; + mpfr_limb_ptr x; + MPFR_TMP_DECL(marker); ++ MPFR_ZIV_DECL (loop); + + MPFR_LOG_FUNC + (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (u), mpfr_log_prec, u, rnd_mode), +@@ -530,6 +531,7 @@ + wp = rp + 11; + if (wp < rn * GMP_NUMB_BITS) + wp = rn * GMP_NUMB_BITS; ++ MPFR_ZIV_INIT (loop, wp); + for (;;) + { + MPFR_TMP_MARK (marker); +@@ -561,8 +563,9 @@ + } + MPFR_TMP_FREE(marker); + +- wp += GMP_NUMB_BITS; ++ MPFR_ZIV_NEXT (loop, wp); + } ++ MPFR_ZIV_FREE (loop); + cy = mpfr_round_raw (MPFR_MANT(r), x, wp, 0, rp, rnd_mode, &inex); + MPFR_EXP(r) = - (MPFR_EXP(u) - 1 - s) / 2; + if (MPFR_UNLIKELY(cy != 0)) +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-04-17 21:18:26.904579122 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:19:02.032530276 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p3"; ++ return "4.2.0-p4"; + } +diff -Naurd mpfr-4.2.0-a/tests/trec_sqrt.c mpfr-4.2.0-b/tests/trec_sqrt.c +--- mpfr-4.2.0-a/tests/trec_sqrt.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/trec_sqrt.c 2023-04-17 21:19:02.028530282 +0000 +@@ -242,6 +242,8 @@ + data_check ("data/rec_sqrt", mpfr_rec_sqrt, "mpfr_rec_sqrt"); + bad_cases (mpfr_rec_sqrt, pm2, "mpfr_rec_sqrt", 0, -256, 255, 4, 128, + 800, 50); ++ bad_cases (mpfr_rec_sqrt, pm2, "mpfr_rec_sqrt", 0, -256, 255, 9999, 9999, ++ 120000, 1); + + end: + tests_end_mpfr (); +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-05-12 15:05:00.989811960 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-05-12 15:05:01.085811835 +0000 +@@ -0,0 +1 @@ ++reldiff +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-04-17 21:19:02.032530276 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-05-12 15:05:01.085811835 +0000 +@@ -1 +1 @@ +-4.2.0-p4 ++4.2.0-p5 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-04-17 21:19:02.032530276 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-05-12 15:05:01.077811846 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p4" ++#define MPFR_VERSION_STRING "4.2.0-p5" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/reldiff.c mpfr-4.2.0-b/src/reldiff.c +--- mpfr-4.2.0-a/src/reldiff.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/reldiff.c 2023-05-12 15:05:01.069811856 +0000 +@@ -30,31 +30,25 @@ + + if (MPFR_ARE_SINGULAR (b, c)) + { +- if (MPFR_IS_NAN(b) || MPFR_IS_NAN(c)) +- { +- MPFR_SET_NAN(a); +- return; +- } +- else if (MPFR_IS_INF(b)) ++ if (MPFR_IS_NAN (b) || MPFR_IS_INF (b) || MPFR_IS_NAN (c) || ++ (MPFR_IS_ZERO (b) && MPFR_IS_ZERO (c))) + { +- if (MPFR_IS_INF (c) && (MPFR_SIGN (c) == MPFR_SIGN (b))) +- MPFR_SET_ZERO(a); +- else +- MPFR_SET_NAN(a); ++ MPFR_SET_NAN (a); + return; + } +- else if (MPFR_IS_INF(c)) ++ if (MPFR_IS_ZERO (b) || MPFR_IS_INF (c)) + { + MPFR_SET_SAME_SIGN (a, b); + MPFR_SET_INF (a); + return; + } +- else if (MPFR_IS_ZERO(b)) /* reldiff = abs(c)/c = sign(c) */ +- { +- mpfr_set_si (a, MPFR_INT_SIGN (c), rnd_mode); +- return; +- } +- /* Fall through */ ++ /* The case c = 0 with b regular, which should give sign(b) exactly, ++ cannot be optimized here as it is documented in the MPFR manual ++ that this function just computes abs(b-c)/b using the precision ++ of a and the rounding mode rnd_mode for all operations. So let's ++ prefer the potentially "incorrect" result. Note that the correct ++ result is not necessarily better because if could break properties ++ (like monotonicity?) implied by the documentation. */ + } + + if (a == b) +@@ -64,8 +58,8 @@ + } + + mpfr_sub (a, b, c, rnd_mode); +- mpfr_abs (a, a, rnd_mode); /* for compatibility with MPF */ +- mpfr_div (a, a, (a == b) ? b_copy : b, rnd_mode); ++ MPFR_SET_SIGN (a, 1); ++ mpfr_div (a, a, a == b ? b_copy : b, rnd_mode); + + if (a == b) + mpfr_clear (b_copy); +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-04-17 21:19:02.032530276 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-05-12 15:05:01.081811839 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p4"; ++ return "4.2.0-p5"; + } +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-05-12 15:06:11.789722083 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-05-12 15:06:11.885721962 +0000 +@@ -0,0 +1 @@ ++tests-reuse +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-05-12 15:05:01.085811835 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-05-12 15:06:11.885721962 +0000 +@@ -1 +1 @@ +-4.2.0-p5 ++4.2.0-p6 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-05-12 15:05:01.077811846 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-05-12 15:06:11.877721972 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p5" ++#define MPFR_VERSION_STRING "4.2.0-p6" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-05-12 15:05:01.081811839 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-05-12 15:06:11.885721962 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p5"; ++ return "4.2.0-p6"; + } +diff -Naurd mpfr-4.2.0-a/tests/reuse.c mpfr-4.2.0-b/tests/reuse.c +--- mpfr-4.2.0-a/tests/reuse.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/reuse.c 2023-05-12 15:06:11.869721983 +0000 +@@ -78,22 +78,16 @@ + mpfr_const_pi (x, MPFR_RNDN); + MPFR_SET_EXP (x, MPFR_GET_EXP (x)-1); + break; +- default: ++ case 11: + mpfr_urandomb (x, RANDS); + if (RAND_BOOL ()) + mpfr_neg (x, x, MPFR_RNDN); + break; ++ default: ++ MPFR_ASSERTN (0); + } + } + +-/* same as mpfr_cmp, but returns 0 for both NaN's */ +-static int +-mpfr_compare (mpfr_srcptr a, mpfr_srcptr b) +-{ +- return (MPFR_IS_NAN(a)) ? !MPFR_IS_NAN(b) : +- (MPFR_IS_NAN(b) || mpfr_cmp(a, b)); +-} +- + static void + test3 (int (*testfunc)(mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t), + const char *foo, mpfr_prec_t prec, mpfr_rnd_t rnd) +@@ -112,10 +106,10 @@ + + /* for each variable, consider each of the following 6 possibilities: + NaN, +Infinity, -Infinity, +0, -0 or a random number */ +- for (i=0; i < SPECIAL_MAX*SPECIAL_MAX ; i++) ++ for (i = 0; i < SPECIAL_MAX * SPECIAL_MAX; i++) + { +- set_special (ref2, i%SPECIAL_MAX); +- set_special (ref3, i/SPECIAL_MAX); ++ set_special (ref2, i % SPECIAL_MAX); ++ set_special (ref3, i / SPECIAL_MAX); + + /* reference call: foo(a, b, c) */ + testfunc (ref1, ref2, ref3, rnd); +@@ -124,11 +118,11 @@ + mpfr_set (res1, ref2, rnd); /* exact operation */ + testfunc (res1, res1, ref3, rnd); + +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for %s(a, a, c) with %s for ", foo, + mpfr_print_rnd_mode (rnd)); +- DISP("a=",ref2); DISP2(", c=",ref3); ++ DISP("a=", ref2); DISP2(", c=", ref3); + printf ("expected "); mpfr_dump (ref1); + printf ("got "); mpfr_dump (res1); + exit (1); +@@ -137,11 +131,12 @@ + /* foo(a, b, a) */ + mpfr_set (res1, ref3, rnd); + testfunc (res1, ref2, res1, rnd); +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for %s(a, b, a) for ", foo); +- DISP("b=",ref2); DISP2(", a=", ref3); +- DISP("expected ", ref1); DISP2(", got ",res1); ++ DISP("b=", ref2); DISP2(", a=", ref3); ++ printf ("expected "); mpfr_dump (ref1); ++ printf ("got "); mpfr_dump (res1); + exit (1); + } + +@@ -151,11 +146,12 @@ + mpfr_set (res1, ref2, rnd); + testfunc (res1, res1, res1, rnd); + +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for %s(a, a, a) for ", foo); +- DISP2("a=",ref2); +- DISP("expected ", ref1); DISP2(", got ", res1); ++ DISP2("a=", ref2); ++ printf ("expected "); mpfr_dump (ref1); ++ printf ("got "); mpfr_dump (res1); + exit (1); + } + } +@@ -187,13 +183,13 @@ + /* for each variable, consider each of the following 6 possibilities: + NaN, +Infinity, -Infinity, +0, -0 or a random number */ + +- for (i=0; i<SPECIAL_MAX; i++) ++ for (i = 0; i < SPECIAL_MAX; i++) + { + set_special (op1, i); +- for (j=0; j<SPECIAL_MAX; j++) ++ for (j = 0; j < SPECIAL_MAX; j++) + { + set_special (op2, j); +- for (k=0; k<SPECIAL_MAX; k++) ++ for (k = 0; k < SPECIAL_MAX; k++) + { + set_special (op3, k); + +@@ -204,11 +200,12 @@ + mpfr_set (res, op1, rnd); /* exact operation */ + testfunc (res, res, op2, op3, rnd); + +- if (mpfr_compare (res, ref)) ++ if (! SAME_VAL (res, ref)) + { + printf ("Error for %s(a, a, b, c) for ", foo); + DISP("a=", op1); DISP(", b=", op2); DISP2(", c=", op3); +- DISP("expected ", ref); DISP2(", got ", res); ++ printf ("expected "); mpfr_dump (ref); ++ printf ("got "); mpfr_dump (res); + exit (1); + } + +@@ -216,11 +213,12 @@ + mpfr_set (res, op2, rnd); + testfunc (res, op1, res, op3, rnd); + +- if (mpfr_compare (res, ref)) ++ if (! SAME_VAL (res, ref)) + { + printf ("Error for %s(a, a, b, c) for ", foo); + DISP("a=", op1); DISP(", b=", op2); DISP2(", c=", op3); +- DISP("expected ", ref); DISP2(", got ", res); ++ printf ("expected "); mpfr_dump (ref); ++ printf ("got "); mpfr_dump (res); + exit (1); + } + +@@ -228,35 +226,38 @@ + mpfr_set (res, op3, rnd); + testfunc (res, op1, op2, res, rnd); + +- if (mpfr_compare (res, ref)) ++ if (! SAME_VAL (res, ref)) + { + printf ("Error for %s(a, a, b, c) for ", foo); + DISP("a=", op1); DISP(", b=", op2); DISP2(", c=", op3); +- DISP("expected ", ref); DISP2(", got ", res); ++ printf ("expected "); mpfr_dump (ref); ++ printf ("got "); mpfr_dump (res); + exit (1); + } + +- /* foo(a, a, a,c) */ ++ /* foo(a, a, a, c) */ + testfunc (ref, op1, op1, op3, rnd); + mpfr_set (res, op1, rnd); + testfunc (res, res, res, op3, rnd); +- if (mpfr_compare (res, ref)) ++ if (! SAME_VAL (res, ref)) + { + printf ("Error for %s(a, a, b, c) for ", foo); + DISP("a=", op1); DISP(", a=", op2); DISP2(", c=", op3); +- DISP("expected ", ref); DISP2(", got ", res); ++ printf ("expected "); mpfr_dump (ref); ++ printf ("got "); mpfr_dump (res); + exit (1); + } + +- /* foo(a, a, b,a) */ ++ /* foo(a, a, b, a) */ + testfunc (ref, op1, op2, op1, rnd); + mpfr_set (res, op1, rnd); + testfunc (res, res, op2, res, rnd); +- if (mpfr_compare (res, ref)) ++ if (! SAME_VAL (res, ref)) + { + printf ("Error for %s(a, a, b, c) for ", foo); + DISP("a=", op1); DISP(", a=", op2); DISP2(", c=", op3); +- DISP("expected ", ref); DISP2(", got ", res); ++ printf ("expected "); mpfr_dump (ref); ++ printf ("got "); mpfr_dump (res); + exit (1); + } + +@@ -264,11 +265,12 @@ + testfunc (ref, op1, op2, op2, rnd); + mpfr_set (res, op2, rnd); + testfunc (res, op1, res, res, rnd); +- if (mpfr_compare (res, ref)) ++ if (! SAME_VAL (res, ref)) + { + printf ("Error for %s(a, a, b, c) for ", foo); + DISP("a=", op1); DISP(", a=", op2); DISP2(", c=", op3); +- DISP("expected ", ref); DISP2(", got ", res); ++ printf ("expected "); mpfr_dump (ref); ++ printf ("got "); mpfr_dump (res); + exit (1); + } + +@@ -276,11 +278,12 @@ + testfunc (ref, op1, op1, op1, rnd); + mpfr_set (res, op1, rnd); + testfunc (res, res, res, res, rnd); +- if (mpfr_compare (res, ref)) ++ if (! SAME_VAL (res, ref)) + { + printf ("Error for %s(a, a, a, a) for ", foo); + DISP2("a=", op1); +- DISP("expected ", ref); DISP2(", got ", res); ++ printf ("expected "); mpfr_dump (ref); ++ printf ("got "); mpfr_dump (res); + exit (1); + } + } +@@ -313,10 +316,10 @@ + + /* ref2 can be NaN, +Inf, -Inf, +0, -0 or any number + ref3 can be 0 or any number */ +- for (i=0; i<SPECIAL_MAX*2; i++) ++ for (i = 0; i < SPECIAL_MAX * 2; i++) + { +- set_special (ref2, i%SPECIAL_MAX); +- ref3 = i/SPECIAL_MAX == 0 ? 0 : randlimb (); ++ set_special (ref2, i % SPECIAL_MAX); ++ ref3 = i / SPECIAL_MAX == 0 ? 0 : randlimb (); + + /* reference call: foo(a, b, c) */ + testfunc (ref1, ref2, ref3, rnd); +@@ -325,10 +328,10 @@ + mpfr_set (res1, ref2, rnd); /* exact operation */ + testfunc (res1, res1, ref3, rnd); + +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for %s(a, a, c) for c=%u\n", foo, ref3); +- DISP2("a=",ref2); ++ DISP2("a=", ref2); + printf ("expected "); mpfr_dump (ref1); + printf ("got "); mpfr_dump (res1); + exit (1); +@@ -356,10 +359,10 @@ + mpfr_init2 (ref3, prec); + mpfr_init2 (res1, prec); + +- for (i=0; i<SPECIAL_MAX*2; i++) ++ for (i = 0; i < SPECIAL_MAX * 2; i++) + { +- set_special (ref3, i%SPECIAL_MAX); +- ref2 = i/SPECIAL_MAX==0 ? 0 : randlimb (); ++ set_special (ref3, i % SPECIAL_MAX); ++ ref2 = i / SPECIAL_MAX == 0 ? 0 : randlimb (); + + /* reference call: foo(a, b, c) */ + testfunc (ref1, ref2, ref3, rnd); +@@ -367,7 +370,7 @@ + /* foo(a, b, a) */ + mpfr_set (res1, ref3, rnd); /* exact operation */ + testfunc (res1, ref2, res1, rnd); +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for %s(a, b, a) for b=%u \n", foo, ref2); + DISP2("a=", ref3); +@@ -397,7 +400,7 @@ + mpfr_init2 (ref2, prec); + mpfr_init2 (res1, prec); + +- for (i=0; i<SPECIAL_MAX; i++) ++ for (i = 0; i < SPECIAL_MAX; i++) + { + set_special (ref2, i); + +@@ -407,7 +410,7 @@ + /* foo(a, a) */ + mpfr_set (res1, ref2, rnd); /* exact operation */ + testfunc (res1, res1, rnd); +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for %s(a, a) for ", foo); + DISP2("a=", ref2); +@@ -437,7 +440,7 @@ + mpfr_init2 (ref2, prec); + mpfr_init2 (res1, prec); + +- for (i=0; i<SPECIAL_MAX; i++) ++ for (i = 0; i < SPECIAL_MAX; i++) + { + set_special (ref2, i); + +@@ -447,10 +450,10 @@ + /* foo(a, a) */ + mpfr_set (res1, ref2, MPFR_RNDN); /* exact operation */ + testfunc (res1, res1); +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for %s(a, a) for ", foo); +- DISP2("a=",ref2); ++ DISP2("a=", ref2); + DISP("expected", ref1); DISP2(", got ", res1); + exit (1); + } +@@ -479,7 +482,7 @@ + mpfr_init2 (res1, prec); + mpfr_init2 (res2, prec); + +- for (i=0; i<SPECIAL_MAX; i++) ++ for (i = 0; i < SPECIAL_MAX; i++) + { + set_special (ref3, i); + +@@ -489,12 +492,12 @@ + /* foo(a, b, a) */ + mpfr_set (res1, ref3, rnd); /* exact operation */ + testfunc (res1, res2, res1, rnd); +- if (mpfr_compare (res1, ref1) || mpfr_compare (res2, ref2)) ++ if (! SAME_VAL (res1, ref1) || ! SAME_VAL (res2, ref2)) + { + printf ("Error for %s(a, b, a) for rnd=%s, ", foo, + mpfr_print_rnd_mode (rnd)); +- DISP2("a=",ref3); +- DISP("expected (", ref1); DISP(",",ref2); ++ DISP2("a=", ref3); ++ DISP("expected (", ref1); DISP(",", ref2); + DISP("), got (", res1); DISP(",", res2); printf(")\n"); + exit (1); + } +@@ -502,11 +505,11 @@ + /* foo(a, b, b) */ + mpfr_set (res2, ref3, rnd); /* exact operation */ + testfunc (res1, res2, res2, rnd); +- if (mpfr_compare (res1, ref1) || mpfr_compare (res2, ref2)) ++ if (! SAME_VAL (res1, ref1) || ! SAME_VAL (res2, ref2)) + { + printf ("Error for %s(a, b, b) for ", foo); +- DISP2("b=",ref3); +- DISP("expected (", ref1); DISP(",",ref2); ++ DISP2("b=", ref3); ++ DISP("expected (", ref1); DISP(",", ref2); + DISP("), got (", res1); DISP(",", res2); printf(")\n"); + exit (1); + } +@@ -561,10 +564,10 @@ + mpfr_set (res1, ref2, rnd); /* exact operation */ + mpfr_pow (res1, res1, ref3, rnd); + +- if (mpfr_compare (res1, ref1)) ++ if (! SAME_VAL (res1, ref1)) + { + printf ("Error for pow_int(a, a, c) for "); +- DISP("a=",ref2); DISP2(", c=",ref3); ++ DISP("a=", ref2); DISP2(", c=", ref3); + printf ("expected "); mpfr_dump (ref1); + printf ("got "); mpfr_dump (res1); + exit (1); +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-05-12 15:08:39.233546717 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-05-12 15:08:39.325546612 +0000 +@@ -0,0 +1 @@ ++pow_general +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-05-12 15:06:11.885721962 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-05-12 15:08:39.325546612 +0000 +@@ -1 +1 @@ +-4.2.0-p6 ++4.2.0-p7 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-05-12 15:06:11.877721972 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-05-12 15:08:39.321546616 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p6" ++#define MPFR_VERSION_STRING "4.2.0-p7" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/pow.c mpfr-4.2.0-b/src/pow.c +--- mpfr-4.2.0-a/src/pow.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/pow.c 2023-05-12 15:08:39.309546630 +0000 +@@ -131,7 +131,6 @@ + /* Declaration of the size variable */ + mpfr_prec_t Nz = MPFR_PREC(z); /* target precision */ + mpfr_prec_t Nt; /* working precision */ +- mpfr_exp_t err; /* error */ + MPFR_ZIV_DECL (ziv_loop); + + MPFR_LOG_FUNC +@@ -171,12 +170,14 @@ + MPFR_ZIV_INIT (ziv_loop, Nt); + for (;;) + { ++ mpfr_exp_t err, exp_t; + MPFR_BLOCK_DECL (flags1); + + /* compute exp(y*ln|x|), using MPFR_RNDU to get an upper bound, so + that we can detect underflows. */ + mpfr_log (t, absx, MPFR_IS_NEG (y) ? MPFR_RNDD : MPFR_RNDU); /* ln|x| */ + mpfr_mul (t, y, t, MPFR_RNDU); /* y*ln|x| */ ++ exp_t = MPFR_GET_EXP (t); + if (k_non_zero) + { + MPFR_LOG_MSG (("subtract k * ln(2)\n", 0)); +@@ -188,14 +189,16 @@ + MPFR_LOG_VAR (t); + } + /* estimate of the error -- see pow function in algorithms.tex. +- The error on t is at most 1/2 + 3*2^(EXP(t)+1) ulps, which is +- <= 2^(EXP(t)+3) for EXP(t) >= -1, and <= 2 ulps for EXP(t) <= -2. ++ The error on t before the subtraction of k*log(2) is at most ++ 1/2 + 3*2^(EXP(t)+1) ulps, which is <= 2^(EXP(t)+3) for EXP(t) >= -1, ++ and <= 2 ulps for EXP(t) <= -2. + Additional error if k_no_zero: treal = t * errk, with + 1 - |k| * 2^(-Nt) <= exp(-|k| * 2^(-Nt)) <= errk <= 1, + i.e., additional absolute error <= 2^(EXP(k)+EXP(t)-Nt). +- Total error <= 2^err1 + 2^err2 <= 2^(max(err1,err2)+1). */ +- err = MPFR_NOTZERO (t) && MPFR_GET_EXP (t) >= -1 ? +- MPFR_GET_EXP (t) + 3 : 1; ++ Total ulp error <= 2^err1 + 2^err2 <= 2^(max(err1,err2)+1), ++ where err1 = EXP(t)+3 for EXP(t) >= -1, and 1 otherwise, ++ and err2 = EXP(k). */ ++ err = MPFR_NOTZERO (t) && exp_t >= -1 ? exp_t + 3 : 1; + if (k_non_zero) + { + if (MPFR_GET_EXP (k) > err) +@@ -328,11 +331,17 @@ + */ + if (rnd_mode == MPFR_RNDN && inexact < 0 && lk < 0 && + MPFR_GET_EXP (z) == __gmpfr_emin - 1 - lk && mpfr_powerof2_raw (z)) +- /* Rounding to nearest, real result > z * 2^k = 2^(emin - 2), +- * underflow case: we will obtain the correct result and exceptions +- * by replacing z by nextabove(z). +- */ +- mpfr_nextabove (z); ++ /* Rounding to nearest, exact result > z * 2^k = 2^(emin - 2), ++ * and underflow case because the rounded result assuming an ++ * unbounded exponent range is 2^(emin - 2). We need to round ++ * to 2^(emin - 1), i.e. to round toward +inf. ++ * Note: the old code was using "mpfr_nextabove (z);" instead of ++ * setting rnd_mode to MPFR_RNDU for the call to mpfr_mul_2si, but ++ * this was incorrect in precision 1 because in this precision, ++ * mpfr_nextabove gave 2^(emin - 1), which is representable, ++ * so that mpfr_mul_2si did not generate the wanted underflow ++ * (the value was correct, but the underflow flag was missing). */ ++ rnd_mode = MPFR_RNDU; + MPFR_CLEAR_FLAGS (); + inex2 = mpfr_mul_2si (z, z, lk, rnd_mode); + if (inex2) /* underflow or overflow */ +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-05-12 15:06:11.885721962 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-05-12 15:08:39.325546612 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p6"; ++ return "4.2.0-p7"; + } +diff -Naurd mpfr-4.2.0-a/tests/texp10.c mpfr-4.2.0-b/tests/texp10.c +--- mpfr-4.2.0-a/tests/texp10.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/texp10.c 2023-05-12 15:08:39.309546630 +0000 +@@ -190,6 +190,187 @@ + mpfr_clear (y); + } + ++/* Bug in mpfr_pow_general found by ofuf_thresholds (on 2023-02-13 for ++ a 32-bit exponent, changed on 2023-03-06 for a 64-bit exponent too), ++ fixed in commit b62966df913f73f08b3c5252e1d0c702bc20442f. ++ With a 32-bit exponent, failure for i=0. ++ expected 0.1111E1073741823 ++ got @Inf@ ++ expected flags = inexact (8) ++ got flags = overflow inexact (10) ++ With a 64-bit exponent, failure for i=1. ++ expected 0.11111111111111111111111E4611686018427387903 ++ got @Inf@ ++ expected flags = inexact (8) ++ got flags = overflow inexact (10) ++ Note: ofuf_thresholds was added to the master branch, but for the ++ time being, there are issues with these tests. ++*/ ++static void ++bug20230213 (void) ++{ ++ const char *s[2] = { ++ "0x1.34413504b3ccdbd5dd8p+28", ++ "0x1.34413509f79fef2c4e0dd14a7ae0ecfbacdbp+60" ++ }; ++ mpfr_t x1, x2, y1, y2; ++ mpfr_prec_t px[2] = { 74, 147 }; ++ mpfr_prec_t py[2] = { 4, 23 }; ++ mpfr_exp_t old_emax, emax; ++ mpfr_flags_t flags1, flags2; ++ int i; ++ ++ old_emax = mpfr_get_emax (); ++ ++ for (i = 0; i < 2; i++) ++ { ++ if (i != 0) ++ set_emax (MPFR_EMAX_MAX); ++ ++ emax = mpfr_get_emax (); ++ ++ mpfr_inits2 (px[i], x1, x2, (mpfr_ptr) 0); ++ mpfr_inits2 (py[i], y1, y2, (mpfr_ptr) 0); ++ ++ mpfr_setmax (y1, emax); ++ mpfr_log10 (x1, y1, MPFR_RNDD); ++ mpfr_set_str (x2, s[i], 0, MPFR_RNDN); ++ /* For i == 0, emax == 2^30, so that the value can be checked. ++ For i != 0, check the value for the case emax == 2^62. ++ The "0UL" ensures that the shifts are valid. */ ++ if (i == 0 || (((0UL + MPFR_EMAX_MAX) >> 31) >> 30) == 1) ++ { ++ /* printf ("Checking x1 for i=%d\n", i); */ ++ MPFR_ASSERTN (mpfr_equal_p (x1, x2)); ++ } ++ ++ /* Let MAXF be the maximum finite value (y1 above). ++ Since x1 < log10(MAXF), one should have exp10(x1) < MAXF, and ++ therefore, y2 = RU(exp10(x1)) <= RU(MAXF) = MAXF (no overflow). */ ++ flags1 = MPFR_FLAGS_INEXACT; ++ mpfr_clear_flags (); ++ mpfr_exp10 (y2, x1, MPFR_RNDU); ++ flags2 = __gmpfr_flags; ++ ++ if (! (mpfr_lessequal_p (y2, y1) && flags2 == flags1)) ++ { ++ printf ("Error in bug20230213 for i=%d\n", i); ++ printf ("emax = %" MPFR_EXP_FSPEC "d\n", (mpfr_eexp_t) emax); ++ printf ("expected "); mpfr_dump (y1); ++ printf ("got "); mpfr_dump (y2); ++ printf ("expected flags ="); ++ flags_out (flags1); ++ printf ("got flags ="); ++ flags_out (flags2); ++ exit (1); ++ } ++ ++ mpfr_clears (x1, x2, y1, y2, (mpfr_ptr) 0); ++ } ++ ++ set_emax (old_emax); ++} ++ ++/* Bug in mpfr_pow_general in precision 1 in the particular case of ++ rounding to nearest, z * 2^k = 2^(emin - 2) and real result larger ++ than this value; fixed in ff5012b61d5e5fee5156c57b8aa8fc1739c2a771 ++ (which is simplified in 4f5de980be290687ac1409aa02873e9e0dd1a030); ++ initially found by ofuf_thresholds (though the test was incorrect). ++ With a 32-bit exponent, failure for i=0. ++ With a 64-bit exponent, failure for i=1. ++ The result was correct, but the underflow flag was missing. ++ Note: ofuf_thresholds was added to the master branch, but for the ++ time being, there are issues with these tests. ++*/ ++static void ++bug20230427 (void) ++{ ++ const char *s[2] = { ++ "-0.1001101000100000100110101000011E29", ++ "-0.100110100010000010011010100001001111101111001111111101111001101E61" ++ }; ++ mpfr_t x, y, z, t1, t2; ++ mpfr_exp_t old_emin; ++ mpfr_flags_t flags, ex_flags; ++ int i, inex; ++ ++ old_emin = mpfr_get_emin (); ++ ++ mpfr_init2 (x, 63); ++ mpfr_inits2 (1, y, z, (mpfr_ptr) 0); ++ mpfr_inits2 (128, t1, t2, (mpfr_ptr) 0); ++ ++ for (i = 0; i < 2; i++) ++ { ++ if (i == 0) ++ { ++ /* Basic check: the default emin should be -2^30 (exactly). */ ++ if (mpfr_get_emin () != -1073741823) ++ abort (); ++ } ++ else ++ { ++ /* This test assumes that MPFR_EMIN_MIN = -2^62 (exactly). ++ The "0UL" ensures that the shifts are valid. */ ++ if ((((0UL - MPFR_EMIN_MIN) >> 31) >> 30) != 1) ++ break; ++ ++ set_emin (MPFR_EMIN_MIN); ++ } ++ ++ mpfr_set_str_binary (x, s[i]); ++ ++ /* We will test 10^x rounded to nearest in precision 1. ++ Check that 2^(emin - 2) < 10^x < (3/2) * 2^(emin - 2). ++ This is approximate, but by outputting the values, one can check ++ that one is not too close to the boundaries: ++ emin - 2 = -4611686018427387905 ++ log2(10^x) ~= -4611686018427387904.598 ++ emin - 2 + log2(3/2) ~= -4611686018427387904.415 ++ Thus the result should be the smallest positive number 2^(emin - 1) ++ because 10^x is closer to this number than to 0, the midpoint being ++ 2^(emin - 2). And there should be an underflow in precision 1 because ++ the result rounded to nearest in an unbounded exponent range should ++ have been 2^(emin - 2), the midpoint being (3/2) * 2^(emin - 2). ++ */ ++ mpfr_set_ui (t1, 10, MPFR_RNDN); ++ mpfr_log2 (t2, t1, MPFR_RNDN); ++ mpfr_mul (t1, t2, x, MPFR_RNDN); ++ inex = mpfr_set_exp_t (t2, mpfr_get_emin () - 2, MPFR_RNDN); ++ MPFR_ASSERTN (inex == 0); ++ MPFR_ASSERTN (mpfr_greater_p (t1, t2)); /* log2(10^x) > emin - 2 */ ++ inex = mpfr_sub (t1, t1, t2, MPFR_RNDN); ++ MPFR_ASSERTN (inex == 0); ++ mpfr_set_ui (t2, 3, MPFR_RNDN); ++ mpfr_log2 (t2, t2, MPFR_RNDN); ++ mpfr_sub_ui (t2, t2, 1, MPFR_RNDN); /* log2(3/2) */ ++ MPFR_ASSERTN (mpfr_less_p (t1, t2)); ++ ++ mpfr_clear_flags (); ++ mpfr_exp10 (y, x, MPFR_RNDN); ++ flags = __gmpfr_flags; ++ ex_flags = MPFR_FLAGS_UNDERFLOW | MPFR_FLAGS_INEXACT; ++ ++ mpfr_setmin (z, mpfr_get_emin ()); /* z = 0.1@emin */ ++ if (! (mpfr_equal_p (y, z) && flags == ex_flags)) ++ { ++ printf ("Error in bug20230427 for i=%d\n", i); ++ printf ("expected "); mpfr_dump (z); ++ printf ("got "); mpfr_dump (y); ++ printf ("emin = %" MPFR_EXP_FSPEC "d\n", ++ (mpfr_eexp_t) mpfr_get_emin ()); ++ printf ("expected flags ="); ++ flags_out (ex_flags); ++ printf ("got flags ="); ++ flags_out (flags); ++ exit (1); ++ } ++ } ++ ++ mpfr_clears (x, y, z, t1, t2, (mpfr_ptr) 0); ++ set_emin (old_emin); ++} ++ + int + main (int argc, char *argv[]) + { +@@ -199,6 +380,9 @@ + + tests_start_mpfr (); + ++ bug20230213 (); ++ bug20230427 (); ++ + special_overflow (); + emax_m_eps (); + exp_range (); +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-05-17 17:17:28.512360351 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-05-17 17:17:28.600360192 +0000 +@@ -0,0 +1 @@ ++compound +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-05-12 15:08:39.325546612 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-05-17 17:17:28.600360192 +0000 +@@ -1 +1 @@ +-4.2.0-p7 ++4.2.0-p8 +diff -Naurd mpfr-4.2.0-a/src/compound.c mpfr-4.2.0-b/src/compound.c +--- mpfr-4.2.0-a/src/compound.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/compound.c 2023-05-17 17:17:28.588360213 +0000 +@@ -55,9 +55,9 @@ + mpfr_compound_si (mpfr_ptr y, mpfr_srcptr x, long n, mpfr_rnd_t rnd_mode) + { + int inexact, compared, k, nloop; +- mpfr_t t; +- mpfr_exp_t e; +- mpfr_prec_t prec; ++ mpfr_t t, u; ++ mpfr_prec_t py, prec, extra; ++ mpfr_rnd_t rnd1; + MPFR_ZIV_DECL (loop); + MPFR_SAVE_EXPO_DECL (expo); + +@@ -136,64 +136,185 @@ + + MPFR_SAVE_EXPO_MARK (expo); + +- prec = MPFR_PREC(y); +- prec += MPFR_INT_CEIL_LOG2 (prec) + 6; ++ py = MPFR_GET_PREC (y); ++ prec = py + MPFR_INT_CEIL_LOG2 (py) + 6; + + mpfr_init2 (t, prec); ++ mpfr_init2 (u, prec); + + k = MPFR_INT_CEIL_LOG2(SAFE_ABS (unsigned long, n)); /* thus |n| <= 2^k */ + ++ /* We compute u=log2p1(x) with prec+extra bits, since we lose some bits ++ in 2^u. */ ++ extra = 0; ++ rnd1 = VSIGN (n) == MPFR_SIGN (x) ? MPFR_RNDD : MPFR_RNDU; ++ + MPFR_ZIV_INIT (loop, prec); + for (nloop = 0; ; nloop++) + { +- /* we compute (1+x)^n as 2^(n*log2p1(x)) */ +- inexact = mpfr_log2p1 (t, x, MPFR_RNDN) != 0; +- e = MPFR_GET_EXP(t); +- /* |t - log2(1+x)| <= 1/2*ulp(t) = 2^(e-prec-1) */ +- inexact |= mpfr_mul_si (t, t, n, MPFR_RNDN) != 0; +- /* |t - n*log2(1+x)| <= 2^(e2-prec-1) + |n|*2^(e-prec-1) +- <= 2^(e2-prec-1) + 2^(e+k-prec-1) <= 2^(e+k-prec) +- where |n| <= 2^k, and e2 is the new exponent of t. */ +- MPFR_ASSERTD(MPFR_GET_EXP(t) <= e + k); +- e += k; +- /* |t - n*log2(1+x)| <= 2^(e-prec) */ +- /* detect overflow */ +- if (nloop == 0 && mpfr_cmp_si (t, __gmpfr_emax) >= 0) ++ unsigned int inex; ++ mpfr_exp_t e, e2, ex; ++ mpfr_prec_t precu = MPFR_ADD_PREC (prec, extra); ++ mpfr_prec_t new_extra; ++ mpfr_rnd_t rnd2; ++ ++ /* We compute (1+x)^n as 2^(n*log2p1(x)), ++ and we round toward 1, thus we round n*log2p1(x) toward 0, ++ thus for x*n > 0 we round log2p1(x) toward -Inf, and for x*n < 0 ++ we round log2p1(x) toward +Inf. */ ++ inex = mpfr_log2p1 (u, x, rnd1) != 0; ++ e = MPFR_GET_EXP (u); ++ /* |u - log2(1+x)| <= ulp(t) = 2^(e-precu) */ ++ inex |= mpfr_mul_si (u, u, n, MPFR_RNDZ) != 0; ++ e2 = MPFR_GET_EXP (u); ++ /* |u - n*log2(1+x)| <= 2^(e2-precu) + |n|*2^(e-precu) ++ <= 2^(e2-precu) + 2^(e+k-precu) <= 2^(e+k+1-precu) ++ where |n| <= 2^k, and e2 is the new exponent of u. */ ++ MPFR_ASSERTD (e2 <= e + k); ++ e += k + 1; ++ MPFR_ASSERTN (e2 <= MPFR_PREC_MAX); ++ new_extra = e2 > 0 ? e2 : 0; ++ /* |u - n*log2(1+x)| <= 2^(e-precu) */ ++ /* detect overflow: since we rounded n*log2p1(x) toward 0, ++ if n*log2p1(x) >= __gmpfr_emax, we are sure there is overflow. */ ++ if (mpfr_cmp_si (u, __gmpfr_emax) >= 0) + { + MPFR_ZIV_FREE (loop); + mpfr_clear (t); ++ mpfr_clear (u); + MPFR_SAVE_EXPO_FREE (expo); + return mpfr_overflow (y, rnd_mode, 1); + } +- /* detect underflow */ +- if (nloop == 0 && mpfr_cmp_si (t, __gmpfr_emin - 1) <= 0) ++ /* detect underflow: similarly, since we rounded n*log2p1(x) toward 0, ++ if n*log2p1(x) < __gmpfr_emin-1, we are sure there is underflow. */ ++ if (mpfr_cmp_si (u, __gmpfr_emin - 1) < 0) + { + MPFR_ZIV_FREE (loop); + mpfr_clear (t); ++ mpfr_clear (u); + MPFR_SAVE_EXPO_FREE (expo); + return mpfr_underflow (y, +- (rnd_mode == MPFR_RNDN) ? MPFR_RNDZ : rnd_mode, 1); ++ rnd_mode == MPFR_RNDN ? MPFR_RNDZ : rnd_mode, 1); + } + /* Detect cases where result is 1 or 1+ulp(1) or 1-1/2*ulp(1): +- |2^t - 1| = |exp(t*log(2)) - 1| <= |t|*log(2) < |t| */ +- if (nloop == 0 && MPFR_GET_EXP(t) < - (mpfr_exp_t) MPFR_PREC(y)) ++ |2^u - 1| = |exp(u*log(2)) - 1| <= |u|*log(2) < |u| */ ++ if (nloop == 0 && MPFR_GET_EXP(u) < - py) + { +- /* since ulp(1) = 2^(1-PREC(y)), we have |t| < 1/4*ulp(1) */ ++ /* since ulp(1) = 2^(1-py), we have |u| < 1/4*ulp(1) */ + /* mpfr_compound_near_one must be called in the extended + exponent range, so that 1 is representable. */ +- inexact = mpfr_compound_near_one (y, MPFR_SIGN (t), rnd_mode); ++ inexact = mpfr_compound_near_one (y, MPFR_SIGN (u), rnd_mode); + goto end; + } +- inexact |= mpfr_exp2 (t, t, MPFR_RNDA) != 0; +- /* |t - (1+x)^n| <= ulp(t) + |t|*log(2)*2^(e-prec) +- < 2^(EXP(t)-prec) + 2^(EXP(t)+e-prec) */ +- e = (e >= 0) ? e + 1 : 1; ++ /* FIXME: mpfr_exp2 could underflow to the smallest positive number ++ since MPFR_RNDA is used, and this case will not be detected by ++ MPFR_CAN_ROUND (see BUGS). Either fix that, or do early underflow ++ detection (which may be necessary). */ ++ /* round 2^u toward 1 */ ++ rnd2 = MPFR_IS_POS (u) ? MPFR_RNDD : MPFR_RNDU; ++ inex |= mpfr_exp2 (t, u, rnd2) != 0; ++ /* we had |u - n*log2(1+x)| < 2^(e-precu) ++ thus u = n*log2(1+x) + delta with |delta| < 2^(e-precu) ++ then 2^u = (1+x)^n * 2^delta with |delta| < 2^(e-precu). ++ For |delta| < 0.5, |2^delta - 1| <= |delta| thus ++ |t - (1+x)^n| <= ulp(t) + |t|*2^(e-precu) ++ < 2^(EXP(t)-prec) + 2^(EXP(t)+e-precu) */ ++ e = (precu - prec >= e) ? 1 : e + 1 - (precu - prec); + /* now |t - (1+x)^n| < 2^(EXP(t)+e-prec) */ + +- if (MPFR_LIKELY (inexact == 0 || +- MPFR_CAN_ROUND (t, prec - e, MPFR_PREC(y), rnd_mode))) ++ if (MPFR_LIKELY (!inex || MPFR_CAN_ROUND (t, prec - e, py, rnd_mode))) + break; + ++ /* If t fits in the target precision (or with 1 more bit), then we can ++ round, assuming the working precision is large enough, but the above ++ MPFR_CAN_ROUND() will fail because we cannot determine the ternary ++ value. However since we rounded t toward 1, we can determine it. ++ Since the error in the approximation t is at most 2^e ulp(t), ++ this error should be less than 1/2 ulp(y), thus we should have ++ prec - py >= e + 1. */ ++ if (mpfr_min_prec (t) <= py + 1 && prec - py >= e + 1) ++ { ++ /* we add/subtract one ulp to get the correct rounding */ ++ if (rnd2 == MPFR_RNDD) /* t was rounded downwards */ ++ mpfr_nextabove (t); ++ else ++ mpfr_nextbelow (t); ++ break; ++ } ++ ++ /* Detect particular cases where Ziv's strategy may take too much ++ memory and be too long, i.e. when x^n fits in the target precision ++ (+ 1 additional bit for rounding to nearest) and the exact result ++ (1+x)^n is very close to x^n. ++ Necessarily, x is a large even integer and n > 0 (thus n > 1). ++ Since this does not depend on the working precision, we only ++ check this at the first iteration (nloop == 0). ++ Hence the first "if" below and the kx < ex test of the second "if" ++ (x is an even integer iff its least bit 1 has exponent >= 1). ++ The second test of the second "if" corresponds to another simple ++ condition that implies that x^n fits in the target precision. ++ Here are the details: ++ Let k be the minimum length of the significand of x, and x' the odd ++ (integer) significand of x. This means that 2^(k-1) <= x' < 2^k. ++ Thus 2^(n*(k-1)) <= (x')^n < 2^(k*n), and x^n has between n*(k-1)+1 ++ and k*n bits. So x^n can fit into p bits only if p >= n*(k-1)+1, ++ i.e. n*(k-1) <= p-1. ++ Note that x >= 2^k, so that x^n >= 2^(k*n). Since raw overflow ++ has already been detected, k*n cannot overflow if computed with ++ the mpfr_exp_t type. Hence the second test of the second "if", ++ which cannot overflow. */ ++ MPFR_ASSERTD (n < 0 || n > 1); ++ if (nloop == 0 && n > 1 && (ex = MPFR_GET_EXP (x)) >= 17) ++ { ++ mpfr_prec_t kx = mpfr_min_prec (x); ++ mpfr_prec_t p = py + (rnd_mode == MPFR_RNDN); ++ ++ MPFR_LOG_MSG (("Check if x^n fits... n=%ld kx=%Pd p=%Pd\n", ++ n, kx, p)); ++ if (kx < ex && n * (mpfr_exp_t) (kx - 1) <= p - 1) ++ { ++ mpfr_t v; ++ ++ /* Check whether x^n really fits into p bits. */ ++ mpfr_init2 (v, p); ++ inexact = mpfr_pow_ui (v, x, n, MPFR_RNDZ); ++ if (inexact == 0) ++ { ++ MPFR_LOG_MSG (("x^n fits into p bits\n", 0)); ++ /* (x+1)^n = x^n * (1 + 1/x)^n ++ For directed rounding, we can round when (1 + 1/x)^n ++ < 1 + 2^-p, and then the result is x^n, ++ except for rounding up. Indeed, if (1 + 1/x)^n < 1 + 2^-p, ++ 1 <= (x+1)^n < x^n * (1 + 2^-p) = x^n + x^n/2^p ++ < x^n + ulp(x^n). ++ For rounding to nearest, we can round when (1 + 1/x)^n ++ < 1 + 2^-p, and then the result is x^n when x^n fits ++ into p-1 bits, and nextabove(x^n) otherwise. */ ++ mpfr_ui_div (t, 1, x, MPFR_RNDU); ++ mpfr_add_ui (t, t, 1, MPFR_RNDU); ++ mpfr_pow_ui (t, t, n, MPFR_RNDU); ++ mpfr_sub_ui (t, t, 1, MPFR_RNDU); ++ /* t cannot be zero */ ++ if (MPFR_GET_EXP(t) < - py) ++ { ++ mpfr_set (y, v, MPFR_RNDZ); ++ if ((rnd_mode == MPFR_RNDN && mpfr_min_prec (v) == p) ++ || rnd_mode == MPFR_RNDU || rnd_mode == MPFR_RNDA) ++ { ++ /* round up */ ++ mpfr_nextabove (y); ++ inexact = 1; ++ } ++ else ++ inexact = -1; ++ mpfr_clear (v); ++ goto end; ++ } ++ } ++ mpfr_clear (v); ++ } ++ } ++ + /* Exact cases like compound(0.5,2) = 9/4 must be detected, since + except for 1+x power of 2, the log2p1 above will be inexact, + so that in the Ziv test, inexact != 0 and MPFR_CAN_ROUND will +@@ -211,6 +332,8 @@ + + MPFR_ZIV_NEXT (loop, prec); + mpfr_set_prec (t, prec); ++ extra = new_extra; ++ mpfr_set_prec (u, MPFR_ADD_PREC (prec, extra)); + } + + inexact = mpfr_set (y, t, rnd_mode); +@@ -218,6 +341,7 @@ + end: + MPFR_ZIV_FREE (loop); + mpfr_clear (t); ++ mpfr_clear (u); + + MPFR_SAVE_EXPO_FREE (expo); + return mpfr_check_range (y, inexact, rnd_mode); +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-05-12 15:08:39.321546616 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-05-17 17:17:28.596360199 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p7" ++#define MPFR_VERSION_STRING "4.2.0-p8" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-05-12 15:08:39.325546612 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-05-17 17:17:28.600360192 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p7"; ++ return "4.2.0-p8"; + } +diff -Naurd mpfr-4.2.0-a/tests/tcompound.c mpfr-4.2.0-b/tests/tcompound.c +--- mpfr-4.2.0-a/tests/tcompound.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tcompound.c 2023-05-17 17:17:28.588360213 +0000 +@@ -238,18 +238,263 @@ + mpfr_clear (y); + } + +-static int +-mpfr_compound2 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode) ++/* Failure with mpfr_compound_si from 2021-02-15 due to ++ incorrect underflow detection. */ ++static void ++bug_20230206 (void) + { +- return mpfr_compound_si (y, x, 2, rnd_mode); ++ if (MPFR_PREC_MIN == 1) ++ { ++ mpfr_t x, y1, y2; ++ int inex1, inex2; ++ mpfr_flags_t flags1, flags2; ++#if MPFR_PREC_BITS >= 64 ++ mpfr_exp_t emin; ++#endif ++ ++ mpfr_inits2 (1, x, y1, y2, (mpfr_ptr) 0); ++ mpfr_set_ui_2exp (x, 1, -1, MPFR_RNDN); /* x = 1/2 */ ++ ++ /* This first test is useful mainly for a 32-bit mpfr_exp_t type ++ (no failure with a 64-bit mpfr_exp_t type since the underflow ++ threshold in the extended exponent range is much lower). */ ++ ++ mpfr_set_ui_2exp (y1, 1, -1072124363, MPFR_RNDN); ++ inex1 = -1; ++ flags1 = MPFR_FLAGS_INEXACT; ++ mpfr_clear_flags (); ++ /* -1832808704 ~= -2^30 / log2(3/2) */ ++ inex2 = mpfr_compound_si (y2, x, -1832808704, MPFR_RNDN); ++ flags2 = __gmpfr_flags; ++ if (!(mpfr_equal_p (y1, y2) && ++ SAME_SIGN (inex1, inex2) && ++ flags1 == flags2)) ++ { ++ printf ("Error in bug_20230206 (1):\n"); ++ printf ("Expected "); ++ mpfr_dump (y1); ++ printf (" with inex = %d, flags =", inex1); ++ flags_out (flags1); ++ printf ("Got "); ++ mpfr_dump (y2); ++ printf (" with inex = %d, flags =", inex2); ++ flags_out (flags2); ++ exit (1); ++ } ++ ++ /* This second test is for a 64-bit mpfr_exp_t type ++ (it is disabled with a 32-bit mpfr_exp_t type). */ ++ ++ /* The "#if" makes sure that 64-bit constants are supported, avoiding ++ a compilation failure. The "if" makes sure that the constant is ++ representable in a long (this would not be the case with 32-bit ++ unsigned long and 64-bit limb). It also ensures that mpfr_exp_t ++ has at least 64 bits. */ ++#if MPFR_PREC_BITS >= 64 ++ emin = mpfr_get_emin (); ++ set_emin (MPFR_EMIN_MIN); ++ mpfr_set_ui_2exp (y1, 1, -4611686018427366846, MPFR_RNDN); ++ inex1 = 1; ++ flags1 = MPFR_FLAGS_INEXACT; ++ mpfr_clear_flags (); ++ /* -7883729320669216768 ~= -2^62 / log2(3/2) */ ++ inex2 = mpfr_compound_si (y2, x, -7883729320669216768, MPFR_RNDN); ++ flags2 = __gmpfr_flags; ++ if (!(mpfr_equal_p (y1, y2) && ++ SAME_SIGN (inex1, inex2) && ++ flags1 == flags2)) ++ { ++ printf ("Error in bug_20230206 (2):\n"); ++ printf ("Expected "); ++ mpfr_dump (y1); ++ printf (" with inex = %d, flags =", inex1); ++ flags_out (flags1); ++ printf ("Got "); ++ mpfr_dump (y2); ++ printf (" with inex = %d, flags =", inex2); ++ flags_out (flags2); ++ exit (1); ++ } ++ set_emin (emin); ++#endif ++ ++ mpfr_clears (x, y1, y2, (mpfr_ptr) 0); ++ } + } + ++/* Reported by Patrick Pelissier on 2023-02-11 for the master branch ++ (tgeneric_ui.c with GMP_CHECK_RANDOMIZE=1412991715). ++ On a 32-bit host, one gets Inf (overflow) instead of 0.1E1071805703. ++*/ ++static void ++bug_20230211 (void) ++{ ++ mpfr_t x, y1, y2; ++ int inex1, inex2; ++ mpfr_flags_t flags1, flags2; ++ ++ mpfr_inits2 (1, x, y1, y2, (mpfr_ptr) 0); ++ mpfr_set_ui_2exp (x, 1, -1, MPFR_RNDN); /* x = 1/2 */ ++ mpfr_set_ui_2exp (y1, 1, 1071805702, MPFR_RNDN); ++ inex1 = 1; ++ flags1 = MPFR_FLAGS_INEXACT; ++ mpfr_clear_flags (); ++ inex2 = mpfr_compound_si (y2, x, 1832263949, MPFR_RNDN); ++ flags2 = __gmpfr_flags; ++ if (!(mpfr_equal_p (y1, y2) && ++ SAME_SIGN (inex1, inex2) && ++ flags1 == flags2)) ++ { ++ printf ("Error in bug_20230211:\n"); ++ printf ("Expected "); ++ mpfr_dump (y1); ++ printf (" with inex = %d, flags =", inex1); ++ flags_out (flags1); ++ printf ("Got "); ++ mpfr_dump (y2); ++ printf (" with inex = %d, flags =", inex2); ++ flags_out (flags2); ++ exit (1); ++ } ++ mpfr_clears (x, y1, y2, (mpfr_ptr) 0); ++} ++ ++/* Integer overflow with compound.c d04caeae04c6a83276916c4fbac1fe9b0cec3c8b ++ (2023-02-23) or 952fb0f5cc2df1fffde3eb54c462fdae5f123ea6 in the 4.2 branch ++ on "n * (kx - 1) + 1". Note: if the only effect is just a random value, ++ this probably doesn't affect the result (one might enter the "if" while ++ one shouldn't, but the real check is done inside the "if"). This test ++ fails if -fsanitize=undefined -fno-sanitize-recover is used or if the ++ processor emits a signal in case of integer overflow. ++ This test has been made obsolete by the "kx < ex" condition ++ in 2cb3123891dd46fe0258d4aec7f8655b8ec69aaf (master branch) ++ or f5cb40571bc3d1559f05b230cf4ffecaf0952852 (4.2 branch). */ ++static void ++bug_20230517 (void) ++{ ++ mpfr_exp_t old_emax; ++ mpfr_t x; ++ ++ old_emax = mpfr_get_emax (); ++ set_emax (MPFR_EMAX_MAX); ++ ++ mpfr_init2 (x, 123456); ++ mpfr_set_ui (x, 65536, MPFR_RNDN); ++ mpfr_nextabove (x); ++ mpfr_compound_si (x, x, LONG_MAX >> 16, MPFR_RNDN); ++ mpfr_clear (x); ++ ++ set_emax (old_emax); ++} ++ ++/* Inverse function on non-special cases... ++ One has x = (1+y)^n with y > -1 and x > 0. Thus y = x^(1/n) - 1. ++ The inverse function is useful ++ - to build and check hard-to-round cases (see bad_cases() in tests.c); ++ - to test the behavior close to the overflow and underflow thresholds. ++ The case x = 0 actually needs to be handled as it may occur with ++ bad_cases() due to rounding. ++*/ + static int +-mpfr_compound3 (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t rnd_mode) ++inv_compound (mpfr_ptr y, mpfr_srcptr x, long n, mpfr_rnd_t rnd_mode) + { +- return mpfr_compound_si (y, x, 3, rnd_mode); ++ mpfr_t t; ++ int inexact; ++ mpfr_prec_t precy, prect; ++ MPFR_ZIV_DECL (loop); ++ MPFR_SAVE_EXPO_DECL (expo); ++ ++ MPFR_ASSERTN (n != 0); ++ ++ if (MPFR_UNLIKELY (MPFR_IS_ZERO (x))) ++ { ++ if (n > 0) ++ return mpfr_set_si (y, -1, rnd_mode); ++ else ++ { ++ MPFR_SET_INF (y); ++ MPFR_SET_POS (y); ++ MPFR_RET (0); ++ } ++ } ++ ++ MPFR_SAVE_EXPO_MARK (expo); ++ ++ if (mpfr_equal_p (x, __gmpfr_one)) ++ { ++ MPFR_SAVE_EXPO_FREE (expo); ++ mpfr_set_zero (y, 1); ++ MPFR_RET (0); ++ } ++ ++ precy = MPFR_GET_PREC (y); ++ prect = precy + 20; ++ mpfr_init2 (t, prect); ++ ++ MPFR_ZIV_INIT (loop, prect); ++ for (;;) ++ { ++ mpfr_exp_t expt1, expt2, err; ++ unsigned int inext; ++ ++ if (mpfr_rootn_si (t, x, n, MPFR_RNDN) == 0) ++ { ++ /* With a huge t, this case would yield inext != 0 and a ++ MPFR_CAN_ROUND failure until a huge precision is reached ++ (as the result is very close to an exact point). Fortunately, ++ since t is exact, we can obtain the correctly rounded result ++ by doing the second operation to the target precision directly. ++ */ ++ inexact = mpfr_sub_ui (y, t, 1, rnd_mode); ++ goto end; ++ } ++ expt1 = MPFR_GET_EXP (t); ++ /* |error| <= 2^(expt1-prect-1) */ ++ inext = mpfr_sub_ui (t, t, 1, MPFR_RNDN); ++ if (MPFR_UNLIKELY (MPFR_IS_ZERO (t))) ++ goto cont; /* cannot round yet */ ++ expt2 = MPFR_GET_EXP (t); ++ err = 1; ++ if (expt2 < expt1) ++ err += expt1 - expt2; ++ /* |error(rootn)| <= 2^(err+expt2-prect-2) ++ and if mpfr_sub_ui is inexact: ++ |error| <= 2^(err+expt2-prect-2) + 2^(expt2-prect-1) ++ <= (2^(err-1) + 1) * 2^(expt2-prect-1) ++ <= 2^((err+1)+expt2-prect-2) */ ++ if (inext) ++ err++; ++ /* |error| <= 2^(err+expt2-prect-2) */ ++ if (MPFR_CAN_ROUND (t, prect + 2 - err, precy, rnd_mode)) ++ break; ++ ++ cont: ++ MPFR_ZIV_NEXT (loop, prect); ++ mpfr_set_prec (t, prect); ++ } ++ ++ inexact = mpfr_set (y, t, rnd_mode); ++ ++ end: ++ MPFR_ZIV_FREE (loop); ++ mpfr_clear (t); ++ MPFR_SAVE_EXPO_FREE (expo); ++ return mpfr_check_range (y, inexact, rnd_mode); + } + ++#define DEFN(N) \ ++ static int mpfr_compound##N (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t r) \ ++ { return mpfr_compound_si (y, x, N, r); } \ ++ static int inv_compound##N (mpfr_ptr y, mpfr_srcptr x, mpfr_rnd_t r) \ ++ { return inv_compound (y, x, N, r); } ++ ++DEFN(2) ++DEFN(3) ++DEFN(4) ++DEFN(5) ++DEFN(17) ++DEFN(120) ++ + #define TEST_FUNCTION mpfr_compound2 + #define test_generic test_generic_compound2 + #include "tgeneric.c" +@@ -258,17 +503,55 @@ + #define test_generic test_generic_compound3 + #include "tgeneric.c" + ++#define TEST_FUNCTION mpfr_compound4 ++#define test_generic test_generic_compound4 ++#include "tgeneric.c" ++ ++#define TEST_FUNCTION mpfr_compound5 ++#define test_generic test_generic_compound5 ++#include "tgeneric.c" ++ ++#define TEST_FUNCTION mpfr_compound17 ++#define test_generic test_generic_compound17 ++#include "tgeneric.c" ++ ++#define TEST_FUNCTION mpfr_compound120 ++#define test_generic test_generic_compound120 ++#include "tgeneric.c" ++ + int + main (void) + { + tests_start_mpfr (); + + check_ieee754 (); ++ bug_20230206 (); ++ bug_20230211 (); ++ bug_20230517 (); + + test_generic_si (MPFR_PREC_MIN, 100, 100); + + test_generic_compound2 (MPFR_PREC_MIN, 100, 100); + test_generic_compound3 (MPFR_PREC_MIN, 100, 100); ++ test_generic_compound4 (MPFR_PREC_MIN, 100, 100); ++ test_generic_compound5 (MPFR_PREC_MIN, 100, 100); ++ test_generic_compound17 (MPFR_PREC_MIN, 100, 100); ++ test_generic_compound120 (MPFR_PREC_MIN, 100, 100); ++ ++ /* Note: For small n, we need a psup high enough to avoid too many ++ "f exact while f^(-1) inexact" occurrences in bad_cases(). */ ++ bad_cases (mpfr_compound2, inv_compound2, "mpfr_compound2", ++ 0, -256, 255, 4, 128, 240, 40); ++ bad_cases (mpfr_compound3, inv_compound3, "mpfr_compound3", ++ 0, -256, 255, 4, 128, 120, 40); ++ bad_cases (mpfr_compound4, inv_compound4, "mpfr_compound4", ++ 0, -256, 255, 4, 128, 80, 40); ++ bad_cases (mpfr_compound5, inv_compound5, "mpfr_compound5", ++ 0, -256, 255, 4, 128, 80, 40); ++ bad_cases (mpfr_compound17, inv_compound17, "mpfr_compound17", ++ 0, -256, 255, 4, 128, 80, 40); ++ bad_cases (mpfr_compound120, inv_compound120, "mpfr_compound120", ++ 0, -256, 255, 4, 128, 80, 40); + + tests_end_mpfr (); + return 0; +diff -Naurd mpfr-4.2.0-a/tests/tests.c mpfr-4.2.0-b/tests/tests.c +--- mpfr-4.2.0-a/tests/tests.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tests.c 2023-05-17 17:17:28.588360213 +0000 +@@ -1086,10 +1086,9 @@ + } + if (inex_inv) + { +- printf ("bad_cases: f exact while f^(-1) inexact,\n" +- "due to a poor choice of the parameters.\n"); +- exit (1); +- /* alternatively, goto next_i */ ++ if (dbg) ++ printf ("bad_cases: f exact while f^(-1) inexact\n"); ++ goto does_not_match; + } + inex = 0; + break; +@@ -1112,6 +1111,10 @@ + if (mpfr_nanflag_p () || mpfr_overflow_p () || mpfr_underflow_p () + || ! mpfr_equal_p (z, y)) + { ++ /* This may occur when psup is not large enough: evaluating ++ x = (f^(-1))(y) then z = f(x) may not give back y if the ++ precision of x is too small. */ ++ does_not_match: + if (dbg) + { + printf ("bad_cases: inverse doesn't match for %s\ny = ", +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-05-17 17:19:35.484201703 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-05-17 17:19:35.596201603 +0000 +@@ -0,0 +1 @@ ++printf_large_prec_for_g +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-05-17 17:17:28.600360192 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-05-17 17:19:35.596201603 +0000 +@@ -1 +1 @@ +-4.2.0-p8 ++4.2.0-p9 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-05-17 17:17:28.596360199 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-05-17 17:19:35.592201606 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p8" ++#define MPFR_VERSION_STRING "4.2.0-p9" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/vasprintf.c mpfr-4.2.0-b/src/vasprintf.c +--- mpfr-4.2.0-a/src/vasprintf.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/vasprintf.c 2023-05-17 17:19:35.576201620 +0000 +@@ -1888,7 +1888,7 @@ + precision T-1. + where T is the threshold computed below and X is the exponent + that would be displayed with style 'e' and precision T-1. */ +- int threshold; ++ mpfr_intmax_t threshold; + mpfr_exp_t x, e, k; + struct decimal_info dec_info; + +@@ -1920,9 +1920,15 @@ + e = e <= 0 ? k : (e + 2) / 3 + (k <= 0 ? 0 : k); + MPFR_ASSERTD (e >= 1); + ++ if (e > threshold) ++ e = threshold; ++ ++ /* error if e does not fit in size_t (for mpfr_get_str) */ ++ if (e > (size_t) -1) ++ goto error; ++ + dec_info.str = mpfr_get_str (NULL, &dec_info.exp, 10, +- e < threshold ? e : threshold, +- p, spec.rnd_mode); ++ e, p, spec.rnd_mode); + register_string (np->sl, dec_info.str); + /* mpfr_get_str corresponds to a significand between 0.1 and 1, + whereas here we want a significand between 1 and 10. */ +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-05-17 17:17:28.600360192 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-05-17 17:19:35.592201606 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p8"; ++ return "4.2.0-p9"; + } +diff -Naurd mpfr-4.2.0-a/tests/tsprintf.c mpfr-4.2.0-b/tests/tsprintf.c +--- mpfr-4.2.0-a/tests/tsprintf.c 2023-04-17 21:17:39.784645229 +0000 ++++ mpfr-4.2.0-b/tests/tsprintf.c 2023-05-17 17:19:35.576201620 +0000 +@@ -1620,6 +1620,30 @@ + mpfr_clear (x); + } + ++/* On 2023-03-22, on a 64-bit Linux machine (thus with 32-bit int), ++ the case %.2147483648Rg yields an incorrect size computation and ++ MPFR wants to allocate 18446744071562070545 bytes. With assertion ++ checking (--enable-assert), one gets: ++ vasprintf.c:1908: MPFR assertion failed: threshold >= 1 ++ ++ This case should either succeed or fail as reaching an environmental limit ++ like with glibc (note that the precision does not fit in an int). ++*/ ++static void ++large_prec_for_g (void) ++{ ++ mpfr_t x; ++ int r; ++ ++ mpfr_init2 (x, 128); ++ mpfr_set_ui (x, 1, MPFR_RNDN); ++ r = mpfr_snprintf (NULL, 0, "%.2147483647Rg\n", x); ++ MPFR_ASSERTN (r == 2); ++ r = mpfr_snprintf (NULL, 0, "%.2147483648Rg\n", x); ++ MPFR_ASSERTN (r == 2 || r < 0); ++ mpfr_clear (x); ++} ++ + #if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE) + + /* The following tests should be equivalent to those from test_locale() +@@ -1793,6 +1817,7 @@ + percent_n (); + mixed (); + check_length_overflow (); ++ large_prec_for_g (); + test_locale (); + + if (getenv ("MPFR_CHECK_LIBC_PRINTF")) diff --git a/src/patches/wavemon-0.9.4-force-netlink-include-path.patch b/src/patches/wavemon-0.9.4-force-netlink-include-path.patch new file mode 100644 index 000000000..5004e567f --- /dev/null +++ b/src/patches/wavemon-0.9.4-force-netlink-include-path.patch @@ -0,0 +1,11 @@ +--- wavemon-0.9.4/Makefile.in.orig 2021-09-18 02:25:37.000000000 +0200 ++++ wavemon-0.9.4/Makefile.in 2023-05-19 23:45:50.170559365 +0200 +@@ -9,7 +9,7 @@ + install-suid-root: exec_perms = 4755 + + CC ?= @CC@ +-CFLAGS ?= @CFLAGS@ @LIBNL3_CLI_CFLAGS@ ++CFLAGS = @CFLAGS@ @LIBNL3_CLI_CFLAGS@ + CPPFLAGS ?= @CPPFLAGS@ + LDFLAGS ?= @LDFLAGS@ + DEFS ?= @DEFS@
hooks/post-receive -- IPFire 2.x development tree