LongDirtyAnimAlf / fpcupdeluxe

A GUI based installer for FPC and Lazarus
476 stars 88 forks source link

Pas2JS can not find system unit #327

Closed JanuszChmiel closed 3 years ago

JanuszChmiel commented 3 years ago

Dear specialists, I have created fuly functioning Lazarus including FPC PPCJVM and Pas2js compiler. Unfortunately, Pas2js can not find system unit. Pas2jS option contain right path to pas2js.exe but I have a experience, that if trunk Lazarus uses trunk variant of Pas2js, it is necessary to have Pas2js in pas2js folder. By other words. Create Pas2js folder, use svn to grab source of Pas2js trunk. Then create package by typing make all. In other ase, Pas2js .exe have difficultyes to find important units. But I can not simply change The Pas2js location. Pas2js option button in Lazarus contain only reset run command, reset compiler command and there is options button. It contain multiline editable field with command line to Pas2js and all options for Pas2js, which Lazarus send to Pas2js when compiling WEB project. Unfortunately, I an not simply save modiffication. Editable field can be changed. But after pressing Close button and after pressing OK button in project options Lazarus dialog, Editable field still contain path to pas2js.exe related to Fpcdeluxe. I Am sending .log file and .ini file as a attachments to my issue.

Any help, how to force Pas2js to open units will be welcomed. Sure. I could simply rebuild Lazarus Trunk on A separate folder and do not depend on FPC deluxe. But yours tool is so wonderful. It automatically preconfigures paths and even configures debugger correctly.

fpcupdeluxe-x86_64-win64.log

fpcupdeluxe.ini.txt

Pas2js is very important transpiller for my programmers needs. It support nice WEB apps creation even for visually impaired developers with no sight at all. Because programmer is not being forced to use visual form creation tool based on object position numbers such as Width and height. And Pas2js team is doing his best to create really universal Javascript code which can run on many operating systems platforms and I can perfectly use WEB apps with screen readers for Linux, Windows, Android and even for Macs. Thank you very very much for yours advice. I have small SSD disk so I would like to run Pas2js from Lazarus created by fpc deluxe to save space. By The way. I have incorporated LAMW and Pandroid support to Lazarus. SO I have multi purpose development environment environment.

JanuszChmiel commented 3 years ago

The solution is to locate The file pas2jsdsgnoptions.xml and change The path to pas2js from this file. Then it is not needed to labour with build in Pas2js component options dialog window.

LongDirtyAnimAlf commented 3 years ago

I have re-designed the whole pas2js install process. Would you mind testing this ? Thanks in advance. https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases/tag/1.8.2g

JanuszChmiel commented 3 years ago

I will be very glad to test it. I have been able to use Pandroid for Windows, Lamw and Pas2js thanks to yours tool. Lamw have not been easy to get it functioning, this was The reason, why I hage tried yours program. Thank you that you are generating also JVM android units and that you are compiling also PPCJVM. Because I can develop usable Android apps without sighted assistance thanks to Pandroid and thanks to PPCJVM. The accessibility of yours app is also better and better. Some objects block TAB and SHIFT+TAB navigation, especially when focus get near to The long multiline editable field with app output messages. But I know, that if is it hidden issue of LCL or similar GUI related unit, some other programmers would had to repair it. Fortunately, because you are using Windows API based units to create GUI, it is usable with NVDA and with other screen readers. Thank you again. It is also A good demonstration what is possible to develop with Lazarus and Free Pascal comiler and Lazarus units for GUi creation. Very wll done. I will test both of yours releases. For I386 platform and also for Windows X86X64 platform. Thank you again.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

JanuszChmiel commented 3 years ago

Please could you try to find out, if it would be possible to also support other than C: drive for installation? If somebody uses small SSD harddisk, in most cases, user uses slower but more cheaper external media as A replacement for big capacity storage media. Some users uses SSD carts, others uses external USB harddisks. When I have chosen external harddisk, make file was not found and I AM afraid, if there is no other hydden error. I replace C: drive with D: In The edit field which contain installation path.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

JanuszChmiel commented 3 years ago

May be, that I have caused The error by The fact, that I Am triing to run I386 CPu variant of FPC deluxe. I will try to run X64 instead. Because old .ini file contain data related to my previous functioning FPC deluxe installation for X86 X64

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

JanuszChmiel commented 3 years ago

And I will always run fpcdeluxe.exefrom The drive when I want to create The Lazarus and compilers installations. So in my case, from drive D:

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

JanuszChmiel commented 3 years ago

I will send you The debug log. But really, it is working. I will try Pas2js integration. Thank you that you have incorporated cross build tools download. Because Laz4 android have not been updated some years, it is good alternative to have FPCdeluxe. Thank you again for yours programmers work.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

LongDirtyAnimAlf commented 3 years ago

You're welcome. This whole project started with the fact that FPC and Lazarus are superb in cross-compiling, but its so hard to setup. And I needed this cross-compiling, especially towards the Raspberry and Mac. So, please keep me informed about progress and troubles.

About keeping things small. Just build without debug. See screenshot of Setup+. allsmall

JanuszChmiel commented 3 years ago

Is it possible to develop Macintosh Apple compatible apps by using Pascal? Or it is impossible to publish this kind of apps by using Apple store? I Am so sad, that there is no opensource or free alternative to expensive Borland Delphi VCL unit also for Lazarus? Because if developer uses VCL unit, it is not necessary to specify values for every objects in numbers. Developer can only use adjectives such as altop, albottom, alleft, alparent. Do you think, that it is some little hope, that somebody would develop similar Free Pascal compatible unit like VCL is? Sure, somebody would had to develop his own routines from scratch, but adjectives and other key words would be The same. Now I Am using FNX Basic instead. It have been compiled by using Borland Delphi 7.0. And developer uses VCL unit. So I Am making a fun from myself. That I Am using little Borland Delphi by using 1 MB .exe file with Basic simplified language style.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

LongDirtyAnimAlf commented 3 years ago

Is it possible to develop Macintosh Apple compatible apps by using Pascal?

Yes ! Fpcupdeluxe itself runs very well on Mac. And is cross-compiled from my Windows PC.

Or it is impossible to publish this kind of apps by using Apple store?

To publish, you need a developers account and a Mac to codesign and notorize your app.

I Am so sad, that there is no opensource or free alternative to expensive Borland Delphi VCL unit also for Lazarus

The whole of Lazarus is designed to mimic Delphi VCL. Everybody should be able to port a Delphi program towards Lazarus. And, when done correct, run it on all systems out there. This is how it all started: FPC and Lazarus as (better) alternatives for Delphi. And not Windows-centric. Keep the faith. You will be rewarded if you see your program running on Mac, Linux, Haiku, FreeBSD, Windows and more. Even in the web with pas2js !!

JanuszChmiel commented 3 years ago

May be, that I have understood VCL on Delphi wrong. Does it mean, that it would be possible to use altop, albottom and other adjectives to specify objects without .lfm files? Or also Delphi programmers, who are using VCL must use .lfm files? LFM forms are issue, because every object must have several values specified.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

LongDirtyAnimAlf commented 3 years ago

AFAIK for sure ! All cam be done. Inside a lfm. In code. All possible.

JanuszChmiel commented 3 years ago

Do not be afraid. If it will be my last out topic plea to you as a Pascal developer. If you would have some time and if you would find some app which do not uses .lfm files and it is possible to create objects on The screen with no need to use numbers, please let Me know. Because as I can know thanks to you. Lazarus and FPC contain many units which have been created so programmer do not have to redesign .pas sources when developer want to cross compile from Windows to Linux or to mac for example. And this is revolutionar approach, becauseit is free product.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

LongDirtyAnimAlf commented 3 years ago

Now you have to do some work and research for yourself. https://forum.lazarus.freepascal.org/index.php/topic,51531.msg378402.html#msg378402

JanuszChmiel commented 3 years ago

Thank you very very much, this is exactly what I have wanted. And topics are even up to date, so this approach is even used also by sighted developers. Thank you very much for yours time. This was exactly what I have wanted. So I even do not have to use Jvcl components. I wish you many development achievements.

-- Tento e-mail byl zkontrolován na viry programem AVG. http://www.avg.cz

prof7bit commented 2 years ago

This problem does not seem to be fixed. A standard install is installing pas2js compiler from the FPC repository but the install seems broken, something is missing, it complains about missing unit system.

On the modules tab I see two additional pas2js related packages, but I cannot install them because they try to use svn and installation will fail.

It would be nice if there would be a button or checkbox to include a working pas2js environment in the installation, unfortunately I don't understand why there is an incomplete pas2js environment already contained within FPC by default but can't be used because it is missing essential stuff and an external repo containing the same plus additional needed units. Unfortunately I have found zero documentation about what is where and why.

tazdij commented 3 weeks ago

On window 11 (x86_64) I am getting a missing pas2js for my os and architecture when I try to install the WA setup from the quick install buttons along the bottom row of buttons.

It looks like everything worked all up until is was compiling pas2js for target x86_64-win64. I didn't see any failed downloads, compilations, or anything else besides some fpc syntax warnings, even then it all still compiled, up to this library. Maybe something in the Pas2JS library changed? I have a slightly older version which I manually installed into my main Laz folder and it works, so I don't think it some sort of Target Architecture issue.

Any help or pointers would be very appreciated.

Here is the last section of the log starting from just before error, up until the end.

C:/fpcupdeluxe/wasm/fpc/bin/x86_64-win64/make.exe -C ide ide
../tools/svn2revisioninc.exe .. revision.inc
Created C:\fpcupdeluxe\wasm\lazarus\ide\revision.inc for revision: main_3_99-2145-g5d9f393aae
C:/fpcupdeluxe/wasm/fpc/bin/x86_64-win64/make.exe --assume-new=lazarus.pp lazarus.exe OPT=' -Fu../packager/units/x86_64-win64 -Fu../components/codetools/units/x86_64-win64 -Fu../components/debuggerintf/lib/x86_64-win64 -Fu../components/lazutils/lib/x86_64-win64 -Fu../components/freetype/lib/x86_64-win64 -Fu../lcl/units/x86_64-win64 -Fu../lcl/units/x86_64-win64/win32 -Fu../components/lazedit/lib/x86_64-win64 -Fu../components/buildintf/units/x86_64-win64 -Fu../components/ideintf/units/x86_64-win64/win32 -Fu../components/lazedit/lib/x86_64-win64/win32 -Fu../components/synedit/units/x86_64-win64/win32 -Fu../components/lazcontrols/lib/x86_64-win64/win32 -Fu../components/lazcontrols/design/lib/x86_64-win64/win32 -Fu../components/lazdebuggers/lazdebuggerintf/lib/x86_64-win64 -Fu../components/lazdebuggers/cmdlinedebuggerbase/lib/x86_64-win64/win32 -Fu../components/lazdebuggergdbmi/units/x86_64-win64/win32 -Fu../components/lclextensions/lib/x86_64-win64-win32 -Fu../components/virtualtreeview/lib/x86_64-win64-win32 -Fu../components/fpdebug/lib/x86_64-win64 -Fu../components/lazdebuggers/lazdebuggerfp/lib/x86_64-win64/win32 -Fu../components/lazdebuggers/lazdebuggerlldb/lib/x86_64-win64/win32 -Fu../components/lazdebuggers/lazdebuggerfplldb/lib/x86_64-win64/win32 -Fupackages/ideconfig/lib/x86_64-win64/win32 -Fupackages/ideutils/lib/x86_64-win64/win32 -Fupackages/idepackager/lib/x86_64-win64/win32 -Fupackages/ideproject/lib/x86_64-win64/win32 -Fupackages/idedebugger/lib/x86_64-win64/win32  -WG @C:\fpcupdeluxe\wasm\config_lazarus\idemake.cfg'
C:/fpcupdeluxe/wasm/fpc/bin/x86_64-win64/fpc.exe -gl -vbqewnhi -Sci -dlclwin32 -Fu../designer -Fu../debugger -Fu../debugger/frames -Fu../converter -Fu../packager -Fu../packager/frames -Fu../components/custom -Fuinclude/win -Fuframes -Fu. -FuC:/fpcupdeluxe/wasm/fpcsrc/rtl -FuC:/fpcupdeluxe/wasm/fpcsrc/packages/regexpr -Fiinclude -Fiinclude/win64 -Fi../images -FE.. -FU../units/x86_64-win64/win32 -Fu../packager/units/x86_64-win64 -Fu../components/codetools/units/x86_64-win64 -Fu../components/debuggerintf/lib/x86_64-win64 -Fu../components/lazutils/lib/x86_64-win64 -Fu../components/freetype/lib/x86_64-win64 -Fu../lcl/units/x86_64-win64 -Fu../lcl/units/x86_64-win64/win32 -Fu../components/lazedit/lib/x86_64-win64 -Fu../components/buildintf/units/x86_64-win64 -Fu../components/ideintf/units/x86_64-win64/win32 -Fu../components/lazedit/lib/x86_64-win64/win32 -Fu../components/synedit/units/x86_64-win64/win32 -Fu../components/lazcontrols/lib/x86_64-win64/win32 -Fu../components/lazcontrols/design/lib/x86_64-win64/win32 -Fu../components/lazdebuggers/lazdebuggerintf/lib/x86_64-win64 -Fu../components/lazdebuggers/cmdlinedebuggerbase/lib/x86_64-win64/win32 -Fu../components/lazdebuggergdbmi/units/x86_64-win64/win32 -Fu../components/lclextensions/lib/x86_64-win64-win32 -Fu../components/virtualtreeview/lib/x86_64-win64-win32 -Fu../components/fpdebug/lib/x86_64-win64 -Fu../components/lazdebuggers/lazdebuggerfp/lib/x86_64-win64/win32 -Fu../components/lazdebuggers/lazdebuggerlldb/lib/x86_64-win64/win32 -Fu../components/lazdebuggers/lazdebuggerfplldb/lib/x86_64-win64/win32 -Fupackages/ideconfig/lib/x86_64-win64/win32 -Fupackages/ideutils/lib/x86_64-win64/win32 -Fupackages/idepackager/lib/x86_64-win64/win32 -Fupackages/ideproject/lib/x86_64-win64/win32 -Fupackages/idedebugger/lib/x86_64-win64/win32 -WG @C:\fpcupdeluxe\wasm\config_lazarus\idemake.cfg -dx86_64 lazarus.pp
(1002) Target OS: Win64 for x64
(3104) Compiling lazarus.pp
(9022) Compiling resource C:\fpcupdeluxe\wasm\lazarus\units\x86_64-win64\win32\lazarus.obj
(9015) Linking ..\lazarus.exe
(1008) 250 lines compiled, 4.1 sec, 15499792 bytes code, 1078020 bytes data
Found valid svn.exe application.
Found valid git.exe application.
Found valid hg.exe application.
Found valid make.exe application.
fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: InstallLazarus): Skipping install step: Lazarus source and install locations are the same.
Found valid svn.exe application.
Found valid git.exe application.
Found valid hg.exe application.
Found valid make.exe application.
Found valid svn.exe application.
Found valid git.exe application.
Found valid hg.exe application.
Found valid make.exe application.
fpcupdeluxe: Executing: C:\fpcupdeluxe\wasm\lazarus\lazbuild.exe --version (working dir: C:\Users\dduvall\Software\fpcupdeluxe\)
3.99
fpcupdeluxe: info: Pas2js Installer (GetModule: pas2js-rtl): Getting module pas2js-rtl.
fpcupdeluxe: info: Pas2js Installer (GetModule: pas2js-rtl): Going to download/update from GIT repository https://gitlab.com/freepascal.org/fpc/pas2js.
fpcupdeluxe: info: Pas2js Installer (GetModule: pas2js-rtl): Please wait: this can take some time (if repo is big or has a large history).
fpcupdeluxe: Executing: C:\Program Files\Git\cmd\git.exe status --porcelain --untracked-files=no (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
fpcupdeluxe: info: Pas2js Installer (GitClient: pas2js-rtl): Running GIT checkout or update.
fpcupdeluxe: Executing: C:\Program Files\Git\cmd\git.exe status --porcelain (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
fpcupdeluxe: Executing: C:\Program Files\Git\cmd\git.exe clone https://gitlab.com/freepascal.org/fpc/pas2js.git/ C:\fpcupdeluxe\wasm\ccr\pas2js-rtl (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
Cloning into 'C:\fpcupdeluxe\wasm\ccr\pas2js-rtl'...
fpcupdeluxe: Executing: C:\Program Files\Git\cmd\git.exe config --local advice.detachedHead false (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
fpcupdeluxe: Executing: C:\Program Files\Git\cmd\git.exe remote -v (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
origin  https://gitlab.com/freepascal.org/fpc/pas2js.git/ (fetch)
origin  https://gitlab.com/freepascal.org/fpc/pas2js.git/ (push)
fpcupdeluxe: Executing: C:\Program Files\Git\cmd\git.exe pull (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
Already up to date.
fpcupdeluxe: Executing: C:\Program Files\Git\cmd\git.exe log -1 --pretty=format:%h (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
ca212e1
fpcupdeluxe: info: Pas2js Installer (GetModule: pas2js-rtl): Download/update from GIT repository ok.
fpcupdeluxe: info: Pas2js Installer (GetModule: pas2js-rtl): No pas2js-rtl patches defined.
fpcupdeluxe: Executing: C:\fpcupdeluxe\wasm\fpcbootstrap\make.exe PP=C:/fpcupdeluxe/wasm/fpc/bin/x86_64-win64/fpc.exe clean all (working dir: C:\fpcupdeluxe\wasm\ccr\pas2js-rtl)
C:/fpcupdeluxe/wasm/fpc/bin/x86_64-win64/fpc.exe fpmake.pp   
Target OS: Win64 for x64
Compiling fpmake.pp
Linking fpmake.exe
366 lines compiled, 0.2 sec, 425248 bytes code, 23332 bytes data
./fpmake.exe compile --os=win64 --cpu=x86_64 -o -dx86_64 --compiler=C:/fpcupdeluxe/wasm/fpc/bin/x86_64-win64/fpc.exe -bu
Start compiling package pas2js for target x86_64-win64.
Warning: Source file "pas2js.pp" from package pas2js not found for x86_64-win64
Warning: Source file "webidl2pas.pp" from package pas2js not found for x86_64-win64
Warning: Source file "compileserver.pp" from package pas2js not found for x86_64-win64
Warning: Source file "makestub.pp" from package pas2js not found for x86_64-win64
Warning: Source file "pas2jslib.pp" from package pas2js not found for x86_64-win64
The installer encountered the following error:
Could not compile target pas2js from package pas2js
  $0000000100036499
  $000000010003A9C1
  $000000010003C178
  $000000010003C6ED
  $000000010003DEDE
  $000000010003D922
  $000000010003E821
  $00000001000413EA
  $0000000100035687
  $0000000100035C6F
  $0000000100004878
  $00000001000053F6
  $00000001000128B0
  $0000000100001950
  $00007FFC8D68257D
  $00007FFC8E20AF28

fpcupdeluxe: ERROR: Pas2js Installer (BuildModule: pas2js-rtl): make.exe returned error code 2
Details: .

ERROR: Fpcupdeluxe fatal error !
Sequencer (pas2js-rtl): Failure running fpcupdeluxe: error executing sequence pas2js-rtl
Sequencer (Only): Failure running fpcupdeluxe: error executing sequence Only