[Git][java-team/zookeeper][master] 13 commits: Patch for glibc 2.43 ISO C23 const return types (Closes: #1128762)

Tony Mancill (@tmancill) gitlab at salsa.debian.org
Sun Mar 8 20:53:35 GMT 2026



Tony Mancill pushed to branch master at Debian Java Maintainers / zookeeper


Commits:
a59a154e by tony mancill at 2026-02-27T20:21:05-08:00
Patch for glibc 2.43 ISO C23 const return types (Closes: #1128762)

- - - - -
f5c15583 by tony mancill at 2026-02-27T20:21:14-08:00
Freshen years in debian/copyright

- - - - -
8b1a819b by tony mancill at 2026-02-27T20:34:11-08:00
Bump Standards-Version to 4.7.3

- - - - -
b81a2a9b by tony mancill at 2026-02-27T22:10:46-08:00
Install systemd unit file (Closes: #950386)

- - - - -
ace1eae2 by tony mancill at 2026-03-08T09:31:18-07:00
Add Pre-Depends on init-system-helpers:any to zookeeperd

- - - - -
c803cec1 by tony mancill at 2026-03-08T09:31:18-07:00
Add Documentation link to systemd unit

- - - - -
f2bc382a by tony mancill at 2026-03-08T09:31:18-07:00
Add Recommends on logback-java

- - - - -
e4d2dd5e by tony mancill at 2026-03-08T09:31:18-07:00
Enable jline support for zkCli.sh

- - - - -
bf91bea5 by tony mancill at 2026-03-08T09:31:18-07:00
Configure zookeeperd logging via logback

- - - - -
e4e53110 by tony mancill at 2026-03-08T13:37:56-07:00
Update zookeeper.NEWS

- - - - -
38975487 by tony mancill at 2026-03-08T13:37:56-07:00
Add instructions for starting the admin server

- - - - -
b2da7e41 by tony mancill at 2026-03-08T13:37:56-07:00
Install example logback.xml

- - - - -
5c4df50d by tony mancill at 2026-03-08T13:37:56-07:00
Prepare changelog for upload

- - - - -


11 changed files:

- debian/changelog
- debian/conf_example/environment
- debian/control
- debian/copyright
- + debian/patches/39-iso-c23-const.patch
- + debian/patches/40-default-zoocfg.patch
- debian/patches/series
- debian/rules
- debian/zookeeper.NEWS
- − debian/zookeeperd.preinst
- debian/zookeeperd.zookeeper.service


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,19 @@
+zookeeper (3.9.4-2) unstable; urgency=medium
+
+  * Patch for glibc 2.43 ISO C23 const return types (Closes: #1128762)
+  * Install systemd unit file (Closes: #950386, #1039434)
+  * Add Pre-Depends on init-system-helpers:any to zookeeperd
+  * Add Documentation link to systemd unit
+  * Configure zookeeperd logging via logback
+  * Add Recommends on logback-java
+  * Install example logback.xml in zookeeper.conf
+  * Enable jline support for zkCli.sh
+  * Bump Standards-Version to 4.7.3
+  * Update debian/NEWS
+  * Add instructions for starting the admin server
+
+ -- tony mancill <tmancill at debian.org>  Sun, 08 Mar 2026 13:21:26 -0700
+
 zookeeper (3.9.4-1) unstable; urgency=medium
 
   * New upstream version 3.9.4 (Closes: #1116497)


=====================================
debian/conf_example/environment
=====================================
@@ -10,4 +10,21 @@ JAVA_OPTS=""
 # line tools such as `zkCli.sh` and not for the actual server
 JAVA=/usr/bin/java
 
-CLASSPATH="/etc/zookeeper/conf:/usr/share/java/zookeeper.jar"
+# JARs for logging suport
+# Do not leave this unset as it is used by the systemd unit.
+# Set the value to /dev/null if for some reason you want to disable logging.
+LOGGING_JARS="/usr/share/java/logback-classic.jar:/usr/share/java/logback-core.jar"
+
+CLASSPATH="/etc/zookeeper/conf:/usr/share/java/zookeeper.jar:/usr/share/java/jline2.jar"
+
+
+##########################################
+# To enable the HTTP admin server:
+#  - install libjetty9-java
+#  - uncomment the updated CLASSPATH line below to add the Jetty servlet JARs to the CLASSPATH
+#  - update /etc/zookeeper/conf/zoo.cfg to admin.enableServer=true and configure as desired
+#  - restart Zookeeper
+##########################################
+
+#CLASSPATH="/etc/zookeeper/conf:/usr/share/java/zookeeper.jar:/usr/share/java/jline2.jar:/usr/share/java/jetty-server.jar:/usr/share/java/jetty-http.jar:/usr/share/java/jetty-util.jar:/usr/share/java/jetty-io.jar:/usr/share/java/jetty-servlet.jar:/usr/share/java/jetty-security.jar:/usr/share/java/jetty-util-ajax.jar:/usr/share/java/servlet-api.jar"
+


=====================================
debian/control
=====================================
@@ -1,6 +1,5 @@
 Source: zookeeper
 Section: java
-Priority: optional
 Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
 Uploaders: James Page <james.page at ubuntu.com>,
  tony mancill <tmancill at debian.org>
@@ -57,11 +56,10 @@ Build-Depends:
  python3-all-dev,
  python3-setuptools,
  debhelper-compat (= 13)
-Standards-Version: 4.7.2
+Standards-Version: 4.7.3
 Vcs-Git: https://salsa.debian.org/java-team/zookeeper.git
 Vcs-Browser: https://salsa.debian.org/java-team/zookeeper
 Homepage: https://zookeeper.apache.org
-Rules-Requires-Root: no
 
 Package: libzookeeper-java
 Architecture: all
@@ -86,6 +84,8 @@ Depends:
  default-jre,
  libzookeeper-java (= ${binary:Version}),
  ${misc:Depends}
+Recommends:
+ libjline2-java,
 Description: High-performance coordination service for distributed applications
  ZooKeeper is a centralized, reliable, service for maintaining configuration
  information, naming, providing distributed synchronization, and group
@@ -98,8 +98,9 @@ Description: High-performance coordination service for distributed applications
 
 Package: zookeeperd
 Architecture: all
-Pre-Depends: ${misc:Pre-Depends}
+Pre-Depends: ${misc:Pre-Depends}, init-system-helpers (>= 1.54~)
 Depends: zookeeper (= ${binary:Version}), ${misc:Depends}
+Recommends: logback-java
 Description: Init control scripts for zookeeper
  ZooKeeper is a centralized, reliable, service for maintaining configuration
  information, naming, providing distributed synchronization, and group


=====================================
debian/copyright
=====================================
@@ -69,8 +69,8 @@ License: Expat
 Files: debian/*
 Copyright: 2010 Thomas Koch <thomas.koch at ymc.ch>,
            2011 Canonical Ltd (http://www.canonical.com)
-           2015-2025 tony mancill <tmancill at debian.org>
-           2022-2025 Pierre Gruet <pgt at debian.org>
+           2015-2026 tony mancill <tmancill at debian.org>
+           2022-2026 Pierre Gruet <pgt at debian.org>
 License: Apache-2.0
 
 Files: debian/patches/01-add-jtoaster-to-zooinspector.patch


=====================================
debian/patches/39-iso-c23-const.patch
=====================================
@@ -0,0 +1,88 @@
+Description: Address FTBFS with glibc 2.43 due to ISO C23 const return types
+ There are probably cleaner ways to do this by modifying more of the logic
+ in cli.c.
+Bug-Debian: https://bugs.debian.org/1128762
+Forwarded: no
+Author: tony mancill <tmancill at debian.org>
+Last-Update: 2026-02-27
+
+--- a/zookeeper-client/zookeeper-client-c/src/cli.c
++++ b/zookeeper-client/zookeeper-client-c/src/cli.c
+@@ -494,24 +494,36 @@
+            }
+ 
+    } else if (startsWith(line, "set ")) {
++        char *copy = strdup(line + 4);
+         char *ptr;
+-        line += 4;
+-        if (line[0] != '/') {
+-            fprintf(stderr, "Path must start with /, found: %s\n", line);
++        if (copy == NULL) {
++            perror("strdup");
+             return;
+         }
+-        ptr = strchr(line, ' ');
++        if (copy[0] != '/') {
++            fprintf(stderr, "Path must start with /, found: %s\n", copy);
++            free(copy);
++            return;
++        }
++
++        ptr = strchr(copy, ' ');
+         if (!ptr) {
+             fprintf(stderr, "No data found after path\n");
++            free(copy);
+             return;
+         }
++
+         *ptr = '\0';
+         ptr++;
+-        rc = zoo_aset(zh, line, ptr, strlen(ptr), -1, my_stat_completion,
+-                strdup(line));
++
++        rc = zoo_aset(zh, copy, ptr, (int)strlen(ptr), -1, my_stat_completion,
++                strdup(copy));
++
+         if (rc) {
+-            fprintf(stderr, "Error %d for %s\n", rc, line);
++             fprintf(stderr, "Error %d for %s\n", rc, copy);
+         }
++        free(copy);
++
+     } else if (startsWith(line, "ls ")) {
+         line += 3;
+         if (line[0] != '/') {
+@@ -704,14 +716,19 @@
+         if (rc)
+             fprintf(stderr, "od command failed: %d\n", rc);
+     } else if (startsWith(line, "addauth ")) {
++      char *copy = strdup(line + 8);
+       char *ptr;
+-      line += 8;
+-      ptr = strchr(line, ' ');
++      if (copy == NULL) {
++        perror("strdup");
++        return;
++      }
++      ptr = strchr(copy, ' ');
+       if (ptr) {
+         *ptr = '\0';
+         ptr++;
+       }
+-      zoo_add_auth(zh, line, ptr, ptr ? strlen(ptr) : 0, NULL, NULL);
++      zoo_add_auth(zh, copy, ptr, ptr ? strlen(ptr) : 0, NULL, NULL);
++      free(copy);
+     }
+ }
+ 
+--- a/zookeeper-client/zookeeper-client-c/src/zookeeper.c
++++ b/zookeeper-client/zookeeper-client-c/src/zookeeper.c
+@@ -1304,7 +1304,7 @@
+ {
+     int errnosave = 0;
+     zhandle_t *zh = NULL;
+-    char *index_chroot = NULL;
++    const char *index_chroot = NULL;
+ 
+     // Create our handle
+     zh = calloc(1, sizeof(*zh));


=====================================
debian/patches/40-default-zoocfg.patch
=====================================
@@ -0,0 +1,13 @@
+--- a/conf/zoo_sample.cfg
++++ b/conf/zoo_sample.cfg
+@@ -35,3 +35,10 @@
+ #metricsProvider.httpPort=7000
+ #metricsProvider.exportJvmInfo=true
+ 
++## Admin Server
++# Set to true to enable the HTTP-based admin server
++# You must also have Jetty JARs on the classpath.
++# See /etc/zookeeper/conf/environment
++admin.enableServer=false
++admin.serverAddress=127.0.0.1
++admin.serverPort=8080


=====================================
debian/patches/series
=====================================
@@ -32,3 +32,5 @@
 36-JUnitPlatform-deprecation.patch
 37-no_burningwave.patch
 38-netty-4.1.114.patch
+39-iso-c23-const.patch
+40-default-zoocfg.patch


=====================================
debian/rules
=====================================
@@ -48,9 +48,10 @@ override_dh_install-arch:
 
 override_dh_install-indep:
 	dh_install -i
-	# Also installing the configuration.xsl and zoo.cfg which are in conf/.
+	# Also install configuration.xsl, logback.xml, and zoo.cfg which are in conf/.
 	cp conf/configuration.xsl debian/zookeeper/etc/zookeeper/conf_example/
 	cp conf/zoo_sample.cfg debian/zookeeper/etc/zookeeper/conf_example/zoo.cfg
+	cp conf/logback.xml debian/zookeeper/etc/zookeeper/conf_example
 
 override_dh_auto_test-indep:
 ifeq ($(ENABLE_TESTS),true)
@@ -105,3 +106,6 @@ override_dh_auto_clean:
 
 override_dh_installinit:
 	dh_installinit --name=zookeeper
+
+override_dh_installsystemd:
+	dh_installsystemd --name=zookeeper


=====================================
debian/zookeeper.NEWS
=====================================
@@ -1,3 +1,14 @@
+zookeeper (3.9.4-2) unstable; urgency=medium
+
+  The systemd unit is now installed as part of the zookeeperd package.
+  It uses LOGGING_JARS sourced from /etc/zookeeper/conf/environment to
+  configure logback on the classpath.  Adjust as needed if your logging
+  needs are different, or for some reason you don't want logging.
+ 
+  zkCli.sh is configured with jline2 support.
+
+ -- tony mancill <tmancill at debian.org>  Sun, 08 Mar 2026 09:18:29 -0700
+
 zookeeper (3.8.0-1) unstable; urgency=medium
 
   It is likely the server will not start on the first run, because of a missing


=====================================
debian/zookeeperd.preinst deleted
=====================================
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-  install|upgrade)
-    DOCDIR=/usr/share/doc/zookeeperd
-
-    if [ -L $DOCDIR ]; then
-      rm $DOCDIR
-    fi
-  ;;
-esac
-
-#DEBHELPER#
-
-exit 0


=====================================
debian/zookeeperd.zookeeper.service
=====================================
@@ -1,5 +1,6 @@
 [Unit]
 Description=Coordination service for distributed applications
+Documentation=https://zookeeper.apache.org
 After=network.target
 ConditionPathExists=/var/lib/zookeeper/myid
 
@@ -9,7 +10,7 @@ User=zookeeper
 SyslogIdentifier=zookeeper
 EnvironmentFile=/etc/zookeeper/conf/environment
 EnvironmentFile=-/etc/default/zookeeper
-ExecStart=/usr/bin/java -cp ${CLASSPATH} $JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=${JMXLOCALONLY} -Dzookeeper.log.dir=${ZOO_LOG_DIR} -Dzookeeper.root.logger=${ZOO_LOG4J_PROP} $ZOOMAIN $ZOOCFG
+ExecStart=/usr/bin/java -cp ${CLASSPATH}:${LOGGING_JARS} $JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=${JMXLOCALONLY} -Dzookeeper.log.dir=${ZOO_LOG_DIR} -Dzookeeper.root.logger=${ZOO_LOG4J_PROP} $ZOOMAIN $ZOOCFG
 SuccessExitStatus=143
 # ZooKeeper is "fail-fast", see https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc_supervision
 Restart=always



View it on GitLab: https://salsa.debian.org/java-team/zookeeper/-/compare/9ec235df5a68a7324d111bd38c62fe1be534964a...5c4df50d2fd9f1c4edaa55d1ffd633330df923dd

-- 
View it on GitLab: https://salsa.debian.org/java-team/zookeeper/-/compare/9ec235df5a68a7324d111bd38c62fe1be534964a...5c4df50d2fd9f1c4edaa55d1ffd633330df923dd
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20260308/fad07b8f/attachment.htm>


More information about the pkg-java-commits mailing list