[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#786460: ITP: kafka -- Distributed, partitioned, replicated commit log service



Hello Sandro! And thanks for your reply.

Your questions are annotated below.

On Wed, Jun 17, 2015 at 2:56 PM, Sandro Tosi <morph@debian.org> wrote:
Hi everyone,
I'm looking at Brandon's package for kafka, and here are some comments:

* did you sent an email to debian-mentors asking for comments? it's
usually a good way to get exposure of a package and receive feedbacks
about it

I have not. I should and will very soon.
 
* there is already a packaging effort from wikimedia at
https://git.wikimedia.org/summary/operations%2fdebs%2fkafka.git/HEAD -
did you look at it (eventually contacting them to have the packages in
debian)?

Indeed, I found this. The work there is most likely acceptable. However, I believe that if they wanted to contribute this to Debian packaging that they would have already done so. Also, I find bash scripts hard to debug in some situations. As such, I will not be contributing init scripts myself. I would be more than willing to accept contributions that support init scripts. debian/kafka.service works great on Jessie and will be what I maintain.
 
* you mention gradle in Debian is broken: have you investigated what
needs to be done to fix it?

I have. I cannot find the specific issue again, but Debian's gradle package uses a very old version that breaks the Kafka build. I'll try to document the issue if I find it again.
 
* debian/changelog
  - it still contains 'UNRELEASED', that should be 'unstable' instead

Ok! I thought it would be changed when the package is accepted.
 
* debian/control
  - consider adding a Vcs-Browser field in source stanza
  - short description should start with a lowercase letter

* debian/kafka.links
  - is empty and could be removed

Ok!
 
* debian/kafka.lintian-overrides
  - I think there is still a lot of "heat" around it and I would
strongly advice to provide an init script

Answered above.
 
* debian/kafka.postinst
  - you do some operations in 'configure' but it seems you dont undo
them when removing/purging the package, which should happen instead

Are you talking about adduser and addgroup?
 
* debian/rules
  - consider using the more compact: --with A,B instead of --with A --with B
  - it looks really suspicious the usage of HOME: have you tried to
build your package in a clean chroot?
  - override_dh_systemd_start: true is, to say the least, unexpected,
what it is for?

- Ok!
- `./gradlew clean` was not using the chroot root user's home. This usage does that. It is strange, and I hope to find a better way to do it.
- It is there so `dh_systemd_start` does nothing. I don't want Kafka to start after installation in case someone is running ZooKeeper on another node that is not up yet.
 
* debian/watch
  - please provide it

Ok!
 
the package fails to build from source (FTBFS as you might find
usually written) in pbuilder exactly when using HOME:

dh_auto_clean
GRADLE_USER_HOME=/tmp/buildd/.gradle ./gradlew clean
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
debian/rules:15: recipe for target 'override_dh_auto_clean' failed
make[1]: *** [override_dh_auto_clean] Error 1


I need to make this clear in some documentation. The user should have a Gradle installed from binary distribution and run `gradle build` to bootstrap the Gradle wrapper. Then, the user should use `./gradlew build` to build Kafka. Kafka does this to remove binary artifacts from their source distribution (https://issues.apache.org/jira/browse/KAFKA-1490) and not a requirement of mine.

Also, I use git-buildpackage to build the package. Like so: `gbp buildpackage`. Another documentation note!
 
Cheers!
Brandon



Reply to: