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 -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/cab4xwxxdsjxgyg5e71+gmqx2umoeugknspzz84c0huoqkja...@mail.gmail.com