Recent

Author Topic: Lazarus Season of Code - Pre-eliminary Announcement  (Read 46111 times)

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3538
Lazarus Season of Code - Pre-eliminary Announcement
« on: July 28, 2010, 10:08:45 am »
Dear sirs/madams, the Lazarus Donations fund is proud to announce that it plans to use part of it's funds to finance new developments which will increase the development possibilities using Free Pascal and Lazarus. It will focus on attracting students and coders to develop strategically important parts which are currently missing due to the lack of developers. For more information please see:

http://wiki.freepascal.org/Lazarus_Season_of_Code

Note, however, that all of this is pre-eliminary information and that all dates, values, tasks, rules, and in general nearly everything about the project may change in the next months.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4458
  • I like bugs.
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #1 on: July 28, 2010, 03:03:49 pm »
I took the liberty to add a task for proper Lazarus installers.

Installation is now much too difficult. This is a typical situation in an open source project. There are few core developers who already know how to install.
The ones that suffer from the problem don't know how to fix it.

There are many examples of programs that are easy to install. One of them is http://www.teamviewer.com (which I just learned to know). There is a big Start/Download button which can't be missed. It recognizes your OS and offers the right package, RPM or DEB for Linux, DMG for Mac, EXE for Windows (could be also MSI), app store link for iPhone.

A Linux distro that has FPC and Lazarus available in its package server is now the best OS for installing Lazarus bacause the package manager takes care of FPC dependency for Lazarus.
Click and OK, just like it should be.

Other platforms have problems. For example Windows:
I installed Lazarus for Windows for the first time. Then I had already installed SVN versions of both FPC and Lazarus on Linux, configured git-svn link to use the subversion server directly with git, and committed lots of code for the converter in Lazarus. So I was not a complete newbie any more.
Still I had to ask instructions on chat for how to install on Windows, and without asking it would have gone wrong. Namely I would have chosen "fpc-2.4.0.source.zip" instead of "fpcbuild-2.4.0.zip" when I wanted FPC sources.

The goal should be a one-click installer for anyone who wants to try Lazarus.


Juha
« Last Edit: July 28, 2010, 03:40:15 pm by JuhaManninen »
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9754
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #2 on: July 28, 2010, 03:18:50 pm »
A Linux distro that has FPC and Lazarus in its package server is now the best OS for installing Lazarus because the package manager takes care of FPC dependency for Lazarus.
Just click and OK, just like it should be.

Interesting, I always thought the windows installation was/is the easiest?

When I first joined Lazarus, I downloaded, and installed it on windows => no problems encountered, it just worked...

On Linux, I often see people asking, because they have problems. they chose the wrong package in their package manager; and then the gtk-devel and other devel packages are missing, nothing works.
- Or they install it in some way, that only root can use it...
- Or (at least in the older days), you had to add a link/entry to your package manager first...

On Mac, you need some devel stuff to...

Anyway: I do not think that all can be solved by an installer => dependencies on linux are best solved by the package manager. Trying to re-create this in your own installer can always only be of lesser quality...
Same for the devel stuff on Mac (since I guess licensing will not allow to bundle it into the Laz installer?

The things that can be improved, is for the (semi) advanced user/developers. [1]
A second installation for example => that needs a diff config dir; or uses a pre-installed fpc (on Windows)

[1] semi advanced => developers who are ready for advanced stuff, but simply haven't gone through the pitfalls

Anyway, they need to go through the pitfalls at some time.

But for what it is worth => checking for any pre-installed stuff, and at least give feedback (or options if possible) is a reasonable idea

felipemdc

  • Administrator
  • Hero Member
  • *
  • Posts: 3538
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #3 on: July 28, 2010, 03:39:53 pm »
I took the liberty to add a task for proper Lazarus installers.

Sure, the list is for ideas. I will review the ideas and decide which ones are prioritary enough to make it to the project. Now, into your specific suggestion:

Quote
The goal should be a one-click installer for anyone who wants to try Lazarus.

The Windows installer is already one-click. You don't need to install the FPC source separately. I don't follow up why you needed to install it separetely.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4458
  • I like bugs.
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #4 on: July 28, 2010, 03:59:26 pm »
The Windows installer is already one-click. You don't need to install the FPC source separately. I don't follow up why you needed to install it separetely.

Hmmm... lets see. I actually wanted to install FPC which can build the latest Lazarus, and configure FPC sources for Lazarus. I didn't even try installing the "official" version. If it's already a one click install then good.

But still it can be improved a lot, on many platforms. My fried's desperate attempt to install Lazarus on Mac is a good example. We both wasted many hours and we both become frustrated.
Please remember that the same person was able to install TeamViewer in ~30 seconds and it started to work right away. That's why I took TeamViewer as an example of a good installer.

Is Mac really the only exception for otherwise easy to install Lazarus? I don't believe.

Juha
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4458
  • I like bugs.
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #5 on: July 28, 2010, 04:09:54 pm »
One more thing:
If Lazarus is so easy to install, then why this page:
  http://wiki.lazarus.freepascal.org/Installing_Lazarus
is so long, even after Marcos Douglas has cleaned it?

The same applies to page:
  http://wiki.lazarus.freepascal.org/Getting_Lazarus
which I tried to clean.

The instructions will be still improved and unified.
And yes, they explain the development versions, too.

Anyway, many projects don't need such long instructions because they have an installation program taking care of the details.

Juha
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Adem

  • Newbie
  • Posts: 6
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #6 on: July 28, 2010, 07:30:38 pm »
There are quite a few issues with the current installer under Windows.

First, it installs right under the root folder ('C:\' etc.). This alone makes it an alien to recent Windows OSes.

It should be made possible to install it under 'C:\Program Files' and/or 'C:\Program Files (x86)'.

Second, users must be able to install both x86 and x64 versions of Lazarus in the same machine. Right now, in a machine that has x86 Lazarus/FPC installed, the only way to install x64 is to uninstall one and then install the x86 version and delete all its directories manually and then install the x64 version.

Third, when you uninstall Lazarus, it leaves far too much residue behind for manual removal. It should clear any files/folders and registry entries it created. It doesn't.

There are a few more issues --albeit of less importance.

First, anyone wanting to have a working Lazarus installation has to download the full binary package.  While its nice (essential) to have this option, there should also be an option to download different versions of both Lazarus and FPC and compile them locally. This option would also lower the load on the file servers

And, users should be given the option to install different (bit and dot) versions of of Lazarus and/or FPC.

Second, after installation, it should not force the user to have Administrator rights to use Lazarus/FPC.

IOW, it should save all the relevant configuration files (that are user-changeable) under these locations (also respecting versions, see further down).

C:\Users\$USERNAME\AppData\Local\Lazarus
and
C:\Users\$USERNAME\AppData\Local\FPC

Third, even when Lazarus installer contains FPC, each should be installed as 2 separate applications.

Fourth, the installer should respect the versions (of both Lazarus and FPC) and not automatically overwrite the previous one. It should ask the user whether to overwrite a previous one, if not, it should install a separate version independent of the previous one(s).

IOW, I should be able to --if I so chose-- have the following installations all coexisting at the same time:

C:\Users\$USERNAME\AppData\Local\Lazarus\Win64\0.9.29
C:\Users\$USERNAME\AppData\Local\Lazarus\Win64\0.9.28
C:\Users\$USERNAME\AppData\Local\Lazarus\Win64\0.9.27

C:\Users\$USERNAME\AppData\Local\Lazarus\Win32\0.9.29
C:\Users\$USERNAME\AppData\Local\Lazarus\Win32\0.9.28
C:\Users\$USERNAME\AppData\Local\Lazarus\Win32\0.9.27

C:\Users\$USERNAME\AppData\Local\FPC\Win64\2.4.2
C:\Users\$USERNAME\AppData\Local\FPC\Win64\2.4.3
C:\Users\$USERNAME\AppData\Local\FPC\Win64\2.5.0

C:\Users\$USERNAME\AppData\Local\FPC\Win32\2.4.2
C:\Users\$USERNAME\AppData\Local\FPC\Win32\2.4.3
C:\Users\$USERNAME\AppData\Local\FPC\Win32\2.5.0

Finally, once these are in place, it would be great if there was a way of downloading sources from SVN and installing a newer version of FPC +/ Lazarus locally.

BTW, I had written some of these here http://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg17986.html but I felt the need to expand and explain them a little further.

There's quite a bit of work to do here, so if anyone takes it up, I'll gladly mentor this project's Windows part EUR 100.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9754
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #7 on: July 28, 2010, 08:16:10 pm »
First, it installs right under the root folder ('C:\' etc.). This alone makes it an alien to recent Windows OSes.
It should be made possible to install it under 'C:\Program Files' and/or 'C:\Program Files (x86)'.
This is not solely an installer issue.

Lazarus depends on fpc, and fpc depends on other tools (like winres). And some of them (afaik winres) do not work, if there a spaces in the folder name.

That affects of coures the project dir too.
And for someone who never recompiles lazarus (e.g. never changes installed packages) it would be no problem to have spaces in lazarus folder name. But if you recompile lazarus, or install packages....

Second, users must be able to install both x86 and x64 versions of Lazarus in the same machine. Right now, in a machine that has x86 Lazarus/FPC installed, the only way to install x64 is to uninstall one and then install the x86 version and delete all its directories manually and then install the x64 version.
Haven't tried, but ok
(see below: multiply laz installation on one box [1])

Third, when you uninstall Lazarus, it leaves far too much residue behind for manual removal. It should clear any files/folders and registry entries it created. It doesn't.
Lazarus does not put anything in the registry.

There are:
- the installation dir
- the config dir (in user home folder)
- any projects

There last one obviously is not part of the de-install

As for user options: Most applications I know, either leave them in place, are ask the user.

If they were always deleted, then most software, if updated would loose all settings.

First, anyone wanting to have a working Lazarus installation has to download the full binary package.  While its nice (essential) to have this option, there should also be an option to download different versions of both Lazarus and FPC and compile them locally. This option would also lower the load on the file servers
Installing one out of a chosen list:
That would not be a question of improving the installer, that would be a question of providing the different packages.
The current installer could do that.

Installing several (different or equal) versions of lazarus: [1]
This is a question of the above "installation directory" + creating the shortcut on the desktop with a different config dir.

The problem on windows is, that (and that is not an issue of the installer, that holds true, even if you put everything together by hand):
If you use more than one version of lazarus, then each one *must* have it's own config dir (unless you know very exactly why you do not want this) => because at latest when you change the installed packages for one installation, it screws up the other installs => but also if they use diff version of fpc....
But the nly way on windows to start lazarus with a diff config dir, is by using a shortcut (so you can give command-line param) [ok, or by batch or by hand from cmd line]
Therefore if a user has multiply installs, goes directly to the install dir, and clicks the exe there (or start lazarus.new.exe or lazarus.old.exe) => thinks are likely to go wrong.

Having multiply Lazarus installations is currently an expert option, and this is not an issue of the installer (it will be an installer issue, if and only if all the above is solved)

And, users should be given the option to install different (bit and dot) versions of of Lazarus and/or FPC.
"bit" and "dot" ?

Anyway, see remarks about: multiply installations.
other than the multiple-installation issues, this is a repeat of the question for an choose-able install dir, and the availability of more different install packages (never mind which installer they use)
Second, after installation, it should not force the user to have Administrator rights to use Lazarus/FPC.
Does it? On windows?
(Honest question, I don't know, despite all warnings I always work as admin. to much hassle with other apps, and with windows itself.

On linux, I use a user account (no problems with anything there), but I only use Lazarus from SVN => so I don't know about the install process there => but it should be down to the package manager?
IOW, it should save all the relevant configuration files (that are user-changeable) under these locations (also respecting versions, see further down).

C:\Users\$USERNAME\AppData\Local\Lazarus
and
C:\Users\$USERNAME\AppData\Local\FPC
The first one is used (at least with current lazarus), not sure what you want?
Fpc has only fpc.cfg as config, but on windows, this should never be needed to be changed (not for the average user anyway)
Third, even when Lazarus installer contains FPC, each should be installed as 2 separate applications.
Debatable, it is easier for hte user to worry about only one app (eg. see lazarus and fpc as a whole.

If I install a video player, it doesn't ask me about every possible codec, if it should install it, and where to.
Fourth, the installer should respect the versions (of both Lazarus and FPC) and not automatically overwrite the previous one. It should ask the user whether to overwrite a previous one, if not, it should install a separate version independent of the previous one(s).
Ok about having to ask.
The rest is a repetition of point you made already above
Finally, once these are in place, it would be great if there was a way of downloading sources from SVN and installing a newer version of FPC +/ Lazarus locally.
Such a thing can be provided as a special application, or updater => but IMHO is definetely not par of any regular installer

Also check the german lazarus forum => IIRC I saw someone there offering such an app

--------------------------
Overall:
- choose install path => yes
  (will break, because of user will use path with spaces)
[EDIT: should read, but then you also need to fix...]
- create the automation process, of having different "sized" installers (Personally I am not sure that is really needed)
- ask about config on de-install
- ask about de-installing the old version
- (actually an expert option): ask about using a special config dir (for the desktop shortcut (will break if user does not use the shortcut)
[EDIT: should read, but then you also need to fix...]

I don't know about the current installer used, and how much of an uninstaller it includes: I would figure 1 (as far as the installer goes, ignoring that it breaks) and 4 (and maybe 3) to be easy?
« Last Edit: July 28, 2010, 08:38:38 pm by Martin_fr »

Adem

  • Newbie
  • Posts: 6
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #8 on: July 28, 2010, 09:11:18 pm »
This is not solely an installer issue.

Actually, it is.

Let me (try to) explain:

I am not talking about 'make'ing FPC --it's an entirely different issue --'make' cannot deal with paths with spaces in them. That is known.

But, once FPC is 'make'd, there is no reason to keep to 'no paths with spaces' rule.

The installer, can --therefore-- relocate the necessary binaries from FPC to, say, 'C:\Program Files\FPC' and re-adjust its config files etc.

Quote
Lazarus depends on fpc, and fpc depends on other tools (like winres). And some of them (afaik winres) do not work, if there a spaces in the folder name.

Well.. it will to be made to work then, won't it?

Quote
And for someone who never recompiles lazarus (e.g. never changes installed packages) it would be no problem to have spaces in lazarus folder name. But if you recompile lazarus, or install packages....

It just does not feel right for an opensource project to have to be downloaded in binary form every time you need to upgrade --or experiment..

Quote
Haven't tried, but ok
(see below: multiply laz installation on one box [1])

I did. And, it's very frustrating.

Quote
Lazarus does not put anything in the registry.

Well, IMO, it should.

If it will have a proper uninstaller under Windows, I think it should.

Quote
There are:
- the installation dir
- the config dir (in user home folder)
- any projects

There last one obviously is not part of the de-install

No, of course not. But neither is any other --at the moment.

Quote
As for user options: Most applications I know, either leave them in place, are ask the user.

Yes. It needs to be optional.

Quote
If they were always deleted, then most software, if updated would loose all settings.

And, there are times you might want just that.

Quote
Installing one out of a chosen list:
That would not be a question of improving the installer, that would be a question of providing the different packages.

By 'packages' do you mean a zip file with sources-only?

If so, I haven't come across one.

Quote
The current installer could do that.

Frankly, I find the current installer far too fat.

I'd prefer to download a small webinstaller that pulls the parts (versions of Lazarus and/or FPC) from the web in a source zip file and installs them locally.

Quote
Installing several (different or equal) versions of lazarus: [1]
This is a question of the above "installation directory" + creating the shortcut on the desktop with a different config dir.

See my reply above.

By 'install'ing, I don't mean 'make'ing an FPC for a platform for the first time.

Quote
The problem on windows is, that (and that is not an issue of the installer, that holds true, even if you put everything together by hand):
If you use more than one version of lazarus, then each one *must* have it's own config dir (unless you know very exactly why you do not want this) => because at latest when you change the installed packages for one installation, it screws up the other installs => but also if they use diff version of fpc....

And, a proper installer can take care of all of these.

Quote
But the only way on windows to start lazarus with a diff config dir, is by using a shortcut (so you can give command-line param) [ok, or by batch or by hand from cmd line]

Nope. The installer could put each different version of Lazarus under a different sub-directory, such as:

C:\Program Files\Lazarus\x.x.xx\

Then, you would not need any manual magic --other than the installer putting the usual shortcuts in the 'Start Menu'.

Quote
Therefore if a user has multiply installs, goes directly to the install dir, and clicks the exe there (or start lazarus.new.exe or lazarus.old.exe) => thinks are likely to go wrong.

You're assuming the 'install dir' to be pre-determined. But, it should not be; it should be user selectable/definable. I mean, I should be able to place it wherever I like, such as the above, or

C:\Program Files\Development\Lazarus\x.x.xx\

Every other software under Windows gives me this choice; why not Lazarus/FPC?

Quote
Having multiply Lazarus installations is currently an expert option, and this is not an issue of the installer (it will be an installer issue, if and only if all the above is solved)

I know it is an 'expert option' --i.e. you become an 'expert' if you spend hours getting it right; and then scared to touch it again :)

And, the last thing I want to be an 'expert' on is one of these useless skills. It simply has to be done by the installer for all --including the 'expert's..

Quote
"bit" and "dot" ?

32-bit..64-bit
0.9.27..0.9.29

Quote
Anyway, see remarks about: multiply installations.
other than the multiple-installation issues, this is a repeat of the question for an choose-able install dir, and the availability of more different install packages (never mind which installer they use)

Actually, no. I listed them out verbatim to show how a decent citizen application should present itself under Windows.

Quote
Does it? On windows?
(Honest question, I don't know, despite all warnings I always work as admin. to much hassle with other apps, and with windows itself.

Of course, it is.

FPC/Lazarus should think beyond a single-user working on a personally owned boxes. In the corp environment, there are policy rules; and one of them is not to litter root folder.

Quote
On linux, I use a user account (no problems with anything there), but I only use Lazarus from SVN => so I don't know about the install process there => but it should be down to the package manager?

Under Linux, FPC/Lazarus play by the rules a lot more than they do under Windows.

Quote
The first one is used (at least with current lazarus), not sure what you want?
Fpc has only fpc.cfg as config, but on windows, this should never be needed to be changed (not for the average user anyway)

Under Windows, Lazarus considers FPC as an integral part of itself --which, in reality it isn't.

I am an average user (or, I'd like to be) and I would like to be able to install different versions of FPC in order to try to see how a newer version behaves.

ATM, I cannot do that.

It's either I install a completely new (and fat) version of Lazarus or get stuck with what there is already installed.

Quote
Debatable, it is easier for the user to worry about only one app (eg. see lazarus and fpc as a whole.

But, why decide on behalf of the user?

Quote
Ok about having to ask.
The rest is a repetition of point you made already above

It comes across as repetition, doesn't it.

But, it isn't.

In order for Lazarus or FPC to coexist in different 'bit and dot' versions, it has to use that sort of folder structure.

Using one single cfg file just does not cut it.

Quote
Such a thing can be provided as a special application, or updater => but IMHO is definetely not par of any regular installer

Of course. I wouldn't call it a requirement, but when 'installing from source' is done, that sort of thing would be the natural next step.

Quote
Also check the german lazarus forum => IIRC I saw someone there offering such an app

Sorry, I don't read German.

LazaruX

  • Hero Member
  • *****
  • Posts: 597
  • Lazarus original cheetah.The cheetah doesn't cheat
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #9 on: July 28, 2010, 09:26:34 pm »
THE MAIN PROBLEM IS:
(actually not a problem)

Most of those who want to experiment Lazarus on Linux are just old Delphi users who want to use Lazarus to compile on Linux.
People trust me, the dependency hell is in each Linux program you will ever install.
Creating one installer on each Linux distribution would be impossible, as they are just different operating systems.
Even the binaries of one Linux distribution will not work on all the distribution, because they are sometimes different.
I agree, it has to be more easy, but don't blaime the Lazarus developers, but blame the way Linux is structured.

If you had problem installing any software on Windows (including Lazarus) then the problem may be between the keyboard and the chair, trust me...

Next Next Next, I agre, Next Next, Finish, its not that difficult ;-)

Bye

Adem

  • Newbie
  • Posts: 6
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #10 on: July 28, 2010, 09:34:13 pm »
Quote
I agree, it has to be more easy, but don't blaime the Lazarus developers, but blame the way Linux is structured.

If you had problem installing any software on Windows (including Lazarus) then the problem may be between the keyboard and the chair, trust me...[/quote

I am not sure if this is directed at (or includes) me, but let me say this (pre-emptively, if need be).

I am not blaming Lazarus or FPC developers. Nor am I simply asking (or begging).

I'd like more people using Lazarus or FPC on Windows so that their applications can get ported to other platforms; and, I am more than prepared to chip in for it --through donations or bounties.

The reason I consider the installer important is because it is the first experience everyone gets.

It has to be easy.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9754
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #11 on: July 28, 2010, 10:37:05 pm »
 
This is not solely an installer issue.
Actually, it is.
...
I am not talking about 'make'ing FPC --it's an entirely different issue --'make' cannot deal with paths with spaces in them. That is known.

But, once FPC is 'make'd, there is no reason to keep to 'no paths with spaces' rule.

The installer, can --therefore-- relocate the necessary binaries from FPC to, say, 'C:\Program Files\FPC' and re-adjust its config files etc.
fpc yes, if you want it as separate installation (it comes pre-compiled anyway).

Lazarus: no => because installation/deinstallation of packages require to recompile the IDE.
(packages: as in lnet, synapse, or the ones that come with Lazarus)


Quote
Lazarus depends on fpc, and fpc depends on other tools (like winres). And some of them (afaik winres) do not work, if there a spaces in the folder name.
Well.. it will to be made to work then, won't it?
you need to talk to 3rd party then => the team maintaining winres needs to accept your patch (or the fpc team needs to maintain a separate version for a life time, and merge all fixes and extensions all the time....)

Quote
And for someone who never recompiles lazarus (e.g. never changes installed packages) it would be no problem to have spaces in lazarus folder name. But if you recompile lazarus, or install packages....

It just does not feel right for an opensource project to have to be downloaded in binary form every time you need to upgrade --or experiment..
Really? I use a lot of opensource: VLC,  VirtualBox, WinMerge, ... they all come as binary package => and I am truly glad they do.
If I want to contribute, the have a repository, and I can download and compile => but without installer

That seems to me a very common opensource thing.

On Linux, some of them come as source, and compile during installation (e.g mysql on freebsd).
But if I want to contribute, I still need to setup a special work environment, and no installer for that.


Quote
Haven't tried, but ok
(see below: multiply laz installation on one box [1])

I did. And, it's very frustrating.

Ok, that comes down to:
-installer should ask for install path => I did mention
- You need to find a solution for how to get each installation to use a different config file (on window you can put it into the desktop shortcut, but run into trouble as soon as the user starts the IDE without the shortcut. (not an installer problem, but needs to be solved for this)

Mixing various installations of Lazarus with various installations of free pascal, is (on top of the above) only a question of configuring lazarus correct => an expert user choice, definetly not an installer choice. (because you will get issues with ppu files not being suited for the different fpc version...)

That's why to me, there is a limited need for separate fpc and Lazarus installer => that is for expert users.

The installer should deliver what the average user needs => a working setup. And that does work very well with a combined install.


Quote
Lazarus does not put anything in the registry.

Well, IMO, it should.

It's cross platform => linux aint having no registry


If it will have a proper uninstaller under Windows, I think it should.
I never trie to uninstall => but under windows there is an uninstall entry in the control panel/programs stuff. So I guess it will at least delete the program dir?

Quote
As for user options: Most applications I know, either leave them in place, are ask the user.

Yes. It needs to be optional.

Quote
If they were always deleted, then most software, if updated would loose all settings.

And, there are times you might want just that.

hence I listed it in the summary

Quote
Installing one out of a chosen list:
That would not be a question of improving the installer, that would be a question of providing the different packages.

By 'packages' do you mean a zip file with sources-only?
In this context, different installer packages (e.g with/without sources)

However I don't think sources should be optional => I don't really see the need for more installers ... but it's an opinion only
(optional stuff is on lazarus-ccr)


If so, I haven't come across one.

Quote
The current installer could do that.

Frankly, I find the current installer far too fat.

I'd prefer to download a small webinstaller that pulls the parts (versions of Lazarus and/or FPC) from the web in a source zip file and installs them locally.

Same amount of dwnload in the end (unless there were optional parts...

Actually more download, if you install on more than one box

Quote
The problem on windows is, that (and that is not an issue of the installer, that holds true, even if you put everything together by hand):
If you use more than one version of lazarus, then each one *must* have it's own config dir (unless you know very exactly why you do not want this) => because at latest when you change the installed packages for one installation, it screws up the other installs => but also if they use diff version of fpc....

And, a proper installer can take care of all of these.
How? Yes for the shortcut on the desktop / in the start men. But how, if I the user goes to the install dir (e.d to start lazarus.old.exe  after adding a package failed, and the new lazarus doesn't start anymore?
How can the installer change, that you must give a command line param to lazarus, and that  on windows you can not do that, if you start the exe directly (no shortcut, no batch)

How can the installer fix this; how can it change the abilities of windows or the lazarus exe?

Quote
But the only way on windows to start lazarus with a diff config dir, is by using a shortcut (so you can give command-line param) [ok, or by batch or by hand from cmd line]

Nope. The installer could put each different version of Lazarus under a different sub-directory, such as:

C:\Program Files\Lazarus\x.x.xx\
Quote
It is about the config dir.
the lazarus.exe decides where it expects it => if  the installer put's it elsewhere, Lazarus will not find it, and create a new one.
The installe can not fix that => you must extend lazarus itself for this

Quote
Therefore if a user has multiply installs, goes directly to the install dir, and clicks the exe there (or start lazarus.new.exe or lazarus.old.exe) => thinks are likely to go wrong.

You're assuming the 'install dir' to be pre-determined. But, it should not be; it should be user selectable/definable. I mean, I should be able to place it wherever I like, such as the above, or
No I did not assume this. My above concerns where in case even if the install dir is change able.

The config does not reside in the install dir => and lazarus must be able to find it.

Quote
Having multiply Lazarus installations is currently an expert option, and this is not an issue of the installer (it will be an installer issue, if and only if all the above is solved)

I know it is an 'expert option' --i.e. you become an 'expert' if you spend hours getting it right; and then scared to touch it again :)
And in a way it is good you become an expert, because if the installer just gives it to you, and you don't know all the rules that needs to be known for that scenario, then you break what the installer gave you.

So yes => you could create an installer that does set this up => but it leaves you with equal problems, you will just notice a little bit later.

You need to make lazarus itself save to deal with such setups => e.g regognizing if one lazarus is invoked with the config of another... it's possible, but in lazarus, not in the installer.


**********************
And the only valid example for the normal user needing more than one installation was 32 vs 64 bit

Better to make one installation do be able to cross compile, and serve both targets.

The normal end user should not need more than one installation => If he does need it, then nly because something is missing somewhere else.
**********************


And, the last thing I want to be an 'expert' on is one of these useless skills. It simply has to be done by the installer for all --including the 'expert's..

Quote
"bit" and "dot" ?

32-bit..64-bit
see above => it means you need a cross compile within a single setup
0.9.27..0.9.29
Why do you need this, if all you want to do is to compile your own app?

Quote
Does it? On windows?
(Honest question, I don't know, despite all warnings I always work as admin. to much hassle with other apps, and with windows itself.

Of course, it is.

FPC/Lazarus should think beyond a single-user working on a personally owned boxes. In the corp environment, there are policy rules; and one of them is not to litter root folder.
back to choosable install path
back to space in path issue.
solve them, and this is solved too => so it is a repeat (or just a reason, not a new feature)


Quote
The first one is used (at least with current lazarus), not sure what you want?
Fpc has only fpc.cfg as config, but on windows, this should never be needed to be changed (not for the average user anyway)

Under Windows, Lazarus considers FPC as an integral part of itself --which, in reality it isn't.

I am an average user (or, I'd like to be) and I would like to be able to install different versions of FPC in order to try to see how a newer version behaves.
Problem:
all the ppu for the LCL (which all your apps work) => they only work with the EXACT fpc that they came with.

Install another fpc => you must recompile them all
switch back to the original fpc => recompile again

hence=> this is an expert option
--------------

I cut the rest => it's alll nice reasons why you want to have the above....

But it comes down, solve the problems why the above is not yet there:
- spaces in path (must be fixed and committed to 3rd party tool)
- not mixing config dirs (how to give a cmd line param do an exe, if it isn't called via shortcut)
- lazarus detect and warn, if it is started in such a way, that it uses the config of another install
- ppu files only work with one fpc version => if you chnage the fpc version used by an installation of lazarus, then they do no longer work

I hope I didn't leave anything out.

Once that is fixed, then an installer with all the options becomes use-able
« Last Edit: July 29, 2010, 12:20:19 am by Martin_fr »

eny

  • Hero Member
  • *****
  • Posts: 1634
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #12 on: July 28, 2010, 11:14:45 pm »
If you had problem installing any software on Windows (including Lazarus) then the problem may be between the keyboard and the chair, trust me...

Next Next Next, I agre, Next Next, Finish, its not that difficult ;-)

Nowadays it's safer to go with custom installs, so you can untick the boxes that install bloatware, IE toolbars and all other ^^&^&* software that supposedly makes your life easier...   %)
All posts based on: Win10 (Win64); Lazarus 2.0.10 'stable' (x64) unless specified otherwise...

Adem

  • Newbie
  • Posts: 6
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #13 on: July 28, 2010, 11:23:08 pm »
You've screwed quoting in major way; I'll try to salvage it where I can :)

Tyr to use 'preview'; it helps.

Quote
fpc yes, if you want it as separate installation (it comes pre-compiled anyway).

This is great news. At least, it does not have to be 'make'd --unless the user wants to.

BTW, I believe I read it somewhere (can't find it right not) that you could compile a new version of FPC with a FPC binary belonging to an immediately previous one. I never checked this, but if it is true; ordinary mortals will never have to 'make' (hence be bothered with spaces in paths issue) FPC.

Quote
Lazarus: no => because installation/deinstallation of packages require to recompile the IDE.
(packages: as in lnet, synapse, or the ones that come with Lazarus)

Why is this a problem?

Once you have an FPC installed (and properly configured for the correct path info, which is the job of the installer), you can/should_be_able_to compile Lazarus without difficulty.

Quote
you need to talk to 3rd party then => the team maintaining winres needs to accept your patch (or the fpc team needs to maintain a separate version for a life time, and merge all fixes and extensions all the time....)

Are you talking about this 'winres' http://msdn.microsoft.com/en-us/library/8bxdx003%28VS.80%29.aspx

Quote
Really? I use a lot of opensource: VLC,  VirtualBox, WinMerge, ... they all come as binary package => and I am truly glad they do.

But, none of them are development environments; are they?

Quote
If I want to contribute, the have a repository, and I can download and compile => but without installer

For Windows there is no such thing as repository; or is there?

Quote
That seems to me a very common opensource thing.

We are talking about entirely different things.

For an opensource development environment, for anyone to be able to contribute (patches etc), s/he has to be able to compile her/his patches to see they work.

With FPC, currently, you have to be way too much of an expert to be able to do that.

Quote
On Linux, some of them come as source, and compile during installation (e.g mysql on freebsd).
But if I want to contribute, I still need to setup a special work environment, and no installer for that.

We're not talking about Linux.

In Linux, you can even recompile the kernel; in Windows you can't even 'make' FPC if there's a space in its path...

Quote
-installer should ask for install path => I did mention
- You need to find a solution for how to get each installation to use a different config file (on window you can put it into the desktop shortcut, but run into trouble as soon as the user starts the IDE without the shortcut. (not an installer problem, but needs to be solved for this)

No.

That's not my job.

You're not reading my posts.

I am putting up the money if anyone wants to do that.

Quote
Mixing various installations of Lazarus with various installations of free pascal, is (on top of the above) only a question of configuring lazarus correct => an expert user choice, definetly not an installer choice. (because you will get issues with ppu files not being suited for the different fpc version...)

Look. All you're doing is telling me why it should not be done; instead of --even verbally-- contributing towards a solution.

That ppu files problem is a 'no problem' if you simply choose to store them under

C:\Users\$USERNAME\AppData\Local\FPC\$Platform\$FPCVersion

So, please, try to offer solution instead of acting as a know-it-all for why it should not be done.

Quote
That's why to me, there is a limited need for separate fpc and Lazarus installer => that is for expert users.

Here, the keyword is 'to me', as it seems you've not explored solutions at all.

Quote
The installer should deliver what the average user needs => a working setup. And that does work very well with a combined install.

If it does work so well, why can't I --without going through loops-- use X64 and x86 on the same box?
If it does work so well, why can't I --without going through loops-- use combine different versions of FPC/Lazarus and pick the best combinations?

Quote
It's cross platform => linux aint having no registry

So is so many other applications, they manage to be native to the platform. What's so special about FPC/Lazarus to not play by the rules of the paltform?

Quote
I never trie to uninstall => but under windows there is an uninstall entry in the control panel/programs stuff. So I guess it will at least delete the program dir?

Well.. You've never tried --it seems-- a lot of things.
You're simply content with what there is.
Do you call yourself a developer?
When you stand against development so stauncly..

Quote
Same amount of dwnload in the end (unless there were optional parts...

If you don't have download binaries, how can they be 'same amount of downloads'?

Quote
Actually more download, if you install on more than one box

Why?

Is it so impossible to direct the installer to an already downloaded zip file?

Quote
How? Yes for the shortcut on the desktop / in the start men. But how, if I the user goes to the install dir (e.d to start lazarus.old.exe  after adding a package failed, and the new lazarus doesn't start anymore?

Each different version of lazarus.exe (along with all the packages) resides in an entirely separate folder.

Quote
How can the installer change, that you must give a command line param to lazarus, and that  on windows you can not do that, if you start the exe directly (no shortcut, no batch)

?
Is this really a problem?

Quote
How can the installer fix this; how can it change the abilities of windows or the lazarus exe?

?
Is this really a problem?

Quote
It is about the config dir.
the lazarus.exe decides where it expects it => if  the installer put's it elsewhere, Lazarus will not find it, and create a new one.
The installe can not fix that => you must extend lazarus itself for this

Come now.. Are discussing such simple stuff.
This problem has been solved for decades.

You either teach Lazarus to learn to use the registry; or write a simple module (in installer) that generates that oh-god-so-important cfg file.

It's not rocket science, is it?

Quote
No I did not assume this. My above concerns where in case even if the install dir is change able.

But, I am sorry to say, you're making mountains out of mole hills..

All the problems you've mentioned are solvable.

All it needs is someone to spend time on it.

Quote
The config does not reside in the install dir => and lazarus must be able to find it.

Another mountain out of mole hill.

Are you always this negative, I wonder.

Quote
And in a way it is good you become an expert, because if the installer just gives it to you, and you don't know all the rules that needs to be known for that scenario, then you break what the installer gave you.

What good is becoming that sort of an expert?

Where else will you ever need to use that precious expertise?

Nowhere.

Quote
So yes => you could create an installer that does set this up => but it leaves you with equal problems, you will just notice a little bit later.

Name one.

A meaningful one.

Quote
You need to make lazarus itself save to deal with such setups => e.g regognizing if one lazarus is invoked with the config of another... it's possible, but in lazarus, not in the installer.

No. As long as each version of Lazarus uses its own data under

C:\Users\$USERNAME\AppData\Local\Lazarus\$Platform\$LazarusVersion

there will be no conflicts.


Quote
And the only valid example for the normal user needing more than one installation was 32 vs 64 bit

Better to make one installation do be able to cross compile, and serve both targets.

The normal end user should not need more than one installation => If he does need it, then nly because something is missing somewhere else.

Had you read the above examples, you'd have seen that it would solve cross-platform compilation as well.

Quote
Why do you need this, if all you want to do is to compile your own app?

Because I want to be able to compile my apps in both x64 and x86.

Quote
back to choosable install path
back to space in path issue.
solve them, and this is solved too => so it is a repeat (or just a reason, not a new feature)

Next time I need directions/orders from you, I will make sure I ask first.
But, right now, I am not taking any orders/commands.

Quote
Problem:
all the ppu for the LCL (which all your apps work) => they only work with the EXACT fpc that they came with.

Please don't repeat. There is a simple solution to this. Read above.

Quote
Install another fpc => you must recompile them all
switch back to the original fpc => recompile again

hence=> this is an expert option

Nope. It could easily be done by the installer.
There is nothing expert about it.
It's just that current compiler does not do it.

For Fox sake, even the JCL/JVCL installers compile and set up all the packages and paths for how ever many different Delphi versions you have.

Quote
I cut the rest => it's alll nice reasons why you want to have the above....

And, I cut the rest of what you wrote, because instead of adding to solution, you're simply adding negative noise.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9754
  • Debugger - SynEdit - and more
    • wiki
Re: Lazarus Season of Code - Pre-eliminary Announcement
« Reply #14 on: July 29, 2010, 12:55:46 am »
Quote
Look. All you're doing is telling me why it should not be done; instead of --even verbally-- contributing towards a solution.

Not true, I am saying what needs to be done first.
That is "it should not be done until...."

To make it clear: I don't want to deny all the cool possibilities to everyone => but there is no point, unless they work reliable and are simple to use.

There is no point in simple installation, if usage is not simple (or reliable)

---------
Ending this here, taken the rest to private mail

 

TinyPortal © 2005-2018