Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2011-06

Conflicting packages in fixes_0_9_30

7 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Hans-Peter Diettrich

At sudden I get an "Ambiguous units found" error in fixes_0_9_30 :-(

[BTW the dialog should allow to copy/paste the message]

This seems to be due to conflicting packages "LCL 1.0" and "LCLBase 0.9.30.1", "LCL1 0.9.30.1". "Installed Packages" shows LCL 1.0 installed and not removable, the other packages are offered for installation.

What's wrong?

It looks to me as if LCL 1.0 should *not* be used, but even a "make clean all" didn't change anything.

Win7, FPC 2.4.2, in case this matters...

DoDi

Reply by email

Mattias Gaertner
to Hans-Peter Diettrich

Hans-Peter Diettrich hat am 18. Juni 2011 um 09:08 geschrieben:

Show quoted text 7 lines
At sudden I get an "Ambiguous units found" error in fixes_0_9_30 :-( [BTW the dialog should allow to copy/paste the message] This seems to be due to conflicting packages "LCL 1.0" and "LCLBase 0.9.30.1", "LCL1 0.9.30.1". "Installed Packages" shows LCL 1.0 installed and not removable, the other packages are offered for installation.?

In 0.9.30 there were some test packages 'LCLBase' and 'LCL1' for testing the build modes and some other features. You should *not* use them (LCLBase, LCL1) in your projects and you must not install them.
In 0.9.31 the package LCL became a normal package and was split into LCL and LCLBase.
?
?

Show quoted text 5 lines
What's wrong? It looks to me as if LCL 1.0 should *not* be used, but even a "make clean all" didn't change anything.?

The make does not change your configuration.
You should use the "LCL", but not the "LCL1". The version of a package is in the lpk, not in the name.
?

Win7, FPC 2.4.2, in case this matters...

?
?
Mattias
?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20110618/a6590032/attachment.html>

Reply by email

Hans-Peter Diettrich
to Mattias Gaertner
Show quoted text 12 lines
> This seems to be due to conflicting packages "LCL 1.0" and "LCLBase > 0.9.30.1", "LCL1 0.9.30.1". "Installed Packages" shows LCL 1.0 installed > and not removable, the other packages are offered for installation. In 0.9.30 there were some test packages 'LCLBase' and 'LCL1' for testing the build modes and some other features. You should *not* use them (LCLBase, LCL1) in your projects and you must not install them. In 0.9.31 the package LCL became a normal package and was split into LCL and LCLBase.

And this is the origin of my problem: I had created a test project with Lazarus trunk, and then tested it also with the 0.9.30 branch, where LCLBase is not required.

It's a bit confusing when 0.9.30 comes with a LCLBase package for "some features", while trunk adds an obviously very different package of the same name to all projects. Without that name clash the error message simply had stated "package not found", and it had been much clearer that the bug sits in the project, not in the installation.

So much about "write once, compile everywhere" :-(

DoDi

Reply by email

Mattias Gaertner
to Hans-Peter Diettrich
Show quoted text 17 lines
[...] > In 0.9.30 there were some test packages 'LCLBase' and 'LCL1' for testing > the build modes and some other features. You should *not* use them > (LCLBase, LCL1) in your projects and you must not install them. > > In 0.9.31 the package LCL became a normal package and was split into LCL > and LCLBase. And this is the origin of my problem: I had created a test project with Lazarus trunk, and then tested it also with the 0.9.30 branch, where LCLBase is not required. It's a bit confusing when 0.9.30 comes with a LCLBase package for "some features", while trunk adds an obviously very different package of the same name to all projects. Without that name clash the error message simply had stated "package not found", and it had been much clearer that the bug sits in the project, not in the installation.

It's the same LCLBase. Just improved. Of course if you go from 0.9.31 down to 0.9.30, then it's the opposite - the LCLBase became worst.

So much about "write once, compile everywhere" :-(

The problem is, that in 0.9.30 the LCL was using some Makefile and IDE magic.
Anyway, adding LCLBase as dependency is not useful. The IDE now uses the LCL instead.
Please test.

Mattias

Reply by email

Hans-Peter Diettrich
to Mattias Gaertner
The problem is, that in 0.9.30 the LCL was using some Makefile and IDE magic. Anyway, adding LCLBase as dependency is not useful. The IDE now uses the LCL instead.

See below :-(

Please test.

Done:

Create a new application, and project inspector shows LCL as the only dependency. Now add e.g. an button to the form, and Lazarus trunk adds LCLBase as a project dependency - while 0.9.30 does not. Removing the LCLBase dependency doesn't help much, the package is added to the trunk project whenever another control is added to a form.

A closer look at these packages reveals:

Trunk LCL only contains widgetsets, while all controls reside in LCLBase. It does no harm to remove the LCLBase dependency from the project itself, because LCL already requires LCLBase.

In 0.9.30 both LCL and LCLBase contain controls, and some units are part of both packages, what causes the package conflict. The LCL only requires FCL, not LCLBase.

I'd suggest to update the trunk IDE (project manager), to never add LCLBase to the immediate GUI project dependencies, for backwards compatibility of project files. As you already stated, adding a LCLBase dependency is not useful nor is it required.

Or, IMO better, switch the package names of LCL and LCLBase, so that the LCL contains the controls (as before), and LCLBase contains the widgetsets. Or remove LCLBase entirely, and put everything into the LCL...

DoDi

Reply by email

Mattias Gaertner
to Hans-Peter Diettrich
Show quoted text 16 lines
Mattias Gaertner schrieb: > The problem is, that in 0.9.30 the LCL was using some Makefile and IDE > magic. > Anyway, adding LCLBase as dependency is not useful. The IDE now uses > the LCL instead. See below :-( > Please test. Done: Create a new application, and project inspector shows LCL as the only dependency. Now add e.g. an button to the form, and Lazarus trunk adds LCLBase as a project dependency

With my last sentence I meant, that I changed something in svn trunk, that you should update and test the current version. Have you updated?

Mattias

Reply by email

Hans-Peter Diettrich
to Mattias Gaertner
Show quoted text 7 lines
> Create a new application, and project inspector shows LCL as the only > dependency. Now add e.g. an button to the form, and Lazarus trunk adds > LCLBase as a project dependency With my last sentence I meant, that I changed something in svn trunk, that you should update and test the current version. Have you updated?

Yes, right now, and LCLBase is no more added :-)

DoDi

Reply by email