Discussion:
[Lazarus] Lazarus Release Candidate 2 of 2.0
Mattias Gaertner via Lazarus
2018-11-01 07:46:26 UTC
Permalink
The Lazarus team is glad to announce the second release candidate of
Lazarus 2.0.

This release was built with FPC 3.0.4.
The previous release Lazarus 1.8.4 was built with FPC 3.0.4 as well.

Here is the list of fixes for Lazarus 2.0.x:
http://wiki.freepascal.org/Lazarus_2.0_fixes_branch

Here is the list of changes for Lazarus and Free Pascal:
http://wiki.lazarus.freepascal.org/Lazarus_2.0.0_release_notes
http://wiki.lazarus.freepascal.org/User_Changes_3.0.4

The release is available for download on SourceForge:
http://sourceforge.net/projects/lazarus/files/

Choose your CPU, OS, distro and then the "Lazarus 2.0RC2" directory.

Checksums for the SourceForge files:
http://www.lazarus-ide.org/index.php?page=checksums#2_0_0RC2

Minimum requirements:

Windows:
2k, XP, Vista, 7, 8, 8.1 and 10, 32 or 64bit.

FreeBSD/Linux:
gtk 2.8 for gtk2, qt4.5 for qt, qt5.6 for qt5, 32 or 64bit.

Mac OS X:
10.5 to 10.12; Carbon (32bit), Cocoa (64bit, beta), qt and
qt5 (32 or 64bit).

The svn tag is
http://svn.freepascal.org/svn/lazarus/tags/lazarus_2_0_0_RC2

For people who are blocked by SF, the Lazarus releases from SourceForge
are mirrored at: ftp://ftp.freepascal.org/pub/lazarus/releases/
and later at (after some time for synchronization)
http://mirrors.iwi.me/lazarus/

== Why should everybody (including you) test the release candidate? ==

In the past weeks the Lazarus team has stabilized the 2.0 fixes branch.
The resulting 2.0RC2 is now stable enough to be used by any one for
test purposes.

However many of the fixes and new features that where committed since
the release of 1.8 required changes to the code of existing features
too. While we have tested those ourself, there may still be problems
that only occur with very specific configurations or one project in a
million.

Yes, it may be that you are the only person with a project, that will
not work in the new IDE. So if you do not test, we can not fix it.

Please do not wait for the final release, in order to test. It may be
too late. Once the release is out we will have to be more selective
about which fixes can be merged for further 2.0.x releases. So it may
be, that we can not merge the fix you require. And then you will miss
out on all the new features.

== How to test ==

Download and install the 2.0 RC2.
- On Windows you can install as a 2ndary install, that will not affect
your current install:
http://wiki.lazarus.freepascal.org/Multiple_Lazarus#Installation_of_multiple_Lazarus
- On other platforms, if you install to a new location you need to use
--primary-config-path

In either case you should make backups. (including your primary config)

Open your project in the current Lazarus (1.8.x), and use "Publish2
Project" from the project menu. This creates a clean copy of your
project.

You can then open that copy in the RC2. Please test:
- If you can edit forms in the designer
- rename components / change properties in Object inspector / Add new
events
- Add components to form / Move components on form
- Frames, if you use them
- If you can navigate the source code (e.g. jump to implementation)
- Auto completion in source code
- Compile, debug and run
- Anything else you use in your daily work


Mattias
--
C Western via Lazarus
2018-11-03 13:37:20 UTC
Permalink
Post by Mattias Gaertner via Lazarus
The Lazarus team is glad to announce the second release candidate of
Lazarus 2.0.
I am still seeing the error on loading a (specific) package with missing
dependencies, but I have been able to do some debugging to track down
the error. It is clear I should have specified the platform in my
original message, as I think the error will not manifest on windows. I
think the error is in packager/packagesystem.pas:

933    function TLazPackageGraph.OpenDependencyWithPackageLink(

934      Dependency: TPkgDependency; PkgLink: TPackageLink; ShowAbort:
boolean

935      ): TModalResult;
942    begin
943      NewPackage:=nil;
944      XMLConfig:=nil;
945      BeginUpdate(false);
946      try
947        AFilename:=PkgLink.GetEffectiveFilename;
948        if pvPkgSearch in Verbosity then
949          debugln(['Info: (lazarus) Open dependency: trying
"'+Dependency.PackageName+'" in '+dbgs(PkgLink.Origin)+' links:
"'+PkgLink.GetEffectiveFilename+'" ...']);
950 //debugln(['TLazPackageGraph.OpenDependencyWithPackageLink
AFilename=',AFilename,' ',PkgLink.Origin=ploGlobal]);
951        if not FileExistsUTF8(AFilename) then begin

***Issue is here: FileExistsUTF8() returns true for a directory on
Linux, (but false on windows) and the preceding GetEffectiveFilename
just returns a directory

Colin


--
Mattias Gaertner via Lazarus
2018-11-05 10:28:58 UTC
Permalink
On Sat, 3 Nov 2018 13:37:20 +0000
Post by C Western via Lazarus
Post by Mattias Gaertner via Lazarus
The Lazarus team is glad to announce the second release candidate of
Lazarus 2.0.
I am still seeing the error on loading a (specific) package with
missing dependencies, but I have been able to do some debugging to
track down the error. It is clear I should have specified the
platform in my original message, as I think the error will not
manifest on windows. I think the error is in
933    function TLazPackageGraph.OpenDependencyWithPackageLink(
934      Dependency: TPkgDependency; PkgLink: TPackageLink;
ShowAbort: boolean
935      ): TModalResult;
942    begin
943      NewPackage:=nil;
944      XMLConfig:=nil;
945      BeginUpdate(false);
946      try
947        AFilename:=PkgLink.GetEffectiveFilename;
948        if pvPkgSearch in Verbosity then
949          debugln(['Info: (lazarus) Open dependency: trying
"'+PkgLink.GetEffectiveFilename+'" ...']);
950 //debugln(['TLazPackageGraph.OpenDependencyWithPackageLink
AFilename=',AFilename,' ',PkgLink.Origin=ploGlobal]);
951        if not FileExistsUTF8(AFilename) then begin
***Issue is here: FileExistsUTF8() returns true for a directory on
Linux, (but false on windows) and the preceding GetEffectiveFilename
just returns a directory
Thanks for debugging!

I added a directoryexists check and fixed GetEffectiveFilename to not
expand an empty filename.

Mattias
--

Loading...