Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

first commit

  • Loading branch information...
commit 765a0a51f62e7497544ad0432efad0696a799e48 0 parents
@ottomata ottomata authored
35 README.md
@@ -0,0 +1,35 @@
+# Debian packaging for Apache Kafka
+
+This package is meant to build .deb packaging for the Apache Kafka project.
+This .deb package that is built will install the full Kafka source directory
+along with compiles classes and .jar files into '''/usr/lib/kafka'''.
+'''/usr/lib/kafka/config''' will be symlinked to '''/etc/kafka'''. An
+'''/etc/init/kafka.conf''' upstart script will allow you to start and stop
+Kafka brokers as a service.
+
+Note: This has only been tested on Ubuntu 12.04 LTS.
+
+## Instructions
+- [Download](http://incubator.apache.org/kafka/downloads.html) Apache Kafka.
+- Unzip the source:
+'''
+tar -xzf kafka-0.7.2-incubating-src.tgz
+'''
+- Clone this respository into a debian/ directory
+'''
+cd kafka-0.7.2-incubating-src && git clone https://github.com/wmf-analytics/kafka-debian.git ./debian
+- Run the buildpackage.sh script
+'''
+debian/buildpackage.sh
+'''
+
+If all goes well, you will have a kafka_0.7.2_all.deb package.
+
+Run this as a single command to do all of the above steps at once:
+'''
+wget http://apache.petsads.us/incubator/kafka/kafka-0.7.2-incubating/kafka-0.7.2-incubating-src.tgz && \
+ tar -xzf kafka-0.7.2-incubating-src.tgz && \
+ cd kafka-0.7.2-incubating-src && \
+ git clone https://github.com/wmf-analytics/kafka-debian.git ./debian && \
+ debian/buildpackage.sh
+'''
32 buildpackage.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# buildpackage.sh
+# Builds .orig.tar.gz file and runs dpkg-buildpackage -rfakeroot.
+# Run with 'compile' as the first argument if you want to remcompile Kafka.
+
+version=0.7.2
+basedir=$(readlink -f $(dirname $0)/..)
+
+cd $basedir
+
+# remove build directory
+[ -d $basedir/debian/kafka ] && echo "Removing kafka build directory at $basedir/debian/kafka" && rm -r $basedir/debian/kafka
+
+compile=${1:-false}
+if [ ${compile} == "compile" -o ! -f $basedir/core/target/scala_2.8.0/kafka-${version}.jar ]; then
+ echo "Compiling and packaging Kafka before building .deb package."
+ echo "./sbt update && ./sbt package"
+ ./sbt update && ./sbt package
+fi
+
+
+# create source .orig directory
+# echo "Creating source kafka_${version}.orig.tar.gz"
+cd $basedir/..
+rm -v kafka_${version}*
+tar -czf kafka_${version}.orig.tar.gz $(basename $basedir)
+
+# build the .deb
+echo "Building .deb package..."
+cd $basedir
+dpkg-buildpackage -rfakeroot
5 changelog
@@ -0,0 +1,5 @@
+kafka (0.7.2) stable; urgency=low
+
+ * Initial Debian packaging.
+
+ -- Andrew Otto (WMF) <otto@wikimedia.org> Wed, 24 Oct 2012 19:38:12 +0000
1  compat
@@ -0,0 +1 @@
+8
15 control
@@ -0,0 +1,15 @@
+Source: kafka
+Priority: extra
+Maintainer: Andrew Otto <otto@wikimedia.org>
+Build-Depends: debhelper (>= 8.0.0), javahelper (>=0.25)
+Build-Depends-Indep: default-jdk | sun-java6-jdk
+Standards-Version: 3.9.2
+Section: utils
+Homepage: http://incubator.apache.org/kafka/
+
+Package: kafka
+Architecture: all
+Depends: ${misc:Depends}, upstart
+Description: Apache Kafka is a distributed publish-subscribe messaging system.
+ Kafka provides a publish-subscribe solution that can handle all activity
+ stream data and processing on a consumer-scale web site.
4 dirs
@@ -0,0 +1,4 @@
+/usr/lib/kafka
+/etc/kafka
+/var/log/kafka
+/etc/init
1  docs
@@ -0,0 +1 @@
+README.md
1  files
@@ -0,0 +1 @@
+kafka_0.7.2_all.deb utils extra
11 install.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+basedir=$1
+destdir=$2
+
+# Install all files in $basedir
+# (minus the debian/ and config/ directory)
+# into $destdir
+for file in $(ls $basedir | grep -v 'debian' | grep -v 'config'); do
+ cp -r $file $destdir/$file
+done
1  kafka.substvars
@@ -0,0 +1 @@
+misc:Depends=
25 kafka.upstart.conf
@@ -0,0 +1,25 @@
+# Kafka Broker Service
+
+description "Kafka Broker"
+
+start on runlevel [2345]
+stop on starting rc RUNLEVEL=[016]
+
+respawn
+respawn limit 2 5
+
+env HOME=/etc/kafka
+env KAFKA_HOME=/usr/lib/kafka
+umask 007
+
+kill timeout 300
+
+pre-start script
+ #Sanity checks
+ [ -r $HOME/server.properties ]
+end script
+
+setuid kafka
+setgid kafka
+
+exec $KAFKA_HOME/bin/kafka-server-start.sh $HOME/server.properties
1  links
@@ -0,0 +1 @@
+etc/kafka usr/lib/kafka/config
44 preinst
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# preinst script for kafka
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <new-preinst> `install'
+# * <new-preinst> `install' <old-version>
+# * <new-preinst> `upgrade' <old-version>
+# * <old-preinst> `abort-upgrade' <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ install|upgrade)
+ if ! getent passwd kafka >/dev/null; then
+ # Adding system user: yarn.
+ adduser \
+ --system \
+ --group \
+ --home /var/lib/kafka \
+ --gecos "Apache Kafka" \
+ --shell /bin/bash \
+ kafka >/dev/null 2>/dev/null || :
+ fi
+ ;;
+
+ abort-upgrade)
+ ;;
+
+ *)
+ echo "preinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+
37 rules
@@ -0,0 +1,37 @@
+#!/usr/bin/make -f
+
+# Get the java home directory for the version of java we are using
+JAVA_HOME := $(shell /usr/sbin/update-java-alternatives --list | cut -d ' ' -f 3)
+
+binary: install
+ dh_installchangelogs
+ dh_installdeb
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+clean:
+ dh_clean
+
+build:
+ dh_testdir
+ dh_testroot
+ dh_prep
+
+ # Kafka has already been updated and packaged by
+ # the ./sbt script. Nothing to do but install.
+ # See: http://incubator.apache.org/kafka/quickstart.html
+
+install: build
+ dh_installdirs
+ # install into /usr/lib/kafka
+ $(CURDIR)/debian/install.sh $(CURDIR) $(CURDIR)/debian/kafka/usr/lib/kafka
+ # install config files into /etc/kafka
+ cp $(CURDIR)/config/* $(CURDIR)/debian/kafka/etc/kafka/
+
+ # create symlinks defined in debian/links
+ dh_link
+
+ # install upstart init file
+ cp $(CURDIR)/debian/kafka.upstart.conf $(CURDIR)/debian/kafka/etc/init/kafka.conf
+
1  source/format
@@ -0,0 +1 @@
+3.0 (quilt)
Please sign in to comment.
Something went wrong with that request. Please try again.