Skip to content

Consolidation and streamline of Linux builds#14514

Closed
cholmcc wants to merge 1 commit intovassalengine:masterfrom
cholmcc:cholmcc_linux
Closed

Consolidation and streamline of Linux builds#14514
cholmcc wants to merge 1 commit intovassalengine:masterfrom
cholmcc:cholmcc_linux

Conversation

@cholmcc
Copy link
Copy Markdown
Contributor

@cholmcc cholmcc commented Feb 22, 2026

This PR will consolidate and streamline build for Linux. As such, this PR is mostly reorganisation of data into a single place so that it is easier to maintain and build upon.

  • Data common to various Linux packages, such as the Debian, RPM, and FlatPak packages, as well as the tar-ball, is put in dist/linux and distributed from there.

    This data includes

    • A .desktop file for desktop integration
    • A .mime.xml file for mime-types of Vassal modules, saves, logs, and extension.
    • a man(1) page on vassal
    • An improved VASSAL.sh script which will allow
      • Defining properties via -Dname=value
      • Run Vassal in the Java Debugger, including option to point to the Vassal sources.
      • Direct execution of player, editor, etc. by-passing the module manager
    • Note that these files are also distributed with the tar-ball, so that a user may use those for desktop integration.
    • The script dist/linux/integration.sh will also be distributed with the tar-ball. If a user executes that, it will set-up or remove desktop integration.
  • The descriptions in the Debian, RPM, and FlatPak packages have been made the same - for consistency.

  • The PR also removes the vassal-maven repository because it is no longer used.

Most of these files have been renamed to org.vassalengine.vassal to conform with the AppStream requirements and practices.

The main point of the updated launch script VASSAL.sh, are

  • To allow users to pass property definitions to the JVM, for example

    -Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel to set a different Look'n'Feel.

  • To allow users to load modules, saves, logs, etc. from the current directory without giving the full path to the file. For example VASSAL.sh -l BattleForMoscow.vmod (currently, one would need to do VASSAL.sh -l `pwd`/BattleForMoscow.vmod which feels awkward).

  • To run Vassal in the Java debugger jdb to hunt down problems.

A follow-up PR to this PR will then set-up the release workflow to generate the files org.vassalengine.vassal.yaml and maven-dependencies.json for the FlatPak repository at flathub/org.vassalengine.org. Thus, after that workflow has run, someone can pick up the artefacts of that workflow and commit them to flathub/org.vassalengine.org.

Yours,
Christian

This PR will consolidate and streamline build for Linux.   As such,
this PR is _mostly_ reorganisation of data into a single place so that
it is easier to maintain and build upon.

- Data common to various Linux packages, such as the Debian, RPM, and
  FlatPak packages, as well as the tar-ball, is put in `dist/linux`
  and distributed from there.

  This data includes
  - A `.desktop` file for desktop integration
  - A `.mime.xml` file for mime-types of Vassal modules, saves, logs,
    and extension.
  - a `man(1)` page on `vassal`
  - An improved `VASSAL.sh` script which will allow
    - Defining properties via `-Dname=value`
    - Run Vassal in the Java Debugger, including option to point to
      the Vassal sources.
    - Direct execution of player, editor, etc. by-passing the module
      manager
  - Note that these files are _also_ distributed with the tar-ball, so
    that a user may use those for desktop integration.
  - The script `dist/linux/integration.sh` will also be distributed
    with the tar-ball.  If a user executes that, it will set-up or
    remove desktop integration.
- The descriptions in the Debian, RPM, and FlatPak packages have been
  made the same - for consistency.
- The PR also removes the `vassal-maven` repository because it is no
  longer used.

Most of these files have been renamed to `org.vassalengine.vassal` to
conform with the AppStream requirements and practices.

The main point of the updated launch script `VASSAL.sh`, are

- To allow users to pass property definitions to the JVM, for example

  ```
  -Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel
  ```
  to set a different Look'n'Feel.
- To allow users to load modules, saves, logs, etc. from the current
  directory _without_ giving the full path to the file. For example
  ```
  VASSAL.sh -l BattleForMoscow.vmod
  ```
  (currently, one would need to do
  ```
  VASSAL.sh -l `pwd`/BattleForMoscow.vmod
  ```
  which feels awkward).
- To run Vassal in the Java debugger `jdb` to hunt down problems.

A follow-up PR to this PR will then set-up the release workflow to
generate the files `org.vassalengine.vassal.yaml` and
`maven-dependencies.json` for the FlatPak repository at
[`flathub/org.vassalengine.org`](https://github.com/flathub/org.vassalengine.org).
Thus, after that workflow has run, someone can pick up the artefacts
of that workflow and commit them to `flathub/org.vassalengine.org`.

Yours,
_Christian_
@cholmcc cholmcc closed this Mar 28, 2026
@cholmcc cholmcc deleted the cholmcc_linux branch April 20, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant