Skip to content

1.1

Compare
Choose a tag to compare
@jfriesse jfriesse released this 18 Oct 15:15
· 62 commits to main since this release

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.