Paladox has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/360867 )

Change subject: test
......................................................................

test

In order to debianize kafka sensibly I had to create my own build system
based on Makefiles. These are stored in debian/patches source directory.
The key issue here is that per analytics request the branch chosen to
develop against was trunk since we will be using version 0.8 which has
not yet been released. The package depends on default-jre, adduser,
scala library and on all jar files that can be used from the system.
One point of concern is the velocity package which depends on ant, a
package we probably don't want installed in production.
Note: package libjoptsimple-java from precise has not been used because
the package would not compile with version 3.1 but only with 3.2

Change-Id: I55e65084eb5444a03e63cc479f9f3b72cf07a146
---
M debian/README.Debian
M debian/bin/kafka
M debian/changelog
M debian/control
M debian/gbp.conf
A debian/kafka.default
A debian/kafka.dirs
A debian/kafka.init
A debian/kafka.install
A debian/kafka.links
A debian/kafka.postinst
A debian/kafka.postrm
M debian/patches/kafka_data_dirs_fixes.patch
M debian/patches/logging_to_var_log.patch
M debian/patches/our-own-build-system.patch
M debian/patches/series
M debian/rules
M debian/source/include-binaries
A ext/metrics-annotation-3.0.0-c0c8be71.jar
A ext/metrics-core-3.0.0-c0c8be71.jar
A ext/zkclient-20120522.jar
21 files changed, 564 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/debs/kafka 
refs/changes/67/360867/1

diff --git a/debian/README.Debian b/debian/README.Debian
index fa06c5a..d2e10e0 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -5,6 +5,7 @@
 for this is to satisfy debian policy that no internet connection should
 be required during package building as well as security concers about
 the downloaded JAR files by sbt
+<<<<<<< HEAD
 
 How to build this package
 -------------------------
@@ -136,3 +137,5 @@
 debian/patches will also need changes
 
 but you will need your good sense in most cases
+=======
+>>>>>>> 918be683... Debianize Kafka
diff --git a/debian/bin/kafka b/debian/bin/kafka
index 2ff0bf5..2cf1d1e 100755
--- a/debian/bin/kafka
+++ b/debian/bin/kafka
@@ -1,7 +1,10 @@
 #!/bin/sh
 
 # kafka
+<<<<<<< HEAD
 #
+=======
+>>>>>>> 918be683... Debianize Kafka
 # Wrapper script for Kafka executable classes.
 # This script is a single replacement for the
 # shell scripts shipped with Kafka source bin/
@@ -10,6 +13,7 @@
 
 SCRIPT_NAME=$(basename "$0")
 KAFKA_CONFIG=${KAFKA_CONFIG:-/etc/kafka}
+<<<<<<< HEAD
 LOG_DIR=${LOG_DIR:-/var/log/kafka}
 
 # Set ZOOKEEPER_OPT if ZOOKEEPER_URL is set and --zookeeper has not
@@ -19,6 +23,8 @@
     ZOOKEEPER_OPT="--zookeeper ${ZOOKEEPER_URL}"
 fi
 
+=======
+>>>>>>> 918be683... Debianize Kafka
 
 USAGE="Usage:
 
@@ -26,6 +32,7 @@
 Run $SCRIPT_NAME <command> with zero arguments/options to see command usage.
 
 Commands:
+<<<<<<< HEAD
   $SCRIPT_NAME topic                      [opts]
 
   $SCRIPT_NAME console-producer           [opts]
@@ -62,11 +69,35 @@
   KAFKA_LOG4J_OPTS           - Any log4j options.  Especially 
-Dlog4j.configuration.  This is set by default.
   JAVA_OPTS                  - Any extra JVM options.
   KAFKA_OPTS                 - Any extra options you want to pass.
+=======
+  $SCRIPT_NAME server-start              <server.properties> (Default: 
$KAFKA_CONFIG/server.properties)
+  $SCRIPT_NAME server-stop
+  $SCRIPT_NAME console-producer          [opts]
+  $SCRIPT_NAME console-consumer          [opts]
+  $SCRIPT_NAME producer-shell            [opts]
+  $SCRIPT_NAME producer-perf-test        [opts]
+  $SCRIPT_NAME replay-log-producer       [opts]
+  $SCRIPT_NAME simple-consumer-shell     [opts]
+  $SCRIPT_NAME simple-consumer-perf-test [opts]
+  $SCRIPT_NAME zookeeper-start           <zookeeper.properties> (Default: 
$KAFKA_CONFIG/zookeeper.properties)
+  $SCRIPT_NAME zookeeper-stop
+  $SCRIPT_NAME zookeeper-shell           [opts]
+
+Environment Variables:
+  KAFKA_CONFIG - location of Kafka config files.  Default: /etc/kafka
+  JMX_PORT     - Set this to expose JMX.  This is set by default for brokers 
and producers.
+
+NOTE:  the *-start and *-stop commands should not be used for production.  They
+are maintained here as they can be helpful for debugging and troubleshooting 
new
+Kafka Broker setups.
+
+>>>>>>> 918be683... Debianize Kafka
 "
 
 usage() { echo "${USAGE}"; }
 
 
+<<<<<<< HEAD
 # Builds CLASSPATH and execs java with appropriate main class
 kafka_run_class() {
     if [ $# -lt 1 ];
@@ -79,6 +110,15 @@
         SCALA_VERSION=2.8.0
     fi
 
+=======
+# Builds CLASSPATH and execs $1 as a java class.
+kafka_run_class() {
+    if [ $# -lt 1 ]; then
+      echo "USAGE: $0 classname [opts]"
+      exit 1
+    fi
+
+>>>>>>> 918be683... Debianize Kafka
     # if these were not yet set (by user or defaults file),
     # then go ahead and set them.
     if [ -z "$KAFKA_JMX_OPTS" ]; then
@@ -88,6 +128,7 @@
         KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS 
-Dcom.sun.management.jmxremote.port=$JMX_PORT "
     fi
 
+<<<<<<< HEAD
     # Log4j settings
     if [ -z "$KAFKA_LOG4J_OPTS" ]; then
       
KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$KAFKA_CONFIG/tools-log4j.properties"
@@ -95,6 +136,10 @@
 
     if [ -z "$KAFKA_OPTS" ]; then
         KAFKA_OPTS=""
+=======
+    if [ -z "$KAFKA_OPTS" ]; then
+        KAFKA_OPTS="-Xmx512M -server  
-Dlog4j.configuration=file:$KAFKA_CONFIG/log4j.properties"
+>>>>>>> 918be683... Debianize Kafka
     fi
 
     if [ -z "$JAVA_HOME" ]; then
@@ -103,6 +148,7 @@
         JAVA="$JAVA_HOME/bin/java"
     fi
 
+<<<<<<< HEAD
     # Memory options
     if [ -z "$KAFKA_HEAP_OPTS" ]; then
         KAFKA_HEAP_OPTS="-Xmx256M"
@@ -326,11 +372,97 @@
     fi
 
     echo kafka_run_class org.apache.zookeeper.ZooKeeperMain $ARGS
+=======
+    # Setting the classpath to all the needed dependencies.
+    
CLASSPATH=$CLASSPATH:/usr/share/java/scala-library.jar:/usr/share/java/jetty.jar:/usr/share/java/jetty-util.jar:/usr/share/java/zookeeper.jar:/usr/share/java/velocity-1.7.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/servlet-api-2.5.jar:/usr/share/java/jsp-api-2.1.jar:/usr/share/java/qdox.jar:/usr/share/java/paranamer.jar:/usr/share/java/oro.jar:/usr/share/java/objenesis.jar:/usr/share/java/log4j-1.2-1.2.16.jar:/usr/share/java/junit4.jar:/usr/share/java/joda-time.jar:/usr/share/java/jets3t.jar:/usr/share/java/jackson-core.jar:/usr/share/java/jackson-mapper.jar:/usr/share/java/hsqldb.jar:/usr/share/java/commons-cli.jar:/usr/share/java/commons-codec.jar:/usr/share/java/commons-collections.jar:/usr/share/java/commons-compress.jar:/usr/share/java/commons-el.jar:/usr/share/java/commons-httpclient.jar:/usr/share/java/commons-io.jar:/usr/share/java/commons-lang.jar:/usr/share/java/commons-logging.jar:/usr/share/java/commons-net.jar:/usr/share/java/cglib.jar:/usr/share/java/asm3.jar:/usr/share/java/snappy-java-1.0.4.1.jar:/usr/share/java/jasper-runtime-5.5.12.jar:/usr/share/java/jsp-api-2.1-6.1.14.jar:/usr/share/java/avro-1.4.0.jar:/usr/share/java/kfs-0.3.jar:/usr/share/java/jsp-2.1-6.1.14.jar:/usr/share/java/scalatest-1.2.jar:/usr/share/java/paranamer-ant-2.2.jar:/usr/share/java/paranamer-generator-2.2.jar:/usr/share/java/pig-0.8.0.jar:/usr/share/java/zkclient-20120522.jar:/usr/share/java/easymock-3.0.jar:/usr/share/java/jasper-compiler-5.5.12.jar:/usr/share/java/hadoop-core-0.20.2.jar:/usr/share/java/xmlenc-0.52.jar:/usr/share/java/jopt-simple-3.2.jar:/usr/share/kafka/kafka.jar:/usr/share/kafka/hadoop-consumer.jar:/usr/share/kafka/hadoop-producer.jar:/usr/share/kafka/kafka-kafka-examples.jar:/usr/share/kafka/kafka-perf.jar:/usr/share/java/metrics-annotation-3.0.0-c0c8be71.jar:/usr/share/java/metrics-core-3.0.0-c0c8be71.jar
+
+    # echo $JAVA $KAFKA_OPTS $KAFKA_JMX_OPTS -cp $CLASSPATH $@
+    $JAVA $KAFKA_OPTS $KAFKA_JMX_OPTS -cp $CLASSPATH $@
+}
+
+
+cmd_server_start() {
+    # default server.properties to $KAFKA_CONFIG/server.properties
+    server_properties=${1:-${KAFKA_CONFIG}/server.properties}
+
+    export JMX_PORT=${JMX_PORT:-9999}
+    kafka_run_class kafka.Kafka "${server_properties}"
+}
+
+cmd_server_stop() {
+    ps ax | grep -i 'kafka.Kafka' | grep -v grep | awk '{print $1}' | xargs 
kill -SIGINT
+}
+
+cmd_zookeeper_start() {
+    # default zookeeper.properties to $KAFKA_CONFIG/zookeeper.properties
+    export JMX_PORT=${JMX_PORT:-9998}
+    zookeeper_properties=${1:-${KAFKA_CONFIG}/zookeeper.properties}
+    kafka_run_class org.apache.zookeeper.server.quorum.QuorumPeerMain 
${zookeeper_properties}
+}
+
+cmd_zookeeper_stop() {
+    ps ax | grep -i 'zookeeper' | grep -v grep | awk '{print $1}' | xargs kill 
-SIGINT
+}
+
+cmd_console_consumer() {
+    export KAFKA_OPTS="-Xmx512M -server -Dcom.sun.management.jmxremote 
-Dlog4j.configuration=file:${KAFKA_CONFIG}/kafka-console-consumer-log4j.properties"
+    kafka_run_class kafka.consumer.ConsoleConsumer $@
+}
+
+cmd_console_producer() {
+    export JMX_PORT=${JMX_PORT:-9990}
+    kafka_run_class kafka.producer.ConsoleProducer $@
+}
+
+cmd_consumer_shell() {
+    kafka_run_class kafka.tools.ConsumerShell $@
+}
+
+cmd_producer_shell() {
+    export JMX_PORT=${JMX_PORT:-9991}
+    kafka_run_class kafka.tools.ProducerShell $@
+}
+
+cmd_simple_consumer_shell() {
+    kafka_run_class kafka.tools.SimpleConsumerShell $@
+}
+
+cmd_consumer_perf_test() {
+    kafka_run_class kafka.perf.ConsumerPerformance $@
+}
+
+cmd_producer_perf_test() {
+    kafka_run_class kafka.perf.ProducerPerformance $@
+}
+
+cmd_simple_consumer_perf_test() {
+    kafka_run_class kafka.tools.SimpleConsumerPerformance $@
+}
+
+cmd_replay_log_producer() {
+    export JMX_PORT=${JMX_PORT:-9992}
+    export KAFKA_OPTS="-Xmx512M -server -Dcom.sun.management.jmxremote 
-Dlog4j.configuration=file:${KAFKA_CONFIG}/log4j.properties"
+    kafka-run-class kafka.tools.ReplayLogProducer $@
+}
+
+cmd_zookeeper_shell() {
+    if [ $# -ne 1 ];
+    then
+        echo "USAGE: ${SCRIPT_NAME} zookeeper-shell zookeeper_host:port[/path]"
+        exit 1
+    fi
+
+    kafka-run-class org.apache.zookeeper.ZooKeeperMain -server $1
+>>>>>>> 918be683... Debianize Kafka
 }
 
 
 
 
+<<<<<<< HEAD
+=======
+
+>>>>>>> 918be683... Debianize Kafka
 # if no commands, print usage.
 if [ $# -lt 1 ]; then
     usage && exit 0
@@ -340,6 +472,7 @@
 while test $# != 0
 do
     case "$1" in
+<<<<<<< HEAD
     topic                           | \
     console-producer                | \
     console-consumer                | \
@@ -360,11 +493,18 @@
     zookeeper-start                 | \
     zookeeper-stop                  | \
     zookeeper-shell )
+=======
+    server-start | server-stop | zookeeper-start | zookeeper-stop | 
console-consumer | console-producer | consumer-shell | producer-shell | 
simple-consumer-shell )
+>>>>>>> 918be683... Debianize Kafka
         command="$1"; shift; break;
         shift;
         break;
         ;;
+<<<<<<< HEAD
     -h|--help|help)
+=======
+    -h|--help)
+>>>>>>> 918be683... Debianize Kafka
         usage
         exit 0
         ;;
diff --git a/debian/changelog b/debian/changelog
index 38305bc..8ebe169 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 kafka (0.8.1.1-6) precise; urgency=low
 
   * Use generic snappy version in bin/kafka CLASSPATH
@@ -62,6 +63,8 @@
 
  -- Alexandros Kosiaris <[email protected]>  Wed, 28 Aug 2013 16:50:14 
+0000
 
+=======
+>>>>>>> 918be683... Debianize Kafka
 kafka (0.8~20130610-1) unstable; urgency=low
 
   * Initial release.
diff --git a/debian/control b/debian/control
index 20472f0..dcc6fd2 100644
--- a/debian/control
+++ b/debian/control
@@ -2,8 +2,12 @@
 Section: misc
 Priority: optional
 Maintainer: Alexandros Kosiaris <[email protected]>
+<<<<<<< HEAD
 Build-Depends: debhelper (>= 9), openjdk-7-jdk | java7-jdk, javahelper (>= 
0.40),
  scala,
+=======
+Build-Depends: debhelper (>= 9), default-jdk, javahelper (>= 0.40),
+>>>>>>> 918be683... Debianize Kafka
  junit4,
  velocity,
  libasm3-java,
@@ -36,9 +40,15 @@
 Standards-Version: 3.9.3
 Homepage: http://kafka.apache.org
 
+<<<<<<< HEAD
 Package: kafka-common
 Architecture: all
 Depends: openjdk-7-jre | java7-runtime, scala-library, adduser, 
${java:Depends}, ${misc:Depends}
+=======
+Package: kafka
+Architecture: all
+Depends: default-jre, scala-library, adduser, ${java:Depends}, ${misc:Depends}
+>>>>>>> 918be683... Debianize Kafka
 Recommends: ${java:Recommends}
 Description: Apache Kafka is a distributed publish-subscribe messaging system
  Apache Kafka is designed to support the following
@@ -50,6 +60,7 @@
   distributing consumption over a cluster of consumer machines while
   maintaining per-partition ordering semantics.
   * Support for parallel data load into Hadoop.
+<<<<<<< HEAD
  .
  This package includes common Kafka .jar files.
 
@@ -100,3 +111,6 @@
   * Support for parallel data load into Hadoop.
  .
  This package includes init.d script and default file for a Kafka MirrorMaker.
+=======
+
+>>>>>>> 918be683... Debianize Kafka
diff --git a/debian/gbp.conf b/debian/gbp.conf
index 148ed7e..2978de7 100644
--- a/debian/gbp.conf
+++ b/debian/gbp.conf
@@ -1,4 +1,5 @@
 [DEFAULT]
+<<<<<<< HEAD
 upstream-tree=tag
 upstream-tag=upstream/%(version)s
 debian-tag=debian/%(version)s
@@ -7,3 +8,11 @@
 # this is how we invoke pbuilder, arguments passed to git-buildpackage will be
 # passed to dpkg-buildpackge in the chroot
 builder = /usr/bin/git-pbuilder
+=======
+debian-branch=debian
+export-dir=~/build-area/kafka
+# Change the following to use tags
+# once 0.8 is officially released.
+upstream-branch=trunk
+upstream-tree=branch
+>>>>>>> 918be683... Debianize Kafka
diff --git a/debian/kafka.default b/debian/kafka.default
new file mode 100755
index 0000000..4977469
--- /dev/null
+++ b/debian/kafka.default
@@ -0,0 +1,16 @@
+# whether to allow init.d script to start a kafka broker ("yes", "no")
+KAFKA_START=no
+
+# The default JMX_PORT for Kafka Brokers is 9999.
+# Set BROKER_JMX_PORT to something else to override this.
+# BROKER_JMX_PORT=9999
+
+# JMX options
+KAFKA_JMX_OPTS=${KAFKA_JMX_OPTS:="-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false"}
+
+# Memory sizes, and logging configuration
+KAFKA_OPTS=${KAFKA_OPTS:="-Xmx512M -server 
-Dlog4j.configuration=file:/etc/kafka/log4j.properties"}
+
+# User and group to run as
+KAFKA_USER=kafka
+KAFKA_GROUP=kafka
diff --git a/debian/kafka.dirs b/debian/kafka.dirs
new file mode 100644
index 0000000..2f77e96
--- /dev/null
+++ b/debian/kafka.dirs
@@ -0,0 +1,2 @@
+var/log/kafka
+var/spool/kafka
diff --git a/debian/kafka.init b/debian/kafka.init
new file mode 100755
index 0000000..4bcc953
--- /dev/null
+++ b/debian/kafka.init
@@ -0,0 +1,200 @@
+#!/bin/sh
+#
+# /etc/init.d/kafka -- startup script for the kafka distributed 
publish-subscribe messaging system
+#
+# Written by Alexandros Kosiaris <[email protected]>
+#
+### BEGIN INIT INFO
+# Provides:          kafka
+# Required-Start:    $local_fs $remote_fs $network
+# Required-Stop:     $local_fs $remote_fs $network
+# Should-Start:      $named
+# Should-Stop:       $named
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Start kafka
+# Description:       Start the kafka distributed publish-subscribe messaging 
system
+### END INIT INFO
+
+set -e
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+NAME="$(basename "$0" | sed 's/^[KS][0-9]\{2\}//')"
+DESC="broker"
+DEFAULT=/etc/default/$NAME
+
+if [ `id -u` -ne 0 ]; then
+       echo "You need root privileges to run this script"
+       exit 1
+fi
+
+# Make sure kafka is started with system locale
+if [ -r /etc/default/locale ]; then
+       . /etc/default/locale
+       export LANG
+fi
+
+. /lib/lsb/init-functions
+
+if [ -r /etc/default/rcS ]; then
+       . /etc/default/rcS
+fi
+
+# The following variables can be overwritten in $DEFAULT
+
+# Run kafka as this user ID and group ID
+KAFKA_USER=kafka
+KAFKA_GROUP=kafka
+KAFKA_START=yes
+
+JDK_DIRS="/usr/lib/jvm/default-java /usr/lib/jvm/java-6-sun 
/usr/lib/jvm/java-1.5.0-sun /usr/lib/j2sdk1.5-sun /usr/lib/j2sdk1.5-ibm"
+
+# Look for the right JVM to use
+for jdir in $JDK_DIRS; do
+    if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
+       JAVA_HOME="$jdir"
+    fi
+done
+export JAVA_HOME
+
+# Default Java options
+# Set java.awt.headless=true if JAVA_OPTS is not set so the
+# Xalan XSL transformer can work without X11 display on JDK 1.4+
+if [ -z "$JAVA_OPTS" ]; then
+       JAVA_OPTS="-Djava.awt.headless=true"
+fi
+
+# End of variables that can be overwritten in $DEFAULT
+
+# overwrite settings from default file
+if [ -f "$DEFAULT" ]; then
+       . "$DEFAULT"
+fi
+
+# Setting the classpath to all the needed dependencies.
+CLASSPATH=$CLASSPATH:/usr/share/java/scala-library.jar:/usr/share/java/jetty.jar:/usr/share/java/jetty-util.jar:/usr/share/java/zookeeper.jar:/usr/share/java/velocity-1.7.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/servlet-api-2.5.jar:/usr/share/java/jsp-api-2.1.jar:/usr/share/java/qdox.jar:/usr/share/java/paranamer.jar:/usr/share/java/oro.jar:/usr/share/java/objenesis.jar:/usr/share/java/log4j-1.2-1.2.16.jar:/usr/share/java/junit4.jar:/usr/share/java/joda-time.jar:/usr/share/java/jets3t.jar:/usr/share/java/jackson-core.jar:/usr/share/java/jackson-mapper.jar:/usr/share/java/hsqldb.jar:/usr/share/java/commons-cli.jar:/usr/share/java/commons-codec.jar:/usr/share/java/commons-collections.jar:/usr/share/java/commons-compress.jar:/usr/share/java/commons-el.jar:/usr/share/java/commons-httpclient.jar:/usr/share/java/commons-io.jar:/usr/share/java/commons-lang.jar:/usr/share/java/commons-logging.jar:/usr/share/java/commons-net.jar:/usr/share/java/cglib.jar:/usr/share/java/asm3.jar:/usr/share/java/snappy-java-1.0.4.1.jar:/usr/share/java/jasper-runtime-5.5.12.jar:/usr/share/java/jsp-api-2.1-6.1.14.jar:/usr/share/java/avro-1.4.0.jar:/usr/share/java/kfs-0.3.jar:/usr/share/java/jsp-2.1-6.1.14.jar:/usr/share/java/scalatest-1.2.jar:/usr/share/java/paranamer-ant-2.2.jar:/usr/share/java/paranamer-generator-2.2.jar:/usr/share/java/pig-0.8.0.jar:/usr/share/java/zkclient-20120522.jar:/usr/share/java/easymock-3.0.jar:/usr/share/java/jasper-compiler-5.5.12.jar:/usr/share/java/hadoop-core-0.20.2.jar:/usr/share/java/xmlenc-0.52.jar:/usr/share/java/jopt-simple-3.2.jar:/usr/share/kafka/kafka.jar:/usr/share/kafka/hadoop-consumer.jar:/usr/share/kafka/hadoop-producer.jar:/usr/share/kafka/kafka-kafka-examples.jar:/usr/share/kafka/kafka-perf.jar:/usr/share/java/metrics-annotation-3.0.0-c0c8be71.jar:/usr/share/java/metrics-core-3.0.0-c0c8be71.jar
+
+# Define other required variables
+KAFKA_PID="/var/run/$NAME.pid"
+
+kafka_sh() {
+       # Escape any double quotes in the value of JAVA_OPTS
+       JAVA_OPTS="$(echo $JAVA_OPTS | sed 's/\"/\\\"/g')"
+       JMX_PORT=${BROKER_JMX_PORT:-9999}
+       KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS 
-Dcom.sun.management.jmxremote.port=$JMX_PORT"
+
+       # Define the command to run kafka as a daemon
+       # set -a tells sh to export assigned variables to spawned shells.
+       KAFKA_ARGS="$JAVA_OPTS \
+               $KAFKA_OPTS \
+               $KAFKA_JMX_OPTS \
+               -cp $CLASSPATH \
+               kafka.Kafka /etc/kafka/server.properties"
+
+       # Run as a daemon
+       set +e
+
+       start-stop-daemon --start -b -u "$KAFKA_USER" -g "$KAFKA_GROUP" \
+               -c "$KAFKA_USER" -m -p "$KAFKA_PID" \
+               -x "$JAVA_HOME/bin/java" -- $KAFKA_ARGS
+       status="$?"
+       set +a -e
+       return $status
+}
+
+case "$1" in
+  start)
+       if [ -z "$JAVA_HOME" ]; then
+               log_failure_msg "no JDK found - please set JAVA_HOME"
+               exit 1
+       fi
+
+       if [ -n "$KAFKA_START" -a "$KAFKA_START" != "yes" ]; then
+               log_failure_msg "KAFKA_START not set to 'yes' in 
/etc/default/kafka, not starting"
+               exit 0
+       fi
+
+       log_daemon_msg "Starting $DESC" "$NAME"
+       if start-stop-daemon --test --start --pidfile "$KAFKA_PID" \
+               --user $KAFKA_USER --exec "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+
+               kafka_sh start
+               sleep 5
+               if start-stop-daemon --test --start --pidfile "$KAFKA_PID" \
+                       --user $KAFKA_USER --exec "$JAVA_HOME/bin/java" \
+                       >/dev/null; then
+                       if [ -f "$KAFKA_PID" ]; then
+                               rm -f "$KAFKA_PID"
+                       fi
+                       log_end_msg 1
+               else
+                       log_end_msg 0
+               fi
+       else
+               log_progress_msg "(already running)"
+               log_end_msg 0
+       fi
+       ;;
+  stop)
+       log_daemon_msg "Stopping $DESC" "$NAME"
+
+       set +e
+       if [ -f "$KAFKA_PID" ]; then
+               start-stop-daemon --stop --pidfile "$KAFKA_PID" \
+                       --user "$KAFKA_USER" \
+                       --retry=TERM/20/KILL/5 >/dev/null
+               if [ $? -eq 1 ]; then
+                       log_progress_msg "$DESC is not running but pid file 
exists, cleaning up"
+               elif [ $? -eq 3 ]; then
+                       PID="`cat $KAFKA_PID`"
+                       log_failure_msg "Failed to stop $NAME (pid $PID)"
+                       exit 1
+               fi
+               rm -f "$KAFKA_PID"
+       else
+               log_progress_msg "(not running)"
+       fi
+       log_end_msg 0
+       set -e
+       ;;
+   status)
+       set +e
+       start-stop-daemon --test --start --pidfile "$KAFKA_PID" \
+               --user $KAFKA_USER --exec "$JAVA_HOME/bin/java" \
+               >/dev/null 2>&1
+       if [ "$?" = "0" ]; then
+
+               if [ -f "$KAFKA_PID" ]; then
+                   log_success_msg "$DESC is not running, but pid file exists."
+                       exit 1
+               else
+                   log_success_msg "$DESC is not running."
+                       exit 3
+               fi
+       else
+               log_success_msg "$DESC is running with pid `cat $KAFKA_PID`"
+       fi
+       set -e
+        ;;
+  restart|force-reload)
+       if [ -f "$KAFKA_PID" ]; then
+               $0 stop
+               sleep 1
+       fi
+       $0 start
+       ;;
+  try-restart)
+        if start-stop-daemon --test --start --pidfile "$KAFKA_PID" \
+               --user $KAFKA_USER --exec "$JAVA_HOME/bin/java" \
+               >/dev/null; then
+               $0 start
+       fi
+        ;;
+  *)
+       log_success_msg "Usage: $0 
{start|stop|restart|try-restart|force-reload|status}"
+       exit 1
+       ;;
+esac
+
+exit 0
diff --git a/debian/kafka.install b/debian/kafka.install
new file mode 100644
index 0000000..5f0afa7
--- /dev/null
+++ b/debian/kafka.install
@@ -0,0 +1,18 @@
+ext/avro-1.4.0.jar usr/share/java
+ext/easymock-3.0.jar usr/share/java
+ext/hadoop-core-0.20.2.jar usr/share/java
+ext/jasper-compiler-5.5.12.jar usr/share/java
+ext/jasper-runtime-5.5.12.jar usr/share/java
+ext/jopt-simple-3.2.jar usr/share/java
+ext/jsp-2.1-6.1.14.jar usr/share/java
+ext/jsp-api-2.1-6.1.14.jar usr/share/java
+ext/kfs-0.3.jar usr/share/java
+ext/paranamer-ant-2.2.jar usr/share/java
+ext/paranamer-generator-2.2.jar usr/share/java
+ext/pig-0.8.0.jar usr/share/java
+ext/scalatest-1.2.jar usr/share/java
+ext/zkclient-20120522.jar usr/share/java
+ext/metrics-annotation-3.0.0-c0c8be71.jar usr/share/java
+ext/metrics-core-3.0.0-c0c8be71.jar usr/share/java
+debian/bin/kafka usr/sbin
+bin/kafka-console-consumer-log4j.properties etc/kafka
diff --git a/debian/kafka.links b/debian/kafka.links
new file mode 100644
index 0000000..f1937be
--- /dev/null
+++ b/debian/kafka.links
@@ -0,0 +1,6 @@
+usr/share/kafka/kafka-0.8.jar usr/share/kafka/kafka.jar
+usr/share/kafka/kafka-perf-0.8.jar usr/share/kafka/kafka-perf.jar
+usr/share/kafka/kafka-kafka-examples-0.8.jar 
usr/share/kafka/kafka-kafka-examples.jar
+usr/share/kafka/hadoop-consumer-0.8.jar usr/share/kafka/hadoop-consumer.jar
+usr/share/kafka/hadoop-producer-0.8.jar usr/share/kafka/hadoop-producer.jar
+
diff --git a/debian/kafka.postinst b/debian/kafka.postinst
new file mode 100644
index 0000000..9068f29
--- /dev/null
+++ b/debian/kafka.postinst
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# postinst script for kafka
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+    configure|reconfigure)
+        if ! getent passwd kafka >/dev/null; then
+            # Adding system user: kafka.
+            adduser \
+                --system \
+                --group \
+                --no-create-home \
+                --home /nonexistent \
+                --gecos "Apache Kafka" \
+                --shell /bin/false \
+                kafka >/dev/null 2>/dev/null || :
+        fi
+
+        # chown kafka directories
+        chown kafka:kafka /var/log/kafka
+        chown kafka:kafka /var/spool/kafka
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/kafka.postrm b/debian/kafka.postrm
new file mode 100644
index 0000000..d03c6a6
--- /dev/null
+++ b/debian/kafka.postrm
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# postrm script for kafka
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+    purge)
+        deluser --quiet --system kafka >/dev/null || true
+        deluser --quiet --group --system --only-if-empty --remove-home kafka 
|| true
+        rm -rf /var/log/kafka
+        ;;
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+        ;;
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+        ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/patches/kafka_data_dirs_fixes.patch 
b/debian/patches/kafka_data_dirs_fixes.patch
index c898d1d..cefff33 100644
--- a/debian/patches/kafka_data_dirs_fixes.patch
+++ b/debian/patches/kafka_data_dirs_fixes.patch
@@ -1,6 +1,7 @@
 diff -r -u a/config/server.properties b/config/server.properties
 --- a/config/server.properties 2013-06-12 10:09:28.531748537 +0000
 +++ b/config/server.properties 2013-06-12 10:50:27.995707650 +0000
+<<<<<<< HEAD
 @@ -55,7 +55,7 @@
  ############################# Log Basics #############################
  
@@ -10,4 +11,15 @@
  
  # The default number of log partitions per topic. More partitions allow 
greater
  # parallelism for consumption, but this will also result in more files across
+=======
+@@ -48,7 +48,7 @@
+ ############################# Log Basics #############################
+ 
+ # The directory under which to store log files
+-log.dir=/tmp/kafka-logs
++log.dir=/var/spool/kafka
+ 
+ # The number of logical partitions per topic per server. More partitions 
allow greater parallelism
+ # for consumption, but also mean more files.
+>>>>>>> 918be683... Debianize Kafka
 
diff --git a/debian/patches/logging_to_var_log.patch 
b/debian/patches/logging_to_var_log.patch
index 5e9cfb3..f957c74 100644
--- a/debian/patches/logging_to_var_log.patch
+++ b/debian/patches/logging_to_var_log.patch
@@ -1,9 +1,16 @@
 --- a/config/log4j.properties  2013-06-12 10:09:28.531748537 +0000
 +++ b/config/log4j.properties  2013-06-12 15:09:40.967449096 +0000
+<<<<<<< HEAD
 @@ -15,17 +15,23 @@
 
  kafka.logs.dir=logs
 
+=======
+@@ -12,17 +12,23 @@
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+>>>>>>> 918be683... Debianize Kafka
 -log4j.rootLogger=INFO, stdout 
 +log4j.rootLogger=INFO, stdout, fileAppender
  
@@ -14,7 +21,11 @@
  
 -log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
 -log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH
+<<<<<<< HEAD
 -log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
+=======
+-log4j.appender.kafkaAppender.File=server.log
+>>>>>>> 918be683... Debianize Kafka
 -log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
 -log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
 +log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
@@ -30,7 +41,11 @@
  
  log4j.appender.stateChangeAppender=org.apache.log4j.DailyRollingFileAppender
  log4j.appender.stateChangeAppender.DatePattern='.'yyyy-MM-dd-HH
+<<<<<<< HEAD
 @@ -57,22 +63,21 @@
+=======
+@@ -54,24 +60,23 @@
+>>>>>>> 918be683... Debianize Kafka
  #log4j.logger.kafka.perf=DEBUG, kafkaAppender
  #log4j.logger.kafka.perf.ProducerPerformance$ProducerThread=DEBUG, 
kafkaAppender
  #log4j.logger.org.I0Itec.zkclient.ZkClient=DEBUG
@@ -52,6 +67,11 @@
 -
 -log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender
 -log4j.additivity.kafka.log.LogCleaner=false
+<<<<<<< HEAD
+=======
+-log4j.logger.kafka.log.Cleaner=INFO, cleanerAppender
+-log4j.additivity.kafka.log.Cleaner=false
+>>>>>>> 918be683... Debianize Kafka
 -
 -log4j.logger.state.change.logger=TRACE, stateChangeAppender
 -log4j.additivity.state.change.logger=false
@@ -63,6 +83,11 @@
 +#
 +#log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender
 +#log4j.additivity.kafka.log.LogCleaner=false
+<<<<<<< HEAD
+=======
++#log4j.logger.kafka.log.Cleaner=INFO, cleanerAppender
++#log4j.additivity.kafka.log.Cleaner=false
+>>>>>>> 918be683... Debianize Kafka
 +#
 +#log4j.logger.state.change.logger=TRACE, stateChangeAppender
 +#log4j.additivity.state.change.logger=false
diff --git a/debian/patches/our-own-build-system.patch 
b/debian/patches/our-own-build-system.patch
index d56e2f1..aad7f2e 100644
--- a/debian/patches/our-own-build-system.patch
+++ b/debian/patches/our-own-build-system.patch
@@ -73,7 +73,11 @@
 +SYS_CLASSJARS:=$(shell find $(SYS_CLASSDIR) -name "*.jar")
 +export SYS_CLASSPATH:=$(shell echo $(SYS_CLASSJARS) | sed -e 's/ /:/g')
 +
+<<<<<<< HEAD
 +# Same here, just this is done for the shipped jar dependencies.
+=======
++# Same here, just this is done for the shipped jar dependencies. 
+>>>>>>> 918be683... Debianize Kafka
 +EXT_CLASSDIR:=$(CURDIR)/ext
 +EXT_CLASSJARS:=$(shell find $(EXT_CLASSDIR) -name "*.jar")
 +export EXT_CLASSPATH:=$(shell echo $(EXT_CLASSJARS) | sed -e 's/ /:/g')
@@ -110,6 +114,7 @@
 index 0000000..211f667
 --- /dev/null
 +++ b/config/Makefile
+<<<<<<< HEAD
 @@ -0,0 +1,15 @@
 +CONFFILES=log4j.properties tools-log4j.properties server.properties 
zookeeper.properties
 +MIRROR_CONFFILES=consumer.properties producer.properties
@@ -126,6 +131,18 @@
 +%.properties.example:  %.properties
 +      $(MKDIR_P) $(DESTDIR)/$(SYSCONFDIR)/mirror
 +      $(INSTALL) -T -o root -g root $< $(DESTDIR)/$(SYSCONFDIR)/mirror/$@
+=======
+@@ -0,0 +1,9 @@
++CONFFILES=consumer.properties log4j.properties producer.properties 
server.properties zookeeper.properties
++
++all:  
++
++clean:
++
++install:      all
++      $(MKDIR_P) $(DESTDIR)/$(SYSCONFDIR)
++      $(INSTALL) -o root -g root $(CONFFILES) $(DESTDIR)/$(SYSCONFDIR)
+>>>>>>> 918be683... Debianize Kafka
 diff --git a/contrib/Makefile b/contrib/Makefile
 new file mode 100644
 index 0000000..c214ca3
@@ -284,4 +301,8 @@
 +install:      all
 +      $(JAR) cfv kafka-perf-$(VERSION).jar -C target .
 +      $(INSTALL) -o root -g root kafka-perf-$(VERSION).jar 
$(DESTDIR)$(LIBPATH)/kafka-perf-$(VERSION).jar
+<<<<<<< HEAD
 --
+=======
+-- 
+>>>>>>> 918be683... Debianize Kafka
diff --git a/debian/patches/series b/debian/patches/series
index abaf5c4..b42d23a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,7 @@
 our-own-build-system.patch
 kafka_data_dirs_fixes.patch
 logging_to_var_log.patch
+<<<<<<< HEAD
 remove_scala_annotations2.8.patch
+=======
+>>>>>>> 918be683... Debianize Kafka
diff --git a/debian/rules b/debian/rules
index c28686f..ee8b7e8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,5 +1,6 @@
 #!/usr/bin/make -f
 
+<<<<<<< HEAD
 export JAVA_HOME?=/usr/lib/jvm/java-1.7.0-openjdk-amd64
 export PREFIX=/usr
 export SYSCONFDIR=/etc/kafka
@@ -35,3 +36,15 @@
        # Install kafka-mirror init.d and default scripts under their default 
name 'kafka-mirror'.
        dh_installinit
 
+=======
+export JAVA_HOME=/usr/lib/jvm/default-java
+export PREFIX=/usr
+export SYSCONFDIR=/etc/kafka
+export VERSION=0.8
+
+# Put depended upon jars in here
+export 
CLASSPATH=/usr/share/java/asm3.jar:/usr/share/java/cglib.jar:/usr/share/java/commons-cli.jar:/usr/share/java/commons-codec.jar:/usr/share/java/commons-collections.jar:/usr/share/java/commons-compress.jar:/usr/share/java/commons-el.jar:/usr/share/java/commons-httpclient.jar:/usr/share/java/commons-io.jar:/usr/share/java/commons-lang.jar:/usr/share/java/commons-logging.jar:/usr/share/java/commons-net.jar:/usr/share/java/hsqldb.jar:/usr/share/java/jackson-core.jar:/usr/share/java/jackson-mapper.jar:/usr/share/java/jets3t.jar:/usr/share/java/jetty-util.jar:/usr/share/java/jetty.jar:/usr/share/java/joda-time.jar:/usr/share/java/jsp-api-2.1.jar:/usr/share/java/junit4.jar:/usr/share/java/log4j-1.2-1.2.16.jar:/usr/share/java/objenesis.jar:/usr/share/java/oro.jar:/usr/share/java/paranamer.jar:/usr/share/java/qdox.jar:/usr/share/java/scala-library.jar:/usr/share/java/servlet-api-2.5.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/slf4j-api.jar:/usr/share/java/snappy-java.jar:/usr/share/java/velocity-1.7.jar:/usr/share/java/xmlenc.jar:/usr/share/java/zookeeper.jar:$(CURDIR)/ext/avro-1.4.0.jar:$(CURDIR)/ext/easymock-3.0.jar:$(CURDIR)/ext/hadoop-core-0.20.2.jar:$(CURDIR)/ext/jasper-compiler-5.5.12.jar:$(CURDIR)/ext/jasper-runtime-5.5.12.jar:$(CURDIR)/ext/jopt-simple-3.2.jar:$(CURDIR)/ext/jsp-2.1-6.1.14.jar:$(CURDIR)/ext/jsp-api-2.1-6.1.14.jar:$(CURDIR)/ext/kfs-0.3.jar:$(CURDIR)/ext/metrics-annotation-3.0.0-c0c8be71.jar:$(CURDIR)/ext/metrics-core-3.0.0-c0c8be71.jar:$(CURDIR)/ext/paranamer-ant-2.2.jar:$(CURDIR)/ext/paranamer-generator-2.2.jar:$(CURDIR)/ext/pig-0.8.0.jar:$(CURDIR)/ext/scalatest-1.2.jar:$(CURDIR)/ext/zkclient-20120522.jar:
+
+%:
+       dh $@ --with javahelper
+>>>>>>> 918be683... Debianize Kafka
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
index bc23b8e..5b00588 100644
--- a/debian/source/include-binaries
+++ b/debian/source/include-binaries
@@ -7,13 +7,22 @@
 ext/paranamer-ant-2.2.jar
 ext/paranamer-generator-2.2.jar
 ext/pig-0.8.0.jar
+<<<<<<< HEAD
 ext/zkclient-0.3.jar
+=======
+ext/zkclient-20120522.jar
+>>>>>>> 918be683... Debianize Kafka
 ext/easymock-3.0.jar
 ext/jasper-compiler-5.5.12.jar
 ext/hadoop-core-0.20.2.jar
 ext/jopt-simple-3.2.jar
+<<<<<<< HEAD
 ext/metrics-annotation-2.2.0.jar
 ext/metrics-core-2.2.0.jar
 ext/metrics-ganglia-2.2.0.jar
 ext/metrics-graphite-2.2.0.jar
 ext/kafka-ganglia-1.0.0.jar
+=======
+ext/metrics-annotation-3.0.0-c0c8be71.jar
+ext/metrics-core-3.0.0-c0c8be71.jar
+>>>>>>> 918be683... Debianize Kafka
diff --git a/ext/metrics-annotation-3.0.0-c0c8be71.jar 
b/ext/metrics-annotation-3.0.0-c0c8be71.jar
new file mode 100644
index 0000000..dba9d2b
--- /dev/null
+++ b/ext/metrics-annotation-3.0.0-c0c8be71.jar
Binary files differ
diff --git a/ext/metrics-core-3.0.0-c0c8be71.jar 
b/ext/metrics-core-3.0.0-c0c8be71.jar
new file mode 100644
index 0000000..529a69b
--- /dev/null
+++ b/ext/metrics-core-3.0.0-c0c8be71.jar
Binary files differ
diff --git a/ext/zkclient-20120522.jar b/ext/zkclient-20120522.jar
new file mode 100644
index 0000000..225e97e
--- /dev/null
+++ b/ext/zkclient-20120522.jar
Binary files differ

-- 
To view, visit https://gerrit.wikimedia.org/r/360867
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I55e65084eb5444a03e63cc479f9f3b72cf07a146
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/kafka
Gerrit-Branch: master
Gerrit-Owner: Paladox <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to