Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package booth for openSUSE:Factory checked 
in at 2023-05-25 23:52:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/booth (Old)
 and      /work/SRC/openSUSE:Factory/.booth.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "booth"

Thu May 25 23:52:43 2023 rev:51 rq:1089002 version:1.0+20221117.9d4029a

Changes:
--------
--- /work/SRC/openSUSE:Factory/booth/booth.changes      2022-09-13 
15:11:35.393014362 +0200
+++ /work/SRC/openSUSE:Factory/.booth.new.1533/booth.changes    2023-05-25 
23:52:55.387747094 +0200
@@ -1,0 +2,15 @@
+Thu Mar 16 14:30:15 UTC 2023 - vark...@suse.com
+
+- Update to version 1.0+20221117.9d4029a:
+  * man: Add generated html files into gitignore
+  * man: remove literal paragraph format from boothd.8
+  * man: Remove italic bold formatting
+  * man: Do not format __defaults__
+  * man: Indent peers counters
+  * man: Move debug description to better place
+  * test: Add test for unknown/unexpected keyword
+  * config: Include protocol in error message
+  * config: Include keyword in error message
+  * unit file: Remove Alias directive
+
+-------------------------------------------------------------------

Old:
----
  booth-1.0+20220815.f40c2d5.tar.bz2

New:
----
  booth-1.0+20221117.9d4029a.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ booth.spec ++++++
--- /var/tmp/diff_new_pack.tgsc4V/_old  2023-05-25 23:52:55.831749700 +0200
+++ /var/tmp/diff_new_pack.tgsc4V/_new  2023-05-25 23:52:55.835749723 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package booth
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -29,7 +29,7 @@
 %define _fwdefdir %{_prefix}/lib/firewalld/services
 
 Name:           booth
-Version:        1.0+20220815.f40c2d5
+Version:        1.0+20221117.9d4029a
 Release:        0
 Summary:        Ticket Manager for Multi-site Clusters
 License:        GPL-2.0-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.tgsc4V/_old  2023-05-25 23:52:55.879749982 +0200
+++ /var/tmp/diff_new_pack.tgsc4V/_new  2023-05-25 23:52:55.883750005 +0200
@@ -3,6 +3,6 @@
             <param name="url">git://github.com/ClusterLabs/booth.git</param>
           <param 
name="changesrevision">da79b8ba28ad4837a0fee13e5f8fb6f89fe0e24c</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/ClusterLabs/booth.git</param>
-              <param 
name="changesrevision">86f060980f1f59c3885dfdb3b17866f6fb77d6ad</param></service></servicedata>
+              <param 
name="changesrevision">f30b811c745d441e7bd8856a4d18279164784dfb</param></service></servicedata>
 (No newline at EOF)
 

++++++ booth-1.0+20220815.f40c2d5.tar.bz2 -> booth-1.0+20221117.9d4029a.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20220815.f40c2d5/.gitignore 
new/booth-1.0+20221117.9d4029a/.gitignore
--- old/booth-1.0+20220815.f40c2d5/.gitignore   2022-08-15 20:55:38.000000000 
+0200
+++ new/booth-1.0+20221117.9d4029a/.gitignore   2022-11-17 00:04:13.000000000 
+0100
@@ -23,6 +23,7 @@
 
 conf/booth*.service
 docs/*.8
+docs/*.8.html
 script/service-runnable
 script/unit-test.py
 src/b_config.h.in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20220815.f40c2d5/conf/bo...@.service.in 
new/booth-1.0+20221117.9d4029a/conf/bo...@.service.in
--- old/booth-1.0+20220815.f40c2d5/conf/bo...@.service.in       2022-08-15 
20:55:38.000000000 +0200
+++ new/booth-1.0+20221117.9d4029a/conf/bo...@.service.in       2022-11-17 
00:04:13.000000000 +0100
@@ -8,7 +8,6 @@
 Conflicts=pacemaker.service
 
 [Install]
-Alias=boothd
 WantedBy=multi-user.target
 
 [Service]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20220815.f40c2d5/docs/booth-keygen.8.txt 
new/booth-1.0+20221117.9d4029a/docs/booth-keygen.8.txt
--- old/booth-1.0+20220815.f40c2d5/docs/booth-keygen.8.txt      2022-08-15 
20:55:38.000000000 +0200
+++ new/booth-1.0+20221117.9d4029a/docs/booth-keygen.8.txt      2022-11-17 
00:04:13.000000000 +0100
@@ -22,7 +22,7 @@
 PARAMETERS
 ----------
 
-*'auth-file'*::
+'auth-file'::
        The file to contain the generated key. Defaults to
        '/etc/booth/authkey'. Use absolute paths.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20220815.f40c2d5/docs/boothd.8.txt 
new/booth-1.0+20221117.9d4029a/docs/boothd.8.txt
--- old/booth-1.0+20220815.f40c2d5/docs/boothd.8.txt    2022-08-15 
20:55:38.000000000 +0200
+++ new/booth-1.0+20221117.9d4029a/docs/boothd.8.txt    2022-11-17 
00:04:13.000000000 +0100
@@ -66,9 +66,9 @@
 *-s*::
        Site address or name.
 +
-       The special value 'other' can be used to specify the other
-       site. Obviously, in that case, the booth configuration must
-       have exactly two sites defined.
+The special value 'other' can be used to specify the other
+site. Obviously, in that case, the booth configuration must
+have exactly two sites defined.
 
 *-F*::
        'immediate grant': Don't wait for unreachable sites to
@@ -78,10 +78,10 @@
        which is currently granted. See the 'Manual tickets' section
        below for more details.
 +
-       This option may be DANGEROUS. It makes booth grant the ticket
-       even though it cannot ascertain that unreachable sites don't
-       hold the same ticket. It is up to the user to make sure that
-       unreachable sites don't have this ticket as granted.
+This option may be DANGEROUS. It makes booth grant the ticket
+even though it cannot ascertain that unreachable sites don't
+hold the same ticket. It is up to the user to make sure that
+unreachable sites don't have this ticket as granted.
 
 *-w*::
        'wait for the request outcome': The client waits for the
@@ -119,13 +119,13 @@
 argument determines the mode of operation.
 
 
-*'daemon'*::
+'daemon'::
        Tells 'boothd' to serve a site. The locally configured interfaces are
        searched for an IP address that is defined in the configuration.
        booth then runs in either /arbitrator/ or /site/ mode.
 
 
-*'client'*::
+'client'::
        Booth clients can list the ticket information (see also 'crm_ticket 
-L'),
        and revoke or grant tickets to a site.
 +
@@ -147,13 +147,13 @@
 Use '-s' to direct client to connect to a different site.
 
 
-*'status'*::
+'status'::
        'boothd' looks for the (locked) PID file and the UDP socket, prints
        some output to stdout (for use in shell scripts) and returns
        an OCF-compatible return code.
        With '-D', a human-readable message is printed to STDERR as well.
 
-*'peers'*::
+'peers'::
        List the other 'boothd' servers we know about.
 +
 In addition to the type, name (IP address), and the last time the
@@ -163,22 +163,22 @@
 packets. The first counter is the total number of packets and
 descriptions of the other counters follows:
 
-'resends'::
+'resends';;
        Packets which had to be resent because the recipient didn't
        acknowledge a message. This usually means that either the
        message or the acknowledgement got lost. The number of
        resends usually reflect the network reliability.
 
-'error'::
+'error';;
        Packets which either couldn't be sent, got truncated, or were
        badly formed. Should be zero.
 
-'invalid'::
+'invalid';;
        These packets contain either invalid or non-existing ticket
        name or refer to a non-existing ticket leader. Should be
        zero.
 
-'authfail'::
+'authfail';;
        Packets which couldn't be authenticated. Should be zero.
 
 CONFIGURATION FILE
@@ -202,17 +202,17 @@
 
 The following key/value pairs are defined:
 
-*'port'*::
+'port'::
        The UDP/TCP port to use. Default is '9929'.
 
-*'transport'*::
+'transport'::
        The transport protocol to use for Raft exchanges.
        Currently only UDP is supported.
 +
 Clients use TCP to communicate with a daemon; Booth 
 will always bind and listen to both UDP and TCP ports.
 
-*'authfile'*::
+'authfile'::
        File containing the authentication key. The key can be either
        binary or text. If the latter, then both leading and trailing
        white space, including new lines, is ignored. This key is a
@@ -220,7 +220,7 @@
        servers. The key must be between 8 and 64 characters long and
        be readable only by the file owner.
 
-*'maxtimeskew'*::
+'maxtimeskew'::
        As protection against replay attacks, packets contain
        generation timestamps. Such a timestamp is not allowed to be
        too old. Just how old can be specified with this parameter.
@@ -230,11 +230,16 @@
        parameter to a higher value. The time skew test is performed
        only in concert with authentication.
 
-*'site'*::
+'debug'::
+       Specifies the debug output level. Alternative to
+       command line argument. Effective only for 'daemon'
+       mode of operation.
+
+'site'::
        Defines a site Raft member with the given IP. Sites can
        acquire tickets. The sites' IP should be managed by the cluster.
 
-*'arbitrator'*::
+'arbitrator'::
        Defines an arbitrator Raft member with the given IP.
        Arbitrators help reach consensus in elections and cannot hold
        tickets.
@@ -242,31 +247,31 @@
 Booth needs at least three members for normal operation. Odd
 number of members provides more redundancy.
 
-*'site-user'*, *'site-group'*, *'arbitrator-user'*, *'arbitrator-group'*::
+'site-user', 'site-group', 'arbitrator-user', 'arbitrator-group'::
        These define the credentials 'boothd' will be running with.
 +
 On a (Pacemaker) site the booth process will have to call 'crm_ticket', so the 
 default is to use 'hacluster':'haclient'; for an arbitrator this user and 
group 
 might not exists, so there we default to 'nobody':'nobody'.
 
-*'ticket'*::
+'ticket'::
        Registers a ticket. Multiple tickets can be handled by single
        Booth instance.
 +
-Use the special ticket name '__defaults__' to modify the
-defaults. The '__defaults__' stanza must precede all the other
+Use the special ticket name `__defaults__` to modify the
+defaults. The `__defaults__` stanza must precede all the other
 ticket specifications.
 
 All times are in seconds.
 
-*'expire'*::
+'expire'::
        The lease time for a ticket. After that time the ticket can be 
        acquired by another site if the ticket holder is not
        reachable.
 +
 The default is '600'.
 
-*'acquire-after'*::
+'acquire-after'::
        Once a ticket is lost, wait this time in addition before
        acquiring the ticket.
 +
@@ -278,7 +283,7 @@
 +
 The default is '0'.
 
-*'renewal-freq'*::
+'renewal-freq'::
        Set the ticket renewal frequency period.
 +
 If the network reliability is often reduced over prolonged
@@ -289,14 +294,14 @@
 'renewal-freq' parameter is effectively also the local cluster
 monitoring interval.
 
-*'timeout'*::
+'timeout'::
        After that time 'booth' will re-send packets if there was an
        insufficient number of replies. This should be long enough to
        allow packets to reach other members.
 +
 The default is '5'.
 
-*'retries'*::
+'retries'::
        Defines how many times to retry sending packets before giving
        up waiting for acks from other members.
 +
@@ -304,18 +309,18 @@
 +
 Ticket renewals should allow for this number of retries. Hence,
 the total retry time must be shorter than the renewal time
-(either half the expire time or *'renewal-freq'*):
+(either half the expire time or 'renewal-freq'):
 
        timeout*(retries+1) < renewal
 
-*'weights'*::
+'weights'::
        A comma-separated list of integers that define the weight of individual 
        Raft members, in the same order as the 'site' and 'arbitrator' lines.
 +
 Default is '0' for all; this means that the order in the configuration 
 file defines priority for conflicting requests.
 
-*'before-acquire-handler'*::
+'before-acquire-handler'::
        If set, this parameter specifies either a file containing a
        program to be run or a directory where a number of programs
        can reside. They are invoked before 'boothd' tries to acquire
@@ -337,7 +342,7 @@
 The distributed 'service-runnable' script is an example which may
 be used to test whether a pacemaker resource can be started.
 
-*'attr-prereq'*::
+'attr-prereq'::
        Sites can have GEO attributes managed with the 'geostore(8)'
        program. Attributes are within ticket's scope and may be
        tested by 'boothd' for additional control of ticket failover
@@ -369,18 +374,13 @@
 Note that there can be no guarantee on whether an attribute value
 is up to date, i.e. if it actually reflects the current state.
 
-*'mode'*::
+'mode'::
        Specifies if the ticket is manual or automatic.
 +
 By default all tickets are automatic (that is, they are fully
 controlled by Raft algorithm). Assign the strings "manual" or
 "MANUAL" to define the ticket as manually controlled.
 
-*'debug'*::
-       Specifies the debug output level. Alternative to
-       command line argument. Effective only for 'daemon'
-       mode of operation.
-
 One example of a booth configuration file:
 
 -----------------------
@@ -470,19 +470,19 @@
 
 The following environment variables are exported to the handler:
 
-*'BOOTH_TICKET'::
+'BOOTH_TICKET'::
        The ticket name, as given in the configuration file. (See 'ticket' item 
above.)
 
-*'BOOTH_LOCAL'::
+'BOOTH_LOCAL'::
        The local site name, as defined in 'site'.
 
-*'BOOTH_CONF_PATH'::
+'BOOTH_CONF_PATH'::
        The path to the active configuration file.
 
-*'BOOTH_CONF_NAME'::
+'BOOTH_CONF_NAME'::
        The configuration name, as used by the '-c' commandline argument.
 
-*'BOOTH_TICKET_EXPIRES'::
+'BOOTH_TICKET_EXPIRES'::
        When the ticket expires (in seconds since 1.1.1970), or '0'.
 
 The handler is invoked with positional arguments specified after
@@ -491,14 +491,14 @@
 FILES
 -----
 
-*'/etc/booth/booth.conf'*::
+'/etc/booth/booth.conf'::
        The default configuration file name. See also the '-c' argument.
 
-*'/etc/booth/authkey'*::
+'/etc/booth/authkey'::
        There is no default, but this is a typical location for the
        shared secret (authentication key).
 
-*'/var/run/booth/'*::
+'/var/run/booth/'::
        Directory that holds PID/lock files. See also the 'status' command.
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20220815.f40c2d5/docs/geostore.8.txt 
new/booth-1.0+20221117.9d4029a/docs/geostore.8.txt
--- old/booth-1.0+20220815.f40c2d5/docs/geostore.8.txt  2022-08-15 
20:55:38.000000000 +0200
+++ new/booth-1.0+20221117.9d4029a/docs/geostore.8.txt  2022-11-17 
00:04:13.000000000 +0100
@@ -82,22 +82,22 @@
 COMMANDS
 --------
 
-*'set'*::
+'set'::
        Sets the attribute to the value.
 
 
-*'get'*::
+'get'::
        Get the attribute value and print it to 'stdout'. If the
        attribute doesn't exist, appropriate error message is printed
        to 'stderr'.
 
 
-*'delete'*::
+'delete'::
        Delete the attribute. If the attribute doesn't exist,
        appropriate error message is printed to 'stderr'.
 
 
-*'list'*::
+'list'::
        List all attributes and their values stored at the site.
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20220815.f40c2d5/src/config.c 
new/booth-1.0+20221117.9d4029a/src/config.c
--- old/booth-1.0+20220815.f40c2d5/src/config.c 2022-08-15 20:55:38.000000000 
+0200
+++ new/booth-1.0+20221117.9d4029a/src/config.c 2022-11-17 00:04:13.000000000 
+0100
@@ -541,6 +541,7 @@
 int read_config(const char *path, int type)
 {
        char line[1024];
+       char error_str_buf[1024];
        FILE *fp;
        char *s, *key, *val, *end_of_key;
        const char *error;
@@ -698,7 +699,9 @@
                        else if (strcasecmp(val, "SCTP") == 0)
                                booth_conf->proto = SCTP;
                        else {
-                               error = "invalid transport protocol";
+                               (void)snprintf(error_str_buf, 
sizeof(error_str_buf),
+                                   "invalid transport protocol \"%s\"", val);
+                               error = error_str_buf;
                                goto err;
                        }
                        got_transport = 1;
@@ -788,7 +791,9 @@
                 * we don't know to which ticket the key refers
                 */
                if (!current_tk) {
-                       error = "Unexpected keyword";
+                       (void)snprintf(error_str_buf, sizeof(error_str_buf),
+                           "Unexpected keyword \"%s\"", key);
+                       error = error_str_buf;
                        goto err;
                }
 
@@ -868,7 +873,9 @@
                        continue;
                }
 
-               error = "Unknown keyword";
+               (void)snprintf(error_str_buf, sizeof(error_str_buf),
+                   "Unknown keyword \"%s\"", key);
+               error = error_str_buf;
                goto err;
        }
        fclose(fp);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20220815.f40c2d5/test/servertests.py 
new/booth-1.0+20221117.9d4029a/test/servertests.py
--- old/booth-1.0+20220815.f40c2d5/test/servertests.py  2022-08-15 
20:55:38.000000000 +0200
+++ new/booth-1.0+20221117.9d4029a/test/servertests.py  2022-11-17 
00:04:13.000000000 +0100
@@ -110,7 +110,7 @@
         config = re.sub('transport=.+', 'transport=SNEAKERNET', 
self.typical_config)
         (pid, ret, stdout, stderr, runner) = \
             self.run_booth(config_text=config, expected_exitcode=1, 
expected_daemon=False)
-        self.assertRegexpMatches(stderr, 'invalid transport protocol')
+        self.assertRegexpMatches(stderr, 'invalid transport protocol 
"SNEAKERNET"')
 
     def test_missing_final_newline(self):
         config = re.sub('\n$', '', self.working_config)
@@ -147,3 +147,17 @@
         config = re.sub('#(.+147.+)', lambda m: m.group(1), 
self.working_config)
         self.run_booth(config_text=config,
                        expected_exitcode=None, expected_daemon=False)
+
+    def test_unknown_keyword(self):
+        # Test unexpected keyword before tickets definition
+        keyword='unknown-keyword'
+        config = re.sub('transport=', keyword + '=', self.typical_config)
+        (pid, ret, stdout, stderr, runner) = \
+            self.run_booth(config_text=config, expected_exitcode=1, 
expected_daemon=False)
+        self.assertRegexpMatches(stderr, 'Unexpected keyword "' + keyword + 
'"')
+
+        # Test unexpected keyword in tickets definition
+        config = re.sub('\n$', '\n' + keyword + '=value', self.typical_config)
+        (pid, ret, stdout, stderr, runner) = \
+            self.run_booth(config_text=config, expected_exitcode=1, 
expected_daemon=False)
+        self.assertRegexpMatches(stderr, 'Unknown keyword "' + keyword + '"')

Reply via email to