MojoSetup is a standalone installer for Linux

Overview

MojoSetup

MojoSetup is a standalone installer for Linux, designed to help third-party developers that need to ship software outside of traditional package management infrastructure.

The long, technical explanation of features and design can be read in the original announcement email.

We always need help with localization! If you can contribute a sentence or two of translation from English to your native language, we are extremely grateful. You can do this at launchpad.net.

Please read docs.txt for all the gritty details about building an installer.

Comments
  • MojoSetup slows down when using points in filenames

    MojoSetup slows down when using points in filenames

    This bug report was migrated from our old Bugzilla tracker.

    These attachments are available in the static archive:

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2009-02-26 16:33:28 -0500, Reto Schneider wrote:

    MojoSetup doesn't recognize the suffix of filenames when there are any point inside the filename (eg. glest-data_3.2.1.tar). MojoSetup tries every single archive format until it finds the correct one. This takes a lot of time.

    I'll attach a patch that enables MojoSetup to search a little bit harder to find the correct suffix.

    On 2009-02-26 16:34:58 -0500, Reto Schneider wrote:

    Created attachment 1983 Patch for MojoSetup slowdown on filenames with points

    On 2009-05-09 02:24:20 -0400, Ryan C. Gordon wrote:

    Should be fixed in hg changeset 671:ab9a0b4883fa.

    --ryan.

    opened by SDLBugzilla 0
  • No way to launch web browser...

    No way to launch web browser...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: All, All

    Comments on the original bug report:

    On 2007-05-22 04:07:47 -0400, Ryan C. Gordon wrote:

    There are several uses for launching a web browser, but the installer can't. This needs support in the platform layer, and maybe some sort of UI for it, too.

    --ryan.

    On 2007-05-22 04:40:43 -0400, Ryan C. Gordon wrote:

    (Changing platform and OS fields...)

    --ryan.

    On 2008-03-09 01:41:59 -0500, Ryan C. Gordon wrote:

    There's no UI for it, but it's built into the platform layer and Lua bindings now...

    --ryan.

    On 2009-09-22 18:00:11 -0400, Ryan C. Gordon wrote:

    Resolving bug.

    --ryan.

    opened by SDLBugzilla 0
  • Symlinks don't get deleted - Uninstallation fails

    Symlinks don't get deleted - Uninstallation fails

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2009-01-17 06:13:23 -0500, wrote:

    In my test setup two files get installed:

    file1: is a regular file file2: is a symbolic link to file1

    If I run the uninstall script the symlink is not deleted and the uninstallation fails because the installer can not remove the installation directory which is not empty.

    Problem is file1 is deleted before file2.

    mojosetup_mainline.lua:146 - function do_delete The call to MojoSetup.platform.exists returns false for file2 and so this function does not delete file2.

    The cause of this is in: platform_unix.c:564 - function MojoPlatform_exists access(dir, F_OK) return -1 because file1 was deleted and file2 is now a broken symlink.

    On 2009-01-31 19:08:42 -0500, Reto Schneider wrote:

    Is this but extremely hard to fix? Is there a ETA for a (hopefully coming) fix?

    Thanks, Reto

    On 2009-02-05 01:27:46 -0500, Ryan C. Gordon wrote:

    Should be fixed in hg revision 616:f7597a3863cd ... please let me know if it isn't.

    --ryan.

    On 2009-02-06 12:57:15 -0500, wrote:

    My test installer scenario uninstalls fine now. Thanks for the fix.

    opened by SDLBugzilla 0
  • MojoSetup throws

    MojoSetup throws "BUG: no options" when Setup.Option and Setup.OptionGroup

    This bug report was migrated from our old Bugzilla tracker.

    These attachments are available in the static archive:

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2009-01-06 06:14:25 -0500, Reto Schneider wrote:

    MojoSetup throws "BUG: no options" when Setup.Option and Setup.OptionGroup used in Setup.Package.

    Line 1132 in mojosetup_mainline.lua seems to cause it. Replace ~= with == helps.

    Thanks, Reto

    On 2009-01-12 12:46:15 -0500, wrote:

    I think Reto is right, see the attached config.lua. I get the same error as long as I don't comment out either the Setup.Option or the Setup.OptionGroup block.

    From mojosetup_mainline.lua:1132

    if install.options ~= nil and install.optiongroups ~= nil then
        MojoSetup.fatal(_("BUG: no options"))
    end
    

    This does not look right. For the attached test case this would mean install.options is not nil and install.optionsgroups is not nil too. As Reto stated it should look like:

    if install.options == nil and install.optiongroups == nil then
        MojoSetup.fatal(_("BUG: no options"))
    end
    

    So the installer bails out only if both install.options and install.optiongroups are nil but not if both are unlike nil.

    On 2009-01-12 12:47:27 -0500, wrote:

    Created attachment 1954 config.lua

    On 2009-01-12 21:59:28 -0500, Ryan C. Gordon wrote:

    Ah, yeah, good catch. Basic logic mistake on my part.

    Fixed in hg changeset 614:d3280f946e01, thanks!

    --ryan.

    opened by SDLBugzilla 0
  • Getting the CLI installer instead of the GUI

    Getting the CLI installer instead of the GUI

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2014-09-12 16:18:19 -0400, Xodetaetl wrote:

    I'm on Xubuntu 14.04 and all I get is a CLI with Braid and Aquaria's HumbleBundle installers.

    On 2014-09-16 00:19:13 -0400, Ryan C. Gordon wrote:

    Likely your system doesn't have 32-bit GTK+ libraries, or it has an incompatible version of those libraries, so the installer gives up and moves to the stdio interface.

    --ryan.

    On 2014-11-24 10:25:43 -0500, Xodetaetl wrote:

    Well, I can't see 32-bit packages of GTK in ubuntu 14.04's repos.

    Is there a list of deps for MojoSetup somewhere anyway?

    I'm writing install scripts for the gaming platform Lutris but I can only do it for mojosetup installers if I can ensure everyone will get the GUI. I can bundle the dependencies if I know them.

    On 2015-03-14 03:56:39 -0400, Xodetaetl wrote:

    Bump Thanks :)

    On 2016-01-25 12:19:54 -0500, Xodetaetl wrote:

    Found my answers.

    opened by SDLBugzilla 0
  • MojoSetup eats up memory while writing metadata

    MojoSetup eats up memory while writing metadata

    This bug report was migrated from our old Bugzilla tracker.

    These attachments are available in the static archive:

    Reported in version: unspecified Reported for operating system, platform: Mac System 7, PC

    Comments on the original bug report:

    On 2009-01-05 09:01:10 -0500, Reto Schneider wrote:

    When installing 10'000+ files with MojoSetup it eats up my whole 2 GB Ram while writing the metadata. Eventually it will finish, but it hangs my PC for about 5 minutes. write_manifest = false solves the problem, but forces me to use support_uninstall = false.

    I created a minimalistic package to show the problem, hope it helps: ftp://reto-schneider.ch/10kfiles.tar.bz2

    Thanks, Reto

    On 2009-01-05 23:24:00 -0500, Ryan C. Gordon wrote:

    Yeah, we currently build the manifest as one long string, and write it as a text file in one shot. This was basic laziness on my part. I'll fix it.

    --ryan.

    On 2009-06-05 12:44:10 -0400, Reto Schneider wrote:

    Created attachment 2070 My compiler gives me a warning about that

    On 2009-06-05 12:44:46 -0400, Reto Schneider wrote:

    Created attachment 2071 exports chmod() into lua

    On 2009-06-05 12:45:03 -0400, Reto Schneider wrote:

    Created attachment 2072 Makes it faster

    On 2009-06-05 12:47:06 -0400, Reto Schneider wrote:

    I tried to make things faster (expect failures... I'm not strong at programming). Now it works within seconds.

    On 2009-06-15 15:07:59 -0400, Ryan C. Gordon wrote:

    Comment on attachment 2072 Makes it faster

    You have the right idea here with the speedup patch. Lua's '..' operator isn't meant for heavy lifting.

    In fact, Lua's primary developer recommends the string table approach you took for a speed boost:

    http://www.lua.org/gems/sample.pdf

    ("About Strings" section, page 22.)

    The only problem is that this still leaves a big pile of immutable string fragments on the heap, just waiting for garbage collection, so I might move this into C code. I have to think about it a little more.

    --ryan.

    On 2009-06-15 15:16:53 -0400, Ryan C. Gordon wrote:

    Comment on attachment 2070 My compiler gives me a warning about that

    Compiler warnings over printf() patch in now in revision control, hg changeset 680:9688bf9c72b3. Thanks!

    --ryan.

    On 2009-07-07 03:26:13 -0400, Ryan C. Gordon wrote:

    hg changeset 681:4d1097947759 should fix the performance. Please note I haven't tested this change yet, and it might be totally broken, so don't rely on it tonight or anything.

    --ryan.

    On 2009-07-07 18:29:20 -0400, Ryan C. Gordon wrote:

    Comment on attachment 2072 Makes it faster

    Okay, I've optimized and debugged by version of the performance patch, as of hg changeset 688:daaf73ab4961.

    This should be safe to use now.

    --ryan.

    On 2009-07-07 18:32:39 -0400, Ryan C. Gordon wrote:

    Comment on attachment 2071 exports chmod() into lua

    Obsoleting the chmod patch, as it isn't necessary anymore.

    --ryan.

    On 2009-07-07 18:33:19 -0400, Ryan C. Gordon wrote:

    Resolving bug as fixed!

    --ryan.

    opened by SDLBugzilla 0
  • Need better localized formatting...

    Need better localized formatting...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2008-01-12 00:03:13 -0500, Ryan C. Gordon wrote:

    We can't really use printf(), because that's flakey in general (what if a translator forgets a %s or whatnot?), but also because strings may need reordering in a translation...so maybe %1, %2 is beter than %s, %s?

    --ryan.

    On 2008-01-12 05:48:46 -0500, Ryan C. Gordon wrote:

    Fixed in svn revision # 400.

    --ryan.

    opened by SDLBugzilla 0
  • mojosetup fails on some 64-bit filesystems

    mojosetup fails on some 64-bit filesystems

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2011-01-06 16:49:30 -0500, Hector Martin wrote:

    I reported this through the livechat, but I haven't heard back so here's a more formal report.

    Mojosetup crashes on filesystems where any component of the path has an inode number that does not fit in 32 bits (this can happen e.g. on XFS mounted with inode64). It looks like this:

    PANIC BUG: crash at startup

    The crash occurs in MojoArchive_initBaseArchive, where MojoPlatform_appBinaryPath is called and the return value is not checked for NULL. appBinaryPath fails when MojoPlatform_realpath walks all the path components and lstat() fails on any one of them due to the 32-bit limitation.

    The solution is to simply compile mojosetup in 64-bit file IO mode (-D_FILE_OFFSET_BITS=64). This also makes it use a 64-bit inode field in 'struct stat' and everything works. I haven't tested this with mojosetup but I wrote a simple testcase, compiled in 32-bit mode (I run a 64-bit distro) with and without -D_FILE_OFFSET_BITS=64 and was able to confirm that lstat() on the problem dir works when compiled that way.

    On 2011-01-12 19:16:01 -0500, Ryan C. Gordon wrote:

    I added the preprocessor define in hg changeset 808:dac276dc6e79, and check for that NULL in changeset 809:1835f18093d3.

    Thanks!

    --ryan.

    On 2011-01-12 19:21:50 -0500, Hector Martin wrote:

    Thanks! Please let me know when an updated version of the Braid installer with the new MojoSetup is available :)

    opened by SDLBugzilla 0
  • INCLUDE Could not find include file: CheckCCompilerFlag

    INCLUDE Could not find include file: CheckCCompilerFlag

    This bug report was migrated from our old Bugzilla tracker.

    These attachments are available in the static archive:

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2008-09-01 17:05:07 -0400, wrote:

    This module was introduced with cmake version 2.4.4. The patch changes the minimum required version of cmake to 2.4.4

    On 2008-09-01 17:05:26 -0400, wrote:

    Created attachment 1851 require_cmake2.4.4.patch

    On 2008-09-07 16:44:05 -0400, Ryan C. Gordon wrote:

    Fixed in hg changeset 586:7e31414ac037, thanks!

    --ryan.

    opened by SDLBugzilla 0
  • Only depend on a c++ compiler on Beos

    Only depend on a c++ compiler on Beos

    This bug report was migrated from our old Bugzilla tracker.

    These attachments are available in the static archive:

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2008-09-01 16:48:02 -0400, wrote:

    I don't know why but it looks like that the only platform which needs a c++ compiler is Beos. With this patch mojosetup requires only a c compiler on all other platforms than Beos.

    On 2008-09-01 16:48:31 -0400, wrote:

    Created attachment 1850 use_g++_only_on_beos.patch

    On 2008-09-07 16:16:00 -0400, Ryan C. Gordon wrote:

    Comment on attachment 1850 use_g++_only_on_beos.patch

    (changing mimetype of patch.)

    On 2008-09-07 16:46:25 -0400, Ryan C. Gordon wrote:

    Fixed in hg changeset 587:9dccead95bbc, thanks!

    --ryan.

    opened by SDLBugzilla 0
  • Too many confirmations on fatal()...

    Too many confirmations on fatal()...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: All, Macintosh

    Comments on the original bug report:

    On 2007-05-22 02:38:05 -0400, Ryan C. Gordon wrote:

    If a user cancels an install, they get a "ARE YOU SURE?!" message, then a msgbox saying "you cancelled this." Then a final stage page they have to click through. Can we lose some of these?

    --ryan.

    On 2008-01-11 23:59:05 -0500, Ryan C. Gordon wrote:

    Fixed in svn revision # 397.

    --ryan.

    opened by SDLBugzilla 0
  • Prey installer: create a launcher for the game in KDE/Gnome menu

    Prey installer: create a launcher for the game in KDE/Gnome menu

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: Linux, PC

    Comments on the original bug report:

    On 2009-02-26 15:33:15 -0500, FJA wrote:

    I installed Prey as root to make it system-wide, but I don't see a launcher in my K-Menu, I guess in Gnome the launcher lacks too. Would be nice if you could implement this for non-experienced users, who don't know how to create it.

    On 2009-03-02 01:18:47 -0500, Ryan C. Gordon wrote:

    This should be creating a launcher with xdg-utils, and should handle Gnome and KDE (and some other desktop environments, too).

    It tries the system-installed version of xdg-utils first; is it possible that it is buggy on your distro?

    Or perhaps it installed a launcher for "root" and not for everyone (which is probably a bug in the installer)?

    --ryan.

    On 2009-03-02 01:20:12 -0500, Ryan C. Gordon wrote:

    I'm kicking this bug over to the MojoSetup product, since it's not a Prey bug, really. This is just for record keeping: disregard this message.

    --ryan.

    On 2009-03-02 10:47:56 -0500, FJA wrote:

    My system is OpenSuse 11.1, xdg-utils-1.0.2-56.1. The launcher should be placed into /usr/share/applications/ if one installs Prey as root. I created a .desktop file and put into this directory and all users see it in the menu now. If you need logs, I can install the game once again, perhaps it tells you why the launcher doesn't get created in my case.

    opened by SDLBugzilla 0
  • No formal way to test for admin rights...

    No formal way to test for admin rights...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: All, All

    Comments on the original bug report:

    On 2007-05-22 04:06:49 -0400, Ryan C. Gordon wrote:

    There's no way to refuse to install a package if the installer isn't running as the superuser.

    MojoSetup.info.isadmin should be a boolean of whether the given account has administrator rights, and there might be some use in having a formal attribute to Setup.Package that tests this...but then, what do you do if you have several Setup.Packages and only one needs admin?

    Is "admin" enough, or should we deal with finer-grained rights?

    --ryan.

    opened by SDLBugzilla 0
  • Download/install pause support...

    Download/install pause support...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: All, All

    Comments on the original bug report:

    On 2007-05-22 04:00:09 -0400, Ryan C. Gordon wrote:

    It would be nice if an installer could be paused, in case the download is using network bandwidth (or the primary install is using disk bandwidth) that the user has an immediate need for elsewhere.

    This could be done largely with a "pause" button in the progress UI's page that loops and pumps the event queue without returning until resumed, but some extra help might be needed for the stupid network thread, which won't really pause until the ring buffer fills.

    --ryan.

    opened by SDLBugzilla 0
  • Download resume support...

    Download resume support...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: All, All

    Comments on the original bug report:

    On 2007-05-22 03:56:34 -0400, Ryan C. Gordon wrote:

    Right now, if a download from an http:// or ftp:// source fails for any reason, the half-complete download and all others are deleted during fatal()'s cleanup.

    It would be nice to be able to leave these there, including half-completed downloads, and pick up where we left off, or at least have an option to retry or resume a download if it fails during a given run.

    --ryan.

    opened by SDLBugzilla 0
  • Finish Windows port...

    Finish Windows port...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: Windows XP, PC

    Comments on the original bug report:

    On 2007-12-07 08:45:09 -0500, Ryan C. Gordon wrote:

    ...we need a UI (not even started), and we need to finish the platform layer (almost done). A lot of the code relies on Unix-style '/' paths, too, and that's a problem.

    --ryan.

    opened by SDLBugzilla 0
  • Write up Cars installer example...

    Write up Cars installer example...

    This bug report was migrated from our old Bugzilla tracker.

    Reported in version: unspecified Reported for operating system, platform: All, All

    Comments on the original bug report:

    On 2007-05-22 04:39:44 -0400, Ryan C. Gordon wrote:

    ...since it demonstrates archive-in-archive installation.

    --ryan.

    opened by SDLBugzilla 0
Owner
Ryan C. Gordon
I make things that help you make games.
Ryan C. Gordon
PS4 Internal PKG Installer

ps4-ipi PS4 IPI, short for Internal PKG Installer, is a PlayStation 4 utility homebrew app which will install PKG files from the HDD, making it possib

0x199 102 Nov 20, 2022
Windows 2000 styled installer for Panther based distributions of Microsoft Windows (WIM files).

An advanced installer for Microsoft Windows that mimics the looks of the Windows XP and older installers. Takes any modern (Vista and newer) Windows ISO or WIM file and creates a old styled Windows Setup experience on the go.

null 5 Dec 17, 2022
Installer File TakeOver

Installer File TakeOver

Abdelhamid Naceri 1.7k Sep 29, 2022
Simple Software Application Package Installer for CachyOS which helps setting up & installing applications

cachyos-packageinstaller Simple Software Application Package Installer. Requirements C++20 feature required (tested with GCC 11.1.0 and Clang 13(clang

CachyOS 3 Jul 1, 2022
A standalone and lightweight C library

Klib: a Generic Library in C Overview Klib is a standalone and lightweight C library distributed under MIT/X11 license. Most components are independen

Attractive Chaos 3.7k Jan 8, 2023
Standalone MinHook wrapper for Golang.

Standalone version of GoMinHook! Credit to https://github.com/NaniteFactory/gominhook and https://github.com/TsudaKageyu/minhook as almost all of the

null 3 Jun 4, 2022
Node running standalone on PC, with interface - self-containing all dependencies

GMD Node Windows Application It is the GMD Node App for Windows packaged in a simple "one-click" installer containing all necessary dependencies. We a

Geoma COOP 3 Sep 25, 2022
ZSV/lib: a fast CSV parsing library and standalone utility

Please note: this code is still alpha / pre-production. Everything here should be considered preliminary. If you like ZSVlib, please give it a star! Z

null 96 Dec 30, 2022
Python Standalone Deploy Environment

PyStand Python 独立部署环境。Python 3.5 以后,Windows 下面都有一个 Embedded Python 的 独立 Python 运行环境,这个 PyStand 就是配合 Embedded Python 使用的。

Linwei 207 Dec 26, 2022
The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2)

Introduction The WSL2-Linux-Kernel repo contains the kernel source code and configuration files for the WSL2 kernel. Reporting Bugs If you discover an

Microsoft 6.3k Jan 8, 2023
Linux x86_64 Process Injection Utility | Manipulate Processes With Customized Payloads (beta)

K55 - Linux x86_64 Process Injection Utility (C++11) About K55 (pronounced: "kay fifty-five") The K55 payload injection tool is used for injecting x86

Josh Schiavone 57 Sep 5, 2022
Quick fix to iphone usb tethering with ios14 or higher for Linux kernel lower than 5.10.4

Quick fix to Linux Iphone USB tethering with IOS 14 or higher (Tested with ubuntu 18.04, kernel 5.4.0-65, if you fail in the build, please download yo

null 24 Sep 18, 2022
A beginner friendly desktop UI for Tasmota flashed devices for Windows, macOS and Linux.

TasmoManager A beginner friendly desktop UI for Tasmota flashed devices for Windows, macOS and Linux. Features Native Tasmota device discovery (via ta

Tom Butcher 52 Dec 10, 2022
Slackware for Windows Subsystem for Linux (WSL)

WSLackware: Slackware on Windows! Slackware for Windows Subsystem for Linux (WSL) WSLackware is an unofficial version of Slackware for Windows Subsyst

Mohsen Seifi 46 Dec 30, 2022
Linux kernel module to fight against police terror

protecc is a Linux kernel module that will shut down your computer when a predefined USB device is removed from the system.

null 25 Nov 20, 2022
Graphs the disk IO in a linux terminal.

diskgraph Monitor for disk IO Introduction The diskgraph tool will graph disk IO under linux, in a terminal. Examples: $ ./diskgraph /dev/nvme0n1 $ ./

Bram Stolk 184 Nov 14, 2022
Linux USB driver for the MOTU AVB series interfaces

motu-avb Linux USB driver for the MOTU AVB series interfaces Kernel parameters: samplerate: set the samplerate (its currently fixed at module load) de

null 47 Dec 23, 2022
BK0010/BK0011 Emulator for Linux

<html><head> <meta http-equiv="content-type" content="text/html;charset=koi8-r"> </head> <body><pre> Этот эмулятор БК-0010 (пока только БК-0010, у мен

Yaroslav Salnikov 8 Oct 9, 2022