Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Für Installationen unter Windows
Antworten
MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von MmVisual »

Hallo,

Ich habe Lazaus als 32 Bit und Lazarus als 64 Bit auf c:\Lazaus installiert.
Will ich 32 Bit Lazarus benutzen dann benenne ich das Verzeichnis C:\Lazarus_32 nach C:\Lazarus um und starte es.
Will ich 64 Bit Lazarus benutzen dann benenne ich das Verzeichnis C:\Lazarus_64 nach C:\Lazarus um und starte es.

Früher, also mit V2.0.12 kam jedes mal der Dialog wie hier, mit OK den bestätigt und alles war gut.
Nun nun seit V2.2.0-RC2 erscheint zusätzlich eine FPC Fehlermeldung:
Bild1.png
Bild1.png (18.1 KiB) 2915 mal betrachtet
Ich weiß nicht ob das nun ein Bug ist der neu dazu gekommen ist oder ob dies Fehlermeldung OK ist.

Bei einen mal steht das in der Datei fppkg.cfg:
[Defaults]
ConfigVersion=5
LocalRepository={AppConfigDir}
BuildDir={LocalRepository}build/
ArchivesDir={LocalRepository}archives/
CompilerConfigDir={LocalRepository}config/
RemoteMirrors=https://www.freepascal.org/repository/mirrors.xml
RemoteRepository=auto
CompilerConfig=default
FPMakeCompilerConfig=default
Downloader=FPC
InstallRepository=user

[Repository]
Name=fpc
Description=Packages which are installed along with the Free Pascal Compiler
Path=C:\lazarus\fpc\3.2.2\
Prefix=C:\lazarus\fpc\3.2.2\

[IncludeFiles]
FileMask={LocalRepository}config/conf.d/*.conf

[Repository]
Name=user
Description=User-installed packages
Path={LocalRepository}
Prefix={LocalRepository}
Beim anderen mal das:
[Defaults]
ConfigVersion=5
LocalRepository={AppConfigDir}
BuildDir={LocalRepository}build/
ArchivesDir={LocalRepository}archives/
CompilerConfigDir={LocalRepository}config/
RemoteMirrors=https://www.freepascal.org/repository/mirrors.xml
RemoteRepository=auto
CompilerConfig=default
FPMakeCompilerConfig=default
Downloader=FPC
InstallRepository=user

[Repository]
Name=fpc
Description=Packages which are installed along with the Free Pascal Compiler
Path=C:\lazarus\fpc\3.2.2\
Prefix=C:\lazarus\fpc\3.2.2\

[IncludeFiles]
FileMask={LocalRepository}config/conf.d/*.conf

[Repository]
Name=user
Description=User-installed packages
Path={LocalRepository}
Prefix={LocalRepository}
Also beides mal exakt das gleiche wenn ich jedes mal "Resore fppkg configuration" ausführe.

VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von theo »

Neu ist das nicht.
Ich hatte so etwas mal mit einer RPM Installation.
viewtopic.php?f=3&t=12670&p=117686

Mit fpcupdeluxe ist es verschwunden.
Habe das nicht weiter verfolgt.

S.a.
https://gitlab.com/freepascal.org/lazar ... sues/35254

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von wp_xyz »

MmVisual hat geschrieben:
Fr 10. Dez 2021, 12:21
Ich habe Lazaus als 32 Bit und Lazarus als 64 Bit auf c:\Lazaus installiert.
Will ich 32 Bit Lazarus benutzen dann benenne ich das Verzeichnis C:\Lazarus_32 nach C:\Lazarus um und starte es.
Will ich 64 Bit Lazarus benutzen dann benenne ich das Verzeichnis C:\Lazarus_64 nach C:\Lazarus um und starte es.
Ohne auf dein Problem mit dem fppkg eingehen zu wollen: Warum machst du das so kompliziert? Installiere beide in getrennte Verzeichnisse als "sekundar installation" (oder platziere in jede eine Datei lazarus.cfg mit dem Eintrag

Code: Alles auswählen

--primary-config-path=c:\lazarus_32\config
wobei das hier beispielhaft angegebene "c:\lazarus_32\config der Pfad zum Konfigurationsverzeichnis der jeweiligen Installation ist und natürlich frei wählbar ist; mit "lazarus_32" deute ich an, dass jede Installation ihr eigenes Konfig-Verzeichnis haben muss, damit alles schön getrennt bleibt.

Nachteile:
- Verschwendung von Speicherplatz auf der Platte - aber ehrlichgesagt: auf ein GB mehr oder weniger kommt es heute nicht mehr an...
- Alle Packages müssen jeweils neu installiert werden.
- Und wenn jemand seine Installation gern verändert, muss er das für alle Installationen wiederholen.

Vorteile:
- Die Umschaltung von 32 auf 64 Bit ist kinderleicht.
- Getrennte Icons auf dem Desktop (Ally hat uns sogar einen Satz Icons für 32- und 64-Bit und mit verschiedenen Overlays gestaltet - siehe https://sourceforge.net/p/lazarus-ccr/s ... laz_icons/).

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von MmVisual »

Ich mache es mit einfach und habe das Problem dass ich eine "definierte" Installation benötige, die ich jederzeit reproduzieren kann. Daher verwende ich unter Windows ausschließlich das Setup Paket und es wird immer in C:\Lazarus installiert.
Um zwischen 32 und 64 Bit um zu schalten benenne ich die Verzeichnisse einfach nur um.
EInfacher geht es fast nicht mehr.
Bis V2.0.12 gab es auch keine Fehlermeldung, erst ab 2.2.0.rc, die Konfiguration der beiden Lazarus Varianten ist immer exakt gleich. Dennoch ist ab V2.2 irgend etwas intern anders, bzw. wird vielleicht anders behandelt, obwohl es eigentlich das gleiche ist. Es ist ein Hinweis darauf dass Lazarus intern zwischen 32 Bit und 64 Bit irgend was vielleicht unter Umständen noch ein Käfer drin hat.

VG Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von af0815 »

Ich habe auf verschiedenen Rechnern definierte Installation. Das wird über die GIT-Versionen von fpc und Lazarus gesteuert. Damit halte ich die Installationen von 32 Bit und 64 Bit schön getrennt und habe noch extra eine Installation für LAMW. Vor allen ist das über PC-Grenzen stabil.
So kann ich einen weiteren Satz an Installationen erstellen und auch testen. Damit ich weis, ob die Installationen für mich zum nächsten Produktivsystem für die Firma taugen. Dasselbe gilt für kritische Komponneten, die liegen auf einen eigene Git-Server und werden nur nach Tests vom öffentlichen Uplink geholt und eingepflegt. Damit bleibt die Software schön brauchbar.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von MmVisual »

Ich mag auch nicht abhängig sein vom Internet.
Also auf Git & FpcUpDeluxe will ich mit nicht verlassen. Das ganze muss offline ohne Internet funktionieren. Und das kann Lazarus, bzw. das Setup Paket perfekt. :D
Lazarus ist eines der wenigen komplexen Dinge die (zumindest unter Windows) komplett offline installierbar sind und funktionieren - zum Glück.
EleLa - Elektronik Lagerverwaltung - www.elela.de

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von wp_xyz »

MmVisual hat geschrieben:
Fr 10. Dez 2021, 14:49
Ich mache es mit einfach und habe das Problem dass ich eine "definierte" Installation benötige, die ich jederzeit reproduzieren kann. Daher verwende ich unter Windows ausschließlich das Setup Paket und es wird immer in C:\Lazarus installiert.
Um zwischen 32 und 64 Bit um zu schalten benenne ich die Verzeichnisse einfach nur um.
EInfacher geht es fast nicht mehr.
Bis V2.0.12 gab es auch keine Fehlermeldung, erst ab 2.2.0.rc, die Konfiguration der beiden Lazarus Varianten ist immer exakt gleich. Dennoch ist ab V2.2 irgend etwas intern anders, bzw. wird vielleicht anders behandelt, obwohl es eigentlich das gleiche ist. Es ist ein Hinweis darauf dass Lazarus intern zwischen 32 Bit und 64 Bit irgend was vielleicht unter Umständen noch ein Käfer drin hat.
Und was ist mit den Konfigurationsdateien? Wenn du das Installationssetup ohne "secondary" durchlaufen lassen hast, stehen diese in c:\users\(dein name)\appdata\local\lazarus und werden bei deinem Vorgehen sowohl von der 32- als auch von der 64-Bit Installation verwendet.Aus diesem Grund hat die zuletzt durchgeführte Installation die Daten der zuerst durchgeführten Installation überschrieben. In den xml-Dateien des Config-Verzeichnisses stehen viele absolute Pfade, und ich bezweifle, dass die bei einem Umbenennen des "root"-Verzeichnisses korrekt bleiben.

Beispiel:
In fpcdefines.xml finde ich bei der 64-bit Installation von Laz 2.2RC2 den Eintrag (umgeschrieben auf deine Installation in c:\lazarus):

Code: Alles auswählen

 <Item4 Filename="C:\Lazarus\fpc\3.2.2\bin\x86_64-win64\fpc.cfg" Exists="True" Date="1399217029"/>
Interessant wird es in dem Verzeichnisnamen nach "bin": "x86_64-win64". Das ist typisch für die 64-bit installation, bei 32-bit würde hier stehen: "i386-win32". Und ich bin sicher, dass das nicht die einzige Stelle ist, wo das Problem auftritt. Wenn du also nicht auch noch die Konfigurations-Verzeichnisse richtig stellst, arbeiten deine umbenannten Installationen teilweise mit falschen Dateien... Gib dafür nicht Lazarus die Schuld ("dass Lazarus intern zwischen 32 Bit und 64 Bit irgend was vielleicht unter Umständen noch ein Käfer drin hat")

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von MmVisual »

Ja, und nein ...
Die "fpcdefines.xml" wächst mit jeder Installation weiter an und fügt da die FPC Compiler einfach hinzu. Lazarus findet dann schon den noch existierenden aus dem "C:\Lazarus", da ich jedes mal die kompletten Verzeichnisse umbenenne hat es bisher immer gut funktioniert.
Im Anhang meine "fpcdefines.xml"
fpcdefines.xml
(860.93 KiB) 103-mal heruntergeladen
Ist vielleicht für euch interessant zu sehen.
EleLa - Elektronik Lagerverwaltung - www.elela.de

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von wp_xyz »

OK, Glück gehabt. Was ist mit "environmentoptions/CompilerFileName" (nun aus der 32-bit Installation)?

Code: Alles auswählen

<CompilerFilename Value="C:\Lazarus\fpc\3.2.2\bin\i386-win32\fpc.exe">
Wenn ich mich nicht täusche und du zuletzt die 32-bit-Version installiert hast, dann würdest du immer mit dieser Compiler arbeiten, selbst wenn deine IDE auf 64-Bit eingestellt ist? Oder?

Mach mal folgenden Primitiv-Test, welcher Compiler bei welcher Installation tatsächlich verwendet wird.

Code: Alles auswählen

program Project1;
begin
  if SizeOf(Pointer) = 8 then
    WriteLn('64 Bit')
  else
    WriteLn('32 Bit');

  ReadLn;
end.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von af0815 »

Für Lazarus selbst braucht man kein Setup. Ob du jetzt über Git arbeitest oder die Sourcen als zip/tar Ball dir organisierts ist egal. Für Lazarus alleine würde ich fpcupdeluxe auch nicht verwenden ABER für fpc mit Crosscompiling von Windows zu div. Linux Plattformen ist es das bequemste und auch deterministische. Dort kann ich diverse Stände pinnen und damit über mehere Rechner EINEN Stand erzwingen. Gerade im Team/Firma ist das lebenswichtig.

Herumfrickeln mit Pfaden, kann meiner Erfahrung in der Vergangenheit, relativ rasch ins Auge gehen. Das war die Zeit vor fpcupdeluxe mit seinen Möglichkeiten. Da gab es einige 'Pfad' Switcher in Pascal geschrieben. Ist aber bei Versionssprüngen relativ rasch ins Auge gegangen (Für Forensiker siehe LazInfos Kapitel 8 ). Deswegen habe ich mich schon früh mit fpcup beschäftigt, da war von deluxe keine Spur :-)

Aber jeder hat so seine Art.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von MmVisual »

Ich nutze das mit dem Verzeichnis umbenennen bereits erfolgreich seit fast 15 Jahren - problemlos.

@wp_xyz:
einmal wird 64Bit und wenn ich die Verzeichnisse umbenennen wird 32Bit gezeigt. Meine EXE die ich damit erzeuge funktioniert auch schon immer in beide Bit-Varianten, denn das zeigt sich immer im Log bei jedem Start der EXE.
Bild1.png
Bild1.png (6.24 KiB) 2800 mal betrachtet
EleLa - Elektronik Lagerverwaltung - www.elela.de

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von wp_xyz »

Seltsam. Woher weiß Lazarus, welcher Compiler verwendet werden soll, wenn in der Cfg-Datei immer dasselbe steht? Tut es das? Kannst du mal auch die environmentoptions.xml posten, einmal nachdem du die 32-Bit, und einmal, nachdem du die 64-Bit-Version beendet hat? Bei mir steht unter CompilerFilename immer eine History-Liste. Könnte es sein, dass sich die IDE einen passenden Eintrag aus der History sucht, wenn der zuletzt eingestellte Compiler nicht gefunden wird?

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von MmVisual »

Hier beide Dateien.
environmentoptions_32.xml
(15.16 KiB) 115-mal heruntergeladen
environmentoptions_64.xml
(15.16 KiB) 110-mal heruntergeladen
Das "_32" / "_64" hab ich angefügt, damit ich die Dateien hier posten kann.

Also: Lazarus kann das ganz gut :D
EleLa - Elektronik Lagerverwaltung - www.elela.de

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von wp_xyz »

Danke. Sieht richtig aus, so wie du schon gesagt hast. Ich geb auf, aber man muss nicht alles verstehen..

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Lazarus 2.2.0.RC2 - Windows 32/64 - Bug?

Beitrag von hum4n0id3 »

Eine Neuinstallation auch schon versucht? Die 2.2.0 RC2 habe ich auch versucht und kann mich an den gleichen Fehler erinnern. Dann habe ich die RC2 deinstalliert und den lazarus-Ordner gelöscht und neu installiert. Danach war alles gut, wenn ich mich noch richtig erinnere.

Antworten