Recent

Author Topic: ct4laz  (Read 57467 times)

balazsszekely

  • Guest
Re: Online Package Manager + ct4laz repository
« Reply #75 on: March 01, 2018, 09:22:17 pm »
Quote
This is a preview version of upcoming repo, tested on 32-bit LAZ 1.8.1 + FPC 3.0.5 and running fine on Win10x64. Some testing was also done on Manjaro64 but not as complete and as often as on Windows.
Great! Thanks.

Quote
I would like you to check if such directory hierarchy is acceptable for OPM or there is something that needs to be changed. There is a \examples\0_libraries directory which will probably be shared by several component packages. I did not yet check which ones need it. Is such shared dir acceptable for OPM? That directory holds libs even for solaris and freebsd. I do not know how many people use those two, so I am in a temptation to delete them. What do you say?
Each OPM package has it's own zip file. Ideally the examples, should be in the same folder with the package. OPM extracts all subfolders and files at once. The same is true for libraries. You don't have to change the folder structure if you don't want to, just make sure the dependencies(dll, so, etc...) are specified in the pl_packages_list.xls file. Adding a package to OPM is pretty much automated, the problem is the package description and license info from the lpk file. Unfortunately this has to be done manually. Again a new column in pl_package_list.xls would help, since I'm not familiar with pl_packages. I can manually edit the lpk files.

Quote
I was thinking to add pl_chipmunkpas package too, but it's example needs pl_glscene which exists as a Lazarus repo so I do not want to include CT version. At first I wanted to ask you to include gl_scene in OPM, but when I saw that packages and examples from the repo can not compile I made necessary changes and I will contact Lazarus GLScene repo maintainer to include them. Once this is fixed and if you agree to include GLScene into OPM, I will include pl_chipmunkpas. What do you say?
GLScene Lazarus repo: https://sourceforge.net/p/glscene/code/HEAD/tree/branches/GLSceneLCL/
Sounds good. After GLScene is fixed and it's not in conflict with other packages I can add pl_chipmunkpas too.

Quote
I have also found a clear license violation in pl_exsystem package. It contains TplAppEventsUnit.pas which is almost exact replica of AppEvnts.pas I have in my old D7 (I have just checked and it exists in later versions, too). Probably someone couldn't convert something from Delphi without including it, and PilotLogic just picked it up with the rest without knowing the truth.
Can we fix this? Adding the original author? Perhaps contact him/her?

PS: Adding all the pl packages to OPM should take no longer then 60 minutes.

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Online Package Manager + ct4laz repository
« Reply #76 on: March 01, 2018, 10:07:19 pm »
Hello.

Just tested OPM with last Lazarus 1.8.2.

WoooW.  Very impressive. Works out of the box. Nice look.

Only positive feeling.

Big congratulations.

And many thanks.

[EDIT] The only little bémol is that some packages (uos, sak) are out-of-date.

Fre;D
« Last Edit: March 01, 2018, 10:24:40 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

BeanzMaster

  • Sr. Member
  • ****
  • Posts: 268
Re: Online Package Manager + ct4laz repository
« Reply #77 on: March 01, 2018, 10:23:11 pm »
Hi to all, Hi GetMem

> Sounds good. After GLScene is fixed and it's not in conflict with other packages I can add pl_chipmunkpas too.

Please for don't include GLScene Lazarus repo, now. Actually i'm prepare a new big update. The package structure will be a little different.
I'm also planning to do a Zip archive.

Sorry for the current users of GLScene. Wait a little longer. And in the meantime install GLScene sources via 'The Dayly SnapShoot' or via SVN

thanks in advance

J;Delauney (BeanzMaster)

wp

  • Hero Member
  • *****
  • Posts: 11854
Re: Online Package Manager + ct4laz repository
« Reply #78 on: March 01, 2018, 10:28:16 pm »
pl_geogis and pl_mapviewer both have a version of TMapViewer. We do not need to include them if someone knows a better version with a repo. Anyone?
MapViewer has its own github on https://github.com/maciejkaczkowski/mapviewer; it includes an lpk file. I am not sure if it refers to the original or forked version. In the next days I can have a look at it. GeoGis basically is an earlier version of MapViewer. https://forum.lazarus.freepascal.org/index.php/topic,12674.0.html tells the story how the original MapViewer of GeoGis evolved into MapViewer.

I have also found a clear license violation in pl_exsystem package. It contains TplAppEventsUnit.pas which is almost exact replica of AppEvnts.pas I have in my old D7 (I have just checked and it exists in later versions, too). Probably someone couldn't convert something from Delphi without including it, and PilotLogic just picked it up with the rest without knowing the truth.
Delphi's AppEvents contains TApplicationEvents which is the equivalent of Lazarus' TApplicationProperties.
« Last Edit: March 01, 2018, 10:30:15 pm by wp »

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Online Package Manager + ct4laz repository
« Reply #79 on: March 01, 2018, 10:43:30 pm »
Quote
I would like you to check if such directory hierarchy is acceptable for OPM or there is something that needs to be changed. There is a \examples\0_libraries directory which will probably be shared by several component packages. I did not yet check which ones need it. Is such shared dir acceptable for OPM? That directory holds libs even for solaris and freebsd. I do not know how many people use those two, so I am in a temptation to delete them. What do you say?
Each OPM package has it's own zip file. Ideally the examples, should be in the same folder with the package. OPM extracts all subfolders and files at once. The same is true for libraries. You don't have to change the folder structure if you don't want to, just make sure the dependencies(dll, so, etc...) are specified in the pl_packages_list.xls file.
Examples use hard coded relative paths to lib folder, so it would be complex to change this dir structure and keep automation. I will probably keep it, but let's wait and see how many packages actually use lib dir and then decide. Can you use single main dir in OPM for all pl packages with subdirs as in repo zip file to retain such dir structure? If you can then everything should work out of the box.

Quote
Adding a package to OPM is pretty much automated, the problem is the package description and license info from the lpk file. Unfortunately this has to be done manually. Again a new column in pl_package_list.xls would help, since I'm not familiar with pl_packages. I can manually edit the lpk files.
For any package that I could find license info I already put it into excel table. Where I put PUB for license info that means that author has just released it into the open for free without specifying any concrete license. Where there are multiple licenses it means either that whole package has multiple licenses, or that PL has put several components with different licenses into single package. I will see if that can be improved, and add description column.

Quote
Quote
I have also found a clear license violation in pl_exsystem package. It contains TplAppEventsUnit.pas which is almost exact replica of AppEvnts.pas I have in my old D7 (I have just checked and it exists in later versions, too). Probably someone couldn't convert something from Delphi without including it, and PilotLogic just picked it up with the rest without knowing the truth.
Can we fix this? Adding the original author? Perhaps contact him/her?
I have only identified EpikTimer and BOX2D timer in that problematic package, and I can not find any info about other units. I would have told PL about this problem my self, but they locked my forum account when they saw this topic (please anyone do not make a problem out of that since they are a private company and they have the right to do on their own servers what they want - I do not want to start another war). I have just checked and nothing seams to use that unit, but it just does not feel right to me to just delete the unit and include the package since much in it is still not identified. Who really needs that package should use ct2laz and convert it him self. The last thing I want to do is to bring problems to Lazarus.

Quote
PS: Adding all the pl packages to OPM should take no longer then 60 minutes.
Well, you are much faster then I am. It took me 60 days since this topic was open till a first repo preview.  :D

ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Online Package Manager + ct4laz repository
« Reply #80 on: March 01, 2018, 10:48:51 pm »
in the meantime install GLScene sources via 'The Dayly SnapShoot' or via SVN
I did. Since SF is offline right now I will attach patch for 7112 here. Please take a look.
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Online Package Manager + ct4laz repository
« Reply #81 on: March 01, 2018, 11:06:04 pm »
MapViewer has its own github on https://github.com/maciejkaczkowski/mapviewer; it includes an lpk file. I am not sure if it refers to the original or forked version. In the next days I can have a look at it
Please do. I would be more then happy to delete CT versions from my repo, since only few map sources actually work (probably API change).

Quote
I have also found a clear license violation in pl_exsystem package. It contains TplAppEventsUnit.pas which is almost exact replica of AppEvnts.pas I have in my old D7 (I have just checked and it exists in later versions, too). Probably someone couldn't convert something from Delphi without including it, and PilotLogic just picked it up with the rest without knowing the truth.
Delphi's AppEvents contains TApplicationEvents which is the equivalent of Lazarus' TApplicationProperties.
According to the mess at least one more person besides me didn't know that. Thanks for sharing.
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

balazsszekely

  • Guest
Re: Online Package Manager + ct4laz repository
« Reply #82 on: March 02, 2018, 07:55:12 am »
@Fred vS
Quote
The only little bémol is that some packages (uos, sak) are out-of-date.
Thanks for the feedback. I updated the packages.

@BeanzMaster
Quote
Please for don't include GLScene Lazarus repo, now. Actually i'm prepare a new big update. The package structure will be a little different.
Sure, we can wait. Please take your time.
Quote
I'm also planning to do a Zip archive.
Thanks.

@avra @all
I can leave the directory structure as it is, OPM can handle it, but there is a small problem with the zip size. Currently is 136 Mb and it will grow in the future. Let's suppose a user wish to install a particular package(pl_cindy for example), OPM will have to download the 136 Mb zip file, extract it, then only install pl_cindy from the entire directory structure. This is not a problem for me, my internet connection is fast, but perhaps others are not so lucky. There is an option in OPM(see attached screenshot), which will prevent a second download/extract, basically if the pl.zip was downloaded and extracted before, OPM will recognize it and resume the install locally. Unfortunately the default settings is "always download and extract",  it  can be changed if necessary. The question is: which version is better, a big zip or a 20 -30 small zip? Both version has pros and cons.
« Last Edit: March 02, 2018, 07:58:15 am by GetMem »

balazsszekely

  • Guest
Re: Online Package Manager + ct4laz repository
« Reply #83 on: March 02, 2018, 08:21:54 am »
OK. Just for testing purposes I added pl_test to OPM. I did install a few package randomly and it works great. 

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Online Package Manager + ct4laz repository
« Reply #84 on: March 02, 2018, 05:25:05 pm »
I can leave the directory structure as it is, OPM can handle it, but there is a small problem with the zip size. Currently is 136 Mb and it will grow in the future.
Big zip was just for testing, and I am glad it worked as a test package. I can create many smaller packages, but each will have components and examples dir, and some will have the same 0_libraries dir. That means that each component that needs lib dir will have to download it again. Not nice. Maybe lib dir can be made as a package? What do you think? I did not yet take a look if that would be too much for my current automation status, but if you like the idea I will take a look. Anyway, the general idea would be to have one main dir for all pl packages (call it pl or ct4laz or whatever) and then all components and examples go to that dir. If this idea is fine with you, then would you need that main dir to already exist in each zip on my side, or without it?
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

balazsszekely

  • Guest
Re: Online Package Manager + ct4laz repository
« Reply #85 on: March 02, 2018, 06:17:36 pm »
Quote
I can create many smaller packages, but each will have components and examples dir
In my opinion this would be the ideal solution.

Quote
Maybe lib dir can be made as a package? What do you think?
Good idea! Although I never did a package for libraries before, in theory it should work. In the package options/search path, I would add all library folders like this:
0_libraries\$(TargetCPU)-$(TargetOS). Every package that depends on a specific library, will have this pl_lib package as dependency... I will run a few test soon.

Quote
Anyway, the general idea would be to have one main dir for all pl packages (call it pl or ct4laz or whatever) and then all components and examples go to that dir. If this idea is fine with you, then would you need that main dir to already exist in each zip on my side, or without it?
Dir structure:
Code: Pascal  [Select][+][-]
  1. ct4laz
  2.    0_libraries
  3.    pl_package1
  4.       source
  5.       ...
  6.       examples
  7.    pl_package2
  8.       source
  9.       ...
  10.       examples
  11.    ...       
  12.    pl_package(n - 1)
  13.    pl_package(n)
   

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Online Package Manager + ct4laz repository
« Reply #86 on: March 03, 2018, 10:06:41 am »
Dir structure:
Code: Pascal  [Select][+][-]
  1. ct4laz
  2.    0_libraries
  3.    pl_package1
  4.       source
  5.       ...
  6.       examples
  7.    pl_package2
  8.       source
  9.       ...
  10.       examples
  11.    ...       
  12.    pl_package(n - 1)
  13.    pl_package(n)
No, sorry. In order for examples to keep working I have to keep it like this:
Code: Pascal  [Select][+][-]
  1. ct4laz
  2.    components
  3.       pl_package1
  4.       pl_package2
  5.       ...
  6.       pl_packageN
  7.    examples
  8.       0_libraries
  9.       pl_example1
  10.       pl_example2
  11.       ...
  12.       pl_exampleN
  13.  
Is this OK? If it is not OK then I would have to break my current automation and do the manual work for every new CT version, and I would really hate to do that.
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Online Package Manager + ct4laz repository
« Reply #87 on: March 03, 2018, 10:13:32 am »
Quote
Maybe lib dir can be made as a package? What do you think?
Good idea! Although I never did a package for libraries before, in theory it should work. In the package options/search path, I would add all library folders like this:
0_libraries\$(TargetCPU)-$(TargetOS).
I do not think this is needed at all. Examples have hard coded relative path to a lib file, and they will find what they need if lib dir exists. So a package should just contain whole lib dir. I still have to see if this lib package idea breaks my current automation status. I hope not.
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

balazsszekely

  • Guest
Re: Online Package Manager + ct4laz repository
« Reply #88 on: March 03, 2018, 10:49:02 am »
@avra
Leave the current directory structure as it is, don't break the automation. I will add the examples as a separate entry, like: "pl_examples".  This way everything should work out of the box. Each package will have it's on zip, no duplicate libraries, etc.

avra

  • Hero Member
  • *****
  • Posts: 2514
    • Additional info
Re: Online Package Manager + ct4laz repository
« Reply #89 on: March 25, 2018, 08:07:04 pm »
Here are individual zips with pl packages updated to latest CodeTyphon 6.4:
https://bitbucket.org/avra/ct4laz/downloads/

Before making them available in OPM, we need to discuss this a little:

1) Similar to sqlite package which blocks IDE until you feed proper lib in path (or next to Laz executable), we have the same situation with pl_aggpas. It needs proper lib or will block the IDE from starting. CT has provided Windows lib in \ct4laz\examples\pl_aggpas\xbin\freetype.dll, but it needs to be copied manually in order to be able to start IDE. What are our options to improve user experience? I already see people installing it from curiosity and facing unstartable IDE after that.

2) pl_WinDirectX package installs properly on Win7, but on Win10 IDE fails to start asking for 2 DirectX 8 dlls (D3DX81ab.dll and X3DAudio.dll). I have tried on my Win10 pc and on Win10 VM and it's the same. CodeTyphon says here http://www.pilotlogic.com/sitejoom/index.php/wiki/99-wiki/codetyphon-studio/installation/windows8-install/204-windows8-install-system-libraries that installing latest web DirectX solves the problem. Unfortunately it doesn't for Lazarus. When I start DirectX web setup it ends saying that there is already the same or newer version installed. To repeat, this is a problem only on Win10 and not on Win7, and only in Lazarus - in CodeTyphon it works without problems. It would help if anyone with Win10 x64 and Lazarus x32 could confirm this behavior, or could help in solving it.

3) If some compiled demo asks for any dll/lib in runtime, problem will be solved when you download pl_0_libraries cross platform package. What would be the proper way to document this behavior?

4) Regarding MapViewer component which has 2 incarnations in pl_geogis and in pl_mapviewer packages, do we have a better source of this component to include in OPM, or we have to use CT ones?

@GetMem:
If you need anything else from my side, including access to ct4laz repo, please say so.
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

 

TinyPortal © 2005-2018