Lazarus

Announcements => Third party => Topic started by: JuhaManninen on January 02, 2018, 02:27:52 pm

Title: ct4laz
Post by: JuhaManninen on January 02, 2018, 02:27:52 pm
Since I have now updated ct2laz to be able to convert latest CT 6.30+ projects and packages, I would like to discuss first what would be the ideal way to go for ct4laz. The general idea would be to use ct4laz from OPM so I write in this thread, but if you feel more like starting a new thread to avoid polution, please say so. Here is the general concept of ct4laz that I would like to discuss:
Avra, I move this to a new thread here. This is specific to your ct4laz repository and not about OPM in general. The replies would be buried to the general comments.

Quote
8 )   Automating conversion process is so far successful with ct2laz. However there might be a need in the future to apply patches to some components. I see that you do it with some OPM packages. Do you have it automated in some way?
This last point raises my alarms a little bit.
The main goal of OPM is to provide released packages. Fixing bugs and applying patches is the duty of package maintainers. The people who want to use a development version of a package can still do so by downloading from the master revision control repo.
Ok, sometimes this rule is fuzzy. There are projects without releases and OPM must use the development version then. Yes, Synapse may also be an exception to the rule. I don't know.

However if you create a process for OPM to patch the packages then you practically fork those projects and force GetMem to become a maintainer of those forked projects. No, it is not sustainable in the long run.
If a project needs a bug fix, then send a patch to the original project.
If the patch is ignored, then put pressure on its maintainer. Explain how important it is for OPM and how it is used by thousands of people (or something).
If the project's maintainer is busy, then offer yourself as a co-maintainer with commit access.
If things are still in halt, then fork the project and become its maintainer. This way the process is not tied to OPM which is meant for delivering packages, not maintaining them.
Title: Re: Online Package Manager + ct4laz repository
Post by: JuhaManninen on January 02, 2018, 02:42:19 pm
This was the avra's post in "Online Package Manager" thread :

Hello GetMem,

if you remember we had initial discussion about central repo for CodeTyphon components which I would like to call ct4laz:
http://forum.lazarus.freepascal.org/index.php/topic,38514.msg261943.html#msg261943

Since I have now updated ct2laz to be able to convert latest CT 6.30+ projects and packages, I would like to discuss first what would be the ideal way to go for ct4laz. The general idea would be to use ct4laz from OPM so I write in this thread, but if you feel more like starting a new thread to avoid polution, please say so. Here is the general concept of ct4laz that I would like to discuss:

1 )   I would use ct2laz to convert all CT packages and CodeOcean examples (excluding ORCA ones, because of the potential licensing problem)
2 )   I would host everything from conversion process on new ct4laz bitbucket git repo, similar as ct2laz is hosted now
3 )   I am thinking about using one repo for everything, using current directory structure of CT packages and CodeOcean examples. However, I am not yet familiar with registering packages to OPM, so I have to ask if this is a good approach? Once repo is established, one by one CT packages would be added to OPM.
4 )   I would like to host everything from the conversion process, although probably only pl_* packages and related CodeOcean examples are interesting for OPM. They should probably be downloaded together in one shot. Would that be a problem for OPM?
5 )   For clear distinction and giving credits to PilotLogic I would like to keep their pl_ prefix for each package originating from CT. OPM can show some other real name to the user, but I would like to keep their "original" package names. The reason for this are users who, for one reason or another (usually bug fixes or cross platform improvements), need to use original pl_* packages even when Lazarus and OPM provide native ones (ct2laz allows this possibility during the conversion process).
6 )   You already have several CT packages in OPM. I think that they should go into ct4laz and have "original" pl_ prefix in their package name, but I clearly would like to know your opinion on this matter. I would give you write access to ct4laz repo if you want, of course.
7 )   Using Synapse in OPM gave me a headache because of 2 versions. Some packages are using stable and some are using trunk. Trouble comes when I need several packages using different Synapse packages. It gets solved after manual fixing everything to use trunk Synapse, but that would be too much for an average OPM user. It also gives trouble when converting CT packages which use pl_synapse, because I have to tell ct2laz to convert all to trunk OPM Synapse package (stable is too old and not compatible). If I tell ct2laz not to convert pl_synapse then I have to install pl_synapse and that again conflicts with any OPM Synapse already installed. You see the problem. Ideally there would be only one Synapse package in OPM and that would be using Synapse trunk. What do you think about this?
8 )   Automating conversion process is so far successful with ct2laz. However there might be a need in the future to apply patches to some components. I see that you do it with some OPM packages. Do you have it automated in some way?

Any idea or improvement to this imaginary concept is most welcome.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on January 02, 2018, 04:13:35 pm
I fear a central repository of all CT packages for usage in Lazarus is a very bad idea and will end up in a terrible mess. I am not talking of these packages which are unique to CT, but of that vast majority which are just copies of Laz packages. Units and packages are renamed, but the classes are named like their Laz counterparts. There is nothing to prevent a user from installing a CT package and the corresponding Laz package simultaneously: now each class of these packages will be duplicate and, therefore, the package will not be functional any more, not sure - but maybe even Lazarus will stop working.

Moreover, these CT packages which duplicate Laz packages are less maintained than the Laz packages. Looking into the CT forum I see almost no activity, compared to forum and bugtracker here, and bug reports are usually commented as "we will look into this issue", and then, when Laz has fixed the issue, the fix will appear in the next CT version.

ct2laz is a great tool to make those CT packages available which don't have a Laz counterpart. But this is a tool for somebody who knows what he is doing. A repository of ready-to-use CT package will cause more trouble than benefits. Instead of this I'd pick those CT-only packages, convert them to Laz and distribute them in OPM. An example is the package "astronomy" which is now in OPM, but originally was a CT-only package.

But - this must be clear: All these packages will not be maintained, and I see the future that OPM will end up like CCR: initially lots of enthusiasm, but a few years later, when the excitment has gone, it will just accumulate dead code. What if FPC introduces another code-breaking feature? Or Laz moves functions to other units again? Or code marked as deprecated is finally removed? These things usually are easily fixed, but somebody must do it. Who? Who will take care of the more than hundred packages in OPM when this happens? With CT in there it will be even worse! (well, I am very pessimistic today...)
Title: Re: Online Package Manager + ct4laz repository
Post by: lainz on January 02, 2018, 04:21:37 pm
I've seen BGRAControls in CT, they have units that I've removed and replaced with new one (components).

So they don't have it up to date, also some days ago I've added new components, and these just as wp said are a copy on CT nothing new or fixes of nothing.

So copy these that are unique and open source somewhere and if someone mantains it or not it's a problem of course.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 02, 2018, 04:38:57 pm
Hi all,

In the mean time other people also replied. Just to make clear, we are talking about packages that are unique to CT. Packages that was developed by Pilot Logic or converted from old Delphi sources and maintained only by them. It make no sense to re-add packages already available in Lazarus.

Quote
1 )   I would use ct2laz to convert all CT packages and CodeOcean examples (excluding ORCA ones, because of the potential licensing problem)
That would be great. Thanks. But we should add to OPM only the packages not available anywhere else. In fact this is what I did until now.
Quote
2 )   I would host everything from conversion process on new ct4laz bitbucket git repo, similar as ct2laz is hosted now
Bitbucket is perfrectly fine or any other version control system for that matter. 
Quote
3 )   I am thinking about using one repo for everything, using current directory structure of CT packages and CodeOcean examples. However, I am not yet familiar with registering packages to OPM, so I have to ask if this is a good approach? Once repo is established, one by one CT packages would be added to OPM.
After the conversion is complete, every package must be added to OPM manually, I will do this myself, luckily the process is automated, it takes no longer then 1 min. in average for each package.
Quote
4 )   I would like to host everything from the conversion process, although probably only pl_* packages and related CodeOcean examples are interesting for OPM. They should probably be downloaded together in one shot. Would that be a problem for OPM?
No problem at all. The release cycle of CT packages are slow, when new version of a particular package is avaliable, after a quick conversion it can be added again to OPM.
Quote
5 )   For clear distinction and giving credits to PilotLogic I would like to keep their pl_ prefix for each package originating from CT. OPM can show some other real name to the user, but I would like to keep their "original" package names. The reason for this are users who, for one reason or another (usually bug fixes or cross platform improvements), need to use original pl_* packages even when Lazarus and OPM provide native ones (ct2laz allows this possibility during the conversion process).
I don't mind adding pl_ prefix to packages, hower we should also add the original developers to the "Author" field(lpk file). I did this for every CT package available in OPM + I also added PilotLogic Software House to give cretids for the conversion, maintanance. I spent a lot of time seraching for original authors, although in most cases a hint is available somewhere in a txt file.
Quote
6 )   You already have several CT packages in OPM. I think that they should go into ct4laz and have "original" pl_ prefix in their package name, but I clearly would like to know your opinion on this matter. I would give you write access to ct4laz repo if you want, of course.
Yes I converted the packages manually, it was really painful and slow. With CT4Laz the whole process should take much less. Again I have nothing against pl_prefix in the package name. 
Quote
7 )   Using Synapse in OPM gave me a headache because of 2 versions. Some packages are using stable and some are using trunk. Trouble comes when I need several packages using different Synapse packages. It gets solved after manual fixing everything to use trunk Synapse, but that would be too much for an average OPM user. It also gives trouble when converting CT packages which use pl_synapse, because I have to tell ct2laz to convert all to trunk OPM Synapse package (stable is too old and not compatible). If I tell ct2laz not to convert pl_synapse then I have to install pl_synapse and that again conflicts with any OPM Synapse already installed. You see the problem. Ideally there would be only one Synapse package in OPM and that would be using Synapse trunk. What do you think about this?
As Juha mentioned above, the main goal of OPM is to provide released packages. However in the case of synapse I think we can make an exception. The release cycle is so slow that almost six years passed since the latest stable version. I'm gonna fix this issue soon.
Quote
8 )   Automating conversion process is so far successful with ct2laz. However there might be a need in the future to apply patches to some components. I see that you do it with some OPM packages. Do you have it automated in some way?
This is usually done by the "update feature"(http://wiki.freepascal.org/Online_Package_Manager#Update_a_package ). When a package is not maintained or the release cycle is slow I do it myself.

Title: Re: Online Package Manager + ct4laz repository
Post by: lainz on January 02, 2018, 05:38:26 pm
So avra or you will keep up to date all these packages, right?

I say because I think CT people will not do that?

Edit: non sense question =)

Of course you already mantain the packages uploading them, and if avra does a tool that automatically put these on bitbucket, it will be easy to do.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 02, 2018, 05:49:56 pm
@lainz
Quote
So avra or you will keep up to date all these packages, right?
After every major CT release, avra will convert the packages with ct2Laz, I will update them in OPM. The CT release cycle is slow, so it should be no problem. More over not every package is updated with each release.

Quote
I say because I think CT people will not do that?
This project has nothing to do with CT people. The important thing is to import back the good things from CT or at least this is how I see it.
Title: Re: Online Package Manager + ct4laz repository
Post by: lainz on January 02, 2018, 05:51:34 pm
Good idea, you're getting a lot of help to continue improving! Keep going!
Title: Re: Online Package Manager + ct4laz repository
Post by: JuhaManninen on January 02, 2018, 05:52:14 pm
ct2laz is a great tool to make those CT packages available which don't have a Laz counterpart. But this is a tool for somebody who knows what he is doing. A repository of ready-to-use CT package will cause more trouble than benefits. Instead of this I'd pick those CT-only packages, convert them to Laz and distribute them in OPM. An example is the package "astronomy" which is now in OPM, but originally was a CT-only package.
A repository is needed if converted packages need maintenence. Then we are talking about forking instead of only converting. Avra will naturally be the maintainer of that fork. I like the idea, that is how FOSS development works. Copying and modifying code back and forth.

Quote
But - this must be clear: All these packages will not be maintained, and I see the future that OPM will end up like CCR: initially lots of enthusiasm, but a few years later, when the excitment has gone, it will just accumulate dead code. What if FPC introduces another code-breaking feature? Or Laz moves functions to other units again? Or code marked as deprecated is finally removed? These things usually are easily fixed, but somebody must do it. Who? Who will take care of the more than hundred packages in OPM when this happens? With CT in there it will be even worse! (well, I am very pessimistic today...)
OPM and CCR have a big difference.

CCR is a code hosting project in SourceForge. Yes, many sub-project maintainers fleed but it is not the fault of SourceForge or SVN really. Other hosting sites like GitHub are now more fashionable and maybe CCR is just out of fashion in some peoples eyes.

OPM is for delivering packages only. All the fixes and code maintenance must be done in the projects. This way OPM's maintenance will be sustainable also in the future. Ideally the OPM's maintainer should complain about a broken or old package to its maintainer, putting pressure. In a user's eyes a package found in OPM is already "semi-official" and thus gets more attention and users than some other package.
Forking should be used mercilessly for poorly maintained packages, assuming there is a new maintainer up to the task. CCR projects don't even need forking, we just give commit access for a new person.
Any volunteers for the currently neglected CCR packages?
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 02, 2018, 08:05:50 pm
Avra, I move this to a new thread here. This is specific to your ct4laz repository and not about OPM in general. The replies would be buried to the general comments.
Agreed, thanks!

Quote from: JuhaManninen link=topic=39508.msg271353#msg271353
Quote from: avra
8 )   Automating conversion process is so far successful with ct2laz. However there might be a need in the future to apply patches to some components. I see that you do it with some OPM packages. Do you have it automated in some way?
This last point raises my alarms a little bit. The main goal of OPM is to provide released packages. Fixing bugs and applying patches is the duty of package maintainers.
You don't have to worry. My intention is not forking and maintaining forks. I already use ct2laz to convert CT packages, so I would just put that in a repo to allow general use through OPM for packages that are interesting to others. It would ease access to CT components without using ct2laz. The only 2 packages so far that I see need patching are indy (fix for intentional indy leak, which is already applied in CT version package) and wst (CT version is compilable, unlike author's version although I gave him patches long time ago). I don't know if GetMem will decide to use CT versions, but that would give him maintenance free benefit in this case. I think that in the future CT will move further from Lazarus, and that is the area where I sea automated patching should be applied. I don't find fun to apply same patches all over again by hand, so there is my interest in the topic.

I fear a central repository of all CT packages for usage in Lazarus is a very bad idea and will end up in a terrible mess. I am not talking of these packages which are unique to CT, but of that vast majority which are just copies of Laz packages.
I think that GetMem will probably use such repo just for packages not available otherwise, maybe with 1-2 exceptions that will not bring any problems you fear. I myself do not have such problems even after heavy usage. Anyway, I will probably not publish everything in repo simply because currently it would take 1.2GB.

All these packages will not be maintained, and I see the future that OPM will end up like CCR: initially lots of enthusiasm, but a few years later, when the excitment has gone, it will just accumulate dead code.
I do not agree. Code will be maintained as much as PilotLogic maintains it. Through all these years PilotLogic managed to do it well. I have nothing to do with it. However if you want a guarantee for the future, there is none - as with many thing in life.

What if FPC introduces another code-breaking feature? Or Laz moves functions to other units again? Or code marked as deprecated is finally removed?
This catch-up game exists even without CT involved, so I do not see a problem. There will always be packages that work only with stable version, and some that will work only with trunk. With CT using trunk by default and looking at the history of their updates I think that they adapt much faster then you fear. As for OPM, in worse case it will simply not be able to install package in one of Lazarus versions. Nothing new, and we see it anyway without CT involved at all.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 02, 2018, 08:39:47 pm
...in the case of synapse I think we can make an exception. The release cycle is so slow that almost six years passed since the latest stable version. I'm gonna fix this issue soon.
Thank you very much. I am very happy.

I've seen BGRAControls in CT, they have units that I've removed and replaced with new one (components).
Don't worry. OPM will include just CT specific packages.

A repository is needed if converted packages need maintenence. Then we are talking about forking instead of only converting. Avra will naturally be the maintainer of that fork.
Well, that will not be a fork in a classic sense. I do not intend to make any significant changes to CT code. I will only make ct4laz because PilotLogic does not provide public repo, and because I want those components to be available to Lazarus users. Maintaining will also not be in a classic sense, since I will just convert CT packages and CodeOcean examples to enable their use in Lazarus. OPM is then a natural choice for their delivery to Lazarus users.
Title: Re: Online Package Manager + ct4laz repository
Post by: JuhaManninen on January 02, 2018, 09:45:12 pm
You don't have to worry. My intention is not forking and maintaining forks.
Maybe I expressed my meaning poorly. Forking is OK. If you change the code only a little, it is still a fork. My point was that maintaining of the forks must not be done as part of the OPM delivery process. It must be done in a repository somewhere and preferably not by the OPM's maintainer.
I know GetMem is involved now in package maintenence and now it works because OPM is new and everybody is enthusiastic. In future, say 2025, situation may be different. The OPM maintenance must be designed to be light.

Quote
... and wst (CT version is compilable, unlike author's version although I gave him patches long time ago).
Yes, that should be solved by adding more maintainers for WST. Luckily the sources are in CCR. Everybody who has commit access there can also update WST. Do you have commit access for CCR? You could apply the patches, then we inform Inoussa. He is clearly busy and does not check this forum or even his mailing list often.
I think we should make committing to CCR more flexible. Maybe it would become more fashionable again. I don't see why somebody should not fix a bug in a component even if he is not the maintainer. Commit rights must be based on some credit of course, they cannot be given to everybody.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 02, 2018, 10:03:03 pm
@avra
I fixed the synapse issue. I added the latest trunk(ver. 40.1), also fixed synapse dependencies for other packages, those who pointed to the old version(40.0). Please take a look.

@JuhaManninen
Quote
The OPM maintenance must be designed to be light.
It is light. Everyone can learn in 5 minutes how to add/delete a package. The problem is only I have access to the central repository and this should be changed in the future, so other people can upload packages.

Quote
I think we should make committing to CCR more flexible. Maybe it would become more fashionable again. I don't see why somebody should not fix a bug in a component even if he is not the maintainer. Commit rights must be based on some credit of course, they cannot be given to everybody.
This is a good idea. CCR worked well in the past, it still works well, but a lot of packages are not maintained.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 03, 2018, 12:59:46 am
I fixed the synapse issue.
I will check and let you know. Thanks!

Quote
... and wst (CT version is compilable, unlike author's version although I gave him patches long time ago).
Yes, that should be solved by adding more maintainers for WST. Luckily the sources are in CCR. Everybody who has commit access there can also update WST. Do you have commit access for CCR? You could apply the patches, then we inform Inoussa. He is clearly busy and does not check this forum or even his mailing list often.
If you remember I have notified Inoussa (both by forum and mail) and gave him patches. After a while they were only partially applied and WST could not be compiled in some cases (not checked recently). Patches were not a product of my deeper WST understanding, but a result of comparing original to CT version, which worked well in every Lazarus version I tried. Therefore it is not realistic for me to become a WST maintainer. I prefer to just use CT version of WST (I haven't checked OPM version lately, but I will). Talking about removing maintenance burden from GetMem, it would be more logical to me if CT version will be used for OPM. However, that will be GetMem's decision and for one reason or another he might prefer to continue to maintain his own patched version.

Here are the WST related messages as a reminder:
https://forum.lazarus.freepascal.org/index.php/topic,24519.msg250764.html#msg250764
https://forum.lazarus.freepascal.org/index.php/topic,34297.msg248818.html#msg248818
http://forum.lazarus.freepascal.org/index.php/topic,37285.msg
Title: Re: Online Package Manager + ct4laz repository
Post by: JuhaManninen on January 05, 2018, 11:02:36 pm
If you remember I have notified Inoussa (both by forum and mail) and gave him patches. After a while they were only partially applied and WST could not be compiled in some cases (not checked recently). Patches were not a product of my deeper WST understanding, but a result of comparing original to CT version, which worked well in every Lazarus version I tried. Therefore it is not realistic for me to become a WST maintainer.
Ok, "maintainer" was too strong a word. I meant you can apply your changes which make the code compile again.
For example people who have commit rights for Lazarus SVN repository, fix bugs all around the code base even if they are not authors or main developers of that particular code. It leads to a flexible, light and efficient development process.
With CCR we must be able to do the same. Otherwise this is too bureaucratic. I don't see any reason why you shoud not apply your valid fixes now.
Do you have the commit rights for CCR?
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 06, 2018, 12:34:32 pm
I don't see any reason why you shoud not apply your valid fixes now.
Well, validity is in question here. Patches were only partially applied by the author, and although I asked for the reason - I have never received a reply, so I can only guess that there was something that the author didn't like. Without deeper understanding I can not defend these patches, only PilotLogic could do that (but that is hardly going to happen). I was hoping for the author to fix all compilation issues, but I am still puzzled with only partial fixes appliance without any feedback to reveal the mystery. That is the reason why I am not for changing CCR WST by myself, to avoid more mess. OPM already provides patched WST (I think that GetMem has applied all mentioned CT patches based on my DIFF files, but I use CT version so I would not know that for sure). OPM version is probably fine, and I am only advocating (a little) for CT version that I could host on ct4laz repo to avoid repatching when new version emerges.

Do you have the commit rights for CCR?
No, and because of the reasons already described I would not like to patch WST on CCR by my self. Regarding CCR, the first thing I would like to see is to completely delete MultiLog and LuiControls from CCR files, or leave only 1 readme file that would point users to author GIT repos which are maintained, unlike 11 year old files at CCR. That is pretty embarrassing for both components and CCR, and probably the case with some other CCR files. For MultiLog I know personally because I was involved in helping author making it thread safe (file logging), and implementing a TMemoChannel so several threads can write to gui Memo in a thread safe way. I have an impression that nothing of this will ever get into CCR, and even if it did it would be outdated soon, so I see no point to have it in CCR. Especially since they can be found in OPM now.
https://github.com/blikblum/multilog
https://github.com/blikblum/luipack
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 09, 2018, 05:51:54 pm
I fixed the synapse issue.
I will check and let you know. Thanks!
Checked and works well. Tested with 32-bit 1.8.1+3.0.5 and with latest trunks on Win10. Thank you very much!
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 09, 2018, 06:43:38 pm
Thank you @avra.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 16, 2018, 10:28:18 am
I have attached Excel spreadsheet with all CT packages classified. Here is my loud thinking of further development (all ideas are welcome):

1.   Only pl_* packages and examples are interesting to us, so green colored will not end up in ct4laz repo.
2.   Yellow ones are already in OPM and it should stay that way.
3.   Orange ones are in OPM but taken from CT. They should probably all switch to ct4laz.
4.   Red ones do not exist in OPM. Some are CT unique, some exist elsewhere. There are some good candidates for OPM.

Currently, when extracting packages from typhon_src.7z and examples from CodeOcean.7z, I get a directory structure like this:
Code: [Select]
CodeOcean\
     pl_Abbrevia\
     pl_ACS\
     pl_AGGPas\
     pl_AGGPasVS\
     pl_APE\
     pl_ASIOVST\
     ...
typhon\
     components\
          pl_Abbrevia\
          pl_ACS\
          pl_AGGPas\
          pl_AGGPasVS\
          pl_APE\
          pl_ASIOVST\
          ...
For ease of maintenance I would like to keep such directory structure in the ct4laz repo too, so I need to know if that would be a problem for OPM? I see that OPM has some kind of group package that could be used to install both component package and related CodeOcean example dir package at once, but I have to ask before definite directory structure is made in ct4laz.

EDIT: Orpheus package info updated
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on January 16, 2018, 10:46:05 am
Just a small correction: Orpheus has been added to OPM recently.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 16, 2018, 11:06:45 am
The directory structure from the OPM's point of view is irrelevant. I have no other choice but add the packages manually. I will have to remove the orange ones then add back the red + the orange ones.
When do you plan to start the conversion process? Once you're done I can do my part in 1-2 days or so.

PS: Please mark Orpheus as yellow since it's already in OPM.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 16, 2018, 11:59:05 am
Just a small correction: Orpheus has been added to OPM recently.
Thanks for the info  8)

The directory structure from the OPM's point of view is irrelevant.
Nice  :D

When do you plan to start the conversion process? Once you're done I can do my part in 1-2 days or so.
Conversion process is not much time consuming. Testing is. I have a very tight schedule these days so no promises, but I hope pretty soon.  ::)

Please mark Orpheus as yellow since it's already in OPM.
Done

OPM uses CT Vulkan package. I could not link it to anything from the http://wiki.freepascal.org/Vulkan, so ct2laz will not be able to convert Vulkan projects between Lazarus and CT unless CT version is used in both. It looks like PilotLogic is devoted to 3D (look at pl_Win_DirectX* packages - most are CT unique), so maybe we are on the safe side with CT version here. What do you think? To me CT version looks bigger then anything from the wiki, but someone up to date with the topic should have a word here.

Having more then one version of anything is something we should try to avoid whenever possible (remember synapse). Speaking of duplicates, pl_barcodes (barcodes package in OPM) is much richer then lazbarcodes (CCR version in OPM), and file comparison reveals the same origin. Compiling both asks for trouble, so I think that only one should stay. Either CT version, or CCR version if someone updates it with CT changes.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on January 16, 2018, 12:28:43 pm
Speaking of duplicates, pl_barcodes (barcodes package in OPM) is much richer then lazbarcodes (CCR version in OPM), and file comparison reveals the same origin. Compiling both asks for trouble, so I think that only one should stay. Either CT version, or CCR version if someone updates it with CT changes.
I once did a few fixes for it, therefore I kind of feel "responsible" for it after its creator has abandoned his child...

A quick comparison of the CCR and CT versions shows no dramatic differences. They added some more units for other bar code types, they fixed a divide-by-zero error, and they published some properties - nothing which requires too much work. I already fixed the divide-by-zero bug and published the inherited properties in the trunk CCR version. As for the new units I'll investigate where they come from and whether their license is suitable.

I'd vote to use the CCR version within OPM because it's under our control then.

[EDIT]
ok - found them. The added units belong to TurboPower SysTools. I think it would not be a good idea to mix this with LazBarcodes because LazBarcodes is licensed GPL, and Systools is MPL. Maybe it's better to begin a new folder SysTools on CCR (there used to be one according to http://wiki.lazarus.freepascal.org/FpSystools, but it is gone now).
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 16, 2018, 01:20:53 pm
As for the new units I'll investigate where they come from and whether their license is suitable.
Thanks for looking into this. It is very much appreciated.

The added units belong to TurboPower SysTools. I think it would not be a good idea to mix this with LazBarcodes because LazBarcodes is licensed GPL, and Systools is MPL.
Nice catch. Mixing is not good. CT version should probably be avoided in this case. However could you please look into this:
http://blog.rubypdf.com/2014/07/18/zint-shared-library-change-license-from-gpl-to-bsd/
It looks like zint shared library is now BSD, so maybe LazBarcodes license can be changed also (to be commercial software friendly)? Does LazBarcodes use only zint shared lib or some other part of zint? According to http://wiki.lazarus.freepascal.org/LazBarcodes license is "GPL 3.0 as it is being inherited from the zint source code", so maybe a license switch is possible in this case? Can original author be contacted? Were there any contributors besides yourself?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 16, 2018, 01:22:57 pm
@avra
Quote
I have a very tight schedule these days so no promises, but I hope pretty soon.  ::)
I'm also busy lately...no need to hurry.

Quote
OPM uses CT Vulkan package. I could not link it to anything from the http://wiki.freepascal.org/Vulkan, so ct2laz will not be able to convert Vulkan projects between Lazarus and CT unless CT version is used in both. It looks like PilotLogic is devoted to 3D (look at pl_Win_DirectX* packages - most are CT unique), so maybe we are on the safe side with CT version here. What do you think? To me CT version looks bigger then anything from the wiki, but someone up to date with the topic should have a word here.
It's fine by me. I do not have much experience with CT packages so I leave this issue to you. In the end all I need is a list with orange and red items + the link to the converted packages.  :D

Quote
@wp
I'd vote to use the CCR version within OPM because it's under our control then.
[EDIT]
ok - found them. The added units belong to TurboPower SysTools. I think it would not be a good idea to mix this with LazBarcodes because LazBarcodes is licensed GPL, and Systools is MPL. Maybe it's better to begin a new folder SysTools on CCR (there used to be one according to http://wiki.lazarus.freepascal.org/FpSystools, but it is gone now).
Ok then. Lazbarcodes has to be replaced with the one from CCR.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on January 16, 2018, 01:41:41 pm
Ok then. Lazbarcodes has to be replaced with the one from CCR.
I released the current trunk revision as v1.0.1 (https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/lazbarcodes-1.0.1.zip/download); changes are described in my previous post. The update-json is at https://sourceforge.net/projects/lazarus-ccr/files/LazBarcodes/OPM/update_lazbarcodes.json/download
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 16, 2018, 02:09:17 pm
@wp
The update json only contains the design time package, more over the name is "mbColorLib". I attach the json, please update in CCR. Thanks.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on January 16, 2018, 03:10:27 pm
Sorry for the inconvenience, done. I had copied the update-json of mbcolorlib, and obviously there was more to be changed than what I considered.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 16, 2018, 06:59:58 pm
@wp
No problem. Thanks for updating.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on January 17, 2018, 09:13:30 am
I added TurboPower SysTools as a new project to CCR-trunk; it contains the barcode components (which were copied to pl_BarCodes by CodeTyphon), as well as some math-related units. A lot of stuff is still missing from the ported package, I am a bit hesitant because a lot is available already in fcl, lcl etc. I also don't know what to do with the astromony stuff which CodeTyphon has put into the Astronomy package along with other related units from other authors - another mixup. BTW, the author mentioned by OPM is not correct, all the St* unit are by TurboPower (I tend to add the astronomy units to SysTools from where they come).

A zip file for OPM will follow when I am sure about the package contents.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 17, 2018, 09:53:11 am
I added TurboPower SysTools as a new project to CCR-trunk; it contains the barcode components (which were copied to pl_BarCodes by CodeTyphon), as well as some math-related units.
Thank you so much.  :D

I am a bit hesitant because a lot is available already in fcl, lcl etc. I also don't know what to do with the astromony stuff which CodeTyphon has put into the Astronomy package along with other related units from other authors - another mixup. BTW, the author mentioned by OPM is not correct, all the St* unit are by TurboPower.
Another nice catch. I would vote for adding the whole SysTools package to OPM (even if some of it's functionality already exists in FCL and LCL). Positive side would be that Delphi projects using it will be converted much easier, and the negative that ct2laz will not be able to automatically convert between such CT and Laz projects. That is a minor issue that could be easily solved manually by the user (it could be automated but I still resist to significantly slow down ct2laz by introducing code parser), and there is not much of such code. I would cover most cases by simple ct2laz conversion mapping of pl_barcodes package to lazbarcodes, and pl_astronomy to SysTools, so only the small CT part would not be mappable directly (SysTools barcodes used in pl_barcodes). Good enough for me. The description of SysTools package could mention astronomy and barcode components, which should be enough for users. Of course, this would all mean that Astronomy package would have to go from OPM. What do you think?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 19, 2018, 04:35:29 pm
Quote
@wp
A zip file for OPM will follow when I am sure about the package contents.
Have you figured out the package contents? What package should I delete from the main repository?
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on January 19, 2018, 06:23:38 pm
I am talking of the package Astronomy. It contains the
I would recommend to delete Astronomy from OPM and to add SysTools and TMoon as separate packages (once they are completed, I will drop a note here, of course)
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 19, 2018, 06:35:57 pm
Quote
I would recommend to delete Astronomy from OPM and to add SysTools and TMoon as separate packages (once they are completed, I will drop a note here, of course)
Ok, thanks. I will make the necessary adjustments when you're ready, but it's not urgent at all, so please take you time.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 20, 2018, 10:18:39 am
a single unit solarsystems by Zozito Pelegrin. I did not find anything about it yet, it does not seem to belong to a larger library. No words on license.
Thank you! This was enough for me to look around. I found it as a mzsystemlib here: https://sourceforge.net/projects/mzsystem/ (very nice solar system OpenGL animated demos, btw).
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 26, 2018, 11:23:58 am
After latest transformations added to ct2laz CSV file, new Cindy can finally be compiled out of the box in Lazarus trunk. No more manual work. Unfortunatelly, new Cindy is not compatible with Lazarus 1.8.1 any more (because of TWinControl.ParentBackground missing). After heavy manual work I made it compile in Lazarus 1.8.1 but changes are too big for automation to produce the result that would compile in both. So I have to drop one or the other, and choose which one to be available to OPM.

It does not sound right to me that OPM Cindy should request Lazarus trunk, so I am thinking about leaving previous Cindy version available to OPM (until Lazarus 2.0 is released) because it compiles fine in both official and trunk Lazarus versions (new version compiles in trunk, and heavy manually modified version does not work in trunk). I am thinking to favor official Lazarus version for any similar case in the future. If anyone needs latest Cindy then he can use ct2laz for automatic conversion. Does this sound like a good approach to you?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 26, 2018, 11:38:10 am
Quote
Does this sound like a good approach to you?
Yes. The packages in OPM usually are stable versions(not trunk), although there are a few exceptions like synapse. 
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on January 26, 2018, 12:05:57 pm
Quote
Does this sound like a good approach to you?
Yes. The packages in OPM usually are stable versions(not trunk), although there are a few exceptions like synapse.
Both old and new Cindy are stable, so it' not similar to Synapse. New Cindy requires Lazarus newer then the official one to compile. That's why I think we should stick with old one (until Lazarus 2.0 is released). That way users with both trunk and official Lazarus will be able to compile Cindy.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on January 26, 2018, 12:13:20 pm
Quote
@avra
Both old and new Cindy are stable, so it' not similar to Synapse. New Cindy requires Lazarus newer then the official one to compile. That's why I think we should stick with old one (until Lazarus 2.0 is released). That way users with both trunk and official Lazarus will be able to compile Cindy.
Yes, it's a good idea in my opinion. More people use the official version of Lazarus then trunk
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 02, 2018, 10:45:04 am
{...] could you please look into this:
http://blog.rubypdf.com/2014/07/18/zint-shared-library-change-license-from-gpl-to-bsd/
It looks like zint shared library is now BSD, so maybe LazBarcodes license can be changed also (to be commercial software friendly)? Does LazBarcodes use only zint shared lib or some other part of zint? According to http://wiki.lazarus.freepascal.org/LazBarcodes license is "GPL 3.0 as it is being inherited from the zint source code", so maybe a license switch is possible in this case? Can original author be contacted? Were there any contributors besides yourself?
The new version 1.0.2 of LazBarCodes on Lazarus-CCR and in the Online-Package-Manager is now under BSD license. Jose Mejuto, the original author of the Lazarus port, agreed on this change.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 02, 2018, 06:22:59 pm
@wp

Not related to CT, but I updated spktoolbars in the main repository. Can you please also update the JSON, all you have to do is change "DownloadZipURL". It should point to the new zip(0.1.5). Thank you.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 02, 2018, 10:19:57 pm
Too many packages I am working on these days... Uploaded a new spktoolbar zip (v1.0.5) to sourceforge, and updated the update-json.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 02, 2018, 10:43:58 pm
Quote
Too many packages I am working on these days... Uploaded a new spktoolbar zip (v1.0.5) to sourceforge, and updated the update-json.
No problem. Thanks for the update, I already see the changes in OPM.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 03, 2018, 08:28:00 pm
GetMem, now the TurboPower SysTools and TMoon packages are ready for OPM:

SysTools:
download link: https://sourceforge.net/projects/lazarus-ccr/files/systools/systools-404.zip/download
update json: https://sourceforge.net/projects/lazarus-ccr/files/systools/OPM/update_systools.json/download

DelphiMoon:
the author had a newer version of TMoon on his github named DelphiMoon which I ported to Lazarus. It works with Lazarus and with Delphi (only "d7" and "dnew" packages working)
Download link: https://github.com/wp-xyz/delphimoon/archive/v2.1.1.zip
update json: https://github.com/wp-xyz/opm_update_json/blob/master/update_delphimoon.json

This is my first package from github - forgive me if something is wrong with it.

If everything is working you can delete the Astronomy package.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 04, 2018, 08:35:13 am
Quote
GetMem, now the TurboPower SysTools and TMoon packages are ready for OPM
Thank you wp. I made the necessary adjustments, everything works well, except for package DelphiMoon the update JSON points to a 2.1.1.0 version, but the lpk is still 2.1.0.0.
Title: Re: Online Package Manager + ct4laz repository
Post by: dsiders on February 04, 2018, 09:33:48 am
There are 2 entries for AggPas in OPM. They appear to be the same. Is there some difference between the 2 packages?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 04, 2018, 10:48:20 am
Hi dsiders,

First of all I don't use AGGPas myself, all I now is a 2D vector graphics library. Secondly(after a quick check) they are not the same aggpas.lpk is a runtime component, aggpasvs.lpk as the name suggest is a designtime(visual) component.  AFAIK it was ported from CT. Maybe @avra or somebody else has more info about the component.
Thanks for the feedback.

regards,
GetMem
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 04, 2018, 11:24:03 am
everything works well, except for package DelphiMoon the update JSON points to a 2.1.1.0 version, but the lpk is still 2.1.0.0.
Ah, the release was already tagged before I made some minor changes - after committing them, I deleted the release and recreated it with the same name. It looks as if the old tags were used. github isn't as easy as many people are saying...

Now there's a version 2.1.2, it should work (hopefully...)
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 04, 2018, 11:47:24 am
Quote
Now there's a version 2.1.2, it should work (hopefully...)
Yes, everything is OK now. Thanks. Why you decided to go with github? Sourceforge also worked fine in my opinion. The only annoying thing is, you always have to download the entire CCR, even if you need only a particular package from it. Other then this, it works out of the box in my opinion.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 04, 2018, 12:10:45 pm
Yes, I thought of usung sourceforge, and in fact I also have a Lazarus-only variant (not uploaded) but the original author wants all file being distributed, and he did not respond to my question to use the Lazarus-only files. If, on the other hand, I stick to the combined Delphi-AND-Lazarus version it is easier to merge my changes with his changes when everything is on github.

And BTW, I wanted to learn github. Everybody's so anxious about it. But believe me: it's like everywhere - every piece of software has its pros and cons.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 04, 2018, 01:31:27 pm
Quote
And BTW, I wanted to learn github. Everybody's so anxious about it. But believe me: it's like everywhere - every piece of software has its pros and cons.
I agree. I prefer SVN over GIT. I'm not saying SVN is better the GIT...it's just a personal preference.
Title: Re: Online Package Manager + ct4laz repository
Post by: Thaddy on February 04, 2018, 02:06:50 pm
Point of note: Florian thinks the same, reading the mailing list...
Title: Re: Online Package Manager + ct4laz repository
Post by: marcov on February 04, 2018, 04:06:01 pm
Point of note: Florian thinks the same, reading the mailing list...

Well, actually during the last discussion Florian was enthusiastic in the beginning (mostly because having private repos for devel), but the lack of a decent model to support FPC branches as we do now was a bit of a breaking point.

Also to have some form of decent mergetracking, it would be needed to commit every fix in a forward branch first, which is not exactly elegant either.

While I currently don't think GIT is worth the conversion trouble (deliberately leaving the question if it is "better" alone), I was actually surprised that no acceptable scenarios fleshed out in the end. There was not even enough to vote on. I expected GIT to be flexible enough to support multiple scenarios.  See also http://wiki.freepascal.org/git_migration
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on February 05, 2018, 12:18:50 am
The new version 1.0.2 of LazBarCodes on Lazarus-CCR and in the Online-Package-Manager is now under BSD license. Jose Mejuto, the original author of the Lazarus port, agreed on this change.
Thank you for the effort and thank original author for his approval. Now LazBarCodes can be used in closed source software, too. Great!
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 19, 2018, 11:50:52 am
Today, I stumbled across the package ExGeography the name of which and the fact that it is from Pilot Logic reminds me of the "astronomy" issues. Again it is a mixup of two separate sources. I did not yet look for the originals, but one part is by Jose Mejuto - (the u* files, all have "License: The same as freepascal packages (basically LGPL)" in the header, and the other part is by Seppo S Finland (the flag* files, with "Licence: modifiedLGPL (Same as FreePascal)" in the header).

In the long term, I would again vote for separating the two sources since both licenses, strictly speaking, are different. (or maybe not? - I don't know, I'm not a license specialist)

What is more important is that the OPM license field shows "GPL". I think this is wrong, it should be changed to "LGPL" being the common denominator of both packages.

What is the general opinion about combining different packages into one? Without having checked this explicitly, I suspect that many of the ct packages are like this (I hope this does not open another war against PilotLogic, this is not intended.)

From the point of view of one user it might be better to have different packages because he does not need all of the units or because they offer the same stuff (like the moon units in Astronomy), and from the point of view of another user it might be better to have them combined because installation effort is much less.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 19, 2018, 02:08:26 pm
Quote
What is more important is that the OPM license field shows "GPL". I think this is wrong, it should be changed to "LGPL" being the common denominator of both packages.
I updated the license info to "LGPL". Thanks.

Quote
What is the general opinion about combining different packages into one? Without having checked this explicitly, I suspect that many of the ct packages are like this (I hope this does not open another war against PilotLogic, this is not intended.)From the point of view of one user it might be better to have different packages because he does not need all of the units or because they offer the same stuff (like the moon units in Astronomy), and from the point of view of another user it might be better to have them combined because installation effort is much less.
I also vote for separating the packages as much as possible.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 19, 2018, 03:37:58 pm
The flags part of the ExGeography package is now separate - the original was on CCR as FlagComponent. I fixed compilation with current Lazarus/fpc and uploaded the new version to https://sourceforge.net/projects/lazarus-ccr/files/Flag%20Component/flagcomponent-0.1.1.zip/download. The update link is https://sourceforge.net/projects/lazarus-ccr/files/Flag%20Component/OPM/update_FlagComponent.json/download.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 19, 2018, 04:59:24 pm
Thanks wp. FlagComponent is a much more suggestive name then ExGeography in my opinion.

Edit: Typo correction.
Title: Re: Online Package Manager + ct4laz repository
Post by: molly on February 19, 2018, 05:37:51 pm
Thanks wp. FagComponent is a much more suggestive name then ExGeography in my opinion.
Uhm, yes (https://www.urbandictionary.com/define.php?term=Fag) but in a negative way (very expensive typo) :D
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 19, 2018, 05:55:42 pm
Quote
Uhm, yes but in a negative way (very expensive typo) :D
:D Thanks molly! Edited my previous post. lol
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on February 19, 2018, 09:27:45 pm
I stumbled across the package ExGeography the name of which and the fact that it is from Pilot Logic reminds me of the "astronomy" issues. Again it is a mixup of two separate sources.
You touched something that I was preparing to address. In general, I will avoid such mixed CT packages in ct4laz repo. Who ever needs them will be able to get them with ct2laz tool by hand. I plan to offer in ct4laz only packages where there aren't mixed unknown sources. I do not want to bring any trouble into OPM. I have identified a lot of sources of the CT components (only someone who tried it knows how much of a work that is), and excel file with my findings will follow. Then it will be more clear why some components will be excluded.

There is also a problem of CT using trunk Lazarus/FPC, while we would like to have OPM components work on official Lazarus. For small changes I added needed transformations to ct2laz CSV file, but for bigger ones I had to sometimes use older CT component instead of latest one. Of course, all that is transparent for users.

I hope to have ct4laz repo ready in few days.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on February 20, 2018, 12:44:29 pm
This is the list of CT packages that will be included in ct4laz:

CT package:License:
pl_aggpasPUB
pl_aggpasvs
pl_apeLGPL
pl_asiovstGPL/LGPL2/MPL
pl_cindyMPL
pl_geogisLGPL3
pl_graphics32MPL/GPL(LnkExc)
pl_graphics32extMPL
pl_graphics32mgGPL
pl_graphics32vpr    MPL
pl_html5canvasMIT
pl_lockboxGPL/LGPL/MPL
pl_mapviewer
pl_openglMPL
pl_opengles
pl_openwirePUB
pl_synapsevsGPL3/LGPL3/MPL
pl_vulkan
pl_win_directxMPL
pl_win_directx11
pl_win_directx12APACHE2
pl_win_directxutMPL
pl_win_dspackMPL
pl_win_gdiMPL
pl_win_midiMPL

If you think that some of these packages for some reason should not end up in ct4laz repo, now is the time to say it.

These packages will not be included in the repo: pl_asphyresphinx, pl_astronomy, pl_barcodes, pl_brook, pl_cef, pl_chelper, pl_exsystem, pl_fbdataset, pl_fontengine, pl_freespider, pl_glscene, pl_greyhound, pl_nxpascal, pl_opengladv, pl_opengpsx, pl_openweather, pl_orca, pl_orca3d, pl_packager, pl_pappe, pl_pasdoc, pl_solutions, pl_solutionsweb, pl_uib, pl_usercontrol, pl_vampyreimaging, pl_win_oledb, pl_zengl. Some of them exist in the CCR, GITHUB or other public repos (links can be found in excel file). Therefore original versions should be used in OPM, not CT versions. Some of them have too many mixed licenses and using components from various hard to track sources, and some have other issues. If you really need some of those, you can always use ct2laz tool to get them from CT and convert for Lazarus.

I have not yet decided what do do with these: pl_chipmunkpas, pl_excompress, pl_excontrols, pl_exdatabase, pl_exdesign, pl_exgeographic, pl_fzcontrols, pl_gaiagis, pl_sdl2, pl_shapes, pl_titanscript, pl_titansound, pl_tsmbios, pl_virtualtreesextra, pl_wst. They will not be included in first release. There are YES and NO reasons to include any of them (look into excel file), so I will decide later. For one reason or the other I might also decide to not include whole component but just a part of it, we'll see.

These component packages already come with Lazarus or OPM: pl_abbrevia, pl_acs, pl_bgrabitmap, pl_bgracontrols, pl_bgrauecontrols, pl_box2d, pl_ceosmw, pl_cgi, pl_colorlib, pl_dataport, pl_dcp, pl_dmath, pl_eccontrols, pl_fortesreport, pl_fpspreadsheet, pl_generics, pl_glassdocking, pl_htmlviewer, pl_indy, pl_jujiboutils, pl_jvcl, pl_kcontrols, pl_lape, pl_lclextensions, pl_lnet, pl_luicontrols, pl_onguard, pl_opendocument, pl_orpheus, pl_pascalscada, pl_pascalscript, pl_powerpdf, pl_rgbgraphics, pl_richmemo, pl_richview, pl_rx, pl_spktoolbar, pl_synapse, pl_uos, pl_virtualtrees, pl_visualplanit, pl_xmlstreaming, pl_zeosdbo, pl_zmsql. These will be mapped to their Lazarus counter parts (automatically done during ct2laz conversion).

More details about packages can be found here:
https://bitbucket.org/avra/ct4laz/downloads/pl_packages_list.xls

Well, some of you were right and this more and more looks like a real fork instead of fully automated conversion as I was hoping for. Things got complicated after the decision to support official versions of Lazarus and FPC instead of trunks as CT is doing. That was hard decision but hopefully a good one.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 20, 2018, 01:11:39 pm
I have not yet decided what do do with these...
pl_exgeographic is the one which I was talking about in reply #54. It consists of FlagComponent which is already distributed by OPM separatey, and PascalTZ which will be added soon. --> you should skip it.
pl_wst probably is the same as wst on CCR.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on February 20, 2018, 01:32:08 pm
I have not yet decided what do do with these...
pl_exgeographic is the one which I was talking about in reply #54.
Yes, I remember. I will not include that package for sure. The reason why pl_exgeographic is on that list is that some other units from that package might come into focus later - but to be honest the chance for that is very slim.

As for WST, it depends. Original author only partially applied patches needed for WST to work on latest Lazarus. GetMem applied all patches and OPM version is good for now. I would be most happy if original WST would fully work, but that is not the case. We will see what future brings. Hopefully WST never ends up in ct4laz.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 20, 2018, 02:03:29 pm
I have not yet decided what do do with these...
pl_exgeographic is the one which I was talking about in reply #54.
Yes, I remember. I will not include that package for sure. The reason why pl_exgeographic is on that list is that some other units from that package might come into focus later - but to be honest the chance for that is very slim
Which units? I am pretty sure that FlacComponent and PascalTZ contain all. (There is a "TVplVectorFlagUnit which does not fit into the naming scheme, but this is the same as unit flagcomponent).
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on February 21, 2018, 10:59:46 am
Which units? I am pretty sure that FlacComponent and PascalTZ contain all.
Well, I was talking from my memory since I remembered that there was something left to check. Now when I look again I see it was just PascalTZ. I checked now and it can be found here  (http://wiki.freepascal.org/PascalTZ), so we can mark the whole package as not needed.
 ;D
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 21, 2018, 11:03:01 am
GetMem, PascalTZ (the other package which PilotLogic stuffed into the ExGeographic package) is now ready for OPM. Its download location is https://sourceforge.net/projects/lazarus-ccr/files/PascalTZ/PascalTZ-2.1.1.zip/download, the update json is at https://sourceforge.net/projects/lazarus-ccr/files/PascalTZ/OPM/update_pascaltz.json/download). Please be prepared that I did something wrong as usual  ;)
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 21, 2018, 11:56:44 am
Quote
GetMem, PascalTZ (the other package which PilotLogic stuffed into the ExGeographic package) is now ready for OPM. Its download location is https://sourceforge.net/projects/lazarus-ccr/files/PascalTZ/PascalTZ-2.1.1.zip/download, the update json is at https://sourceforge.net/projects/lazarus-ccr/files/PascalTZ/OPM/update_pascaltz.json/download).
Thank you wp. I added to OPM.

Quote
Please be prepared that I did something wrong as usual  ;)
Somethings wrong with the JSON, because nothing appears in the external column. Please generate the json with OPM(as in the image), then modify "DownloadZipURL" and "Version" if necessary(OPM takes the currently installed version number as default).
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 21, 2018, 12:20:01 pm
I knew something would be wrong. A typo in the package name... This is the new update link: https://sourceforge.net/projects/lazarus-ccr/files/PascalTZ/OPM/update_PascalTZ.json/download.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on February 21, 2018, 01:17:36 pm
Quote
I knew something would be wrong. A typo in the package name... This is the new update link: https://sourceforge.net/projects/lazarus-ccr/files/PascalTZ/OPM/update_PascalTZ.json/download.
Just updated the link. It works fine now.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on March 01, 2018, 12:06:11 pm
@GetMem: I arranged with the current maintainer of the package PascalTZ that he will host the updates and update link on his own github. The update.json now can be found at https://github.com/dezlov/PascalTZ/raw/master/opm/update.json
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 01, 2018, 12:14:17 pm
Should I move the home page too? From:
   https://sourceforge.net/projects/lazarus-ccr/files/PascalTZ
to
   https://github.com/dezlov/PascalTZ
Or only the json changes location?
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on March 01, 2018, 12:25:02 pm
Yes, I think so. Thank you.

There is also a wiki page (http://wiki.freepascal.org/PascalTZ) with similar content. I guess you can't use both. If you can't I think we should pick the github page because it's better to have everything under the same roof.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 01, 2018, 12:42:42 pm
wp
Only one link is possible, so I went with the one from the github page. Thanks.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on March 01, 2018, 07:03:21 pm
https://bitbucket.org/avra/ct4laz/downloads/ct4laz-preview.zip

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.

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?

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/

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?

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.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: Fred vS 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
Title: Re: Online Package Manager + ct4laz repository
Post by: BeanzMaster 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)
Title: Re: Online Package Manager + ct4laz repository
Post by: wp 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra 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

Title: Re: Online Package Manager + ct4laz repository
Post by: avra 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely 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. 
Title: Re: Online Package Manager + ct4laz repository
Post by: avra 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?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely 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)
   
Title: Re: Online Package Manager + ct4laz repository
Post by: avra 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra 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.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 25, 2018, 09:08:03 pm
1. I can add freetype.dll automatically, but what about freetype.so/freetype.dylib for linux/osx? Or freetype is only needed on windows?
3. When a user download a pl_ package and the pl_0_libraries folder is not present,  OPM can give a warning about the missing library folder
2, 4. Unfortunately I do not have enough knowledge about those packages to make a useful comment

Quote
If you need anything else from my side, including access to ct4laz repo, please say so.
Ok, thanks. Unfortunately I'm very busy at the moment, we should wait 1-2 more weeks before we add pl_ packages to OPM.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on March 25, 2018, 09:47:06 pm
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?
As I wrote some time ago I want to take care of MapViewer. I have access to the author's original repository which turned into pl_geogis. It is working, but has some issues with tiled painting. I will provide it for OPM for sure (unfortunately I am busy with other thing right now). The other package is derived from this one, but I did not investigate in detail so far. It has a dependence on the RGBGraphics package- not sure if this is really needed, and I don't know if tiled painting is better there.

But anyway, I would keep these two packages out of your collection and keep them in OPM as it is now. Later, when "my" packages are ready we can replace them by the new ones.

Regarding AggPas: What is the difference to the version which ships with Lazarus in folder components? Also, we have good freetype support in fcl and in LazUtils which does not require a dll. Why does aggpas reinvent the wheel here? I fear we'll end up in quite some mess here.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 25, 2018, 10:47:36 pm
I fear we'll end up in quite some mess here.
No. Don't worry. We agreed in the beginning that only packages which do not interfere with Lazarus goes into OPM. If we cannot make AggPas "Lazarus friendly" we better skip it. Users still can download it from avra's repository.
Title: Re: Online Package Manager + ct4laz repository
Post by: taazz on March 25, 2018, 11:51:53 pm
I fear we'll end up in quite some mess here.
No. Don't worry. We agreed in the beginning that only packages which do not interfere with Lazarus goes into OPM. If we cannot make AggPas "Lazarus friendly" we better skip it. Users still can download it from avra's repository.
doesn't fpc come with aggpas already? doesn't it include a package for lazarus too already? why not use the windows font library by default in windows instead of freetype and or other libraries?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 26, 2018, 06:20:14 am
OK. I removed AggPas from the central repository. If you guys know any more discrepancy, please let me know.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on March 31, 2018, 02:34:26 pm
I began adapting the original MapViewer component by Maciej Kaczkowski (original sources in https://github.com/maciejkaczkowski/mapviewer), added fphttpclient support by Dimitrios Chr. Ioannidis (https://forum.lazarus.freepascal.org/index.php/topic,12674.msg160255.html#msg160255) and have begun to merge ti_dic's extensions (https://forum.lazarus.freepascal.org/index.php/topic,12674.msg164556.html#msg164556, https://sourceforge.net/p/roadbook/code/ci/master/tree/mapviewer/) - the latter changes are massive, and I don't know where this will end...

Anyway, the reason why I am writing this is a question regarding licensing - and I am really no expert here. All authors state in their unit headers that the units are "under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.". In short: "GPL-2 or later". Correct?

OPM, on the other hand, distributes PilotLogic's adaption of ti_dic's Mapviewer version as "GNU Lesser GPL". I think this is not correct.
Title: Re: Online Package Manager + ct4laz repository
Post by: lainz on March 31, 2018, 02:58:24 pm
You're right. These are not the same license.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 31, 2018, 03:13:03 pm
@wp
Should I change it now or when you're ready with the adaptation?

@avra
Can you please remove MapViewer and AggPas from the repository? Next week I can add pl_packages to OPM if you're ready. I will keep the directory structure as we agreed in this thread:
Quote
ct4laz
   components
      pl_package1
      pl_package2
      ...
      pl_packageN
   examples
      0_libraries
      pl_example1
      pl_example2
      ...
      pl_exampleN
Let's hope everything will work out of the box.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on March 31, 2018, 03:53:28 pm
@wp
Should I change it now or when you're ready with the adaptation?
Don't hurry, wait until the new package is ready.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on May 24, 2018, 09:26:00 am
@GetMem: Looking through the package list available in OPM I noticed that the BarCodes package of PilotLogic is still available - this is a mixup of LazBarCodes and part of TurboPower SysTools (having different licenses - see earlier discussion in this thread, reply #22). Both are available in OPM as separate packages maintained by myself. Therefore it would make sense to remove the PilotLogic package from OPM, also to avoid duplicate component issues if the user installs BarCodes together with LazBarCodes or SysTools.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on May 24, 2018, 10:11:41 am
@wp
Done. We should check the other packages too. I did a quick filter, there are 26 pilot logic related packages in the main repository. I assume a large part of those packages is CT only, since we filter the duplicate ones out. By CT only I mean it was developed by them or they continued an old, abandoned delphi package/project, which is perfectly fine. 
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on May 24, 2018, 12:06:33 pm
Did not find any more duplicates of current OPM packages.

But I think in addition to removing duplicates we also should find out the original packages which were adapted by Pilot Logic because if there is still development by the original author I'd prefer this.

I still have MapViewer on my list, it will be based on the original author's (not PilotLogic's) sources and have some improvements by myself. The current state of the port is on CCR (folder lazmapviewer). You'll be notified when it is ready.

I also looked at VampyreImaging. The original author has a Lazarus pakage on his site (https://sourceforge.net/p/imaginglib/code/ci/default/tree/Extras/IdePackages/Lazarus/) which is working (I tested it recently), but so far I refrained from submitting it to OPM because the author mentions in his commit messages that he plans a new release. I'd much prefer to have the original author's new release in OPM than PilotLogic's adaption.

The Graphics32 team has a Lazarus runtime and designtime package on their github too (https://github.com/graphics32/graphics32/tree/master/Source/Packages), but the commit is 6 years old, so I am not sure if it is still working - I did not test it myself.

HTML5Canvas is from CWBudde's GitHub (https://github.com/CWBudde/Pascal-HTML5-Canvas) (Christian is a Graphics32 team member), but the repository does not contain a Lazarus package. Last source changes: 6 years ago.

OpenGL seems to contain three different OpenGL implementations, one of them, OpenGLPanel, being very similar to the OpenGLContext which comes with Lazarus. It also contains the dglOpenGL.pas (e.g. https://github.com/SaschaWillems/dglOpenGL/blob/master/dglOpenGL.pas) used by many people. 

Lockbox seems to be another TurboPower package. The original repo is at https://github.com/TurboPack/LockBox. Last change: 2 years ago. No Lazarus package.

ExDatabase is probably identical with https://github.com/nurettin/zeddbtreeview/tree/master/Source; the original repository contains a Lazarus package, but has not been updated for 6 years.

ExCompress, ExControls, and ExDesign look like parts of JVCL packages at first sight, but they look too different internally. I did not investigate to find the original sources.

Did not look at the others.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on May 24, 2018, 01:04:47 pm
Thanks wp. I will do my own "investigation" soon, but it seems that not too many CT packages will remain in the end. The question is: after how many years we should consider a Delphi/Lazarus package abandoned? Five years seems a reasonably long time, this is especially true in IT.  I will rename the CT packages to pl_xxxx to prevent confusion.
Title: Re: Online Package Manager + ct4laz repository
Post by: marcov on May 24, 2018, 01:23:31 pm
Anyway, the reason why I am writing this is a question regarding licensing - and I am really no expert here. All authors state in their unit headers that the units are "under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.". In short: "GPL-2 or later". Correct?

No GNU Library General Public License, which is LGPL.  "Library" changed to "Lesser" in later versions for political reasons. So at worst it is a versioning issue.

Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on May 24, 2018, 02:39:15 pm
I added the pl_X prefix to each CT package, so we can easily differentiate between them. I also removed MapViewer which will be added soon as a non CT package.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on February 25, 2019, 11:46:07 am
I still have MapViewer on my list, it will be based on the original author's (not PilotLogic's) sources and have some improvements by myself. The current state of the port is on CCR (folder lazmapviewer). You'll be notified when it is ready.
What is the status of CCR MapViewer? Is it ready for OPM? I am asking because I am in the process of updating ct4laz with current CT components.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on February 25, 2019, 11:57:04 am
No, the memory leak must be fixed, but I cannot focus on this component at the moment. Patches are welcome.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on February 25, 2019, 12:06:27 pm
Ok, then CT MapViewer components will be excluded from OPM, but I will still provide them in ct4laz repo in case someone needs them.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on March 02, 2019, 06:00:24 pm
It's upgrade time. Let me present you preview of ct4laz V2. You can find it here: https://bitbucket.org/avra/ct4laz/downloads/.

This is the list of ct4laz V2 packages taken from CodeTyphon 6.70:
Quote
pl_0_libs (new)
pl_ape
pl_asiovst
pl_cindy
pl_dwscript (new)
pl_excompress
pl_excontrols
pl_exdatabase
pl_exdesign
pl_graphics32
pl_graphics32ext
pl_graphics32magic (new)
pl_graphics32mg
pl_graphics32vpr
pl_html5canvas
pl_lockbox
pl_opengl
pl_opengles
pl_openwire
pl_pappe (new)
pl_sdl2 (new)
pl_synapsevs
pl_titansound (new)
pl_vampyreimaging
pl_vulkan
pl_win_directx
pl_win_directx11
pl_win_directx12
pl_win_directxut
pl_win_dspack
pl_win_gdi
pl_win_midi
px_aggpas
px_aggpasvs
px_cmdrunner (new)
px_exgeographic (new)
px_gaiagis (new)
px_geogis (new)
px_mapviewer
px_opengladv (new)
px_shapes (new)
px_titanscript (new)
px_tsmbios (new)

All pl_* packages should end up in both OPM and ct4laz repo, while px_* packages should end up only in ct4laz repo and are ment only for the brave ones or desperate ones (you can find explanations for this in Excel file). If you think that some of the pl_* packages for some reason should not end up in OPM, now is the time to say it. Nothing is carved in stone, yet.

Updated spreadsheet with all packages and their licenses, as always can be found at https://bitbucket.org/avra/ct4laz/downloads/pl_packages_list.xls. It can bring light to why some packages have been left out completely, and some (px_* ones) ended up only in repo.

This time I have made all libraries as a package (pl_0_libs). All demos using them have this package in project requirements, so it should ease things a lot. PilotLogic has done a nice job here, and these are the covered platforms: arm-linux, i386-darwin, i386-freebsd, i386-linux, i386-solaris, i386-win32, x86_64-darwin, x86_64-freebsd, x86_64-linux, x86_64-solaris and x86_64-win64. Therefore the pl_0_libs package weights 23MB.

Because of this new pl_0_libs library package I had to change directory structure a little. All components (even px_* ones) are in pl_components dir, and all demos are in pl_examples dir.

@GetMem:
Is this dir change OK for OPM? If I remember well, you said that lot of time was spent to populate proper info in pl_* components. If you were talking about LPK files, then maybe I should copy your LPKs into ct4laz? I have already automated that part in ct4laz (to copy some file over original one), so it should not be much work. If you agree, then you could use pl_* components without any change and that could take of some of the burden from you. I also think that cindy in OPM should hold pl_cindy name - to respect it's origin and give credit to Pilot Logic. I hope that's OK with you.

All components were tested on 32bit Lazarus 2.0 fixes and both FPC 3.0 and 3.2 fixes running on Win10x64. Linux testing has not been done yet.

As usual, automating conversion was the easier part, mostly finding what's needed to add to ct2laz CSV file (which I have updated in ct2laz repo) and rerunning ct2laz again and again. The harder part was to make ct4laz compatible with FPC 3.0.x from official Lazarus.

When I catch time, I will put instructions and scripts for anyone who wants to do this from scratch in ct4laz repo.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on March 06, 2019, 12:33:49 am
I did some testing on 64bit Lazarus 2.0 fixes and FPC 3.2 fixes in fresh Manjaro VM and these components have issues:

pl_dwscript - compilation error:
Quote
Compile package pl_DWScript 6.7.1: Exit code 1, Errors: 4
dwsDataContext.pas(80,19) Error: No matching implementation for interface method "_AddRef:LongInt; CDecl;" found
dwsDataContext.pas(80,19) Error: No matching implementation for interface method "_Release:LongInt; CDecl;" found
dwsDataContext.pas(80,19) Error: No matching implementation for interface method "_AddRef:LongInt; CDecl;" found
dwsDataContext.pas(80,19) Error: No matching implementation for interface method "_Release:LongInt; CDecl;" found
I didn't know that it was ported (http://wiki.freepascal.org/DelphiWebScript), so better to leave it out of ct4laz.

pl_sdl2 - only lib load demo works, others show SIGFPE or RunError(200).

pl_titanscript SIGSEGV runtime error - looks like pointer issue.

pl_tsmbios root access is needed for bios demos to work.

pl_vulkan I was not able to test it because of error "Unable to create Vulkan instance". Probably some missing lib issue. It would be good if anyone can help with it.

More testing is needed. Any help would be most appreciated.
Title: Re: Online Package Manager + ct4laz repository
Post by: AlexTP on March 10, 2019, 02:10:02 pm
I found not handy behaviour. if i show tooltip, this tooltip hides early.
i cannot read it 50% times. Each 3-4 px mouse moving hides tooltip. Change it to e.g. 15px.

EDIT
don't hide it if i move mouse inside the same listbox line.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on March 10, 2019, 04:17:19 pm
I found not handy behaviour. if i show tooltip, this tooltip hides early.
i cannot read it 50% times. Each 3-4 px mouse moving hides tooltip. Change it to e.g. 15px.

Is this related to ct4laz?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 10, 2019, 05:45:33 pm
@avra
Somehow I did not noticed your post. Can I start to add the packages to OPM?
Quote
Is this dir change OK for OPM?
For OPM is OK, but I don't know if the relative path to the library folder will be the same as in CT.

Quote
If you agree, then you could use pl_* components without any change and that could take of some of the burden from you. I also think that cindy in OPM should hold pl_cindy name - to respect it's origin and give credit to Pilot Logic. I hope that's OK with you.
Sure, I already used pl_ prefix in the past for CT packages. Cindy was developed by Pilot Logic only? If yes, then giving credit is a must. The issue is, I found many packages, which I thought it was PL only, later it turn out it was developed by somebody else. 
Quote

All components were tested on 32bit Lazarus 2.0 fixes and both FPC 3.0 and 3.2 fixes running on Win10x64. Linux testing has not been done yet.
Yes this is real issue, people complaining in the mailing list about Linux all the time. A lot of packages don't compile.
Quote
Is this related to ct4laz?

No it's related to OPM, a GTK2 specific bug.
Title: Re: Online Package Manager + ct4laz repository
Post by: AlexTP on March 10, 2019, 05:59:07 pm
Wrong topic; it was about OPM tooltip in the listbox.

EDIT
It's gtk2.
Title: Re: Online Package Manager + ct4laz repository
Post by: wp on March 10, 2019, 06:03:11 pm
Cindy was developed by Pilot Logic only?
I doubt that - do they develop any components at all? The "original" Cindy can be found on https://sourceforge.net/projects/tcycomponents/files/. According to the license.txt of these files, the original developer is Júlio Maurício Antunes Piao.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on March 10, 2019, 08:52:55 pm
Somehow I did not noticed your post. Can I start to add the packages to OPM?
Please don't do that yet. It is only a preview not tested enough. We can call it a V2 release candidate with a call for testers. It is also a discussion of what should end up in OPM and what should be left in ct4laz repo only.
 
Quote
Is this dir change OK for OPM?
For OPM is OK, but I don't know if the relative path to the library folder will be the same as in CT.
I have managed to keep automation and to change library path from absolute to relative, so it doesn't matter any more. In order for this to work, I had to heavily change ctutils.pp and to introduce library package. It works in all my windows and linux tests of provided examples.

Cindy was developed by Pilot Logic only? If yes, then giving credit is a must.
No, sorry for the confusion. I did not say that Pilot Logic is the author of cindy components. I said that Pilot Logic takes the credit for porting cindy to Lazarus (which was at the time when CT components could be used in laz without any change), so we should respect that and leave pl_cindy name, as is the case with the rest of ct4laz components. I just feel that should be right, nothing else. It is just a proposal, not some kind of a request.

Quote
All components were tested on 32bit Lazarus 2.0 fixes and both FPC 3.0 and 3.2 fixes running on Win10x64. Linux testing has not been done yet.
Yes this is real issue, people complaining in the mailing list about Linux all the time. A lot of packages don't compile.
Well, when package uses a Windows unit that is to be expected, right? I don't see that as a problem. What about Mac, FreeBSD or even Solaris users? What should they say? Pilot Logic has improved things a bit by giving most of such packages a intuitive pl_win* prefix, but unfortunately not all packages follow that pattern. What we can do is to populate package info about supported platforms.

Speaking of LPK files, what should we do about them? If I remember you had entered lot of info into them to make package info more relevant and accurate. Should I use your LPK files? It would not be a problem since I have already automated overwriting Pilot Logic original files. LPK files are no exception so that would not bring any extra repeatable work.

Quote
Is this related to ct4laz?
No it's related to OPM, a GTK2 specific bug.
I felt it was the case. Maybe Juha should change topic name to just ct4laz to avoid further confusion?
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 11, 2019, 07:02:46 am
Quote
Please don't do that yet. It is only a preview not tested enough. We can call it a V2 release candidate with a call for testers. It is also a discussion of what should end up in OPM and what should be left in ct4laz repo only.
OK.

Quote
I have managed to keep automation and to change library path from absolute to relative, so it doesn't matter any more. In order for this to work, I had to heavily change ctutils.pp and to introduce library package. It works in all my windows and linux tests of provided examples.
Great! Thanks. I was a little bit worried about the library folder.

Quote
I said that Pilot Logic takes the credit for porting cindy to Lazarus (which was at the time when CT components could be used in laz without any change), so we should respect that and leave pl_cindy name, as is the case with the rest of ct4laz components. I just feel that should be right, nothing else. It is just a proposal, not some kind of a request.
In my opinion we can leave pl_cindy, but we should also mention the original author in the description.

Quote
Well, when package uses a Windows unit that is to be expected, right?
Yes. Especially if in the "supported widgetsets"(OPM tree) is mentioned that win32/win64 is the only supported ws. Even so, users tend to overlook this information and complain about package x not building on platform y. This is not related to CT packages, but to all packages in general. 

Quote
What we can do is to populate package info about supported platforms.
Perhaps we should add the information about supported widgetsets to the hint form(see attached image)? I don't know though if the hint form is used, I did not get any feedback on this one.

Quote
Speaking of LPK files, what should we do about them? If I remember you had entered lot of info into them to make package info more relevant and accurate. Should I use your LPK files? It would not be a problem since I have already automated overwriting Pilot Logic original files. LPK files are no exception so that would not bring any extra repeatable work.
I did try to locate/mention the original author(s) of a particular package. I also gave credit to Pilot Logic for porting to Lazarus. We can keep those informations, however if in the meantime a new requirement was added by P.L. to a package(this is just an example), how can we sychronize the two information? The automated process also works in this case?


Title: Re: Online Package Manager + ct4laz repository
Post by: avra on March 11, 2019, 07:29:59 pm
Quote
I said that Pilot Logic takes the credit for porting cindy to Lazarus (which was at the time when CT components could be used in laz without any change), so we should respect that and leave pl_cindy name, as is the case with the rest of ct4laz components. I just feel that should be right, nothing else. It is just a proposal, not some kind of a request.
In my opinion we can leave pl_cindy, but we should also mention the original author in the description.
Then name will be pl_cindy, and we mention original author/website with a credit to Pilot Logic for Lazarus port.

Quote
What we can do is to populate package info about supported platforms.
Perhaps we should add the information about supported widgetsets to the hint form(see attached image)? I don't know though if the hint form is used, I did not get any feedback on this one.
To be honest I am not a big fun of OPM's hinted info. It's too big and too many times it was on my way when I didn't want it. I would prefer clicking somewhere, but that is not such a big deal and I can live with that. Anyway, here is the complete list of pl_* packages supported platforms and widgets:
https://www.pilotlogic.com/sitejoom/index.php/wiki/85-wiki/ct-packages/198-packages-installation-matrix

Quote
Speaking of LPK files, what should we do about them? If I remember you had entered lot of info into them to make package info more relevant and accurate. Should I use your LPK files? It would not be a problem since I have already automated overwriting Pilot Logic original files. LPK files are no exception so that would not bring any extra repeatable work.
I did try to locate/mention the original author(s) of a particular package. I also gave credit to Pilot Logic for porting to Lazarus. We can keep those informations, however if in the meantime a new requirement was added by P.L. to a package(this is just an example), how can we sychronize the two information? The automated process also works in this case?
No, I do not parse my changed XML file to copy content to PL original one based on some rule. I simply keep a list of my files that will replace PL ones. However there are not that many packages so it is not a problem to do it by hand. That only needs to be done once per ct4laz version. So, is all info you entered contained in your LPK files? If yes, then I can start the mentioned transformations.
Title: Re: Online Package Manager + ct4laz repository
Post by: balazsszekely on March 12, 2019, 07:34:34 am
Quote
To be honest I am not a big fun of OPM's hinted info. It's too big and too many times it was on my way when I didn't want it. I would prefer clicking somewhere, but that is not such a big deal and I can live with that.
Thanks for the feedback. Luckily the hint window can be disabled in option, so it won't bother you if you don't like it. The supported widgetset is also available in the tree, but is at least two clicks away.

Quote
No, I do not parse my changed XML file to copy content to PL original one based on some rule. I simply keep a list of my files that will replace PL ones. However there are not that many packages so it is not a problem to do it by hand. That only needs to be done once per ct4laz version.
OK. AFAIK the release cycle of CT is slow. So indeed is not a problem.

Quote
So, is all info you entered contained in your LPK files?
Yes.

Quote
If yes, then I can start the mentioned transformations.
Please do.

Quote
Anyway, here is the complete list of pl_* packages supported platforms and widgets:
https://www.pilotlogic.com/sitejoom/index.php/wiki/85-wiki/ct-packages/198-packages-installation-matrix
Thanks.
Title: Re: Online Package Manager + ct4laz repository
Post by: avra on March 12, 2019, 06:00:44 pm
Luckily the hint window can be disabled in option, so it won't bother you if you don't like it.
I need info more then I dislike the hinted behavior, so I will leave it as it is. It's not that much of a deal.

The supported widgetset is also available in the tree, but is at least two clicks away.
If I am a regular user, and I see some yellow exclamation mark next to some of the packages, and if on mouse over I see a hint which says that such package is not tested (or not working) under user's Lazarus/OS/Widgetset combo, then it would be very clear what to expect. That would be ideal, but current situation is also fine. Both ways would need accurate data to be of much use, and that is not as easy to achieve.
Title: Re: ct4laz
Post by: avra on April 18, 2019, 11:42:21 pm
This is the final list of ct4laz V2 packages taken from CodeTyphon 6.70:
Quote
pl_0_libs (new)
pl_ape
pl_asiovst
pl_cindy
pl_dwscript (new)
pl_excompress
pl_excontrols
pl_exdatabase
pl_exdesign
pl_graphics32
pl_graphics32ext
pl_graphics32magic (new)
pl_graphics32mg
pl_graphics32vpr
pl_html5canvas
pl_lockbox
pl_opengl
pl_opengles
pl_openwire
pl_pappe (new)
pl_sdl2 (new)
pl_synapsevs
pl_vampyreimaging
pl_vulkan
pl_win_directx
pl_win_directx11
pl_win_directx12
pl_win_directxut
pl_win_dspack
pl_win_gdi
pl_win_midi
px_aggpas
px_aggpasvs
px_cmdrunner (new)
px_gaiagis (new)
px_geogis (new)
px_mapviewer
px_opengladv (new)
px_shapes (new)
px_titanscript (new)
px_titansound (new)
px_tsmbios (new)

All pl_* packages should end up in both OPM and ct4laz repo, while px_* packages should end up only in ct4laz repo and are ment for the brave ones or desperate ones (you can find explanations for this in Excel file).

It was very interesting to find out that pl_titansound is actually a port of Delphi MPEG lib (Excel file with package info updated), and it was very close to inclusion into OPM, but at the end I left it for the next time to mature a little more.

I am not able to test pl_vulkan (no proper grahic card) and pl_opengles (my Raspberry Pi is dead), so I would appreciate if someone can confirm they work. Without confirmation I do not think they should end up in OPM. It was strange to be able to run pl_sdl2 examples under windows but not under linux. If you manage to do it, please share it here.

Some packages are OS specific, and some do not work under specific Laz/FPC combo, bitness, or endianess. PilotLogic cares only about trunk FPC and Laz, while I also try to make all packages work under current official versions of FPC and Laz (with fixes).

I have updated all packages info as promised. Please check and report if there is some mistake (especially for licenses info).

I must admit that most of the CT packages now have license file in the sources dir. That's a nice improvement.

Enjoy!  8-) :) 8-)
Title: Re: ct4laz
Post by: balazsszekely on April 28, 2019, 06:30:11 pm
Thank you @Avra, this is great news. I will add the packages to OPM soon.
Title: Re: ct4laz
Post by: avra on April 28, 2019, 11:19:47 pm
@everyone:

I need your help. I am not able to test pl_vulkan (no proper grahic card) and pl_opengles (my Raspberry Pi is dead), so I would appreciate if someone can confirm they work.
Title: Re: ct4laz
Post by: balazsszekely on May 02, 2019, 08:56:17 am
Hi all,

I added eight pl_ package for testing purposes. The packages are extracted to a sub folder of the local repository, namely ct4laz.  Please test. After a few days, if everything works fine, I will add all the other packages too. Until now I found no issues at all, tested mostly on: win32/64, gtk2. I will run a few test soon with carbon and qt.
Title: Re: ct4laz
Post by: balazsszekely on May 08, 2019, 08:59:27 am
All packages converted by @Avra was added to OPM, except pl_cindy and pl_vampyreimaging. The plan is to add the original versions, unfortunately vampyreimaging still not works properly, there is a multiple units conflict(https://sourceforge.net/p/imaginglib). The original Cindy is already in OPM. Any suggestion is welcomed.
Title: Re: ct4laz
Post by: avra on May 08, 2019, 11:04:52 am
All packages converted by @Avra was added to OPM, except pl_cindy and pl_vampyreimaging. The plan is to add the original versions, unfortunately vampyreimaging still not works properly, there is a multiple units conflict(https://sourceforge.net/p/imaginglib). The original Cindy is already in OPM. Any suggestion is welcomed.
I will rename pl_vampyreimaging to px_vampyreimaging and leave it in ct4laz repo in case someone still needs it, but exclude it from OPM.

Original Cindy is Delphi only, and origin of Cindy Lazarus port is PilotLogic, and PilotLogic version is in OPM. Do you remember that we agreed to rename cindy.lpk to pl_cindy.lpk? Let me remind you:

Quote
If you agree, then you could use pl_* components without any change and that could take of some of the burden from you. I also think that cindy in OPM should hold pl_cindy name - to respect it's origin and give credit to Pilot Logic. I hope that's OK with you.
Sure, I already used pl_ prefix in the past for CT packages. Cindy was developed by Pilot Logic only? If yes, then giving credit is a must. The issue is, I found many packages, which I thought it was PL only, later it turn out it was developed by somebody else.

Quote
I said that Pilot Logic takes the credit for porting cindy to Lazarus (which was at the time when CT components could be used in laz without any change), so we should respect that and leave pl_cindy name, as is the case with the rest of ct4laz components. I just feel that should be right, nothing else. It is just a proposal, not some kind of a request.
In my opinion we can leave pl_cindy, but we should also mention the original author in the description.
Then name will be pl_cindy, and we mention original author/website with a credit to Pilot Logic for Lazarus port.

I still think that OPM cindy should be replaced with pl_cindy, especially since it is updated to latest Delphi version.
Title: Re: ct4laz
Post by: balazsszekely on May 08, 2019, 11:26:46 am
Quote
I still think that OPM cindy should be replaced with pl_cindy, especially since it is updated to latest Delphi version.
OK. Fair enough. If there is no objections, I will remove cindy and add pl_cindy from ct4laz repo.
Title: Re: ct4laz
Post by: avra on July 14, 2019, 01:33:34 pm
I have published instructions for creating ct4laz on your own:
https://bitbucket.org/avra/ct4laz

Useful if you want to convert some missing component, or if you want to convert some updated CodeTyphon component and don't want to wait for ct4laz repo update. Besides ct2laz utility there are 2 PowerShell scripts which do all the work.

Enjoy!
Title: Re: ct4laz
Post by: wp on May 30, 2020, 02:38:23 pm
avra, I just noticed that the Pilot Logic package pl_ExControls (taken from OPM) does not compile any more in Laz trunk. This is caused by the removal of the ReadOnly property of TCustomCombobox.
Title: Re: ct4laz
Post by: avra on June 03, 2020, 01:30:36 am
avra, I just noticed that the Pilot Logic package pl_ExControls (taken from OPM) does not compile any more in Laz trunk. This is caused by the removal of the ReadOnly property of TCustomCombobox.
If you have fixed the forms then you can send them to me and I will test. If you use trunk then ct2laz is better then ct4laz for some packages. TCustomCombobox problem is probably already fixed in CT (can be checked with ct2laz). I lag behind CT with some packages because CT is much closer to trunk then Lazarus and I am playing a catch up game because I want ct4laz components to be compatible with official Lazarus, so when there is a problem that I can not easily fix I provide older package (not that good if you are after trunk). I plan to update ct4laz at the end of the summer, and focus will be on full FPC 3.2 compatibility while keeping FPC 3.0x working.
Title: Re: ct4laz
Post by: avra on August 12, 2020, 10:52:46 am
@GetMem:
I have just checked and it seams that OPM does not deliver my original pl_0_libs and *.dll, *.so and *.dylib files are missing. OPM version has 1MB and my version (https://bitbucket.org/avra/ct4laz/downloads/) has 23MB. How could this happen? Could you please check? When those files are missing, pl_* packages install fine, but lots of examples simply do not work.

p.s. I will start work on ct4laz V3 soon.
Title: Re: ct4laz
Post by: balazsszekely on August 17, 2020, 08:18:43 pm
@avra

Quote
I have just checked and it seams that OPM does not deliver my original pl_0_libs and *.dll, *.so and *.dylib files are missing. OPM version has 1MB and my version (https://bitbucket.org/avra/ct4laz/downloads/) has 23MB. How could this happen? Could you please check? When those files are missing, pl_* packages install fine, but lots of examples simply do not work.
OPM auto-delete binary files, unless explicitly instructed not to. Apparently I forgot this small detail when I created package pl_0_lib. Sorry for that. Should be fixed now.

Quote
p.s. I will start work on ct4laz V3 soon.
OK. Thanks.
Title: Re: ct4laz
Post by: avra on August 18, 2020, 10:03:16 am
Quote
I have just checked and it seams that OPM does not deliver my original pl_0_libs and *.dll, *.so and *.dylib files are missing. OPM version has 1MB and my version (https://bitbucket.org/avra/ct4laz/downloads/) has 23MB. How could this happen? Could you please check? When those files are missing, pl_* packages install fine, but lots of examples simply do not work.
OPM auto-delete binary files, unless explicitly instructed not to. Apparently I forgot this small detail when I created package pl_0_lib. Sorry for that. Should be fixed now.
Thanks! Now all pl_* examples should work.
Title: Re: ct4laz
Post by: avra on November 06, 2020, 11:04:14 am
It's upgrade time. Let me present you ct4laz V3 RC. You can find it here: https://bitbucket.org/avra/ct4laz/downloads/.

This is the list of ct4laz V3 packages:
Quote
pl_0_libs
pl_ape
pl_asiovst
pl_cindy
pl_excompress
pl_excontrols
pl_exdatabase
pl_graphics32
pl_graphics32ext
pl_graphics32magic
pl_graphics32mg
pl_graphics32vpr
pl_html5canvas
pl_lockbox
pl_opengl
pl_opengles
pl_pappe
pl_sdl2
pl_synapsevs
pl_usb (NEW)
pl_vampyreimaging
pl_vulkan
pl_win_api (NEW)
pl_win_directx
pl_win_directx11
pl_win_directx12
pl_win_directxut
pl_win_dspack
pl_win_gdi
pl_win_media (NEW)
pl_win_midi
px_aggpas
px_aggpasvs
px_cmdrunner
px_dwscript (MOVED from pl to px)
px_expatpas (NEW)
px_gaiagis
px_macosmetal (NEW)
px_magicscript (NEW)
px_mapviewer
px_opencl (NEW)
px_opengladv
px_openwire (MOVED from pl to px)
px_shapes
px_titanscript
px_titansound
px_tsmbios

All pl_* packages are OPM candidates, while px_* packages should end up only in ct4laz repo and are meant only for the brave ones or desperate ones (you can find explanations for this in Excel file). If you think that there are pl_* packages which should not end up in OPM for some reason, now is the time to say it.

ct4laz relevant package news (for individual package news look at CodeTyphon history log):
1. pl_usb - I am not quite sure what to do with this. FPC does not cover USB, and this one is from https://github.com/hansiglaser/pas-libusb. At the moment I am a little more biased to not include it in OPM. Please comment.
2. pl_win_api - Some headers are similar to https://sourceforge.net/projects/mfpack/
3. pl_win_media - Seams like a conversion of this Delphi repo: https://sourceforge.net/projects/mfpack/. It should probably end up in OPM. Needs pl_win_api.
4. px_dwscript - Will be moved from OPM since there is a FPC port found at https://wiki.freepascal.org/DelphiWebScript
5. px_macosmetal - I was not able to test since I do not have Apple OS. It will not end up in OPM anyway because I was able to track Lazarus version at https://github.com/genericptr/Metal-Framework.
6. px_opencl - Does not seam to be relevant since FPC already provides OpenCL headers, so it should not end up in OPM. I will leave it in ct4laz if anyone is interested.
7. px_openwire will be moved from OPM because trunk IDE hangs during compilation, and author has stopped supporting Lazarus because of lacking anonymous methods which are needed for latest features.
8. If you want to experiment with px_aggpas and px_aggpasvs then you will need to rename your \lazarus\components\aggpas directory since there will be a conflict. These packages also depend on px_expatpas.

Updated spreadsheet with all packages and their licenses can be found at https://bitbucket.org/avra/ct4laz/downloads/pl_packages_list.xls. It can bring light to why some packages have been left out completely, and some (px_* ones) ended up only in repo.

All components were tested with current 32bit Lazarus and FPC fixes on Win10x64. Some testing has been done on 64bit and Linux. CodeTyphon targets trunks and ct4laz targets fixes, so when some package has issues I first try to fix it, and if if not able to then older package version is used (patches are welcome). Because of this, trunk users might prefer to use ct2laz on their own for some CT packages.

Repo has instructions if you want to create ct4laz from scratch on your own.

@GetMem:
pl_0_libs package has *.exe, *.dll, *.o, *.so, *.dynlib library files. If you don't like it then you can exclude *.exe files since they are not that important. Other files are crucial for some examples to work so they should not be excluded. Original archive can be found here: http://www.pilotlogic.com/codetyphon/update_development/binRuntimes.7z.
Title: Re: ct4laz
Post by: balazsszekely on November 06, 2020, 11:40:48 am
@avra

Ok. Thanks. I don't have much freetime nowadays, but I will try to update as soon as possible. I did not forget the library files, don't worry, they will and up in pl_0_libs. :)
Title: Re: ct4laz
Post by: wp on November 06, 2020, 11:50:23 am
avra, I ask for removal of px_mapviewer because we have LazMapViewer, in OPM already. I compared them, px_mapViewer is the same as our LazMapViewer. After the original authors have left the community I am maintaining this package, and PilotLogic just copies our version to their repository and does the usual renamings which lead so strange confusion: looking at mvmapviewer.pas I see that I am a user of the "Typhon forum https://forum.lazarus.freepascal.org".
Title: Re: ct4laz
Post by: avra on November 06, 2020, 11:59:54 am
avra, I ask for removal of px_mapviewer because we have LazMapViewer, in OPM already. I compared them, px_mapViewer is the same as our LazMapViewer. After the original authors have left the community I am maintaining this package, and PilotLogic just copies our version to their repository and does the usual renamings which lead so strange confusion: looking at mvmapviewer.pas I see that I am a user of the "Typhon forum https://forum.lazarus.freepascal.org".

Only pl_* packages will end up in OPM. Since px_mapviewer has px_* prefix, it will not end up in OPM for sure. It was meant to end up only in ct4laz. I am not sure if you are aware of this and you ask to remove px_mapviewer from OPM only, or also remove from ct4laz? Neither is the problem - I just want to clarify your request.

p.s. I also do not like CT's massive automatic renaming and fully understand if you wish to remove package from both.
Title: Re: ct4laz
Post by: wp on November 06, 2020, 12:35:49 pm
The Excel file says "TMapViewer enhanced: OPM version doesn't work with trunk any more (CT version does) https://sourceforge.net/p/roadbook/code/ci/master/tree/mapviewer/, 2019: trunk does not work any more (deprecated after LazMapViewer was added to OPM)"

Is this still up-to-date? Which "trunk": Laz-trunk or FPC-trunk? And what is "deprecated"?

Maybe this is a left-over from the time before LazMapViewer was available in OPM. I remember that it took rather long until I finally released the package to OPM because there was a memory leak, and I waited until this was luckily fixed by a forum user.

I just installed LazMapViewer on FPC-trunk/Laz-trunk, no problem, the sample project is running fine. Therefore there is no benefit in duplicating LazMapViewer in ctlaz any more.
Title: Re: ct4laz
Post by: avra on November 06, 2020, 01:11:12 pm
The Excel file says "TMapViewer enhanced: OPM version doesn't work with trunk any more (CT version does) https://sourceforge.net/p/roadbook/code/ci/master/tree/mapviewer/, 2019: trunk does not work any more (deprecated after LazMapViewer was added to OPM)"

Is this still up-to-date? Which "trunk": Laz-trunk or FPC-trunk? And what is "deprecated"?

Maybe this is a left-over from the time before LazMapViewer was available in OPM.
Yes. There were issues in 2019 with pl_mapviewer and trunk. Once you published LazMapViewer, pl_mapviewer became deprecated and I renamed it to px_mapviewer and removed it from OPM (but left it in ct4laz).

Therefore there is no benefit in duplicating LazMapViewer in ctlaz any more.
Ok, then I will remove it also from ct4laz.

EDIT: Removed.
Title: Re: ct4laz
Post by: balazsszekely on November 10, 2020, 01:33:54 pm
@avra

The resource files are missing. Take a look at the attached picture.
It has nothing to do with OPM, if I extract the zip downloaded from your repo and open/compile the package, same things happen.
I tested with the first 5-6 package and 3 failed. Can you please include the resource files too?
Title: Re: ct4laz
Post by: avra on November 11, 2020, 09:18:00 pm
I will take a look.
Title: Re: ct4laz
Post by: avra on November 11, 2020, 10:37:31 pm
I have just tested with 32bit Lazarus 2.0.11 and FPC 3.2.1 on Win10x64. First I uninstalled all my pl_packages and recompiled IDE. Then downloaded just pl_excontrols.zip from ct4laz repo, extracted it, opened package, compiled and installed. IDE was rebuilt without any problems.

If I open downloaded pl_excontrols.zip I can find all *.res files where they should be.

Could you please check if \pl_components\pl_excontrols\source\TplSmartGridCursors.res file exists and could be accessed?
Title: Re: ct4laz
Post by: balazsszekely on November 11, 2020, 10:59:21 pm
Yes, if I download pl_excontrols.zip separately, the resource file is there. If I try to download the whole repository, the resource files are not included(see attachment).
Title: Re: ct4laz
Post by: avra on November 12, 2020, 11:51:37 am
Yes, if I download pl_excontrols.zip separately, the resource file is there. If I try to download the whole repository, the resource files are not included(see attachment).

Aaah, I see now. It must have been my .gitignore settings being too restrictive. Until I fix that, please use zip files.
Title: Re: ct4laz
Post by: avra on November 12, 2020, 01:45:34 pm
This file needs an update:
https://github.com/github/gitignore/blob/master/Global/Lazarus.gitignore

I've been using it as a template. For some reason it is set to ignore *.res and *.lrs.
Title: Re: ct4laz
Post by: balazsszekely on November 13, 2020, 08:39:26 am
@avra

Quote
It must have been my .gitignore settings being too restrictive.
It also remove some library files from pl_0_lib. :)

Anyways I updated the packages. Everything works out of the box. The only package that failed to install on my system(Lazarus Trunk/FPC 3.2.0) is pl_Win_Media, with the following message:
"Media.AMVideo.pas(287,53) Error: Identifier not found "SIZE_PREHEADER""
Title: Re: ct4laz
Post by: avra on November 13, 2020, 09:46:33 am
Quote
It must have been my .gitignore settings being too restrictive.
It also remove some library files from pl_0_lib. :)
Yes, I've seen that and prepared new gitignore but have not been able to test it yet.

Anyways I updated the packages. Everything works out of the box. The only package that failed to install on my system(Lazarus Trunk/FPC 3.2.0) is pl_Win_Media, with the following message:
"Media.AMVideo.pas(287,53) Error: Identifier not found "SIZE_PREHEADER""
It works on Lazarus 2.0.11. Strange is that pl_Win_Media is unchanged CT package, and CT uses trunks so it should work. At the moment I do not see why it fails since everything in line 287 resides in that same unit so it should compile. I have found in DirectShow9.pas this:
Code: Pascal  [Select][+][-]
  1. SIZE_PREHEADER = 48; // offset TVideoInfoHeader.bmiHeader
Could you please test if compilation and demos work if you replace line 287 with this? If it does then I could ifdef it for Laz trunk and fix it that way.
Title: Re: ct4laz
Post by: balazsszekely on November 13, 2020, 10:06:47 am
Quote
It works on Lazarus 2.0.11. Strange is that pl_Win_Media is unchanged CT package, and CT uses trunks so it should work. At the moment I do not see why it fails since everything in line 287 resides in that same unit so it should compile. I have found in DirectShow9.pas this:
Code: Pascal  [Select][+][-]
  1. SIZE_PREHEADER = 48; // offset TVideoInfoHeader.bmiHeader
Could you please test if compilation and demos work if you replace line 287 with this? If it does then I could ifdef it for Laz trunk and fix it that way.
Issue fixed! I updated the package in OPM. Thanks.
Title: Re: ct4laz
Post by: avra on November 13, 2020, 10:43:06 am
Issue fixed! I updated the package in OPM. Thanks.
Nice. Thank you!  8)
Title: Re: ct4laz
Post by: avra on November 14, 2020, 11:39:19 pm
Strange. I wanted to make a proper ifdef so I have just checked both FPC 3.2.1 + LazTrunk and FPC 3.2.0 + LazTrunk and there was no SIZE_PREHEADER problem during compilation. LazTrunk is from today (SVN64137).

Tested on Win10x64 with 32bit Lazarus, using latest fpcupdeluxe.
Title: Re: ct4laz
Post by: balazsszekely on November 16, 2020, 10:22:09 am
Quote
Strange. I wanted to make a proper ifdef so I have just checked both FPC 3.2.1 + LazTrunk and FPC 3.2.0 + LazTrunk and there was no SIZE_PREHEADER problem during compilation. LazTrunk is from today (SVN64137).

Tested on Win10x64 with 32bit Lazarus, using latest fpcupdeluxe.
After a few updates it works here too. I restored pl_Win_Media from your repo. Sorry for the noise.
Title: Re: ct4laz
Post by: avra on November 16, 2020, 06:26:09 pm
Quote
Strange. I wanted to make a proper ifdef so I have just checked both FPC 3.2.1 + LazTrunk and FPC 3.2.0 + LazTrunk and there was no SIZE_PREHEADER problem during compilation. LazTrunk is from today (SVN64137).

Tested on Win10x64 with 32bit Lazarus, using latest fpcupdeluxe.
After a few updates it works here too. I restored pl_Win_Media from your repo. Sorry for the noise.

No problem. Sometimes all those bits can gather together and byte back. We've all seen it.  ;)
Title: Re: ct4laz
Post by: domasz on March 25, 2022, 12:04:03 am
You should remove titansound.

https://forum.lazarus.freepascal.org/index.php/topic,58591.0.html
Title: Re: ct4laz
Post by: avra on March 25, 2022, 10:39:27 am
You should remove titansound.
Thank you for reporting!

I maintain a list with packages info at https://bitbucket.org/avra/ct4laz/downloads/pl_packages_list.xls, and there can be seen that titansound was marked as GPL. I for sure did not make that up, so I suspect that at some point in time PilotLogic has probably changed the package license. Whatever the reason, titansound will be kicked out of ct4laz.

OPM is not affected at all since titansound is not included into OPM.

ct4laz repo is affected and I will fix that. I have already tried through the web interface, but for some reason when I click on Downloads link I am immediately logged out and as anonymous user I can not delete file in my own repo. Since I am not at home, I will deal with that next week. It will be fixed one way or the other, even if I have to delete and create repo again.
Title: Re: ct4laz
Post by: domasz on March 28, 2022, 10:41:36 am
Great work, Avra!
Perhaps TitanSound could be "fixed" if we, the members of this forum, find out where did they get the source files and write down all the authors and licenses.
Title: Re: ct4laz
Post by: dbannon on March 28, 2022, 11:59:34 am
Might be safer (but not easier) to go back to https://sourceforge.net/projects/delphimpeg/ and convert it to Lazarus. Its clearly gpl2 or later. And should remain as such.

Maybe add a clause that it cannot be used by any product called Code Typhoon ?   :D

Davo
Title: Re: ct4laz
Post by: 440bx on March 28, 2022, 12:07:51 pm
Maybe add a clause that it cannot be used by any product called Code Typhoon ?   :D
I know you were kidding but, I really wonder if an author could GPL his/her code and add a special provision stating that the code cannot be used/included in CodeTyphoon or any other PilotLogic product under any circumstances (or for that matter any other product/company the author is not pleased with.)

Title: Re: ct4laz
Post by: avra on March 28, 2022, 12:11:57 pm
Great work, Avra!
Thanks!  :)

Perhaps TitanSound could be "fixed" if we, the members of this forum, find out where did they get the source files and write down all the authors and licenses.
That's what I tried here: https://bitbucket.org/avra/ct4laz/downloads/pl_packages_list.xls

Might be safer (but not easier) to go back to https://sourceforge.net/projects/delphimpeg/ and convert it to Lazarus.
That will be done by someone who needs it.

Maybe add a clause that it cannot be used by any product called Code Typhoon ?   :D
Kidding put aside, I would not go that far (but who knows what might original author decide to do). Anyway, PilotLogic does not respect original license so I do not think that adding something to the license would change anything.
Title: Re: ct4laz
Post by: domasz on March 28, 2022, 12:19:12 pm
Might be safer (but not easier) to go back to https://sourceforge.net/projects/delphimpeg/ and convert it to Lazarus. Its clearly gpl2 or later. And should remain as such.

Delphi MPEG is just one file in TitanSound. There are other files there, most likely from other projects.
I contacted author of Delphi MPEG if he could change the license to MIT or something similar but got no reply.
Title: Re: ct4laz
Post by: avra on March 28, 2022, 12:30:45 pm
Delphi MPEG is just one file in TitanSound. There are other files there, most likely from other projects.
As said in mentioned Excel file, examples are taken from http://www.noeska.com/doal/tutorials.aspx
Title: Re: ct4laz
Post by: avra on April 08, 2022, 11:33:49 am
titansound has been removed from ct4laz repo.

If you have any other package to report, please do.
Title: Re: ct4laz
Post by: avra on November 08, 2022, 11:26:08 am
CT package pl_asiovst will be removed from next ct4laz since Lazarus version can be found at:
https://github.com/evolvedexperiment/asiovst/
Title: Re: ct4laz
Post by: lainz on November 08, 2022, 02:40:16 pm
Hi, I don't use CT, but an user of it say that there are more BGRAControls inside it, some that we don't have:
https://forum.lazarus.freepascal.org/index.php/topic,60708.0.html

@avra, can you check if possible to get these bgracontrols and don't "fight" with the installation of our bgracontrols?
Title: Re: ct4laz
Post by: avra on November 09, 2022, 01:34:32 am
@avra, can you check if possible to get these bgracontrols and don't "fight" with the installation of our bgracontrols?
I used ct2laz to download and convert latest CT packages and demos, made few corrections, and prepared pl_bgra* packages for download:
https://anonfiles.com/Vef255G9yd/pl_bgra_7z

They could be compiled and installed in 2 months old trunk/trunk x32 FPC/LAZ (because CT uses only trunks) on Win10x64, which never had original bgra* packages compiled and installed. Unfortunately TBGRALine and other mentioned shape components produce LAZ access violation when dropped on form on my FPC/LAZ combo. Maybe it is better with latest trunk, or exact versions that CT uses. Anyway, sources are there for you to examine any way you want...
Title: Re: ct4laz
Post by: lainz on November 11, 2022, 11:51:52 pm
Thankyou avra.
Title: Re: ct4laz
Post by: avra on November 12, 2022, 03:40:31 am
Thankyou avra.
You're most welcome  ;)
TinyPortal © 2005-2018