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

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



Sandro,

I have multiple reasons for not contacting Wikimedia or using their work. The possibility of them having additions for their own purposes is very high. I believe starting fresh was easier than analyzing and debugging their repo.

Init scripts are recommended but not mandatory. Also, using a specific init system is acceptable is the maintainer decides so. Please see this link: https://www.debian.org/vote/2014/vote_003

I am clear on how packaging works. However, there are tons of policies scattered about, and mistakes will be made because of this. This is my first package; I think I've done fairly well given the situation.

Cheers!
Brandon


On Wed, Jun 17, 2015 at 10:48 PM, Sandro Tosi <morph@debian.org> wrote:
On Wed, Jun 17, 2015 at 10:16 PM, Brandon Bradley
<bradleytastic@gmail.com> wrote:
> 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.

I just added the list to this reply.

>
>>
>> * 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.

still not an excuse not to contact them and/or base the packaging in
what they have alraedy done.

> 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.

bash scripts are the foundations of system administrations and are no
more no less difficult to debug than any other language.

>
>>
>> * 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.

you should provide a package which is ready to be uploaded without any
further modification

>>
>> * 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.

and i did reply, and init script is required (from my POV)

>>
>> * 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?

yes and all the other actions performed in the 'configure' branch

>
>>
>> * 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.

then the right way is to instruce systemd and the init script to read
from /etc/default/kakfa which is a file  containing a boolean variable
(defaulting to False) to specify whether to start or not kakfa

>
>>
>> * 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!

I'm afraid you dont have very clear how packaging works: you need to
provide users with a binary package with contains all the files in
their final locations ready to be used. I suggest to follow this up
with debian-mentors for further clarification.

Regards,
--
Sandro Tosi (aka morph, morpheus, matrixhasu)
My website: http://matrixhasu.altervista.org/
Me at Debian: http://wiki.debian.org/SandroTosi


Reply to: