[ClusterLabs] Booth 1.1 is available at GitHub!

Jan Friesse jfriesse at redhat.com
Wed Oct 18 11:17:18 EDT 2023


I am pleased to announce the latest maintenance release of Booth 1.1 is 
available immediately from GitHub at 
https://github.com/ClusterLabs/booth/releases as booth-1.1.

Booth 1.1 has been released 7 long years after 1.0, so there are a huge 
number of changes and it is really hard to highlight the most important 
ones (and I would rather not even try). Also I guess most booth users 
are actually running a git version so most of the fixes are already in 
production.

Please keep in mind that this is the last release where very old 
versions of Python, Pacemaker, ... are supported. The next release will 
require at least Python 3.9, Pacemaker 2.1, ... Basically RHEL 8 was 
chosen as the oldest supported base. I hope virtually nobody will be 
affected by this decision (and if you are then patches are welcomed ;) ).

My plan is to do regular releases once, maybe twice a year (more if 
needed of course). Also I'm expecting 1.2 later this year to prepare 
Booth for changes in Pacemaker 3.0. So stay tuned!

Complete changelog for 1.1:

     Aleksei Burlakov (1):
           test: fix the delimiter in the here-string

     Bin Liu (2):
           low:fix:remove unnecessary return from unit-test.py
           typo fix: there is no %{S:2} defined in booth.spec

     Chris Kowalczyk (16):
           Build: create and set working directory
           Build: add correct permissions to the folders
           Config: handle hostnames in booth.conf file
           Change comment style and indentation
           Find the correct address of a local site
           Booth Daemon Arguments: disable foreground for D flag
           Booth Daemon Arguments: Added tests for DS and S flags
           Booth Daemon Arguments: Enable stderr for foregound mode
           Booth Daemon Arguments: Disable stderr for daemon mode
           Feature: add manual mode to booth tickets
           Fixed typo in help message
           Updates after review
           Updates after code review
           Handle multi-leader situation for manual tickets. Added 
manual tickets to Life Tests framework
           Refactoring after review comments
           Fix asciidoc build

     Dan Streetman (1):
           Don't lock all current and future memory if can't increase 
memlock rlimit

     Dejan Muhamedagic (14):
           Doc: update the before-acquire-handler description to match 
the new semantics
           Dev: extprog: rename prog to path (it can be a directory too)
           build: remove the old paxos update pre-script
           Feature: extprog: add capability to run a set of programs
           Medium: extprog: external tests timeout after renewal interval
           Medium: main: finally fix address matching
           Low: ticket: reset next state on ticket reset
           Low: extprog: fix pid test
           Dev: extprog: set progstate debug
           Low: attr: set time string to "" when time is not set
           Low: attr: add ticket name to warnings
           Medium: attr: fix wrong order for hash free functions
           Medium: extprog: fix race condition on ticket loss
           fix bashisms (use printf instead of echo)

     Fabio M. Di Nitto (14):
           build: use pkg-config way to detect and use pacemaker header 
files
           build: allow to override path to python without failing 
version checks
           build: fix make distcheck
           [build] ship booth.pc with basic booth build information for 
downstream packages to use
           configure: Simplify libqb detection when libqb is not 
installed in standard paths
           configure: detect and init pkg-config with proper macro
           configure: add BOOTH_PKG_CHECK_VAR macro to wrap PKG_CHECK_VAR
           configure: use resource-agents pkg-config info to determine 
ocfdir
           configure: use PKG_CONFIG to detect pacemaker user/group
           configure: drop unnecessary macro
           configure: drop dead code
           configure: move exec_prefix sanitizer closer to prefix
           configure: drop unnecessary check and define
           rpm: use new package name for pacemaker devel on opensuse

     Jan Friesse (64):
           test: Allow test running as a root
           test: Enlarge timeout for boothd exit
           test: Actively wait for lock file create/delete
           build: Make make distcheck with asciidoctor
           docs: Fix description of how to run python tests
           tests: Make test work for Debian systems
           main: Accept longer config and lock file names
           main: Delete lockfile when signal arrive too early
           build: Do not link with pcmk libraries
           pacemaker: Handle updated exit code of crm_ticket
           tests: Allow parallel running of tests
           build: Make generating of HTML man work
           build: Remove unneeded OS detection section
           build: Make sure tarball contains all needed files
           build: Delete cov directory on clean
           configure: Always let automake set python vars
           main: mkdir failure is not critical
           pacemaker: Express intention about logical or
           pacemaker: Change rv handling of pcmk_get_attr
           transport: setsockopt failures are not critical
           transport: Check fcntl return value
           build: Use git-version-gen
           build: Rework build of RPM
           build: Substitute asciidoc or asciidoctor for RPM
           build: Substitute glue dependency in RPM
           build: Substitute python dependency in RPM
           build: Substitute hauser and haclient in RPM
           build: Add option to enable tests during rpmbuild
           booth.spec: Add fedora compatibility provides
           build: Remove bashisms
           test: Add compatibility with iproute ss command
           configure: Make sure without-html_man works
           git-version-gen: Use fallback for git-archive
           build: Fix building of html docs with asciidoc
           boot.spec.in: Package html files when generated
           booth.spec: Change naming scheme for upgrades
           config: Remove deprecated net functions
           test: Enhance wait_for_lock_file
           main: Use only signal-safe functions
           handler: Use only signal-safe functions
           doc: Describe debug config file option
           Revert "Refactor: main: substitute is_auth_req macro"
           ticket: Fix compiler warning
           configure: Modernize configure.ac a bit
           unit file: Remove Alias directive
           config: Include keyword in error message
           config: Include protocol in error message
           test: Add test for unknown/unexpected keyword
           man: Move debug description to better place
           man: Indent peers counters
           man: Do not format __defaults__
           man: Remove italic bold formatting
           man: remove literal paragraph format from boothd.8
           man: Add generated html files into gitignore
           spec: Migrate to SPDX license
           main: Fix exit code on grant/revoke command error
           attr: Fix memory leak for list and get operation
           attr: Fix glib hash_table != NULL assert
           tests: Fix Python 3.12 warning
           build: Add gitlog-to-changelog
           build: Add release.mk
           build: Include icons in release tarballs
           build: Make distcheck work for non-root user
           Prepare 1.1

     Jan Pokorný (94):
           maint: fix the FSF address + 5x s/write the/write to the/
           maint: clarify GPLv2.1+ -> GPLv2+ in the license notices
           maint: licensing conformance follow-up (library->program)
           fixup: sanitize true-false logic for "daemonize"
           Low: drop new_election's dead code as SITE role already enforced
           maint: configure: drop useless AC_CHECK_LIB invocations
           maint: configure: --enable-resource-monitor no longer relevant
           maint: configure: nicely formatted help/summary screens
           build: s/CPPFLAGS/CFLAGS/ + use GLIB_LIB
           build: allow requesting no HTML man + use in spec
           build: add proper zlib build-time check + link flag + spec's BR
           maint: configure: drop some more useless definitions
           maint: spec: SPDX license notation only for SUSE
           maint: spec: drop redundant, unused %check scriptlet
           maint: spec: get rid of redundant %clean section
           maint: spec: use pkgconfig for glib-2.0
           Low: avoid using cl_log directly
           Low: apparently static function should be marked so
           Low: use unsigned int where suitable
           Low: const-cast char arrays where suitable
           Low: "char *" more string funcs friendly than unsigned variant
           Low: make (a defensive) use of known static buffer sizes
           Low: drop unused inline function
           Med: prevent possible truncation w/ invalid geoattrs in CIB
           test: fix failing test_a_few_trailing_whitespaces
           test: adapt to libqb-based logging with lowercased priorities
           test: booth cannot cope with <address>%<device> IPv6 addresses
           test: fix a typo in assertion violation message
           build: ensure expected behavior if --without-html_man not 
provided
           docs: licensing conformance follow-up (man pages)
           Med: make foreach_* macros use variable refs passed as arguments
           Low: read_config: unify jump labels (parsing: err, after: out)
           Low: read_config: close config file when no longer needed
           Med: format_peers: fix a memleak in case of buffer too small
           Low: do_status: avoid shadowing the file-scope static variable
           Low: do_status: first check for lock's fd from _lockfile
           Low: do_status: fix superfluous check for valid lock's fd
           Low: do_status: close lock file when no longer needed
           Low: list_ticket: space complexity depends just on tickets count
           Med: list_ticket: fix a memleak in case of buffer too small
           Med: get_local_id: denoopize dependent condition (signedness 
issue)
           High: read_client: sizeof(*struct_ptr) instead of 
sizeof(struct_ptr)
           Low: clarify key file read permissions requirement a bit
           Low: setup_tcp_listener: close socket when no longer needed
           Low: client_alloc: unify (and sanitize) malloc/realloc
           Low: add_site: drop a comment that should have been long gone
           Feature: offer alternatives to libraries from (cluster-)glue
           Feature: alternative logging provider: libqb
           Feature: alternative range2random provider: glib
           Feature: alternative "nametag" provider: libsystemd
           Feature: allow skipping "coredump nursing" phase
           Feature: alternative logger (in service-runnable script)
           maint: clarify GPLv2+ in the license notices from an earlier PR
           Refactor: main: substitute is_auth_req macro
           Med: main: initialize Libcrypt properly before the first use
           build: drop declared man pages from main Makefile
           build: configure: check for pacemaker/crm/services.h header
           build: configure: normalize spaces -> tabs
           build: configure: "libsystemd" also known as "libsystemd-daemon"
           CI: initial .travis.yml
           Refactor: mark no_leader properly as a constant pointer
           Refactor: attr.c: merge if-else series into the switch statement
           Refactor: main: remove superfluous includes
           Fix typo: enought -> enough
           Comment: add_site: explain why inet_pton is endianess-save
           Refactor: quasi-sort includes in transport.c
           Low: remove redundant check after find_site_by_id
           Feature: make log contain source address of unknown site
           maint: spec: fix booth-test containing undesired build sources
           CI: travis: workaround 127.0.1.1 not assigned with loopback
           maint: fix thinko in .gitignore introduced in 5a457ee
           maint: fix typos introduced in 4bb484a
           test: remove superfluous shebangs for import-only modules
           test: do not mix tabs with spaces in Python code
           test: make Python files supported _also_ with Python 3.3+
           build: parametrize Python invocations in the shebangs
           test: drop underqualified identifier in unittest's 2.6 compat 
"polyfill"
           test: drop/comment out superfluous imports
           test: avoid dangerous mutable/sticky default value
           test: unit-test.py: daemon will not stay in foreground with 
-D anymore
           Refactor: fix "strncpy may miss trailing null byte" warnings 
of GCC 8.1
           build: spec: get rid of redundant defattr
           build: spec: %check scriptlet actually BuildRequires python
           build: spec: -test subpackage actually Requires gdb and 
python-expect
           build: spec: add support/conditionalizing for Python 3
           maint: lsb: polish arbitrator's initscript, fix condrestart
           maint: test: polish live_test.sh
           maint: ocf + script: eliminate some false positives with 
ShellCheck
           docs: fix an oversight in Makefile.am, stop gitignoring a 
tracked file
           Med: attr: fix derefence of unspecified value pointer
           Low: main: fix hypothetical file path double traversal 
discrepancy
           Low: handler: fix spurious warning on alleged "fall-through" 
in switch
           docs: boothd.8: fix runaway formatting for what's config file 
snippet
           Test: *.py: superprivileged user can run the tests when opted in

     Joseph Herlant (3):
           Fix malformed man title
           Add support for asciidoctor for man pages and html docs
           Update Makefile.am to allow asciidoctor integration

     Kazunori INOUE (1):
           Low: conf: Add Restart option to booth-arbitrator.service

     Lars Ellenberg (1):
           fixup: add missing dirent.h include

     Nick Wang (1):
           Replace SuSEFirewall2 by firewalld.

     Valentin Vidic (5):
           Fix documentation wording
           Fix cleanup of service.in files
           Use pkg-config to configure libxml-2.0
           Fix gcc-10 warnings for packed struct members
           Fix gcc-10 warnings for multiple definition of pcmk_handler

     Valentin Vidić (1):
           Fix GCC-7 warning on buffer size

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this 
HUGE milestone.



More information about the Users mailing list