[Gambas-user] Feature suggestion: GAMBAS optional runtime auto-update

Kevin Fishburne kevinfishburne at ...1887...
Sun Aug 24 21:12:53 CEST 2014


On 08/23/2014 09:22 AM, Willy Raets wrote:
> On vr, 2014-08-22 at 19:51 -0400, Kevin Fishburne wrote:
>> In the interest of accessibility to a stable version of the GAMBAS
>> runtime without requiring users to add a PPA or drop to the command
>> line, I think it may be useful to add an "auto-update" feature or
>> equivalent.
>>
>> Currently users have three ways to install GAMBAS: (1) Install from
>> their distro's package manager, (2) add the stable or daily PPA, and (3)
>> compile from source. Users who will be using GAMBAS to program will have
>> no trouble using any of these methods. Users who simply need the runtime
>> to use a GAMBAS application however may require a dead-simple method, as
>> they could in theory be the mythical Grandmother.
>>
>> Another problem is that the specific build of GAMBAS packaged with many
>> distros is outdated or unstable. I can create a GAMBAS application using
>> the stable PPA, create an installation package, distribute it, and users
>> who install it may not be able to run the program because their distro's
>> GAMBAS build is too old.
> I run into the same problems, distributing my applications to simple
> users is a hell, becuase of outdated Gambas packages in the official
> repositories.
>
>> I don't know the best solution to these problems, though I can think of
>> some possibilities:
>>
>> Add an option when creating an installation package to prompt the user
>> to install dependencies from the stable PPA or from source. When the
>> user begins to install the package, a script will be run that prompts
>> them if they'd like to install updated runtime dependencies with the
>> default answer being Yes. Whether the PPA or sources are used depends on
>> the option chosen when building the installation package.
> This is a bit of a chicken/egg situation.
> Example:
> You build a package in say 3.5.4 and it then should have some way to
> latest stable PPA.
>
> Say you run it on Ubuntu 12.04 running Gambas 3.1.1.
> Your 3.5.4 package will be aborted because of 3.5 dependency, so even
> the adding newer PPA wouldn't run!!
>
> What would be needed is a Gambas application written in 3.1.x named
> GambasUpdater for example that simply adds the stable repo to the
> sources.list and run an apt-get update.
>
> After this you should be able to install 3.5.x packages.
> But now you only tackled Ubuntu and Ubuntu based distro's
>
> For Debian the application would need to add jessie repo to sources.list
> and a Preferences file to make it work.
>
> I have been thinking about writing such an application so at least
> Ubuntu and Debain Gambas 3.5.x packages can be installed, as long as the
> user first installs the application GambasUpdate. Time constrains have
> kept me from doing so
>
> For other distro's (rpm based ones) I have no clue.
> But if I know what repos and how to add a repo on fedora, mageia,
> opensuse and such, it could all be done in one app.
>
> User selects distro he is running and next a recent Gambas repo gets
> added to their system, that is about all that would be needed.

That is an interesting solution, although that assumes GAMBAS is already 
installed on a user's system. My suggestion was to have the GAMBAS 
Installation Package (Project, Make, Installation Package) procedure, 
which will already be targeting a specific distribution, add a script to 
the .deb files to optionally add the PPA and update the repositories so 
the updated dependencies will be installed instead of the stock distro 
packages. I don't know much about the Debian package structure, but 
surely it supports running pre/post scripts? The user would open the 
.deb, click the Install button, a script would be run to add the PPA, 
update the package list, then the .deb would install normally but with 
access to the updated PPA dependencies. The only thing the user may be 
required to do is enter their password and press Enter on the PPA 
prompt, and we may be able to suppress the latter.

>> Another possibility is to have an option when creating an installation
>> package that includes the runtime dependencies of the dev's build
>> environment. Instead of the package pulling dependencies from the target
>> system's repositories it would simply use the included packages. I know
>> that's not the Linux or GAMBAS way, but it's better than using old
>> GAMBAS packages in the user's repositories that may not work at all.
>> Remember, these solutions are for users that either don't know or don't
>> want to know the "right" way to do things, they just want to run the
>> program.
>>
>> Yet another possibility is to have an option when creating an
>> installation package that would cause the execution of the installed
>> application itself to check the installed runtime dependencies (if any)
>> against the stable PPA's runtime dependencies and prompt the user to
>> update if there is a discrepancy. It could even add the PPA, install the
>> dependencies, then remove the PPA.
>>
>> Solutions requiring the automatic compilation from source would be more
>> difficult, as the target environment would need to be set up with build
>> tools first. Solutions adding a PPA would be easier assuming the target
>> environment's distribution version was supported by the PPA. I don't
>> know how reliable the solution including the developer's runtime
>> dependencies would be.
>>
>> IMHO for GAMBAS to properly dominate the world, installing a GAMBAS
>> program really should be as easy as double-clicking a .deb/.rpm and
>> clicking Next, Next, etc. So, is this a problem worth solving, and if
>> so, what does everything think the best solution would be?
>>
> I think it is worth solving and the best option would be that we get
> more recent Gambas versions in the official repositories.

While that's the "proper" solution, based on the past it seems to be an 
elusive goal. From what I've seen, the repository maintainers seem to 
operate on a different time scale than normal people.

> The second best option is writing the GambasUpdate application in an
> older Gambas 3.1, so that this can be installed using the outdated
> official repositories and next when run update to a non official repo
> running the latest Gambas.
>

I like this idea, however its Achilles' heel is that the user needs 
GAMBAS to update GAMBAS (chicken and egg as you mentioned). Is there a 
way to have GAMBAS placed into a single .deb or .rpm package? The user 
could simply download and execute a single file to have the latest 
stable build, no PPA fiddling necessary. Whatever script is used to 
generate the PPA .debs could run an additional script to place GAMBAS 
into a single .deb, allowing the user to (1) install GAMBAS in a 
familiar way (download then open) and (2) run a GAMBAS application in a 
familiar way (download then open).

I plan on releasing a game in the next couple of months on Steam and GOG 
(made with GAMBAS, obviously), so its functionality in this respect is 
about to be tested by fire.

-- 
Kevin Fishburne
Eight Virtues
www: http://sales.eightvirtues.com
e-mail: sales at ...1887...
phone: (770) 853-6271





More information about the User mailing list