Terasology icon indicating copy to clipboard operation
Terasology copied to clipboard

Improving packaging of the whole game

Open qwc opened this issue 7 years ago • 15 comments

Due to the recent talk at slack about packaging I thought about writing down my thoughts on packaging of terasology. Forum discussion thread

Terasology Variants

First of all I would see 3 package variants of terasology

  1. The Launcher - the universal desktop approach, easiest for beginners too
  2. Latest Stable (Omega release)
  3. Latest Unstable (Omega release)

2/3 Would be best for setting up servers without docker. On Linux if the user wants to get updates through the distribution and not with some manual clicks inside the launcher. (May also be good for ppl with slow internet connections to get the latest version with the distribution update instead of when they just want to play and realize they have to download first to play)

Package signing

I think it would be good to also implement package signing so that downloaded packages can be verified.

Things to discuss here are

  • pgp/gpg signing
    • how to achieve automatic signing with high enough security for the key
    • should multiple ppl know/have the private key?
    • can be done 'offshore', and maybe should be done on a separate system (private key security)
  • md5/sha2/sha512 etc. should be standard and no problem to implement.
    • already implemented on terasology jenkins, md5sums.txt and sha256sums.txt are included into the artifacts

Linux distributions to target

  • debian based (.deb)
    • [easy going, already did some tests with fpm]
    • ubuntu [already existing, got permission to use!]
    • Mint
    • alot more!
  • rpm based (fedora, SuSE, etc.) (.rpm)
    • [problems with packaging due to not running on a rpms based distro]
  • Arch Linux based (.tar.xz) [already existing in aur, got permission to use!]
    • [did binary packaging with fpm, AUR still open]
  • gentoo based

Did I forget a distribution type with reasonable user base? O.o

@qwc is working on these.

Linux distribution independent packaging

  • snap
  • flatpak
  • appimage [doesn't support dependencies... afaik]

@qwc is working on these also

Windows packaging

  • Chocolatey?
  • Installer?
  • downloadable archive?
  • downloadable executable?

@gianluca-nitti is working on this.

Apple MacOS

Well, here I have quite a bit of a lack of knowledge. I know there are at least four things to consider:

  • .dmg Apps
  • MacPorts, if that is still an approach to install software on Apple's Darwin Unix system...
  • homebrew
  • Apple's AppStore ... There I have fears to get the approval from the Apple guys and how that works in general...

Expert knowledge needed! @skaldarnar put homebrew on his list.

docker

Finally the docker solution for servers and hosting platforms, provided by my docker-terasology project

  • Stable
  • Unstable

Maybe with predefined configurations and more customization in the future, needs to be discussed.

Important: automation

Everything mentioned must run through an automated job on a jenkins instance of the project (I'm so brash to include my own instance here).

Final words...

So far my thoughts to how the future variants could look and which package formats to target.

Human resources thoughts and claims for this tasks: So, come what may, but I'll at minimum claim the docker kill, that was my first contribution for terasology and I'll keep that baby. ;) I am familiar with all mentioned linux distributions and already packaged software for all of these (although it may be some time since then...) so I can do that basically, or may mentor ppl who want to do them. snap and flatpak are new to me, but I know basically what those projects want to achieve so it's not that hard to understand those formats.

On Windows - I'm almost gone, but already wrote some installers (WiX, and an other I cant remember...). On Mac - I'm completly gone.

An own repository for the packaging scripts may be needed, at least for all those linux distros I would wish for one. One for Win and Mac and we're done.

qwc avatar Mar 28 '17 20:03 qwc