Skip to content

Commit

Permalink
package/log4cxx: bump to version 1.3.1
Browse files Browse the repository at this point in the history
According to
https://logging.apache.org/log4cxx/1.3.1/changelog.html:

Release 1.3.1 - 2024-11-30
==========================

This is a minor bugfix release to fix issues found with 1.3.0.
Bug

- Properly prevent undefined behaviour when an appender is deleted without being closed [#431]
- Prevent abnormal termination on exit when using a static NDC/MDC variable [#426]
- Support for std::experimental::optional (in the standard library used by gcc 5.4) [#419]

Release 1.3.0 - 2024-10-21
==========================

Release 1.3.0 includes the following new features:

- Overhead reduction of upto 60% sending logging events to an appender
- Statistics on the AsyncAppender's queue length (in Log4cxx debug output)
- Fuzz tests along with Google OSS-Fuzz integration

The following issues have been addressed:

- MSYS2/MINGW build errors [#389]
- thread_local problems in MSYS2/MINGW [#394]
- A potential 'use after free' fault when using AsyncAppender [#397]

Release 1.2.0 - 2024-01-01
==========================

The following issues have been addressed:

- The locale external character encoding option reverting to US-ASCII [LOGCXX-483]
- A segfault during process exit when log4cxx::LogManager::shutdown is not called [#268] [#219]
- The cmake option to include a MultiprocessRollingFileAppender did not work
- Build failure in a MSYS2 environment
- Format settings (e.g. std::hex) were retained across LOG4CXX_XXXXX macro logging requests
- When the APR library was built without support for threads (APR_HAS_THREADS=0):
    the AsyncAppender and dynamically loaded configuration changes were not available
    a single nested/mapped diagnostic context (NDC/MDC) would be used and updated (without synchronization)
- On Windows, GetThreadDescription() called for each logging event when the thread name was empty [#321]

Release 1.2.0 includes the following new features:

- LOG4CXX_XXXX macros now support logging of QStrings directly
- log4cxx::hexdump function that returns a string of hexadecimal byte values
- Ability to remove a HierarchyEventListener [#233]
- Less string copying when sending a logging event to an appender
- Less frequent mutex contention when logging from multiple threads concurrently [#320]
- Allow thread information to be included in JSON formatted output
- Optional support for logging during process termination [#271]
- A cmake option to place Log4cxx functions in a different namespace [#277]
- Optionally use std::format in LOG4CXX_XXXX_FMT macros instead of fmt::format [#291]
- Support for per object enabling/disabling of logging requests (see log4cxx::LoggerInstancePtr)

Note: the LOG4CXX_CHARSET cmake option (external character encoding) default value has changed to utf-8

Within Buildroot, log4cxx has no reverse dependencies, and we tested
building it with gcc 7.x to verify compatibility with reasonably old
compilers.

This new version of log4cxx now needs wchar support, as several
multi-byte functions are now used since upstream commit
2569c6beac983e933574d001ec1601e569355c50 ("Implement a functional
'locale' character encoding (#252)").

A full test-pkg build was performed with this package update:
https://gitlab.com/tpetazzoni/buildroot/-/pipelines/1603576624.

Signed-off-by: Thomas Petazzoni <[email protected]>
Signed-off-by: Julien Olivain <[email protected]>
  • Loading branch information
tpetazzoni authored and jolivain committed Dec 27, 2024
1 parent 038c7df commit 342fefa
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 5 deletions.
5 changes: 3 additions & 2 deletions package/log4cxx/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ config BR2_PACKAGE_LOG4CXX
depends on !BR2_STATIC_LIBS
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_WCHAR # mbsinit
depends on BR2_USE_MMU # apr
depends on BR2_USE_WCHAR || BR2_TOOLCHAIN_GCC_AT_LEAST_7 # boost
depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_7 # boost-thread
Expand All @@ -21,9 +22,9 @@ config BR2_PACKAGE_LOG4CXX

https://logging.apache.org/log4cxx/

comment "log4cxx needs a toolchain w/ C++, threads, dynamic library"
comment "log4cxx needs a toolchain w/ C++, threads, dynamic library, wchar"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_STATIC_LIBS
BR2_STATIC_LIBS || !BR2_USE_WCHAR
depends on BR2_USE_MMU

comment "log4cxx needs a toolchain w/ wchar or gcc >= 7"
Expand Down
4 changes: 2 additions & 2 deletions package/log4cxx/log4cxx.hash
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# From https://www.apache.org/dist/logging/log4cxx/1.1.0/apache-log4cxx-1.1.0.tar.gz.sha512
sha512 66a66eab933a6afd0779e3f73f65afa4fb82481208b591fd7c7c86ded805f50abcd9cdf954bdb49e1e7f5198e6c1c4fff8a7e180ff5fff9491f1946e9ba6fe2b apache-log4cxx-1.1.0.tar.gz
# From https://downloads.apache.org/logging/log4cxx/1.3.1/apache-log4cxx-1.3.1.tar.gz.sha512
sha512 0956fd034fd1a98d2e48ed461578c1e85da02d176850a580195b6a60b959feaf402a2743cc84ccb5d467dd924ee46422b8a7b39d2be9ee131e4e275e65ba839c apache-log4cxx-1.3.1.tar.gz
# Locally computed
sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
2 changes: 1 addition & 1 deletion package/log4cxx/log4cxx.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
################################################################################

LOG4CXX_VERSION = 1.1.0
LOG4CXX_VERSION = 1.3.1
LOG4CXX_SITE = https://archive.apache.org/dist/logging/log4cxx/$(LOG4CXX_VERSION)
LOG4CXX_SOURCE = apache-log4cxx-$(LOG4CXX_VERSION).tar.gz
LOG4CXX_INSTALL_STAGING = YES
Expand Down

0 comments on commit 342fefa

Please sign in to comment.