Hello Sandro! And thanks for your reply.

Your questions are annotated below.

On Wed, Jun 17, 2015 at 2:56 PM, Sandro Tosi <mo...@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 via email to