[Gambas-user] check 4 Gambas Runtime files?

Tobias Boege taboege at gmail.com
Thu Dec 14 20:37:40 CET 2017


On Thu, 14 Dec 2017, mikeB wrote:
> mikeB here again (i'm sure that most folks think i should just go away &
> figure it out myself- but just maybe others have these same questions?
> amd i'm having a heck of a time 'figuring it out myself' ;-(
> 
> 
> *******************************************************
> In comparing a setup file (VB6 to Gambas):
> 
> VB6 INSTALL = the script of almost all M$ Windows install files includes at
> the very beginning the current VB runtime files (at least in any setup I
> ever created) to make sure the end users' system is up to date with the
> software being installed.
> 
> GAMBAS INSTALL = if an app is developed using Gambas version 3.10 and the
> end users system has v3.8 runtime files installed (or none) the program (end
> user app) will not install - comes back with the message
> that v.10 runtime files are required. Not a peep on how to get them or
> offer to do it automatically.
> ********************************************************
> 
> So - my question is = would there be a way to include the v.10 runtime files
> in the install script - to upgrade if needed - just like a VB6 install? And
> if so,  would that cause any unforeseen problems?
> 
> For the somewhat advanced Linux user - none of this matters much
> cuz they are use to handling these issues - but my concern is the
> person that just switched from Wins 10 to Linux 3 days ago - as I have
> a large following that I'm trying to help make the switch not only to Linux
> but to Gambas programming;-)  I want the end user to have NO problems
> installing a Gambas programmed app - just double click the file (to install)
> like they are use to. Not having to check v or anything else - just double
> click the file.
> 
> Sorry for the long post as some of it was prob unnecessary,
> have a GREAT day,
> mikeB
> 

First of all, there seems to be Docker [1] if you want to distribute a
program with all its dependencies. I have a hard time understanding their
jargon, but the docs [2] contain these sentences:

  Portable deployment across machines. Docker defines a format for bundling
  an application and all its dependencies into a single object called a
  container. This container can be transferred to any Docker-enabled machine.
  The container can be executed there with the guarantee that the execution
  environment exposed to the application will be the same in development,
  testing, and production.

I have no idea how they do that and what is costs. You would hope they don't
throw all the libraries into an image, because that could turn out to be
huge for Gambas, if you tie in the QT libraries, for instance. (Their logo
kind of suggests that.) On the plus side, your customers won't need Linux
anymore :-)

I won't say any more about Docker, because I never used it and others here
may have, and I don't have time to do more research about it now.

> So - my question is = would there be a way to include the v.10 runtime files
> in the install script - to upgrade if needed - just like a VB6 install? And
> if so,  would that cause any unforeseen problems?

It's not clear how to do that. The merit of Docker is probably that
they figured out a way to do this without messing up and it seems to
be intricate. You can't simply ship a native library compiled for your
home computer together with your Gambas program and expect it to work
on someone else's raspberry pi because, for starters, that processor
has a different instruction set.

Besides the feasibility, who *wants* you to ship them their dependencies
with every one of your programs? Assuming they trust you not to put in
anything malicious, it's a waste of space as soon as one gets more than
one of your programs. Let me just say in closing this line of thought
that you're not the first one who thought about that, but it generally
seems to be a mess and people eventually turn to the Right Way.

And that is to install programs with your package manager, which will
take care of installing dependencies system-wide. This raises the question
how you distribute your programs currently and what exactly

> comes back with the message that v.10 runtime files are required

means. If you target Ubuntu, we have a PPA with a current Gambas version,
as you know. You would have to tell your people once that they must enable
this PPA (and nothing more) and afterwards you can give them installation
packages made by the IDE and all components will be installed as they are
needed, automatically on double click -- and it /should/ actually work in
practice, too!

Did you find the "Make installation package" functionality already and
does it fail you?

Regards,
Tobi

[1] https://www.docker.com/
[2] https://docs.docker.com/engine/faq/

-- 
"There's an old saying: Don't change anything... ever!" -- Mr. Monk


More information about the User mailing list