PadWorld-Entertainment / worldofpadman

World of PADMAN game repository
https://worldofpadman.net
Other
37 stars 8 forks source link

PACKAGE: automate installer package creation with binaries and pk3s #25

Open mgerhardy opened 3 years ago

mgerhardy commented 3 years ago

This issue is related: https://github.com/PadWorld-Entertainment/worldofpadman/issues/24

The installer should e.g. be a nsis installer (as this would allow us to create the windows installer even from *nix systems in the pipeline)

robo9k commented 3 years ago

There's a ioq3 NSIS installer in /misc/nsis/, but @codemasher can probably comment as they created the previous Windows installers

codemasher commented 3 years ago

I still have the the installer script ready from the previous versions. The question would be how and where to deploy if we're going to create installers from the actions runner - the runner itself would probably have no problem handling the ~5-6GB but repo sizes are limited and LFS costs extra.

codemasher commented 3 years ago

Also, what's more important, especially for servers, would be Debian packages for automated installation under linux: worldofpadman and worldofpadman-server, the latter of which would install and pre-configure a service etc.

robo9k commented 3 years ago

The question would be how and where to deploy if we're going to create installers from the actions runner - the runner itself would probably have no problem handling the ~5-6GB but repo sizes are limited and LFS costs extra.

GitHub releases allow individual files up to 2 GB with no limit on total release size nor bandwidth. So if we can keep each platform release below that size, which would probably be a good idea anyways, we can use GitHub releases as the primary deployment target - and possibly continue re-uploading those files on ModDB, SourceForge etc.

robo9k commented 3 years ago

Also, what's more important, especially for servers, would be Debian packages for automated installation under linux: worldofpadman and worldofpadman-server, the latter of which would install and pre-configure a service etc.

There's some ioq3 stuff in /misc/setup/pkg/. Question is do we want to create a distribution specific (i.e. .deb, .rpm etc.) release ourselves (and if so for which versions and platforms?) or do we just create a generic .zip and hope for the best with linked libraries such as glibc? IMHO it's more worthwhile to figure out what's blocking downstream Linux distros from creating packages themselves, e.g. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=481286 (hint: it's licenses of the assets, not the code).

kai-li-wop commented 3 years ago

As discussed in the WoP team meeting, we cannot currently resolve the licensing issue to make WoP fit for integration with Linux distributions or other platforms, such as the Windows Store. We can't properly attribute what comes from whom and if we can't reach the single authors, we can't get a compliant license for it any more. Until that is impossible or we can't replace all assets, there is no point in discussing it further.

I don't want to completely reinvent the wheel now for WoP v1.6.1 either. I have already made a few remarks about new PK3 files. From my point of view I would now only pack the changes between v1.6 and v1.6.1 into new PK3 files in an automated way and leave the already delivered PK3 (wop_001 to wop_006) files untouched. We could transfer these from another online source into the corresponding full installers in an automated way, if that is technically possible. Please give me feedback if there is a limitation.

WoP v1.6.1 should be released as a full version and as a patch, best as installers for all three platforms and additionally possibly still as a universal ZIP. I think we can keep the 2GB limit per file well.

As I said, this approach would be a solution for v1.6.1 for now. WoP v1.7 will give us more freedom and will also only be released as a full installer and possibly as a universal ZIP, not as a patch. I would like to see a fully automated build of pk3 and installer files then.

mgerhardy commented 3 years ago

This is hard to achieve with assets and binaries being in different repositories. We should also release docker images on dockerhub for dedicated servers (https://github.com/PadWorld-Entertainment/worldofpadman/pull/86).

kai-li-wop commented 3 years ago

Maybe we should start here with a simple solution first, the zips? This would be suitable for starting the beta tests. Other options may follow then.