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 <mo...@debian.org> wrote:

> On Wed, Jun 17, 2015 at 10:16 PM, Brandon Bradley
> <bradleytas...@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 <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.
>
> 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 via email to