Skip to content

Releases: ClusterLabs/libqb

v1.9.1 (2.0 release candidate)

18 Mar 11:36
93f9975
Compare
Choose a tag to compare
Pre-release

This is a release candidate for v2.0 of libqb.

There are a number of important changes here.

  1. The soname has been bumped up to 100 to avoid any problems if we need to do any extra releases of libqb 1
  2. doxygen2man has been included (imported from knet) so it can be used in other cluster projects. It's not currently used in libqb but I anticipate it will be.

As always please use the signed tarballs below.

The shortlog is:
Chrissie Caulfield (3):
list: fix list handling for gcc10 (#383)
list: #include <stddef.h> in qblist.h (#384)
trie: Don't assume that chars are unsigned < 126 (#386)

Fabio M. Di Nitto (3):
[build] fix configure.ac in release tarball
[build] chown the right file
Doxygen2man (#388)

Ferenc Wágner (2):
Errors are represented as negative values
Allow group access to the IPC directory

Jan Friesse (1):
qblist: Retype ptr in qb_list_entry to char* (#385)

Jan Pokorný (2):
build: bump version for inter-release "plain repo" generated tarballs
build: allow for possible v1 branch continuity by generous SONAME offset

Jonas Witschel (1):
Set correct ownership if qb_ipcs_connection_auth_set() has been used

v1.9.0 (2.0 release candidate)

12 Dec 16:35
Compare
Choose a tag to compare
Pre-release

This is a release candidate for v2.0 of libqb.

There are a number of new features:

  • high resolution logging (millisecond timestamps)
  • systemd journal logging
  • re-opening of log files under program control

and many bug fixes.

I've also removed the linker shenanigans that caused so much trouble with compatibility in the past, which is the main reason for making this 2.0.0 rather than 1.0.6

Chrissie Caulfield (27):
tests: Improve test isolation (#298)
test: Fix 'make distcheck' (#303)
ipc_shm: Don't truncate SHM files of an active server (#307)
Allow customisable log line length (#292)
log: Use RTLD_NOOPEN when checking symbols (#310)
UPDATED: doc (ABI comparison) and various other fixes (#324)
logging: Remove linker 'magic' and just use statics for logging callsites (#322)
log: Add option to re-open a log file (#326)
log: Add configure-time option to use systemd journal instead of syslog (#327)
Add the option of hi-res (millisecond) timestamps (#329)
log: Remove more dead code from linker callsites (#331)
tests: Shorted deadlock test names (#372)
make: Remove splint tests (#374)
skiplist: fix use-after-free in the skiplist traversal
skiplist: Fix previous skiplist fix
tests: allow blackbox-segfault.sh to run out-of-tree
ipc: use O_EXCL on SHM files, and randomize the names
ipc: fixes
ipc: use O_EXCL when opening IPC files
ipc: Use mkdtemp for more secure IPC files
ipc: Use mkdtemp for more secure IPC files
version: update version-info for 1.0.4 release
version: bump soname for 1.0.5 release
ipc: fix force-filesystem-sockets
tests: Speed up IPC tests, especially on FreeBSD
ipc: Remove kqueue EOF log message
lib: Fix some minor warnings from newer compilers

Daniel Black (4):
tests: blackbox-segfault test - remove residual core files
CI: travis: show logs of test failures
build: split hack for splint to work on non-x86 architectures
build: dpkg-architecture on trusty (cf. Travis CI) uses -q{NAME}

Fabio M. Di Nitto (8):
tests: use RUNPATH instead of RPATH consistently (#309)
[build] fix supported compiler warning detection (#330)
[test-rpm] build test binaries by default
[tests] export SOCKETDIR from tests/Makefile.am
[tests] allow installation of test suite
[tests] enable building / shipping of libqb-tests.rpm
[tests] first pass at fixing test execution
[build] add --with-sanitizers= option for sanitizer builds (#366)

Ferenc Wágner (8):
Fix spelling: plaform -> platform
Fix garbled Doxygen markup
Errors are represented as negative values
Allow group access to the IPC directory
Make it impossible to truncate or overflow the connection description
Let remote_tempdir() assume a NUL-terminated name
doc: qbarray.h: remove stray asterisk and parentheses
doc: qbarray: reword comment about index partitioning

Jan Friesse (2):
ipc: Fix named socket unlink on FreeBSD
ipc: Always initialize response struct

Jan Pokorný (15):
build: fix configure script neglecting, re-enable out-of-tree builds
build: configure: fix non-portable '\s' and '//{q}' in sed expression
build: allow for being consumed in a (non-endorsed) form of snapshots
build: configure: fix "snapshot consumption" feature on FreeBSD
tests: ipc: avoid problems when UNIX_PATH_MAX (108) limits is hit
tests: ipc: speed the suite up with avoiding expendable sleep(3)s
tests: ipc: allow for easier tests debugging by discerning PIDs/roles
tests: ipc: refactor/split test_ipc_dispatch part into client_dispatch
tests: ipc: check deadlock-like situation due to mixing priorities
IPC: server: avoid temporary channel priority loss, up to deadlock-worth
IPC: server: fix debug message wrt. what actually went wrong
doc: qbloop.h: document pros/cons of using built-in event loop impl
CI: travis: add (redundant for now, but...) libglib2.0-dev prerequisite
tests: ipc: fix the no-GLib conditionalizing
ringbuffer: fix mistaken errno handling around _rb_chunk_reclaim

Ken Gaillot (2):
log: Set errno when qb_log_target_alloc() fails
array,log: Never set errno to a negative value

Yusuke Iida (1):
configure: Fixed the problem that librt was explicitly needed in RHEL 6 (#328)

wferi (2):
Fix comment typo (#296)
Add Pthreads (and possibly other) flags to the pkg-config file (#332)

v1.0.5

25 Apr 08:38
Compare
Choose a tag to compare

This is a regression fix to 1.0.4

Huge thanks to Ferenc Wágner [email protected] for this

v1.0.4

15 Apr 09:15
Compare
Choose a tag to compare

DO NOT USE! fixes will be available as soon as possible.

This is a security release to 1.0.3. it is backwards compatible with that version.

  • ipc: use O_EXCL when opening IPC files
    
  • ipc: Use mkdtemp for more secure IPC files
    

v1.0.3

21 Dec 14:33
28dff09
Compare
Choose a tag to compare

This is mainly a bug-fix release to 1.0.2

Christine Caulfield (6):
tests: Fix signal handling in check_ipc.c
test: Disable test_max_dgram_size() test as it often breaks on CI
sign tarballs
config: Fix check for fdatasync
tests: make qb logging under check always dispose the memory
warnings cleanup: fix initialiser warning on RHEL7

Jan Pokorný (35):
Fix typos: in{ -> s}tance, d{e -> i}stinguished
Low: loop: don't bring runtime down for a trivial API misuse
Fix typo: repeat{ivi -> ed}ly
build: release.mk: simplify/generalize GPG signing rule
build: release.mk: fix no-release conflict (implied-required version)
build: release.mk: move soft guard for no GPG key up the supply chain
build: release.mk: simplify the default goal, declare .PHONY targets
build: release.mk: reflect current release publishing practice
Doc tweaking (#261)
Low hanging bits (#264)
Typo fix + qb blackbox(8) tweaks and extension + gitignore follow-up (#262)
log: use fdatasync instead of fsync where possible (#263)
maint: make -devel package dependency on the main package arch-qualified
Med: qblog.h: better explanation + behaviour of QB_LOG_INIT_DATA
build: configure: check section boundary symbols present in the test
tests: new sort of tests dubbed "functional", cover linker vs. logging
tests: add a script to generate callsite-heavy logging client...
Med: add extra run-time (client, libqb) checks that logging will work
High: bare fix for libqb logging not working with ld.bfd/binutils 2.29+
Low: fix internal object symbol's leak & expose run-time lib version
doc: qblog.h: syslog rarely appropriate for ordinary programs
doc: qblog.h: further logging setup related tweaks
build: release.mk: deal with trailing whitespace-to-comment-delimiter
warnings cleanup: log: Wextra -> Wimplicit-fallthrough (GCC7+)
warnings cleanup: Wshift-overflow: trigger arithmetic conv. to unsigned
maint: replace 0xffffffff constants with UNIT32_MAX
warnings cleanup: hdb+loop_timerlist: Wsign-compare: (canary?) variables
maint: array: avoid magic constants, expose some in the API
warnings cleanup: Wsign-compare: array: int32_t -> size_t
warnings cleanup: Wsign-compare: hdb: uint32_t <-> int32_t
warnings cleanup: Wsign-compare: log_format: int32_t -> size_t
warnings cleanup: Wformat: sign-correct PRIu32 specifiers as appropriate
warnings cleanup: Wunused-function: leave the test commented out
warnings cleanup: give up on some warning classes for now
maint: fix "make maintainer-clean" not working in tests/functional

Kazunori INOUE (1):
configure: define AS_VAR_COPY (#267)

Michael Jones (2):
Adds additional warnings
Adds no-format-nonliteral

jonesmz (1):
Point the link to the Linux kernel coding style document to the right place (#256)

wferi (2):
Fix spelling: optvat -> optval (#270)
configure: bail out early if POSIX threads support is not detected (#272)

yann-morin-1998 (1):
configure: fix CLOCK_MONOTONIC check for cross-compilation (#269)

Please used the signed .tar.gz or .tar.xz files with the version number in rather than the github-generated "Source Code" ones.

The documentation at github.io still shows 1.0.2. I'll get this fixed in the new year as that build is still broken.

v1.0.2

19 May 14:35
Compare
Choose a tag to compare

This is mainly a bug-fix release to 1.0.1. There is one new feature added and that is the option to use filesystem sockets (as opposed to the more usual abstract sockets) on Linux.

  • CI: make travis watch for the issue #234
  • CI: travis: fix dh -> du + add "lsblk -f" diagnostics
  • tests: better diagnose test_max_dgram_size test failures
  • Fix typos: synchonization -> synchronization, paramaters -> parameters
  • configure: help string cleanup
  • configure: LTLIBOBJS is also a Make variable
  • configure: restrict -ldl to where it's actually needed
  • configure: restrict pthreads to where it's actually needed
  • configure: restrict socket lib to where it's actually needed
  • configure: restrict -nsl lib to where it's actually needed
  • build: drop allegedly no longer intrusive syslog-tests opt-in switch
  • CI: travis: fix du -> df and capture it also directly from test
  • ringbuffer: Return error from peek if RB is corrupted.
  • tests: Fix qb_rb_chunk_peek test so it's consistent with qb_rb_read
  • loop: don't override external signal handlers
  • loop: Also set signals changed in qb_loop_signal_mod() back to SIG_DFL
  • doc: clarify thread-safety (or not) in IPC doc
  • test: Fix random number generation in IPC tests
  • Allow Linux to use filesystem sockets
  • memleak: ipc_socket: properly dispose local-scoped strndup values
  • memleak: ipc_socket: properly dispose inter-function strdup values
  • build: follow-up on introducing custom m4 macros
  • build: Require c99 language support or newer (#251)

Please used the signed .tar.gz or .tar.xz files with the version number in rather than the github-generated "Source Code" ones.

v1.0.1

24 Nov 10:07
Compare
Choose a tag to compare

This is a bugfix release to 1.0

Low: ipc_shm: fix superfluous NULL check
log: Don't overwrite valid tags
Low: further avoid magic in qblog.h by using named constants
Low: log: check for appropriate space when serializing a char
Low: sanitize import of <qb/qbarray.h> symbols
Low: sanitize import of <poll.h> symbols
Low: further sanitize qbipc[cs].h public headers wrt. includes
Med: log_thread: logt_wthread_lock is vital for logging thread
Low: unix: new qb_sys_unlink_or_truncate{,_at} helpers
log: Add missing z,j, & t types to the logger
Med: rb: use new qb_rb_close_helper able to resort to file truncating
Low: log: check for appropriate space when serializing a char
API: introduce alternative, header-based versioning
API: header-based versioning: s/PATCH/MICRO
Low: explain mysterious lines in a public header (qblog.h)
tests: refactor test case defs using versatile add_tcase macro
tests: SIGSTOP cannot be caught, blocked, or ignored
defs: add wrappers over preprocessor operators
build: be more restrictive about QB_HAVE_ATTRIBUTE_SECTION
Add some Hurd support
build: use latest git-version-gen from gnulib (rev. 6118065)
build: persuade git-version-gen vMAJOR.MINOR tags just miss .0
tests: ensure verbose output on failure w/ more recent automake
tests: make clang-friendly (avoid using run-time VLAs)
CI: make travis use also clang compiler (for good measure)
low:fixed:Spelling error of failure in qbhdb.h
Fix typo: qblog.h: q{g -> b}_log_filter_ctl
docs: qbdefs.h: description must directly follow @file
maint: qb-blackbox man page should accompany the binary
Build: configure: do not check for unused "sched" functions
Maint: typo + unused functions checked in configure
tests: resources: check for proper names of leftover processes
doc: elaborate more on thread safety as it's not so pure
log: Remove check for HAVE_SCHED_GET_PRIORITY_MAX
tests: start stdlib failures injection effort with unlink{,at} + test
build: ensure check_SCRIPTS are distributed
build: ensure debug make flags are not derived when unsuitable
build: allow for git -> automatic COPR builds integration
doc: README: add a status badge+link for the COPR builds

v1.0

01 Apr 12:51
Compare
Choose a tag to compare

This is the 1.0 release of libqb. It is identical to 1.0rc4 but with the doxygen generation fixed.

v1.0rc4 Release Candidate

17 Mar 16:09
Compare
Choose a tag to compare
Pre-release

This is a bugfix release and a potential 1.0 candidate.

There are no actual code changes in this release, most of the patches are to the build system. Thanks to Jan Pokorný for, er, all of them.
I've bumped the library soname to 0.18.0 which should really have happened last time.

Changes from 1.0rc3

  • build: fix tests/_syslog_override.h not being distributed
  • build: enable syslog tests when configuring in spec
  • build: do not install syslog_override for the RPM packaging
  • build: update library soname to 0.18.0
  • build: do not try to second-guess "distdir" Automake variable
  • build: switch to XZ tarball format for {,s}rpm packaging
  • CI: make sure RPM can be built all the time
  • Generating the man pages definitely doesn't depend on existence of
    (possibly generated) header files that we omit anyway.
  • build: drop extra qbconfig.h rule for auto_check_header self-test
  • build: extra clean-local rule instead of overriding clean-generic
  • build: docs: {dependent -> public}_headers + more robust obtaining
  • build: tests: grab "public_headers" akin to docs precedent
  • build: fix preposterous usage of $(AM_V_GEN)
  • build: tests: add intermediate check-headers target
  • CI: "make check" already included in "make distcheck"
  • build: fix out-of-tree build broken with 0b04ed5 (#184)
  • docs: enhance qb_log_ctl* description + fix doxygen warning
  • docs: apply "doxygen -u" on {html,man}.dox.in, fix deprecations
  • docs: {html,man}.dox.in: strip options for unused outputs
  • docs: {html,man}.dox.in: unify where reasonable
  • docs: make README.markdown always point to "CURRENT" docs
  • build: reorder LINT_FLAGS in a more logical way
  • build: make the code splint-friendly where not already
  • build: better support for splint checker
  • build: make splint check tolerant of existing defects

v1.0rc3 Release Candidate

25 Feb 10:45
Compare
Choose a tag to compare
Pre-release

This is a bugfix release and a potential 1.0 candidate.
There is one extra feature included here - the facility to change the syslog identifier at run-time.

Changes from 1.0rc2

  • Feature: allow changing the identifier for syslog (+tests)
  • ipc: Set send and receive buffer sizes
  • ipc: Set buffer size used by ipcs service
  • ipc: Return -errno when getsockopt/setsockopt fails
  • example: fix simplelog usage message
  • log: defined value as an index-pointer after static slots
  • log: convert log target defined values into enum values
  • log: better (fixed) documentation for funcs returning "slot" index
  • log: refactor static target slots state initialization
  • log: convert few more instances to use enum qb_log_target_slot
  • log: qblog.h unify descriptions before the code examples
  • CI: Multiple fixes
  • doc: Fix typos and reword several parts to be clearer
  • build: misc spec file cleanups
  • build: Add gcc pragmas for printf formats
  • build: grab "dependent_headers" from respective Makefile.am
  • build: header-based man pages: dependent_headers - blacklist
  • build: header-based man pages: include also qbdefs.h+qbrb.h
  • build: GCC < 4.6 does not support diagnostic push/pop pragmas
  • build: fix man3 pages not installed