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

Re: Creating a deb for a Java based project, and saying hi to the mailing list



[Dropping debian-devel from CC. debian-java is the right place to ask
these questions]

On 04.10.2016 06:23, David Myers wrote:
[...]
> So my initial questions are :
> 
> Is there a preference for which plugin should be used for gradle builds
> within the debian project ?

We recommend to use gradle-debian-helper[1] for packaging new gradle
projects. It depends on gradle and simplifies some packaging steps.

> 
> As I / we would like the package to be available for the largest number
> of debian derivatives as possible are there any special considerations I
> should be aware of ?

If your package works on Debian, it will also work on other Debian
derivatives. It's mainly a matter of what distribution releases you are
targeting. For instance Ubuntu 16.04 has a different set of Java
libraries than Debian Jessie or Debian Sid. Best practice is to package
for Debian Sid and then to adjust library versions for older
distributions if needed. That's a process generally referred to as
backporting.

> 
> Are there any 'Gothas' I should be aware of for converting from an
> existing rpm gradle build to a deb gradle build ?
> 
> Any Java specific items I should be aware of
> 
>   * preference for a certain Java application server ~ currently set to
>     use apache tomcat or an embeded application server (not sure which).
>   * particular JVM (I personally use OpenJava, not sure for the main
>     project)
>   * preference for specific Database (currently uses MySQL or an
>     'embeded' DB (again not sure which), has an 'extension' for Postgres).
> 
> I'm bound to have more questions as I go along.

Debian packaging is quite different from rpm. I suggest to study Debian
packages that make use of the Gradle build system like apktool,
freeplane or openjfx. In Debian we have a default-jre package that
depends on OpenJDK 8 currently. You would just declare a dependency on
it. You can also declare alternative dependencies like default-jre |
java8-runtime which enables users to choose another Java 8 compatible JVM.

We provide many different database libraries like hsqldb, h2, mongodb
etc. It's just a matter of declaring the correct build-dependencies.

> 
> Final note:
> 
> I'm not a newbie to linux, but this is going to be my first attempt at
> linux packaging, I did have a go at using the JNLP a while back, but
> definitely a first for building a deb package.
> 
> If all goes well I / We (the project) may want to be included in the
> main repos, so again if there are any things I should be aware of to
> more easily make the transition from simple published deb available for
> download, to a ppa and then onto 'official deb package' now may be a
> good moment ;)

There are various online resources which might help you on your way to
create an official Debian package. I suggest to read

https://mentors.debian.net/intro-maintainers

Especially point 3 contains some useful links to general Debian
documentation about packaging. I would also embrace Lintian, a package
checker which can help you to spot packaging mistakes. Of course your
package must only contain free software to be included in main.

[1] https://tracker.debian.org/pkg/gradle-debian-helper

Regards,

Markus

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: