Recent

Author Topic: shipping the finished software...  (Read 12366 times)

Edwin Martens

  • New Member
  • *
  • Posts: 15
shipping the finished software...
« on: August 12, 2016, 08:20:22 pm »
Using Lazarus, what needs to be shipped with your finished program ?
Are there any dll's or other dependencies ?
I used Delphi a lot 3 and 5 long ago to make education software.
Lazarus could be the right tool to make a restart.But I need to know if there is a so called dependency hell.
C / C++ programmer with a love for good old Pascal
Hobbies:  Game programming and Photography

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: shipping the finished software...
« Reply #1 on: August 12, 2016, 08:28:27 pm »
LCL itself doesn't depend on any external libraries (except for system libraries such as kernel32.dll or user32.dll).

Thus - No - no dependencies.

However, some 3d party components might depend on external .dlls

Thaddy

  • Hero Member
  • *****
  • Posts: 18764
  • To Europe: simply sell USA bonds: dollar collapses
Re: shipping the finished software...
« Reply #2 on: August 12, 2016, 08:46:22 pm »
Well. that's not the whole story. It is even incorrect. E.g. fpc-db and therefor most database components rely on these database libraries being installed.
Which is certainly NOT the case . The LCL depends on many third party libraries. Just the basic controls have no dependencies.
Same goes for many more. So that statement is false, unless you are able to link your program fully statically which is not always possible.

So basically: if it is possible to link everything statically, do so and you have no trouble distributing your application, but if you rely on third party dynamic libraries (dll,so)such as database software and communications software (openssl) make sure these are either documented as *must install* or part of your distribution.
Skalogryz statement may bring you into a false sense of security. Over half the packages in the FPC distribution alone rely on third party libraries.
He should not have written that and he knows it now. He knew it already.
« Last Edit: August 12, 2016, 08:52:42 pm by Thaddy »
If Europe sells their USA bonds the USD will collapse. Europe can affort that given average state debts. The USA can't affort that. Just an advice...

Edwin Martens

  • New Member
  • *
  • Posts: 15
Re: shipping the finished software...
« Reply #3 on: August 12, 2016, 09:02:22 pm »
I'll avoid using a database if I can avoid it in any way..
Databases are overrated !
And anything beyond the components that come with lazarus will be written by myself. It's just important that I can ship the final product without a hassle.
I do have a nice Delp
C / C++ programmer with a love for good old Pascal
Hobbies:  Game programming and Photography

Phil

  • Hero Member
  • *****
  • Posts: 2737
Re: shipping the finished software...
« Reply #4 on: August 12, 2016, 09:05:31 pm »
Edwin,

I wouldn't worry too much about this. If you're on Windows, you can package up any dependent DLLs that your app needs into your app's installer. If you use the free Inno Setup, you can even package other installers with it and have your installer run them. That way all the dirty details of installing dependencies will be hidden from the user.

Note that the state of education software has changed quite a bit since your Delphi days, however. I doubt if there's much educational software being developed or delivered as old-style Windows desktop software. Most educational software now targets either Web interfaces or iPads or Chrome books.

-Phil

Edwin Martens

  • New Member
  • *
  • Posts: 15
Re: shipping the finished software...
« Reply #5 on: August 12, 2016, 09:21:00 pm »
True, and for a lot of subjects, good educational software that actually teaches something is virtually non existent. I've never seen anything like my chemistry program that lets you draw a structure formula completely freehand and still is capable of checking the IUPAC rules,  naming etc.
C / C++ programmer with a love for good old Pascal
Hobbies:  Game programming and Photography

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: shipping the finished software...
« Reply #6 on: August 12, 2016, 09:28:26 pm »
And anything beyond the components that come with lazarus will be written by myself. It's just important that I can ship the final product without a hassle.
Thus - no dependencies.

Thaddy

  • Hero Member
  • *****
  • Posts: 18764
  • To Europe: simply sell USA bonds: dollar collapses
Re: shipping the finished software...
« Reply #7 on: August 12, 2016, 09:41:35 pm »
Yes, in that case. You are even allowed some database functionality (a lot, actually) through TBufDataset or  TMemDataSet or TDbf (that one IS fully native)  ;)
But be careful with what you use. If you are not a seasoned Lazarus developer you will overlook dependencies where you least expect them... :)
If Europe sells their USA bonds the USD will collapse. Europe can affort that given average state debts. The USA can't affort that. Just an advice...

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: shipping the finished software...
« Reply #8 on: August 12, 2016, 09:53:13 pm »
Since Edwin comes from Delphi, the question is more related to Delphi's dynamic rtl.

A Delphi app can be compiled inadvertently with dynamic RTL. The resulting application would be very small, but will not run, unless rtl packages are available on the target machine.

FPC doesn't provide any kind of dynamic RTL, yet. So it's not an issue for LCL based programs.


Edwin Martens

  • New Member
  • *
  • Posts: 15
Re: shipping the finished software...
« Reply #9 on: August 12, 2016, 11:59:28 pm »
If very small is needed I could always use the win32 API ;-)
And with some adaptations that can be done in Pascal..(I wrote some small lightweight tools in Delphi back then) But that would corrupt the idea of RAD  as well as the idea of developping for Windows and Linux simultaneously.
(And C would be more suited for that task)

C / C++ programmer with a love for good old Pascal
Hobbies:  Game programming and Photography

Phil

  • Hero Member
  • *****
  • Posts: 2737
Re: shipping the finished software...
« Reply #10 on: August 13, 2016, 01:03:52 am »
I've never seen anything like my chemistry program that lets you draw a structure formula completely freehand and still is capable of checking the IUPAC rules,  naming etc.

You mean like this?

https://web.chemdoodle.com/demos/iupac-naming/


skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: shipping the finished software...
« Reply #11 on: August 13, 2016, 01:25:54 am »
You mean like this?

https://web.chemdoodle.com/demos/iupac-naming/
I failed to draw anything after making about 30 clicks :)

But got this: "Thank you for trying our ChemDoodle Web Components demos!
You have exceeded the maximum number of free transactions allowed. For unlimited access, please purchase ChemDoodle desktop for as little as $19."

Phil

  • Hero Member
  • *****
  • Posts: 2737
Re: shipping the finished software...
« Reply #12 on: August 13, 2016, 01:36:05 am »
Maybe you have to be a chemist?

I noted that site because the ChemDoodle Web Components are GPL, so it might be a good place to start.


Thaddy

  • Hero Member
  • *****
  • Posts: 18764
  • To Europe: simply sell USA bonds: dollar collapses
Re: shipping the finished software...
« Reply #13 on: August 13, 2016, 08:38:10 am »
Since Edwin comes from Delphi, the question is more related to Delphi's dynamic rtl.

A Delphi app can be compiled inadvertently with dynamic RTL. The resulting application would be very small, but will not run, unless rtl packages are available on the target machine.

FPC doesn't provide any kind of dynamic RTL, yet. So it's not an issue for LCL based programs.

Well, NOBODY uses that feature in any serious professionally designed  Delphi software. I have never seen it used in the wild, not since it was actively promoted for very early Delphi versions.
Professionals prefer normal dll's over packages because they or their collegues learned that the hard way.
« Last Edit: August 13, 2016, 08:45:57 am by Thaddy »
If Europe sells their USA bonds the USD will collapse. Europe can affort that given average state debts. The USA can't affort that. Just an advice...

Edwin Martens

  • New Member
  • *
  • Posts: 15
Re: shipping the finished software...
« Reply #14 on: August 13, 2016, 04:43:57 pm »
I've never seen anything like my chemistry program that lets you draw a structure formula completely freehand and still is capable of checking the IUPAC rules,  naming etc.

You mean like this?

https://web.chemdoodle.com/demos/iupac-naming/

That is somewhat "like" it but it can hardly compete with Chemistry Workbench.
Cwb also explains why.. teaches to find the main carbon chain.. tells you where you went wrong etc.
and the newest version will have 3D capabilities as well.
C / C++ programmer with a love for good old Pascal
Hobbies:  Game programming and Photography

 

TinyPortal © 2005-2018