MojoSetup - Le Bottin des Jeux Linux

MojoSetup

Specifications

Title: MojoSetup Type: Tool
Genre: Development Status:
Category: Development ➤ Installation software Commercial:
Tags: Development; Installation Software Demo:
Released: Rev 892 Package Name:
Date: 2019-12-26 Extern Repo:
License: zlib/libpng Repo:
Perspective: Third person Package:
Visual: 2D Binary: ✓
Pacing: Real Time Source: ✓
Played: Single PDA:
Quality (record): 5 stars Quality (game):
Contrib.: Goupil & Louis ID: 14242
Created: 2014-03-31 Updated: 2020-03-22

Summary

[fr]: Un installateur graphique permettant aux développeurs de fournir une interface unifiée pour l'installation de leur logiciel, et aux néophytes d'installer de manière simple des logiciels qui ne sont pas dans les dépôts de leur distribution Linux. [en]: A graphical installer enabling developers to provide a unified interface for the installation of their software, and for neophytes to install software which are not in the repositories of their Linux distribution, in a simple manner.

Videos

Trailer / Gameplay [en] / [en] / [fr] :

Links

Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t ts gd id r lp d g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

Commercial : (empty)

Resources
• MojoSetup binaries : [GitHub (MojoSetup-Bins)]
• Some specific installers for games : [Linux Game Installers]
Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

Social
Devs (Ryan C. Gordon [fr] [en]) : [Site 1 2] [Patreon] [Forums] [mastodon] [twitter] [YouTube] [Interview 1 2 3 4 5]
Devs (Loki Software [fr] [en]) : [Site 1 2] [twitter] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites
[UBUNTU [cz]]

Reviews


News / Source of this Entry (SotE) / News (SotN)
[LinuxGames (20070523)] [Phoronix (20070517)]

Description [fr]

Un installateur graphique de logiciels, par Ryan C. Gordon (& contributeurs).

MojoSetup est un installateur graphique (dérivé, mais complètement ré-écrit du Loki graphical installer aka loki_setup, du studio Loki Software) permettant aux développeurs de fournir une interface unifiée pour l'installation de leur logiciel, et aux néophytes d'installer de manière simple des logiciels qui ne sont pas dans les dépôts de leur distribution Linux.

L'installation par le gestionnaire des paquets des distributions est toujours préférable (notamment pour la gestion des dépendances des bibliothèques / vérification des fichiers éventuellement en doublons dans un même répertoire).
Néanmoins cet installateur peut se révéler particulièrement utile pour des jeux non libres (jeux commerciaux) ou libres mais encore absents des distributions et requérant une installation / désinstallation particulière / un peu compliquée pour un néophyte.
Il permet notamment une installation à partir d'un CD/DVD ou en ligne, et - en cas d'erreur imprévue, permet de revenir à l'état initial (d'avant l'installation) par un mécanisme de "rollback".

Utilisé par ces jeux / Used by these games :

Unreal Tournament 3, Enemy Territory: Quake Wars, Prey, Braid, Aquaria, Lugaru, Postal 2, Savage 2, Heroes of Newerth, The Spring Project, Celetania, Caster, Arena Live, Monster 2, The Perfect Tree, Soccer Cup Solitaire, Dress-Up Pups, MegaGlest, Anomaly Warzone Earth, Hammerfight, Cogs, Frozen Synapse, Jamestown: Legend of the Lost Colony, Shank, Super Meat Boy, Avadon: The Black Fortress, Psychonauts, Stacking, Costume Quest, Brütal Legend, Dear Esther,


Un installateur graphique, dérivé de loki_setup (NdT : un autre installateur graphique pour Linux).

HISTORIQUE

Ryan C. Gordon icculus sur icculus.org
Sam. 12 mai 11:44:59 EDT 2007

... alors je me suis mis à réorganiser certaines parties de loki_setup pour progresser vers une version 2.0.

Nous avons d'abord parlé d'une version 2.0 en juin 2005: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?2:mss:666:200506:fjepgpbjejjcppnfihnf

Et la dernière validation de la branche 2.0 s'est produite en même temps: http://cvs.icculus.org/cvs/loki_setup/?sortby=date&only_with_tag=SETUP_2_0

Plusieurs d'entre nous ont soumis des patches à la version 1.0 en attendant, réparant et ajoutant des solutions de contournement pour des lacunes, mais n'apportant pas réellement d'améliorations au code de base.

D'une manière générale, loki_setup a bien fonctionné, et donc cela ne valait pas vraiment la peine d'investir dans un gros effort pour y apporter des améliorations radicales, mais il existe de nombreux domaines où il est ennuyant, dépassé ou totalement cassé. Certains d'entre eux portaient sur le manque de ressources d'ingénierie (nous sommes tous très pris et, en général, nous remédions désespérément au programme d'installation lorsque les problèmes surviennent au cours de la période incompressible où nous devons expédier un produit dans les toutes prochaines heures !), et d'autres étaient dus à des trucs qui ne fonctionnaient plus à mesure que Linux progressait (incompatibilités de bibliothèques glibc, etc.). D'autres encore portaient sur des décisions de conception légitimes qui se révélèrent être moins qu'idéales dans le monde réel. Le code de base est devenu très organique, et vous pouvez voir où plusieurs branches de code se sont développées en fonction des concessions faites avec le temps. L'évolution est un processus pénible. :)

J'ai donc commencé à faire un revamping lourd de loki_setup pour le passer à 2.0, en commençant par le plugin d'archives: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?2:mss:678:200506:nbooliokgneeciafbijn

... et lorsque j'ai commencé à réfléchir aux implications de la modification de ce sous-système, je me suis rendu compte qu'il y avait d'autres choses connexes que j'aurai souhaité retravailler, et finalement, j'ai réalisé que je voulais tout refaire. Et petit à petit lorsque j'ai maquetté un loki_setup idéal, ce n'était plus loki_setup.

J'ai donc redémarré à zéro.

J'ai fais de bons progrès dans ce domaine (je l'appelle "MojoSetup" pour le moment), et même s'il reste encore beaucoup à faire, je pense qu'il est enfin prêt pour être présenté au public. Voici ci-après un panel de ce qui se prépare ... c'est assez dense, mais je pensais que vous pourriez être intéressé par les détails, et peut-être avoir des opinions à partager.

La majeure partie de MojoSetup a été conçue explicitement pour résoudre des lacunes spécifiques à loki_setup. Ce n'est pas que je souhaite spécialement mettre loki_setup à la poubelle, c'est juste ce que j'estime qu'un remplaçant devrait être capable de faire.

Une partie de ce qui suit est relative à des notes techniques, l'autre concerne des caractéristiques importantes. Sautez les parties qui vous ennuient. :) Tout cela est actuellement implémenté, mais certains points nécessitent encore un peu de travail (l'interface utilisateur pourrait encore être améliorée, par exemple).

(...)


(NdT : je n'ai pas traduit la suite, qui est longue et très technique. Je pense qu'elle n'offre un intérêt que pour ceux qui y comprennent quelque-chose, et ceux là n'ont probablement pas besoin d'une traduction :)

Description [en]

A graphical installer, derived from loki_setup.

Ryan C. Gordon icculus at icculus.org
Sat May 12 11:44:59 EDT 2007

...so I set out to revamp some pieces of loki_setup to make progress on a 2.0 release.

We first talked about 2.0 in June of 2005: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?2:mss:666:200506:fjepgpbjejjcppnfihnf

And the latest commit to the 2.0 branch happened around that same time: http://cvs.icculus.org/cvs/loki_setup/?sortby=date&only_with_tag=SETUP_2_0

Several of us have been submitting patches to 1.0 in the meantime, making good fixes and adding workarounds for deficiencies but not really making improvements to the codebase.

Generally loki_setup has worked well enough so it wasn't worth investing the effort to do radical improvements, but there are many many areas where it is either annoying, outdated, or flat out broken. Some of these were issues of lack of engineering resources (we're all busy as hell, and usually desperately patching the installer when issues crop up during crunch time on a product shipping in the next several hours!), and some were things that broke as Linux progressed (glibc incompatibilities, etc). Some were legitimate design decisions that turned out to be less than ideal in the real world. The codebase is very organic, and you can see where various vines of code grew based on concessions made over time. Evolution is a painful process. :)

So I started out to do heavy revamping of loki_setup to get to 2.0, starting with the archive plugin stuff: http://icculus.org/cgi-bin/ezmlm/ezmlm-cgi?2:mss:678:200506:nbooliokgneeciafbijn

...and as I started to think about the implications of changing that subsystem, I realized that there were other related things I'd like to rework, too, and eventually I realized I wanted to rework almost everything. By the time I mapped out an ideal loki_setup, it wasn't loki_setup at all anymore.

So I started from scratch.

I've been making good progress on this (I'm calling it "MojoSetup" at the moment), and while there is still much to be done, I feel it's finally ready to show to the public. Here are some things that panned out pretty well so far...this is a _lot_ of information, but I thought you might be interested in the details, and maybe have some opinions to share.

Most of MojoSetup was designed explicitly to solve specific shortcomings in loki_setup. It's not that I'm trashing on loki_setup, it's just what I think a nextgen replacement would have to address.

Some of these are technical notes, some are bullet point features. Skip the ones that bore you. :) All of these are currently implemented, but some still need work (the UI could use some polishing, for instance).

(...)


Phoronix:

With the Loki graphical installer (loki_setup) being fairly old, Ryan C. Gordon "Icculus" recent set out to work on version 2.0 of loki_setup. However, he came to the conclusion that he wanted to rewrite loki_setup from scratch, and thus MojoSetup was born. Ryan's MojoSetup is designed specifically to solve shortcomings in loki_setup while making this the next-generation graphical installer for Linux and other *NIX platforms. MojoSetup uses the Lua scripting language instead of XML, uses plugins for the user interface, a rollback mechanism for uninstallation, and the installer can access packages via FTP and HTTP (in addition to CDs, DVDs, SMBs, USB drives, etc), and is all distributed under the zlib license. The interface is also modern and Gordon had referred to it as looking like an Apple software installer. MojoSetup isn't yet ready for prime-time but last week he had just announced that it was ready for unveiling it to the public.


Wikipedia (Linux Installers for Linux Gamers (liflg)):

Linux Installers for Linux Gamers (liflg) is a website that supplies and builds game installers for Linux using the Loki and Mojo setup tools.
The goal of the project is that this will supply a user friendly interface for the use of Linux native games. Through the use of these tools they also hope to allow older game ports, such as those created by Loki Software, to run better on modern systems. This is accomplished in multiple ways, such as installing legacy libraries alongside the program if needed. The installers also allow users to install some games with all potential patches already applied. The project also occasionally releases installers for popular game modifications, such as Red Orchestra: Combined Arms.

Features

☑ All strings are UTF-8 internally. Unicode and localization were considered from the start. All translations are kept in a single text file (a Lua script, actually), so you don't have to fight with GNU .po files.

☑ The UI looks more like Apple's installer (well, it will!). It asks a few basic questions and then does its thing with a "wizard" style interface. It looks more "modern" than loki_setup (well, it will!).


☑ There is a "rollback" mechanism. Barring catastrophic disk failure, failed installations can undo everything they wrote to the filesystem, including restoring preexisting files that were overwritten during the install. The installer even makes an earnest attempt at cleanup and rollback if it is crashing with a segfault.

☑ As you would expect, the installer can use CD and DVD discs (and USB keychain drives, Samba shares, etc) for installation media, but it can also use data stored on a web server. You can specify files to be obtained at runtime over HTTP or FTP, which MojoSetup will do before starting the actual install loop. This is useful for shipping an extremely small package that gets the user to a UI as fast as possible, then downloads just the optional bits they choose to install...this also allows a vendor to supply updated installer packages on their website without having to repackage the installer itself.

☑ MojoSetup is under the zlib license. We had to put a hack in loki_setup for UT2003 to spawn an external application, since we couldn't link the UnrealEngine to loki_setup to verify CD keys without violating the GPL. This is also useful for installing arbitrary data formats (like the Outrage package format on the Descent 3 expansion disc) for which the publisher wishes to keep proprietary...they can write a one-shot archiver without violating the GPL.

MojoSetup is useful for me, and I hope it will be useful to you, too, under whatever circumstances you use it.

☑ MojoSetup already targets Unix systems, with the initial grumblings of support for Mac OS X, Windows and BeOS (!). Other Unixes are trivial to target. Like the GUI plugins, the platform-specific bits are being carefully separated out. loki_setup really sort of assumes a Unix (and in some cases, a Linux) system. Config files are somewhat easier to
reuse between platforms than loki_setup's...even if the most desparate scenarios, you could just have an if/else block for each platform, since the config file is a Lua script.

☑ No autoconf/automake nastiness, we're using CMake (thanks to KDE for moving to that and making it a viable tool).

☑ Development is done in a Subversion repository instead of CVS, in the same way that CMake was a newer, but better alternative to autotools.

☑ ...probably other things. :)