3.0 (git) source resources (for PPA)?

Bear Giles bgiles at coyotesong.com
Wed Feb 15 15:10:20 UTC 2017

Hi, I'm trying to PPA some code that's in git but not having much luck
finding useful documentation for source format 3.0 (git). I have looked at
git-buildpackage but it looks like it wants me to create a branch and these
are huge projects. It looks like the 3.0 (git) format will let me maintain
just the debian bits but haven't found much documentation. Even having a
few sample packages to look at would help.

The specific PPAs are for Apache Hadoop and related projects. I want to
package the files needed for 'edge nodes'. That is:

 - some binaries
 - some shared libraries
 - some sample configuration files
 - some jars

We can manually copy files from one of the compute nodes but it would be a
lot more convenient to install a client jar + library. This would also
ensure we have all necessary libraries for the handful of CLI tools. A
number of projects in the Hadoop ecosystem have CLI tools.

I know there have been a few prior efforts on Launchpad but they're out of
date and mostly (entirely?) limited to just the Hadoop project itself. We
need more recent versions of Hadoop and other projects in the ecosystem.

Aside: we also need to be able to build packages for multiple versions. I
don't know if the best approach is one source package per version -
hadoop-2.5, hadoop-2.6, hadoop-2.7, or to use a single package (hadoop) and
have a way to build the different packages. We need it for 2016.04 LTS but
it would be nice to support additional releases.

Aside 2: only 2014.04 LTS builds are documented. Doing 2016.04 is
straightforward but you have to rebuild the 2014.04 protobuf package in the
2016.04 environment since Hadoop requires 2.5.0 specifically and the
2016.04 version is 3.0.0. It's only a build dependency and doesn't affect
the final packages.

I can set up the environment for git-buildpackage (but haven't built it
using gbp) with:

  $ git clone https://github.com/apache/hadoop
  $ cd hadoop
  $ git checkout release-2.7.1
  $ git checkout -b upstream
  $ git checkout -b master

and that gives me the code as of that release in master. But it also means
that I push everything when I do a git commit. I would greatly prefer to
somehow specify a dozen lines from my .git/config file and the new files
under debian/.

I tried running gbp import-dsc but it complained about the format of my
.dsc file. Not particularly surprising.

I've also looked at the maven build helper but it looks like it's a bad
match. It seems to want the dependencies added as Build-Depends but I need
a different version of some jars and will have to package a number of other
jars. It's easiest to run 'mvn' and pull files from the standard maven
archive, or lacking that (since I couldn't figure out how to do that
without needing access to /root/.m2/repository despite using 'fakeroot') to
pre-downloading the jars and putting them in debian/repo. It's only 122 MB.

Anyway any pointers to appropriate documentation would be appreciated. I've
looked at the debian wiki but it's either been too basic or assumed that
the reader already knew a lot about the topic. It would definitely help to
list a few projects that use the tools.

(Hmm, I guess I could write a crawler that downloads each source package,
unpacks it, and scans the debian/source/format file myself....)


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-devel-discuss/attachments/20170215/879ec7f2/attachment.html>

More information about the Ubuntu-devel-discuss mailing list