Skip to content

deploy: Add a conveyor configuration for Croiseur GUI

Antoine Belvire requested to merge deploy/25_conveyor into master

Context

See #25.

Conveyor is a tool that eases the creation of OS-specific installable packages. It can create packages of a JVM application (and other kinds of applications) for Windows, Mac OS and Linux.

What is nice is that it can create those packages from any of the supported OSes, meaning that one can create a Windows package from a Linux host.

I'm curious to know how they achieve that - last time I checked, the jpackage tool, which seems to be the Java way to package Java application into OS-specific packages, required build tools from the target platforms (e.g. rpmbuild for RPM), which I thought were not all available everywhere.

Unfortunately, it is not an open source software. One could try to use a bytecode viewer to read the code - it's obviously a JVM-based application - but that is explicitly forbidden by the licence agreement.

Another point of the licence agreement is that it is required to mention somewhere on the project pages (e.g. the release page) that the published packages were built by Conveyor.

Open source software projects are, for now, automatically accorded a free licence though, which is cool.

What has changed?

Main Changes

croiseur-gui

  • Added a conveyor.conf.
  • Added the Conveyor gradle plugin: It provides a task named printConveyorConfig which generates most of the inputs for conveyor.conf - it can even be called from conveyor.conf itself.

doc

Documented the release process.

Side Effects

croiseur-gui

Resized application icon: Conveyor didn't like 507x512.

puzzle-filesystem-plugin

Use ${user.home}/croiseur/puzzles as puzzle repository if com.gitlab.super7ramp.croiseur.puzzle.path system property is not set. (Because I couldn't find a way to pass system properties using other system properties/platform-specific variables in conveyor.conf.)

dictionary-*-plugin

Added ${deployed_jar_directory}/dictionaries and ${user.home}/croiseur/dictionaries as dictionary sources. (Because I couldn't find a way to pass system properties using other system properties/platform-specific variables in conveyor.conf.)

Others

Simplified versioning: No more separated spi / common versions, it's not useful for now, it will come back later.

Edited by Antoine Belvire

Merge request reports