debian/0000755000000000000000000000000012155306101007160 5ustar debian/libzookeeper-java-doc.doc-base.api0000644000000000000000000000044212142053613015506 0ustar Document: libzookeeper-java-api Title: API JavaDoc for zookeeper Author: Apache Software Fondation Abstract: This the API JavaDoc for zookeeper Section: Programming/Java Format: HTML Index: /usr/share/doc/libzookeeper-java/api/index.html Files: /usr/share/doc/libzookeeper-java/api/*.html debian/zooinspector0000644000000000000000000000045512142053613011650 0ustar #!/bin/sh CLASSPATH=/usr/share/java/log4j-1.2.jar:/usr/share/java/zookeeper.jar:/usr/share/zookeeper/zooinspector/zookeeper-ZooInspector.jar # We have to cd to this dir so that the icons are found cd /usr/share/zookeeper/zooinspector java -cp $CLASSPATH org.apache.zookeeper.inspector.ZooInspector debian/python-zookeeper.install0000644000000000000000000000004312142053613014072 0ustar debian/tmp/usr/lib/python* usr/lib debian/README.source0000644000000000000000000000021112142053613011334 0ustar RESTful support --------------- The contrib rest could not be compiled since Debian misses the dependency https://grizzly.dev.java.net/ debian/libzookeeper-st-dev.install.in0000644000000000000000000000012612142053613015051 0ustar /usr/include /usr/lib/*/*_st.a /usr/lib/__ARCH__ /usr/lib/*/*_st.so /usr/lib/__ARCH__ debian/zookeeper.prerm0000644000000000000000000000027212142053613012236 0ustar #!/bin/sh set -e NAME="zookeeper" if [ "$1" = "remove" ]; then update-alternatives --list $NAME-conf >>/dev/null 2>&1 && update-alternatives --remove-all $NAME-conf fi #DEBHELPER# debian/TODO0000644000000000000000000000051712142053613007656 0ustar TODO for zookeeper package ========================== * create manpages for scripts and cli_mt and link them to /usr/bin * better names for the executables, like zk_* or zk-* * transition to multi-arch * enable test suite; invalid snapshot and upgrade testing will need to be disabled as they rely on non-DFSG compliant files. debian/zookeeper-bin.install0000644000000000000000000000022512142053613013323 0ustar debian/tmp/usr/bin/cli_mt /usr/lib/zookeeper/bin debian/tmp/usr/bin/load_gen /usr/lib/zookeeper/bin src/contrib/zktreeutil/src/zktreeutil /usr/bin debian/zookeeperd.upstart0000644000000000000000000000157412142053613012765 0ustar description "zookeeper centralized coordination service" start on runlevel [2345] stop on runlevel [!2345] respawn limit nofile 8192 8192 pre-start script [ -r "/usr/share/java/zookeeper.jar" ] || exit 0 [ -r "/etc/zookeeper/conf/environment" ] || exit 0 . /etc/zookeeper/conf/environment [ -d $ZOO_LOG_DIR ] || mkdir -p $ZOO_LOG_DIR chown $USER:$GROUP $ZOO_LOG_DIR end script script . /etc/zookeeper/conf/environment [ -r /etc/default/zookeeper ] && . /etc/default/zookeeper if [ -z "$JMXDISABLE" ]; then JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY" fi exec start-stop-daemon --start -c $USER --exec $JAVA --name zookeeper \ -- -cp $CLASSPATH $JAVA_OPTS -Dzookeeper.log.dir=${ZOO_LOG_DIR} \ -Dzookeeper.root.logger=${ZOO_LOG4J_PROP} $ZOOMAIN $ZOOCFG end script debian/ant.properties0000644000000000000000000000034612142053613012066 0ustar # Ensure that source and target are 1.5 # For backwards compat on Java 7 ant.build.javac.source=1.5 ant.build.javac.target=1.5 target.jdk=1.5 lastRevision=-1 ivy.jar.exists=true ivy.initialized=true dest.dir=../../build/zookeeper debian/libzookeeper-java.classpath0000644000000000000000000000012612142053613014477 0ustar usr/share/java/zookeeper.jar jline.jar log4j-1.2.jar xercesImpl.jar xmlParserAPIs.jar debian/zookeeperd.default0000644000000000000000000000057612142053613012710 0ustar # See the following page for extensive details on setting # up the JVM to accept JMX remote management: # http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html # by default we allow local JMX connections #JMXLOCALONLY=false #JAVA_OPTS="" # Make sure to include the original classpath since it contains the zookeeper # jars #CLASSPATH="$CLASSPATH:YOURCLASSPATH" debian/conf_example/0000755000000000000000000000000012142053613011623 5ustar debian/conf_example/myid0000644000000000000000000000011212142053613012502 0ustar replace this text with the cluster-unique zookeeper's instance id (1-255) debian/conf_example/environment0000644000000000000000000000136212142053613014114 0ustar NAME=zookeeper ZOOCFGDIR=/etc/$NAME/conf # TODO this is really ugly # How to find out, which jars are needed? # seems, that log4j requires the log4j.properties file to be in the classpath CLASSPATH="$ZOOCFGDIR:/usr/share/java/jline.jar:/usr/share/java/log4j-1.2.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/netty.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-log4j12.jar:/usr/share/java/zookeeper.jar" ZOOCFG="$ZOOCFGDIR/zoo.cfg" ZOO_LOG_DIR=/var/log/$NAME USER=$NAME GROUP=$NAME PIDDIR=/var/run/$NAME PIDFILE=$PIDDIR/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME JAVA=/usr/bin/java ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain" ZOO_LOG4J_PROP="INFO,ROLLINGFILE" JMXLOCALONLY=false JAVA_OPTS="" debian/conf_example/zoo.cfg0000644000000000000000000000401112142053613013107 0ustar # http://hadoop.apache.org/zookeeper/docs/current/zookeeperAdmin.html # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. dataDir=/var/lib/zookeeper # Place the dataLogDir to a separate physical disc for better performance # dataLogDir=/disk2/zookeeper # the port at which the clients will connect clientPort=2181 # specify all zookeeper servers # The fist port is used by followers to connect to the leader # The second one is used for leader election #server.1=zookeeper1:2888:3888 #server.2=zookeeper2:2888:3888 #server.3=zookeeper3:2888:3888 # To avoid seeks ZooKeeper allocates space in the transaction log file in # blocks of preAllocSize kilobytes. The default block size is 64M. One reason # for changing the size of the blocks is to reduce the block size if snapshots # are taken more often. (Also, see snapCount). #preAllocSize=65536 # Clients can submit requests faster than ZooKeeper can process them, # especially if there are a lot of clients. To prevent ZooKeeper from running # out of memory due to queued requests, ZooKeeper will throttle clients so that # there is no more than globalOutstandingLimit outstanding requests in the # system. The default limit is 1,000.ZooKeeper logs transactions to a # transaction log. After snapCount transactions are written to a log file a # snapshot is started and a new transaction log file is started. The default # snapCount is 10,000. #snapCount=1000 # If this option is defined, requests will be will logged to a trace file named # traceFile.year.month.day. #traceFile= # Leader accepts client connections. Default value is "yes". The leader machine # coordinates updates. For higher update throughput at thes slight expense of # read throughput the leader can be configured to not accept clients and focus # on coordination. #leaderServes=yes debian/conf_example/log4j.properties0000644000000000000000000000337112142053613014764 0ustar # # ZooKeeper Logging Configuration # # Format is " (, )+ log4j.rootLogger=${zookeeper.root.logger} # Example: console appender only # log4j.rootLogger=INFO, CONSOLE # Example with rolling log file #log4j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE # Example with rolling log file and tracing #log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE # # Log INFO level and above messages to the console # log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=INFO log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n # # Add ROLLINGFILE to rootLogger to get log file output # Log DEBUG level and above messages to a log file log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender log4j.appender.ROLLINGFILE.Threshold=DEBUG log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/zookeeper.log # Max log file size of 10MB log4j.appender.ROLLINGFILE.MaxFileSize=10MB # uncomment the next line to limit number of backup files #log4j.appender.ROLLINGFILE.MaxBackupIndex=10 log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n # # Add TRACEFILE to rootLogger to get log file output # Log DEBUG level and above messages to a log file log4j.appender.TRACEFILE=org.apache.log4j.FileAppender log4j.appender.TRACEFILE.Threshold=TRACE log4j.appender.TRACEFILE.File=${zookeeper.log.dir}/zookeeper_trace.log log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout ### Notice we are including log4j's NDC here (%x) log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n debian/conf_example/configuration.xsl0000644000000000000000000000102712142053613015222 0ustar
name value description
debian/patches/0000755000000000000000000000000012155123212010607 5ustar debian/patches/debian/0000755000000000000000000000000012142053613012034 5ustar debian/patches/debian/disable-cygwin-detection0000644000000000000000000000152712142053613016641 0ustar Description: Disable detection of cygwin under Debian installs as this is not compatible with the way the environment is managed through alternatives. . TODO - review alongside use of alternatives for managing configuration. Author: Akira Kitada Forwarded: not-needed --- a/bin/zkServer.sh +++ b/bin/zkServer.sh @@ -69,15 +69,6 @@ then ZOOCFG="$2" fi -if $cygwin -then - ZOOCFG=`cygpath -wp "$ZOOCFG"` - # cygwin has a "kill" in the shell itself, gets confused - KILL=/bin/kill -else - KILL=kill -fi - echo "Using config: $ZOOCFG" >&2 if [ -z $ZOOPIDFILE ]; then @@ -140,7 +131,7 @@ stop) then echo "no zookeeper to stop (could not find file $ZOOPIDFILE)" else - $KILL -9 $(cat "$ZOOPIDFILE") + kill -9 $(cat "$ZOOPIDFILE") rm "$ZOOPIDFILE" echo STOPPED fi debian/patches/debian/add_jtoaster_source_to_zooinspector0000644000000000000000000002600612142053613021326 0ustar diff --git a/src/contrib/zooinspector/README.jtoaster b/src/contrib/zooinspector/README.jtoaster new file mode 100644 index 0000000..fbe128e --- /dev/null +++ b/src/contrib/zooinspector/README.jtoaster @@ -0,0 +1,29 @@ +JToaster is a java utility class to show animated notification windows. + +JToaster was created by Daniele Piras and the main site for the project +is: +http://sourceforge.net/projects/jtoaster/ + +JToaster is licensed under Apache License V2 (that is it include in this +package) + + +Simle example to use JToaster: + +package com.nitido.utils.toaster; + +public class Example +{ + + /** + * Simple Example... + */ + public static void main(String[] args) + { + // create toaster manager + Toaster toasterManager = new Toaster(); + // show a simple notification message. + toasterManager.showToaster( "Hello World!" ); + } + +} diff --git a/src/contrib/zooinspector/src/java/com/nitido/utils/toaster/Toaster.java b/src/contrib/zooinspector/src/java/com/nitido/utils/toaster/Toaster.java new file mode 100644 index 0000000..7e14650 --- /dev/null +++ b/src/contrib/zooinspector/src/java/com/nitido/utils/toaster/Toaster.java @@ -0,0 +1,525 @@ +/** + * Java Toaster is a java utility class for your swing applications + * that show an animate box coming from the bottom of your screen + * with a notification message and/or an associated image + * (like msn online/offline notifications). + * + * Toaster panel in windows system follow the taskbar; So if + * the taskbar is into the bottom the panel coming from the bottom + * and if the taskbar is on the top then the panel coming from the top. + * + * This is a simple example of utilization: + * + * import com.nitido.utils.toaster.*; + * import javax.swing.*; + * + * public class ToasterTest + * { + * + * public static void main(String[] args) + * { + * // Initialize toaster manager... + * Toaster toasterManager = new Toaster(); + * + * // Show a simple toaster + * toasterManager.showToaster( new ImageIcon( "mylogo.gif" ), "A simple toaster with an image" ); + * } + * } + */ +package com.nitido.utils.toaster; + +import java.awt.*; + +import javax.swing.*; +import javax.swing.border.*; + +/** + * Class to show tosters in multiplatform + * + * @author daniele piras + * + */ +public class Toaster +{ + // Width of the toster + private int toasterWidth = 300; + + // Height of the toster + private int toasterHeight = 80; + + // Step for the toaster + private int step = 20; + + // Step time + private int stepTime = 20; + + // Show time + private int displayTime = 3000; + + // Current number of toaster... + private int currentNumberOfToaster = 0; + + // Last opened toaster + private int maxToaster = 0; + + // Max number of toasters for the sceen + private int maxToasterInSceen; + + // Font used to display message + private Font font; + + // Color for border + private Color borderColor; + + // Color for toaster + private Color toasterColor; + + // Set message color + private Color messageColor; + + // Set the margin + int margin; + + // Flag that indicate if use alwaysOnTop or not. + // method always on top start only SINCE JDK 5 ! + boolean useAlwaysOnTop = true; + + private static final long serialVersionUID = 1L; + + /** + * Constructor to initialized toaster component... + * + * @author daniele piras + * + */ + public Toaster() + { + // Set default font... + font = new Font("Arial", Font.BOLD, 12); + // Border color + borderColor = new Color(245, 153, 15); + toasterColor = Color.WHITE; + messageColor = Color.BLACK; + useAlwaysOnTop = true; + // Verify AlwaysOnTop Flag... + try + { + JWindow.class.getMethod( "setAlwaysOnTop", new Class[] { Boolean.class } ); + } + catch( Exception e ) + { + useAlwaysOnTop = false; + } + + } + + /** + * Class that rappresent a single toaster + * + * @author daniele piras + * + */ + class SingleToaster extends javax.swing.JWindow + { + private static final long serialVersionUID = 1L; + + // Label to store Icon + private JLabel iconLabel = new JLabel(); + + // Text area for the message + private JTextArea message = new JTextArea(); + + + + + /*** + * Simple costructor that initialized components... + */ + public SingleToaster() + { + initComponents(); + } + + /*** + * Function to initialized components + */ + private void initComponents() + { + + setSize(toasterWidth, toasterHeight); + message.setFont( getToasterMessageFont() ); + JPanel externalPanel = new JPanel(new BorderLayout(1, 1)); + externalPanel.setBackground( getBorderColor() ); + JPanel innerPanel = new JPanel(new BorderLayout( getMargin(), getMargin() )); + innerPanel.setBackground( getToasterColor() ); + message.setBackground( getToasterColor() ); + message.setMargin( new Insets( 2,2,2,2 ) ); + message.setLineWrap( true ); + message.setWrapStyleWord( true ); + + EtchedBorder etchedBorder = (EtchedBorder) BorderFactory + .createEtchedBorder(); + externalPanel.setBorder(etchedBorder); + + externalPanel.add(innerPanel); + message.setForeground( getMessageColor() ); + innerPanel.add(iconLabel, BorderLayout.WEST); + innerPanel.add(message, BorderLayout.CENTER); + getContentPane().add(externalPanel); + } + + + /*** + * Start toaster animation... + */ + public void animate() + { + ( new Animation( this ) ).start(); + } + + } + + /*** + * Class that manage the animation + */ + class Animation extends Thread + { + SingleToaster toaster; + + public Animation( SingleToaster toaster ) + { + this.toaster = toaster; + } + + + /** + * Animate vertically the toaster. The toaster could be moved from bottom + * to upper or to upper to bottom + * @param posx + * @param fromy + * @param toy + * @throws InterruptedException + */ + protected void animateVertically( int posx, int fromY, int toY ) throws InterruptedException + { + + toaster.setLocation( posx, fromY ); + if ( toY < fromY ) + { + for (int i = fromY; i > toY; i -= step) + { + toaster.setLocation(posx, i); + Thread.sleep(stepTime); + } + } + else + { + for (int i = fromY; i < toY; i += step) + { + toaster.setLocation(posx, i); + Thread.sleep(stepTime); + } + } + toaster.setLocation( posx, toY ); + } + + public void run() + { + try + { + boolean animateFromBottom = true; + GraphicsEnvironment ge = GraphicsEnvironment + .getLocalGraphicsEnvironment(); + Rectangle screenRect = ge.getMaximumWindowBounds(); + + int screenHeight = (int) screenRect.height; + + int startYPosition; + int stopYPosition; + + if ( screenRect.y > 0 ) + { + animateFromBottom = false; // Animate from top! + } + + maxToasterInSceen = screenHeight / toasterHeight; + + + int posx = (int) screenRect.width - toasterWidth - 1; + + toaster.setLocation(posx, screenHeight); + toaster.setVisible(true); + if ( useAlwaysOnTop ) + { + toaster.setAlwaysOnTop(true); + } + + if ( animateFromBottom ) + { + startYPosition = screenHeight; + stopYPosition = startYPosition - toasterHeight - 1; + if ( currentNumberOfToaster > 0 ) + { + stopYPosition = stopYPosition - ( maxToaster % maxToasterInSceen * toasterHeight ); + } + else + { + maxToaster = 0; + } + } + else + { + startYPosition = screenRect.y - toasterHeight; + stopYPosition = screenRect.y; + + if ( currentNumberOfToaster > 0 ) + { + stopYPosition = stopYPosition + ( maxToaster % maxToasterInSceen * toasterHeight ); + } + else + { + maxToaster = 0; + } + } + + currentNumberOfToaster++; + maxToaster++; + + + animateVertically( posx, startYPosition, stopYPosition ); + Thread.sleep(displayTime); + animateVertically( posx, stopYPosition, startYPosition ); + + currentNumberOfToaster--; + toaster.setVisible(false); + toaster.dispose(); + } catch (Exception e) + { + e.printStackTrace(); + } + } + } + + + + /** + * Show a toaster with the specified message and the associated icon. + */ + public void showToaster(Icon icon, String msg) + { + SingleToaster singleToaster = new SingleToaster(); + if ( icon != null ) + { + singleToaster.iconLabel.setIcon( icon ); + } + singleToaster.message.setText( msg ); + singleToaster.animate(); + } + + /** + * Show a toaster with the specified message. + */ + public void showToaster( String msg ) + { + showToaster( null, msg ); + } + + /** + * @return Returns the font + */ + public Font getToasterMessageFont() + { + // TODO Auto-generated method stub + return font; + } + + /** + * Set the font for the message + */ + public void setToasterMessageFont( Font f) + { + font = f; + } + + + /** + * @return Returns the borderColor. + */ + public Color getBorderColor() + { + return borderColor; + } + + + + /** + * @param borderColor The borderColor to set. + */ + public void setBorderColor(Color borderColor) + { + this.borderColor = borderColor; + } + + + + /** + * @return Returns the displayTime. + */ + public int getDisplayTime() + { + return displayTime; + } + + + + /** + * @param displayTime The displayTime to set. + */ + public void setDisplayTime(int displayTime) + { + this.displayTime = displayTime; + } + + + + /** + * @return Returns the margin. + */ + public int getMargin() + { + return margin; + } + + + + /** + * @param margin The margin to set. + */ + public void setMargin(int margin) + { + this.margin = margin; + } + + + + /** + * @return Returns the messageColor. + */ + public Color getMessageColor() + { + return messageColor; + } + + + + /** + * @param messageColor The messageColor to set. + */ + public void setMessageColor(Color messageColor) + { + this.messageColor = messageColor; + } + + + + /** + * @return Returns the step. + */ + public int getStep() + { + return step; + } + + + + /** + * @param step The step to set. + */ + public void setStep(int step) + { + this.step = step; + } + + + + /** + * @return Returns the stepTime. + */ + public int getStepTime() + { + return stepTime; + } + + + + /** + * @param stepTime The stepTime to set. + */ + public void setStepTime(int stepTime) + { + this.stepTime = stepTime; + } + + + + /** + * @return Returns the toasterColor. + */ + public Color getToasterColor() + { + return toasterColor; + } + + + + /** + * @param toasterColor The toasterColor to set. + */ + public void setToasterColor(Color toasterColor) + { + this.toasterColor = toasterColor; + } + + + + /** + * @return Returns the toasterHeight. + */ + public int getToasterHeight() + { + return toasterHeight; + } + + + + /** + * @param toasterHeight The toasterHeight to set. + */ + public void setToasterHeight(int toasterHeight) + { + this.toasterHeight = toasterHeight; + } + + + + /** + * @return Returns the toasterWidth. + */ + public int getToasterWidth() + { + return toasterWidth; + } + + + + /** + * @param toasterWidth The toasterWidth to set. + */ + public void setToasterWidth(int toasterWidth) + { + this.toasterWidth = toasterWidth; + } + + + +} debian/patches/debian/patch-build-system0000644000000000000000000002012012142053613015470 0ustar Description: Patches to upstream build system to disable use of ivy, use jar files from /usr/share/java and enable the relevant bits of the test suite for execution during build. Author: James Page , Thomas Koch Forwarded: not-needed --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ - + @@ -184,27 +184,21 @@ - - - + + + + + + + - - - - - - - - - - - - - + + + @@ -246,7 +240,7 @@ targetfile="${src_generated.dir}/.generated"/> - + @@ -354,7 +348,7 @@ - + @@ -363,7 +357,7 @@ - + @@ -1124,21 +1118,10 @@ - - - - - - - - - - - @@ -1191,6 +1174,9 @@ + + + --- a/src/contrib/build-contrib.xml +++ b/src/contrib/build-contrib.xml @@ -70,25 +70,16 @@ - - - - + + + + + + + - + - - - - - - - - - - - - @@ -133,7 +124,7 @@ @@ -233,15 +224,9 @@ - - - --- a/src/contrib/zooinspector/build.xml +++ b/src/contrib/zooinspector/build.xml @@ -20,7 +20,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -55,7 +55,6 @@ - debian/patches/ftbfs-gcc-4.7.diff0000644000000000000000000000075712142053613013621 0ustar Index: zookeeper-3.3.5+dfsg1/src/contrib/zktreeutil/src/ZkAdaptor.cc =================================================================== --- zookeeper-3.3.5+dfsg1.orig/src/contrib/zktreeutil/src/ZkAdaptor.cc 2012-03-15 20:09:29.000000000 +0000 +++ zookeeper-3.3.5+dfsg1/src/contrib/zktreeutil/src/ZkAdaptor.cc 2012-05-10 16:00:13.741897761 +0000 @@ -18,6 +18,7 @@ #include "ZkAdaptor.h" #include +#include #include #include #include debian/patches/series0000644000000000000000000000024012155123212012020 0ustar debian/add_jtoaster_source_to_zooinspector debian/patch-build-system debian/disable-cygwin-detection fixes/ZOOKEEPER-705 ftbfs-gcc-4.7.diff fixes/ZOOKEEPER-770 debian/patches/fixes/0000755000000000000000000000000012155162410011730 5ustar debian/patches/fixes/ZOOKEEPER-7050000644000000000000000000000063412142053613013532 0ustar --- a/src/c/src/mt_adaptor.c +++ b/src/c/src/mt_adaptor.c @@ -484,11 +484,7 @@ int32_t fetch_and_add(volatile int32_t* { #ifndef WIN32 int32_t result; - asm __volatile__( - "lock xaddl %0,%1\n" - : "=r"(result), "=m"(*(int *)operand) - : "0"(incr) - : "memory"); + result = __sync_fetch_and_add(operand, incr); return result; #else volatile int32_t result; debian/patches/fixes/ZOOKEEPER-7700000644000000000000000000000453412142054155013541 0ustar Description: Slow add_auth calls with multi-threaded client Origin: https://issues.apache.org/jira/browse/ZOOKEEPER-770 --- a/src/c/tests/TestClient.cc +++ b/src/c/tests/TestClient.cc @@ -181,6 +181,20 @@ public: } } watchctx_t; +static inline int calculate_interval(const struct timeval *start, + const struct timeval *end) +{ + int interval; + struct timeval i = *end; + i.tv_sec -= start->tv_sec; + i.tv_usec -= start->tv_usec; + interval = i.tv_sec * 1000 + (i.tv_usec/1000); + return interval; +} + +static timeval completion_timestamp; + + class Zookeeper_simpleSystem : public CPPUNIT_NS::TestFixture { CPPUNIT_TEST_SUITE(Zookeeper_simpleSystem); @@ -420,6 +434,14 @@ public: count++; } + + static void voidCompletionWithTimestamp(int rc, const void *data) { + int tmp = (int) (long) data; + CPPUNIT_ASSERT_EQUAL(tmp, rc); + gettimeofday(&completion_timestamp, 0); + count++; + } + static void verifyCreateFails(const char *path, zhandle_t *zk) { CPPUNIT_ASSERT_EQUAL((int)ZBADARGUMENTS, zoo_create(zk, path, "", 0, &ZOO_OPEN_ACL_UNSAFE, 0, 0, 0)); @@ -507,6 +529,8 @@ public: zhandle_t *zk = createClient(&ctx1); struct ACL_vector nodeAcl; struct ACL acl_val; + struct timeval started; + rc = zoo_add_auth(0, "", 0, 0, voidCompletion, (void*)-1); CPPUNIT_ASSERT_EQUAL((int) ZBADARGUMENTS, rc); @@ -540,11 +564,13 @@ public: //create a new client zk = createClient(&ctx2); - rc = zoo_add_auth(zk, "digest", "pat:passwd2", 11, voidCompletion, + gettimeofday(&started, 0); + rc = zoo_add_auth(zk, "digest", "pat:passwd2", 11, voidCompletionWithTimestamp, (void*)ZOK); CPPUNIT_ASSERT_EQUAL((int) ZOK, rc); waitForVoidCompletion(3); CPPUNIT_ASSERT(count == 0); + CPPUNIT_ASSERT(calculate_interval(&started, &completion_timestamp) < 2); char buf[1024]; int blen = sizeof(buf); --- a/src/c/src/zookeeper.c +++ b/src/c/src/zookeeper.c @@ -1314,7 +1314,7 @@ static int send_info_packet(zhandle_t *z /* We queued the buffer, so don't free it */ close_buffer_oarchive(&oa, 0); - return rc; + return rc<0 ? rc : adaptor_send_queue(zh, 0); } /** send all auths, not just the last one **/ debian/orig-tar.sh0000755000000000000000000000211512142053613011245 0ustar #!/bin/bash -e VERSION=$2 TAR=../zookeeper_$VERSION.orig.tar.gz NEWTAR=../zookeeper_$VERSION+dfsg.orig.tar.bz2 DIR=zookeeper-$VERSION mkdir -p $DIR # Unpack ready fo re-packing tar -xzf $TAR -C $DIR --strip-components=1 # Repack excluding stuff we don't need GZIP=--best tar -cjf $NEWTAR --exclude '*.jar' \ --exclude "Makefile.in" \ --exclude "aclocal.m4" \ --exclude "autom4te.cache" \ --exclude "compile" \ --exclude "config.guess" \ --exclude "config.sub" \ --exclude "configure" \ --exclude "ltmain.sh" \ --exclude "zookeeper-${VERSION}/contrib" \ --exclude "zookeeper-${VERSION}/docs" \ --exclude "zookeeper-${VERSION}/recipes" \ --exclude "zookeeper-${VERSION}/dist-maven" \ --exclude "zookeeper-${VERSION}/src/contrib/fatjar" \ --exclude "zookeeper-${VERSION}/src/c/generated" \ --exclude "zookeeper-${VERSION}/src/java/main/org/apache/jute/compiler/generated/*.java" \ --exclude "zookeeper-${VERSION}/src/java/generated" $DIR rm -rf $DIR $TAR debian/zookeeper.dirs0000644000000000000000000000004612142053613012051 0ustar /var/log/zookeeper /var/lib/zookeeper debian/rules0000755000000000000000000001130012155161523010242 0ustar #!/usr/bin/make -f export JAVA_HOME=/usr/lib/jvm/default-java PYVERS := $(shell pyversions -vr) DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -rne 's,^Version: ([^+]+).*,\1,p') DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) %: dh $@ --with javahelper --with python2 override_dh_auto_build: # TODO exclude the fatjar contrib from upstream tarball and include the rest contrib mkdir -p build/test/classes javacc -OUTPUT_DIRECTORY=src/java/main/org/apache/jute/compiler/generated src/java/main/org/apache/jute/compiler/generated/rcc.jj # the upstream build file includes .java files in the jars. Let's create the jars ourselves. # see: https://issues.apache.org/jira/browse/ZOOKEEPER-537 ant -Dversion=$(DEB_UPSTREAM_VERSION) -DlastRevision=-1 javadoc javadoc-dev jar # Compile C library cd src/c && autoreconf -i cd src/c && ./configure --prefix=/usr --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) $(MAKE) -C src/c # Compile contribs - zooinspector cd src/contrib && \ ant -Dversion=$(DEB_UPSTREAM_VERSION) \ -propertyfile ../../debian/ant.properties \ -Dcontribfilesetincludes="zooinspector/build.xml" # Build Python Bindings cd src/contrib/zkpython && \ for pv in $(PYVERS); do \ python$$pv src/python/setup.py build --build-base=$(CURDIR)/build ;\ done # Compile zktreeutil and generate man page cd src/contrib/zktreeutil && autoreconf -if && ./configure --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) && make LD_LIBRARY_PATH=src/c/.libs help2man -N --version-string=0.0 src/contrib/zktreeutil/src/zktreeutil >zktreeutil.man override_dh_install: $(MAKE) -C src/c install DESTDIR=$(CURDIR)/debian/tmp cd src/contrib/zkpython && \ for pv in $(PYVERS); do \ python$$pv src/python/setup.py build --build-base=$(CURDIR)/build \ install --root=$(CURDIR)/debian/tmp --install-layout=deb ;\ done # Generate install files for Multiarch capability for install in libzookeeper-mt2 libzookeeper-st2 \ libzookeeper-st-dev libzookeeper-mt-dev; do \ sed -e 's/__ARCH__/$(DEB_HOST_MULTIARCH)/g' debian/$$install.install.in \ > debian/$$install.install; \ done dh_install ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) # Limit architectures which execute tests as some # non x86 archs can be a bit racey. TEST_ARCH=i386 amd64 ifneq (,$(findstring $(DEB_BUILD_ARCH), $(TEST_ARCH))) TEST_JARS=jline log4j-1.2 xercesImpl xmlParserAPIs netty slf4j-api slf4j-log4j12 override_dh_auto_test-arch: # C testing starts/stops zookeeper # this ensures that all the right classes are found for jar in $(TEST_JARS); do \ ln -sf /usr/share/java/$$jar.jar build/lib/$$jar.jar; \ done; # Execute multi-threaded test suite # Disable on Ubuntu and Debian due to glibc 2.17 incompatibility # https://issues.apache.org/jira/browse/ZOOKEEPER-1646 if ! dpkg-vendor --derives-from debian; then \ $(MAKE) -C src/c zktest-mt; \ cd src/c && ./zktest-mt; \ fi; endif # Only run core Java unit tests on i386 architecture as this is the arch # that they are built and published on - works around -indep not working # in Ubuntu. ifeq (i386, $(DEB_BUILD_ARCH)) override_dh_auto_test-indep: # Run core Java test suite against zookeeper ant -Dversion=$(DEB_UPSTREAM_VERSION) -DlastRevision=-1 test-core-java endif endif override_dh_clean: dh_clean --exclude=src/java \ --exclude=src/docs \ --exclude=src/c \ --exclude=src/reciped jh_clean # Clean generated install files for install in libzookeeper-mt2 libzookeeper-st2 \ libzookeeper-st-dev libzookeeper-mt-dev; do \ [ ! -f debian/$$install.install ] || rm debian/$$install.install; \ done # the original build.xml deletes too much override_dh_auto_clean: dh_testdir rm -rf .revision rm -rf build rm -rf src/c/generated rm -rf src/java/generated rm -rf src/java/main/org/apache/jute/compiler/generated/*.java rm -f zookeeper*.jar [ ! -f src/c/Makefile ] || $(MAKE) -C src/c distclean rm -f src/c/config.log src/c/config.status [ ! -f src/contrib/zktreeutil/Makefile ] || $(MAKE) -C src/contrib/zktreeutil distclean rm -rf src/contrib/zktreeutil/autom4te.cache rm -rf src/contrib/zktreeutil/Makefile.in rm -rf src/contrib/zktreeutil/aclocal.m4 rm -rf src/contrib/zktreeutil/config.h.in rm -rf src/contrib/zktreeutil/configure rm -rf src/contrib/zktreeutil/depcomp rm -rf src/contrib/zktreeutil/install-sh rm -rf src/contrib/zktreeutil/missing rm -rf src/contrib/zktreeutil/src/Makefile.in rm -rf zktreeutil.man rm -rf src/c/Makefile.in rm -rf src/c/aclocal.m4 rm -rf src/c/autom4te.cache rm -rf src/c/compile rm -rf src/c/config.guess rm -rf src/c/config.sub rm -rf src/c/configure rm -rf src/c/ltmain.sh rm -rf src/c/TEST-* override_dh_installinit: dh_installinit -d debian/libzookeeper-st2.shlibs0000644000000000000000000000004312142053613013566 0ustar libzookeeper_st 2 libzookeeper-st2 debian/build.xml0000644000000000000000000000160012142053613011001 0ustar debian/zookeeper.install0000644000000000000000000000062412142053613012560 0ustar bin/zkCleanup.sh /usr/share/zookeeper/bin/ bin/zkCli.sh /usr/share/zookeeper/bin/ bin/zkServer.sh /usr/share/zookeeper/bin/ build/contrib/ZooInspector/zookeeper-ZooInspector.jar /usr/share/zookeeper/zooinspector debian/conf_example /etc/zookeeper/ debian/zooinspector /usr/bin src/contrib/zooinspector/config/* /etc/zookeeper/zooinspector src/contrib/zooinspector/icons /usr/share/zookeeper/zooinspector debian/libzookeeper-java-doc.docs0000644000000000000000000000004212142053613014205 0ustar build/docs/api build/docs/dev-api debian/libzookeeper-mt2.shlibs0000644000000000000000000000004312142053613013560 0ustar libzookeeper_mt 2 libzookeeper-mt2 debian/zookeeper.links0000644000000000000000000000027012142053613012227 0ustar /etc/zookeeper/conf/environment /usr/share/zookeeper/bin/zkEnv.sh /etc/zookeeper/conf/myid /var/lib/zookeeper/myid /etc/zookeeper/zooinspector /usr/share/zookeeper/zooinspector/config debian/libzookeeper-java.docs0000644000000000000000000000001312142053613013440 0ustar README.txt debian/libzookeeper-java-doc.doc-base.dev-api0000644000000000000000000000050612142053613016263 0ustar Document: libzookeeper-java-dev-api Title: internal JavaDoc for zookeeper developers Author: Apache Software Fondation Abstract: This is the internal JavaDoc for zookeeper Section: Programming/Java Format: HTML Index: /usr/share/doc/libzookeeper-java/dev-api/index.html Files: /usr/share/doc/libzookeeper-java/dev-api/*.html debian/libzookeeper-mt-dev.install.in0000644000000000000000000000012612142053613015043 0ustar /usr/include /usr/lib/*/*_mt.a /usr/lib/__ARCH__ /usr/lib/*/*_mt.so /usr/lib/__ARCH__ debian/gbp.conf0000644000000000000000000000004112142053613010575 0ustar [DEFAULT] debian-branch = master debian/compat0000644000000000000000000000000212142053613010361 0ustar 9 debian/changelog0000644000000000000000000002337612155163355011061 0ustar zookeeper (3.4.5+dfsg-1) unstable; urgency=low * Upload to unstable. * d/p/fixes/ZOOKEEPER-740: Cherry picked fix from upstream bugtracker to resolve issue with slow running add_auth calls with multi-threaded client. * d/rules: Disable mt client tests due to test library incompatibility with libc 2.17. * d/rules: Drop override_dh_installdocs, no longer required. * d/control: Tweak depends for libzookeeper-java{-doc} to be Java policy compliant. -- James Page Mon, 06 May 2013 18:27:16 -0700 zookeeper (3.4.5+dfsg-1~exp2) experimental; urgency=low * d/conf_example/environment: Add missing jars to zookeeper CLASSPATH for 3.4.5 release. * d/control: Update VCS fields to be canonical. -- James Page Thu, 28 Feb 2013 09:26:11 +0000 zookeeper (3.4.5+dfsg-1~exp1) experimental; urgency=low * New upstream release (Closes: #699120, LP: #1107400, #954160): - d/p/ZOOKEEPER-{1374,1033}: Dropped, included upstream. - Refreshed remaining patches. - Drop bookkeeper support, now a separate project. - d/control: Added new BD's on netty, slf4j and mockito. - d/zookeeper.{install,cron.daily}: Drop scheduled transaction log purging as now handled internally. * d/control: Bumped Standards-Version, no changes. * d/control: Dropped obsolete DM-Upload-Allowed. * Sync Ubuntu changes: - d/rules: Only execute native test suite on i386 and amd64 architectures; its a bit racey and does not execute reliably on others. * d/rules,zookeeperd.upstart: Rejig now that debhelper in Debian and Ubuntu does the right things with init and upstart configs. * d/rules: Disable native tests on Ubuntu due to incompatibility in test framework with glibc 2.17. -- James Page Thu, 07 Feb 2013 10:48:31 +0000 zookeeper (3.3.6+dfsg-1) experimental; urgency=low * Re-sync with Ubuntu. * New upstream release: - Dropped patches for ZOOKEEPER-1403 and ZOOKEEPER-1431; included upstream. - Refreshed all other patches. * d/{watch,orig-tar.sh,README.source}: Repack upstream tarball using uscan to ease new upstream releases. * d/control: Version debhelper (>= 9~). * d/rules: Refactor contrib builds to use properties file. * d/ant.properties: Collate properties for contrib builds ensuring that bytecode built is backwards compatible. -- James Page Wed, 19 Sep 2012 10:08:46 +0100 zookeeper (3.3.5+dfsg1-2) unstable; urgency=low * d/patches/fixes/ZOOKEEPER-1431: Fix up memory leak in zookeeper python binding which results in significant memory growth for large result sets (Closes: #665962). Thanks to Johan Rydberg for identifying this bug and Kapil Thangavelu for the patch. -- James Page Mon, 28 May 2012 11:51:03 +0100 zookeeper (3.3.5+dfsg1-1.1) unstable; urgency=low * Non maintainer upload. * Fix build failure with GCC 4.7. -- Matthias Klose Thu, 10 May 2012 18:00:25 +0200 zookeeper (3.3.5+dfsg1-1) unstable; urgency=low * New upstream bugfix release. - d/fix-broken-c-client-unittest.patch: Dropped - accepted upstream. - Refreshed all other patches. * Bumped Standards-Version: 3.9.3. * Fix issue with quoting of parameters in zkCli.sh (Closes: #661837): - d/patches/fixes/ZOOKEEPER-1403: Ensure parameters are correctly quoted - thanks to John Eikenberry for this fix. -- James Page Wed, 21 Mar 2012 21:20:30 +0000 zookeeper (3.3.4+dfsg1-3) unstable; urgency=low * Sync changes from Ubuntu: - Switch zookeeperd upstart configuration to use start-stop-daemon. Thanks to Clint Byrum for this fix. - Enable C and Java test suites: - d/patches/fixes/ZOOKEEPER-1374: Use __sync_* primitives instead of ASM code when available to improve portability across supported platforms. - d/patches/fix-broken-c-client-test.patch: Fixes the unit test so it will pass with EINVAL which is the correct error. Thanks to Clint Byrum for this fix. - d/rules: Enable C client test suite for all architectures. - d/rules: Only run core Java test suite when building Architecture: all packages. -- James Page Mon, 30 Jan 2012 13:21:21 +0000 zookeeper (3.3.4+dfsg1-2) unstable; urgency=low * Added new libzookeeper-st{2,-dev} packages (Closes: #650938) and renamed libzookeeper{2,-dev} -> libzookeeper-mt{2,-dev}. * Added transitional package libzookeeper2 -> libzookeeper-mt2. * Convert libzookeeper-{st,mt}2 for MultiArch support. * Disable detection of cygwin as not relevant for Debian based installs and complicates configuration (Closes: #650882). Thanks to Akira Kitada for this patch. * Really close RFH (Closes: #579791). -- James Page Mon, 12 Dec 2011 13:31:47 +0000 zookeeper (3.3.4+dfsg1-1) unstable; urgency=low [ James Page ] * New upstream release: - d/patches/fixes/ZOOKEEPER-1117: Dropped - fix included upstream. - Refreshed patches. * Added support for upstart under Ubuntu (LP: #862762): - d/rules,d/zookeeperd.upstart.in: Detect Ubuntu and swap in provided upstart configuration if required. - d/ubuntu|debian_control_vars,d/control,d/rules: Provide different Depends for zookeeperd package when building under Ubuntu/Debian. * Enabled C and Java test suites: - d/control,d/compat: Bumped debhelper compat level to 8 to allow arch/indep overrides. - d/rules: Enable test suites for -arch and -indep builds. - d/patches/debian/patch-build-system: Patch unit testing to exclude InvalidSnapshot and Upgrade tests (non-free data) and to pickup junit4 from system library. - d/rules: Disable test suite execution for the time being as does not run reliably. * Close RFH for this package (LP: #579791). [ Damien Raude-Morvan ] * Add DMUA flag for James Page. * Build-Depends on procps for test suite. -- James Page Thu, 01 Dec 2011 15:03:53 +0000 zookeeper (3.3.3+dfsg2-2) unstable; urgency=low * Updated patch for ZOOKEEPER-1117 with fixes accepted into zookeeper 3.4.0 upstream; should also resolve FTBFS on ia64. * Close RFH from original maintainer (Closes: #602694). * debian/zookeeper.cron.daily: handle return code of 1 so daily cron job does not produce error emails when the package is removed but not purged (Closes: #582757). Thanks to Clint Byrum for this fix. -- James Page Wed, 31 Aug 2011 08:51:04 +0100 zookeeper (3.3.3+dfsg2-1) unstable; urgency=low * Re-enable python 2.7 modules (Closes: #633690): - debian/control: X-Python-Version: >= 2.6 * debian/copyright: added EPL-1.0 for src/contrib/zooinspector/icons/*. * debian/patches/fixes/ZOOKEEPER-1033: Cherry picked patch from 3.4.0 so that headers for c bindings are installed to /usr/include/zookeeper. * Purged additional non-DFSG files from upstream source: - src/java/test/data/* : invalid snapshot and upgrade testing data. -- James Page Wed, 13 Jul 2011 10:01:47 +0100 zookeeper (3.3.3+dfsg1-1) unstable; urgency=low * New upstream release. * Resolve FTBFS on mips and hppa - platforms should not be supported as zookeeper needs default-jdk >= 1:1.6 (Closes: #626020,#594970). * Added myself to Uploaders. * Removed Thomas Koch from Uploaders - thanks for all of your work. * Bumped Standards-Version: 3.9.2; no changes. * Transition to dh_python2. * Fixed FTBFS due to -Werror actually working and causing build failures in gcc >= 4.6.1 (Closes: #625441). * debian/bin/zkPurgeTxnLog.sh: Switch DATADIR and DATALOGDIR to match parameter ordering in Zookeeper code (Closes: #601383) - thanks to Paul Paradise for identifying this issue and the fix. * debian/copyright: upgrade to DEP-5 format. -- James Page Tue, 12 Jul 2011 16:56:06 +0100 zookeeper (3.3.1+dfsg1-2) unstable; urgency=low * FIX: cronjob, init.d fail after package removal. Closes: #582757 -- Thomas Koch Tue, 01 Jun 2010 13:25:34 +0200 zookeeper (3.3.1+dfsg1-1) unstable; urgency=low * new upstream version * started over testing a new git layout for packaging -- Thomas Koch Tue, 18 May 2010 09:36:16 +0200 zookeeper (3.3.0+dfsg1-1) unstable; urgency=low * new upstream version * packaged zooinspector contrib * packages zktreeutil contrib * Made debian/rules a bit more sane -- Thomas Koch Tue, 27 Apr 2010 13:52:30 +0200 zookeeper (3.2.2+dfsg3-3) unstable; urgency=low * remove /var/run/zookeeper when purging the package * zookeeperd.init creates /var/run/zookeeper now (Closes: #569972) * cronjob to purge old zookeeper data * more elaborate config example * superfluous /var/run/zookeeper entry in zookeeper.dirs * fix lintian tag debian-rules-ignores-make-clean-error * don't install executables to /usr/bin without manpages and proper names * Use Built-in functions for atomic memory access instead of hard-coded assembler. Thx Matthias Klose. Closes: #568618. * move executables to /usr/lib/... instead of /usr/share/... -- Thomas Koch Wed, 24 Feb 2010 15:02:09 +0100 zookeeper (3.2.2+dfsg3-2) unstable; urgency=low * Build C and Python bindings. Thanks to Matthias Klose. * Corrected dependencies versions in debian/control. -- Thomas Koch Thu, 28 Jan 2010 12:07:38 +0100 zookeeper (3.2.2+dfsg3-1) unstable; urgency=low * New repackaging after FTP rejection due to overseen license issues. * New repackaging of upstream tarball to exclude generated code. * Initial release. (Closes: #561947) -- Thomas Koch Fri, 27 Jan 2010 16:41:22 +0100 debian/source/0000755000000000000000000000000012142053613010463 5ustar debian/source/format0000644000000000000000000000001412142053613011671 0ustar 3.0 (quilt) debian/copyright0000644000000000000000000003317012142053613011122 0ustar Format: http://dep.debian.net/deps/dep5/ Upstream-Name: Apache Zookeeper Source: http://hadoop.apache.org/zookeeper/releases.html Files: * Copyright: 2008-2009, The Apache Software Foundation License: Apache-2.0 Files: src/contrib/zooinspector/src/java/com/* debian/patches/add_jtoaster_source_to_zooinspector Copyright: Daniele Piras ("danielepiras80", no email). License: Apache-2.0 Files: src/contrib/zooinspector/icons/* Copyright: Unknown License: EPL-1.0 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. . 1. DEFINITIONS . "Contribution" means: . a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor: i) changes to the Program, and ii) additions to the Program; where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. "Contributor" means any person or entity that distributes the Program. . "Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. . "Program" means the Contributions distributed in accordance with this Agreement. . "Recipient" means anyone who receives the Program under this Agreement, including all Contributors. . 2. GRANT OF RIGHTS . a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. 3. REQUIREMENTS . A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: . a) it complies with the terms and conditions of this Agreement; and b) its license agreement: i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. When the Program is made available in source code form: . a) it must be made available under this Agreement; and b) a copy of this Agreement must be included with each copy of the Program. Contributors may not remove or alter any copyright notices contained within the Program. . Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. . 4. COMMERCIAL DISTRIBUTION . Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. . For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. . 5. NO WARRANTY . EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. . 6. DISCLAIMER OF LIABILITY . EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. . 7. GENERAL . If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. . If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. . All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. . Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. . This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. Files: src/c/src/hashtable/* Copyright: 2002, 2004, Christopher Clark License: BSD Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . * Neither the name of the original author; nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Files: debian/* Copyright: 2010, Thomas Koch , 2011, Canonical Ltd (http://www.canonical.com) License: Apache-2.0 License: Apache-2.0 On Debian GNU/Linux system you can find the complete text of the Apache-2.0 license in '/usr/share/common-licenses/Apache-2.0' debian/zookeeperd.init0000644000000000000000000001051312142053613012217 0ustar #! /bin/sh ### BEGIN INIT INFO # Provides: zookeeper # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: centralized coordination service # Description: ZooKeeper is a centralized service for maintaining # configuration information, naming, providing distributed # synchronization, and providing group services. ### END INIT INFO # Author: Foo Bar # # Please remove the "Author" lines above and replace them # with your own name if you copy and modify this script. # Do NOT "set -e" # Exit if the package is not installed # Test that libzookeeper-java is installed [ -r "/usr/share/java/zookeeper.jar" ] || exit 0 # Test that zookeeper is installed and not purged [ -r "/etc/zookeeper/conf/environment" ] || exit 0 . /etc/zookeeper/conf/environment # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="centralized coordination service" SCRIPTNAME=/etc/init.d/$NAME # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions is_running() { start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $JAVA --user $USER --test > /dev/null \ || return 1 return 0 } # # Function that starts the daemon/service # do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started is_running || return 1 if [ ! -d $PIDDIR ] then mkdir -p $PIDDIR fi chown $USER:$GROUP $PIDDIR if [ ! -d $ZOO_LOG_DIR ] then mkdir -p $ZOO_LOG_DIR fi chown $USER:$GROUP $ZOO_LOG_DIR start-stop-daemon --start --quiet \ --pidfile $PIDFILE \ --make-pidfile \ --chuid $USER:$GROUP \ --background \ --exec $JAVA -- \ -cp $CLASSPATH \ $JAVA_OPTS \ -Dzookeeper.log.dir=${ZOO_LOG_DIR} \ -Dzookeeper.root.logger=${ZOO_LOG4J_PROP} \ $ZOOMAIN $ZOOCFG \ || return 2 } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred is_running && return 1 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. [ "$RETVAL" = 0 ] && rm -f $PIDFILE return "$RETVAL" } case "$1" in start) if [ "x$JMXDISABLE" = "x" ] then [ "$VERBOSE" != no ] && log_action_msg "$NAME: JMX enabled by default" # for some reason these two options are necessary on jdk6 on Ubuntu # accord to the docs they are not necessary, but otw jconsole cannot # do a local attach JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY" else [ "$VERBOSE" != no ] && log_action_msg "$NAME: JMX disabled by user request" fi [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) status_of_proc -p $PIDFILE "$NAME" "$NAME" && exit 0 || exit $? ;; restart|force-reload) # # If the "reload" option is implemented then remove the # 'force-reload' alias # log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac : debian/zookeeper.postrm0000644000000000000000000000101712142053613012433 0ustar #!/bin/sh set -e NAME="zookeeper" GROUP=$NAME USER=$NAME # shamelessly copied from debian mysql-server package... # # - Remove the zookeeper user only after all his owned files are purged. # if [ "$1" = "purge" ]; then # we remove the zookeeper user only after all his owned files are purged rm -rf /var/lib/$NAME rm -rf /var/log/$NAME rm -rf /var/run/$NAME # --remove-all-files takes ages, so delete manually deluser --system $USER || true delgroup --system --only-if-empty $GROUP || true fi #DEBHELPER# debian/build-override.xml0000644000000000000000000000147612142053613012631 0ustar debian/watch0000644000000000000000000000023712142053613010216 0ustar version=3 opts=dversionmangle=s/\+dfsg\d+$// \ http://mirrors.enquira.co.uk/apache/zookeeper/stable/zookeeper-([0-9.]+).tar.gz \ debian debian/orig-tar.sh debian/libzookeeper-st2.install.in0000644000000000000000000000004712142053613014361 0ustar /usr/lib/*/*_st.so.* /usr/lib/__ARCH__ debian/zookeeper.postinst0000644000000000000000000000141012142053613012767 0ustar #!/bin/sh set -e NAME="zookeeper" GROUP=$NAME USER=$NAME DATADIR="/var/lib/zookeeper" # shamelessly copied from debian mysql-server package... if ! getent group $GROUP >/dev/null ; then # Adding system group addgroup --system $GROUP >/dev/null fi # creating zookeeper user if he isn't already there if ! getent passwd $USER >/dev/null ; then # Adding system user adduser \ --system \ --disabled-login \ --ingroup $GROUP \ --home $DATADIR \ --gecos "ZooKeeper" \ --shell /bin/false \ $USER >/dev/null fi chown $USER:$GROUP /var/log/$NAME chown $USER:$GROUP /var/lib/$NAME update-alternatives --install /etc/$NAME/conf $NAME-conf /etc/$NAME/conf_example 5 #DEBHELPER# debian/libzookeeper-java.jlibs0000644000000000000000000000002412142053613013615 0ustar build/zookeeper.jar debian/libzookeeper-mt2.install.in0000644000000000000000000000004712142053613014353 0ustar /usr/lib/*/*_mt.so.* /usr/lib/__ARCH__ debian/control0000644000000000000000000001556712155162240010605 0ustar Source: zookeeper Section: java Priority: optional Maintainer: Debian Java Maintainers Uploaders: James Page Homepage: http://zookeeper.apache.org Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-java/zookeeper.git Vcs-Git: git://anonscm.debian.org/pkg-java/zookeeper.git Standards-Version: 3.9.4 Build-Depends: ant (>= 1.6.0), ant-optional, autoconf, automake, debhelper (>= 9~), default-jdk (>= 1:1.6), default-jdk-doc, help2man, javacc, javahelper (>= 0.28), junit4, libboost-dev, libcppunit-dev, libjline-java, liblog4cxx10-dev, liblog4j1.2-java (>> 1.2.15-8), libmockito-java, libnetty-java, libslf4j-java, libtool, libxerces2-java, libxml2-dev, procps, python-all-dev (>= 2.6.6-3~) X-Python-Version: >= 2.6 Package: libzookeeper-java Architecture: all Depends: libjline-java, liblog4j1.2-java (>> 1.2.15-8), libnetty-java, libslf4j-java, libxerces2-java, ${misc:Depends} Recommends: libzookeeper-java-doc Description: Core Java libraries for zookeeper ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains the java .jar files. Package: zookeeper Architecture: all Depends: adduser, default-jre-headless | java6-runtime-headless, libzookeeper-java (= ${binary:Version}), ${misc:Depends} Description: High-performance coordination service for distributed applications ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains the shell scripts and an example configuration but does not automatically start up the service. The example configuration is installed with the update-alternatives mechanism. Package: zookeeperd Architecture: all Depends: lsb-base (>= 3.2-14), zookeeper (= ${binary:Version}), ${misc:Depends} Description: Init control scripts for zookeeper ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains init.d scripts to start and stop zookeeper and starts zookeeper on installation. Package: libzookeeper-java-doc Section: doc Architecture: all Depends: ${misc:Depends} Description: API Documentation for zookeeper ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. Package: libzookeeper-mt2 Architecture: any Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends} Description: Multi threaded C bindings for zookeeper ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains the multi-threaded libraries for the C bindings. Package: libzookeeper-st2 Architecture: any Section: libs Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} Depends: ${misc:Depends}, ${shlibs:Depends} Description: Single threaded C bindings for zookeeper ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains the single-threaded libraries for the C bindings. Package: libzookeeper2 Architecture: any Priority: extra Section: oldlibs Depends: libzookeeper-mt2 (= ${binary:Version}), ${misc:Depends} Description: C bindings for zookeeper - transitional package ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . Transitional package for renaming of libzookeeper2 -> libzookeeper-mt2. Package: libzookeeper-mt-dev Architecture: any Section: libdevel Replaces: libzookeeper-dev Provides: libzookeeper-dev Depends: libzookeeper-mt2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Conflicts: libzookeeper-dev Description: Development files for multi threaded zookeeper C bindings ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains the development files for the multi threaded C bindings. Package: libzookeeper-st-dev Architecture: any Section: libdevel Replaces: libzookeeper-dev Provides: libzookeeper-dev Depends: libzookeeper-st2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Conflicts: libzookeeper-dev Description: Development files for single threaded zookeeper C bindings ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains the development files for the single threaded C bindings. Package: zookeeper-bin Architecture: any Section: misc Depends: libzookeeper-mt2 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Description: Command line utilities for zookeeper ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains additional zookeeper command line utilities using the C binding. See the "zookeeper" package for command line utilities using the java binding. Package: python-zookeeper Architecture: any Section: python XB-Python-Version: ${python:Versions} Depends: libzookeeper-mt2 (= ${binary:Version}), ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} Description: Python bindings for zookeeper ZooKeeper is a centralized, reliable, service for maintaining configuration information, naming, providing distributed synchronization, and group services. All of these kinds of services are used in some form or another by distributed applications. . This package contains the Python bindings. debian/bin/0000755000000000000000000000000012142053613007733 5ustar debian/bin/zkPurgeTxnLog.sh0000755000000000000000000000304112142053613013053 0ustar #!/usr/bin/env sh # This file has been written 2010 by thomas.koch@ymc.ch and is released under # the following license: # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # Version 2, December 2004 # # Copyright (C) 2004 Sam Hocevar # 14 rue de Plaisance, 75014 Paris, France # Everyone is permitted to copy and distribute verbatim or modified # copies of this license document, and changing it is allowed as long # as the name is changed. # # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION # # 0. You just DO WHAT THE FUCK YOU WANT TO. # # Read more about this license at http://sam.zoy.org/wtfpl/ # You can also use it under any other license that complies to the Debian Free # Software Guidelines # This script should be called from a cron job to purge old log and snapshot # files from zookeeper. KEEPCOUNT=${KEEPCOUNT:-3} ZKENV=${ZKENV:-"/etc/zookeeper/conf/environment"} . $ZKENV ZOOCFG=${ZOOCFG:-$ZOOCFGDIR/zoo.cfg} if [ ! -r $ZOOCFG ] then echo "$ZOOCFG is not readable" exit 1 fi eval DATADIR=${DATADIR:-$(grep -e "^dataDir=" $ZOOCFG|sed s/.*dataDir.*=//)} eval DATALOGDIR=${DATALOGDIR:-$(grep -e "^dataLogDir=" $ZOOCFG|sed s/.*dataLogDir.*=//)} if [ ! -w $DATADIR ] then echo "DATADIR $DATADIR is not writable" exit 1 fi if [ "x$DATALOGDIR" = "x" ] then DATALOGDIR=$DATADIR elif [ ! -w $DATALOGDIR ] then echo "DATALOGDIR $DATALOGDIR is not writable" exit 1 fi java -cp $CLASSPATH $JVMFLAGS \ org.apache.zookeeper.server.PurgeTxnLog $DATALOGDIR $DATADIR -c $KEEPCOUNT debian/zookeeper-bin.manpages0000644000000000000000000000001712142053613013447 0ustar zktreeutil.man debian/zookeeper.classpath0000644000000000000000000000013012142053613013064 0ustar usr/share/zookeeper/zooinspector/zookeeper-ZooInspector.jar log4j-1.2.jar zookeeper.jar